>binaervarianz >projekte >Perl-Tutorial
1. Was dieser Text soll / Was dieser Text nicht soll

Was dieser Text soll:

  • Leuten die Perl noch nicht kennen Möglichkeiten und Grenzen der Sprache aufzeigen
  • Perl mit anderen existierenden Programmiersprachen vergleichen
  • einen Einblick in die Geschichte von Perl geben
  • am Beispiel des "Hallo Welt!"-Programms (woran sonst?) helfen das erste Perl-Programm zu schreiben
  • weiterführende Quellen nennen, um die Sprache Perl zu lernen

Was dieser Text nicht soll:

  • die Programmiersprache Perl detailliert erklären
  • Hilfe zu konkreten Fragen bzgl. der Sprache geben (also keine Referenz - wo es die gibt steht in Kapitel 9)
2. Die Skriptsprache Perl

Perl ist eine Skriptsprache - und unterscheidet sich somit von "klaßischen" (manche meinen richtigen) Programmiersprachen wie C oder Java darin, daß Perl nicht kompiliert werden muß. Kompilieren ist die Umwandlung des Quelltextes (also das was der Programmierer tippt) in maschinenlesbaren Text (sogenannten Maschinencode) - die Sprache die der Computer versteht.

In Sprachen die kompiliert werden müßen erfolgt nach dem Quelltext schreiben das Kompilieren. Hierbei werden sogenannte Binaries erstellt. Diese kann man dann ausführen. Will man das Programm später wieder starten muß man es nicht wieder kompilieren, sondern startet einfach das fertige Programm.
Bei Perl schreibt man seinen Quelltext in eine Datei, und kann diese Datei anschließend direkt als Programm starten. Das Kompilieren erfolgt hierbei automatisch durch den sogenannten Interpreter. Dieser "interpretiert" den Quelltext und übersetzt ihn zur Laufzeit in maschinenlesbaren Code.

Einer der Vorteile einer Skriptsprache liegt somit in der kürzeren Zeit die während der Entwicklung gebraucht wird, da nicht vor jedem Testen das Programms explizit kompiliert werden muß. Außerdem ist besonders bei kleineren Programmen der Quelltext wesentlich kürzer als die übersetzte Version.
Ein Nachteil zeigt sich bei größeren Programmen, da bei jedem Programmaufruf zunächst (intern) kompiliert wird und dies auch seine Zeit braucht.

3. Warum Perl Spaß macht

Perl ist auf relativ hohem sprachlichen Niveau (für eine Programmiersprache versteht sich) geschrieben, und somit recht leicht zu handhaben. Viele Dinge (z.B. die Speicherverwaltung) werden intern von der Sprache gelöst, so daß der Programmierer diese nicht zu beachten braucht.
Zum Beispiel müßen in C, welches sich auf niedrigerem sprachlichen Niveau befindet, Variablen zunächst deklariert werden um ihnen Speicherplatz zuzuweisen. In Perl hingegen verwendet man einfach eine Variable - die Deklaration übernimmt Perl!

Dieses "Abnehmen von Arbeit" hat den Vorteil, daß die Entwicklung sowohl schneller voran geht (weil eben vieles gar nicht so sehr beachtet werden muß) und außerdem einfacher wird (da zahlreiche Fehlerquellen von vorn herein ausgeschloßen sind).
Nachteilig ist in manchen Fällen, daß die interne Lösung durch Perl nicht immer absolut effektiv ist, so daß Perl-Programme beispielsweise C-Programmen gegenüber Performanceschwächen aufweisen. Sie verbrauchen also z.B. mehr Arbeitßpeicher oder die Programmausführung dauert länger. Dies macht sich allerdings nur bei großen Programmen wirklich bemerkbar.

4. Geschichtliches

Der Erfinder von Perl ist Larry Wall. Als er eines Tages bei einem Problem an die Grenzen von awk (eine ältere, ebenfalls interpretierte Programmiersprache für Unix) stieß, beschloß er selbst ein Werkzeug zu entwickeln, welches neben diesem Problem noch mindestens ein Weiteres lösen könnte. Dieses Werkzeug nannte er Perl und stellte es der Usenet-Gemeinde zur Verfügung. Da es auf Resonanz stieß wurde es immer größer und mächtiger. Heute ist Larry Wall längst nicht mehr der einzige Verwalter von Perl, trägt aber immer noch den Titel des Chef-Architekten.

