Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^4: How to build a hash?

by Ben Win Lue (Friar)
on Apr 25, 2005 at 13:20 UTC ( #451178=note: print w/ replies, xml ) Need Help??


in reply to Re^3: How to build a hash?
in thread How to build a hash?

Sorry, maybe my use english is a bit confusing... 8-)
My problem was, I stored a reference to a hash (%hash_a) in a hash (%hash_b). Worked perfectly for one record.
Now, when i overwrote the contents of %hash_a, the contents in %hash_b where overwritten, too.
The whole stuff worked for more than one record only after I introduced the curly braces.


Comment on Re^4: How to build a hash?
Re^5: How to build a hash?
by davorg (Chancellor) on Apr 26, 2005 at 15:16 UTC

    There are two ways to take a reference to a hash.

    If you use the \%hash syntax then you are taking a reference to the _original_ hash. Any updates that you make through that reference will obviously update the original hash (as, actually, there is only ever one hash).

    If you use the { %hash } syntax then you are creating a new anonymous hash which is a _copy_ of your original hash and getting a reference to this new hash. Any updates you make through this reference will update the copy of the hash and not the original hash.

    I recommend reading "perldoc perlreftut" and "perldoc perlref" to clarify these concepts.

    --
    <http://www.dave.org.uk>

    "The first rule of Perl club is you do not talk about Perl club."
    -- Chip Salzenberg

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://451178]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (9)
As of 2015-07-02 05:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (27 votes), past polls