我在Debian Linux上使用Perl 5.10.0(测试)并尝试安装Perl模块Net::Amazon::MechanicalTurk 1.01版。当我运行模块的测试套件时,我会收到如下错误:
t/01-ListOperations.......................Can't locate object method "new" via package "Net::Amazon::MechanicalTurk::Transport::RESTTransport" at /home/user/.cpan/build/Net-Amazon-MechanicalTurk-1.01-BO885C/blib/lib/Net/Amazon/MechanicalTurk/Transport.pm line 21. dubious [...] Failed 21/33 test scripts. 12/78 subtests failed. Files=33, Tests=78, 46 wallclock secs ( 1.50 cusr + 0.22 csys = 1.72 CPU) Failed 21/33 test programs. 12/78 subtests failed.
Net::Amazon::MechanicalTurk::Transport::RESTTransport
ISA Net::Amazon::MechanicalTurk::Transport
其中ISA Net::Amazon::MechanicalTurk::BaseObject
有一个子“new”。
我已安装了所有必需的模块,由mturk_install.pl
脚本验证。我已经检查了模块的CPAN页面上的问题,但是没有解决这些错误。
有没有人遇到过这些问题并提出任何解决方案?如果您成功使用此模块,您正在运行哪个版本的Perl?
答案 0 :(得分:4)
答案 1 :(得分:2)
答案 2 :(得分:2)
我已经构建了一个小补丁来帮助解决这个问题。库的内部逻辑出错,导致所有模块无法正常加载。在http://daveviner.blogspot.com/2009/12/amazon-mechanical-turk-perl-library.html
上查看补丁和我的说明答案 3 :(得分:1)
我在RT队列中应用了Dave Viner的补丁和两个补丁。在my CPAN directory中有一个版本为1.01_01的未经授权的版本。我将检查CPAN测试人员对修复程序的响应,并在此之后正式发布。如果您是原作者,请与我联系。
答案 4 :(得分:1)
我知道这是旧帖子,但即使在新的1.02版本中,它仍然是一个问题。很容易修复 - 只需从lib / Net / Amazon / MechanicalTurk / ModuleUtil.pm的第35行删除“已定义”即可完成。显然,亚马逊的每个人都运行旧版本的Perl。
答案 5 :(得分:0)
根据CPAN测试人员的说法,与Net::Amazon::MechanicalTurk一起使用的最新版Perl是5.8.9。我构建了一个本地副本,用于此特定模块。