Homepage Inspire-world | Forum
CGI/Perl Workshops Subroutinen und Parameterübergabe

 Inhaltsverzeichnis/Workshops Übersichtsseite/Subroutinen und Parameterübergabe
Kapitel 3 des Subroutinenworkshops behandelt nun die Übergabe von Parametern von einer Subroutine zu nächsten. Paramter können hierbei ganz unterschiedlicher Natur sein. Gemeint sind dabei Zahlen, Text, oder Listen

1. Ein einfaches Beispiel

Aufruf einer Subroutine zum berechnen von Ergebnissen
# Der Aufruf der Subroutine
&rechner(349,188);
Die Subroutine
sub rechner {
$ergebnis = $_[0] + $_[1];
print "$ergebnis";
}
Wie funktioniert's?

Nun die Werte (Argumente), hier 349,188 werden im Array @_ abgelegt und können dann in der Subroutine abgefragt werden in der Reihenfolge $_[0] und $_[1]
Immer beachten! Perl fängt bei 0 an zu zählen!

Natürlich können in dem Aufruf &rechner(349,188); noch viel mehr Daten übergeben werden.
# Der Aufruf der Subroutine
&rechner(349,188,600,85,7433,9814);
Die Subroutine
Will ich nun nur die Zahlen 188,85,9814 berechnen sieht das so aus:
sub rechner {
$ergebnis = $_[1] + $_[3] + $_[5];
print "$ergebnis";
}
Fehlermeldungen ausgeben:

Hiermit kann man Fehlermeldungen an eine Subroutine übergeben und dadurch eine Error 500 Meldung in eine aussagekräftige Fehlermeldung umwandeln.
open(DATEI, "benutzer.dat") or &fehlerausgabe("Die Datei benutzer.dat kann nicht geöffnet werden");
@benutzer = <DATEI>;
close(DATEI);
Die Subroutine zur Fehlerausgabe:

#########################################################################
# Fehlerausgaberoutine
sub fehlerausgabe {
# Variable Fehler wird dem Standardarray @_ zugewiesen
($fehler) = @_;

# Print qq~ leitet ganz normale HTML Ausgabe ein
print qq~
<font face="Verdana, Arial" size="2" color="#ff0000"><b>FEHLER!!!</b><br>
$fehler
</font>
~;
} 
# Ende der Subroutine
#########################################################################
Selbstverständlich kann man auch den Text
Die Datei benutzer.dat kann nicht geöffnet werden als Variable schreiben und so die Fehlermeldungen an einer Stelle verwalten.

$Fehler_1 = "Die Datei benutzer.dat kann nicht geöffnet werden";

open(DATEI, "benutzer.dat") or &fehlerausgabe("$Fehler_1");
@benutzer = <DATEI>;
close(DATEI);



 Zum Inhaltsverzeichnis/Workshops Übersichtsseite/Subroutinen und Parameterübergabe
Autor: Helmut Walter Homepage Inspire-world Fragen, Anregungen und Hinweise bitte in das Forum

Valid HTML 4.0! Valid CSS!