由于数组和散列只能包含Perl中的标量,为什么在访问数组或散列元素时必须使用$来告诉解释器该值是标量?换句话说,假设你有一个数组@myarray和一个哈希%myhash,你为什么需要做:
$x = $myarray[1]; $y = $myhash{'foo'};
而不是只是做:
$x = myarray[1]; $y = myhash{'foo'};
为什么上述含糊不清?
如果不是Perl代码,那不是非法的Perl代码?例如,在Perl中不是全部都是非法的?
@var[0]; @var{'key'}; %var[0]; %var{'key'};
解决方法
@H_404_17@ 切片不是非法的:@slice = @myarray[1,2,5]; @slice = @myhash{qw/foo bar baz/};
我怀疑这是您需要指定是否要从hash / array中获取单个值的一部分原因.