reverse - flip a string or a list


reverse LIST


In a list context, returns a list value consisting of the elements of LIST in the opposite order. In a scalar context, concatenates the elements of LIST, and returns a string value consisting of those bytes, but in the opposite order.

    print reverse <>;           # line tac, last line first

    undef $/;                   # for efficiency of <>
    print scalar reverse <>;    # byte tac, last line tsrif

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.

    %by_name = reverse %by_address;     # Invert the hash