in reply to Hash Problem!
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Hash Problem!
by Anonymous Monk on Sep 30, 2008 at 13:51 UTC | |
by JadeNB (Chaplain) on Sep 30, 2008 at 18:43 UTC |