@inc erweitern (eigene Module in Perl einbinden)

Veröffentlicht: April 8, 2015 in Perl
Schlagwörter:

Frage: Wie kann ich @INC erweitern (PERL5LIB)?

Frage: Wie kann ich meine eigenen Module einbinden, auch ohne root-Rechte?

Antwort: TMTOWTDI, deshalb sollen hier einige dieser Möglichkeiten gezeigt werden.

@INC temporär modifizieren

use

use lib stellt sicher die einfachste und am häufigsten verwendete Möglichkeit dar um den Suchpfad für Module zu erweitern. Aber Perl wäre nicht Perl wenn es nicht auch hier mehrere Möglichkeiten geben würde.

Die an use lib übergebenen Parameter werden dem Suchpfad vorangestellt, dies geschieht aber nur wenn das entsprechende Verzeichnis auch existiert.

use lib "$ENV{HOME}/lib";         # ~/lib hinzufügen
use lib "/verzeichnispfad/lib";   # /verzeichnispfad/lib hinzufügen
no lib ".";                       # aktuelles Arbeitsverzeichnis entfernen

Problematisch wird es wenn die Skripte umziehen, und sich in einer anderen Verzeichnisstruktur wiederfinden. Natürlich kann man den Pfad einfach anpassen, aber es gibt auch hier bessere Möglichkeiten. Abhilfe schaffen hier diverse Module, die zum Teil bereits in Perl enthalten sind (die Module werden in späteren Artikeln vorgestellt und dann entsprechend von hier verlinkt):

auf der Kommandozeile

perl -I /pfad/lib

oder

#!/usr/bin/perl -I /pfad/lib

Umgebungsvariable ändern

export PERL5LIB=$HOME/lib

Fügt man den Export noch in die ~/.bashrc ein, steht der Pfad bei jedem Login zur Verfügung.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s