DAS Magazin für Softwareentwicklung mit Perl!

Sommer 2013

Coverbild der aktuellen Ausgabe => Jetzt bestellen





Leseprobe der Ausgabe
Für den Ausnahmefall gerüstet - Perl6 Exceptions

Perl 6 bewahrt die einfache Benutzbarkeit von Perl 5 und untermauert dabei viele Eigenschaften mit einem soliden, erweiterbaren Modell.

So ist das auch bei Exceptions. Im einfachsten Fall schmeißt man Exceptions mit die "Fehlermeldung";, und fängt sie mit try { code-der-sterben-kann() }. Die Fehlermeldung landet in $!.

Soweit überrascht es den Perl 5-Kenner noch nicht, nur eval BLOCK heißt jetzt try. Wie immer kommt eine kleine syntaktische Besonderheit hinzu: Die geschweiften Klammern sind jetzt optional, try code-der-sterben-kann() geht auch....

Moritz Lenz stellt die Perl6-Exceptions sehr ausführlich in dem Artikel vor.


Perl6 - Der Himmel für Programmierer

In den letzten anderthalb Jahren (seit 3/2011) wuchs das Perl 6-Projekt weiter von der Breite in die Tiefe. Das bedeutet weniger Implementationen aber mehr Funktionalität denn je. Bevor es jedoch zu den Details geht, lohnt es sich, den Einfluss von Perl 6 auf Perl 5 zu betrachten.

Herbert Breunung zeigt im 5. Update Artikel was sich an der Sprache, bei der Dokumentation und den Implementierungen getan hat.


Mojolicious Tutorial - Teil 3

Wir sind mittlerweile beim dritten Schritt zu unserer Anwendung angekommen. Wir wollen eine Anwendung entwickeln, bei der Läufer ihre Strecken und Laufzeiten eintragen können. Die Basisstruktur wurde mit Hilfe des mojo-Skripts erzeugt, in der ersten Ausgabe des Tutorials gab es die allgemeine Einführung in Mojolicious inklusive Routing, Templates und Stashes.

In der vergangenen Ausgabe wurden die ersten praktischen Schritte auf dem Weg zur Anwendung gegangen: Die Anwendung wurde konfiguriert ein erstes "Release" wurde vorgenommen und dabei vom Entwicklungsmodus in den Produktivmodus gewechselt. Abschließend wurden die ersten Plugins vorgestellt und verwendet.

In dieser Ausgabe wird das Formular zum Hinzufügen von Trainingseinheiten nur für registrierte Benutzer zugänglich gemacht. Außerdem steigen wir tiefer in die Plugins ein und es wird gezeigt, wie man eigene Plugins für Mojolicious schreiben kann. Momentan ist es ja in Mode, Anwendungen bei dotCloud oder heroku zu veröffentlichen. Wie man das macht, wird ebenfalls in der dieser Ausgabe Thema sein.


Exceptions, Logging und Übersetzungen

Perl ist auf viele Arten eine beeindruckende Sprache. Gibt es eine Programmiersprache mit mehr Syntax? Wahrscheinlich nicht: es gibt immer mehrere Wege, etwas zu tun, während andere Programmiersprachen dem Entwickler ein vorgegebenes Konstrukt aufzwingen. Aber obwohl Perl bei einfacher Syntax extrem stark ist, fehlen doch manche höhere Features zur Entwicklung von größeren Anwendungen. So haben wir zum Beispiel keine ausgeprägte Infrastruktur zum Logging oder für Exceptions im Core.

Aber auch wenn es diese Features nicht im Core gibt, haben wir dennoch zahlreiche Alternativen dafür im CPAN. Und genau das ist das Problem. Wenn eine Anwendung verschiedene Bibliotheken verwenden will, haben diese (ziemlich sicher) inkompatible Konzepte für Exceptions und Logging. Das schränkt die operationale Fähigkeit des Codes ein. Dabei ist einer der Gründe, warum es so viele Implementierungen für die selbe Aufgabe im CPAN gibt, dass die verwendeten Frameworks inkompatibel sind.

Dieser Artikel versucht, den Leser davon zu überzeugen, dass die Infrastruktur für Exceptions, für Logging, und für die Übersetzung eng miteinander verwandt ist. Sogar so eng, dass sie am Besten als ein einziges Framework implementiert werden sollten. Das Modul Log::Report tut genau das, und dieser Artikel versucht dich davon zu überzeugen, dass es ein praktisches Framework ist.


