具有多个值的命令行参数

Chr*_*911 4 perl command-line arguments

我正在做一个 perl 脚本,我需要从命令行获取多个值。例子:

perl script.pl --arg1 op1 op2 op3
Run Code Online (Sandbox Code Playgroud)

我正在使用 Getopt::Long 并且可以让它工作:

perl script.pl --arg1 op1 --arg1 op2 --arg1 op3
Run Code Online (Sandbox Code Playgroud)

但我真的需要(想要)第一个选择。

我检查了他们的文档,这应该是我想要的:

GetOptions('arg1=s{3}' => \@myArray);
Run Code Online (Sandbox Code Playgroud)

http://search.cpan.org/~jv/Getopt-Long-2.38/lib/Getopt/Long.pm#Options_with_multiple_values

但我收到这个错误:

选项规范错误:“arg1=f{3}”

有什么想法/解决方案吗?

Art*_*rtM 5

我想你的问题可能是f{3}f用于浮点参数(实数)。s如果您有字符串作为参数,则应该使用说明符。关于参数的数量,文档说:

还可以指定选项所采用的参数的最小和最大数量。foo=s{2,4} 表示一个选项至少有两个,最多有 4 个参数。foo=s{,} 表示一个或多个值;foo:s{,} 表示零个或多个选项值。

考虑文档中的注释并根据您的需求进行调整。