Der Name Perl hat mehrere Bedeutungen. Die wohl populärste ist "Practical Extraction and Report Language" (praktische Sprache für Datenextraktion und -ausgabe), manche sagen aber auch "Pathologically Eclectic Rubbish Lister" (krankhaft zusammengeschustertes Auflistungsprogramm für wirres Zeug). Mir persönlich gefällt die Variante am besten, daß Perl die "Perlen" anderer Programmiersprachen (z.B. die Basic-Perle der Ausgabeformate oder die C-Perle der Operatorenvielfalt) zu einer großen Perle verschmolzen hat - also die Vorteile andere Programmiersprachen in sich vereint.

5. Warum sollten Programmierer Perl lernen?

Die Grundlagen von Perl laßen sich im Vergleich zu anderen Programmiersprachen relativ schnell und einfach erlernen - dies stellt also für einen erfahrenen Programmierer kein großes Hindernis dar. Kann man es dann einmal hat man stets ein kleines, recht einfaches, aber sehr mächtiges und vielseitiges Werkzeug zur Hand (sozusagen ein Schweizer Taschenmeßer). Besonders in Situationen wo in recht kurzer Zeit ein kleines Skript für einen ganz bestimmten Zweck gebraucht wird sind Perl-Kenntniße Gold wert. Außerdem ist Perl ein Quasi-Standard für CGIs - und ein selbst geschriebener Counter mit den gewünschten Funktionen für die Homepage oder gar ein Gästebuch sind sicher nicht zu verachten.

Einen weiteren Grund stellt die Tatsache dar, daß Perl auch erfahrenen Programmierern neue Möglichkeiten zur Problemlösung bietet, denn viele Aufgaben laßen sich in Perl mit extrem wenig, dafür aber sehr effektiven Quellcode lösen.

6. Warum sollten programmier-unerfahrene Leute gerade Perl lernen?

Auch für programmier-unerfahrene Leute gibt es viele Gründe gerade Perl als erste Sprache auszuwählen. Perl ermöglicht es dank seiner Schlichtheit programmiertechnische Grundlagen (Variablen, Schleifen, Auswahlanweisungen usw.) ohne zunächst unnötiges Drumherum zu erlernen.
Außerdem kommt man in Perl recht schnell zu ersten Ergebnißen, da die Sprache einerseits ein recht hohes programmiersprachliches Niveau hat, und außerdem kein Kompilieren nötig ist. Als Beispiel sei hier auf die beiden kommenden Kapitel verwiesen.

Auch die Perl-Community (also alle Leute die Perl benutzen und sich gern darüber austauschen) stellt gerade am Anfang eine große Hilfe dar. In zahlreichen englisch- und deutschsprachigen Foren, Mailingslisten und Newsgroups sollte allen die nett fragen und etwas Geduld aufbringen die nötigen Antworten, Tipps und Hinweise gegeben werden (siehe auch Kapitel 9).

7. Erste Schritte unter Linux

Wer Linux laufen hat hat schon mal einen Vorsprung, denn Perl gehört hier zu den Basispaketen. Um sicher zu gehen, daß Perl auch wirklich drauf ist kann man einfach

  perl -v

in die Konsole eingeben. So erfährt man auch gleich welche Version man hat. Sollte Perl wider Erwarten nicht installiert sein, muß man das entsprechende Paket seiner Distribution einspielen - es heißt soweit ich weiß überall "perl" (naja, wie denn auch sonst ;).

Nachdem wir uns nun vergewißert haben, daß Perl da ist brauchen wir nur noch den Editor Ihrer Wahl. Hier tippen Sie nun folgende 2 Zeilen ein:

  #!/usr/bin/perl

  print "Hallo Welt!\n";

