2010-03-17 70 views
0

我收到Can't use an undefined value as a HASH reference錯誤,嘗試使用aptitude package manager在Debian Lenny OS上安裝使用Perl 5.10/libwww的HTTP::Message::decodable()錯誤。我很困難,所以請欣賞一些幫助。爲什麼HTTP :: Message :: decodable會抱怨「不能使用未定義的值作爲HASH參考」?

這裏的錯誤:

 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(); 

回答

1

望着changelog,它看起來像HTTP::Message::decodable()在5.814版本中添加。你確定你正在閱讀你版本的正確文檔嗎?

嘗試:

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

..它應該回到5.814或更多...

+0

謝謝!我顯然不是正確的版本。 $ perl -MHTTP :: Message -e'warn $ HTTP :: Message :: VERSION' 5.812 at -e line 1. 如果我查看aptitude,它說libwww-perl包在版本5.813-1 (我不確定爲什麼這與上面命令給出的5.812不同)。看起來像我需要升級 – scarba05 2010-03-17 10:14:23

1

加文是對的 - 我有一個老版本安裝的libwww-perl軟件包。我正在使用Debian Lenny上的最新版本(假設這是最新的版本)。原來可用的最新版本是5.813,但我需要5.814或更多才能使用此功能。由於沒有可通過aptitude使用的打包版本,我安裝了使用CPAN的最新版本:

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

全部完成!

+0

不要發佈非答案作爲答案。如果您有其他信息,請改用評論或更新問題。 – 2010-03-17 14:03:49

+0

這看起來像是對我的回答。它解釋了問題並提供瞭解決方案。 – 2010-03-17 14:59:31

+0

@brian,在我看來,它應該是@Gavin的回答。 – 2010-03-17 19:48:54

相關問題