{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 12 - Unterprogramme

Unterprogramme werdne immer dann eingesetzt wenn ein bestimmter Code öfters, aber nicht nur an einer Stelle des Codes, ausgeführt werden muss. Das erhöht die Übersichtlichkeit & Kompaktheit des Codes enorm.


Unterkapitelindex

10.1 Unterprogramme
10.2 Aufruf von Unterprogrammen
10.3 Paramter auswerten
10.3b Paramter auswerten - 2te Runde
10.4 Rückgabewerte




10.1 Unterprogramme
Ein einfaches Unterprogramm sieht so aus:

01
02
03
04

sub printi{
   print "Hello subs!";
   return;
}

Dieses Programm können Sie nun einfach durch "&printi;" aufrufen, überall wo nun im Code "&printi;" steht wird später "Hello Subs!" ausgegeben.



10.2 Aufruf von Unterprogrammen
Hier ein paar Beispiele für den Aufruf von Unterprogrammen:

01
02
03

&printi;
&printi (1);
&printi (1,2);

01 Die Sub &printi wird ohne Übergabe von Parametern aufgerufen.
02 Die Sub &printi wird mit Übergabe von einem Parameter aufgerufen.
03 Die Sub &printi wird mit Übergabe von zwei Parametern aufgerufen.

Wie Sie diese Parameter auswerten können, können Sie im 3. Unterkapitel nachlesen.

Zu beachten hierbei ist, das der Prefix "&" optional ist, der Code hätte also auch so aussehen können:

01
02
03

printi;
printi (1);
printi (1,2);



10.3 Parameter
Ein Beispiel für eine Sub die mit 2 Parametern aufgerufen wird:

01
02
03
04
05
06
07

sub printi {
   my $va = $_[0];
   my $vb = $_[1];

   print $va + $vb;
   return;
}


Wenn das Unterprogramm nun mit &printi (1,2); aufgerufen wird, wird das Unterprogramm "3" ausgeben. In dem Array $_ sind alle Parameter gespeichert. Dieser Array kann wie jeder andere Array behandelt werden .



10.3b Parameter - 2te Runde
Ein Beispiel für eine Sub die mit 2 Parametern aufgerufen wird:

01
02
03
04
05
06
07

sub printi {
   my $va = shift;
   my $vb = shift;

   print $va + $vb;
   return;
}


Dieses Programm macht genau das selbe wie das in 10.3 - Nur auf einen anderen Weg. Anstatt den Array $_ explizit zu nutzen wird hier immer nur ein Element des Arrays abgerufen.

Diese Methode wird eher empfohlen da i.d.R. jedes Element der Übergabe an eine Prozedur ausgewertet werden soll(te).



10.4 Rückgabewerte
Aus dem obigen Beispiel kann man ein Unterprogramm zum Addieren erstellen indem man folgendes schreibt:

01
02
03
04
05
06
07

sub printi {
   my $a = $_[0];
   my $b = $_[1];

   $a + $b;
   return;
}


Die Routine gibt dann als Wert 3 zurück. Aufgerufen wird Sie wie folgt:

01

print &printi(1,2);


In diesem Beispiel wird der Rückgabewert direkt an die Print Anweisung übergeben. Der Rückgabewert einer Sub ist immer der zuletzt berechnete Wert.