4 Die folgenden Regeln haben das Ziel, den Code möglichst gut les- und wartbar
 
   5 zu machen. Dazu gehört zum Einen, dass der Code einheitlich eingerückt ist,
 
   6 aber auch, dass Mehrdeutigkeit so weit es geht vermieden wird (Stichworte
 
   7 "Klammern" oder "Hash-Keys").
 
   9 Diese Regeln sind keine Schikane, sondern erleichtern allen das Leben!
 
  11 Zum einfachen Formartieren von Perl-Scripten gibt es das Tool "perltidy",
 
  12 das man weitgehend konfigurieren kann. Bei fast allen nachfolgenden Punkten
 
  13 sind die dazugehörigen perltidy-Optionen angegeben. perltidy ist bei den
 
  14 meisten Linux-Distributionen enthalten und kann ansonten unter
 
  15 http://perltidy.sourceforge.net heruntergeladen werden.
 
  17 Jeder, der einen Patch schickt, sollte sein Script vorher durch perltidy
 
  18 laufen lassen. Damit werden einige der nachfolgenden Regeln automatisch
 
  19 befolgt, andere hingegen nicht. Dort, wo keine perltidy-Optionen angegeben
 
  20 sind, muss der Programmierer selbst für die Einhaltung sorgen.
 
  22 --------------------------------------------------------------------------
 
  24 1. Es werden keine "echten" TAB-Zeichen sondern Leerzeichen verwendet.
 
  27 2. Die Einrückung beträgt zwei Leerzeichen.
 
  32      print(STDERR "Debugging.\n");
 
  35 3. Öffnende geschweifte Klammern befinden sich auf der gleichen Zeile wie
 
  37    Perltidy: -nbl -nsbl -bar
 
  46    if ($form->{item_rows} > 0) {
 
  50 4. Schließende geschweifte Klammern sind so weit eingerückt wie der Befehl/
 
  51    die öffnende schließende Klammer, die den Block gestartet hat, und nicht
 
  52    auf der Ebene des Inhalts. Die gleichen Beispiele wie bei 3. gelten.
 
  53    Perltidy: macht's automatisch
 
  55 5. Die Wörter "else" "elsif", "while" befinden sich auf der gleichen
 
  56    Zeile wie schließende geschweifte Klammern.
 
  60    if ($form->{"sum"} > 1000) {
 
  62    } elsif ($form->{"sum"} > 0) {
 
  72 6. Parameter von Funktionsaufrufen müssen mit runden Klammern versehen
 
  75    Achtung: perltidy kann dieses nicht erledigen. Der Programmierer muss
 
  80    debug("Konnte Datei nicht oeffnen.\n");
 
  82 7. Verschiedene Klammern
 
  84   7.1 Aufeinander folgende runde Klammern sollten nicht durch Leerzeichen
 
  89       if (($form->{"debug"} == 1) && (($form->{"sum"} - 100) < 0)) {
 
  93   7.2 Nach und vor eckigen Klammern sollten keine Leerzeichen stehen.
 
  99   7.3 Nach und vor geschweiften Klammern sollten keine Leerzeichen stehen,
 
 100       es sei denn, sie sind verschachtelt.
 
 103       $form->{"sum"} += $form->{"row_${i}"};
 
 105       $form->{ $form->{"index"} } += 1;
 
 107   7.4 Nach und vor geschweiften Klammern, die Codeblöcke beschränken,
 
 108       sollten Leerzeichen stehen, wenn sich der Codeblock über nur eine
 
 113       map({ $form->{"sum"} += $form->{"row_$_"}; } (1..$rowcount));
 
 114       $form->{ $row + 1 } = 5;
 
 116 8. Mehrzeilige Befehle
 
 118   8.1 Werden die Parameter eines Funktionsaufrufes auf mehrere Zeilen
 
 119       aufgeteilt, so müssen diese bis zu der Spalte eingerückt werden,
 
 120       in der die ersten Funktionsparameter in der ersten Zeile stehen.
 
 121       Perltidy: -lp -vt=1 -vtc=1
 
 124       $sth = $dbh->prepare("SELECT * FROM some_table WHERE col = ?",
 
 125                            $form->{"some_col_value"});
 
 127   8.2 Wird ein Befehl auf einer neuen Zeile forgesetzt, so ist ab der
 
 128       zweiten Zeile zusätzlich zwei Leerzeichen einzurücken.
 
 133         $form->{"row_$i"} ? $i : $form->{"rowcount"} - $form->{"rowbase"};
 
 137   9.1 Kommentare, die alleine in einer Zeile stehen, sollten soweit wie der
 
 138       Code eingerückt sein.
 
 141   9.2 Seitliche hängende Kommentare sollten einheitlich formatiert werden.
 
 144 10. Hash-Keys sind, sofern es sich um Zeichenketten und nicht um
 
 145     Nummern handelt, in Anführungszeichen zu setzen.
 
 147     Achtung: perltidy kann dieses nicht erledigen. Der Programmierer muss
 
 148     selber darauf achten!
 
 153     $form->{"row_$i"} = $form->{"row_$i"} - 5;
 
 156 11. Die Maximale Zeilenlänge ist nicht bescränkt. Zeilenlängen <= 79
 
 157     helfen, weil sie dann im Textmodus / per SSH deutlich besser lesbar
 
 158     sind. Oft genug ist es aber nicht möglich oder nur unter großen
 
 159     Verrenkungen, diese Vorgabe einzuhalten.
 
 161     Zeilen sollten nicht länger als 79 Zeichen sein.
 
 164 --------------------------------------------------------------------------
 
 166 Vollständige Liste aller Optionen, die ich für perltidy benutze. Diese
 
 167 können in ~/.perltidyrc geschrieben werden: