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]; > } >
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. david -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]