# ascending use Sort::Key::Maker sort_ss => qw(str str); my @akeys = sort_ss { $data{$_}[0], $_ } keys %data; # descending use Sort::Key::Maker sort_rsrs => qw(-str -str); my @dkeys = sort_rsrs { $data{$_}[0], $_ } keys %data;