为什么HTTP :: Message :: decodable抱怨“不能将未定义的值用作HASH引用”?

时间:2010-03-17 07:56:49

标签: perl libwww-perl

我在使用aptitude软件包管理器在Debian Lenny OS上安装Perl 5.10 / libwww时尝试调用HTTP::Message::decodable()时遇到Can't use an undefined value as a HASH reference错误。我真的被卡住了所以请一定帮助。

这是错误:

 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 个答案:

答案 0 :(得分:1)

查看changelog,看起来在版本5.814中添加了HTTP::Message::decodable()。您确定要阅读适合您版本的文档吗?

尝试:

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

..它应该返回5.814或更多...

答案 1 :(得分:1)

Gavin是对的 - 我安装了旧版本的libwww-perl。我依赖于使用Debian Lenny上的最新版本(假设这是相当最新的)。原来可用的最新版本是5.813但我需要5.814或更多来使用这个功能。由于没有通过aptitude提供的打包版本,我使用CPAN安装了最新版本:

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

全部完成!