【发布时间】:2026-02-06 11:10:02
【问题描述】:
在使用 Getopt::Long 读取命令行参数时,有没有办法强制使用 -flags?以我目前的情况为例:
GetOptions('r=s' => \$var1,
'lf=f' => \$var2,
'uf=f' => \$var3,
'trd=i' => \$var4,
'vd=f' => \$var5)
or die("$usage");
如果仍然提供参数但没有标志(例如 -lf),则脚本不会退出或显示 $usage。相反,它无论如何都会运行,直到它后来不可避免地出错,因为参数没有被读入它们各自的变量(并且很可能是错误的顺序)。
【问题讨论】:
-
不清楚您所说的“标志”是什么意思。如果您只使用
-lf作为选项运行上面的代码,那么GetOptions将返回错误状态。您的意思是您希望某些选项是强制性的吗? -
@Borodin 我的意思是 -lf、-uf、-trd 和 -vd。我可以通过以下方式运行脚本而不会出现错误结果:script.pl arg1 arg2 arg3 arg4。我期望这将无法运行,因为未提供:script.pl -lf arg1 -uf arg2 -trd arg3 -vd arg4。
标签: perl getopt-long