2016-10-12 7 views
1

Есть ли способ проверить, что LWP :: UserAgent готов к использованию?Какой код проверяет, готов ли LWP :: UserAgent к использованию?

Вполне возможно, что réponse code из, например get запрос, всегда может вернуться 500, и сообщение в status_line может быть 500 HTML::Parser object version 3.35 does not match bootstrap parameter 3.72.

+0

Не могли бы вы разместить содержимое вашего '@ INC', а также содержимое' $ HTML :: Parser :: VERSION' в том месте, где вы видите эту проблему. Вы можете изменить их в свой вопрос. – simbabque

+0

Также, как вы используете LWP :: UserAgent? Я изменил свой HTML :: Parser, чтобы загрузить неправильную версию, но 'my $ ua = LWP :: UserAgent-> new; my $ res = $ ua-> get ('http://example.org'); 'дает мне 200. Вы делаете что-то еще? Я не думаю, что LWP :: UA даже использует HTML :: Parser. Когда я пытаюсь использовать WWW :: Mechanize с измененным кодом HTML :: Parser, он сразу же разбивается и бросает целую кучу ошибок и компиляции. ** Ты не рассказываешь нам все **. – simbabque

ответ

4

Кажется, что ваша установка на Perl немного сломана. Повторная попытка запроса не будет исправлена.

Это сообщение об ошибке из XSLoader. The ExtUtils::MakeMaker toolchain documentation объясняет это:

XS код очень чувствителен к количеству модулей версии и будет жаловаться, если номер версии в модуле Perl не совпадает. Если вы измените версию своего модуля # без повторного запуска Makefile.PL, то старый номер версии останется в Makefile, в результате чего код XS будет построен с неправильным номером.

XSLoader distribution brings a unit test, чтобы гарантировать, что это происходит.

В сообщении

500 HTML :: Parser версия объекта 3,35 не соответствует начальной загрузке параметра 3,72

он говорит, что ваш модуль HTML::Parser Perl имеет версию 3.35, но он пытается загрузить Библиотека XS, версия 3.0 (которая является текущей версией). In line 11 of HTML::ParserXSLoader::load('HTML::Parser', $VERSION), и прямо над ним определено $VERSION как 3.72. Так что это должно сработать.

Непонятно, что вы делаете в точности, и какие модули вы используете, но я предлагаю вам переустановить HTML :: Parser. Я не могу сказать больше, если вы не добавите больше информации.


Я нашел это с помощью grep.cpan.me, который позволяет Grep во всех файлах на CPAN. Я искал does not match bootstrap parameter.

+2

Спасибо за упоминание [grep.cpan.me] (http://grep.cpan.me). Я искал аналогичный инструмент. –

+0

Я исправил проблему, но я хотел бы найти способ проверить, что LWP :: UserAgent имеет все необходимые и правильные зависимости. Поэтому после проверки я могу использовать LWP :: UserAgent-> new() -> get ('http://ya.ru'). – osiv

+0

@osiv, не зная точно, что вы делаете, это сложно. Обычно, если зависимость не существует, она должна «умереть». Но твой нет. Я не знаю, почему нет. – simbabque

 Смежные вопросы

  • Нет связанных вопросов^_^