GetOptions (
"a=s" => \@a,
"b=s" => \@b
);
@a = split(/,/,join(',',@a));
@b = split(/,/,join(',',@b));
####
my $opt = { # this has to be first because the sub-refs
# below are closures using it.
grot => [],
};
my $splitter = sub {
my ($name, $val) = @_;
push @{$opt->{$name}}, split q{,}, $val;
};
GetOptions( $opt,
'grot=s@' => $splitter,
) or die "can't parse options";
####
my $from_file = sub {
my ($name, $val) = @_;
open my $fh, "<$val" or die "can\'t open file \'$val\'";
local $/ = undef;
$opt->{$name} = <$fh>;
close($fh);
};