in reply to What are these?

Think of shift and unshift as the opposites of push and pop except in the sense that shift and unshift work from the 'left' of an array and push and pop work from the 'right' of the array.

eg: Given the list called @foo:

$foo[0] = 'one'; $foo[1] = 'two'; $foo[2] = 'three';
If I were to shift on @foo I'd get the a scalar (assuming that is what I am declaring) equal to the value "one" and now @list would be renumbered so that index 0 of @foo would now be "two" and index 1 of @foo would be "three". This goes the same for unshift. You can unshift the old value back to @foo by unshift(@foo,"one");.

Now, if I push to an array I am actually appending data to the list. If I pop from the array I am taking away from what I just appended thus shifting and unshifting is to add via a prepending of data or taking away what was just prepended.

_ _ _ _ _ _ _ _ _ _
- Jim
Insert clever comment here...