The code:
________________________________ From: Jim Gibson <[email protected]> To: [email protected] 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 [email protected] -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] http://learn.perl.org/ Yahoo! India has a new look. Take a sneak peek http://in.yahoo.com/trynew
