$a | »skalare« Variable (Zahl, Zeichenkette). [Perl wertet den Kontext aus; explizite Deklaration unnötig.] |
$a = 5; | Zuweisung einer Zahl. [Anweisungen werden mit »;« abgeschlossen.] |
$a = "Dies ist ein Text."; | Zuweisung einer Zeichenkette. |
$a = <FILE>; | Auslesen einer Zeile aus einer Datei. |
$a = <STDIN>; | Auslesen einer Zeile aus der Standard-Eingabe. |
$a = <>; | Auslesen einer Zeile aus der aktuellen Datei; voreingestellt ist die Standard-Eingabe. |
$_ = <FILE>; | Zeile wird der »aktuellen Variablen« $_ zugewiesen. |
while ($a = <>) {...} | Zeile wird der Variablen $a zugewiesen; Bedingung ist wahr, wenn noch eine Zeile da, falsch, wenn Dateiende erreicht. [Anweisungsblöcke werden in geschweifte Klammern eingeschlossen.] |
while (<>) {...} | äquivalent zu while ($_ = <>) {...} |
$a =~ tr/ABC/XYZ/; | Ausführung eines String-Operators auf $a, hier tr = »translation operator« = monoalphabetische Substitution A --> X, B --> Y, C --> Z |
tr/ABC/XYZ/; | äquivalent zu $_ =~ tr/ABC/XYZ/; |
tr/ABC/$a/; | A --> $, B --> a, C --> $ |
eval "tr/ABC/$a/"; | Zur Laufzeit wird erst $a ausgewertet, z. B. $a = "XYZ"; dann tr ausgeführt, also im Beispiel: A --> X, B --> Y, C --> Z |
print $a; | Standard-Ausgabe; äquivalent ist print(STDOUT,$a); |
print; | äquivalent zu print $_; |
Die Stärke von Perl liegt in Programmen, die eine (Text-) Datei Zeile für Zeile einlesen, die Zeile irgendwie transformieren und dann wieder abspeichern. Ein typisches Programm dafür sieht dann so aus:
while (<>) { # Lies ein, wenn noch etwas da ist,
...; # transformiere
print; # und gib aus.
}