I seem to remember that hash arrays aren't known for thier default sorting abilities (eg. they may not keep their original insertion order.).
Doesn't a shift run the risk of killing an unintended list item?
(...or am I just getting lists, hashes and small terriers named 'Spanky' all turned around at this wrong hour of the day?)