David wrote: > Rob Dixon wrote: > > > > > you couldn't get a new object by simply writing: > > > > my $object2 = $object; > > > > as what you would have is simply a second handle > > to the same object, and all changes to one would > > be echoed in the other. You would have to do: > > > > my $object2 = clone ($object); > > > > sub clone { > > my $original = shift; > > my @newdata = @$original; > > return [EMAIL PROTECTED];
That should, of course, be return [EMAIL PROTECTED]; > > } > > > > this will not clone the object for you. the function only makes a > copy of the referenced data the object represent and then return > another ref back to the caller. > > at it's min. you need: > > sub clone{ > my $obj = shift; > return bless [EMAIL PROTECTED] => ref $obj; > } > > or the object will be lost. this is still, by far, not perfect. it > only does a shadow copy, if $obj contains reference to other objects, > the clone will not be distinct from the orginal object. You miss my point by taking the second half of my post out of context. I was comparing the problem of cloning an object with the simpler one of copying an array reference without simply duplicating the refrence. Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]