http://www.perlmonks.org?node_id=317001


in reply to Foo is not a Bar, why?

Variable initialization race conditions are always something to be wary of. I admit I was fooled by your code; this is why when I put packages right into a script rather than into separate module files, I instinctively stick the entire package into a BEGIN { } block and think later.

The "problem" lies more with the fact that Perl has so many DWIM nooks and crannies that it is easy to make a destructive change instead of transforming to something equivalent if you don't pay attention very carefully.

Makeshifts last the longest.