【发布时间】:2015-03-29 10:31:42
【问题描述】:
我是一个 Perl 新手,并试图理解一些代码。我得到错误
No such pseudo-hash field "value"
在线上
$stringObj->{'value'};
这特别难以诊断或调试,因为它会根据系统神奇地开始工作。在我使用的系统中,错误不会发生。但是,所有版本都运行某种形式的 Perl 5.8。
我知道伪散列有点被弃用,我没有兴趣继续使用它们——我只需要这段代码就可以工作。
这是我的问题:
(1) 如果伪散列将散列视为数组,如何正确识别数组并将其视为数组?
(2) 为什么这个bug看起来是随机出现和消失的?
在我的机器上,$stringObj 可能如下所示:
$VAR1 = bless( { '_verify_isOK' => 1, 'name' => 'My Text', 'type' => 'StringEntity'}, 'MyObject' );
有时它也有一个“价值”。
【问题讨论】:
-
你能提供更多的上下文吗?
$stringObj是什么? -
@JimDavis 在我可以重现的所有情况下,$stringObj 都可以被视为哈希。显然这不是它在其他一些系统上所采用的形式。
-
什么设置了 $stringObj?