Perl Getopt ::长动态参数

时间:2011-04-22 23:45:29

标签: perl

使用GetOpt :: Long,是否可以创建动态参数列表?

myprog.pl --dir / tmp --force --releaes 1.2.3

 
my %options = (); 
my @options = qw(dir force release );
#note dir and release take argument, and force is a flag my $result = GetOptions(\%options, \@optons); #or something like that print "dir $options{dir} \n"; #produces say /tmp print "force $options{force} \n"; # produces 1 or 0 print "release $options{release} \n"; # and so on

由于

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

my @options = qw(dir=s force release=s); 
...
my $result = GetOptions(\%options, @options);

答案 1 :(得分:0)

Subs获取参数的标量列表。该列表可以从任何表达式*生成,包括数组。

my @options;
if (condition()) { # Dynamic
   @options = qw( dir=s force release=s );
} else {
   @options = ...;
}

GetOptions(\%options, @optons);

* - 原型可以改变允许的表达式以及表达式的计算方式。