in reply to Re: Creating an array of hash references
in thread Creating an array of hash references
Thanks to all for the replies. I see now that I did not make my problem clear enough. My script is accessing a company-proprietary package that interfaces with the server. The "Read()" routine from the package returns a hash. Depending on the event being read, the hash will have a different set of key/value pairs, but each hash contains an ID key/value pair so that the calling code can process the data correctly:
my %event = SECRET_PACKAGE_NAME::WaitForEvent($timeout);
My script is initiating an action which causes the server to spit out data at a much higher rate than normal. Originally I was reading a single hash and processing it real-time. Running some external diagnostics showed that I was missing some key data, so I decided to run a tight loop to collect ALL the data. I tried the following which didn't work:
my @Events; while(1) { my %event = (); eval { %event = SECRET_PACKAGE_NAME::WaitForEvent($timeout); }; if($@) { # timeout occurred, serial burst complete last; } else { push (@Events, \%event); } }# end while ... while(@Events) { # Get the first event, NOT the last one my $EventRef = shift(@Events); } # $EventRef points to garbage
Does this clarify my issue? I need to preserve all the key/value pairs of the received data somehow so that I can post-process the information. Thanks again for the responses
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Creating an array of hash references
by Tanktalus (Canon) on Mar 17, 2005 at 18:53 UTC | |
by Bobc (Initiate) on Mar 19, 2005 at 00:00 UTC | |
|
Re^3: Creating an array of hash references
by graff (Chancellor) on Mar 17, 2005 at 19:43 UTC | |
by Tanktalus (Canon) on Mar 19, 2005 at 00:20 UTC |