Perl-Programmierung: Projektdefinition


Zusammenfassung des Projekts

Bearbeiten

Zielgruppe

Bearbeiten

Neueinsteiger sollen hier einen einfachen Einstieg in die Programmiersprache Perl finden. Fachleute haben andere Quellen als Nachschlagewerk (z.B. Perldoc, CPAN, Perlwiki, etc.)


Lernziele

Bearbeiten

Dieser Kurs ist dafür geschrieben, die ganze Welt der Perl-Programmierung in Theorie und Praxis vorzustellen.

Ein Motto von Perl lautet: "There is more than one way to do it". Nach der Lektüre sollte der Leser für jede denkbare Teilaufgabe mindestens einen Weg kennen, sie durchzuführen.


Buchpatenschaft / Ansprechperson

Bearbeiten

Das Buch hat zur Zeit keinen Hauptautor und kann gerne übernommen werden.

- Co-Autoren:

Sind Co-Autoren gegenwärtig erwünscht?

Bearbeiten

Co-Autoren sind ausdrücklich erwünscht.


Richtlinien für Co-Autoren:

Bearbeiten

Da es in Perl durch seine Möglichkeiten der Syntaxgestaltung sehr leicht möglich ist, extrem unleserlichen Code zu produzieren, sollte eine gewisse Einheitlichkeit an den Tag gelegt werden, um es dem Leser einfacher zu machen, den Quelltext zu verstehen. Dies gilt für die Art der Klammerung, Variablendeklarationen, usw. Viele dieser Richtlinien stammen aus dem Buch "Perl Best Practices" von Damian Conway und gelten als Standards für guten Perl-Code. Natürlich steht es jedem frei, sich diese Regeln anzueignen, aber wenigstens im Laufe dieses Buches sollten sie verwendet werden.

Klammerung

Bearbeiten

Die Richtlinie zur Klammerung innerhalb des Buches ist der K&R-Stil. Er hat gegenüber anderen Klammerungsstilen den Vorteil, dass er eine Zeile spart, dabei die Lesbarkeit der Schleife oder Anweisung jedoch nicht beeinträchtigt.

Beispiel ( K&R-Stil ):

for (1 .. 10) {
    print $_, "\n";
}

Im Gegensatz zu diesem Beispiel, hier ein Beispiel mit dem BSD-Stil:

Beispiel ( BSD-Stil ):

for (1 .. 10)
{
    print $_, "\n";
}

Zwar ist der Code hier mindestens gleich gut zu lesen, aber er braucht eben eine Zeile mehr. Und Zeilen sind kostbar. :) Diese Richtlinie gilt auch bei der Deklaration von Listen und Hashes.

Beispiel-Deklaration ( K&R-Stil ):

my @list = (
    'blubb',
    'blibb',
    'blebb'
);

my %hash = (
    'id1'  =>  'name1',
    'id2'  =>  'name2',
    'id3'  =>  'name3',
    'id4'  =>  'name4'
);

Bei kurzen Listen ist dies natürlich nicht erforderlich, aber sobald eine Liste die kritische Masse erreicht hat, in der sie nicht mehr in eine Zeile passt ( > 80 Zeichen ) sollte sie in der oben angeführten Form geschrieben werden um es dem Leser verständlicher zu machen.

Einrückungen

Bearbeiten

Generell sollte für jede Stufe eine Einrückung von 4 Leerzeichen verwendet werden. Das ist der Kompromiss zwischen den 8 und den 2 Leerzeichen, die sonst oft Anwendungen finden. Damit hat man genug Übersicht um sich zurechtzufinden und muss trotzdem kein Augentennis spielen wenn man zwischen den Zeilen herumspringt.

Beispiel:

if (1 == 1) {
    print "1 ist 1", "\n";
}

Operatoren und Zuweisungen

Bearbeiten

Um eine Zuweisung übersichtlich zu halten, ist es zu begrüßen, wenn sie den Elementen der Zuweisung ein wenig Platz lassen. So ist folgende Zuweisung

my $var=(1+3/5)*(6-3);

erheblich schwerer zu lesen als

