perl Getopt :: Long :: GetOptions用法

时间:2013-05-23 08:29:54

标签: perl shell command-line-tool perldoc

我是perl的新手,希望使用Getopt::Long::GetOptions获取脚本的命令行选项。

我有这样的要求: -

1.) perl script.pl -c <name1> -c <name2> -m <name3> argument

此处我们有选项标记"-c""-m"可选,"argument"是必需的。

有人能指出GetOptions的正确用法吗?

由于 Arpit

2 个答案:

答案 0 :(得分:4)

来自Getopt::Long documentation

  

GetOptions在未提供选项时不返回错误结果

     

这就是为什么他们被称为'选项'。

换句话说,如果您需要强制参数,则需要在GetOptions调用之外明确检查它。


如果参数是@ARGV的一部分而不是选项的一部分,请使用--表示选项的结束。在下面的示例中,脚本将通过argument访问$ARGV[0]

perl script.pl -c <name1> -c <name2> -m <name3> -- argument

答案 1 :(得分:1)

以下是示例代码和结果。

https://gist.github.com/kyanny/5634832

如果您想了解有关如何处理多个值选项的更多信息,请参阅文档说明:http://perldoc.perl.org/Getopt/Long.html#Options-with-multiple-values

还有一件事,Getopt :: Long :: GetOptions不提供处理强制选项的方法。你应该检查强制性选项是否在@ARGV中,并提出你手中的异常等。