Tomte has asked for the wisdom of the Perl Monks concerning the following question:
In comp.lang.perl.misc it was asked (message-ID: <firstname.lastname@example.org>)
I've tried various cloning modules to clone a structure containing weak references.my reply isThis prints: y: 1 z: I've tried it using the Clone module and Clone::PP. Clone::PP does the same as Storable. Clone gives a segmentation fault. I'm using Perl 5.8.0 on Linux 2.4.20-8use Storable 'dclone'; use Scalar::Util qw(weaken isweak); my $x = 99; my $y = [ \$x ] ; weaken $y->; $z = dclone $y; print "y: ", isweak $y->; print "z: ", isweak $z->;
After a little bit of thought I'd say that's normal, to be expected behaviour: You're not cloning the weakend reference, but the the data it references, the reference in z, poiting to the clone of $x, is a completly new one, the data is cloned, not the reference. I may misunderstand the behaviour though...hmmm kind regards, Tom
Now I'm curious: Am I right? And if I'm right: Is it possible to clone references (Update preserving their "weakend-state")?
An intellectual is someone whose mind watches itself.
-- Albert Camus