對於我正在編寫的perl腳本,可能會提供很多(〜50)的命令行選項。他們中的大多數是可選的,所以通話只會提供一些選項。如何在Perl中使用Getopt時對參數進行分組?
我正在使用Getopt::Long
,但它不允許我多次使用GetOptions
。因此,我必須在一個GetOptions
調用中使用所有的命令行選項。
在使用GetOptions
時是否有一些很好的方法將選項分組?
$ cat test.pl
use strict;
use warnings;
use Getopt::Long;
my ($a, $b, $c, $d);
GetOptions ('a=s' => \$a, 'b=s' => \$b);
GetOptions ('c=s' => \$c, 'd=s' => \$d);
print "a = $a\nb = $b\nc = $c\nd = $d\n";
$ perl test.pl -a=AA -b=BB -c=CC -d=DD
Unknown option: c
Unknown option: d
Use of uninitialized value in concatenation (.) or string at test.pl line 10.
Use of uninitialized value in concatenation (.) or string at test.pl line 10.
a = AA
b = BB
c =
d =
$
正如我在問題中提到的,我有大約50個,如果他們沒有分組,很難跟蹤他們。 – Lazer 2010-11-12 10:19:18
@Lazer,那麼你將不得不更好地解釋「分組」的含義。 GetOptions不關心他們列出的順序;以任何對你有意義的順序列出它們。 – cjm 2010-11-12 10:27:14