Perl-Programmierung: Variablenklassifizierung und Fallbeispiele

Aus Wikibooks

Wechseln zu: Navigation, Suche
Zurück zu Variablen | Hoch zu Inhaltsverzeichnis | Vor zu Spezialvariablen



[Bearbeiten] Klassifizierung von Variablen

Eine Möglichkeit der Klassifizierung von Variablen basiert auf der Art der enthaltenen Daten. Die erste Art der Unterscheidungen ist Ein- und Mehrzahl, bzw. Skalar und Array. wobei Listen von Strings und Zahlen in der Mehrzahl vorliegen. Wir nennen einen singuläre Variable einen Skalar und eine plurare Variable einen Array. Weil ein String in einer skalaren Variable gespeichert werden kann, kann das Hello World-Beispiel auch so aussehen:

$ausg = "Guten Morgen, Welt!\n";     # Variable setzen
print $ausg;                         # Variablen ausgeben

Wenn Sie aufgepasst haben, werden Sie feststellen, dass die Variablen davor nicht deklariert werden mussten. Perl erkennt automatisch durch das $-Zeichen, dass es sich bei ausg um eine skalare Variable handelt, also dass diese Variable nur einen Wert enthält. Eine Array-Variable beginnt stattdessen mit einem @-Zeichen. (Wenn Sie nun Array und Skalar gar nicht auseinander halten können, versuchen Sie mal folgender Eselsbrücke: $ = $(s)kalar @ = @(a)rray Man kann sich hier sehr einfach das $ als s vorstellen und das @ als a.)

Perl besitzt aber noch mehr Variablentypen, wie z.B. Hash, handle, typeglob, und allen wird zur Unterscheidung ein Typkennzeichen vorangestellt. Hier eine kleine Liste aller Typkennzeichen, denen Sie bei Perl begegnen werden.

Typ Kennzeichen Beispiel Ist ein Name für:
Skalar $ $bsp Ein individueller Wert (Zahl oder String)
Array @ @test Eine Liste von Werten mit einer Ganzahl als Index
Hash % %zinsen Ein Gruppe von Werten mit einem String als Index
Subroutine & &was Ein aufrufbares Stück Perl-Code
Typeglob * *maus Alles namens maus

Aber jetzt nicht zurückschrecken. Die Variablen können ohne weiteres und ohne besondere Syntax einfach umgewandelt werden. Perl-Scripte sind verhältnismäßig einfach zu lesen, weil Hash gegen Array etc. schnell heraussticht.

[Bearbeiten] Singularitäten

So wie Sie vorher gesehen haben, können Sie Skalaren mit dem Operator einen neuen Wert zuweisen. Skalaren kann jede Form von skalaren Werten zugewiesen werden.

  • Integer (ganze Zahlen)
  • Fließkommazahlen
  • Strings (Zeichenfolgen)
  • Referenzen auf andere Variablen / Objekte
  • etc.

Wie bei der Shell bei Unix, können Sie verschiedene Quoting-Mechanismen verwenden, um Werte zu erzeugen. hier einige Beispiele

$ausg = 56;                            # ein Integerwert
$pi = 3.14159265;                      # eine "Realzahl"
$chem = 93.5ds2;                       # wissenschaftliche Notation
$tier = "hund";                        # String
$test = "ich habe einen $hund";        # String mit Interpolation
$preis = 'kosten 255€';                # String ohne Interpolation
$abc = $def;                           # Wert einer anderen Variable
$bild = $rahmen * $wand;               # ein Ausdruck
$exit = system("vi $file");            # numerischer Status eines Befehls
$cwd = `cwd`;                          # Textausgabe eines Befehls

Nicht verzweifeln. Das sieht komplizierter aus, als es wirklich ist. Hiermit wollte ich nur verdeutlichen, dass ein Skalar sehr viel enthalten kann. Aber es kann noch mehr, wie z.B. Referenzen auf andere Datenstrukturen, Subroutinen und Objekte.

$ary = \@array;                        # Referenz auf ein bekanntes Array
$hsh = \%hash;                         # Referenz auf einen bekannten Hash
$sub = \&was;                          # Referenz auf eine bekannte Subroutine
 
$ary = [1,2,3,4,5];                    # Referenz auf ein nicht benanntes Array
$hsh = {AP => 20, HP =>2};             # Referenz auf einen nicht benannten Hash
$sub = sub { print $zeit };            # Referenz auf eine nicht benannte Subroutine
 
$fido = neuer Hund "Boss";             # Referenz auf ein Objekt

... ... ...


Zurück zu Variablen | Hoch zu Inhaltsverzeichnis | Vor zu Spezialvariablen


Persönliche Werkzeuge
Buch erstellen