Thread @INC auf Unterverzeichnisse erweitern (6 answers)
Opened by trojax at 2009-06-15 15:48

sid burn
 2009-06-19 16:45
#122596 #122596
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
2009-06-19T12:24:31 roooot
Code (perl): (dl )
1
2
3
4
use lib (
        './module',
        './module/CPAN'
);

Der weg hat aber mehrere Nachteile.

1) Platformabhängig. Läuft nur auf Unix ähnlichen Systemen, auf anderen muss es nicht laufen und dafür gibt es keine Garantie.

2) Der Punkt "." stellt das aktuelle Arbeitsverzeichnis dar, nicht das Verzeichniss indem sich die Datei befinden. Daher wenn du eine ausführbare datei unter "/usr/local/bin/asdfg.pl" hättest und du befindest dich in "/home/sidburn" und rufst dein programm mit "asdfg.pl" auf dann fügst du folgende Ordner hinzu

"/home/sidburn/module",
"/home/sidburn/modules/CPAN"

ich kann mir schwer vorstellen das dies etwas ist was irgendjemand haben möchte.

(Es wird natürlich wirklich nur "./module" hinzugefügt, aber es expandiert eben zu oberes, sofern man nicht mit chdir() den arbeitsordner wechselt)

Besser wäre folgendes:

Code: (dl )
1
2
3
4
use FindBin;
use File::Spec::Functions;
use lib catdir($FindBin::Bin, 'module');
use lib catdir($FindBin::Bin, 'module', 'CPAN');

Last edited: 2009-06-19 16:50:51 +0200 (CEST)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread @INC auf Unterverzeichnisse erweitern