我得到了下面的代碼,可以按照我的需要工作,但想知道是否有更好的方法可以不使用引號。在Perl中使用Getopt :: Long來獲取多維數據結構
myScript.pl --filter 'key1 foo bar' --filter 'key2 baz qux'
#!/usr/local/bin/perl5.8.8
use warnings;
use strict;
use Getopt::Long;
use Data::Dumper;
my %filter;
GetOptions("filter=s" => sub { my @args = split(/\s/, $_[1]); $filter{$args[0]}{value1} = $args[1]; $filter{$args[0]}{value2} = $args[2]; });
print Dumper %filter;
我得到一個滿意的輸出:
$VAR1 = 'key2';
$VAR2 = {
'value1' => 'baz',
'value2' => 'qux'
};
$VAR3 = 'key1';
$VAR4 = {
'value1' => 'foo',
'value2' => 'bar'
};
不過,我想用它這樣的,不帶引號:
myScript.pl --filter key1 foo bar --filter key2 baz qux --other_option ...
鍵1和鍵2是哈希鍵這裏會獨一無二。
任何意見/建議?
謝謝!參數的數量將保持不變。 1個鍵和2個值。 – Wilderness
是的。我讀過它,但沒有找到更多的線索來幫助我解決這個問題。正如你所建議的那樣,我使用了上面同樣的例子--filter1, - filter2等。沒關係。我會按原樣使用它。感謝您的建議。 – Wilderness