Eine einfache IF-Abfrage ist mit Perl von der Syntax etwas anders als bei anderen Programmiersprachen: Während Javascript und PHP die Syntax “else if” und PHP zusätzlich auch noch “elseif” unterstützen, ist Perl hier etwas eigen: Wer die genaue Syntax nicht kennt, bekommt eine Fehlermeldung: Perl akzeptiert nur genau eine Variante für die fehlerfreie Ausführung der IF Abfrage.
Javascript IF/ELSE Syntax:
if(a == 1) {
...
} else if {
...
} else {
...
}
Bei Javascript und auch PHP heißt die Abfrage IF und ELSE IF für die zweite Bedingung. Alle anderen Möglichkeiten werden dann mit ELSE abgefangen – anders in Perl.
PHP IF/ELSE Syntax:
if($a == 1) {
...
} else if {
...
} else {
...
}
PHP, dessen erste Version an Perl angelehnt istn, nutzt die gleiche IF / ELSE IF Syntax wie Javascript. In PHP kann man den zweiten Part der Abfrage sogar sowohl “elseif” als auch “else if” schreiben: Zumindest, wenn man die Abfrage mit geschwungenen Klammern schreibt.
Perl IF/ELSE Syntax:
if($a == 1) {
...
} elsif {
...
} else {
...
}
Perl erkennt stattdessen weder ELSE IF noch ELSEIF: Damit Perl-Programme einwandfrei und ohne Fehlermeldung funktionieren, muss mann die Syntax ELSIF verwenden. Beide Teile müssen zwingend zusammengeschrieben werden, das hintere “e” von ELSE fällt weg. Perl hat aber noch eine weitere Besonderheit, die es von PHP und Javascript
unterscheidet: Perl erwartet unterschiedliche Operatoren in der IF Abfrage für numerische Abfragen und Abfragen mit Strings.
Perl IF-Abfrage: Unterschied zwischen Zahlen und Springs
Während bei Zahlen wie in der Abfrage oben if(a == 1) die Werte mit einem doppelten Gleichheitszeichen verglichen werden, benötigt man eine andere Syntax, wenn man in der IF Abfrage die Werte von Strings prüfen möchte. Statt “==” nutzt Perl den Operator “eq” für “ist gleich” und “ne” für “ist nicht gleich”:
eq: is equal
und:
ne: is not equal
Die Abfrage lautet dann in unserem Beispiel etwa so:
if($a eq "wert" && $a ne "wert2") {
...
}