I'm looking for a way to read a file with records such as follows:
I would like to take these and using a hash for each unique ID, build an array of hashes within it for the other fields. I came up with the following and it does not work. I'm hoping one the enlightened ones could help me. I know that I'm just being really dense here but I spent all afternoon yesterday trying to figure it out and it never seems to quite work. Please Help..... and tell me what I'm doing wrong. Humbly yours - MickID|LastName|FirstName|TimeIN|TimeOUT 0001|Flintstone|Fred|0900|1300 0001|Flintstone|Fred|0900|1100 0001|Flintstone|Fred|1200|1630 0002|Flintstone|Wilma|0900|1500 0002|Flintstone|Fred|0930|1100 0003|Rubble|Barney|0900|1100
#load the data... while(<FILE>){ chomp; @result = split (/\|/); my @rec = ({LastName=>$result[1], FirstName=>$result[2], TimeIN=>$ +result[3], TimeOUT=>$result[4]}); $thisrecord = \@rec; push @{$ID{$result[0]}},$thisrecord; } close(FILE); #print the data foreach $key(sort keys %ID){ print "$key\n"; foreach (@{$ID{$key}}){ print "$_->{gender}\n"; } }
In reply to Nested Data Structure Problems by mrmick
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |