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};
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: pushing hash values to an array
by valavanp (Curate) on Oct 16, 2006 at 12:13 UTC | |
by blazar (Canon) on Oct 16, 2006 at 13:40 UTC | |
by wfsp (Abbot) on Oct 16, 2006 at 12:21 UTC |