如何测试数组的null?

Jim*_*Jim 1 arrays perl null

我无法理解以下代码段:

perl  -e '  
my @test = undef;  
if(@test) {print "Full\n";}'  
Full  
Run Code Online (Sandbox Code Playgroud)

似乎@test虽然它被分配undef但它实际上有1个元素undef.
那么测试if的正确方法@test是什么?
if(scalar(@test) == 1 && !$test[0])对我来说似乎很奇怪

Mil*_*ler 10

要初始化@array为空,只需执行以下操作:

my @test = (); 
Run Code Online (Sandbox Code Playgroud)

目前你在做:

my @test = (undef);
Run Code Online (Sandbox Code Playgroud)

正如您所观察到的那样,正在为数组分配单个值.

要清除已声明的数组,可以这样使用undef:

undef @test;
Run Code Online (Sandbox Code Playgroud)