首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将命令行参数传递给Perl程序?

如何将命令行参数传递给Perl程序?
EN

Stack Overflow用户
提问于 2008-12-12 03:05:06
回答 9查看 356.6K关注 0票数 140

我正在编写一个Perl脚本。如何将命令行参数传递给它?

示例:

代码语言:javascript
复制
script.pl "string1" "string2"
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-12-12 03:15:02

这取决于你想做什么。如果您想使用这两个参数作为输入文件,只需传递它们,然后使用<>读取它们的内容。

如果它们有不同的含义,您可以使用GetOpt::StdGetOpt::Long轻松地处理它们。GetOpt::Std仅支持单字符开关,而GetOpt::Long要灵活得多。来自GetOpt::Long

代码语言:javascript
复制
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

票数 191
EN

Stack Overflow用户

发布于 2008-12-12 03:07:34

您可以像您想的那样传递它们,在脚本中,您可以从数组@ARGV中获取它们。如下所示:

代码语言:javascript
复制
my $numArgs = $#ARGV + 1;
print "thanks, you gave me $numArgs command-line arguments.\n";

foreach my $argnum (0 .. $#ARGV) {

   print "$ARGV[$argnum]\n";

}

来自here

票数 61
EN

Stack Overflow用户

发布于 2008-12-12 03:14:43

代码语言:javascript
复制
foreach my $arg (@ARGV) {
    print $arg, "\n";
}

将打印每个参数。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/361752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档