我无法理解以下代码段:
perl -e '
my @test = undef;
if(@test) {print "Full\n";}'
Full
似乎@test
虽然已分配undef
,但它实际上有1个元素undef
。
那么测试@test
是否为空的正确方法是什么?
做if(scalar(@test) == 1 && !$test[0])
对我来说似乎很奇怪
答案 0 :(得分:10)
要将@array
初始化为空,只需执行以下操作:
my @test = ();
目前你在做:
my @test = (undef);
正如您所观察到的那样,正在为数组分配一个值。
要清除已经声明的数组,您可以使用undef
,如下所示:
undef @test;