00 Index
01 Vorwort
02 Kickstart
03 Hello World
04 Variablen
05 Arrays
06 Queries
07 Vergleiche
08 Schleifen
09 Dateien
10 Reg_Exp
11 Strings
12 Subs
13 Links
|
|
CGI 5 - Arrays
  
Sie
wissen nun wie man ein einfaches Skript schreibt
und darin Variablen nutzen kann. Interessanter
wird das ganze bei Variablenfeldern - Sogenannten
Arrays.
Unterkapitelindex
5.1 Was sind Arrays überhaupt?
5.2 Allgemeines zu Arrays
5.3 Zugriff auf Arrays
5.4 Array Funktionen
5.5 Beispiel
|
|
5.1
Was sind Arrays
überhaupt?
Einfach ausgedrückt sind Arrays Felder von
Skalaren Variablen .
Also zb. 20 Variablen in einer Liste. Das ist sehr
nützlich wenn es zb. darum geht eine Adressdatenbank
aufzubauen. Statt die Variablen my $name1, my $name2
usw. zu deklarieren nutzt man einfach "@namen[10]"
um 11 Namen im Feld speichern zu können. |
|
5.2
Allgemeines zu
Arrays
Wie schon in 5.1 beschrieben sind Arrays eine Liste
(bzw. ein Feld) skalarer Variablen.
Die Arrays müssen natürlich auch zuerst
definiert werden, das geschieht mit dem Befehl
Dabei bedeutet das "My" das die Variable
lokal deklariert wird. Das At (@) Zeichen definiert
die Variable als Array aus Skalaren. Es wurde dabei
keine bestimmte Zahl von Skalaren definiert. |
|
5.3
Rechnungen
Der Zugriff auf Arrays ist recht einfach:
01
02
03
04
05
06
|
my @array;
push (@array, "Wohnung");
push (@array, "Haus");
print $array[1];
|
In diesem
Beispiel sehen Sie gleichzeitig auch die Möglichkeit
einem Array einen Wert anzuhängen. Was denken
Sie wird die 6. Zeile ausgeben? Falls Sie nun denken
Wohnung ist das zwar logisch, aber leider falsch.
Denn der erste Skalar in einem Array hat nicht die
Nummer 1, sondern 0. Also wird in diesem Beispiel
"Haus" ausgegeben.
Um
auf den Array zuzugreifen wird nicht das @-Symbol,
sondern das $-Zeichen genutzt!
Rechnungen mit Arrays sind auch sehr einfach durchzuführen:
01
02
03
04
|
my @array=(1, 2, 3);
my $c = $array[0] + $array[1] + $array[2];
print "1+2+3 = $c";
|
In diesem
Beispiel wurde der Array gleich mit Werten deklariert.
Das ist durch das trennen mit dem Komma (,) Zeichen
möglich. Danach wird $c der Wert 1+2+3 = 6
zugewiesen und ausgegeben. Natürlich sind -
genau wie bei den Skalaren - auch alle anderen Rechenarten
möglich. |
|
5.4
Array Funktionen
Mit
der Funktion "push" können Sie
einem Array einen weiteren Wert hinten
anhängen.
01
|
push (@array, "test");
|
Mit
der Funktion "unshift" können Sie
einem Array einen weiteren Wert vorne anhängen.
01
|
unshift (@array, "test");
|
Mit
der Funktion "pop" entfernen Sie den
letzten Wert eines Arrays.
01
02
03
04
05
|
push (@array, "test");
push (@array, "test2");
pop (@array);
print $array[1]; # Ausgabe ist ""
da das letzte Element entfernt wurde.
|
Mit
der Funktion "shift" entfernen Sie den
ersten Wert eines Arrays.
01
02
03
04
05
|
push (@array, "test");
push (@array, "test2");
shift (@array);
print $array[0]; # Ausgabe ist "test2"
da das erste Element entfernt wurde.
|
Der Index
"-1" gibt das letzte Element zurück,
"-2" das vorletzte usw.
01
02
03
04
|
push (@array, "test");
push (@array, "test2");
print $array[-1]; # Ausgabe ist "test2"
|
|
|
5.5
Beispiel
Hier
ein kleines Beispielprojekt das verdeutlicht wie
Arrays nutzbar sind:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/usr/bin/perl -wT
use strict;
print <<"EOF";
Content-Type:text/html
<html>
<head><title>Rechner</title></head>
<body>
EOF
my @array;
my @array2;
my $c;
push (@array, "Auto");
push (@array, "Motorrad");
push (@array, "Flugzeug");
unshift (@array, "fuhr");
pop (@array);
push (@array2, 12);
unshift (@array2, 8);
$c = @array2[0] * @array2[1];
print "Ich $array[0] mit dem @array[1]
an einem @array[2] mit $c km/h vorbei.";
print "</body>\n</html>";
|
Das
Programm sollte soweit klar sein, es wurden keine
neuen Befehle verwendet. Falls trotzdem Probleme
auftreten sollten kontaktieren Sie mich bitte
per E-Mail. Als kleine Übung überlegen
Sie sich vorher was das Programm ausgeben wird.
 
|
|
|