我正在编写一个网络爬虫程序,我一直在使用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个周期后终止脚本(它应该一直运行到特定文本文件的末尾,但实际上并非如此)。
我没有接触脚本的这一部分的任何内容(不需要对那些页面使用db ),至少是自愿的。我检查了一个文件比较应用程序,什么也解决不了。
发布代码可能很棘手,它相当长,我不知道问题可能出在哪里。
编辑
有时它还会给出这个错误,而不是前一个错误:
(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.发布于 2010-10-28 16:03:44
这与DBI或DBD::mysql.The消息无关,没什么好担心的,但我承认它们很难看。
这些消息来自于剩余的Perl/Javascript对象在Perl全局销毁期间以无序的方式被销毁。如果您想要避免它们,请在退出应用程序之前销毁$mech对象。
undef $mech;
# end of program如果$mech对象在程序关闭之前被释放,那么Perl/Javascript桥也可以有序地关闭。
还请注意,有关WWW::Mechanize::Firefox问题的首选论坛是http://perlmonks.org :)
https://stackoverflow.com/questions/4035475
复制相似问题