http://qs321.pair.com?node_id=125695


in reply to Re: Re: perl -s is evil?
in thread perl -s is evil?

I can replicate that. But more to the point, I also get the following result which is closer to the original post:

(using both Perl 5.6.0 on Win95 and Perl 5.005_02 on Solaris)

% perl -sle '"Hello" =~ /(\w+)/; print $1' -- -1=foo foo
It's just plain wrong. Not only can $1 be assigned to, but afterward it refuses to take the pattern from the regex.

buckaduck

Replies are listed 'Best First'.
Re: Re: Re: Re: perl -s is evil?
by jclovs (Sexton) on Nov 16, 2001 at 21:29 UTC
    Well, just some fooling around with the last statement Re: Re: Re: perl -s is evil? on my linux box runing Perl 5.005_03, I decided to see what taint checking would do to this example. Wwll here's the results:
    $ perl -sleT 'use diagnostics; use strict; "Hello" =~ /(\w+)/; print $ +1' -- -1=foo $
    While T in any other position returns
    $ perl -sleT 'use diagnostics; use strict; "Hello" =~ /(\w+)/; print $ +1' -- -1=foo foo $
    Clovs aka jclovs
      ummm... You've got a bit of a command like goof there.... The following one-liner illustrates it. Can you figure it out?
      perl -weT 'print "I like jellybeans"' Useless use of a constant in void context at -e line 1.
      consult perlrun for hints. ;-)

      -Blake