my %take_counts = ( foo => 1, bar => 2, baz => 3, ); print "while:\n"; while (my ($key, $value) = each (%take_counts)) { print "\t$key\t$value\n"; } print "foreach:\n"; foreach (my ($key, $value) = each (%take_counts)) { print "\t$key\t$value\n"; } __END__ while: bar 2 baz 3 foo 1 foreach: bar 2 bar 2