我正在開發腳本,即重複使用一些非常老的perl代碼。Perl:不推薦使用散列作爲參考
這一行給我仍然錯誤使用散列作爲參考已被棄用。
%hash->{$_[$counter]} = $_[$counter+1];
如何重構此代碼,以便我不會收到錯誤。
我正在開發腳本,即重複使用一些非常老的perl代碼。Perl:不推薦使用散列作爲參考
這一行給我仍然錯誤使用散列作爲參考已被棄用。
%hash->{$_[$counter]} = $_[$counter+1];
如何重構此代碼,以便我不會收到錯誤。
嘗試
$hash{$_[$counter]} = $_[$counter+1];
什麼是的->{
左邊應該是一個散列引用,而不是一個哈希值。如果你有散列,可以省略->
,並且只是說$hash{
。
迂腐,%hash->{...}
應該做些什麼呢(my $temp=%hash)->{...}
:獲得哈希%的標值(例如「1/8」,表明使用8 1桶),並把它作爲一個象徵性的散列引用(與失敗下的使用錯誤嚴格的「參考」)。但由於意外,它被安靜地重新解釋爲$hash{...}
。 這個錯誤將在某天被修復,但同時會有人提醒他們更改錯誤的代碼。
知道Perl的診斷信息記錄在perldiag中也很有用,它可以在這裏訪問(http://perldoc.perl.org/perldiag.html)或直接在命令行('perldoc perldiag') 。 – FMc 2011-06-07 13:27:42
該警告是該行不符合記錄的結果。 ' - >'的LHS應該是一個引用,它是一個標量,而標量上下文中的'%hash'不應該返回對自身的引用。 – ikegami 2011-06-07 17:34:33