我想要一个选项,其中第一个值是必需的,第二个值是可选的。
例如,
./foo --arg mandatory optional
如果我使用=s{2}
,则强制用户输入第二个选项。
我不想允许n个值...我想强制只允许两个值,第二个值是可选的。
这是GetOptions
支持的功能吗?
答案 0 :(得分:5)
假设您正在使用Getopt::Long
模块,请使用=s{1,2}
:
use Getopt::Long;
my @arg;
GetOptions(
"arg=s{1,2}" => \@arg,
);
答案 1 :(得分:1)
Getopt :: long的替代方法是使用Getopt::Std
use strict;
use Getopt::Std;
my %opt;
getopts('a:b:c:;d', \%opt);
因此,-d
可能用于在代码中切换调试。
冒号:选项后表示您需要为开关添加值
分号后的任何事情;是可选的。
用法:perl myscript.pl -a <value> -b <value> -c <value> [ -d ]