GetOptions参数的第二个可选值

时间:2015-05-21 11:57:15

标签: perl getopt-long

我想要一个选项,其中第一个值是必需的,第二个值是可选的。

例如,

./foo --arg mandatory optional

如果我使用=s{2},则强制用户输入第二个选项。

我不想允许n个值...我想强制只允许两个值,第二个值是可选的。

这是GetOptions支持的功能吗?

2 个答案:

答案 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 ]