我让下面的代码可以根据需要工作,但想知道是否有更好的方法可以不带引号。
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 ...
key1 和 key2 在这里是哈希键,并且是唯一的。
有什么想法/建议吗?