Búsqueda multilínea reemplazar con Perl

Sé que este tipo de preguntas ya se han hecho muchas veces antes. La razón por la que vine aquí de nuevo es porque siento que me he perdido algo simple y fundamental.

¿Es posible mejorar este tipo de rutina de búsqueda y reemplazo? Por ejemplo, sin abrir el mismo archivo dos veces. También son bienvenidos los consejos relacionados con la velocidad.

Tenga en cuenta que esto funciona con coincidencias multilínea y reemplaza también cadenas multilínea.

<code>#!/bin/perl -w -0777

local $/ = undef;

open INFILE, $full_file_path or die "Could not open file. $!";
$string =  <INFILE>;
close INFILE;

$string =~ s/START.*STOP/$replace_string/sm;

open OUTFILE, ">", $full_file_path or die "Could not open file. $!";
print OUTFILE ($string);
close OUTFILE;
</code>

Respuestas a la pregunta(3)

Su respuesta a la pregunta