2011-04-22 83 views
1

使用GetOpt :: Long,是否可以創建一個動態參數列表?
Perl Getopt ::長動態參數

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

感謝

+0

當然,可以動態構建有效參數列表;除非您在源代碼中修復它們,否則所有列表都是動態的。 – 2011-04-22 23:59:11

回答

2

這應該做的伎倆:

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

哇。真棒。感謝您的快速回復 – Kamikaze 2011-04-23 00:24:35

0

Subs獲取參數的標量列表。該列表可以從任何表達式*生成,包括數組。

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

GetOptions(\%options, @optons); 

* —原型可以改變允許哪些表現形式和表達是如何評估的。