Perl MozRepl 清理问题

标签 perl firefox mechanize www-mechanize

我正在编写一个网络爬虫,我一直在使用 WWW::Mechanize::Firefox 来导航一些页面(对于其他我使用 WWW::Mechanize),这些页面在页面加载后继续加载内容,我从来没有问题。

昨天我在脚本中添加了 DBI 和 DBD::mysql,添加了将数据导出到数据库的查询(这非常有效),但是突然 MozRepl 开始出现这个错误:

(in cleanup) Can't call method "execute" on an undefined value at /Library/Perl/5.10.0/MozRepl.pm line 372 during global destruction.
(in cleanup) Can't call method "execute" on an undefined value at /Library/Perl/5.10.0/MozRepl.pm line 372 during global destruction.

并在 1 个周期后终止脚本(它应该运行直到到达特定文本文件的末尾,但它没有)。

我没有触及脚本这部分的任何内容(不需要将数据库与这些页面一起使用),至少是自愿的。我检查了文件比较应用程序,但无法解决任何问题。

发布代码可能很棘手,它很长,我不知道问题出在哪里。

编辑
有时它也会给出这个错误而不是前一个错误:
(in cleanup) Can't call method "cmd" on an undefined value at /Library/Perl/5.10.0/MozRepl/Client.pm line 186 during global destruction.

最佳答案

这与 DBI 或 DBD::mysql 无关。消息无需担心,但我承认它们不雅观。

这些消息是在 Perl 全局销毁期间以无序方式销毁剩余的 Perl/Javascript 对象时出现的。如果您想避免它们,请销毁您的 $mech对象之前
退出你的申请。

undef $mech;
# end of program

如果$mech对象在程序关闭之前被释放,Perl/Javascript 桥也可以有序地关闭。

另请注意,有关 WWW::Mechanize::Firefox 问题的首选论坛是 http://perlmonks.org :)

关于Perl MozRepl 清理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4035475/

相关文章:

ruby-on-rails - Rails 抓取 - 提交表单

python - 如何查找 Mechanize (python)发布的 POST 或 GET 变量

perl - 如何模拟 Moose 对象?

perl - 使用映射函数的语法错误

multithreading - 在 Perl 中使用共享哈希

javascript - 当我在 Firefox 扩展中使用 page-mod 添加内容脚本时。内容脚本函数执行三次

perl - 使用语句中的 Perl 哈希语法说明

javascript - resizeTo() 在 Firefox 中不起作用

javascript - 如何保护firefox浏览器扩展源代码

php - 使用 PHP 浏览网站