sub parse_error($) { my $error = shift; my $values = $error =~ /\[([^\]]*)\]/; my %values; foreach my $param (split /,/, $values) { my ($k, $v) = split /=/, $param; $values{$k} = $v; } return %values; }