Parse [key=value]
package DoQueue::Parser::Metadata;
sub parse {
my ($class, $in) = @_;
my %result;
my @pairs = split /,/, $in;
foreach my $pair (@pairs) {
if (my ($key, $value) = ($pair =~ /^ $NOT_EQUALS = $NOT_EQUALS $/xo)) {
_trim($key, $value);
$result{$key} ||= [];
push @{$result{$key}}, $value;
}
else {
croak "parse error; cannot parse '$pair' into a key/value";
}
}
return \%result;
}
sub _trim {
do { s/^\s+//; s/\s+$// } for @_;
}