我的程序如下:无法限制参数的数目在与Getopt的一个GetOptions选择::龙
use strict;
use warnings;
use Getopt::Long;
my @letters;
my @words;
GetOptions(
"letters=s{2}" => \@letters,
"words=s{,}" => \@words
);
print "Letters: " . join(", ", @letters) . "\n";
print "Words: " . join(", ", @words) . "\n";
当我运行这个程序,我得到的输出如下:
perl getopts.pl --letters a --words he she it
Letters: a, --words
Words:
--words
作为--letters
参数本身的一部分被读取。我期望GetOptions
在这种情况下抛出错误消息。如何完成这件事。
“1对2个字母”应该是“1对2个字”?呃,我想你的意思是1-2“--letters”的论点。混淆词和字母也是争论的名称。 –
我想要的只是两个参数,否则会出错。即使我尝试使用“letters = s {2,2}”=> \ @letters没有帮助 –
如果您只需要两个参数,我会更改为“letters = s {,}”=> \ @letters,而外部GetOptions死亡或警告,除非@字母== 2 – JRFerguson