use strict; use warnings; use Data::Dump qw(pp); my %oldvalue = ( foo => "1", bar => "2", baz => "3" ); my %newvalue = ( foo => "A" ); %oldvalue = (%oldvalue, %newvalue); pp \%oldvalue; # { bar => 2, baz => 3, foo => "A" }