Shell perl Getopt::Long::GetOptions用法
我想使用Shell perl Getopt::Long::GetOptions用法,shell,perl,command-line-tool,Shell,Perl,Command Line Tool,我想使用Getopt::Long::GetOptions为脚本获取命令行选项 我有这样的要求: perl script.pl -c <name1> -c <name2> -m <name3> argument perlscript.pl-c-c-m参数 这里我们有可选的选项标志-c和-mm,而参数是必需的 有人能指出GetOptions的正确用法吗 当未提供选项时,GetOptions不会返回错误结果 这就是为什么它们被称为“选项” 换句话说,如果您需要一
Getopt::Long::GetOptions
为脚本获取命令行选项
我有这样的要求:
perl script.pl -c <name1> -c <name2> -m <name3> argument
perlscript.pl-c-c-m参数
这里我们有可选的选项标志-c
和-m
m,而参数
是必需的
有人能指出GetOptions
的正确用法吗
当未提供选项时,GetOptions
不会返回错误结果
这就是为什么它们被称为“选项”
换句话说,如果您需要一个强制参数,则需要在GetOptions
调用之外显式检查它
如果参数是
@ARGV
的一部分,而不是选项,请使用--
发出选项结束的信号。在下面的示例中,脚本将通过$ARGV[0]
访问参数
:
perl script.pl -c <name1> -c <name2> -m <name3> -- argument
perlscript.pl-c-c-m——参数
以下是示例代码和结果
如果您想了解有关如何处理多值选项的更多信息,请参阅documantation:
还有一件事,Getopt::Long::GetOptions没有提供处理强制选项的方法。您应该检查手上的@ARGV和raiseexceptions等中是否有强制选项。或者,您可以设置
pass_through
,让所有未知参数转到@ARGV
<代码>使用Getopt::Long qw(:config pass_through)但要小心,因为这会影响选项值的“类型检查”。谢谢Kyanny,您的答案很有帮助。我还有一个问题,我想用“+”作为选项?我可以做GetOptions('+=f'=>sub{$plus=“true”})吗