我很难理解哈希的引用和取消引用在 perl 中是如何工作的。
我有 3 个级别的哈希定义如下:
%languages = (
'en', (
'it', ( 'pattern1', '...', 'pattern2', '...' )
'de', ( 'pattern1', '...', 'pattern2', '...' )
)
'it', (
'en', ( 'pattern1', '...', 'pattern2', '...' )
'de', ( 'pattern1', '...', 'pattern2', '...' )
)
'de', (
'en', ( 'pattern1', '...', 'pattern2', '...' )
'it', ( 'pattern1', '...', 'pattern2', '...' )
)
);
并希望像这样迭代第一级哈希值的第二级:
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
我将不胜感激这方面的任何帮助。