Ein Geschenk für die Liebsten

Was schenke ich meiner Frau zu Weihnachten? Ein schönes Bild, zusammengestellt aus lauter Bildern von Urlauben und anderen Gelegenheiten. So ein Mosaik sieht nett aus, macht aber viel Arbeit. Eigentlich! Als Perl-Programmierer bin ich faul und versuche möglichst viel zu automatisieren. Außerdem können die Skripte auch für andere Zwecke - z.B. für Werbung auf Veranstaltungen - genutzt werden.

In diesem Artikel soll ein Plakat erstellt werden, auf dem der Schriftzug "PERL" mit den Gravataren der CPAN-Autoren gefüllt werden soll.


fexsrv: ein schlanker spezieller Webserver in Perl

(HTTP-)Webserver gibt es nun wahrlich genug, warum also noch einer? Erstmal gilt für uns Perlianer: TIMTOWTDI :-) Aber es gibt auch noch andere Gründe: Zur Entstehungszeit von F*EX gab es keinen einzigen Webserver ohne 32-bit-Bug: es war nicht möglich HTTP POST mit mehr als 4 GB zu verarbeiten. Zudem waren alle getesteten Webserver erschreckend ineffizient und damit langsam bei der Verarbeitung von großen Dateien. Auf derselben Hardware schafft fexsrv zehn mal mehr Durchsatz als ein Apache.


Was ist neu in Perl 5.18

Im Mai wurde die Version 18 von Perl 5 veröffentlicht. Dieser Artikel stellt die wichtigsten Änderungen vor - z.B. bei den Regulären Ausdrücken, den lexikalischen Subroutinen oder auch Geschwindigkeitsverbesserungen.


String::Dump - Was genau ist in einem String enthalten?

Manchmal steckt in einem String nicht das drin, was man erwartet, z.B. nicht druckbare oder UTF-Zeichen.

String::Dump - Dump strings of characters (or bytes) for printing and debugging von Nick Patch vereinfacht das Debuggen solcher Probleme erheblich, indem es jedes Byte und jeden Codepoint eines Strings ausgibt.


Rezension - Gemeinschaft und Perl

Auch in dieser Folge gibt es wieder Spiele, Spaß und Abwechslung. Es gibt einen Blick in die bunten und anregenden Perlartikel des Linux Magazins vom "Perlmeister" Michael Schilli. Zuvor soll jedoch die Trilogie für werdende Organisationstalente abgeschlossen werden. Im Winter 2012 wurde eine kleines Büchlein über Projektmanagement vorgestellt, im Frühjahr 2013 ging es um die Planung und Aufbau einer erfüllenden Karriere und dieses Mal um die Leitung eines erfolgreichen, freien Softwareprojektes.


Mit Git, Jenkins und App::Cmd automatisiert OTRS-Pakete erstellen

In diesem Artikel wird eine Vorgehensweise für die Erstellung und Auslieferung von OTRS-Paketen vorgestellt. Kurz zu der Gesamtsituation:

Für mehrere Kunden werden OTRS-Erweiterungen programmiert. Diese Erweiterungen werden gemäß der "Spezifikation" für Erweiterungen erstellt. Teilweise haben mehrere Kunden die gleichen Erweiterungen. Wenn eine Erweiterung ausgeliefert werden soll, sollte man ein paar Tests laufen lassen. Wenn alles in Ordnung ist, kann man das Paket bauen. Abschließend muss das Paket zum Kunden gelangen.

Diese Schritte kann man alle manuell gehen. Der Schritt "Programmieren" dürfte klar sein. Da kann man nicht allzu viel automatisieren. Man sollte sich hier an die Strukturen von OTRS halten und dann sind die nächsten Schritte recht einfach.

In diesem Artikel wird gezeigt, wie ein Großteil der manuellen Schritte durch Automatismen ersetzt werden.


Rezension - Mal ein etwas anderes Buch

Nicht nur für Perl-Programmierer und Perl-Programmiererinnen dürfte das Buch interessant sein, aber wer ein Kind erwartet oder kleine Kinder hat, sollte sich "Eltern sein - kurz & geek" anschauen...