Why would you expect a warning from $blah = "hi";? There is nothing wrong with your package (except the Package statement, which should read package). The only warning you should get (and do get with warnings turned on) is:
Name "main::bar" used only once: possible typo...
which is correct.
Paul
Comment on Re^4: scope of "use strict"? (needed: "superstrict")