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

CGI::Carp: verweigert Betrieb

Leser: 1


<< >> 4 Einträge, 1 Seite
GH@NDI
 2005-12-20 21:12
#29697 #29697
User since
2003-09-21
16 Artikel
BenutzerIn
[Homepage] [default_avatar]
Guten Abend :)

Ich arbeite mich derzeit ein wenig in mod_perl2 ein. Und hab damit so hin und wieder meine Schwierigkeiten *g*

Aktuelles Problem ist, dass
Code (perl): (dl )
use CGI::Carp qw(fatalsToBrowser);


unter mod_perl2 nicht zu funktionieren scheint. Bzw. es funktioniert bei ModPerl::Registry scripts. Allerdings Scripts für die ich eine eigene handler Routine habe (weis nicht wie ich das nennen soll), da funktioniert es nicht.

Folgendes Beispiel:
auszug aus mod_perl.conf
Code: (dl )
1
2
3
4
5
<Location /printenv>
    SetHandler perl-script
    PerlResponseHandler PrintEnv
    PerlOptions +ParseHeaders
</Location>


Mit der Option ParseHeaders hab ich schon gespielt. Hätte ja sein können, dass CGI::Carp nicht über $r->content_type die Header rausschickt sondern einfach direkt mit print "Content-Type: text/html\n\n"; was ja ohne aktivieren von "ParseHeaders" von mod_perl nicht erkannt wird.

Das entsprechende Testscript PrintEnv.pm:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
package PrintEnv;

use Apache2::Const -compile => qw(OK);
use CGI::Carp qw(fatalsToBrowser);

sub handler {
    my $r = shift;
    $r->content_type('text/html');
    die "first line...";
    print "Hallo Welt!";
    return Apache2::Const::OK;
}
1;


Ergebniss ist ein Internal Server Error. Wenn man im Error-Log nachsieht, steht dort auch wie erwartet
Code: (dl )
[Tue Dec 20 20:10:13 2005] [error] [client 127.0.0.1] first line... at E:/perl/lib/CGI/Carp.pm line 314.\n


Also ist es kein Syntaxfehler im Script (scheint mir zumindest).

Jetzt stellt sich mir die Frage, woran liegts? Mach ich doch was falsch und komme einfach nicht drauf? Oder funktioniert CGI::Carp unter mod_perl2 und den gegebeben Gesichtspunkten einfach nicht? (Wenn dem so ist, dann dürfte das doch auch gerne in der Doku drinstehen ;) ).

Vielen Dank für die Aufmerksamkeit,
Sven

[Nachtgrag]
Grade viel mir auf, dass mit dem Eintrag im Error-Log doch was nicht stimmt. Und zwar sieht ein Eintrag von CGI::Carp nach einem die eines normalen CGI-Scripts (also kein mod_perl) so aus:
Code: (dl )
[Tue Dec 20 20:18:16 2005] [error] [client 127.0.0.1] [Tue Dec 20 20:18:16 2005] test.cgi: upsss...going down! at E:/cgi-bin/test.cgi line 4.


Das was unter mod_perl2 im Error-Log landet sieht für mich jetzt so aus, als würde CGI::Carp selbst die'en allerdings nicht mit einer für mich relevanten Message sondern dummerweise mit der Message, die ich in meinem gewollten die() Aufruf übergeben habe :/\n\n

<!--EDIT|GH@NDI|1135106321-->
esskar
 2005-12-20 21:40
#29698 #29698
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich kenn mich mit mod_perl nicht so aus, aber jedoch mit persistenten perl interpretern.
Ein echtes "die" bringt nicht nur das script zum sterben, sondern auch den interpreter. dadurch muss mod_perl die, exit, ... - aufrufe abfangen, damit es persitent im speicher bleibt. dies macht es wohl vor CGI::Carp. CGI::Carp bekommt also nix mit von deinem "die"
GwenDragon
 2006-01-25 11:41
#29699 #29699
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
CGI::Carp funktioniert sehr wohl unter mod_perl. ;)


Welche Version von CGI.pm ist installiert?
Kann sein, dass die nicht aktuell ist. Es hat sich für mod_perl2 was geändert.

http://perl.apache.org/docs/2.0/rename.html#Effects
Unten bei CGI.pm!\n\n

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


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

GwenDragon
 2006-02-02 21:15
#29700 #29700
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Geht es nun?
Seltsam, die Leute holen sich Tipps und melden oft kein Feedback, ob's klappt.
die Drachin, Gwendolyn


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

<< >> 4 Einträge, 1 Seite



View all threads created 2005-12-20 21:12.