http://www.perlmonks.org?node_id=818579


in reply to Specify sort method on the fly

If you use a hash to hold different sort functions, then you can call that function from inside the sort block. There are probably better ways to do this, but this works.

#!/usr/bin/perl use strict; use warnings; my $test = shift; my $sort = { 'numbers' => sub { $_[0] <=> $_[1] }, 'letters' => sub { "$_[0]" cmp "$_[1]" }, }; my @test = qw/1 2 3 4 a b 0 10 9 100/; print sort {$sort->{$test}->($a,$b)} @test;

If you run this perl sort_test.pl letters it will use the cmp and if you run perl sort_test.pl numbers it will sort using <=>


___________
Eric Hodges