#!/usr/bin/perl -w use strict; use Data::Dumper; my %accounts; #a hash of hash my $member_number; while (<DATA>) { chomp; my ($type, @data) = split (/,/,$_); if ($type eq 'A') { $member_number = shift @data; @{$accounts{$member_number}}{qw/Surname Firstname Job Balance/} = @data; #extra line here so text won't wrap } elsif ($type eq 'B') { push @{$accounts{$member_number}{'transactions'}},@data; } else {die "database corrupted";} #optional.... } print Dumper \%accounts; #prints: #$VAR1 = { # '34' => { # 'Surname' => 'Einstein', # 'Job' => 'Physics', # 'Firstname' => 'Albert', # 'transactions' => [ # '2346.89', # '876.23', # '7656.81', # '745.21', # '25.63', # '89.56', # '7789.23' # ], # 'Balance' => '12.22' # }, # '01' => { # 'Surname' => 'Newton', # 'Job' => 'Physics', # 'Firstname' => 'Issac', # 'transactions' => [ # '144.56', # '1034.65', # '12.23' # ], # 'Balance' => ' 5.6' # } # }; __DATA__ A,01,Newton,Issac,Physics, 5.6 B,144.56 B,1034.65 B,12.23 A,34,Einstein,Albert,Physics,12.22 B,2346.89 B,876.23 B,7656.81 B,745.21 B,25.63 B,89.56 B,7789.23
In reply to Re: read multiple record data and populate in a new data stucture
by Marshall
in thread read multiple record data and populate in a new data stucture
by fseng
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |