in reply to perl -x to test while developing

Some more riddles:

% perl -mstrict -le 'print $x**$y;' 1 % perl -l require strict; print $x**$y; <EOF> 1 % perl #!perl -MCarp -Mstrict Too late for "-MCarp" option %
Perl's support for -M on the #! line is limited (to the point of not being supported at all in my version of Perl, v5.6.0). Your version appears to support it to some extent (was that small amount of support added or was it removed because it was buggy and too much work to do right?). That is why we have use.

-mstrict does nothing useful, just like 'require strict;'.

Oh, and nice trick. Thanks. (:

                - tye

Replies are listed 'Best First'.
Re: Re: perl -x to test while developing (riddles)
by bsb (Priest) on Apr 29, 2003 at 06:06 UTC
    -mstrict does nothing useful, just like 'require strict;'.
    Thanks, fixed.
    Although I maybe it's more like 'use strict ();'
    $ perl -mstrict=vars -le 'print $x**$y;' Global symbol "$x" requires explicit package...
    perlrun says "Any meaningful switches on that line will be applied" but "meaningful" seems to be strangely implemented. At least with 5.6.1.

    Here's another one:

    $ perl -x #!perl -wl -Mstrict -MB -MCGI Argument "MCGI" isn't numeric in subtraction (-). Argument "-MB" isn't numeric in subtraction (-).
      Although I maybe it's more like 'use strict ();'
      That's indeed what -m means, which, to be entirely precise, is like BEGIN { require strict }.

      Makeshifts last the longest.