shift ARRAY
shift

移除并返回数组的第一个元素。这将使数组缩短一个元素,并将所有元素向下移动。

my @arr  = ('cat', 'dog');
my $item = shift(@arr); # 'cat'

# @arr is now ('dog');

如果数组为空,则返回 undef

注意: 如果数组中的第一个元素是 undef,则 shift 也可能返回 undef

my @arr  = (undef, 'two', 'three');
my $item = shift(@arr); # undef

如果省略 ARRAY,则 shift 会在主程序中操作 @ARGV 数组,在子程序中操作 @_ 数组。shift 会在 eval STRINGBEGIN {}INIT {}CHECK {} 块中操作 @ARGV 数组。

从 Perl 5.14 开始,一个实验性特性允许 shift 接受一个标量表达式。这个实验被认为是不成功的,并且在 Perl 5.24 中被移除。

另请参阅 unshiftpushpopshiftunshift 对数组左侧的操作与 poppush 对数组右侧的操作相同。