1. Das ansteuern der Subroutinen
# Angabe was als "Kommando" genutzt werden soll um Subroutinen aufzurufen
$aktion = $ENV{"QUERY_STRING"};
# Definition welche Subroutine starten bei welchem Query String
if ($aktion eq "") {
&hauptseite;
}
if ($aktion eq "seite1") {
&seite1;
}
if ($aktion eq "seite2") {
&seite2;
}
Bei $aktion = $ENV{"QUERY_STRING"}; wird festgelegt das die Aktionen durch den Query String Namen bestimmt werden.
Ein Query String ist der Teil der URL der nach dem ? kommt. Dies sieht dann hier im Beispiel so aus. ...subroutine.pl?seite1
Nun folgen drei if Abfragen die die Parameter zum aufrufen der Subroutinen enthalten.
if ($aktion eq "") {
&hauptseite;
}
oder
if ($aktion eq "seite1") {
&seite1;
}
Bei der ersten steht aber doch gar kein Parameter? aktion eq "" Nun dies ist hier auch nicht unbedingt nötig.
eq "" seht hier für soviel wie "ist leer". Also wird beim aufruf des Programmes ohne Subroutinenparameter die
Subroutine &hauptseite; gestartet. Dies ist in sofern sinnvoll, da hier der User einfach nur die URL zum Script angeben muss in der Browserzeile
und nicht den Query String auch noch mit.
2. Nun folgen die einzelnen Subroutinen
########################################################################
# Seite 1
########################################################################
sub seite1 {
print "Content-type: text/html\n\n";
&header;
&links;
print qq~
<font face="Verdana, Arial" size="2">Subroutine Seite 1
<br><br>
... weitere Programmanweisungen
</font>
~;
&footer;
}
########################################################################
Diese hier will ich einmal erklären.
sub seite1 { = Subroutinenanfang
print "Content-type: text/html\n\n"; = Angabe den Content Types
&header; = Aufruf der Unterroutine header
&links; = Aufruf der Unterroutine links
print qq~ ... ~; = Ausgabe von HTML Code
&footer; = Aufruf der Unterroutine footer
} = Ende der Subroutine
Um die Subroutinen gut voneinander abzugrenzen sollte man diese mit Kommentaren
kenntlich machen. Dies erleichtert auch bei großen Programmen die Übersichtlichkeit wenn etwas im Code editiert wrden soll.
########################################################################
# Seite 1
########################################################################
Ich denke dies Beispiel verdeutlich zumindest gut wie Subroutinen genutzt werden können und dabei auch Code gespart werden kann.
Würde man z.B. nicht diese Möglichkeit nutzen können Subroutinen in Subroutinen einzubinden wäre hier in jeder Subroutine viel mehr Code zu notieren.
So müsste der kommpette Header und Footer sowie der Code der Links komplett notiert werden.
» Weiter zu Subroutinen aus externen Dateien benutzen
|