Auf dem Comprehensive Perl Archive Network (CPAN) finden Perl-Programmierer unzählige Informationen, die das Leben im Programmieralltag erleichtern. Darunter auch eine umfassende Sammlung von Perl-Modulen, -Routinen und -Programmen für die unterschiedlichsten Aufgaben. In dieser Rubrik stellen wir Ihnen interessante und neue Module und Programme vor. Das CPAN erreichen Sie unter
www.cpan.org/.
PDF::Reuse::Barcode
PDF::Reuse::Barcode [1] ist eine Erweiterung zum Modul PDF::Reuse [2], welches bereits in einer vergangenen Ausgabe beschrieben wurde. Es ist für die Erzeugung von Barcodes zur Einbindung innerhalb eines PDF-Dokuments gedacht. Dabei können Sie die Hintergrundfarbe frei wählen und die dynamisch erzeugte Grafik kann beliebig rotiert werden. Die Barcodegrafik wird entweder per default-Größe oder nach eigenen Wünschen ausgegeben.
Tk::ToolBar
Tk::ToolBar [3] ermöglicht es Ihnen, in einer Perl/Tk-Anwendung eine Toolbar einzubinden. Für die Menüpunkte werden Grafiken, Text oder beides verwendet. Innerhalb der Menüs können Sie Formelelemente wie Buttons oder Checkboxen zum Einsatz bringen. Das Besondere an dieser Toolbar ist, dass Sie diese dockable machen können. Per Mausdrag kann diese dann neben die Anwendung ausgeklinkt oder am linken oder rechten Rand bzw. oben oder unten angedockt werden.
Beispiel Tk::ToolBar
Das folgende Beispiel erzeugt eine einfache Tk-Anwendung mit zwei Toolbars und unterschiedlichen Funktionen. Beim Vergrößern der Anwendung können Sie per Mausdrag die Komponenten an beliebiger Position im Fenster anordnen.
use Tk;
use Tk::ToolBar;
my $mw = new MainWindow;
my $tb = $mw->ToolBar(qw/-movable 1 -side top
-indicatorcolor blue/);
$tb->ToolButton (-text => 'Button',
-tip => 'tool tip',
-command => sub { print "hi\n" });
$tb->ToolLabel (-text => 'A Label');
$tb->Label (-text => 'Another Label');
$tb->ToolLabEntry(-label => 'A LabEntry',
-labelPack => [-side => "left",
-anchor => "w"]);
my $tb2 = $mw->ToolBar;
$tb2->ToolButton(-image => 'navback22',
-tip => 'back',
-command => \&back);
$tb2->ToolButton(-image => 'navforward22',
-tip => 'forward',
-command => \&forward);
$tb2->separator;
$tb2->ToolButton(-image => 'navhome22',
-tip => 'home',
-command => \&home);
$tb2->ToolButton(-image => 'actreload22',
-tip => 'reload',
-command => \&reload);
MainLoop;
Tk::FastSplash
Tk::FastSplash [4] ermöglicht es, ein Startbild beim Laden einer Perl/Tk-Awendung aufzurufen. Das Laden dieser Grafik erfolgt sehr schnell und führt daher nicht zu unerwünschten Verzögerungen. Als Parameter übergeben Sie dem Modul die gewünschte Grafik mit entsprechender Höhe und Breite sowie den Text für die Titelzeile. Ein in der Distribution enthaltenes weiteres Modul ermöglicht die Verwendung des Splashscreens mit einem integrierten Fortschrittsbalken.
Acme::USIG
Anständige Perl-Programmierer verwenden in ihren Programmen stets
strict, um eine strenge Fehlerprüfung zu verwenden. Dieser Programmierstil ist zwar absolut empfehlenswert, aber nicht jeder ist erfreut darüber. Dank dem Modul
Acme::USIG [5] können Sie Ihren Unmut oder Ihrer Zuneigung zu
strict Ausdruck verleihen. Mit
use strict is gay können Sie beispielsweise Variablen ohne Deklaration mit
my verwenden.
use strict is cool hingegen arbeitet wie von
strict beabsichtigt. Ein nettes Modul, um Ihren Chef zu ärgern Sie sollten aber doch lieber bei
use strict in Ihren Programmen bleiben. ;o)
Email::Simple
Der Autor von
Email::Simple [6] möchte mit diesem Modul die Bearbeitung von eMails im Format RFC2822 vereinfachen. Dabei beschränkt er sich auf das Wesentliche bei der Bearbeitung von Nachrichten und verzichtet auf unnötigen Overhead und damit verbundene Fehlerquellen. Für die Arbeit mit einer eMail können Sie jeweils den Header und den Body der Nachricht auslesen und neu beschreiben. Beachten Sie, dass diese Anwendung lediglich zum Bearbeiten bzw. Parsen einer Nachricht entwickelt wurde und damit keine eMails verschickt werden können.
Text::Flowchart
Flussdiagramme müssen nicht immer mit aufwändigen grafischen Programmen erzeugt werden. Das Modul
Text::Flowchart [7] erzeugt ansprechende Ablaufdiagramme im ASCII-Format. Zahlreiche Methoden kümmern sich um die Formatierung der einzelnen Boxen, d.h. deren Größe (Höhe und Breite), die Ausrichtung und den textlichen Inhalt. Über die Parameter eines so genannten Boxobjekts werden die Abhängigkeiten und Beziehungen im Geflecht der Diagramme bestimmt. Nach einer Eingewöhnungsphase werden Sie schnelle Erfolge erzielen und schon bald komplexe Abläufe darstellen können.
Text::Flowchart::Script
Der Umgang mit dem zuvor beschriebenen
Text::Flowchart kann für manche Anwender recht mühsam sein. Aus diesem Grunde hat ein weiterer Autor mit
Text::Flowchart::Script [8] eine eigene Skriptsprache für die Arbeit mit diesem Modul entwickelt. Mit Hilfe der einfach anzuwendenden Syntax erzeugen Sie im Handumdrehen komplexe ASCII-Flussdiagramme. Dank dieser Skriptsprache wird für jedes Diagramm eine eigene Vorlage erstellt, welche dann in das Hauptprogramm bei Bedarf eingelesen wird. Um interne Dokumentationen einzubinden, können Sie sogar Kommentarblöcke in die Skriptdateien einfügen.
XML::Smart
Das Modul
XML::Smart [9] ermöglicht es, über eine einfach anzuwendende Syntax XML-Dateien zu lesen, abzuändern oder neu zu erzeugen. Dazu wird die komplette XML-Datei in eine Hash-Datenstruktur eingelesen. Jeder Knoten der Datei ist nun über ein Hash oder ein Array verfügbar. Spezielle Methoden ermöglichen die Suche innerhalb des Hashs beispielsweise nach Attributen oder bestimmten Attribut-Werten. Binäre Daten (nach Base64), CDATA sowie Unicode werden automatisch korrekt verarbeitet. Methoden zum Auslesen von entfernten XML-Dateien via Web sowie das Versenden dieser per Sockets runden die Möglichkeiten dieses Moduls ab. Besonders angenehm ist es, dass intern komplett eigene Routinen für die Funktionalität sorgen und komplexe Module wie beispielsweise
XML::Parser [10] nicht benötigt werden.
UML::Sequence
UML::Sequence [11] wurde konzipiert, um Diagramme in UML zu erzeugen. Als Ausgangsbasis für diese Diagramme dient eine XML- oder Text-Datei, welche über einen Parser nach SVG konvertiert wird. Der Autor bietet dazu Möglichkeiten mit Perl oder Java an. Als Ergebnis erhalten Sie eine Grafik im png-Format. Auf diese Weise lassen sich in wenigen Minuten komplexe Konstrukte ohne grafische Programme abbilden.
HTML::Index
Mit Hilfe von
HTML::Index [12] erzeugen Sie einen Index aus einem Satz von HTML-Dateien, um diese dann anschließend durchsuchen zu können. Dies kann per Volltextsuche, über so genannten Boolesche Ausdrücke, mit Hilfe von Regulären Ausdrücken oder über eine und/oder-Verknüpfung erfolgen. Bei der Erstellung des Index werden Stoppwörter berücksichtigt. Die Speicherung der Daten kann unter anderem in eine Berkeley DB erfolgen. Eine Schnittstelle erlaubt es Ihnen aber auch, andere Formate sowie Datenbanken zur Speicherung zu verwenden. Etliche Beispiele zeigen die Verwendung des Moduls und dienen als Anregungen für eigene Anwendungen.
Johannes Gamperl ist freier Journalist und selbstständiger Programmierer. Im Internet ist er unter seiner Firmenseite
www.jg-webdesign.de/ oder seinem Portal für Webentwickler
www.devshare.de/ zu erreichen.
Links