perl为什么数组名不能是变量

2024-11-16 06:02:05
推荐回答(1个)
回答(1):

你这样的命名本来就是错的... 去掉 strict, 你就不会发现这样的命名是不对的,

往後的处理也将是错的. ( 如果结果还是对的, 那只是你走运而已 )

想像一下
my @array = ( 1..10 );
my $array[1] = 10;
@array = ();
print @array;

你还能理解 $array[1] 是甚麼吗 ?
而如果你用的 perl 是 5.14 或之後, 你这样的宣告方法应该是直接报错, 不管你有没有 use strict;

另外值得一提的就是

my $array_name = abc;

其实就是
my $array_name = abc(); # 或者
my $array_name= &abc(); # 的意思,

而你可能想这是
my $array_name = "abc" ;