... my ($fnNew, $fnOld) = ('test.cfg', 'test.cfg.bak'); rename $fnNew, $fnOld or die "can't rename $fnNew, $!"; open my $fin, '<', $fnOld || die "$fnOld - $!"; open my $fout, '>', $fnNew || die "$fnNew - $!"; while( my $line = <$fin> ) { $line =~ s/(newyork\s+)1536000/${1}7878787878/; print $fout $line } close $fin; close $fout; ...