in reply to Why Doesn't each() DWIM?

Use a for (keys %hash) if you want it to get reset.