#!/usr/bin/perl use Data::Dumper; %hash1 = (a=>1,b=>2,c=>3); %hash2 = (1=>'A',2=>'B'); @hash3{keys %hash1}= @hash2{values %hash1}; #defined $hash3{$_} or delete $hash3{$_} for keys %hash3; print Dumper \%hash3; __END__ $VAR1 = { 'c' => undef, 'a' => 'A', 'b' => 'B' };