Bei Perl ist es etwas komplizierter. Hier nur die relevanten Zeilen.
use strict;
use warnings;
# Kein Cache, direkte Ausgabe von Print
$|=1;
# Umleitung in eine Logdatei
$protdir = '......';
open(LOG1, "\>\>$protdir");
open(STDOUT, "\>\>&LOG1");
print LOG1 "Start ...... Logdatei\n";
close(STDOUT);
close(LOG1);
print "Content-type: text/html\n\nOK\n";
Die Eintraege in der Logdatei sind korrekt und komplett.
Ich habe es auch schon bei dem letzten print nur mit
print „OK“;
probiert, geht aber auch nicht.
Im php script kommt nie etwas an.
Ist da irgendwo ein Denkfehler drin?
du leitest STDOUT nach LOG1 um, somit geht jedes print dorthin.
dann schliesst du STDOUT auch noch zusätzlich, so dass das print am ende ins leere geht.
du musst den STDOUT handle vorher in einem anderen filehandle sichern.
siehe auch perldoc -f open
open my $oldout, "\>&STDOUT" or die $!;
[...]
open STDOUT, "\>\>&LOG1" or die $!;
[...]
# am ende wieder STDOUT auf den ursprünglichen handle setzen
open STDOUT, "\>&", $oldout or die $!;
print "...\n";
ausserdem, wie hier gezeigt, bei jedem open eventuelle fehler mittels „or die“ abfangen.