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. |