4.11. Reversing an Array4.11.2. Solution# reverse @ARRAY into @REVERSED @REVERSED = reverse @ARRAY; Or process with a foreach loop on a reversed list: foreach $element (reverse @ARRAY) { # do something with $element } Or use a for loop, starting with the index of the last element and working your way down: for ($i = $#ARRAY; $i >= 0; $i--) { # do something with $ARRAY[$i] } 4.11.3. DiscussionCalled in list context, the reverse function reverses elements of its argument list. You can save a copy of that reversed list into an array, or just use foreach to walk through it directly if that's all you need. The for loop processes the array elements in reverse order by using explicit indices. If you don't need a reversed copy of the array, the for loop can save memory and time on very large arrays. 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; 4.11.4. See AlsoThe reverse function in perlfunc(1) and Chapter 29 of Programming Perl; we use reverse in Recipe 1.7 Copyright © 2003 O'Reilly & Associates. All rights reserved. |
|