my $var = (1 + 3 / 5) * (6 - 3);

Zwar benötigt man so mehr Platz, aber um die Übersichtlichkeit zu gewähren, ist das ein verschmerzliches Übel.

use strict; use warnings;

Bearbeiten

Dieses Buch richtet sich an Anfänger. Gerade diesen sollte man zeigen, wie man gefährliches Perl vermeidet. Dazu zählt der Einsatz von Warnungen und 'strictures'.

Die beiden Pragmas use strict; und use warnings; sollten am Anfang eines jeden Beispiels stehen, das eigenständig lauffähig ist. Bei nicht eigenständigen Code-Fragmenten sind sie nicht unbedingt nötig, aber diese sollten durch Verwendung von "..." oder explizit durch Perl-Kommentare als unvollständig gekennzeichnet werden. Darüber hinaus sollten Code-Fragmente nur selten verwendet werden, der Schwerpunkt sollte auf vollständigen Programmen liegen.

perl -w ist antik und soll vermieden werden, s. perllexwarn, What's wrong with -w and $^W

Formatierungen

Bearbeiten
  • Bei Codestücken, die code-zeilen-nummerierung mitnehmen, da es dann leichter wird sich zurechzufinden, wenn man sich auf etwas bezieht ( nur wenns längere Beispiele sind, bei Einzeilern ist das sinnfrei ;) )
  • Falls im Text Funktionen/Schlüsselwörter angesprochen werden, diese so herauszuheben: <code>while</code> -> while um sie leichter erkennbar zu machen
  • Variablen, die im Beispiel vorkommen und im Text erläutert werden fett zu halten: '''$testvar''' -> $testvar
  • Im Text erwähnte CPAN-Module bitte als Links auf die CPAN Seite formatieren.

Projektumfang und Abgrenzung zu anderen Wikibooks

Bearbeiten

Themenbeschreibung

Bearbeiten

Aufbau und Bearbeitungsstatus des Buches

Bearbeiten

Für Neugierige hier zuerst ein kurzer Überblick über den Aufbau. Er ist auch für Praktiker und Fortgeschrittene nützlich, damit sie erfahren, welche Kapitel sie überspringen können.

Die ersten Kapitel behandeln Perl theoretisch. Mit wichtigen Grundinformationen beginnend wird es immer spezifischer und zum Ende hin auch ein wenig philosophisch, so dass jeder für sich entscheiden kann, wann er sich bereit für die Praxis fühlt und den Rest dieses Kapitels überspringen möchte.

Der zweite Abschnitt ist der Grundkurs, in dem es um Variablen, Funktionen, Schleifen und etwas Spielerei mit Dateien und Texten geht.

Formales  

Vorwort  

Einführung  

Kurzvorstellung  
Das Richtige für mich?  
Eintauchen in die Perlenwelt  
Geschichte einer Skriptsprache  
Larry und die Perl-Kultur  

Der Einstieg  

„Hello World!“  
Variablen  
Variablenklassifizierung und Fallbeispiele  
Spezialvariablen  
Einfache Ein-/Ausgabe  
Dateien  
Operatoren  
Kontrollstrukturen  
Subroutinen  

Fortgeschrittene Themen  

Programmierstil und -struktur  
Gültigkeitsbereich von Variablen  
Reguläre Ausdrücke  
Objektorientiert Programmieren in Perl  
Vordefinierte Variablen  

Perl-Schnittstellen  

GUI in Perl  
Perl/TK  
Perl/QT  
Perl/GTK  
Perl/wxWidgets  
Web-Entwicklung in Perl  
CGI  
mod_perl: Perl-Beschleunigung unter Apache  
DBI: Datenbankzugriffe in Perl  
Benutzen der CPAN-Bibliotheken  

Beispiele

Einfache Beispiele für den Einstieg  

Anhänge  

Funktionsreferenz  
Nützliche Module  
Schnellreferenz  
Webseiten und mehr  
Buchtipps  
Glossar  
Installation  

Wikibooks.org

Perl-Programmierung/ Druckversion  



Liste der verwendeten Vorlagen: Perl-Programmierung: Vorlagen