访问对象哈希时未定义的引用

时间:2014-08-27 09:48:55

标签: perl

我有这个子程序从周围系统(在这种情况下是IRSSI-Proxy)中获取一个对象:

sub my_method {
    my ($obj) = @_;
    if( not defined ( $obj->{ someProp } ) ) {
        die "someProp is undefined in $obj";
    }
}

该函数打印出以下消息:" someProp中的someProp未定义:SomeClass = HASH(0x12345678)"。 所谓的类" SomePackage:SomeClass"有属性" someProp",但是passsed实例中的属性似乎没有值。但周围系统的文档说有一个。

我不是Perl开发人员,但也许您可以指出我的具体方向或者可能提供一些调试技巧?

1 个答案:

答案 0 :(得分:0)

很抱歉,经过一些实验并阅读其他脚本后,我发现了一个非常简单的解决方案:我只是缺少一个包含该类对象的包的指令。所有缺失的都是use SomePackage;(或者在这种情况下use Irssi::Irc;)。在此之后,obj->{ someProp }神奇地拥有undefined以外的预期值。 感谢大家的帮助。