2012-03-09 141 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位置之外。