これが私のコードです。
my $hash1 = $hash0->{unknown}{unknown};
while ( my ( $var, $hash2 ) = each %$hash1 ) {
...
}
以下のハッシュから"Can't use string ("package") as a HASH ref while "strict refs" in use"
アクセスしようとすると、エラーが発生します。my $hash1 = $hash0->{unknown}{unknown}
print Dumper $hash0;
$VAR1 =
bless( {
'branch' => bless( {
'lib/sample/sp.pm' => bless( {
'branch' => bless( {
'lib/sample/sp.pm'=> bless( {
'sample::sp' => '1'
}, 'DBM::Deep::Hash' )
}, 'DBM::Deep::Hash' ),
'branch' => $VAR1->{'branch'}{'lib/sample/sp.pm'}{'branch'}
}, 'DBM::Deep::Hash' )
}, 'DBM::Deep::Hash' ),
'main' => bless( {}, 'DBM::Deep::Hash' ),
'main' => $VAR1->{'main'}
}, 'DBM::Deep::Hash' );
私は多くのフォーラムを調べましたが、このエラーに関する私の理解は、 $hash->{unknown}{unknown}
ハッシュの代わりに文字列がある場合にこれにヒットするということです ($hash1
コードの次のステップで逆参照しています)。しかし、ハッシュに文字列値(エラーメッセージに示されている「パッケージ」)は表示されませんが、それでも文句を言います。
誰かが問題を理解するのを手伝ってくれませんか。