Perl 从2个哈希值生成一个字符串

Perl 从2个哈希值生成一个字符串,perl,Perl,我有如下两个散列 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”(不带引号) 如何实现这一

我有如下两个散列

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”(不带引号)


如何实现这一点?

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

foreach my $key (sort keys %hash1) {
     print "$key $hash1{$key} $hash2{$key}\n";
}
如果它们可能有不同的键,您需要找到一种方法来获取列表并集或交集,其中可能有一个函数用于in list::Compare

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

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

大概您打算在
print
语句中写入
$key
而不是
%key
?从将起作用
uniq(键%hash1,键%hash2)