the_Don has asked for the wisdom of the Perl Monks concerning the following question:
I would like to know the difference between "%$foo{'bar'}" and "$foo->{'bar'}". To be more specific, I would like to know why and in what instance each form can be used correctly. I have a theory why, but I would like confirmation.
My theory is that the first method needs to have $foo contain the scalar that is that name of a hash that needs to be referenced because that scalar name is looked up in the variable table...
i.e,:
%my_hash = {}; $hash_ref = 'my_hash'; %$hash_ref{'foo'} = 'bar'; #sets %my_hash{'foo'} = 'bar'
So I think the above would work. The difference between the two scenarios is the type of reference. The arrow operator needs to have a reference that points to memory and a value in the variable table.
Is my logic correct? If not, please correct me, but if I am right, at least one person confirm it so I can move on to some more Perl enlightenment.
Thank you.
the_Don
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Using $foo->{'bar'} and not %$foo{'bar'}
by MrNobo1024 (Hermit) on Sep 10, 2002 at 14:19 UTC |