Halihallo peter
Das funktioniert bei mir zum Teil mit open(DATEI,"soundso.pl |");
Pipes, OK.
Dazu ist zu sagen, dass das Programm parametisiert ist und einige Funktionen duchaus so ihre Werte zurückgeben, zum Beispiel Textdateien, aber auch laufende Prozesse, die ich durch "refresh" aktuell halte.
Hä?
wenn der gestartete Prozess nicht "detached" gestartet wird, wartet das Hauptprogramm
auf das Enden jenes. Es sei denn das Shell-Programm merkt, dass es nicht unter der
Konsole arbeitet.Was heisst in diesem Zusammenhang "detached"?
In eigener Session, oder so, dass das Hauptprogramm nicht auf das Enden des Childs
wartet. Nicht so wichtig.
Die html-Seite, die ich zurück bekomme beinhaltet im Grunde alles, was ich im Perl-Skript angegeben habe. Die html-Seite soll die Ausgabe des Programms im Grunde wie auf der Konsole darstellen, nur eben grafisch ansprechender usw.
Mit anderen Worten: Es funktioniert alles, bis auf die Ausgaben der Child-Prozesse. Das
hatte ich erwartet und erhofft.
Möglicherweise liegt das Problem gar nicht so sehr bei meinen Skripts, sondern vielmehr an der Arbeitsweise des Shell-Programms. Dennoch ist es eigenartig, dass auf der Konsole alles ausgegeben wird, im Browser aber eben nicht...
Wenn du mit open(F,'prog.pl |');
kannst du mit
while (my $line=<F>) {
print $line;
}
die Daten der Ausgabe von prog.pl einlesen und dann über print $line; zur Standardausgabe
deines Scripts (STDOUT, wird zum Client gesendet) "umleiten".
Viele Grüsse
Philipp