start page | rating of books | rating of authors | reviews | copyrights

Perl Cookbook

Perl CookbookSearch this book
Previous: 4.9. Appending One Array to Another Chapter 4
Arrays
Next: 4.11. Processing Multiple Elements of an Array
 

4.10. Reversing an Array

Problem

You want to reverse an array.

Solution

Use the reverse function:

# reverse @ARRAY into @REVERSED @REVERSED = reverse @ARRAY;

Or use a for loop:

for ($i = $#ARRAY; $i >= 0; $i--) {     # do something with $ARRAY[$i] }

Discussion

The reverse function actually reverses a list; the for loop simply processes the list in reverse order. If you don't need a reversed copy of the list, for saves memory and time.

If you're using reverse to reverse a list that you just sorted, you should have sorted it in the correct order to begin with. For example:

# two-step: sort then reverse @ascending = sort { $a cmp $b } @users; @descending = reverse @ascending;  # one-step: sort with reverse comparison @descending = sort { $b cmp $a } @users;

See Also

The reverse function in perlfunc (1) and Chapter 3 of Programming Perl ; we use reverse in Recipe 1.6


Previous: 4.9. Appending One Array to Another Perl Cookbook Next: 4.11. Processing Multiple Elements of an Array
4.9. Appending One Array to Another Book Index 4.11. Processing Multiple Elements of an Array

Library Navigation Links

Copyright © 2001 O'Reilly & Associates. All rights reserved.