移除并返回数组的第一个元素。这将使数组缩短一个元素,并将所有元素向下移动。
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 对数组右侧的操作相同。