Dezember 2008 Archive

Perl wird bereits mit vielen, häufig genutzten, Standardmodulen ausgeliefert. Noch viel mehr nützliche Module findet man auf CPAN.

Manchmal möchte man etwas genauer wissen, welche Module in welcher Version auf dem System installiert sind.

Eine einfache Methode ist der Aufruf von perldoc perllocal auf der Kommandozeile, dessen Ausgabe sich auch irgendwie parsen lässt.

Aber, mehr Licht ins Dunkel bringt das CPAN-Modul CPANPLUS::Backend von Jos Boumans.

Statt vieler Worte ein einfaches Beispiel:

Das nachfolgende kleine Programm ermittelt die Namen, Versionen und Beschreibungen der installierten Perl-Module auf einem Linux-System.

#!/usr/bin/perl
#
# perl-module.pl
#
use warnings;
use strict;

use CPANPLUS::Backend;

my $sep = '|';


my $cb = CPANPLUS::Backend->new;
my @modules = $cb->installed();

foreach my $module (@modules) {
        # $module is a CPANPLUS::Module object
                # get the module's information
        if ($module->module()) {
                print $module->module();
        } else {
                print $module->name();
        }
        print $sep; #Record Separator 

                # get the module's description
        if ($module->description() ) {
                print $module->description();
        } else {
                print "Missing description";
        }

        print $sep; #Record Separator 

                # get the module's version
        print $module->version(); # automatically returns 0.0 if undef

        print "\n";

} ## foreach

__END__

Das erzeugt in etwa folgende Ausgabe (gekürzt):

XML::Simple|Easy API to maintain XML (esp config files)|2.16
XML::Twig|A module for easy processing of XML|3.29
XML::Twig::XPath|Missing description|0.02

Also eine Tabelle mit drei Spalten, jeweils getrennt durch einen senkrechten Strich (|).

Weiterverarbeitung der Daten

Wenn man den Texttrenner (Separator) vernünftig wählt, lässt sich die Ausgabe auch in OpenOffice Calc oder in Microsoft Excel weiterverarbeiten. Einfach als Textdatei importieren, den gewünschten Texttrenner wählen, und schon ist der Bericht weitgehend geschäftsführergeeignet.

Siehe auch

Um korrekte (deutsche) Umlaute unter Windows im Kommandozeileninterpreter (DOS-Modus, Eingabeaufforderung oder Windows-DOSBox) darzustellen, kann man die Ausgabe mit binmode filtern:

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

binmode(STDOUT , ":encoding(cp437)" );

my @umlaute = qw/Ä Ü Ö ß ä ü ö/;

foreach my $umlaut ( @umlaute ) {
	print "$umlaut\n";
}

Das Programm erzeugt folgende Ausgabe:

C:\Dokumente und Einstellungen\tf\Eigene Dateien>perl binmode.pl
Ä
Ö
Ü
ß
ä
ö
ü

Siehe auch:

Padre (Perl Application Development and Refactoring Environment), eine neue IDE für Perl, die besonderen Wert auf Benutzerfreundlichkeit legt, ist vor ein paar Tagen in der Version 0.20 erschienen.

Vor allem für Einsteiger

Gabor Szabo, Perl Trainer und Initiator des Padre Projektes, kennt die Schwierigkeiten, mit denen Einsteiger in die dynamische Programmiersprache Perl konfrontiert werden, sehr gut.

Gerade Einsteiger mit Windows-Hintergrund verstehen nicht, das es keine wirklich gute IDE für Perl gibt. (Einsteiger mit Linux-Hintergrund wundern sich hier eher weniger, die sind noch ganz andere Ecken und Kanten gewohnt.)

Eines der Ziele des Padre-Projekts ist daher die Unterstützung für Einsteiger, insbesondere Programmieranfänger mit Windows-Hintergrund.

Häufig gewünschte Features von Einsteigern (m/w)

  • Gutes Syntax Highlighting
  • Automatische Prüfung der Syntax
  • Hervorhebung der Klammern und Anzeige der zusammengehörenden Klammern
  • Code-Vorschläge und automatische Vervollständigung bei Schlüsselwörtern
  • Anzeige der nötigen Parameter für Perl-Schlüsselwörter
  • Kontextsensitive Hilfe für Variablen, Schleifenkonstrukte und Module
  • Integrierte Anzeige der Dokumentation (Pod-Viewer)
  • Integrierter Debugger (Breaks, Watches, usw.)
  • Direkter Sprung zu Codeabschnitten oder Zeilen, die ein die() oder warn() auslösen
  • Mouse over Tooltips mit Variableninhalten
  • Integriertes Ausgabefenster
  • Highlighting für Regexes

Bereits umgesetzte Features

Einige der geplanten Features sind in der Version 0.20 bereits umgesetzt.

Syntaxhighlighting

Ein absolutes Muss.

/2008/12/padre.0.20-syntax-highlight_klein.png

Perldoc

Sobald der Mauszeiger oder Cursor am Ende eines Schlüsselwortes steht, wird der passende Abschnitt aus perldoc angezeigt.

padre.0.20-perldoc_klein.png

Integriertes Ausgabefenster

Ein tolles Feature für Einsteiger, die nicht besonders gerne auf der Kommandozeile arbeiten.

padre.0.20-run-script01_klein.png

padre.0.20-run-script01_klein.png

Das Ausgabefenster zeigt übrigens auch die Fehler und Warnungen aus STDERR an.

Explorer für Unterprogramme

Neben der Übersicht der Unterprogramme in einem separatem Frame, kann man auch per Doppelklick direkt zur Subroutine springen.

padre.0.20-sub-browser_klein.png

Plugins

Padre lässt sich über in Perl geschriebene Plugins bequem erweitern.

padre.0.20-plugin-manager_klein.png

Ich schätze besonders das Vi-Plugin: Damit läßt sich Padre genauso bedienen wie Vi. Cool.

Fazit

Trotz der kleinen Versionsnummer schon ein guter Editor. Ich werde Padre sicherlich in 2009 für Einsteigerschulungen einsetzen.

Siehe auch

Ein schöner Vortrag über die Features der Perl Erweiterung EPIC für die Allzweck-IDE Eclipse mit dem Titel "Epic Perl Coding" von Josh McAdams auf der YAPC::NA 2007:

Enjoy!

Siehe auch:

Linksammlung: EPIC - Perl Plugin für Eclipse

Gabor Szabo stellt die neue Perl-IDE Padre auf der YAPC::EU::2008 in einem Lightning Talk vor:

Enjoy!

Über dieses Archiv

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

November 2008 ist das vorherige Archiv.

Januar 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.