#--snip -- Hash declaration omitted -- #-- Schwartzian Transform Sort -- my @sorted= map{ $_->[3] } sort{ $a->[0] cmp $b->[0] || $a->[1] cmp $b->[1] || $a->[2] cmp $b->[2] } map{ [ @{ $myData{$_} }{qw| Category File Name | },$_] } keys %myData; print join (", ",@sorted), "\n"; #Prints: Method2, Method4, Method3, Method1