带有关键字的perl命令行参数

时间:2013-11-25 16:24:39

标签: perl command-line-arguments

我是Perl的新手,目前我将命令行参数传递给perl脚本并通过ARGS [0]检索它。

perl <perlscript.pl> windows IE.

我想给上述值提供关键字。

perl <perlscript.pl> -os windows -browser IE -instance 2.

有时可能存在或不存在实例。我如何在perl脚本中处理这个问题。

2 个答案:

答案 0 :(得分:6)

使用Getopt::Long并将选项存储在哈希中:

use warnings;
use strict;
use Getopt::Long qw(GetOptions);

my %opt;
GetOptions(\%opt, qw(
    os=s
    browser=s
    instance=i
)) or die;

答案 1 :(得分:3)

有几个模块用于处理命令行参数:Getopt::DeclareGetopt::Long可能是最受欢迎的。在我的工作中,我们主要使用Getopt :: Declare,因为@toolic覆盖了Getopt :: Long,因此我展示了它的例子。

my $ARGS = Getopt::Declare->new(
   join("\n", 
        "[strict]",
        "-os       <string> The operating system [required]",
        "-browser  <string> The web browser      [required]",
        "-instance <int>    The instance"
   ) 
) or die;

现在您可以通过$ARGS哈希访问任何参数。即$ARGS->{-os}

[strict]严格解析命令行 并报告任何错误。

选项声明后

[required]表示该字段必须在那里,请注意我将其从实例中删除。