Die erste Zeile gibt an in welchem Verzeichnis sich der Interpreter (also Perl) befindet. Dies ist in der Regel obiges. Man kann die Angabe auch weglaßen, so daß Perl erst gesucht wird - das kostet aber sinnlos Zeit. Die zweite Zeile ruft die print-Funktion auf und übergibt in Anführungszeichen den auszugebenden Text. Das "\n" am Ende sorgt dafür, daß der Cursor anschließend in die nächste Zeile springt - wie wenn man Enter drückt.

Speichern Sie die Datei nun z.B. unter "hallo.pl" ab und machen Sie sie mit

  chmod +x hallo.pl

ausführbar. Anschließend brauchen Sie das Programm nur noch zu starten:

  hallo.pl

Herzlichen Glückwunsch! Sie haben soeben ihr erstes Perl-Programm geschrieben und erfolgreich ausgeführt. Mehr möchte ich an dieser Stelle nicht erklären. Um Perl zu lernen schauen Sie sich am besten in Kapitel 9 um

8. Erste Schritte unter Windows

Im Gegensatz zu Linux beinhaltet Windows Perl nicht standardmäßig. Zum Glück hatte ActiveState die Idee Perl für Windows zu portieren. Auf www.activestate.com kann man sich Perl unter dem Namen ActivePerl kostenlos herunterladen.

Nachdem Sie Perl nun installiert haben können wir mit der eigentlichen Programmierung beginnen. Öffnen Sie den Editor Ihrer Wahl (der unter Programme - Zubehör zu findende reicht zunächst vollkommen aus) und tippen folgende Zeile ein:

  print "Hallo Welt!\n";

Sie rufen somit die print-Funktion auf und übergeben in Anführungszeichen den auszugegebenden Text. Das "\n" am Ende sorgt dafür, daß der Cursor anschließend in die nächste Zeile springt - wie wenn man Enter drückt.

Speichern Sie die Datei nun z.B. unter "hallo.pl" ab, klicken auf Start - Ausführen und geben "command" ein. Im sich öffnenden Eingabefenster wechseln Sie mit "cd.." bzw. "cd verzeichnisname" in das Verzeichnis wo "hallo.pl" gespeichert ist. Hier starten Sie das Programm durch:

  perl hallo.pl

Herzlichen Glückwunsch! Sie haben soeben ihr erstes Perl-Programm geschrieben und erfolgreich ausgeführt. Mehr möchte ich an dieser Stelle nicht erklären. Um Perl zu lernen schauen Sie sich am besten in Kapitel 9 um

9. Weiterführende Quellen

Zum Erlernen der Sprache empfehle ich den Kauf eines Buches. Auf verschiedenen Internet-Seiten kann man dann nachschlagen, neue Module besorgen oder Dokumentaionen zu speziellen Themen anschauen. Das Usenet empfiehlt sich zum Fragen stellen an Gleichgesinnte bei Verständnißchwierigkeiten und ähnlichem.

Bücher:

  • Einführung in Perl (Randal L. Schwartz, Tom Christiansen): fängt wirklich bei Null an, ist also auch was für Leute mit weniger Programmiererfahrung, beinhaltet aber trotzdem alle wichtigen Grundlagen
  • Programmieren in Perl (Larry Wall, Tom Christiansen, Jon Orwant, Randal Schwartz): alles Grundlegende in Perl umfangreich erklärt und mit Larry Walls Humor gewürzt, bietet etwas tieferes Verständnis als "Einführung in Perl"
  • Perl Kochbuch (Tom Christiansen, Nathan Torkington): Beispiele und Lösungen für typische Probleme, eher für erfahrene Programmierer geeignet

Internet-Seiten:

  • www.perl.com: größte Perl Seite, hier gibts die neuste Perl-Version, zahlreiche Dokumentationen, Neuigkeiten und einiges mehr
  • www.cpan.org: Perl Archiv, Suche nach Perl-Modulen, Mailinglisten, Dokumentationen; der Perl-Source-Code und anderes
  • www.perldoc.com: Man Pages und viele andere Dokumentationen
  • www.perl.de: deutschsprachiges Forum, unterteilt in verschiedene Bereiche, nette Fragen werden hier beantwortet
  • www.activestate.com: unter dem Namen ActivePerl gibt es hier die Windows-Portierung von Perl zum Download

Usenet:

>binaervarianz >projekte >Perl-Tutorial