in reply to Accessing a hash with inconsistent key names

Here's a good way if you want to fetch multiple values from the hash: (you mentioned slice)

my $result = { 'TEST[2]' => '24', 'RESPMSG[30]' => 'invalid or empty account expir', }; my %lookup; $lookup{/^(.*)\[\d+\]$/ ? $1 : $_} = $_ foreach (keys(%$result)); print($result->{$lookup{'TEST'}}, $/); # 24 my @slice = @$result{$lookup{'TEST'}, $lookup{'RESPMSG'}}; print(join(', ', @slice), $/); # 24, invalid or empty account expir my @keys = ('TEST', 'RESPMSG'); my %subhash = map { shift(@keys) => $_ } @$result{@lookup{@keys}}; print(join(', ', %subhash), $/); # TEST, 24, RESPMSG, invalid or empty account expir my @keys2 = ($lookup{'TEST'}, $lookup{'RESPMSG'}); my %subhash2 = map { shift(@keys2) => $_ } @$result{@keys2}; print(join(', ', %subhash2), $/); # TEST[2], 24, RESPMSG[30], invalid or empty account expir