http://qs321.pair.com?node_id=33577


in reply to how do I use a hash of hashes reference to a function ?

You may wish to wrap your code in <code> tags next time. I'm not 100% sure what you're asking, but perhaps this code example will answer your question:
sub function { my $hashref = shift; $hashref->{three} = 3; } my %hash = ( one => 1, two => 2 ); &function(\%hash); print join(", ", keys %hash); # one, two, three
You can also have the same behavior like this:
sub function (%) { my %hashref = shift; ... } &function(%hash); # passes %hash as a ref
Then there's this:
sub function { my %hash = %{shift}; # de-references $hash{three} = 3; # Does not affect the real %hash! }

Replies are listed 'Best First'.
RE: Answer: how do I use a hash of hashes reference to a function ?
by Fastolfe (Vicar) on Sep 22, 2000 at 02:31 UTC
    Sorry, I neglected to read your title very well and did not take this one step further:
    %hash = ( one => { a => 10, b => 20 }, two => { c => 30, d => 40 } ); &function(\%hash); sub function { my $hash = shift; $hash->{two}->{d} = 50; # changes 'd' }
    You can go as deep as you want here with hashes of hashes of hashes. Hope that helps...