2011-12-17 66 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找到(它可能包含額外的條目,但它可能不包含更少的條目),每個鍵的單一,簡單的條目。