in reply to unexpected results using -s switch

You have the perl -s at the top of the script but then you run the script with perl on the command line. Pick one. Either set the script to have execute permissions and then run the script or run the script from the command line with the -s option.
bruce:0:~/tmp $ cat p.pl
#!/usr/bin/perl -s
#
if ($foo eq "bar") { print "true\n" }
bruce:0:~/tmp $ ls -l p.pl
-rwxr-xr-x   1 bruce  bruce  59 Aug  5 08:36 p.pl
bruce:0:~/tmp $ ./p.pl -foo=bar
true
bruce:0:~/tmp $ perl p.pl -foo=bar
bruce:0:~/tmp $ 
bruce:0:~/tmp $ perl -s p.pl -foo=bar
true

Replies are listed 'Best First'.
Re^2: unexpected results using -s switch
by mojodaddy (Pilgrim) on Aug 04, 2007 at 23:24 UTC
    It's pretty tough to stump the band around here, isn't it? : )

    Doing as you suggest does produce the sought-after output:

    mojodaddy@muchomojo:~$ perl -s foo_eq_bar.pl -foo=bar true woo woo-hoo woopty-doo
    Still, I can't help wondering why only the "if ($foo eq 'bar')" script was affected while the "if ($foo)" script did what I expected regardless of where I put the -s.