[英]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.