Mail::SMTP::Honeypot
Heutzutage gehören Strategien zur Vorbeugung von Systemeinbrüchen und gegen Spam zum täglichen Brot eines Administrators. So genannte "Honeypots" sind ein beliebtes Mittel, um dem potenziellen Angreifer einen Dienst vorzugaukeln, in die er sich ohne große Gefahr anzurichten "verbeißen" kann. Zu diesem Zeck bietet das Modul Mail::SMTP::Honeypot [1] einen vorgetäuschten SMPT-Server an, welcher vom eigentlichen Ziel ablenken kann. Umfangreiche Konfigurationsmöglichkeiten helfen für einen individuellen Einsatz je nach Anforderung.Acme::VarMess
Mit Hilfe von Acme::VarMess [2] können Sie alle Namen von Variablen eines Skripts in lange, schwer lesbare Zeichenketten umwandeln. Dabei werden die jeweiligen Namen automatisch in einen String ähnlich eines MD5-Wertes umgewandelt und ersetzt. Darüber hinaus werden alle Kommentare und POD-Blöcke gelöscht. Bei der Anwendung können Sie über eine spezielle Methode einzelne Variablen von der Umwandlung ausschließen. Auf diese Weise erhalten Sie eine einfache Möglichkeit, einen Quellcode etwas unkenntlicher zu gestalten.PDF::CreateSimple
Das Erzeugen von PDF-Dokumenten über ein Skript muss nicht kompliziert sein, was mit PDF::CreateSimple [3] bewiesen wird. Über spezielle Methoden können Sie damit einfache PDF-Dokumente erzeugen. Dazu ist es möglich, Text, Bilder und geografische Elemente einzubinden. Für die textliche Gestaltung von Inhalten bietet das Modul zahlreiche Schrifttypen und Farben für den einfachen Gebrauch an. Einfache PDF-Dokumente erzeugen Sie mit diesem Modul schnell und ohne großen Aufwand.Beispiel PDF::CreateSimple
Das folgende Bespiel zeigt eine mögliche Anwendung des Moduls PDF::CreateSimple. Zu diesem Zweck werden alle angebotenen Methoden mit einer kurzen Erklärung aufgerufen. Die entsprechenden Argumente der einzelnen Methoden entnehmen Sie bitte der Dokumentation zum Modul.
use PDF::CreateSimple;# Objekt initialisieren und Dateipfad angebenmy $pdfFile = PDF::CreateSimple->new($pdfPath);# Neue Seite anlegen$pdfFile->addNewPage;# Inhalt einfügen$pdfFile->drawText('Hallo PDF, ich komme!','Verdana',12,400,200,'cyan');# Linie zeichnen$pdfFile->drawLine(0,0,50,50,1,'black');# Kurve zeichnen$pdfFile->drawCurve(0,0,50,50,100,50,1,'olive');# Rechteck zeichnen$pdfFile->drawRectangle(0,0,50,50,2,'blue');# Polygon zeichnen$pdfFile->drawPolygon([10,15,20,25,25,30,50,100,50,200],2,'orange');# Kreis zeichnen und mit Farbe füllen$pdfFile->drawCircle(100,100,30,3,'black','green');# Quadrat zeichnen und mit Farbe füllen$pdfFile->drawSquare(150,100,30,1,'olive','red');# Grafik in ein PDF einfügen$pdfFile->drawImage('some_img.jpg',150,150,1.75);# Ein anderes PDF in das Dokument einfügen$pdfFile->importPage('source_pdf');# Inhalt speichern und Dokument schließen$pdfFile->closeFile;
DBIx::AutoReconnect
Das Modul DBIx::AutoReconnect [4] kann die Methode connect() des DBI-Moduls [5] für den abstrakten Zugriff auf Datenbanken ersetzen. Wie der Name bereits vermuten lässt, ermöglicht es automatische neue Verbindungsaufnahmen, falls die aktuelle Datenbankanbindung unterbrochen wird. Dabei können Sie das Zeitintervall der einzelnen Versuche bestimmen. Falls die erneute Verbindung nicht zustande kommt, ist es möglich, eine entsprechende Meldung oder eine weitere Routine auszuführen.Spreadsheet::Read
In vielen Anwendungen liegen zahlreiche Daten in einer strukturierten Datei zur Auswertung vor. Mit Hilfe von Spreadsheet::Read [6] können Sie über einen einfachen Mechanismus auf Daten im Excel-, OpenOffice-, CSV- oder SquirrelCals-Format zugreifen. Dazu werden die entsprechenden Inhalte in eine Hash-Struktur zur weiteren Verwendung geschrieben. Beachten Sie dabei, dass Sie nur lesend Zugriff auf die zugrunde liegenden Daten haben.Archive::Any::Create
Für das Archivieren von Dateien gibt es zahlreiche Module auf CPAN. Mit Archive::Any::Create [7] erhalten Sie für diese Aufgabe eine einfach anzuwendende API, die sich auf das Wesentliche beschränkt, nämlich das Packen der gewünschten Dateien.Bookmarks::Parser
Das Verwalten von Linklisten über Bookmarks ist mit jedem Browser möglich. Darüber hinaus bieten zahlreiche Services die Verwaltung online an. Umfangreiche Listen können dabei schnell unübersichtlich werden. Das Modul Bookmarks::Parser [8] bietet eine Schnittstelle zu den gängigen Bookmarkformaten von Netscape/Mozilla, Opera, A9 und Delicious an. Auf diese Weise können Sie per Skript die einzelnen Bookmarks auslesen und in Ihren Anwendungen weiter verarbeiten. Zahlreiche nützliche Methoden unterstützen Sie bei dieser Aufgabe.threads::shared
Üblicherweise sind Variablen und damit verbundene Datenstrukturen als privat für einen Prozess deklariert. Mit Hilfe von threads::shared [9] können Sie Datenstrukturen über mehrere Threads hinweg parallel nutzen. Für eigene Anwendungen helfen etliche Methoden, sinnvolle Routinen zu gestalten. Für den simultanen und schreibenden Zugriff auf Daten können diese beispielsweise solange gesperrt werden, bis ein aktueller Prozess beendet wurde.Wx::SimplePlotter
Grafische Oberflächen, so genannte GUIs, können Sie in Perl mit verschiedenen Toolkits gestalten. Mit wxWidgets [10] erhalten Sie dazu eine mächtige Lösung für den plattformübergreifenden Support. Das Modul Wx::SimplePlotter [11] hilft Ihnen bei der Ausgabe von Graphen, indem es anhand von geeigneten Koordinaten eine Ausgabe produziert. Die einzelnen Punkte und Linien des Graphs können in unterschiedlichen Farben dargestellt werden. Falls die Größe der GUI vom Anwender verändert wird, erfolgt automatisch eine Skalierung des Graphen.Acme::Oil
Öl wird heutzutage immer teurer und ist zum Spielen ganz und gar nicht geeignet. Mit Acme::Oil [12] können Sie eine Variable in ein öliges, glattes Objekt umwandeln und damit innerhalb Ihrer Anwendung für ein wenig Auflockerung sorgen. Sobald Sie eine präparierte Variable mit einer entsprechenden Methode des Moduls entzünden, brennt diese so lange vor sich hin, bis sie zur Asche zerfallen ist. Seien Sie vorsichtig, das Spiel mit Öl und Feuer kann so manch ungeahnte Effekte mit sich bringen. Im Produktiveinsatz ist von diesem Modul daher abzuraten.JSON
Mit Hilfe von AJAX [13] können Sie dynamische Webanwendungen schreiben, deren Inhalte sich aus einer im Hintergrund ablaufenden Serverkommunikation aktualisieren. Für den unkomplizierten Datenaustausch sorgen in der Regel Daten im XML- oder JSON-Format [14]. Das Modul JSON [15] bietet Methoden an, um Datenstrukturen aus Perl in JSON zu überführen und umgekehrt. Dadurch wird es auf einfache Weise möglich, Daten zwischen Client/Server über AJAX auszutauschen. Falls Sie JSON bisher noch nicht kennen, sollten Sie sich einmal näher damit beschäftigen. JSON kann eine echte Alternative zu XML sein und ist zugleich einfacher mit JavaScript auszuwerten. Johannes Gamperl ist freier Journalist und selbstä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
[1] search.cpan.org/~miker/Mail-SMTP-Honeypot-0.03/[2] search.cpan.org/~xern/Acme-VarMess-0.01/
[3] search.cpan.org/~evanzs/PDF-CreateSimple1.0.2.1/
[4] search.cpan.org/~karasik/DBIx-AutoReconnect-0.01/
[5] search.cpan.org/~timb/DBI-1.50
[6] search.cpan.org/~hmbrand/Spreadsheet-Read-0.14/
[7] search.cpan.org/~miyagawa/Archive-Any-Create-0.02/
[8] search.cpan.org/~jrobinson/Bookmarks-Parser-0.01/
[9] search.cpan.org/~jdhedden/threads-shared-0.95/
[10] www.wxwidgets.org/
[11] search.cpan.org/~crenz/Wx-SimplePlotter-0.03/
[12] search.cpan.org/~makamaka/Acme-Oil-0.1/
[13] www.ajax-scripting.de/
[14] search.cpan.org/~makamaka/JSON-1.05/
[15] www.json.org/




