erste Zeile #!/usr/bin/perl -w
gaby
- perl
weiß zufällig jemand wieso ich beim Ausführen meiner (beim Provider liegenden) Skripten, einen "internal server error" bekomme wenn ich in der ersten Zeile das w dahinterhänge?
#!/usr/bin/perl -w
mit
#!/usr/bin/perl
werden die Skripte ganz normal und einwandfrei ausgeführt
Mit dem -w schaltest Du die "Warnings" ein. D.h. noch bevor Dein Script die Content-type Zeile zurückliefert gibt es ersteinmal ein paar Warnmeldungen.
Jetzt könnte man natürlich meinen, -w einfach wegzulassen und die Warnungen zu ignorieren, viel besser wäre es aber diese möglichen Fehlerquellen auszuschließen, das Programm sauber zu erstellen um dann auch keine Warnungen mehr zu bekommen.
Du benutzt doch sicherlich "use strict" (shame on you wenn nicht!). Dann sollten sich dich meisten Warnungen beim Testen Deines Scripts von Hause aus erledigen, da strict viele Unsauberkeiten gar nicht erst durchgehen lässt.
Gruß, Stephan
Hi,
Dazu gibt es eine praktische Lösung, die ich gerne nutzte. Ich binde STDERR einfach an eine Datei. Dadurch wird nichts mehr vor dem Header ausgegeben, zumindest nichts an den Browser. Ausserdem kann man dadurch, auch wenn bei einem der Provider ist die einem keinen Zugang zum Log gestattet, viele (alle bis auf kompilierungsfehler) nachlesen, auch im Betrieb.
mfg Andres Freund
hi!
weiß zufällig jemand wieso ich beim Ausführen meiner (beim Provider
liegenden) Skripten, einen "internal server error" bekomme wenn ich
in der ersten Zeile das w dahinterhänge?
#!/usr/bin/perl -w
mit
#!/usr/bin/perl
werden die Skripte ganz normal und einwandfrei ausgeführt
Das liegt vermutlich daran, dass durch das -w eine Warnung ausgegeben
wird, und zwar bevor du den notwendigen HTTP-Header ausgibst. Du
solltest zb. das Error-Logfile der Domain konsultieren. Dort müsste
die ausgegebene Warnung zu finden sein.
bye, Frank!