«Неопределенная подпрограмма & HTML :: Entities :: decode_entities называется» - PullRequest
0 голосов
/ 12 марта 2009

Я получаю ошибку

Неопределенная подпрограмма & HTML :: Entities :: decode_entities под названием `

с использованием LWP :: UserAgent , хотя модуль есть, а также модуль HTML :: Parser .

Я подозреваю, что это как-то связано с отсутствием модулей XS, поскольку рассматриваемая функция, кажется, реализована в XS, но я в растерянности.

Ответы [ 2 ]

1 голос
/ 13 марта 2009

Последние версии HTML :: Entities зависят от получения процедуры decode_entities путем загрузки XS-компонента модуля HTML :: Parser. Поскольку оба модуля распространяются вместе, это не должно быть проблемой, но, возможно, у вас более старая версия HTML :: Parser, в которой вместо этого не использовался XS (или установлено несколько версий HTML :: Parser, причем неправильная найден первым).

Проверьте $ VERSION в HTML :: Parser, найдите этот дистрибутив на http://search.cpan.org/dist/HTML-Parser, и убедитесь, что у дистрибутива есть версия HTML :: Entities, которая у вас есть.

0 голосов
/ 12 марта 2009

Вам не хватает этой строки:

use HTML::Entities;

На странице HTML :: Entities CPAN его следует использовать следующим образом:

use HTML::Entities;
my $a = "Våre norske tegn bør &#230res";
decode_entities($a);
encode_entities($a, "\200-\377");

Если вы считаете, что с пакетом HTML :: Entities что-то не так, вы можете проверить источник в своей системе. Из Баш:

vim $(perldoc -l HTML::Entities)

Как только файл открыт в вашем текстовом редакторе, вы можете проверить, что подпрограмма определена. Я подозреваю, что пакет правильный, но, скорее всего, этот пакет не «используется».

Вы также можете проверить это в командной строке, чтобы увидеть, работает ли он вне вашей программы:

perl -MHTML::Entities -le 'print HTML::Entities::decode_entities( "Våre norske tegn bør &#230res" )'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...