Subroutinen

Was sind Subroutinen ?
Subroutinen sind wiederverwendbare Codeblöcke.
Es gibt Perleigene Funktionen ( siehe man perlfunc ) und Selbstdefinierte.
Die Begriffe Subroutine, Funktion ,Prozedur können synonym verwendet werden.
Eigenschaften
Syntax
sub name_der_funktion {
    $parameter1 = shift;
    Anweisungen...
    return $rueck;
}
Der Aufruf einer Funktion erfolgt alternativ mit


Wobei in () die Parameter eingegeben werden können : name_der_funktion($var,$str).
Die Parameter werden in der Subroutine sukzessive mit shift eingelesen.
Veränderung der Aufrufparameter : my
Mit der Parameterübernahme in der Form $parameter1 = shift und anschließender Veränderung von $parameter wird auch der Wert des Parameters aus dem Funktionsaufruf geändert. ( Call by reference ).
Mit der Parameterübernahme in der Form my $parameter1 = shift wird eine Kopie des Übergabeparameters angelegt.
Eine Veränderung der Kopie ändert das Original nicht. ( Call by value ).
Rückgabewerte mit return
Mit return $rueck kann die Funktion sofort verlassen werden, return kann dabei an beliebiger Stelle im Funktionsblock { ... } stehen. Mit $rueck wird dann der Rückgabewert festgelegt.




Globale und Lokale Variablen
Variablen sind üblicherweise überall gültig (Hauptprogramm/Subroutinen).
Sie heißen dann globale Variablen
Werden in einer Funktion Variablen verwendet, die nur dort verwendet werden, dann werden sie mit my $var; deklariert.
Sie heißen dann lokale Variablen, sie sind nur in dem jeweiligen Anweisungsblock gültig, ihr Speicherplatz wird mit Verlassen des Blockes freigegeben ( sie "sterben" ).
Dadurch wird vermieden, daß Variablen im Hauptprogramm versehentlich überschrieben werden ( z.B. Laufvariablen ! )