use Data::Dump; my %hash1 = ( foo => 'bar' ); my %hash2 = ( quz => 'baz' ); # Case 1 %hash1 = (%hash1, %hash2); # OR $hash1{$_} = $hash2{$_} for keys %hash2; dd \%hash1; # { foo => "bar", quz => "baz" } # Case 2 %hash1 = %hash2; dd \%hash1; # { quz => "baz" }