Проблемы с доступом к значениям во вложенных хэшах - PullRequest
0 голосов
/ 28 октября 2011

Я пытаюсь получить доступ к некоторым спискам, состоящим из двух частей: Вот мой код:

my %english = (
    greetings => [("Hello", "What's up?")],
);

my %spanish = (
    greetings => [("Hola", "Que pasa?")],
);

my %bighash = (
    english => %english,
    spanish => %spanish,
);

print 'English greetings: ';
if (my $array = $bighash{'english'}{'greetings'}) {
    print "\n$_" for @$array
}
else {
    print 'Fail.';
}

Однако условие if всегда оценивается как «ложное». Почему это?

1 Ответ

5 голосов
/ 28 октября 2011

Выражения

english => %english,
spanish => %spanish,

неверны, поскольку хеш-значение должно быть скалярным (например, ссылка на хеш), а не хеш Попробуйте

english => \%english,
spanish => \%spanish,

или

english => { %english },
spanish => { %spanish },

вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...