Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: For Loops and Reversing output

by liverpole (Monsignor)
on Dec 12, 2006 at 00:42 UTC ( #589201=note: print w/replies, xml ) Need Help??

in reply to For Loops and Reversing output

Hi brusimm,

There are a lot of ways to use an array backwards.

One is to simply reverse the order of the sort.  For example, instead of

my @sorted = sort @unsorted;

which is doing an implicit sort { $a cmp $b } @unsorted, you could do:

my @sorted = sort { $b cmp $a } @unsorted;

to have the order reversed at the end of the sort.

Another way is to read an item one-at-a-time from the end of the list, such as in:

my $nextitem; while ($nextitem = pop @rocks) { # Use $nextitem }

(Sorry, I couldn't resist using pop @rocks :-))

As a 3rd and final example, read one at a time from the end of the array using an index, using the -N notation (which reads from the -Nth value of the array each time):

for (my $i=1; $i <= @rocks; $i++) { my $nextitem = $rocks[- $i]; # Take the ${i}th item from the en +d }


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://589201]
and the fog begins to lift...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2017-09-21 00:58 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (241 votes). Check out past polls.