I was recently turned on to perl -s as a way to parse command line options (please, I dont want to know about any more command line options modules, its way overkill).
So, without further ado, from perldoc perlrun:
So I am taken to understanding that I can then use an option from the command line to have $xyz (or $switch, as used in the example below) defined.-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" }
Here's a relevant example:
#!/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;
which yields us:
I guess then what I need to do is "turn off" strict while I am parsing the command-line options. My idea was to use an anonymous code block ( { ... } ) turn off strict in there, and then just close it.Global symbol "$switch" requires explicit package name at minus-ess.pl + line 7.
thanks,
dep.
--
i am not cool enough to have a signature.
In reply to Using perl's runtime options with -Mstrict by deprecated
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |