in reply to pushing hash values to an array
#!/usr/local/bin/perl use strict; use warnings; %h=('1', 'one', '2', 'two', '3', 'three');
Since you're under strict this won't even compile.
@arr=(1,2);
Ditto! (But I won't insist further.)
foreach $key(keys %h) { push(@arr,$h{$key}); } print @arr;
Thus is correct.
foreach $key(keys %h) { push(@arr,$$h{$key});
This is not. Why do you expect $h{$key} to be a scalar reference?
print "@arr\n"; }
You probably want to print out of the loop. Be careful (also) when preparing test examples.
All in all I suspect (but it's hard to tell from your description of the problem) you be in a situation in which you have $href=\%h or the like, and then
is the way to go.push @arr, $href->{$key};
In Section
Seekers of Perl Wisdom