X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlmod.pod;h=99d08eb4f8fc3858b37fea2e0468f6a3bb2a6d9a;hb=1c7d9af3bd40a8ae4d0b1feabf16378e4446d90a;hp=518c04bf1942b68639ee83bcbee01950c0d0d1c0;hpb=9660f4819671f0b9100e5eabfa988ead3e799a1e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlmod.pod b/pod/perlmod.pod index 518c04b..99d08eb 100644 --- a/pod/perlmod.pod +++ b/pod/perlmod.pod @@ -539,7 +539,7 @@ between different threads. These threads can be used by using the C module or by doing fork() on win32 (fake fork() support). When a thread is cloned all Perl data is cloned, however non-Perl data cannot be cloned automatically. Perl after 5.7.2 has support for the C -and C special subroutines. In C you can do whatever +special subroutine. In C you can do whatever you need to do, like for example handle the cloning of non-Perl data, if necessary. C will be called once as a class method for every package that has it @@ -552,6 +552,7 @@ will be passed in to give more information about the state of cloning. If you want to CLONE all objects you will need to keep track of them per package. This is simply done using a hash and Scalar::Util::weaken(). +Perl after 5.8.7 has support for the C special subroutine. Like C, C is called once per package; however, it is called just before cloning starts, and in the context of the parent thread. If it returns a true value, then no objects of that class will