Juli 2009 Archive

Foo-Magazin-Titel

Heute ist die neue, 11. Ausgabe des Perl-Magazins $foo erschienen.

 

Die Inhalte der 11. Ausgabe

Vererbung in Perl

Ein wichtiges Thema bei der Objektorientierung ist "Vererbung". Dabei gibt es einiges zu beachten, auch weil es in Perl die Mehrfachvererbung gibt. Dieser Artikel gibt einige Hinweise, was es bei der Vererbung zu beachten gilt und wie die mehr aus der Vererbung holen kann.

Perl Scopes Tutorial - Teil 1

Dieser Artikel von Ferry Bolhár-Nordenkampf beschäftigt sich mit Scopes. Das sind Bereiche innerhalb eines Programms, die sich durch Sichtbarkeit und Gültigkeitsdauer der in ihnen enthaltenen Objekte unterscheiden.

Zuverlässige Objekte durch Restricted Hashes

Frank Seitz zeigt in seinem Artikel, wie bei Objekten - die einen Hash als fundamentale Datenstruktur benutzen - die erlaubten Attribute verbindlich festgelegt werden kann. Dadurch fallen Fehler beim Programmablauf auf, die sonst häufig erst sehr spät entdeckt werden - wenn überhaupt.

Perl 6 Tutorial - Teil 8

Das ist der letzte Teil des Perl 6 Tutorials, das in der 3. Ausgabe von $foo gestartet wurde. Herbert Breunung zeigt in dieser Ausgabe Interna der Sprache und wie sie "befragt" und verändert werden. Er geht dabei auch auf die Frage ein, wozu die Meta-Programmierung benötigt wird.

Perl 6 - Der Himmel für Programmierer

In regelmäßigen Abständen zeigt Herbert Breunung die Veränderungen und Neuerungen in der Perl 6 Welt. Dabei geht er auf aktuelle Projekte - wie dem November-Wiki - und einen Vergleich der unterschiedlichen Interpreter ein. Weiterhin gibt Breunung einen Ausblick auf die Zukunft.

112% DBIx::Class

Das ist der dritte Teil von "110% DBIx::Class". Wie in den beiden vorherigen Teilen wird auch in dieser Ausgabe gezeigt, wie man mehr aus seinem DBIx::Class-Einsatz holen kann und wie bestimmte Fragestellungen gelöst werden können.

Erfahrungen mit Catalyst

Catalyst dürfte mittlerweile das meistverbreitetste Web-Framework in der Perl-Welt sein. Wolfgang Kinkeldei zeigt in seinem Artikel, welche Erfahrungen er beim Einsatz von Catalyst gemacht hat und zeigt dem Leser wie er mit verschiedenen Fragestellungen - wie z.B. Ajax mit Catalyst, cleverer Umgang mit Formularen,... - umgegangen ist.

REST-APIs in Perl-Anwendungen

Der Begriff "REST" taucht im Zusammenhang mit Web 2.0 immer wieder auf. "REST-APIs in Perl-Anwendungen" zeigt, was hinter dem Begriff steckt und wie man eine solche API in eigenen Perl-Anwendungen integrieren kann.

App::Asciio - ASCII -Art mit Perl

"Ein Bild sagt mehr als 1000 Worte" heißt es so schön. In manchen Dokumentationen findet man auch bildliche Darstellungen, die die Funktionsweise von Modulen erläutern. Solche Darstellungen zu zeichnen ist zeitaufwändig.

Dieser Artikel stellt das Tool AsciiO vor, ein Perl-Programm, mit dem sich ASCII-Art erstellen lässt.

Time::y2038

Thomas Fahle nimmt in seinem Artikel die Angst vor dem "schwarzen Dienstag" im Jahr 2038. Dabei zeigt er, wie das Perl-Modul Time::y2038 eingesetzt wird.

und vieles mehr...

  • Win32 Tipps & Tricks
  • eval und $@
  • CPAN-News
  • Neues von TPF
  • Termine
  • Links

Weiter zur aktuellen Ausgabe.

via:

11. Ausgabe des Perl-Magazins "$foo"

/2009/07/Perl-Meisterkurs.jpg

Jochen hat mich gebeten, ein wenig Werbung für ihn zu machen:

Am 05. Oktober 2009 startet der nächste Perl-Meisterkurs von Jochen Lillich (Freistil-Consulting). Das 10-wöchige Online-Seminar wendet sich insbesondere an Einsteiger in die dynamische Programmiersprache Perl.

Den Perl-Meisterkurs hat Jochen übrigens auch als gedrucktes Buch bzw. kostenloses ebook (PDF) bei Lulu.com veröffentlicht.

/2009/07/HTML-Display-File_Vorschau.png Dank HTML::Display von Max Maischein lassen sich einzelne HTML-Seiten ganz einfach von Perl aus zum Browser schicken und in diesem anzeigen.

Extrem praktisch, wenn man z.B. einen dynamischen generierten Report als HTML-Datei speichern und diesen gleich im lokalen Browser anzeigen lassen möchte. Fast schon eine Fernsteuerung für Browser.

HTML::Display funktioniert auf den gängigen Betriebssystemem mit den meisten Browsern, wie z.B. Internet Explorer oder Firefox. Bisher habe ich es allerdings nur mit Windows XP SP3 und Ubuntu 8.04 ausprobiert.

 

 

Beispiel: lokale HTML-Datei zum Browser des Users senden

#!/usr/bin/perl
use strict;
use warnings;

use HTML::Display;

my $browser = HTML::Display->new() or die $!;
warn "# Displaying HTML using " . ref $browser;

my $location = "index.html";

display(  file => $location ) ;

Die dazugehörige HTML-Datei index.html im selben Verzeichnis.

