use Data::Dump qw/ dd /; ## this? { my( %RedText, %DerText ); $RedText{'Entry 1'}{D}=1; $RedText{'Entry 1'}{N}=2; $DerText{'Entry 3'}{N}=6; $DerText{'Entry 3'}{""}=7; ## uh oh, something fishy $DerText{'Entry 5'}{D}=4; ## uh oh, duplicates overwrite, no good $DerText{'Entry 5'}{D}=9; dd( \%RedText, \%DerText ); } ## maybe this? { my( %RedText, %DerText ); $RedText{'Entry 1'}{1}='D'; $RedText{'Entry 1'}{2}='N'; $DerText{'Entry 3'}{6}='N'; $DerText{'Entry 3'}{7}=''; $DerText{'Entry 5'}{4}='D'; $DerText{'Entry 5'}{9}='D'; dd( \%RedText, \%DerText ); }