I'm working on a Perl script. How can I pass command line parameters to it?
Example:
script.pl "string1" "string2"
转载于:https://stackoverflow.com/questions/361752/how-can-i-pass-command-line-arguments-to-a-perl-program
I'm working on a Perl script. How can I pass command line parameters to it?
Example:
script.pl "string1" "string2"
转载于:https://stackoverflow.com/questions/361752/how-can-i-pass-command-line-arguments-to-a-perl-program
Depends on what you want to do. If you want to use the two arguments as input files, you can just pass them in and then use <> to read their contents.
If they have a different meaning, you can use GetOpt::Std and GetOpt::Long to process them easily. GetOpt::Std supports only single-character switches and GetOpt::Long is much more flexible. From GetOpt::Long:
use Getopt::Long;
my $data = "file.dat";
my $length = 24;
my $verbose;
$result = GetOptions ("length=i" => \$length, # numeric
"file=s" => \$data, # string
"verbose" => \$verbose); # flag
Alternatively, @ARGV is a special variable that contains all the command line arguments. $ARGV[0] is the first (ie. "string1" in your case) and $ARGV[1] is the second argument. You don't need a special module to access @ARGV.