Halihallo Dirk
Öffnet man diese, dann scheint es, als ob das Script die print-Anweisungen, mit denen die Meldung erzeugt werden soll, noch sendet, bevor die Serververbindung getrennt wird.
Egal in welcher Reihenfolge ich das ganze ausführe (z.B.: zuerst die Meldung erzeugen, danach Mail-Versand) stets wird der Code für die Meldung noch mitgesendet.
Ach ja, falls es nötig ist, dass du den Debug-Output dennoch brauchst:
$| = 1; # autoflush für STDOUT
Die Ausgabe auf STDOUT ist im Gegensatz zu STDERR gepuffert; der STDERR wird
also "schneller" ausgegeben und deshalb kommt er oft (aber nicht immer!) zuerst. Wenn
du also die Ausgabe so ausgeben lassen willst, wie sie Ablauflogisch sein soll, musst du
auch STDOUT "entpuffern". Zudem musst du wissen, dass es nicht immer so ist, dass
Nachrichten nach STDERR an den Browser geleitet werden (sondern in's log, oder in's
Nirvana)...
Desweiteren würde hier auch ein
BEGIN {
$| = 1;
print 'Content-Type: text/html'."\015\012" x 2;
}
Sinn machen. Dann wird der Header, wie auch der Autoflush am Anfang ausgegeben/gesetzt.
Also noch bevor die erste Zeile deines "Hauptscripts" ausgeführt wird.
Viele Grüsse
Philipp