2012-03-09 137 views
0

我正在尝试使用,这是我使用yum install perl-HTML-WikiConverter-MediaWiki.noarch安装的。为什么这个错误“找不到对象方法新”?

按照perldoc我应该能够

use HTML::WikiConverter; 
my $wc = new HTML::WikiConverter(dialect => 'MediaWiki'); 

但后来我得到

Can't locate HTML/WikiConverter.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at ./test.pl line 3. 
BEGIN failed--compilation aborted at ./test.pl line 3. 

如果我尝试

use HTML::WikiConverter::MediaWiki; 
my $wc = new HTML::WikiConverter(dialect => 'MediaWiki'); 

然后我得到

Can't locate object method "new" via package "HTML::WikiConverter" at ./test.pl line 4. 

如果我尝试

use HTML::WikiConverter::MediaWiki; 
my $wc = new HTML::WikiConverter::MediaWiki(dialect => 'MediaWiki'); 

然后我得到

Can't locate object method "new" via package "HTML::WikiConverter::MediaWiki" at ./test.pl line 4. 

问题

任何人都可以看看有什么不对吗?

更新

[[email protected] ~]# cpan HTML::WikiConverter 
Reading '/root/.cpan/Metadata' 
    Database was generated on Fri, 09 Mar 2012 16:12:01 GMT 
Running install for module 'HTML::WikiConverter' 
Running make for D/DI/DIBERRI/HTML-WikiConverter-0.68.tar.gz 
Checksum for /root/.cpan/sources/authors/id/D/DI/DIBERRI/HTML-WikiConverter-0.68.tar.gz ok 

    CPAN.pm: Building D/DI/DIBERRI/HTML-WikiConverter-0.68.tar.gz 

Checking if your kit is complete... 
Looks good 
Writing Makefile for HTML::WikiConverter 
Writing MYMETA.yml and MYMETA.json 
cp lib/HTML/WikiConverter.pm blib/lib/HTML/WikiConverter.pm 
cp lib/HTML/WikiConverter/Normalizer.pm blib/lib/HTML/WikiConverter/Normalizer.pm 
cp lib/HTML/WikiConverter/WebApp.pm blib/lib/HTML/WikiConverter/WebApp.pm 
cp lib/HTML/WikiConverter/Dialects.pod blib/lib/HTML/WikiConverter/Dialects.pod 
cp bin/html2wiki blib/script/html2wiki 
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/html2wiki 
Manifying blib/man1/html2wiki.1 
Manifying blib/man3/HTML::WikiConverter.3pm 
Manifying blib/man3/HTML::WikiConverter::Normalizer.3pm 
Manifying blib/man3/HTML::WikiConverter::Dialects.3pm 
Manifying blib/man3/HTML::WikiConverter::WebApp.3pm 
    DIBERRI/HTML-WikiConverter-0.68.tar.gz 
    /usr/bin/make -- OK 
'YAML' not installed, will not store persistent state 
Running make test 
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t 
t/00-load.t ........... 1/1 # Testing HTML::WikiConverter 0.68, Perl 5.008008, /usr/bin/perl 
t/00-load.t ........... ok 
t/01-normalizer.t ..... ok 
t/01-wikiconverter.t .. 1/53 request for <http://diberri.dyndns.org/wikipedia/html2wiki-old/test.html> failed at t/01-wikiconverter.t line 162 
# Looks like you planned 53 tests but ran 35. 
# Looks like your test exited with 22 just after 35. 
t/01-wikiconverter.t .. Dubious, test returned 22 (wstat 5632, 0x1600) 
Failed 18/53 subtests 
t/boilerplate.t ....... ok 
t/pod-coverage.t ...... ok 
t/pod.t ............... ok 

Test Summary Report 
------------------- 
t/01-wikiconverter.t (Wstat: 5632 Tests: 35 Failed: 0) 
    Non-zero exit status: 22 
    Parse errors: Bad plan. You planned 53 tests but ran 35. 
Files=6, Tests=53, 1 wallclock secs (0.06 usr 0.04 sys + 0.60 cusr 0.12 csys = 0.82 CPU) 
Result: FAIL 
Failed 1/6 test programs. 0/53 subtests failed. 
make: *** [test_dynamic] Error 255 
    DIBERRI/HTML-WikiConverter-0.68.tar.gz 
    /usr/bin/make test -- NOT OK 
//hint// to see the cpan-testers results for installing this module, try: 
    reports DIBERRI/HTML-WikiConverter-0.68.tar.gz 
Running make install 
    make test had returned bad status, won't install without force 
[[email protected] ~]# 

回答

1

您没有安装HTML::WikiConverter。所以,安装它。在命令行中,执行

cpan HTML::WikiConverter 

不仅会HTML::WikiConverter进行安装,但是任何缺少的必备应安装为好。

此外,根据您的用户权限,您可能需要以root身份运行该命令(即sudo cpan HTML::WikiConverter)。

+0

当我尝试你的命令时,我已经用我得到的输出更新了这篇文章。它由于某种原因失败。 – 2012-03-09 17:42:09

+1

嗯,它看起来好像[其中一个测试涉及连接到一个死链接](http://www.perlmonks.org/?node_id=940890)。尝试使用'sudo cpan -f HTML :: WikiConverter'来强制安装。 – 2012-03-09 17:49:57

1

这听起来像你没有安装在你需要它的地方的基本行为HTML::WikiConverter。不过,我不知道为什么use baseHTML::WikiConverter::MediaWiki没有失败。 HTML::WikiConverterHTML::WikiConverter::MediaWiki的单独发行版本,HWM使用HW的构造函数,因此如果无法加载该模块,Perl无法识别new的发送情况。

+0

我可以用'rpm'命令看到它安装在'/ usr/lib/perl5/vendor_perl/5.8.8/HTML/WikiConverter/MediaWiki.pm'中。我能以某种方式在我的脚本中写入它应该从那里加载模块吗? – 2012-03-09 17:44:05

+0

@SandraSchlichting,是'使用lib'/usr/lib/perl5/vendor_perl/5.8.8';' - 但是你确定你想成为特别的?您可以将相同的路径添加到您的'$ PERL5LIB'变量中,或者作为'-I'切换到perl调用。您的具体需求可以最好地确定最佳方式。 – Axeman 2012-03-09 17:46:47

+0

它没有工作。同样的错误。 – 2012-03-09 17:51:15

0

当您运行yum install perl-HTML-WikiConverter-MediaWiki.noarch时,是否得到任何提及安装perl-HTML-WikiConverter的输出?

您从运行rpm -q perl-HTML-WikiConverterrpm -q perl-HTML-WikiConverter-MediaWiki获得什么输出。

您正在运行哪个版本的Perl(perl -v),它在哪里安装(which perl)以及它是如何安装的(使用yum或下载源代码并编译它)?

我怀疑你的系统在yum安装的CPAN模块和cpan-install CPAN模块之间感到困惑。在同一个系统上混合使用这两者绝不是一个好主意。如果你想使用系统版本的Perl,那么只能使用yum安装CPAN模块。如果你想使用cpan(或cpanp或cpanm)安装CPAN模块,那么建立你自己的Perl版本并将它安装在标准的Perl位置之外。