-s enables rudimentary switch parsing for switches on
the command line after the program name but before
any filename arguments (or before a --). Any switch
found there is removed from @ARGV and sets the
corresponding variable in the Perl program. The
following program prints "1" if the program is
invoked with a -xyz switch, and "abc" if it is
invoked with -xyz=abc.
#!/usr/bin/perl -s
if ($xyz) { print "$xyz\n" }
####
#!/usr/bin/perl -ws
# minus-ess.pl
use strict;
# if we run it ./minus-ess.pl -switch "foo" it should be defined.
my $switch = "hooray" unless (defined $switch);
print $switch;
####
Global symbol "$switch" requires explicit package name at minus-ess.pl line 7.