my %foo = 1 .. 10; while(my($k,$v) = each %foo){ print "k($k)v($v)\n"; } while(my($k,$v) = each %foo){ print "k($k)v($v)", scalar keys %foo, "\n"; } __END__ k(1)v(2) k(3)v(4) k(7)v(8) k(9)v(10) k(5)v(6) k(1)v(2)5 k(1)v(2)5 k(1)v(2)5 k(1)v(2)5 k(1)v(2)5 k(1)v(2)5 ...