6
    if((scalar keys ($this->{'libraries'}->{$y}->{'cellHash'})) == 0){

これは、「参照のキーへの引数のタイプは、unblessed hashref または arrayref でなければなりません」というエラーが発生する行です。これを修正するのを手伝ってもらえますか? 明らかな理由により、コードを投稿していません。

4

2 に答える 2

9

keys参照を取るという新しい機能は、設計上壊れています。Perl の開発チームは、一部の参照でどのように機能するかを理解できなかったため、一部の参照でのみ機能します。そのkeysため、参照を受け入れる の機能は実験的であると文書化されています。この問題を解決できません。この「機能」は 5.24 で削除されました。をアップグレードするとコードが機能しなくなるため、使用しないでくださいperl

keys参照が与えられたときに機能しないケースに遭遇しました。代わりにハッシュまたは配列を指定してください。この場合、おそらく

keys(%{ $this->{'libraries'}->{$y}->{'cellHash'} })

全体は次のように記述できます。

if (!keys(%{ $this->{libraries}{$y}{cellHash} })) { ... }
于 2013-06-13T06:07:14.593 に答える
-1

%{$this->{'libraries'}->{$y}->{'cellHash'}} .花かっこと % を見逃していました。

于 2013-06-13T06:07:22.457 に答える