【发布时间】:2018-04-30 03:16:14
【问题描述】:
我有一些复杂的 Perl 代码来测试$val = ref($something) 的值。不幸的是,我的代码失败了,因为有一种情况是 $val 是 "ARRAY(0x913310)" 而不是 "ARRAY"(根据 Perl 调试器)。
阅读ref() 的文档,没有将这样的值列为可能的返回值之一。此外,当尝试在调试器中以交互方式重现时,我只看到有效的返回值。
这可能是 Perl 基础中的错误吗? 我在 x86_64 上使用来自 SLES 11 SP 4 的 Perl 5.10.0...
【问题讨论】:
-
您是否打过类似
bless $obj,$val的电话,而您的本意是bless $obj,ref($val)? -
Perl 5.10.0 has been around for almost ten years 并且在 2009 年发布了一个次要版本 5.10.1。这样的事情不太可能是 Perl 本身的错误。你更可能犯了一个令人费解的错误。 ;)