{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 8B - for/each Schleife

Nachdem Sie nun die while Schleife kennengelernt haben lernen Sie in diesem Kapitel die for sowie die foreach Schleife einzusetzen.


Unterkapitelindex

8b.1 Unterschiede von for und foreach
8b.2 Die For Schleife
8b.3 Die Foreach Schleife




8b.1 Unterschiede von for und foreach
Die for Schleife ist eine Art der while Schleife - Der Code ist dabei jedoch kompakter. Die foreach Schleife wird genutzt um alle Elemente eines Arrays auszugeben oder zu verwerten.




8b.2 Die for Schleife
Eine einfache for Schleife:

01
02
03

for (my $i = 0; $i <= 10; $i++){
   print "$i. Durchgang";
}

Die Ausgabe dieser Schleife ist foglende:

01
02
03
04
05
06

07
08
09
10

1. Durchgang
2. Durchgang
3. Durchgang
4. Durchgang
5. Durchgang
6. Durchgang
7. Durchgang
8. Durchgang
9. Durchgang
10. Durchgang


Der erste Teil in den runden Klammern der for Schleife ist für Deklarationen von Variablen gedacht (in diesem Fall $i). Im Zweiten Teil wird die Abbruchbedingung gegeben (in diesem Fall ist die Abbruchbedingung falsch solange $i kleiner oder gleich 10 ist). Im letzten Teil wird der Code angegeben der bei jedem Durchgang interpretiert werden soll (in diesem Fall 1 zu $i addieren).

Die For Schleife sollte immer dann eingesetzt werden, wenn eine Schleife mit einer Konstanten Wiederholungszahl genutzt werden soll. Sie können die for Schleife natürlich auch wie die while Schleife einsetzen, doch das ist nicht im Sinne des Perl Erfinders.



8b.3 Die foreach Schleife
Wie schon in 8b.1 beschrieben wird die foreach Schleife genutzt um alle Skalare eines Arrays abzugehen. Hier ein Beispiel:

01
02
03
04
05
06
07
08
09
10

my @array;
my $a;

push (@array, 1);
push (@array, 2);
push (@array, 3);

foreach $a(@array){
   print "$a <br>";
}



jDie Ausgabe wäre in dem Fall 1 2 3 durch Zeilenumbrüche getrennt.