# %hash is defined up here... my $orderby = "age" # or name, dob, etc my $direction = "ASC" # or DESC foreach my $id (sort { &mysort($direction) } keys %hash) { print "$id - $hash{$id}{$orderby}\n"; } # end-foreach sub mysort { my ($direction) = @_; if ($direction eq "DESC") { $hash{$b}{$orderby} <=> $hash{$a}{$orderby} || $hash{$b}{$orderby} cmp $hash{$a}{$orderby} } # end-if else { $hash{$a}{$orderby} <=> $hash{$b}{$orderby} || $hash{$a}{$orderby} cmp $hash{$b}{$orderby} } # end-else } # end-sub
In reply to sort direction by rsiedl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |