Почему эта ошибка «Не удается найти новый метод объекта»? - PullRequest
0 голосов
/ 09 марта 2012

Я пытаюсь использовать HTML::WikiConverter::MediaWiki, который я установил, используя 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.

Вопрос

Кто-нибудь может увидеть, что не так?

Обновление

[root@rt ~]# 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
[root@rt ~]# 

Ответы [ 3 ]

1 голос
/ 09 марта 2012

Похоже, у вас нет базового поведения HTML::WikiConverter, установленного там, где вам это нужно. Я не знаю, почему use base в HTML::WikiConverter::MediaWiki не выходит из строя. HTML::WikiConverter является отдельным дистрибутивом от HTML::WikiConverter::MediaWiki, и HWM использует конструктор HW, поэтому имеет смысл, что если вы не можете загрузить этот модуль, Perl не распознает диспетчеризацию для new.

1 голос
/ 09 марта 2012

У вас не установлено HTML::WikiConverter. Итак, установите его. Из командной строки выполните

cpan HTML::WikiConverter

и не только HTML::WikiConverter будет установлен, но также должны быть установлены все недостающие предварительные условия.

Кроме того, в зависимости от ваших прав доступа вам может потребоваться выполнить эту команду от имени пользователя root (т. Е. sudo cpan HTML::WikiConverter).

0 голосов
/ 10 марта 2012

Когда вы запустили yum install perl-HTML-WikiConverter-MediaWiki.noarch, вы получили какой-либо вывод, в котором упоминалось об установке perl-HTML-WikiConverter?

Какой вывод вы получили при запуске rpm -q perl-HTML-WikiConverter и rpm -q perl-HTML-WikiConverter-MediaWiki.

Какую версию Perl вы используете (perl -v), где он установлен (which perl) и как он был установлен (используя yum или скачав исходный код и скомпилировав его)?

Я подозреваю, что ваша системапутается между установленными yum-модулями CPAN и cpan-install модулями CPAN.Никогда не стоит смешивать их в одной системе.Если вы хотите использовать системную версию Perl, тогда устанавливайте только модули CPAN, используя yum.Если вы хотите установить модули CPAN с использованием cpan (или cpanp или cpanm), то создайте свою собственную версию Perl и установите ее вдали от стандартного местоположения Perl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...