Почему HTTP :: Message :: decodable жалуется на «Не могу использовать неопределенное значение в качестве ссылки HASH»? - PullRequest
0 голосов
/ 17 марта 2010

Я получаю Can't use an undefined value as a HASH reference ошибку при попытке вызвать HTTP :: Message :: decodable () с использованием Perl 5.10 / libwww, установленного на ОС Debian Lenny с помощью менеджера пакетов aptitude.Я действительно застрял, поэтому был бы признателен за помощь, пожалуйста.

Вот ошибка:

Can't use an undefined value as a HASH reference at (eval 2) line 1.
at test.pl line 4
main::__ANON__('Can\'t use an undefined value as a HASH reference at 
enter code here`(eval 2)...') called at (eval 2) line 1
HTTP::Message::__ANON__() called at test.pl line 6

Вот код:

use strict;
use HTTP::Request::Common;
use Carp;
$SIG{ __DIE__ } = sub { Carp::confess( @_ ) };

print HTTP::Message::decodable();

Ответы [ 2 ]

1 голос
/ 17 марта 2010

Гэвин был прав - у меня была установлена ​​старая версия libwww-perl. Я полагался на использование последней версии, доступной на Debian Lenny (при условии, что это было довольно актуально). Оказывается, последняя доступная версия - 5.813, но мне нужно 5.814 или больше, чтобы использовать эту функцию. Поскольку через aptitude нет упакованной версии, я установил последнюю версию с использованием CPAN:

$ perl -MCPAN -e shell
cpan[1]> upgrade HTTP::Message

Все готово!

1 голос
/ 17 марта 2010

Глядя на список изменений , похоже, HTTP::Message::decodable() был добавлен в версии 5.814. Вы уверены, что читаете правильную документацию для вашей версии?

Попробуйте:

perl -MHTTP::Message -e 'warn $HTTP::Message::VERSION'

.. он должен вернуть 5.814 или больше ...

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