<html>
<head>
<title>
HTML-Display rocks
</title>
</head>
<body>
<h1>HTML-Display rocks</h1>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
sed diam nonumy eirmod tempor invidunt ut labore et 
dolore magna aliquyam erat, sed diam voluptua. At vero 
eos et accusam et justo duo dolores et ea rebum. Stet 
clita kasd gubergren, no sea takimata sanctus est Lorem 
ipsum dolor sit amet.
</p>
<p>
Duis autem vel eum iriure dolor in hendrerit in vulputate velit 
esse molestie consequat, vel illum dolore eu feugiat nulla 
facilisis at vero eros et accumsan et iusto odio dignissim qui 
blandit praesent luptatum zzril delenit augue duis dolore te 
feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer 
adipiscing elit, sed diam nonummy nibh euismod tincidunt ut 
laoreet dolore magna aliquam erat volutpat.
</p>
</body>
</html>

 

Beispiel: Webseite zum Browser des Users senden

Dazu wird zunächst die Website mit LWP::Simple geholt und dann an HTML::Display weitergereicht.

#!/usr/bin/perl
use strict;
use warnings;

use HTML::Display;
use LWP::Simple;

my $browser = HTML::Display->new();
warn "# Displaying HTML using " . ref $browser;

my $location = "http://perl-howto.de/";

my $html = get $location;

display( html => $html, location => $location ) ;

 

Siehe auch

Erstmals wird es auf der FrOSCon einen eigenen Perl-Raum geben. Am 22. August werden mehrere Vorträge über Perl zu hören sein. Der Schwerpunkt liegt hierbei auf der Anwendung von "modernen" Perl-Modulen wie "DBIx::Class" und "Moose". Ziel ist, der Öffentlichkeit zu zeigen, dass Perl keinesfalls tot ist und sich mit Neuerungen den Wünschen der Programmierer anpasst.

Die FrOSCon findet am 22. und 23. August in der Fachhochschule Bonn-Rhein-Sieg in St. Augustin statt. Der Eintritt kostet 5 Euro für die beiden Tage.

via: Perl-News: Perl@FrOSCon

Praktisch alle Programmiersprachen sortieren Daten nach dem ASCII-Standard; so auch die Perl-Funktion sort.

Etwas wie rfc1.txt, rfc2086.txt, rfc822.txt sollte für Menschen eigentlich als rfc1.txt, rfc822.txt, rfc2086.txt sortiert werden.

Sort::Key::Natural - fast natural sorting von Salvador Fandiño García sortiert Daten, die sowohl Ziffern als auch Buchstaben enthalten, in der von Menschen erwarteten Reihenfolge (natural sorting).

Beispiel:

#!/usr/bin/perl
use warnings;
use strict;

use Sort::Key::Natural qw(natsort);

my @kapitel  = (
        "Kapitel 1",
        "Kapitel 11",
        "Kapitel 2",
        "Kapitel 5",
        "Kapitel 55",
        "Kapitel 16",
); 

my @nat_sorted = natsort @kapitel;

print join("\n", @nat_sorted), "\n";

Das Programm erzeugt folgende Ausgabe:

Kapitel 1
Kapitel 2
Kapitel 5
Kapitel 11
Kapitel 16
Kapitel 55

Siehe auch

Sort::Versions von Ed Avis vereinfacht das Sortieren von Versions- oder Revisionsnummern erheblich.

Beispiel:

#!/usr/bin/perl
use strict;
use warnings;

use Sort::Versions;
# versions und versioncmp werden automatisch exportiert

my @versionen = qw(
        1.1
        1.1.1
        1.2.1
        1.2
        1.4
        1.6.1
        1.6
        0.9
        1.1.a
        1.1.b
        1.3
        1.5.1
        1.5
        2.3.5-0022
        2.3.5-0041
        2.1.4.0046
);
my @sorted = sort versioncmp @versionen;

print join("\n", @sorted), "\n"; 

Das Programm erzeugt folgende Ausgabe:

0.9
1.1
1.1.1
1.1.a
1.1.b
1.2
1.2.1
1.3
1.4
1.5
1.5.1
1.6
1.6.1
2.1.4.0046
2.3.5-0022
2.3.5-0041

Siehe auch:

Parse::Syslog von David Schweiker vereinfacht das parsen der Log-Einträge in Syslog-Dateien erheblich.

Beispiel:

#!/usr/bin/perl
use warnings;
use strict;

use Parse::Syslog;

my $syslog_parser = Parse::Syslog->new( '/var/log/syslog');

while ( my $entry = $syslog_parser->next() ) {
    print $entry->{host};
    print '|';
    print $entry->{program};
    print '|';
    print $entry->{timestamp};
    print '|';
    print scalar localtime( $entry->{timestamp} );
    print '|';
    print $entry->{text};
    print "\n";
}

 

Beispiel: Kombination mit File::Tail

Parse::Syslog kann auch in Kombination mit File::Tail eingesetzt werden.

#!/usr/bin/perl
use warnings;
use strict;

use File::Tail;
use Parse::Syslog;

my $file = File::Tail->new( name => '/var/log/syslog');

my $syslog_parser = Parse::Syslog->new( $file );

while ( my $entry = $syslog_parser->next() ) {
    print $entry->{host};
    print '|';
    print $entry->{program};
    print '|';
    print $entry->{timestamp};
    print '|';
    print scalar localtime( $entry->{timestamp} );
    print '|';
    print $entry->{text};
    print "\n";
}

 

Siehe auch

Über dieses Archiv

Diese Seite enthält alle Einträge von Perl HowTo von neu nach alt.

Juni 2009 ist das vorherige Archiv.

August 2009 ist das nächste Archiv.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.