我正在与一些使用哈希引用的 Perl 搏斗。
最后发现我的问题是这条线:
$myhash{$key} |= {};
也就是说,“为 $myhash{$key} 分配一个对空哈希的引用,除非它已经有一个值”。
然而,取消引用并尝试将其用作哈希引用会导致解释器错误将字符串用作哈希引用。
将其更改为:
if( ! exists $myhash{$key}) {
$myhash{$key} = {};
}
... 让事情顺利进行。
所以我没有问题。但我很好奇发生了什么。
谁能解释一下?