Wednesday, April 28, 2010

Ausgabe 14 vom Perl-Magazin $foo

Seit heute gibt es die 14. Ausgabe von "$foo", dem Magazin für Perl-Programmierer. Die Abonnenten werden im Laufe der nächsten Tage ihre Hefte bekommen.

Inhalt dieser Ausgabe:

* Performance großer Webseiten - Teil 2

Dr. Johannes Mainusch von XING erläutert in diesem Teil einiges dazu, wie wichtig Performance bei Webseiten ist. Auch einen kurzen Blick unter die Motorhaube bei XING gibt der Autor. Gleichzeit möchte der Artikel die "Awareness" für Performance erhöhen.

* Perl hilft der Feuerwehr - Teil 2

Im zweiten Teil über die Brandmeldeanlagen-Simulation geht es darum, wie der Pluginmechanismus umgesetzt wurde und wie ein Arduino-Brandmelder angeschlossen wurde.

* XMLSocket-Klasse in Verbindung mit Perl-Sockets

Markus Schaffer zeigt an einem Beispiel, wie er mit einem Flash-Film, das ein Socket zu ein Perl-Programm aufbaut, Daten in "Echtzeit" auf seine Webseite bekommt.

* Perl 6 - Der Himmel für Programmierer

Herbert Breunung geht im dritten Update auf die Neuerungen in der Perl 6-Landschaft ein.

* Was ist neu in Perl 5.12?

Eine neue Perl-Version wurde veröffentlicht. Dabei gibt es auch wieder einige Änderungen. Dieser Artikel zeigt die größten Änderungen in der neuen Version.

* Perl Scopes Tutorial - Teil 4

Im vierten Teil des Perl Scopes Tutorials geht Ferry Bolhár-Nordenkampf auf lexikalische Pragmas ein. Weiterhin geht er auf die Schlüsselwörter "my", "our" und "state" ein.

* Eine Shell für Perl - Devel::REPL

Oft möchte man eine Kleinigkeit in Perl ausprobieren, einfach mal testen, ob der Befehl überhaupt das gewünschte Ergebnis bringt oder nicht. Und dann jedesmal einen Einzeiler mit "perl -wle '...'" daraus machen ist zu viel Tipparbeit. Hier wäre eine Perl-Shell ganz nützlich. Dieser Artikel zeigt Devel::REPL - ein Modul, das genau dafür gemacht ist.

* Komplexe Datenstrukturen mit Data::Dumper sichtbar machen

Der Inhalt von Datenstrukturen ist manchmal ein Rätsel, vor allem dann, wenn die Daten aus fremden Modulen eingelesen werden oder über weitverzweigte if-Konstrukte befüllt werden. Spätestens dann, wenn ein Hash Referenzen enthält bekommt man mit print %hash nur noch die bekannte Hexausgabe HASH(0x814cc20) und man ist nicht viel schlauer als vorher. Colin Hotzky zeigt, wie man mit Data::Dumper die Datenstrukturen "schön" anzeigen lassen kann.

* WxPerl Tutorial - Teil 3

Im dritten Teil des WxPerl Tutorials zeigt Herbert Breunung wie die Layout- oder Geometriemanager - auch Sizer genannt - in WxPerl-Anwendungen eingesetzt werden können um eine saubere Anordnung der Bedienelemente zu gewährleisten.

* App::cpanminus

Thomas Fahle stellt in seinem "HowTo"-Artikel den neuesten CPAN-Client vor: App::cpanminus. Er zeigt, wie man mehr aus dem Client holen kann.

* Merkwürdigkeiten in Perl

Ein kurzer Artikel darüber, was man bei der Verwendung von Regulären Ausdrücken beachten muss und man Variablen wie $1, $2 usw. verwendet.

* ... und vieles mehr

* Neues von der TPF - was ist in den letzten 3 Monaten bei der TPF passiert?

* CPAN-News - Wieder werden 6 neue Module vom CPAN vorgestellt

* Termine - Was ist los in den nächsten 3 Monaten?

LISP und Perl - zwei gute Partner ;-)

Heute bin ich auf einen interessanten Artikel im Internet gestoßen: "Using LISP as a Code Generator for Perl Win32::GuiTest". Es geht dabei darum, aus der REPL heraus GUI-Applikationen testen zu können. Win32::GuiTest ist für die Tests sehr gut geeignet - ich selbst habe ja schon in $foo darüber berichtet und schon Vorträge darüber gehalten - und der Artikel zeigt schön, dass man gewisse Sachen gut mit einem Sprachenmix machen kann...

