我有这个子程序从周围系统(在这种情况下是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开发人员,但也许您可以指出我的具体方向或者可能提供一些调试技巧?
答案 0 :(得分:0)
很抱歉,经过一些实验并阅读其他脚本后,我发现了一个非常简单的解决方案:我只是缺少一个包含该类对象的包的指令。所有缺失的都是use SomePackage;
(或者在这种情况下use Irssi::Irc;
)。在此之后,obj->{ someProp }
神奇地拥有undefined
以外的预期值。
感谢大家的帮助。