GetOptions 参数的可选第二个值

GetOptions Optional 2nd value to an argument

我想要一个选项,其中第一个值是强制性的,第二个值是可选的。

例如,

./foo --arg mandatory optional

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

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

这是 GetOptions 支持的功能吗?

假设您正在使用 Getopt::Long 模块,使用 =s{1,2} 应该可以:

use Getopt::Long;

my @arg;
GetOptions(
    "arg=s{1,2}" => \@arg,
);

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 ]