sub some_meth { my($self, $source) = @_; my %target = ( key1 => 'default_1', key2 => 'default_2', keyN => 'default_N', %$source, ); # do somethings with %target } #### my %target = ( # initialization ); %target{keys %$source} = values %$source if defined $source && ref $source eq 'HASH';