Seite 1 von 1
Perl: "use DBI;" normal lauffaehig, compiliert nic
Verfasst: 21.05.2005, 20:21
von Airport1
Habe ein Perl Script, was sowohl im uncompilierten Zustand ganz normal funktioniert, als auch im als CGI compilierten.
Sobald ich nun _NUR_ / lediglich
use DBI;
einfuege laeuft es zwar im uncompilierten Zustand weiterhin ohne Probleme, im compilierten Zustand hingegen werde ich mit einem 500 Internal Server Error beglueckt. Im uncompilieren Zustand _koennte_ ich DBI sogar benutzen und es funktioniert tadellos, aber compiliert reicht schon das use DBI; alleine dass nix mehr geht.
Jemand den Hauch einer Ahnung was hier los ist?
Perl: "use DBI;" normal lauffaehig, compiliert nic
Verfasst: 21.05.2005, 21:23
von SISTRIX
Was sagt denn das Errorlog?
Gruß Johannes
Perl: "use DBI;" normal lauffaehig, compiliert nic
Verfasst: 21.05.2005, 21:53
von Airport1
Auch ne Idee, dort mal nachzusehen
[Sat May 21 22:17:51 2005] [error] [client 84.164.247.xxx] Premature end of script headers: wachhund.cgi
Hoffe Du meintest das Apache Error Log.
Perl: "use DBI;" normal lauffaehig, compiliert nic
Verfasst: 21.05.2005, 22:05
von SISTRIX
Tja, Premature end of script headers. Eine sehr dankbare Fehlermeldung. Rechte stimmen?
Gruß Johannes
Perl: "use DBI;" normal lauffaehig, compiliert nic
Verfasst: 21.05.2005, 22:20
von oldInternetUser
Http 500 taucht dann auf, falls das Script unerwartet abbricht und nichts zurücksendet.
Es hört sich danach an, als ob bei der Initialisierung der DBI Umgebungsvariablen fehlen, die bei der direkten Kompilierung zur Verfügung stehen. Damit läuft das Script auf einen nicht bearbeiteten Fehler und bricht ab.
Perl: "use DBI;" normal lauffaehig, compiliert nic
Verfasst: 21.05.2005, 22:25
von Airport1
@Sistrix: wie gesagt ohne das use DBI; laeuft es, daher nehm ich nicht an dass es an den "Linken" liegt
Hab aber eben gelesen das Compilieren bringt gar nicht soviel Speedup (10%?), daher lohnt es sich wahrscheinlich gar nicht diesen Weg weiterzuverfolgen. Vielleicht stimmts aber auch nicht, dann bitte laut schreien

Re: Perl: "use DBI;" normal lauffaehig, compiliert
Verfasst: 22.05.2005, 23:58
von robo
Airport1 hat geschrieben:Auch ne Idee, dort mal nachzusehen
[Sat May 21 22:17:51 2005] [error] [client 84.164.247.xxx] Premature end of script headers: wachhund.cgi
Hoffe Du meintest das Apache Error Log.
Hmm ... könnte es sein, dass das Script, bevor es "Content-Type: ..." ausgibt, was anderes ausgibt? Das führt nämlich zu einem 500er.
cu, Robo

Perl: "use DBI;" normal lauffaehig, compiliert nic
Verfasst: 23.05.2005, 00:07
von Airport1
Daher habe ich das Content-Geluemse sogar mal direkt vor das use DBI; geschrieben (hat auch nicht geholfen), wobei ich befuerchte dass die use-Klauseln beim Ausfuehren trotzdem/eh zuerst abgearbeitet werden.
Uebrigens hab ich mal einen kleinen Test gemacht: Langlaeufige Schleife in Perl mit ein paar (kleinen) Aktionen darin war eigentlich genauso schnell, compiliert wie nicht compiliert. Dann das gleiche in PHP war > 3mal langsamer.