Perl   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了你如何在Perl中明确地销毁一个对象?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个具有DESTROY方法的Perl类.此方法用于隐式释放外部资源,如文件句柄或数据库事务.

给出这个类的一个实例,我想明确地消灭它.这样做的主要目的是使DESTROY方法被调用,以便外部资源被释放.但是,将“对象”本身从内存中释放出来将是一个额外的好处.

我该怎么做?我已经考虑直接调用DESTROY方法,并且定义引用该对象的任何变量.

解决方法

Perl5对象在最后一次引用消息后就会被破坏,除非你有自引用结构(参见 Destructors和两段垃圾回收段落之后的一些有趣的信息).

如果您没有自引用,则不需要担心任何事情,DESTROY方法将在需要时被调用;尝试自己破坏对象是不安全的(你如何确定对象不是其他地方的引用),除非你也在引用自己的引用(如果这是真的可能的,那将是重复的perl的努力,哪些不是一个好主意).

所以我会说,只要你没有循环引用:

>如果要在代码中的特定点释放外部资源,请使用release / close / dispose / whatever方法(DESTROY代码也可以调用)明确地执行此操作.
>如果你真的不在乎那个版本发生在你的代码的那一刻,那么它最终会被调用,不要担心.
>不要担心perl对象本身.

如果您有循环引用,则需要更加小心,并使用弱引用(参见Scalar::Util)来打破周期.

(换句话说,我不知道明确删除一个perl对象的方法,这对于引用计数的垃圾收集系统来说不太好)

大佬总结

以上是大佬教程为你收集整理的你如何在Perl中明确地销毁一个对象?全部内容,希望文章能够帮你解决你如何在Perl中明确地销毁一个对象?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:对象