代码之家  ›  专栏  ›  技术社区  ›  scarba05

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

  •  0
  • scarba05  · 技术社区  · 16 年前

    我得到一个 Can't use an undefined value as a HASH reference 尝试调用时出错 HTTP::Message::decodable() 使用aptitude软件包管理器在Debian Lenny OS上安装Perl 5.10/libwww。我真的被卡住了,希望你能帮我个忙。

    错误如下:

     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 回复  |  直到 16 年前
        1
  •  1
  •   Gavin Brock    16 年前

    在看 changelog HTTP::Message::decodable() 已在版本5.814中添加。您确定正在阅读适合您的版本的文档吗?

    尝试:

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

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

        2
  •  1
  •   scarba05    16 年前

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

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

    一切就绪!