foreach (keys %var) { ## Here $_ will have a , b foreach ( map [scalar each %{$var{$_}}, $_], ($_) x keys %{$var{$_}} ) { print "inner '\$_': $_->[0]\n"; print "outer '\$_': $_->[1]\n"; } keys %{$var{$_}}; # iterator reset }