The code:



________________________________
From: Jim Gibson <jimsgib...@gmail.com>
To: beginners@perl.org
Sent: Fri, 9 October, 2009 11:00:55 AM
Subject: Re: Building a record on the fly via hash of hashes

At 10:14 PM -0700 10/8/09, Soham Das wrote:
> Hello All, I am doing some file reading operation, and parsing the data(its a 
> CSV file) with a hash reference and then intend to store it in a record. 
> something like: loop: until file ends; 
> $hashref->{'A'}=$filehandle->{'Action'}; $hashref->{'B'}= 
> $filehandle->{'Name'}; $hashref->{'C'}= $filehandle->{'System'}; 
> $hashref->{'D'}=($filehandle->{'Price'}); $recordref->{$hashref->{'B'}}= 
> $hashref; loop : ends


You are better off including some actual Perl code, including some sample data.

> Here Action, Name,System,price are the CSV headers. Now, when the first line 
> is read, the details are parsed and stored in the $recordref as a hash 
> reference. Now when the loop iterates, and goes to the second line. The first 
> line contents are lost. Because the hash reference now points to the newer 
> data. How do I overcome this? More importantly do we have a push equivalent 
> for hash of hashes?

No. Unless each record has a unique key, you are better off using an array of 
hashes, rather than a hash of hashes. Of course, you could use the line number 
as a unique key, but an array would be more efficient.

-- Jim Gibson
j...@gibson.org

-- To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


      Yahoo! India has a new look. Take a sneak peek http://in.yahoo.com/trynew

Reply via email to