|
  
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:
In diesem Beispiel wird
der Rückgabewert direkt an die Print Anweisung übergeben.
Der Rückgabewert einer Sub ist immer der zuletzt berechnete
Wert.
 
|