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.
In Section
Meditations