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?
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:
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.