There are some applications where you want to go round and round a list and one way to do so is to "barrel roll" the list by moving the last element onto the start each time you use an element. That would be complicated in some languages, but in Perl you can simply use a pop followed by an unshift. Thus:
@hehad = ("Chicken","Feta","Rice","Sticky toffee pudding");
unshift @hehad,(pop @hehad);
And if you want a queue - simply
push onto a list and
unshift off ... once you get a false value back, your queue is empty.
(written 2006-02-24, updated 2006-06-09)
Associated topics are indexed under
P208 - Perl - Lists [3939] Lots of ways of doing the same thing in Perl - list iteration - (2012-12-03)
[3906] Taking the lead, not the dog, for a walk. - (2012-10-28)
[3870] Writing more maintainable Perl - naming fields from your data records - (2012-09-25)
[3669] Stepping through a list (or an array) in reverse order - (2012-03-23)
[3548] Dark mornings, dog update, and Python and Lua courses before Christmas - (2011-12-10)
[3400] $ is atomic and % and @ are molecular - Perl - (2011-08-20)
[2996] Copying - duplicating data, or just adding a name? Perl and Python compared - (2010-10-12)
[2833] Fresh Perl Teaching Examples - part 2 of 3 - (2010-06-27)
[2813] Iterating over a Perl list and changing all items - (2010-06-15)
[2484] Finding text and what surrounds it - contextual grep - (2009-10-30)
[2295] The dog is not in trouble - (2009-07-17)
[2226] Revision / Summary of lists - Perl - (2009-06-10)
[2067] Perl - lists do so much more than arrays - (2009-03-05)
[1918] Perl Socket Programming Examples - (2008-12-02)
[1917] Out of memory during array extend - Perl - (2008-12-02)
[1828] Perl - map to process every member of a list (array) - (2008-10-09)
[1703] Perl ... adding to a list - end, middle, start - (2008-07-09)
[1316] Filtering and altering Perl lists with grep and map - (2007-08-23)
[1304] Last elements in a Perl or Python list - (2007-08-16)
[968] Perl - a list or a hash? - (2006-12-06)
[928] C++ and Perl - why did they do it THAT way? - (2006-11-16)
[773] Breaking bread - (2006-06-22)
[762] Huge data files - what happened earlier? - (2006-06-15)
[560] The fencepost problem - (2006-01-10)
[463] Splitting the difference - (2005-10-13)
[355] Context in Perl - (2005-06-22)
[240] Conventional restraints removed - (2005-03-09)
[230] Course sizes - beware of marketing statistics - (2005-02-27)
[140] Comparison Chart for Perl programmers - list functions - (2004-12-04)
[28] Perl for breakfast - (2004-08-25)
5505
Some other Articles
Not just a pretty face to answer the phone.February picturesIt's REALLY easy to add a little PHPBehind every face is a person and a storyQueues and barrel rolls in PerlAnd the staff put the icing on the cakeFamiliar names, close to homeIf its Sunday, it must be the NorlandPerl - its up to YOU to check your file openedEasy, Free, Reliable internet access