【发布时间】:2012-09-16 01:11:33
【问题描述】:
这是我的哈希转储:%hash1
$VAR1 = {
abc => {
123 => [
'xx',
'yy',
'zy'
],
456 => [
'ab',
'cd',
'ef'
]
}
};
第二个:%hash2
$VAR2 = {
def => {
659 => [
'wx',
'yg',
'kl'
],
456 => [
'as',
'sd',
'df'
]
},
abc => {
987 => [
'lk',
'dm',
'sd'
]
}
};
现在我想将这两个哈希合并到一个新的哈希中,但是如果一个键是重复的(这里是'abc'),值应该被附加,而不是替换,所以键应该保持唯一,所有的值应该也被保留。如何在 Perl 中做到这一点? 输出应该如下:
$VAR1 = {
def => {
659 => [
'wx',
'yg',
'kl'
],
456 => [
'as',
'sd',
'df'
]
},
abc => {
987 => [
'lk',
'dm',
'sd'
],
123 => [
'xx',
'yy',
'zy'
],
456 => [
'ab',
'cd',
'ef'
]
}
};
【问题讨论】:
-
你能给我一个合并数据结构的例子吗,例如在
%a = (key1 => {key2 => [1]})和%b = (key1 => {key2 => [1]})之间?当我不知道自己要去哪里时,我不知道该走哪条路。 -
我已经用必要的输出编辑了主要问题,感谢您的帮助!!
标签: perl hash merge concatenation