PDF-Version - freiesMagazin
PDF-Version - freiesMagazin
PDF-Version - freiesMagazin
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Perl-Tutorium – Teil 4: Referenzen auf Arrays und Hashes von Herbert Breunung<br />
Viele wichtige Perlvokabeln wurden bereits<br />
in den Teilen 1 bis 3 beschrieben<br />
und angewendet. Es ist also Zeit, einen<br />
Gang runter zu schalten, um Details zu betrachten,<br />
die bisher überflogen wurden. Zum<br />
Beispiel werden Arrays und Hashes gründlicher<br />
verglichen und wesentliche Ausgabehilfen<br />
vorgestellt. Ziel dieses Textes ist es aber<br />
zu zeigen, wie sie sich wie Legosteine kombinieren<br />
lassen, um die Datentürme noch höher<br />
und breiter zu bauen. Das Demoprogramm<br />
wird dafür kurzfristig in den Hintergrund treten.<br />
Nachträge<br />
Eigentlich stünde der letzten Folge der Titel<br />
„String- und Listenmanipulation sowie Hashes“<br />
wesentlich besser, denn weder Schleifen noch<br />
Subroutinen wurden groß erörtert. Dafür aber<br />
beide Möglichkeiten der bedingten Ausführung<br />
(if und when). for-Schleifen wurden erläutert,<br />
aber es gibt noch zwei weitere Arten: while und<br />
until. Rein logisch verhalten sie sich wie if und<br />
unless. Bei einer einfachen if-Anweisung (ohne<br />
elsif oder else) wird der Block ausgeführt,<br />
wenn die Bedingung einen positiven Wert (nicht<br />
0, leer oder undef) zum Ergebnis hat. Ebenso<br />
verhält sich while. Nur prüft es danach wieder<br />
die Bedingung, sooft bis sie einmal negativ<br />
ausfällt. Erst danach wird der Block nicht mehr<br />
ausgeführt. Damit lassen sich also Programme<br />
schreiben, die niemals ein Ende finden. Manch-<br />
mal ist das allerdings erwünscht. Dann wird oft<br />
so etwas geschrieben:<br />
while (1) {<br />
say "Ich dreh hier schon seit <br />
Stunden ...";<br />
}<br />
until funktioniert genauso, verneint (wie mit<br />
not) nur das Ergebnis der Bedingung, so wie<br />
unless es auch tut. Es führt solange den Block<br />
aus, bis die Prüfung positiv ausfällt. Lustigerweise<br />
kennen fast alle Sprachen (bis auf Python)<br />
until, aber neben Perl nur wenige (wie Ruby)<br />
auch unless.<br />
Und die im Einleitungsteil gepriesene derzeitige<br />
Umgestaltung der Infrastruktur schritt auch seit<br />
<strong>freiesMagazin</strong> 07/2011 [1] gut voran. Die damals<br />
aufgezählten CPAN-Dienste, wie etwa Bewertungen<br />
oder die Testmatrix, die über mehrere<br />
Seiten verstreut sind, können jetzt über die<br />
MetaCPAN-Seite [2] auf der Hauptseite jedes<br />
Moduls in zwei Spalten überblickt werden. Welche<br />
Module das angezeigte benötigen, wird aufgelistet.<br />
Sogar die Entwicklung der Quellen ist<br />
dort graphisch dargestellt und es lässt sich einfach<br />
in den <strong>Version</strong>sunterschieden blättern. Die<br />
Suche wurde bequemer, da wie von Google gewohnt,<br />
während des Tippens Vorschläge unterbreitet<br />
werden. Die Modul-URL wurden ebenfalls<br />
kürzer und prägnanter. Auch das Angebot von<br />
PrePAN [3] wird gerade vom MetaCPAN aus ver-<br />
PROGRAMMIERUNG<br />
knüpft. Auf dieser kürzlich erst gegründeten Seite<br />
können Entwickler und Interessierte über vorhandene<br />
und geplante (daher der Name „Pre“) Module<br />
diskutieren. Wem die Gelegenheit fehlt, die ungezählten<br />
Perlblogs täglich im Blickfeld zu behalten,<br />
der informiere sich in etwa fünf bis zehn Minuten<br />
mit der wöchentlichen Rundmail von Perl<br />
Weekly [4], die Gabor Szabo nun versendet. Sie<br />
ist lesbarer und informativer als die Übersichten<br />
der letzten wichtigereren Blog-Beiträge, die Andy<br />
Lester auf Perlbuzz [5] zusammenträgt.<br />
Der letzte Neuzugang ist das Perl Tutorial Hub<br />
[6], ein Zentralregister für alle Lehrmaterialien zu<br />
Perl, welche dort sortiert und bewertet werden.<br />
Auch dieses Tutorium wurde dort bereits erfasst,<br />
aber noch nicht bewertet.<br />
Variablen<br />
Das Thema Variablen ist in Perl so simpel wie<br />
möglich gehalten. Jede skalare Variable kann ohne<br />
Voranmeldung alles aufnehmen, egal ob Zahlen,<br />
Texte, Entscheidungen, Suchmuster oder<br />
Programmteile. Es ist auch nicht wichtig, wie<br />
groß die Daten sind oder ab wann sie nicht mehr<br />
gebraucht werden. Der Interpreter regelt die technischen<br />
Details.<br />
Manchen gefällt nur nicht, dass Variablen mit<br />
$, @ oder % anfangen müssen. Aber anderen<br />
Menschen fällt es so leichter, Variablen wiederzuerkennen.<br />
Ebenso kann Perl (wie im letzten<br />
Teil gezeigt) damit die Variablen in jeder Lage<br />
© <strong>freiesMagazin</strong> CC-BY-SA 3.0 Ausgabe 12/2011 34