Wie kann man in Perl in eine Pipe lesen und daraus schreiben?

Ich bin ein Perl Noob, entschuldigen Sie bitte diese grundlegende Frage. Ich muss ein vorhandenes Perl-Programm ändern. Ich möchte einen String (der mehrere Zeilen enthalten kann) durch ein externes Programm leiten und die Ausgabe dieses Programms lesen. Dieses externe Programm wird also zum Ändern der Zeichenfolge verwendet. Lass uns einfach benutzencat als Filterprogramm. Ich habe es so versucht, aber es funktioniert nicht. (Ausgabe voncat geht zu stdout anstatt von gelesen zu werdenperl.)

#!/usr/bin/perl

open(MESSAGE, "| cat |") or die("cat failed\n");
print MESSAGE "Line 1\nLine 2\n";
my $message = "";
while (<MESSAGE>)
{
    $message .= $_;
}
close(MESSAGE);
print "This is the message: $message\n";

Ich habe gelesen, dass dies von Perl nicht unterstützt wird, da es möglicherweise zu einem Deadlock kommt und ich es verstehen kann. Aber wie mache ich das dann?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage