从2个哈希构建一个字符串

时间:2011-12-17 07:15:54

标签: perl

我有2个哈希,如下所示

hash1:
 key      value
 part0     company0
 part1     company1
 part2     company2

hash2:
 key      value
 part0     2B
 part1     4B
 part2     6B

我想要的是使用像这样的2个哈希来构建一个字符串       “part0 company0 2B,part1 company1 4B,part2 company2 6B”(不含引号)

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

好吧,假设你保证两个哈希都有相同的键,你可以这样做:

foreach my $key (sort keys %hash1) {
     print "$key $hash1{$key} $hash2{$key}\n";
}

如果他们可能有不同的键,你需要找到一种方法来获得列表联合或交集,这可能是List :: Compare中的函数。

答案 1 :(得分:1)

my $answer = "";
my $pad = "";
foreach my $key (sort keys %hash1)
{
    $answer .= "$pad$key $hash1{$key} $hash2{$key}\n";
    $pad = ", ";
}
print "$answer\n";

这假设hash2包含hash1中找到的每个密钥的单个简单条目(它可能包含额外的条目,但它可能不包含更少的条目)。