Removes and returns thefirst element of an array. This shortens the array by one and moves everything down.
my @arr = ('cat', 'dog');my $item = shift(@arr); # 'cat'# @arr is now ('dog');
Returnsundef
if the array is empty.
Note:shift
may also returnundef
if the first element in the array isundef
.
my @arr = (undef, 'two', 'three');my $item = shift(@arr); # undef
If ARRAY is omitted,shift
operates on the@ARGV
array in the main program, and the@_
array in subroutines.shift
will operate on the@ARGV
array ineval STRING
,BEGIN {}
,INIT {}
,CHECK {}
blocks.
Starting with Perl 5.14, an experimental feature allowedshift
to take a scalar expression. This experiment has been deemed unsuccessful, and was removed as of Perl 5.24.
See alsounshift
,push
, andpop
.shift
andunshift
do the same thing to the left end of an array thatpop
andpush
do to the right end.
Perldoc Browser is maintained by Dan Book (DBOOK). Please contact him via theGitHub issue tracker oremail regarding any issues with the site itself, search, or rendering of documentation.
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via thePerl issue tracker, themailing list, orIRC to report any issues with the contents or format of the documentation.