Donnerstag, 4. Dezember 2008

entwickler.com Magazine Konferenzen Entwickler Akademie Entwickler-Forum Jobbörse Bücher
Software & Support Verlag




April 2006
aus Linux Enterprise Ausgabe: 05.2004
Farbenprächtig
Neue Module aus dem CPAN
von Johannes Gamperl

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


Color::Spectrum
Color::Spectrum [1] erzeugt ein Farbspektrum im RGB-Format, welches als Übersicht ausgegeben werden kann. Damit erhalten Webdesigner ein harmonisches Farbgefüge zur Gestaltung von Webseiten. Der Farbton kann hierbei von Hell nach Dunkel und umgekehrt dargestellt werden. Zur Anwendung genügt es, eine Start- und Endfarbe im RGB-Format sowie die gewünschte Anzahl der Farbschritte anzugeben. Als Ergebnis erhalten Sie ein Array mit den jeweiligen Farbnamen aus dem erzeugten Farbverlauf. Diese Daten können Sie nun in einer Tabelle zur Übersicht ausgeben und nach Bedarf weiter verwenden.

DBIx::Ease
Die Hauptarbeit beim Zugriff auf Datenbanken über das DBI-Modul liegt in der Abfrage, dem Parsen und dem anschließenden Auswerten der zurückgegebenen Werte. Eine Datenbankabfrage mit DBIx::Ease [2] hingegen gestaltet sich sehr einfach. Über eine einfache Methode übergeben Sie einem Objekt den Tabellennamen und das gewünschte SQL-Statement und erhalten nun ein Array mit den zurückgegebenen Tabelleninhalten zur weiteren Verwendung.

Inline::Java
Mit Inline::Java [3] können Sie innerhalb eines Perl-Programms selbst geschriebenen Java-Code anwenden. Dazu erzeugen Sie den gewünschten Programmteil als so genanntes Here-Dokument innerhalb Ihrer Perl-Datei. Beim Ausführen wird der Java-Compiler gestartet und das Programm zur Laufzeit kompiliert. Im weiteren Programmfluss können Sie nun alle öffentlichen Methoden Ihrer Klasse in der typischen OO-Schreibweise von Perl anwenden.

Beispiel Inline::Java
Das folgende Beispiel zeigt die Verwendung von Inline::Java. Es erzeugt eine einfache (nicht ernst gemeinte) Klasse für mathematische Operationen. Da alle Methoden öffentlich deklariert wurden, können Sie dies nun über den in Perl typischen OO-Ansatz aufrufen. Diese Beispiel soll nur ein Gefühl dafür vermitteln, welch mächtige Möglichkeiten sich durch dieses Modul für Perl-Anwendungen ergeben. Ihrer Kreativität sind keine Grenzen gesetzt.

use Inline Java => <<'THIS_IS_JAVA_CODE' ;
class Pod_alu
{
public Math_java() { }

public int add(int i, int j)
{
return i + j ;
}

public int subt(int i, int j)
{
return i - j ;
}

public int mul(int i, int j)
{
return i * j ;
}

public int div(int i, int j)
{
return i / j ;
}
}
THIS_IS_JAVA_CODE

my $math = new Math_java() ;
print $math->add(9, 16); # gibt 25 aus
print $math->subt(9, 16); # gibt -7 aus
print $math->mul(2, 2); # gibt 4 aus
print $math->div(9, 3); # gibt 3 aus

Acme::Palindrome
Falls Sie auch der Meinung sind, dass es mal wieder an der Zeit wäre, den ein oder anderen Kollegen mit dubiosem Quellcode zu ärgern, dann sollten Sie sich Acme::Palindrome [4] ansehen. Wird dieses Modul in ein bestehendes Skript eingebunden, wandelt es den kompletten Quellcode in eine spiegelverkehrte Schreibweise um. Das Programm selbst arbeitet natürlich wie beabsichtig weiter. Viel Spaß!

GD::Graph::radar
Mit Hilfe von GD::Graph::radar [5] können Sie aussagekräftige Graphen erstellen, so genannte Radarplots, wie sie der Autor des Moduls bezeichnet. Jedes Datenelement wird als Linie vom Ursprung mit einer Länge, die dem Datenwert gleich ist, dargestellt. Die Spitzen dieser Linien werden nun zu einem schattiert dargestellten Polygon verbunden. Typischerweise können Sie damit verschiedene Ausprägungsgrade von Variablen auf den jeweiligen Achsen visualisieren. Auf diese Weise sind Veränderungen im Datenbestand über die Form des Polygons schnell zu erkennen.

