我不确定undef是否和从数组中消除值有确切的关系,猜测一下,如果我们将undef视为"空",那么会有一些联系。但通常来说,将某些东西赋值为undef和删除某些东西是不一样的。

首先来看怎样把数组的元素赋值为undef,之后再了解如何从数组中删除元素。

从下面的代码开始:

复制代码代码如下:


use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
print Dumper \@dwarfs;


使用Data::Dumper打印时,得到如下输出:

复制代码代码如下:


$VAR1 = [
          'Doc',
          'Grumpy',
          'Happy',
          'Sleepy',
          'Sneezy',
          'Dopey',
          'Bashful'
        ];


将元素赋值为undef


使用undef()函数的返回值:

复制代码代码如下:


use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
 
$dwarfs[3] = undef;
 
print Dumper \@dwarfs;