Perl-Module mit h2xs

Neue Module werden im Perl durch Erzeugen der Verzeichnis-Struktur und der eigentlichen Modul-Dateien angelegt. Um nun nicht immer alle Verzeichnisse und Dateien manuell anzulegen, bietet sich die Verwendung des Tools "h2xs" an.

Die eigentliche Aufgabe von "h2xs" ist die Umwandlung von C-Header-Dateien in Perl-Module zur Einbindung von C-Libraries in Perl.

Da die Umwandlung prinzipiell auch für leere C-Header funktionieren muß, kann man "h2xs" auch für die Erzeugung leerer Template-Module "mißbrauchen".

Um beispielsweide das Modul Foo.pm im Namensraum Bar anzulegen, würde der folgende Aufruf genügen:

h2xs -A -X -n Bar::Foo

Hierbei teilt die Option "-A" dem Programm mit, daß keine AutoLoader-Funktionalität in das neue Perl-Modul integriert wird. Das bedeutet im wesentlichen, daß die Angabe use AutoLoader in der neu angelegten pm-Datei fehlt.

Die Option "-X" gibt an, daß es keine "XS"-Teile in dem neuen Perl-Modul gibt. XS ist die Schnittstelle von Perl zu einer C-Library.

Die Option "-n" teilt h2xs den vollständig qualifizierten Namen des neuen Moduls mit.

Der Aufruf erzeugt folgende Ausgabe:

marcus@voyager:~/Projects$ h2xs -A -X -n Bar::Foo
Defaulting to backwards compatibility with perl 5.8.8
If you intend this module to be compatible with earlier perl versions, please
specify a minimum perl version with the -b option.
Writing Bar-Foo/lib/Bar/Foo.pm
Writing Bar-Foo/Makefile.PL
Writing Bar-Foo/README
Writing Bar-Foo/t/Bar-Foo.t
Writing Bar-Foo/Changes
Writing Bar-Foo/MANIFEST

Das Verzeichnis "Bar-Foo" wird neu angelegt, ebenso die Dateien "Makefile.PL" und "Foo.pm" in Unterordner "lib/Bar".

Die Modul-Datei "Foo.pm" enthält bereits alles, was eine Modul-Datei enthalten muß. Auch eine Dummy-Dokumentation wird angelegt. Der eigene Inhalt wird nun hinter den Kommentar-Zeile
# Preloaded methods go here.
eingefügt.

Ebenfalls wird ein einfacher Komponenten-Test unter "t/Bar-Foo.t" angelegt. Die in hier angelegten Tests (Standard-Test ist die Einbindung des Muduls mittels "use Bar::Foo"), werden durch den Aufruf von "make test" ausgeführt.

Um das neue Modul zu installieren geht man wie gewohnt vor:

cd Bar-Foo
perl Makefile.PL
make
make test
su -c "make install"

Fertig ... :-)