You are viewing the version of this documentation from Perl 5.18.1. View the latest version
push ARRAY,LIST
push EXPR,LIST

Treats ARRAY as a stack by appending the values of LIST to the end of ARRAY. The length of ARRAY increases by the length of LIST. Has the same effect as

for $value (LIST) {
    $ARRAY[++$#ARRAY] = $value;
}

but is more efficient. Returns the number of elements in the array following the completed push.

Starting with Perl 5.14, push can take a scalar EXPR, which must hold a reference to an unblessed array. The argument will be dereferenced automatically. This aspect of push is considered highly experimental. The exact behaviour may change in a future version of Perl.

To avoid confusing would-be users of your code who are running earlier versions of Perl with mysterious syntax errors, put this sort of thing at the top of your file to signal that your code will work only on Perls of a recent vintage:

use 5.014;	# so push/pop/etc work on scalars (experimental)