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)
。