呃。。。undef 一般可以将原先引用的值的引用计数减 1,一般可以减到 0,所以一般会触发随后的回收(但经常也不是立即回收)。如果被 undef 掉的值的引用计数已经大于 1 的话,则 undef 将失效,呵呵。。。(当然,没做 weaken 的循环引用的东西就更没戏了,呵呵)
一般地,除非在 XS 级别上做一些手脚,将一个要回收的东西的引用计数全部置为 0(不知有无现成的 CPAN 模块?),perl 几乎总是使用引用计数这种所谓的"穷人的GC"(但同时比 JVM 那种 GC 更廉价)。
Cheers,
-agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论