Syntactic Confectionery Delight | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
No, that makes perfect sense. If I pass in a reference while keeping a local copy then I'm free to alter the reference at will. Put differently - if I pass in an object as a parameter then that object is still free to modify itself independant of what the other enclosing object's needs are. This is how things are supposed to be, or at least I don't see why things should be different. It works this way if I think if it in terms of C or in terms of perl. Added: Further, I know that when I know I need to copy an array, I do exactly that. So instead of writing ->new( foo => \ @ary ) I'm likely (assuming I'm thinking clearly) to write ->new( foo => [ @ary ] ). That assumes its a one level array with no further references but I think you get the picture. I explicitly copy when I mean to and references retain all of their associated meaning. Added again: While I've never found the need for it if I did need a deep copy I understand that Storable's dclone() does this nicely. This of course completely blows lots of XS modules out of the water since they have external non-perl structures that wouldn't be copied. I don't think there is a safe or sane way to copy those beasts. In reply to Re: On the involuntary encapsulation violation
by diotalevi
|
|