for my $d (sort {$a cmp $b} keys %{{map {$_ => $hash{$_}{desc}} keys %hash}} ) { ... ... } #### my %descs = map { $_ => $hash{$_}{desc} } keys %hash; for my $d ( sort keys %descs ) { ... ... } #### my %descs = map { $_ => $hash{$_}{desc} } keys %hash; for my $d ( sort { $descs{$a} cmp $descs{$b} } keys %desc ) { ... ... } #### my %descs = map { $_ => $hash{$_}{desc} } keys %hash; for my $d ( sort { $descs{$a} cmp $descs{$b} } keys %descs ) { my $desc = $descs{$d}; ... } #### for my $d ( sort { $hash{$a}{desc} cmp $hash{$b}{desc} } keys %hash ) { my $desc = $hash{desc}{$d}; ... }