Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]725[/thread]

ModPerl::Util::exit: (120000) exit was called at: Merkwürdige Fehlermeldung



<< >> 4 Einträge, 1 Seite
stb2050
 2006-05-10 14:52
#7573 #7573
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi Ihr,

habe auf einem neuen Server folgende Fehlermeldung bei einem Script

Quote
ModPerl::Util::exit: (120000) exit was called at /srv/www/blabla/html/cgi-bin/login/meinedaten.cgi line 271Compilation failed in require at /srv/www/blabla/html/cgi-bin/login/login.cgi line 34.


Die entsprechende Zeile sieht so aus:

Quote
if ($page == "meinedaten") { require "/srv/www/blabla/html/cgi-bin/login/meinedaten.cgi"; }


Bei relativer Pfad-Angabe kommt der gleiche Fehler. Hat jemand eine Idee oder einen Tipp? Hab beim Googeln leider nichts gefunden.

Vielen Dank.

LG,
Steffen
GwenDragon
 2006-05-10 14:56
#7574 #7574
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Und ist das aufgerufene (required) CGI in Ordnung?

Ist das nun Zeile 271 in meinedaten.cgi ?

Oder Zeile 34 in /srv/www/blabla/html/cgi-bin/login/login.cgi ?\n\n

<!--EDIT|GwenDragon|1147258895-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Strat
 2006-05-11 16:32
#7575 #7575
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
mit == vergleicht man in perl zahlen, keine zeichenketten.
Code: (dl )
1
2
if ($page eq 'meinedaten') {
require ...

in meinedaten.cgi scheinst du irgendwo ein exit stehen zu haben; dort wird naemlich zu dem zeitpunkt, wo das require ausgefuehrt wird, der code ausgefuehrt, der dort nicht durch subroutinen geschuetzt ist, also auch dein exit.

require hat IMHO bei mod_perl-Scripten nichts verloren; use ist wesentlich effizienter, du musst das script halt nur in ein Perl-Modul konvertieren. und wenn du ein externes script ausfuehren willst (das meinedaten.cgi), dann ist require der voellig falsche weg, sondern besser system, backticks oder aehnliches verwenden.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
ptk
 2006-05-11 23:10
#7576 #7576
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Strat,11.05.2006, 14:32]require hat IMHO bei mod_perl-Scripten nichts verloren; use ist wesentlich effizienter, du musst das script halt nur in ein Perl-Modul konvertieren. und wenn du ein externes script ausfuehren willst (das meinedaten.cgi), dann ist require der voellig falsche weg, sondern besser system, backticks oder aehnliches verwenden.[/quote]
So allgemein gesagt würde ich das nicht unterschreiben. use und require unterscheiden sich nicht sehr voneinander, außer das use bereits zur Compilezeit ausgeführt wird. Wenn ein mod_perl-Handler bereits beim Starten des Apaches geladen wurde (z.B. mit PerlModule), dann kann man bei use davon profitieren, dass das Modul schon im Speicher ist und man beim forken den geteilten Speicher ausnutzen kann. Typischerweise lädt man mod_perl-Handler aber bei Bedarf (z.B. beim Verwenden von Apache::Registry), so dass hierbei kein Vorteil für use gegenüber require entsteht.

Es kann auch andere Gründe geben, require zu verwenden. Ich habe gerade heute aus einige use-Statements require-Statements gemacht und in einen eval-Block verschoben. Warum? Weil der Handler sehr kritisch ist und er auf keinen Fall sterben darf, falls in einem der Module Fehler passiert sind.

Auch kann ein Skript durchaus ein hybrides Modul/Skript sein, anhand des Namens (meinedaten.cgi) kann man das nicht entscheiden.
<< >> 4 Einträge, 1 Seite



View all threads created 2006-05-10 14:52.