http://qs321.pair.com?node_id=729240


in reply to [Perl6] Sort a hash by value

my %nums = ( four => 4, one => 1, three => 3, two => 2, ); for %nums.pairs.sort: { $^a.value <=> $^b.value } -> $pair { say $pair; }

(not necessarily shorter, but mentions %nums only once in the sort line).

There was also a proposal to make the sort method accept a block of arity one that automatically performs a ST, but it doesn't seem to be in the spec, and thusly isn't implemented by Rakudo right now.

Update: clinton asked in the CB what the colon after the sort was about, so here's the explanation for everybody: The are two syntax forms for method calls in Perl 6, $object.method($arg1, $arg2, ...) and $object.method: $arg1, $args, .... My example uses the latter to avoid more parenthesis.