Pipe-Problem
am 19.02.2007 05:21:00 von Til SchubbeHallo,
ich möchte einige Zeilen Text von Perl aus einem Shell-Kommando an
dessen Standardeingabe übergeben und die Standardausgabe des
Shell-Kommandos wieder in eine Perl-Variable schreiben.
Was ich schon versucht habe:
$input = "zeile1 bla bla\nzeile2 abababab ababab\nzeile3 a b c\n";
$cmd = '/usr/bin/fmt -s -w 13';
open F, "| $cmd" or die "fork: $!";
local $SIG{PIPE} = sub { die "Pipe gebrochen" };
print F "$input";
close F or die "Pipe fehlerhaft: $! $?";
So läßt sich zwar der Input übergeben, aber die Ausgabe erfolgt über
STDOUT. Ich hätte die Ausgabe aber gerne in $output.
Mit Backticks kann ich hier wohl nicht mehr arbeiten.
Wie bekomme ich die Standardausgabe in eine Variable? Oder wie kann ich
das Problem sonst lösen?
TIA + Gruß
Til