And that last note is noteworthy. Such variables are not the same as lexical variables; they are package variables in package main::.-s enables rudimentary switch parsing for switches on the comman +d line after the program name but before any filename arguments (or +before an argument of --). This means you can have switches with two leading dashes (--help). Any switch found there is removed fr +om @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" } Do note that --help creates the variable ${-help}, which is n +ot compliant with "strict refs".
-- Randal L. Schwartz, Perl hacker
In reply to •Re: defining variable values on the commandline
by merlyn
in thread defining variable values on the commandline
by fjonckers
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |