sub sorter { $a = shift; $b = shift; if($hashYear{$a} < $hashYear{$b}) { return $a; } elsif($hashYear{$a} == $hashYear{$b}) { if($hashMonth{$a} < $hashMonth{$b}) { return $a; } elsif($hashMonth{$a} == $hashMonth{$b}) { if($hashDay{$a} < $hashDay{$b}) { return $a; } } } else { #b is greater than a (or, in a rare case the are completly equal) return $b; } }