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

Perl_cgi oder mod_perl

Leser: 2


<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
Gast Gast
 2007-11-01 23:03
#101673 #101673
Guten Abend.
Ich habe XAMPP und Perl installiert.
Jetzt habe ich unterschiedliche Ergebnisse in der Variablenverarbeitung festgestellt zwischen dem Programm im Internet und dem gleichen Programm auf meinem Rechner.
In einem anderen Forum wurde vermutet, dass es an mod_perl liegt und man hat mir dieses Forum empfohlen.
Ich weiß nun aber selbst nicht ob ich perl/cgi oder mod_perl verwende.
Daher meine Fragen
Sind perl/cgi und mod_perl unterschiedliche Perl-Systeme?
Falls ja, wie kann ich erkennen, welches ich installiert habe
und worin unterscheiden sich die beiden?
Sind Effekte bekannt wie der bei mir aufgetretene, nachfolgend beschriebene?
Eine mit my deklarierte Variable wird beim Aufruf des Programms aus den Übergabeparametern besetzt. Später (an Stelle B) wird die Variable angesprochen.
Beim ersten Aufruf des Programms ist der Wert an beiden Stellen gleich, beim zweiten Aufruf des Programms wird sie zwar wieder neu besetzt, an Stelle B hat sie aber noch den Wert aus dem ersten Aufruf.
Danke für Eure Hilfe
ptk
 2007-11-02 00:12
#101674 #101674
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ist die my-Variable innerhalb oder außerhalb einer sub? Wenn sie außerhalb liegt und du Probleme hast (u.a. auch Warnungen wie "Variable won't stay shared"), dann benutzt du wahrscheinlich Apache::Registry (also eine Möglichkeit der mod_perl-Nutzung). Lösungsmöglichkeit: aus der my-Variablen eine globale machen, sprich "our" oder "use vars" benutzen.
Gast Gast
 2007-11-02 12:47
#101683 #101683
Danke für die rasche Antwort.
Die my-Variable wird zu Beginn des Programms definiert, dann die Subroutine, die die fragliche Variable in einem Formular ausgibt.
Dann kommt das Einlesen der Parameter und der Aufruf der obigen Subroutine.
Beim Einlesen ist der Wert wie geschrieben immer neu und korrekt, in der Subroutine allerdings auf dem Stand des ersten Aufrufs.
Eine globale Variable möcht ich möglichst nicht daraus machen, da dies ja überall als nicht empfehlenswert gilt und da das Programm ja in der Internet-Version korrekt läuft.


Ich wiederhole daher meine Fragen:
Sind perl/cgi und mod_perl unterschiedliche Perl-Systeme?
Falls ja, wie kann ich erkennen, welches ich installiert habe
und worin unterscheiden sich die beiden?
Behandelt mod_perl ma-Variablen anders als andere Perl-Systeme?
Struppi
 2007-11-02 13:26
#101686 #101686
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Gast+2007-11-02 11:47:22--
Sind perl/cgi und mod_perl unterschiedliche Perl-Systeme?
Nein, der Unterschied liegt in erster Linie beim Server. http://de.wikipedia.org/wiki/Mod_perl

Gast+2007-11-02 11:47:22--
Falls ja, wie kann ich erkennen, welches ich installiert habe
und worin unterscheiden sich die beiden?
Du erkennst es wenn der entsprechende Handler in der Apache Konfiguration eingetragen ist.
Strat
 2007-11-02 13:31
#101687 #101687
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
du kannst es herausfinden:

x) im script ueber $ENV{MOD_PERL}, ob es unter mod_perl laeuft oder nicht (wenn leer, dann wahrscheinlich CGI). Wenn es mod_perl ist, dann steht da was drinnen wie 'mod_perl/1.29'

x) ueber die Apache-Config: in welchem Verzeichnis liegt das script? cgi-bin? perl-bin? dann schau mal in der Apache-Config nach (meist httpd.conf), ob du dieses Verzeichnis dort drinnen entdeckst. Wenn da was steht wie: 'ScriptAlias /cgi-bin/ verzeichnis', dann ist es wohl CGI.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Gast Gast
 2007-11-02 15:22
#101694 #101694
Hallo,
es ist mod_perl/2.03.
In Selfhtml habe ich inzwischen im Archiv einen Thread gefunden, der offensichtlich genau das gleiche Problem beschreibt.
Allerdings gabs da auch keine Erklärung, sondern am Ende nur einen Verweis auf das Dokument http://modperlbook.org/html/10-1-Sharing-Memory.ht..., das ich wie der damalige Autor ebenfalls nicht verstehe, insbesondere nicht, ob ich mein mod_perl so konfigurieren kann, dass es läuft wie die Standardversion im Internet.
Struppi
 2007-11-02 15:32
#101695 #101695
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
nein, das ist ja das tolle, das mod_perl nicht wie ein CGI läuft. Wenn du mod_perl nicht willst, musst du es in der Serverkonfiguration deaktivieren.
Gast Gast
 2007-11-02 16:44
#101696 #101696
Weiß jemand, wie man mod_perl in XAMPP/Apache deaktiviert (und verrät es mir)?
GwenDragon
 2007-11-02 17:09
#101697 #101697
User since
2005-01-17
14548 Artikel
Admin1
[Homepage]
user image
Gast+2007-11-02 15:44:40--
Weiß jemand, wie man mod_perl in XAMPP/Apache deaktiviert

Ganz einfach. Das Modul mod_perl.so nicht laden.

Such mal in deiner Apache-Konfiguration nach LoadModule perl_module modules/mod_perl.so und schreibe ein # davor.
Kann auch sein, dass irgendwo noch ein PerlRequire "conf/extra.pl"
oder ähnliches noch auskommetiert werden muss.
Apache neustarten.
die Drachin, Gwendolyn


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

Gast Gast
 2007-11-02 17:47
#101698 #101698
So einfach scheint es doch nicht zu sein.
Ich habe beide Statements deaktiviert, dann gab es beim Serverstart einen Fehler im statement "ResponseHandler".
Nachdem ich auch dieses statement geändert habe bzw. auch gelöscht habe wird das Statement "PerlOptions" abgewiesen.
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2007-11-01 23:03.