Ich versuche, CGI-Skripte zu mod_perl
mit ModPerl::Registry
zu migrieren.Wie füge ich einen Skript-spezifischen lib-Pfad in mod_perl hinzu?
Die Skripts verwenden Module, die sich im selben Verzeichnis wie das Skript befinden, aber da mod_perl
das aktuelle Verzeichnis an anderer Stelle ist, funktioniert das nicht.
Ich versuchte FindBin
mit zum @INC
hinzufügen, aber hier ist es, was FindBin
wie folgt aussieht:
$FindBin::Bin: /usr/sbin
$FindBin::Script: httpd
, die bei nicht Gebrauch ist alles.
Also gibt es eine Möglichkeit für das Skript herauszufinden, wo es ist, und dieses Verzeichnis zu @INC
hinzufügen? Idealerweise würden alle anderen Skripte, die denselben Apache-Server verwenden, dieses Verzeichnis nicht zu ihrem @INC
hinzugefügt bekommen.
Ich bin mir nicht sicher, ob '__FILE__' durch' mod_perl' unbelästigt bleibt. Wenn es sicher ist, dann gibt es keine Notwendigkeit für "BEGIN" & "Unshift" (außerdem sollte es nach BEGIN keinen Doppelpunkt geben. –
Dies funktioniert: Verwenden Sie File :: Basenname; Verwenden Sie lib dirname (__FILE__); Ihr Vorschlag funktioniert nicht, aber es brachte mich auf den richtigen Weg. Danke. –
Davids Vorschlag funktionierte nicht wegen des Doppelpunkts nach 'BEGIN' –