我不明白下面的代码片段:如何测试数组的null值?
perl -e '
my @test = undef;
if(@test) {print "Full\n";}'
Full
看来,@test
虽然它被分配undef
它实际上有1元是undef
。
那么测试@test
为空的正确方法是什么?
做if(scalar(@test) == 1 && !$test[0])
似乎不可思议我
我不明白下面的代码片段:如何测试数组的null值?
perl -e '
my @test = undef;
if(@test) {print "Full\n";}'
Full
看来,@test
虽然它被分配undef
它实际上有1元是undef
。
那么测试@test
为空的正确方法是什么?
做if(scalar(@test) == 1 && !$test[0])
似乎不可思议我
初始化一个@array
到没什么,只是做:
my @test =();
目前你正在做的:
my @test = (undef);
哪像你正在观察,是为阵列分配一个值。
要清除已经声明数组,你可以使用undef
像这样:
undef @test;
你可能想在这里看我的解释:http://perlmaven.com/undef-on-perl-arrays-and-哈希 – szabgab