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


in reply to Is using '-s' really bad and why?

So does anyone have a really strong reason NOT to use -s

I do. It has weird semantics that can trip you up. Consider:

% cat s #! /usr/bin/perl -s print "x is [$x]\n"; __END__ ~/perl% ./s -x=s x is [s] ~/perl% ./s -x s x is [1]

I'm not in the habit of using = to set flag values, so on the odd occasion that I use -s it always trips me up. So -s is only for my private stuff that no-one else needs to use, ever. Even so, I tend to print out flag values as a reminder to watch out for flags that I might be accidently setting to 1.

That, and it doesn't play very nicely with strict 'vars'.

On the other hand, I can remember how it works, whereas when using Getopt::Std or Getopt::Long I always have to consult the documentation, or cut and paste some code from another program. But still, those modules do The Right Thing, so there's really no reason not to use them in programs that will be run by anyone other than yourself. The -s assignment oddity is just too annoying.

Update: it might sound like I'm advocating that it is alright to use -s on some occasion. I should point out that the number of scripts I have written that I can recall using -s make a grand total of... 1.

- another intruder with the mooring of the heat of the Perl