in reply to Extracting array of hashes from data
This line seems to be your problem:
$alldata{$key} = push [ %temphash ];
you probably really meant to push %temphash on to the array ref in $alldata{$key}. In that case you can reference that array with @{ $alldata{$key} }. Then you can just push a reference to %temphash on top of it:
push @{ $alldata{$key} }, \%temphash;
(the array will be automatically created as needed)
Of course see perldsc and perlref if you haven't already.
update: Typo fixed. Thanks srawls.
In Section
Seekers of Perl Wisdom