{Perl_CGI_Einführung}

MuWeb CGI Einführung Privat
 
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

01

my @array;

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.