Perl-Programmierung: Variablenklassifizierung und Fallbeispiele
Aus Wikibooks
[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
... ... ...

