Archiv für die Kategorie ‘Perl’

professionelle Skripte mit Getopt::Long

Veröffentlicht: Juli 17, 2016 in Perl
Schlagwörter:

perl-logoGetopt::Long ist ein Modul zum Parsen von Kommandozeilenargumenten, so kann man auf einfache Weise ein Unix-ähnliches Inferface erzeugen. Mit nur wenigen Zeilen Code lassen sich Parameter übergeben, sowie deren Typ prüfen. (mehr …)

Advertisements

Perl – Configfile auslesen

Veröffentlicht: Juli 13, 2016 in Perl
Schlagwörter:

perl-logoOftmals ist es am einfachsten die Konfiguration für ein Programm direkt im Code zu hinterlegen, etwas anders sieht es aus wenn auch Nicht-Programmierer Änderungen an der Config vornehmen müssen. An dieser Stelle soll kurz gezeigt werden wie man ein solches Configfile sehr einfach auslesen und verarbeiten kann.

(mehr …)

Bash – Konvertieren zwischen Zahlensystemen

Veröffentlicht: Mai 22, 2015 in Linux, Perl
Schlagwörter:

Mit Hilfe von Perl und einiger Alias-Definitionen kann man sehr leicht Werte zwischen einzelnen Zahlensystemen umrechnen. Hierzu editiert man einfach das File .bash_aliases im Homeverzeichnis des Users:

vim ~/.bash_aliases

und trägt die folgenden Zeilen ein:


# Base Conversion #
alias d2h="perl -e 'printf qq|%X\n|, int( shift )'"
alias d2o="perl -e 'printf qq|%o\n|, int( shift )'"
alias d2b="perl -e 'printf qq|%b\n|, int( shift )'"

alias h2d="perl -e 'printf qq|%d\n|, hex( shift )'"
alias h2o="perl -e 'printf qq|%o\n|, hex( shift )'"
alias h2b="perl -e 'printf qq|%b\n|, hex( shift )'"

alias o2h="perl -e 'printf qq|%X\n|, oct( shift )'"
alias o2d="perl -e 'printf qq|%d\n|, oct( shift )'"
alias o2b="perl -e 'printf qq|%b\n|, oct( shift )'"
  • d => dezimal
  • h => hexadezimal
  • o => oktal

Nach dem Start einer neuen Bash bzw. Terminals kann man direkt loslegen:

h2d A
10

Die meisten kennen das Online-Wörterbuch dict.leo.org und verwenden es entweder über den direkten Aufruf der Seite oder über ein entsprechendes Browserplugin. Mit Hilfe des kleinen Tools leo aus dem CPAN geht es aber auch ganz ohne Browser:

leo Screenshot

Für die Installation verwendet man am besten cpanminus oder cpanplus (hier cpanminus)

cpanm WWW::Dict::Leo::Org

Das weitere Verhalten/Aussehen lässt sich über das Configfile .leo im Homerverzeichnis (muss erstellt werden) oder die entsprechenden Optionen steuern (siehe auch leo). Für die meisten Zwecke sollte der einfache Aufruf von leo mit dem zu übersetzenden Wort genügen.

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

(mehr …)

Dir::Self

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

Bei dem Modul Dir::Self handelt es sich um eine weitere Möglichkeit @INC zu erweitern oder Configfiles etc. einzubinden (siehe auch @INC erweitern).

use Dir::Self;
use lib __DIR__ . "/lib";
my $conffile = __DIR__ . "/config";

Wie man sieht ist Verwendung recht einfach, das Modul speichert den den Pfad in __DIR__. Das ganze funktioniert auch recht gut, sofern man das Skript direkt aufruft, oder es sich im Suchpfad befindet. Versucht man das Programm allergings über einen Link aufzurufen, befindet sich in __DIR__ nicht der Pfad zum Programm, sondern der Pfad zum Link.

Debianpaket: libdir-self-perl

@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.

(mehr …)