Matti Maekitalo: Apache Friends WAMPP + use diagnostics = :-(

Beitrag lesen

use Mosche;

#!\wampp2c\perl\bin\perl.exe -w
use diagnostics;
print "Content-type: text/html\n\n";
print "<html><body><center><b>Hello World!</b></body></html>";

Immer wenn man "use diagnostics;" einbindet, kommt die Fehlermeldung "Premature end of script headers"
In der Error.log steht "BEGIN failed--compilation aborted at C:/wampp2c/cgi-bin/test.cgi line 2, <POD_DIAG> line 559."

Wenn man aber in diesem Beispiel z.B. anstatt "use diagnostics;" "use carp;" einbindet, kommt kein Fehler. Also kann es doch nicht daran liegen, dass "diagnostics" nicht "gefunden" wird, da "diagnostics" und "carp" im gleichen Verzeichnis liegen!

Hat jemand einen Tip?

Anscheinend gibt 'diagnostics' einen Fehler zur Compiletime aus, also bevor der Content-Type an den Browser gesendet wird. Setze also die Ausgabe des Content-Types in einen BEGIN-Block bevor du diagnostics einbindest:

#!...
BEGIN {
 print "Content-type: text/html\n\n";
}

use diagnostics;

...

Ansonsten lass dass Script mal auf der Konsole laufen, dann siehst du die Fehler meistens besser.

use Tschoe qw(Matti);

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.