while (my $line = <$rfh>) { if($line=~/^\s*([^=\s#][^=#]+?)\s*=/) { my $key=lc($1); $line =~ s/(=\s*)[^#\s]+/$1$changes{$key}/ if(defined($changes{$key})); } print $tfh $line; }