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 !
In reply to Using foreach on a hash passed to a subroutine by carcassonne
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |