It would be much better for the Perl program that generates the data to write it to a database. However, going with what you have been given:
use warnings; use strict; use Data::Dump::Streamer; my $data = <<DATA; 'main_data' => [ { 'LEVEL' => '12', 'CARNUM' => '1', 'REGIS#' => '1233456678987645RD ', 'ACCOUNT' => '6510334', 'YEAR' => '2008' }, { 'AMOUNT' => '200.00' }, { 'LEVEL' => '0', 'CARNUM' => '2', 'REGIS#' => '2234565478345R56T ', 'ACCOUNT' => '6510334', 'YEAR' => '2008' }, { 'AMOUNT' => '0.00' } ], DATA local $\; open my $InFile, '<', \$data; my $str = <$InFile>; close $InFile; no strict "vars"; eval "\%hash = ($data);"; my %accounts; while (@{$hash{main_data}}) { my ($accountInfo, $amount) = splice @{$hash{main_data}}, 0, 2; my $acct = $accountInfo->{ACCOUNT}; my $reg = $accountInfo->{'REGIS#'}; delete @{$accountInfo}{'ACCOUNT', 'REGIS#'}; $accounts{$acct}{$reg} = $accountInfo; $accounts{$acct}{$reg}{AMOUNT} = $amount->{AMOUNT}; } use strict; print "$accounts{6510334}{'1233456678987645RD '}{AMOUNT}";
Prints:
200.00
In reply to Re: Hash Problem!
by GrandFather
in thread Hash Problem!
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |