Tipps und Tricks zu Perl und CPAN-Modulen

Template-Toolkit mit neuem Release

Beitrag von Uwe am 23.01.2007 um 16:11 Uhr | 0 Kommentare

Als ich heute die Liste neuer CPAN-Module anschaute, war ich ganz erstaunt: Von einem meiner Lieblingsmodule, dem Template-Toolkit, gab es eine neue Version. Mein Erstaunen wurde noch größer, als nicht mehr Andy Wardley, sondern Adam Kennedy als Autor auftauchte.

Inzwischen hat Adam in seinem Blog klargestellt, daß es sich nur um ein Notfall-Release handelt (welches die Installierbarkeit unter Windows verbessert). Wer die Version 2.15 bereits installiert hat, braucht nicht auf die 2.16 umzusteigen - es wurden keine Änderungen am Programmcode vorgenommen.

Leider ist die Entwicklung von TT3 (Template-Toolkit Version 3) völlig eingeschlafen. Vor ein paar Jahren gab es mal eine Mailingliste und auch eine Vorabversion (der allerdings z. B. noch FOREACH-Schleifen fehlten). Schade! Aber TT2 funktioniert sehr gut, da kann man dies verschmerzen.


Bildschirmfotos mit Imager::Screenshot

Beitrag von Uwe am 22.01.2007 um 17:56 Uhr | 2 Kommentare

Mit dem CPAN-Modul Imager::Screenshot kann man Bildschirmfotos unter Perl erstellen. Das Modul unterstützt Windows und X11 (ich habe nur X11 ausprobiert).

Im einfachsten Fall exportiert man die Methode screenshot und erhält ein Imager-Objekt zurück. Auf diesen ruft man dann write auf. Das folgende Perl-Skript verdeutlicht dies:

#!/usr/bin/perl

use warnings;
use strict;

use Imager::Screenshot qw(screenshot);

$ENV{DISPLAY} = ':0.0';
my $img = screenshot;

$img->write(file => $ARGV[0] || 'screenshot.png');

Download: shot.pl

Laßt Euch nicht von dem $ENV{DISPLAY} = ':0.0'; abschrecken. Das brauche ich, damit das Bild vom richtigen X11-Display "geschossen" wird. Wer nur einen Bildschirm angeschlossen hat, kann die Zeile weglassen.

Und damit hat mein altes png-grab.pl ausgedient, denn basierend auf xwd und convert habe ich bisher meine Screenshots erstellt:

#!/usr/bin/perl

use warnings;
use strict;

my $seconds = $ARGV[0] || 2;

while (1) {
    my $file = time;
    system "xwd -display :0.0 -nobdrs -root -silent "
          ."| convert - $file.png";
    sleep $seconds;
}

Download: png-grab.pl


Catalyst-Authentication-Plugin für Rose::DB::Object

Beitrag von Uwe am 18.01.2007 um 14:43 Uhr | 0 Kommentare

Ich verwende Catalyst und Rose::DB::Object schon seit einiger Zeit. (Und bin sehr zufrieden damit.) In meinen älteren Projekten ist die Benutzerverwaltung noch "handgestrickt". Aber in neueren Projekten verwende ich natürlich Catalyst::Plugin::Authentication (kurz: CPA) und Co.

Was lag also näher, als die beiden zu verbinden? Mit CPA::Store::DBIC als Vorbild hatte ich bereits vor einem Dreivierteljahr CPA::Store::RDBO geschaffen. Seit ein paar Tagen ist die Version 0.002 im CPAN zu finden.

Die Verwendung ist einfach und orientiert sich an CPA::Store::DBIC. In den nächsten Wochen werde ich ein Beispiel zur Verwendung (und allgemein Authentifizierung/Authorisierung in Catalyst) veröffentlichen.