- publishing free software manuals
Perl Language Reference Manual
by Larry Wall and others
Paperback (6"x9"), 724 pages
ISBN 9781906966027
RRP £29.95 ($39.95)

Sales of this book support The Perl Foundation! Get a printed copy>>>

reverse LIST

In list context, returns a list value consisting of the elements of LIST in the opposite order. In scalar context, concatenates the elements of LIST and returns a string value with all characters in the opposite order.

print join(", ", reverse "world", "Hello"); # Hello, world
print scalar reverse "dlrow ,", "olleH";    # Hello, world

Used without arguments in scalar context, reverse() reverses $_.

$_ = "dlrow ,olleH";
print reverse;                              # No output, list context
print scalar reverse;                       # Hello, world

Note that reversing an array to itself (as in @a = reverse @a) will preserve non-existent elements whenever possible, i.e., for non magical arrays or tied arrays with EXISTS and DELETE methods.

This operator is also handy for inverting a hash, although there are some caveats. If a value is duplicated in the original hash, only one of those can be represented as a key in the inverted hash. Also, this has to unwind one hash and build a whole new one, which may take some time on a large hash, such as from a DBM file.

%by_name = reverse %by_address;  # Invert the hash
ISBN 9781906966027Perl Language Reference ManualSee the print edition