【发布时间】:2014-11-21 01:31:03
【问题描述】:
有没有办法在一个 HOA 中结合哈希的键和值?假设我有一个示例输入,例如
#NewName OldName
Axc.Sx2.1_Axc.Wx2.1 1BDER
Axc.Sx2.1_Axc.Wx2.1 1ADER
在上面的代码中,哈希值不同但它们的键相同,而在下面的代码中,值相同但键不同。
Axc.Sx2.1_Axc.Wx2.1 1BDER
Axc.Sx2.1_Axc.Wx2.1 1BDER
Axc.Sx2.1 1BDER
以下代码可以处理值的合并,但不能处理键的合并。
while (<$mapF>) {
chomp $_;
next if /^\s*(#.*)?$/;
next if /^\s+.*$/;
##latestRuleName OldRuleName
if ( $_ =~ /(\S+)\s+(\S+)/gi ) {
# create list and append $2
push @{ $mapHash{$1} }, $2;
}
}
请指教。
问候, 潜水
【问题讨论】:
-
您不能有多个具有相同名称的哈希键。您的代码已经“合并了键”,因为如果键已经存在,您将使用它。
-
我能够通过流程所需的一些简单逻辑来解决这个问题。谢谢你的建议。