Skalare - einfache Variablen
Listen - Arrays
Assoziative Listen - Hashes
Der einfachste Typ in Perl ist die skalare Variable. Skalare Variablen können Zeichenketten (Strings) und Zahlen speichern. Im Gegensatz zu anderen Sprachen wird der Datentyp (String oder Zahl) nicht vorher festgelegt und kann auch jederzeit geändert werden.
#!/usr/bin/perl $a = 5; $b = 10; $name = "Marco"; $adresse = "Hauptstraße 10"; |
#!/usr/bin/perl $wert = 5 + 3.6; print "aktueller Wert: ", $wert; |
Ein Skalar, also eine einfache Variable, beginnt mit dem Dollarzeichen $, gefolgt von dem Namen der Variablen. Das Dollarzeichen muss immer angegeben werden, wenn die Variable verwendet wird, egal ob ihr ein Wert zugewiesen wird, oder ob sie in einer Operation vorkommt.
Ob ein Skalar numerisch oder eine Zeichenkette ist, entscheiden sich erst, wenn dem Skalar einen Wert zugewiesen oder er in einer Anweisung verwendet wird. Eine angegebene Zeichenkette muß dabei in Anführungszeichen stehen. Normalerweise sind das doppelte Anführungszeichen, es sind aber auch einfache Anführungszeichen erlaubt.
Daten in Perl sind nicht "getypt". Mit eine Zeichenkette, die nur aus gültigen numerischen Zeichen besteht (z.B. "7423.13"), kann man problemlos numerische Operationen durchführen. Ebenso ist es möglich numerische Werte wie Zeichenketten behandeln.
![]() ![]() |
Listen sind Ketten zusammengehöriger skalarer Werte. In Perl haben solche Listen zentrale Bedeutung, weil es sehr einfach ist, Daten in Listen einzulesen und Listen zu manipulieren.
#!/usr/bin/perl @haustiere = ("Hund", "Hamster", "Katze"); @tiere = ("Schwein", "Pferd", @haustiere, "Maus"); print @tiere; |
#!/usr/bin/perl @buchstaben = ("a".."z", "1".."9"); print $buchstaben[0]; |
Eine Liste wird in Perl durch das Klammeraffenzeichen @ eingeleitet. Dahinter folgt der Name der Liste. Wird eine Liste mit Daten vorbelegt, ist darauf zu achten, dass die Daten durch runde Klammern eingeschlossen werden. Die einzelnen Listenelemente werden durch Kommata getrennt (siehe Beispiel 1).
Listen können aber auch dynamisch erzeugt werden, wie Beispiel 2 zeigt. Das Array @buchstaben wird mit allen Kleinbuchstaben (von 'a' bis 'z') und allen Ziffern ('1' bis '9') gefüllt.
Um ein bestimmtes Element innerhalb einer Liste anzusprechen, verwendet man den Variabelennamen der Liste, setzen jedoch ein Dollarzeichen $ davor, da auf einen skalaren Wert zugegriffen wird. Hinter dem Listennamen gibt man in eckigen Klammern an, welches Element der Liste angesprochen werden soll. Dabei wird bei 0 zu zählen begonnen, d.h. das erste Listenelement einer Liste mit dem Namen @Listenname wird mit $Listenname[0] angesprochen.
Wird ohne vorherige Listendefinition eine Anweisung notiert (z.B. $zahlen[5] = 3;), so wird automatische eine Liste mit sechs Einträgen generiert. Alle anderen Listenfelder bleiben jedoch leer.
![]() ![]() |
Assoziative Arrays, auch kurz Hashes genannt, sind den normalen Listen recht ähnlich. Allerdings werden die Arrayelemente nicht einfach durchnummeriert, sondern jedes Element erhält eine Zeichenkette als Namen, den sogenannten Key. Über diesen Key kann das jeweilige Element dann angesprochen werden.
#!/usr/bin/perl %Daten = ("Name", "Marco", "Alter", 19, "Ort", "Linz"); print $Daten{"Name"}, " ist ", $Daten{"Alter"}, " Jahre alt und wohnt in ", $Daten{"Ort"}; |
Ein Hash wird in Perl durch das vorangestellte Prozentzeichen % eingeleitet. In einen Hash gehören immer jeweils zwei Elemente zusammen: das erste Element stellt den Hash-Namen dar, das zweite Element den gespeicherten Wert, der über den Hash-Namen ansprechbar ist. So bilden im obigen Beispiel die beiden ersten Elemente "Name" und "Marco" das erste Hash-Paar des Hashs %Daten.
Um ein bestimmtes Element innerhalb eines Hashs anzusprechen, verwendet man den Variabelennamen des Hashs, setzen jedoch ein Dollarzeichen $ davor. Hinter dem Namen des Hashs notiert man in geschweiften Klammern und Anführungszeichen den Hash-Namen des Elements, das angesprochen werden soll. Im obigen Beispiel 1 wird auf diese Weise etwa mit $Daten {"Name"} der zugehörige Wert "Marco" angesprochen.
Um weitere Elemente in den Hash einzufügen, weist man einfach einem neuen Key einen Wert zu, existiert der Key bereits, wird der entsprechende Wert überschrieben: $Daten{"Plz"} = 4040;. Um einen Key/Wert Paar zu entfernen, wird der delete Befehl verwendet: delete $Daten{"Alter"};.
![]() |
Index | ![]() |