Perl:不推荐使用散列作为引用
我正在开发脚本,即重用一些非常旧的perl代码 这一行仍然告诉我使用散列作为引用的错误是不推荐的Perl:不推荐使用散列作为引用,perl,Perl,我正在开发脚本,即重用一些非常旧的perl代码 这一行仍然告诉我使用散列作为引用的错误是不推荐的 %hash->{$_[$counter]} = $_[$counter+1]; 如何重构此代码,以避免收到错误。试试看 $hash{$_[$counter]} = $_[$counter+1]; ->{左边应该是散列引用,而不是散列。如果有散列,请省略->,只说$hash{ 学究般地,%hash->{…}应该做(my$temp=%hash)->{…}所做的事情:获取%hash的标量值(
%hash->{$_[$counter]} = $_[$counter+1];
如何重构此代码,以避免收到错误。试试看
$hash{$_[$counter]} = $_[$counter+1];
->{
左边应该是散列引用,而不是散列。如果有散列,请省略->
,只说$hash{
学究般地,%hash->{…}
应该做(my$temp=%hash)->{…}
所做的事情:获取%hash的标量值(例如,“1/8”,表示使用了8个存储桶中的1个),并将其用作符号hash引用(在使用严格的“refs”时出错)。但由于一次事故,它被悄悄地重新解释为$hash{…}
。
这个错误总有一天会被修复,但与此同时,人们会被警告更改错误的代码。知道Perl的诊断消息记录在perldiag中也很有用,可以在这里()或直接在命令行(
perldoc perldiag
)上访问。警告是由于该行的行为不符合文档规定。标量上下文中的->
的LHS应为引用,这是标量,并且%hash
不应返回对self的引用。