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