Perl:不推荐使用散列作为引用

时间:2011-06-07 13:10:18

标签: perl

我正在开发脚本,即重用一些非常旧的perl代码。

这一行仍然给出了错误。不推荐使用散列作为参考。

  %hash->{$_[$counter]} = $_[$counter+1];

我如何重构此代码,以便我不会收到错误。

2 个答案:

答案 0 :(得分:28)

尝试

$hash{$_[$counter]} = $_[$counter+1];

答案 1 :(得分:21)

->{左边的内容应该是哈希引用,而不是哈希。如果您有哈希,请省略->,然后说出$hash{

谦虚地,%hash->{...}应该执行(my $temp=%hash)->{...}所做的:获取%hash的标量值(例如“1/8”,表示使用8个桶中的1个)并将其用作符号哈希引用(在使用严格“refs”下失败并出现错误)。但是由于一次事故,它被悄悄地重新解释为$hash{...}。 这个错误有一天会被修复,但与此同时,人们会被警告要更改错误的代码。