【发布时间】:2017-07-24 20:53:25
【问题描述】:
我有一个预期解析以下内容的 perl 脚本:
prog -t xyz -p "a b" -cm xyz.cmd -co xyz.config
但我希望它在我输入时出错
prog -t xyz -p a b -cm xyz.cmd -co xyz.config
(因为 -p 后面跟着不带引号的 a 和 b)。我正在使用 Getopt::Long 来处理 cmd 行参数。如何捕捉到上述情况并出错?
谢谢!
【问题讨论】:
-
在您的第二个用例中,
b将被视为常规命令行参数,并将持续存在于@ARGV中,因此只需检查@ARGV是否只有一个元素? -
如果
a或b预计不是字符串,那么您可以使用该事实,需要整数(或浮点)输入为-p。除此之外,在Getopt::Long完成它的部分之后,您将在@ARGV中有一个松散的b,您可以检查它。或者只是解析并检查-p输入。