open FILE, '<', $file; my $nfile = $file . '.new'; open OFILE, '>', $nfile; while (){ if($_ =~ /STARTING_PATTERN\s+(.*)/){ $sub=$1; s/$sub/$cell_name/ ; } print OFILE, $_; } close FILE; close OFILE; rename $file, $file . '.bak'; rename $nfile, $file;