use Sort::Key::Multi qw(ii_keysort); ... my %methods = ( ... skm => sub { my @sorted = ii_keysort { (split m{,}, $_, 3 )[ 1, 0 ] } @{$_[0]}; return \@sorted } );