0

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

这是错误:

不能在 (eval 2) 第 1 行使用未定义的值作为 HASH 引用。
在 test.pl 第 4 行
main::__ANON__('Can\'t use an undefined value as a HASH reference at at
在此处输入代码`(eval 2)...') 在 (eval 2) 第 1 行调用
HTTP::Message::__ANON__() 在 test.pl 第 6 行调用

这是代码:

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

print HTTP::Message::decodable();
4

2 回答 2

1

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

尝试:

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

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

于 2010-03-17T08:39:58.593 回答
1

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

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

全部做完!

于 2010-03-17T10:39:09.720 回答