in reply to Being impervious to an 'each' reset

each() is vulnerable. Like it or not, your re-written version is the standard idiom for looping through a hash's key-value pairs when *anything* outside your control could interfere with an each() call.

foreach my $key ( keys %hash ) { my $val = $hash{$key}; ... }
For related info, see the thread Spot the bug, especially the replies by merlyn and ysth.

To improve readability with your long package names, you might do some combination of these refactorings: