[英]how to perform merging of keys for common values in hash of hash in perl
我正在perl中的哈希散列下面工作,其中我在内部散列中具有一些对于不同键时间戳相同的值。 有什么办法可以合并时间戳键以获得相似的值?
'Test Responder Data String' => {
'2018-01-26' => 'zzz00175002802;newData1',
'2018-01-20' => 'xxy00171329968;data1',
'2018-01-27' => 'xxy00171329968;data1',
'2018-01-28' => 'xxy00171329968;data1'
'2018-01-04' => 'www00171510082;ResponderData',
'2018-01-17' => 'rrr00175002256;try data',
'2018-01-05' => 'aaa00175033226;response try',
'2018-01-08' => 'aaa00175033226;response try'
}
预期结果:
'Test Responder Data String' => {
'2018-01-26' => 'zzz00175002802;newData1',
'2018-01-20,2018-01-27,2018-01-28' => 'xxy00171329968;data1',
'2018-01-04' => 'www00171510082;ResponderData',
'2018-01-17' => 'rrr00175002256;try data',
'2018-01-05,2018-01-08' => 'aaa00175033226;response try'
}
my %h=(
'2018-01-26' => 'zzz00175002802;newData1',
'2018-01-20' => 'xxy00171329968;data1',
'2018-01-27' => 'xxy00171329968;data1',
'2018-01-28' => 'xxy00171329968;data1',
'2018-01-04' => 'www00171510082;ResponderData',
'2018-01-17' => 'rrr00175002256;try data',
'2018-01-05' => 'aaa00175033226;response try',
'2018-01-08' => 'aaa00175033226;response try'
);
my %t;
push @{ $t{ $h{$_} } }, $_ for keys %h;
my %result = map { join(",", @{$t{$_}}) => $_ } keys %t;
use Data::Dumper; print Dumper \%result;
输出
$VAR1 = {
'2018-01-17' => 'rrr00175002256;try data',
'2018-01-05,2018-01-08' => 'aaa00175033226;response try',
'2018-01-26' => 'zzz00175002802;newData1',
'2018-01-04' => 'www00171510082;ResponderData',
'2018-01-27,2018-01-20,2018-01-28' => 'xxy00171329968;data1'
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.