Ich möchte eine Pipeline von Prozessen innerhalb von Perl (unter Linux) einrichten, bestehend aus zwei Teilen, die zu unterschiedlichen Zeiten ausgeführt werden.Wie kann ich die Ausgabe von einem Dateigriff in einen anderen umleiten?
ZB:
den Verbraucher Prozess Start:
open(OUT, "| tar xvf - ") || die "Failed: tar: $!";
starten Sie dann viel später den Hersteller Prozess:
open(IN, "gpg -d $file |") || die "Failed: gpg: $!";
aber dann irgendwie die Ausgabe von GPG in den Eingang zu Teer umleiten .
Ich kann dies tun, indem eine Schleife bauen:
while (<IN>) {
print OUT;
}
Aber ich möchte wissen, ob ich irgendwie die beiden Prozesse zusammen mit Umleitung kleben können.
Warum nicht ‚oder‘ statt '||'? 'oder' hat eine niedrigere Priorität als jeder andere Operator. Wenn Sie die Klammern in einer Funktion weglassen, funktioniert 'oder' genauso, während '||' fängt an, die Argumente der Funktion zu überschreiben, was selten das ist, was Sie wollen. Plus, es sieht einfach schöner aus (für mich). –