shift ARRAY
shift

移除並傳回陣列的第一個元素。這會將陣列縮短一個,並將所有元素向下移動。

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

# @arr is now ('dog');

如果陣列為空,則傳回 undef

注意:如果陣列中的第一個元素為 undefshift 也可能傳回 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 對右端執行的相同操作。