August 1998
Intermediate to advanced
800 pages
39h 20m
English
You want to reverse an array.
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]
}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;The reverse function in perlfunc
(1) and Chapter 3 of Programming Perl
; we use reverse in Section 1.6