Shifts the first value of the array off and returns it, shortening the
array by 1 and moving everything down. If there are no elements in the
array, returns the undefined value. If ARRAY is omitted, shifts the
@_ array within the lexical scope of subroutines and formats, and the
@ARGV array at file scopes or within the lexical scopes established by
the eval '', BEGIN {}, INIT {}, CHECK {}, and END {}
constructs.
See also unshift, push, and pop. shift and unshift do the
same thing to the left end of an array that pop and push do to the
right end.