FindBin

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

FindBin versucht den vollständigen Pfad des Programms zu bestimmen, dies kann z.B. genutzt werden um Configfiles einzubinden oder @INC zu erweitern. Das Modul gehört zu den CoreModulen und muss somit nicht nachträglich installiert werden.

Das FindBin-Modul bietet 4 Variablen an:

  • $Bin – Pfad zum Verzeichnis aus dem das Skript aufgerufen wurde
  • $Script – basename des Skripts, aus dem das Skript aufgerufen wurde
  • $RealBin – $Bin, Links werden aufgelöst
  • $RealScript – $Script, Links werden aufgelöst

Etwas verständlicher wird es mit durch einen kleinen Test:

use warnings;
use FindBin;

print "$FindBin::Bin\n";
print "$FindBin::Script\n";
print "$FindBin::RealBin\n";
print "$FindBin::RealScript\n";

Der Unterschied wird recht schnell klar, wenn man das Skript z.B. in ~/bin ablegt und im Homeverzeichnis einen Link auf das Skript setzt, und einmal das Skript direkt aufruft und einmal über den Link. Verwendet man den Link, enthält $Bin und $Script die Angaben des Links, und $RealBin und $RealScript die Angaben des eigentlichen Skripts in ~/bin.

 

Synopsis

use FindBin;
use lib "$FindBin::Bin/../lib";

or

use FindBin qw($Bin);
use lib "$Bin/../lib";
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