in reply to providing a callback routine to sort
Just did this the other day. The key is to remember that sort's curly block is essentially an anonymous sub, so what you put there has to be executable code. In the case of a sort subroutine, this means you need to do something like this:
Which gives usmy $dir = shift; my $sort_sub = $dir eq 'up' ? sub {$a <=> $b} : sub {$b <=> $a}; my @items = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5); print "@{[sort { $sort_sub->() } @items]}\n";
Note that the code in the sort curlies calls the callback itself.$ perl sample up 1 1 2 3 3 4 5 5 5 6 9 $ perl sample down 9 6 5 5 5 4 3 3 2 1 1
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: providing a callback routine to sort
by Anonymous Monk on Jan 21, 2014 at 22:41 UTC | |
by pemungkah (Priest) on Jan 23, 2014 at 03:29 UTC |
In Section
Seekers of Perl Wisdom