urifind
urifind [6] ist ein Kommandozeilen-Utility, mit dem Sie in Dokumenten nach Verweisen suchen können. Dazu bietet das Programm zahlreiche Möglichkeiten. So können einzelne oder eine komplette Liste an Dateien zur Auswertung übergeben werden. urifind kann lokal oder unter Unix in Verbindung mit wget für entfernte Auswertungen aufgerufen werden. Die Sortierung der Treffer erfolgt nach dem Alphabet und kann auf Wunsch in umgekehrter Reihenfolge ausgeführt werden. Die Möglichkeit, Reguläre Ausdrücke bei der Suche zu verwenden, rundet dieses nützliche Utility angenehm ab.

DBD::Google
DBD::Google [7] ermöglicht es Ihnen, die Suchmaschine Google als Datenquelle für das Datenbankmodul DBI zu verwenden. Auf diese Weise können Sie eine Suche über ein SELECT-Statement und die entsprechenden Methoden aus DBI ausführen. Dadurch können Sie Ihre individuellen Suchseiten gestalten und Ergebnisse nach eigenen Bedürfnissen zusammenfassen oder in ein geeignetes Datenformat überführen. Zur Verwendung wird ein Account für die Google-API benötigt. Eine Registrierung ist kostenlos unter www.google.de/apis/ möglich.

Date::Transform
Das Umwandeln von Datumsformaten in eine für eigene Bedürfnisse geeignete Form kann manchmal zur lästigen Aufgabe werden. Glücklicherweise gibt es Module, mit denen Sie diese Arbeit im Handumdrehen erledigen können. Mit Date::Transform [8] bestimmen Sie im Objektaufruf das gewünschte Ausgabeformat, in das das ursprüngliche Datumsformat umgewandelt werden soll. Das Modul unterstützt alle unter Unix gängigen Datumsformate.

PDF::Extract
Für die Arbeit mit PDF-Dateien gibt es mittlerweile zahlreiche Module, welche sich hauptsächlich auf das Erzeugen von eigenen Dokumenten konzentrieren. PDF::Extract [9] bietet ganz andere Vorzüge. Wie der Name bereits vermuten lässt, ermöglicht es, aus einem bestehenden PDF-Dokument gezielt einzelne Abschnitte zu extrahieren und diese in einem neuen Dokument auszugeben. Die Anwendung ist denkbar einfach. Über einen Parameter im Objektaufruf werden die relevanten Seiten in gewohnter Schreibweise aus der Druckersteuerung (z.B. 1-2 27-35) angegeben. Falls Sie häufig mit PDF-Dokumenten arbeitet, sollten Sie dieses Modul unbedingt testen.

Image::Timeline
Image::Timeline [10] erzeugt grafische Zeitschienen im gif- oder png-Format. Dazu bestimmen Sie zunächst die gewünschten Merkmale des Bildes wie beispielsweise die Breite in Pixel, die Hintergrundfarbe oder die Schrift. Nun können Sie über eine Methode beliebige Einträge in Ihre Timeline einfügen. Neue Einträge besitzen als Merkmale einen Titel sowie das Start- und Enddatum als Jahreszahl. Beim Erzeugen der Grafik achtet eine Routine darauf, dass die Zeitlinien sich nicht gegenseitig überschneiden, sondern bei Bedarf korrekt untereinander bzw. versetzt angeordnet werden.

File::ReadBackwards
File::ReadBackwards [11] dient zum zeilenweisen Einlesen von Dateien, wobei dies rückwärts, d.h. vom Ende der Datei aus, erfolgt. Verwendung findet dieses Modul beispielsweise zum Einlesen und Auswerten von Logfiles, welche die neuesten Daten typischerweise am Ende der Datei speichern. Standardmäßig erwartet das Modul den üblichen Zeilenumbruch als Zeilenseparator. Für exotische Dateien können Sie aber auch einen individuellen Zeilentrenner bestimmen, indem Sie diesen bei der Initialisierung des Objekts angeben.
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


    Hat Ihnen dieser Artikel gefallen? Dann abonnieren Sie das Entwickler Magazin direkt über unser Online-Formular.

zur vorherigen Seite
zurück
an den Anfang der Seite
nach oben
Diesen Artikel drucken
drucken
Diesen Artikel weiterempfehlen
empfehlen

Software & Support Verlag GmbH