为什么是语法错误:
my @hash{1..4}=(1..4);
但不是这个:
my %hash;
@hash{1..4}=(1..4);
my
需要一个变量或括号中的变量列表作为参数。
@hash{1..4}
两者都不是,所以
my @hash{1..4}
是语法错误。
第一个例子失败了,因为哈希切片是一个返回一些结果的操作。显然,用my
声明附加它是没有意义的,就像写类似my 2+2
不会的东西一样。my
必须跟要声明的变量列表。
第二个示例就是这样做的 - 在当前范围内声明一个哈希,然后访问它的一部分。