it is the array in list context that produces the list elements in order...by definition an array is an ordered list...and there isn't any better place to start popping the array than the start.
you can get different behavior if you use a hash or function instead
the hardest line to type correctly is: stty erase ^H