将一个散列的键与另一个散列的值进行比较以在perl中创建第三个散列

时间:2014-01-31 13:35:44

标签: perl hash

我想合并hash1和hash2的相同值,并创建第三个散列,hash3的键是hash1的键,hash3的值是hash2的键,用于那些相同的值

%hash3 = (
    0 =>3,
    1 => 2,
    2 => 1,
    3 => 0
);

1 个答案:

答案 0 :(得分:1)

reverse %hash2然后使用map将来自%hash1的密钥与以前%hash2的密钥配对:

my %reversed = reverse %hash2;
my %hash3 = map { $_ => $reversed{$hash1{$_}} } keys %hash1;

%hash3包含:

{
    '1' => '2',
    '0' => '3',
    '3' => '0',
    '2' => '1'
};