You are viewing the version of this documentation from Perl blead. This is the main development branch of Perl. (git commit 0a05a8bd231063e1ba6d039754d9e635d47441b5)
unshift ARRAY,LIST

Add one or more elements to the beginning of an array. This is the opposite of a shift.

my @animals = ("cat");
unshift(@animals, "mouse"); # ("mouse", "cat")

my @colors = ("red");
unshift(@colors, ("blue", "green")); # ("blue", "green", "red")

Returns the new number of elements in the updated array.

# Return value is the number of items in the updated array
my $color_count = unshift(@colors, ("yellow", "purple"));

say "There are $color_count colors in the updated array";

Note the LIST is prepended whole, not one element at a time, so the prepended elements stay in the same order. Use reverse to do the reverse.

Starting with Perl 5.14, an experimental feature allowed unshift to take a scalar expression. This experiment has been deemed unsuccessful, and was removed as of Perl 5.24.