perl でハッシュの参照と逆参照がどのように機能するかを理解するのに苦労しています。
次のように定義された 3 つのレベルのハッシュがあります。
%languages = (
'en', (
'it', ( 'pattern1', '...', 'pattern2', '...' )
'de', ( 'pattern1', '...', 'pattern2', '...' )
)
'it', (
'en', ( 'pattern1', '...', 'pattern2', '...' )
'de', ( 'pattern1', '...', 'pattern2', '...' )
)
'de', (
'en', ( 'pattern1', '...', 'pattern2', '...' )
'it', ( 'pattern1', '...', 'pattern2', '...' )
)
);
次のように、最初のレベルのハッシュの 1 つの 2 番目のレベルで反復します。
my $current_language = 'de';
while ( ( my $language, my $patterns ) = each %{ $languages{ $current_language } } )
{
print $patterns->{'pattern1'};
}
しかし、私は次のエラーが発生します
Can't use string ("en") as a HASH ref while "strict refs" in use
これについて何か助けていただければ幸いです。