移除并返回数组的第一个元素。这将使数组缩短一个元素,并将所有元素向下移动。
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 STRING
、BEGIN {}
、INIT {}
、CHECK {}
块中操作 @ARGV
数组。
从 Perl 5.14 开始,一个实验性特性允许 shift
接受一个标量表达式。这个实验被认为是不成功的,并且在 Perl 5.24 中被移除。
另请参阅 unshift
、push
和 pop
。 shift
和 unshift
对数组左侧的操作与 pop
和 push
对数组右侧的操作相同。