Also note that "-M Foo" is *not* the same as "use Foo;". Perlrun says:
-M[-]module -M[-]'module ...' -[mM][-]module=arg[,arg]... -mmodule executes "use" module "();" before executing your program. -Mmodule executes "use" module ";" before executing your program. You can use quotes to add extra code after the module name, e.g., '-Mmodule qw(foo bar)'. If the first character after the -M or -m is a dash ("-") then the 'use' is replaced with 'no'. A little builtin syntactic sugar means you can also say -mmodule=foo,bar or -Mmodule=foo,bar as a short- cut for '-Mmodule qw(foo bar)'. This avoids the need to use quotes when importing symbols. The actual code generated by -Mmodule=foo,bar is "use module split(/,/,q{foo,bar})". Note that the "=" form removes the distinction between -m and -M.
The important part is:
-mmodule executes "use" module "();"
Note the trailing (), meaning that the modules import routine will not be called. So, Exporter won't export the variables.
Abigail
In reply to Re: Side effects of use-ing base (vs our @ISA)
by Abigail-II
in thread Side effects of use-ing base (vs our @ISA)
by ViceRaid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |