我正在编写一个Perl脚本。如何将命令行参数传递给它?
示例:
script.pl "string1" "string2"
发布于 2008-12-12 03:15:02
这取决于你想做什么。如果您想使用这两个参数作为输入文件,只需传递它们,然后使用<>
读取它们的内容。
如果它们有不同的含义,您可以使用GetOpt::Std
和GetOpt::Long
轻松地处理它们。GetOpt::Std
仅支持单字符开关,而GetOpt::Long
要灵活得多。来自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
或者,@ARGV
是一个包含所有命令行参数的特殊变量。$ARGV[0]
是第一个(即在您的示例中为"string1"
),而$ARGV[1]
是第二个参数。你不需要一个特殊的模块来访问@ARGV
。
发布于 2008-12-12 03:07:34
您可以像您想的那样传递它们,在脚本中,您可以从数组@ARGV
中获取它们。如下所示:
my $numArgs = $#ARGV + 1;
print "thanks, you gave me $numArgs command-line arguments.\n";
foreach my $argnum (0 .. $#ARGV) {
print "$ARGV[$argnum]\n";
}
来自here。
发布于 2008-12-12 03:14:43
foreach my $arg (@ARGV) {
print $arg, "\n";
}
将打印每个参数。
https://stackoverflow.com/questions/361752
复制相似问题