mein Problem alsFügen Sie Perl-Modul von einem anderen Standort
- ich die lib in Lage folgt, ist haben ./abc/def/lib
- ich bin mit in Pfad ./abc/xyz/lib /tuv/abc.pm
ich den Code aus einem anderen Ort ganz die läuft, ist so etwas wie ./abc/xyz/blah1/blah2/../../. Ich führe den Code hier.
Ich habe erstellt env params
setenv def ./abc/def
setenv xyz ./abc/xyz
habe ich versucht, die unten Lösungen
Begin { push(@INC, $ENV{def}."/lib") }
Zusammen mit der den Weg für andere Bibliotheken Bereitstellung verwendet i use lib $ ENV {xyz} . "/ lib"Diese Lösung hat nicht funktioniert. Ich bekomme den Fehler, dass die Bibliothek in ./abc/def/lib nicht enthalten ist.
ich die FindBin versucht
# for the libs present in ./abc/def/lib use FindBin; use lib "$FindBin::Bin/../../"; use mylib::abc; use mylib::def;
(Ich habe versucht, den Weg geben auch der Wurzel aus dem looking..in FindBin starten)
habe ich versucht, verschiedene Kombinationen verwenden, aber nicht sicher, warum es nicht funktioniert. Kann jemand darauf hinweisen, was ich falsch mache oder ist mein Verständnis von FindBin falsch.
Vielen Dank @Grant McLean für die Erklärung. Es hat mein Verständnis von FindBin jetzt geklärt. Ihre Antwort war hilfreich. –