$hash{$_} ||= 1 + keys %hash for @list; $hash{$_} = $hash{$_} || 1 + keys %hash for @list; #### use Data::Dump::Streamer; my (%hash,%mash); @list=('A'..'C'); $hash{$_} ||= 1 + keys %hash for @list; $mash{$_} = $mash{$_} || 1 + keys %mash for @list; Dump(\%hash,\%mash)->Names('*hash','*mash')->Out(); __END__ %hash = ( A => 2, B => 3, C => 4 ); %mash = ( A => 1, B => 2, C => 3 );