当前位置:  开发笔记 > 编程语言 > 正文

Perl的Getopt :: Long解析参数我没有提前定义吗?

如何解决《Perl的Getopt::Long解析参数我没有提前定义吗?》经验,为你挑选了2个好方法。

我知道如何使用Perl的Getopt :: Long,但我不知道如何配置它来接受任何未明确定义的"--key = value"对并将其粘贴在哈希中.换句话说,我不知道用户可能想要什么选项,所以我无法定义所有选项,但我希望能够解析所有这些选项.

建议?提前谢谢.



1> Jon Ericson..:

Getopt::Long文档提供了一个可能有用的配置选项:

pass_through (default: disabled)
             Options that are unknown, ambiguous or supplied
             with an invalid option value are passed through
             in @ARGV instead of being flagged as errors.
             This makes it possible to write wrapper scripts
             that process only part of the user supplied
             command line arguments, and pass the remaining
             options to some other program.

解析常规选项后,您可以使用runrig提供的代码来解析ad hoc选项.



2> runrig..:

Getopt :: Long不这样做.您可以自己解析选项...例如

my %opt;
my @OPTS = @ARGV;
for ( @OPTS ) {
  if ( /^--(\w+)=(\w+)$/ ) {
    $opt{$1} = $2;
    shift @ARGV;
  } elsif ( /^--$/ ) {
    shift @ARGV;
    last;
  }
}

或者修改Getopt :: Long来处理它(或修改上面的代码以便在需要时处理更多种类的选项).

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有