Perl 中的析构函数和垃圾回收


如果你之前使用过面向对象编程,那你一定会意识到需要创建一个析构函数来释放分配给对象且已用完的内存。Perl 会在对象超出范围后自动执行此操作。

如果你想要实现自己的析构函数(用来负责关闭文件或执行一些额外的处理),则需要定义一个名为DESTROY的特殊方法。此方法将在 Perl 释放分配给该对象内存之前立即调用该对象。在其他所有方面,DESTROY 方法与任何其他方法一样,你可以在此方法中实现任何你想要的逻辑。

析构函数方法只是一种名为 DESTROY 的成员函数(子例程),将在以下情况下自动调用 −

  • 当对象引用变量超出范围时。
  • 当对象引用变量被设为 undef 时。
  • 当脚本终止时
  • 当 perl 解释器终止时

例如,您可以简单地将以下方法 DESTROY 放在类中 -

package MyClass;
...
sub DESTROY {
   print "MyClass::DESTROY called\n";
}

更新于: 02-Dec-2019

323 个浏览量

开启您的 职业生涯

完成课程即可获得认证

开始
广告