Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Shallow vs deep copy (Was Re^3: hash ref mind blow)

by Anonymous Monk
on Sep 25, 2008 at 15:38 UTC ( [id://713667]=note: print w/replies, xml ) Need Help??


in reply to Shallow vs deep copy (Was Re^3: hash ref mind blow)
in thread hash ref mind blow

Yeah, I thought that %{ _ref_ } created an alias, but now I've learned it just shallow copies the struct.

It's coincidental, but everytime I used it as reference passed to subs, I added subkeys and everything worked as an alias. To my surprise, when I added a root key to %copy and it didn't change %hash my world came tumbling down.

So it's back to $$copy->{key} stuff, as

use strict; local our %copy; *copy = \%hash;

Looks so unscoped to my personal perl taste. And Data::Alias will not cpan into my Strawberry perl, complaining about requiring perl 5.8.9 on Win32...

BTW ikegami, wow!

Now... I want to know what package does those hash textgraphs you posted. Cos Data::Dumper doesn't get even close to that kind of representation!

Replies are listed 'Best First'.
Re^2: Shallow vs deep copy (Was Re^3: hash ref mind blow)
by ikegami (Patriarch) on Sep 25, 2008 at 21:40 UTC
    local our %copy; *copy = \%hash;

    should be

    our %copy; local *copy = \%hash;

    Or if you prefer,

    local *copy = \%hash; our %copy;

    What's the point of localizing %copy? Depending on whether you do it before or after the aliasing, you either localize a variable you never use, or you localize %hash.

    But you do modify *copy, so you should localize that.

    I want to know what package does those hash textgraphs you posted.

    Notepad.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2026-02-16 11:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.