my @by_zip = sort {$hash($a}[-1] <=> $hash{$b}[-1] } keys %hash; my @by_age = sort {$hash($a}[0] <=> $hash{$b}[0] } keys %hash; my @by_surname = sort { substr($a, rindex($a,' ')) cmp substr($b, rindex($b,' ')) } keys %hash;