my %h = qw( a 1 b 2 c 3 d 4 ); for (1..2) { my $i = 0; while (my ($key) = each %h) { print $key; keys(%h) if $_ == 2; # Reset %h's iterator in second test. last if ++$i == 10; # Break out of infinite loop. } print("\n"); } #### $ perl a.pl cabd cccccccccc