Thursday, April 22, 2010

Switch.pm aus dem Perl-Core entfernt

Nicholas Clark hat diese Woche Switch.pm aus dem Perl-Core entfernt. Switch.pm war lange Zeit die einzige Möglichkeit, so etwas wie ein Switch-Statement in Perl zu benutzen. Java, C++ und sogar Pascal haben das schon lange.

Warum wurde das jetzt entfernt?

Weil Switch.pm ein Sourcecode-Filter ist und dadurch nicht wirklich zuverlässig ist. Das switch war also kein wirkliches Sprachelement von Perl, sondern war "irgendwie" aufgesetzt.

Und seit Perl 5.10 gibt es auch etwas viel besseres: given/when!

Warum nicht der gleiche Name wie bei anderen Sprachen? Weil given/when viel mächtiger ist als das switch/case in den meisten anderen Sprachen. Das when benutzt nämlich den Smart-Match-Operator. Auf den Smart-Match-Operator werde ich in nächster Zeit in einem weitern Blogpost eingehen. Hier aber ein kurzes Beispiel für given/when:

    use feature qw(switch say);

my $var = 1;

# welche Variable soll betrachtet werden
given( $var ) {
when( 1 ){ say '$var ist 1'; }
when( 2 ){ say '$var ist 2'; }
default { say '$var ist weder 1 noch 2' }
}

given/when muss mit "use feature qw(switch)" aktiviert werden. Im Gegensatz zu Switch.pm sind das jetzt Elemente der Sprache und kein Codefilter mehr.

Wednesday, April 21, 2010

Sie suchen Perl-Entwickler?

Wie letzte Woche schon gepostet, wird es einen Perl-Stand auf dem LinuxTag in Berlin geben. Gabor möchte dort auch Job-Angebote von Firmen veröffentlichen. Wer also möchte, dass sein Job-Angebot für Perl-Entwickler in einer Broschüre auf dem LinuxTag erscheint, sollte mit Gábor Szabo Kontakt aufnehmen.

Hier noch der Link zum Original-Blogpost von Gábor: http://szabgab.com/blog/2010/04/1271829580.html

Tuesday, April 13, 2010

Perl-Stand auf dem LinuxTag Berlin

Heute kam die Bestätigungsmail, dass es auch auf dem LinuxTag in Berlin (09.-12. Juni) einen Perl-Stand geben wird. Wie auf der CeBIT werden wir ein paar Projekte vorstellen und zeigen, dass Perl eine ganz tolle Programmiersprache ist. Gábor und ich brauchen auch in Berlin wieder Unterstützung für den Stand. Es wäre schön, wenn wir ein wenig Hilfe bekommen würden...

Gábor wird auch einen Vortrag halten.

Wer helfen will, sollte sich im Wiki eintragen. Der Stand läuft unter dem Titel "Perl und Perl-bezogene Projekte". Wer also ein (OpenSource) Perl-Projekt dort repräsentieren will, kann sich mit uns in Verbindung setzen...

Saturday, April 03, 2010

Frühjarsputz bei PAUSE

Heute habe ich mal Frühjahrsputz gemacht - nicht zu Hause, sondern bei PAUSE.

PAUSE ist der "Perl (programming) Authors Upload Service" und ist der Dienst, über den CPAN-Autoren ihre Distributionen auf CPAN verwalten können. Hier können Co-Maintainer eingetragen, Namensräume reserviert oder auch Distributionen hochgeladen werden.

Üblicherweise lädt man einfach die Distributionen hoch. Vorallem wenn man es - wie ich - automatisiert macht. Die ganze Zeit habe ich ein eigenes Framework für automatisierte Tests und Uploads verwendet, aber ich werde mir mal Dist::Zilla anschauen. Aber das ist ja jetzt nicht das Thema.

Wie gesagt, man lädt die Dateien hoch und kümmert sich kaum um seinen Account. Dabei sammeln sich Unmengen an Dateien an, die man eigentlich nicht mehr braucht - die alten Versionen der eigenen Distributionen.

brian d foy hat jetzt die CPAN-Autoren aufgerufen, die nicht mehr benötigten Dateien aus dem CPAN zu löschen, da diese unnötig Platz einnehmen und das Spiegeln auf die verschiedenen Server lange dauert.

Aber keine Angst, gelöschte Distributionen gehen nicht verloren, weil sie im BackPAN auf jeden Fall erhalten bleiben.

Ich habe bei fast allen meiner Distributionen nur die aktuellste Version auf dem CPAN gelassen...