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


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

Nice trick with split. Can be improved somewhat...

# 1 2 3 4 # 1234567890123456789012345678901234567890123 perl -e'print sort{@x=split":",$a.$b;$x[8]-$x[2]}<>' /etc/passwd

Or even:

# 1 2 3 4 # 123456789012345678901234567890123456789012 perl -e'print sort{(@x=split":",$a.$b)[8]-$x[2]}<>' /etc/passwd

Update: or with a sufficiently outdated Perl...

# 1 2 3 4 # 1234567890123456789012345678901234567890 perl5.8.9 -e'print sort{split":",$a.$b;$_[8]-$_[2]}<>' /etc/passwd

(split in void context was deprecated in 5.10 and dropped in 5.12 IIRC.)

package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name