Open Source im professionellen Einsatz
Linux-Magazin 02/2014
© Duncan Noakes, 123RF.com

© Duncan Noakes, 123RF.com

CPAN-Neueingänge

Gesund im Alter

Schon viele mögen den Skript-Altvater Perl für tot erklärt haben. Doch sie irren, wie ein wirklich interessierter Blick auf die Neueingänge des Softwarerepository CPAN zeigt.

673

"Als Zarathustra aber allein war, sprach er also zu seinem Herzen: Sollte es denn möglich sein! Dieser alte Heilige hat in seinem Walde noch nichts davon gehört, dass Perl tot ist!" – frei nach Friedrich Nietzsche, er möge verzeihen.

Keine Frage, Perl als Programmiersprache hat an Bedeutung verloren. Kaum ein Jungspund bringt mehr die Geduld auf, sich mit den zugegebenermaßen wunderlichen Eigenheiten der früher führenden Skriptsprache herumzuschlagen. Seit Jahren wandert die Mehrheit in mehrere Richtungen davon. Das scheint die Produktionswut eingefleischter Perl-Hacker aber nicht zu beeinträchtigen. Es vergeht kaum ein Tag, an dem nicht 50 neue Modulversionen auf dem CPAN unter [2] auftauchen ( Abbildung 1 ).

Dieser Perl-Snapshot greift einige der besonders nützlichen sowie einige der unterhaltsamsten heraus, welche die Perl-Community in den letzten zwei Wochen veröffentlicht hat.

Abbildung 1: Jeden Tag landen auf der Recent-Seite des CPAN etwa 50 neue Modulversionen – ein schlagender Beweis für eine aktive Community.

Online PLUS

In einem Screencast demonstriert Michael Schilli das Beispiel: http://www.linux-magazin.de/2014/02/plus

The King's Speech

Geschriebenen Text in gesprochene Worte umzuwandeln, das erfordert einen so genannten Sprachsynthesizer – algorithmisch ist das ganz klar die Oberklasse der Informatik, die viel Gehirnschmalz und Rechenpower kostet. Statt sich selbst abzumühen, klinkt sich das CPAN-Modul Speech::Google::TTS [3] in die milliardenschwere Infrastruktur des Google-Konzerns ein, indem es die Website http://translate.google.com zweckentfremdet. Dort bietet Google Wort-für-Wort-Übersetzungen eingetippter Textphrasen an.

Unten an der Textbox klebt ein Lautsprechersymbol, nach jedem Klick darauf diktiert eine Computerstimme den dort eingefügten Text ( Abbildung 2 ). Das in Listing 1 verwendete Modul fängt den Sound ab und speichert ihn als Wav-Datei im »/tmp« -Verzeichnis. Die Methode »as_filename()« zerrt den zugehörigen Dateinamen ins Licht, und der Aufruf des Mplayer-Binary in Zeile 9 spielt den gesprochenen Text ab.

Die Vorlese-Sprache stellt Zeile 7 auf »de« ein, also Deutsch, damit aus dem Lautsprecher kein Denglisch mit amerikanischem Akzent quillt. Wer schon immer einen zähen Buildjob mit einem zackigen "Ende der Kaffeepause, zurück zum Arbeitsplatz!" akustisch beenden wollte – mit einem Skript bietet sich nun die Gelegenheit dazu. Das Modul erfordert außerdem das Paket Mpg123, das Ubuntu sich mit »apt-get install mpg123« problemlos zu Eigen macht.

Abbildung 2: Das CPAN-Modul Speech::Google::TTS nutzt den hochentwickelten Sprachsynthesizer auf der Seite Translate.google.com.

Listing 1

text2speech

1 #!/usr/local/bin/perl -w
2 use strict;
3 use Speech::Google::TTS;
4
5 my $tts = Speech::Google::TTS->new();
6
7 $tts->{'lang'} = 'de';
8 $tts->say_text( "Ja was ist denn da los?!");
9 system "mplayer", $tts->as_filename();

Schwer für des Menschen Hirn: Makefiles analysieren

Wer ist nicht schon einmal vor einem komplizierten Makefile verzweifelt? Die Make-Syntax ist nicht gerade leserlich, und spätestens wenn ein Target von drei weiteren abhängt und jedes wiederum …, dann wird es sehr mühsam zu ergründen, wo der Fehler steckt. Das CPAN-Modul GraphViz::Makefile [4] macht sich auf, um die Abhängigkeiten zwischen den Make-Targets mit dem Paket Graphviz grafisch aufzubereiten.

Der Fairness halber sei gesagt, dass GraphViz::Makefile zurzeit nur Spielzeug-Makefiles sauber darstellt: Sobald die Syntax eine gewisse Komplexität überschreitet, gleichen die erzeugten Grafen einem von einem Tornado aufgewirbelten Heuhaufen. Aber das im Make-Tutorial [5] zu Schulungszwecken verwendete Makefile verarbeitet GraphViz::Makefile sehr ordentlich, wie der von Listing 3 erzeugte Graph in Abbildung 3 zeigt.

Abbildung 3: Das CPAN-Modul GraphViz::Makefile hat das Makefile aus Listing 2 grafisch aufbereitet.

Listing 2

Makefile

01 all: hello
02
03 hello: main.o factorial.o hello.o
04          g++ main.o factorial.o hello.o -o hello
05
06 main.o: main.cpp
07          g++ -c main.cpp
08
09 factorial.o: factorial.cpp
10          g++ -c factorial.cpp
11
12 hello.o: hello.cpp
13          g++ -c hello.cpp
14
15 clean:
16          rm -rf *o hello

Listing 3

make2viz

01 #!/usr/local/bin/perl -w
02 use strict;
03
04 use GraphViz::Makefile;
05
06 my $gm = GraphViz::Makefile->new(
07   undef, "Makefile" );
08
09 $gm->generate( "all" );
10
11 open my $ofh, ">", "makefile.png" or
12     die $!;
13 print $ofh $gm->GraphViz->as_png;
14 close $ofh;

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Perl-Snapshot

    Wer in seiner Lieblingssprache eine Webapplikation zusammenklopfen und kostenlos veröffentlichen möchte, findet bei Heroku viel Komfort. Sogar ein eigener Webserver darf als Sprungbrett dienen.

  • Perl-Snapshot

    Wer viel in der Shell arbeitet und navigiert, nach Textstücken sucht oder CPAN-Module installiert, wird die hier vorgestellten Helferskripte bestimmt schnell schätzen lernen.

  • CPAN als Landkarte und Film

    Die "Map of CPAN" bildet das Comprehensive Perl Archive Network als Landkarte ab. Nun gesellt sich noch ein kurzer Animationsfilm dazu.

  • Umzugshelfer

    Der Webdienst Github erleichtert es Programmierern, einen Beitrag zu Open-Source-Projekten zu leisten, denn er vereinfacht und beschleunigt die Kommunikation zwischen Projekt-Maintainern und willigen Mitwirkenden radikal. Perl-Modulen ebnet ein Skript den Weg von CVS zu Git.

  • CPAN wird 20

    Im Comprehensive Perl Archive Network (CPAN) stecken aktuell rund 154 000 Perl-Module. Nun feiert das Projekt den 20. Jahrestag des ersten CPAN-Uploads.

comments powered by Disqus