Thanks, I am using the BEGIN block ... instead of creating another module
You don't need a BEGIN {} block to import/export or touch %ENV (icky like a code smell potentially almost), just simply make another module :) do stuff in import, it takes args
use Local::TouchEnvFirst; ## import use Local::TouchEnvSecond -optionFantastic; use Local::TouchEnvSecond -optionNotFantastic; no Local::TouchEnvFirst; ## unimport no Local::TouchEnvSecond -tooComplicated; use Local::Madness -init => sub { warn "if you gotta run me, go ahead :)"; };
Does the light bulb turn on? :)
What I still don't understand is why use subs lost this race. Say:
Same reason, it doesn't define the subroutine, its a forward declaration, its exactly like this literal code
sub TestMe; BEGIN { TestMe } sub TestMe { warn "oh no you didn't" } __END__ $ perl testme Undefined subroutine &main::TestMe called at testme line 2. BEGIN failed--compilation aborted at testme line 2.
In reply to Re^3: Can't call sub within same package in BEGIN block
by Anonymous Monk
in thread Can't call sub within same package in BEGIN block
by exilepanda
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |