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?

Verfasst:
von

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.

Verfasst:
von

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.