Wie kann ich den Integrationspfad von Perl für Module für ein CGI-Skript festlegen?

8

Ich habe mehrere Perl-Module auf meinem Hosting-Rechner in ~/perl installiert, wie füge ich sie zum Perl-Modul-Pfad hinzu? Das Festlegen von PERL5LIB oder unshift der Pfade auf @INC funktioniert zwar, aber die Umgebungsvariable hilft nicht bei der Ausführung als CGI-Skript und der @INC -Weg ist nicht sehr portabel. Gibt es einen besseren Weg? Das muss ein häufiges Problem sein, vermisse ich etwas?

    
zoul 10.12.2008, 06:41
quelle

2 Antworten

6

PERL5LIB funktioniert gut für CGI-Skripte. Sie müssen die Variable nur an der richtigen Stelle wie der Serverkonfiguration festlegen. Welchen Webserver benutzen Sie? Für Apache verwende ich die Anweisung SetEnv von mod_env.

@INC ist portabel. Die Pfade, die Sie dort eingeben, sind möglicherweise nicht auf allen Maschinen gleich, aber Sie sollten kein Problem mit der Variablen selbst haben.

Haben Sie die FAQ-Einträge in perlfaq8 gelesen:

brian d foy 10.12.2008, 15:05
quelle
9

Ein sauberer Weg, es zu tun, ist:

%Vor%

es gibt andere interessante und gute Wege, es zu tun, die hier gefunden werden können:

Ссылка

Auch, re: CGI-Skripte, Sie können PERL5LIB Pfade für Ihr CGI Env definieren, es hängt nur von Ihrem Webhost ab.

Einige Webhosts erlauben eine spezifische Kontrolle von env-Variablen für das CGI-Enviroment, und Sie müssen sie nur einstellen, andere haben vielleicht eine "Erlaubnis" -Liste, die es erlaubt, dass Variablen, die zum Startzeitpunkt sichtbar sind, im lokalen Geltungsbereich erscheinen.

Hier können Sie nachlesen, wie Sie dies auf Ihrem spezifischen HTTP-Server tun können.

Es gibt noch eine weitere Möglichkeit, wenn ENV nicht nach Ihrem Geschmack ist: local :: lib

Sucht automatisch einige vordefinierte Pfade.

    
Kent Fredric 10.12.2008 06:57
quelle

Tags und Links