Mehrzeilige Suche ersetzen durch Perl

Ich weiß, dass solche Fragen schon oft gestellt wurden. Der Grund, warum ich wieder hierher komme, ist, dass ich das Gefühl habe, etwas Einfaches und Grundlegendes verpasst zu haben.

Ist es möglich, diese Art der Suche-Ersetzen-Routine besser zu machen? Zum Beispiel, ohne dieselbe Datei zweimal zu öffnen. Auch geschwindigkeitsbezogene Hinweise sind willkommen.

Bitte beachten Sie, dass dies bei mehrzeiligen Übereinstimmungen funktioniert und auch mehrzeilige Zeichenfolgen ersetzt.

<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>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage