package Sample::Merge; sub new { my $proto = shift; my $class = ref $proto or $proto; $a = { default => 'value' }; bless $a, $class; %b = ( default => 'override' ); foreach (keys %b) { $a->{$_} = $b{$_}; } }