my @keys = sort your_sorting_routine keys %result; for my $i (0 .. $#keys - 1) { compare($result{ $keys[$i] }, $result{ $keys[$i + 1] }); } #### my $previous = retrieve_key(); while (defined (my $next = retrieve_key())) { compare($result{$previous}, $result{$next}); $previous = $next; }