carcassonne has asked for the wisdom of the Perl Monks concerning the following question:
I'm stumped by what seems to be a very basic thing. Using a hash ref inside a subroutine. I've tried several syntaxes but none worked so far, with results ranging from syntax errors to 'not a HASH reference' and such.
Here is the problem in a nutshell.
The idea is to be able to work on different parts of a large hash whose some of its 'subhashes' so to speak have the same structure. The result of that work is placed inside a hash taht contains already unit data, passed along to the subroutine. The work has to do with the interface sections of different types of units.
my %myUnitIfs; processInterfaceData(\$config{units}{myUnit}{interfaces}, \%myUnitIfs) +;
This would eventually be called on other units, with diffrenet new hashes to collect output:
processInterfaceData(\$config{units}{yourUnit}{interfaces}, \%yourUnit +Ifs); processInterfaceData(\$config{units}{anotherUnit}{interfaces}, \%anoth +erUnitIfs);
And here I've tried: $h, %$h, and many other variations.
sub processInterfaceData { my ($h, $nh) = @_; print "$key\n" foreach my $key (keys %{$h}); }
Pray tell, how one is to write the reference inside the subroutine so that elements of the hash are properly accessed ? - Thanks !
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Using foreach on a hash passed to a subroutine
by Jenda (Abbot) on Sep 13, 2009 at 15:25 UTC | |
by carcassonne (Pilgrim) on Sep 13, 2009 at 16:29 UTC | |
|
Re: Using foreach on a hash passed to a subroutine
by bart (Canon) on Sep 13, 2009 at 15:24 UTC | |
|
Re: Using foreach on a hash passed to a subroutine
by Anonymous Monk on Sep 13, 2009 at 15:24 UTC | |
|
Re: Using foreach on a hash passed to a subroutine
by cdarke (Prior) on Sep 14, 2009 at 08:52 UTC |