my ($previous,$next); my @keys = sort { $a <=> $b } keys %hash; for (my $i=0; $i < scalar @keys; $i+=1) { $previous = $keys[$i-1] unless $i == 0; $next = $keys[$i+1] unless $i == scalar @keys; last if $keys[$i] == $current; }