|P is for Practical|
Update: this approach is not viable unless you accept heavy caveats. See Re^2: A simple import() for those special moments
Update++: this approach is not viable at all - see Re^4: A simple import() for those special moments..
Occasionally I have a small module that is supposed to keep a small handful of symbols around, most of the time for use with utility scripts that are pretty short themselves. Basically, I don't care for the flexibility Exporter gives me.
Even when I want it, I find the module's interface involving settings up several globals and inheriting from Exporter just plain ugly.
After poking around for a while, I ended up with the following import:
It will simply export any symbol, regardless of its type (function, hash, array etc) whose name matches the pattern in $exported - in this case all the variables declared with vars and the foo_bar function. It doesn't even have to turn off strictures. :)
Is there any reason I should be wary of this?Update: fixed logic and syntax error per sauoq's post.
Makeshifts last the longest.