我是perl的新手,希望使用Getopt::Long::GetOptions
获取脚本的命令行选项。
我有这样的要求: -
1.) perl script.pl -c <name1> -c <name2> -m <name3> argument
此处我们有选项标记"-c"
和"-m"
可选,"argument"
是必需的。
有人能指出GetOptions
的正确用法吗?
由于 Arpit
答案 0 :(得分:4)
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中,并提出你手中的异常等。