我在主文件的某处定义了一个简单的哈希
our %translations = (
"phrase 1" => "translation 1",
# ... and so on
);
在另一个文件中,我想添加更多翻译。也就是说,我想做这样的事情:
push our %translations, (
"phrase N" => "blah-blah",
# ....
"phrase M" => "something",
);
当然这段代码不起作用:
push
不适用于哈希。所以我的问题是:将值的散列插入现有散列中的简单而优雅的方法是什么?我不想诉诸
$translations{"phrase N"} = "blah-blah";
# ....
$translations{"phrase M"} = "something";
因为在 Perl 中,你应该能够在代码中没有太多重复的情况下做事情......
最佳答案
您可以使用 keys 分配给散列切片和 values功能。只要在调用之间没有修改散列,keys
将按照与 values
相同的顺序返回键返回值。
our %translations = (
"phrase 1" => "translation 1",
);
{ # Braces just to restrict scope of %add
my %add = (
"phrase N" => "blah-blah",
"phrase M" => "something",
);
@translations{keys %add} = values %add;
}
# Or, using your alternate syntax:
@translations{keys %$_} = values %$_ for {
"phrase N" => "blah-blah",
"phrase M" => "something",
};
关于perl - 如何将哈希插入到 Perl 中的哈希中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511970/