访问嵌套散列中的值时出现问题

  • 本文关键字:问题 嵌套 访问 perl
  • 更新时间 :
  • 英文 :


我试图访问一些列表是两个深度到一个散列。下面是我的代码:

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条件总是求值为"false"。为什么会这样?

表达式

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

不正确,因为哈希值必须是标量(如哈希引用)而不是哈希值。试着

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

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

最新更新