@my_array = undef; if (@my_array ) { print 'TRUE'; } else { print 'FALSE'; }
这将打印为TRUE
为什么数组有元素?
解决方法
该数组有一个元素,因为您分配了一个元素.考虑以下:
@array = undef; # Assigns the value 'undef' to @array @array = (); # Assigns the empty list to @array undef @array; # Undefines @array
它们看起来很相似,但第一行与其他两行不同(相当于).第一行产生具有单个元素的数组(值undef).另外两个导致一个空数组.在Perl中,undef既是值又是运算符.第一行将其用作值,最后一行将其用作运算符.
通常不需要清除阵列.声明时它们是空的:
my @array; # There's nothing in here,yet