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