【问题标题】:Is the only way to disconnect WWW::Mechanize::Firefox from mozrepl destruction of the objects?断开 WWW::Mechanize::Firefox 与 mozrepl 破坏对象的唯一方法是什么?
【发布时间】:2013-09-20 09:16:40
【问题描述】:

正如标题所说,我正在尝试制作一个 perl 守护程序,它长期运行,我希望在资源使用方面保持清醒。

我看到的所有示例/文档似乎都没有提到断开会话的方法。

我可以在WWW::Mechanize::Firefox::Troubleshooting 中找到关于该主题的最佳文档 建议对象(和连接?)在全局销毁之前一直保持活动状态。

简而言之,我没有看到任何“断开连接”功能,并且想知道我是否遗漏了什么。

【问题讨论】:

    标签: perl www-mechanize mozrepl


    【解决方案1】:

    断开连接似乎是通过析构函数处理的。 Perl 为此使用特殊的DESTROY 方法。不建议手动调用此方法。

    您需要减少您的 $mech 对象的引用计数,以使其自动销毁。这发生在变量超出范围时,在进程结束时的全局销毁阶段,或者(在对象的情况下),通过为变量分配不同的东西,例如

    $mech = undef;
    

    要完全释放任何变量,您还可以

    undef $mech; # which btw is the answer provided in the FAQ you linked
    

    这些差异是微妙的,在这种情况下是无关紧要的。

    【讨论】:

    • 谢谢;我过早地驳回了该常见问题解答的 undef 部分,因为它只是关于关闭 Firefox 端的选项卡,而不是它也进行 perl 清理,回想起来很明显
    猜你喜欢
    • 1970-01-01
    • 2011-01-15
    • 2012-04-10
    • 2018-04-12
    • 1970-01-01
    • 2011-12-13
    • 2016-04-12
    • 2012-12-15
    • 2014-05-04
    相关资源
    最近更新 更多