in reply to Build Sort dynamically
# untested! use Sort::Key qw(multikeysorter); my @types = qw(int str str str str int); sub gen_sorter { my @ix = map abs($_), @_; my @t; for (@_) { my $t = $types[abs $_]; $t = "-$t" if $_ < 0 push @t, $t; } multikeysorter (sub { my @k = split /\|/; $k[5] =~ tr/><//; @k[@ix] }, @t); } my $sorter = gen_sorter(1,2,-3); # order by the first key, # then the second and then, # the third desc my @sorted = $sorter->(@data);
|
|---|