http://www.perlmonks.org?node_id=1017274


in reply to Re^3: Golf: reverse sort /etc/passwd by UID
in thread Golf: reverse sort /etc/passwd by UID

No, no. It does work (tested and confirmed). See my reply to thundergnat.

NOTE- remember you have to omit the typos though, as I already pointed out. So far, the winner remains:

UPDATE: thundergnat is right that the code below DOESN'T work as intended

perl -e 'print reverse sort{/(:\d+:)/<=>/(:\d+:)/}<>' /etc/passwd

Tommy
A mistake can be valuable or costly, depending on how faithfully you pursue correction

Replies are listed 'Best First'.
Re^5: Golf: reverse sort /etc/passwd by UID
by thundergnat (Deacon) on Feb 05, 2013 at 20:40 UTC

    No, no. It doesn't work (tested and confirmed).

    The sort block operates on the global variables $a and $b. A match without an explicit variable operates on $_. There is nothing mapping $a and $b to $_ there, so the sort block is just comparing 0 to 0 and leaving the order alone. The fact that /etc/password is in a "sorted" order makes it SEEM like it is working... but it isn't.

    print reverse sort{/(:\d+:)/<=>/(:\d+:)/}<DATA>; __DATA__ aaa:5: bbb:3: ccc:1: ddd:7: eee:8:
    eee:8:
    ddd:7:
    ccc:1:
    bbb:3:
    aaa:5: