for $key( map{ $_ -> [0] } sort{ $a->[1] cmp $b->[1] || $a->[2] cmp $b->[2] } map{ [ $_,(split)[0],(split)[2] ] } keys %hash ) ## ^list1 ^list2 ^list3 ^list4 ## ^^^^^^ dups ^^^^^