2010-02-10 67 views
1

我收到以下错误,当我运行的小示例脚本:为什么WWW :: Mechanize :: Firefox找不到它是“新”的方法?

无法找到对象的方法“新”通过包“WWW ::机械化::火狐”(也许 你忘了装载“WWW ::机械化::火狐“?)在mechtest.pl线2

use WWW::Mechanize::Firefox; 
my $mech = WWW::Mechanize::Firefox->new(); 
$mech->get('http://google.com'); 

$mech->eval_in_page('alert("Hello Firefox")'); 
my $png = $mech->content_as_png(); 

我已经安装了WWW ::机械化:: Firefox中,我已经安装在Firefox上MozRepl插件。为什么它不能找到新的?

+1

如果合适,您是否可以将答案标记为正确,以便我们知道解决方案是什么? – 2011-11-21 16:06:34

回答

1

听起来像WWW :: Mechanize :: Firefox没有正确安装。重新启动并确认它已正确安装(cpan,ppm等)。

1

该模块需要一些依赖像MozRepl::RemoteObject等 你或许应该重新安装使用CPAN或ppm(如果使用的ActiveState)等

+0

我使用PPM进行安装。 – SJaguar13 2010-02-10 04:01:52

+0

缺少依赖关系会导致它在遇到'use'时立即失败,而不是在他调用 - > new()时失败。 – 2010-02-11 12:02:00

5

最有可能你是在Windows和有一个旧版本的WWW的::机械化:: Firefox已安装。那个旧版本当时(严重)名为Fire_F_ox(注意大写字母F)。看你的机器上是否有文件FireFox.pm。

Windows具有不区分大小写的文件系统,因此即使您请求加载文件Firefox.pm,也会很高兴地加载文件FireFox.pm。

解决方案是卸载WWW :: Mechanize :: FireFox并安装WWW :: Mechanize :: Firefox。另外,对于将来的报告,如果您告诉我们Perl的版本,模块的版本和您使用的操作系统,它会极大地帮助您。

-max

相关问题