http://qs1969.pair.com?node_id=42962


in reply to (tye)Re: how to use several modules by default?
in thread how to use several modules by default?

This isn't quite the same.

-M'Module qw(Foo Bar)' is one argument. The space in there is held within the single quotes, so I wouldn't think this would have any effect on multiple -M flags, unless the implementation is broken (which I suspect is the case).

Replies are listed 'Best First'.
(tye)Re2: how to use several modules by default?
by tye (Sage) on Nov 22, 2000 at 21:02 UTC

    Sorry, I wasn't clear and neither is the comment that I quoted. PERL_moreoptions() is passed a string (not, for example, a list of strings) and it doesn't handle quotes. What I meant to describe is that PERL_moreoptions() doesn't look for a new option after seeing a space after "-M" nor after "-m". Either that needs to happen or PERL5OPT needs to be split on whitespace and the resulting values passed ot PERL_moreoptions() one at a time.

    I would think that PERL_moreoptions() should be looking for spaces, otherwise it needs to be renamed PERL_onemoreoption().

    I'm sorry that this is a very quick reply as duty calls. Obviously more research is needed.

            - tye (but my friends call me "Tye")
      So if @ARGV contains the equivalent of, say, ('-Mstrict', '-Mdiagnostics'), PERL_moreoptions() sees this as if the elements were joined together? If so, I agree that that is a huge implementation flaw. It's perfectly valid to have ('-Mmodule qw(foo bar)', '-Mstrict'), which is what -M'module qw(foo bar)' would have given you, but joining them together loses the ability to differentiate. :(