http://qs1969.pair.com?node_id=280795


in reply to Closures and sort

You are just missing a few bits. $_->[0] should be $_[0] and then you must put $a dn $b on the param list.
use strict; my @list = qw/ box cow dog apple ant/; # A "normal" use of sort my @sorted = sort {$a cmp $b} @list; print join (',', @sorted), "\n"; #return the sort sub and count in a list sub mcc { my $count = 0; return (sub {$count++; $_[0] cmp $_[1] }, $count); } # why can't I say something like mcc()[0] ??? print join ',',sort { &{(mcc())[0]}($a,$b) } @list;
But you dont want to call mcc each time. That will create a new closeure each time!

T I M T O W T D I