在Perl 5.26.2中我得到:
现在禁止在a.plx第67行进行标量实验。每个arg 1的类型必须是a.plx处的散列或数组(非私有变量)第67行,靠近“$ val”执行……
each 采用哈希,而不是引用。 [1] 因此,
each
while (my ($ip, $val2) = each($val))
应该
while (my ($ip, $val2) = each(%$val))
Perl 5.12,5.14和5.16允许使用引用。这是一个错误。
Perl 5.18,5.20和5.22仍允许它,但警告你是否这样做。
Perl 5.24还原了这个添加。