¿Cómo leer y escribir desde un pipe en Perl?

Soy un noob de Perl, así que disculpe esta pregunta básica. Necesito modificar un programa Perl existente. Quiero canalizar una cadena (que puede contener varias líneas) a través de un programa externo y leer la salida de este programa. Así que este programa externo se utiliza para modificar la cadena. Simplemente usemoscat Como un programa de filtro. Lo intenté así, pero no funciona. (Salida decat va a stdout en lugar de ser leído porperl.)

#!/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";

He leído que Perl no admite esto porque puede terminar en un punto muerto y puedo entenderlo. Pero ¿cómo lo hago entonces?

Respuestas a la pregunta(4)

Su respuesta a la pregunta