2011-12-17 93 views
1

字符串我有2个散列像下面建立从2个哈希

hash1: 
key  value 
part0  company0 
part1  company1 
part2  company2 

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

我想什么是使用2个散列这样 “PART0 company0 2B,第一部分公司1 4B,第2部分Company2的建立字符串6B“(不含引号)

我该如何做到这一点?

回答

1

好吧,假设你保证这两个散列具有相同的键,你可以做这样的事情:

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

如果他们可能有不同的密钥,您将需要找到一种方式来获得任何列表联合或交集,这可能是List :: Compare中的一个函数。

+1

假设你打算在`print`语句中写'$ key`而不是`%key`?来自[List :: MoreUtils](http://p3rl.org/List::MoreUtils)的 – 2011-12-17 07:30:25

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找到(它可能包含额外的条目,但它可能不包含更少的条目),每个键的单一,简单的条目。