|
|
||||||||||||||||||
![]() |
Tutorial - Kapitel 2: Das erste ScriptVoraussetzungen für dieses Kapitel
Das erste Script: hello world!Als erstes schreiben wir unter Perl einmal das berühmte "hello world"-Script und wollen das einmal genauer analysieren: Erstellen Sie eine neue Datei hello.cgi mit folgendem Inhalt und speichern Sie diese im cgi-bin Verzeichnis. #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html>\n"; print "<body>\n"; print "hello world!\n"; print "</body>\n"; print "</html>"; Auf dem Browser sollte nun der Text "hello world!" erscheinen. Nun aber schön der Reihe nach: Die erste Zeile definiert den Pfad, in dem sich der Perl-Interpreter befindet (in unserem Fall /usr/bin/perl. Unter UNIX (oder Windows mit Apache) muss dieser korrekt sein. Wie dieser genau lautet können Sie auf der Konsole mit which perl bestimmen. /usr/bin/perl ist auf den meisten UNIX-Systemen der Standard. Unter Solaris trifft man häufig /usr/local/bin/perl. Unter Windows mit Xitami spielt es keine Rolle, was da für ein Pfad angegeben wird, da Windows anhand der Dateiendung (.cgi oder .pl) auf das Programm schliesst. Die Zeile muss aber ebenfalls zwingend vorhanden sein. Auf der zweiten Zeile teilen wir dem Browser die Art unseres Dokuments mit. In unserem Fall "text/html", also ein simples HTML-Dokument. Dies machen wir mittels normalem print-Befehl, gefolgt von zwei Leerzeilen (\n). Im Normalfall wird dieser sog. MIME-Type anhand der Dateiendung zugewiesen. Da CGI-Scripte aber auch mal ein GIF, PDF, ZIP-Datei oder was auch immer zurückliefern, muss dies immer angegeben werden. Übrigens: Xitami unter Windows benötigt diese Zeile nicht zwingend. Deshalb ist das einer der häufigsten Fehler, warum ein Script auf dem lokalen Webserver (Xitami) läuft und auf dem Webserver im Internet (z.B. Apache) einen Fehler 500 meldet. Ebenfalls sehen wir, dass wir in Perl - wie in vielen anderen Programmiersprachen auch - jeden Befehl mit einem Strichpunkt (;) abschliessen müssen. So ist es auch möglich, mehrere Befehle auf eine Zeile zu schreiben. Auf den folgenden Zeilen erstellen wir dann den Inhalt des HTML-Dokuments. Jede Zeile beginnt mit print, was bedeutet, dass die Ausgabe an den STDOUT (Standard-Output, in unserem Fall das Browserfenster) geschickt wird. Innerhalb der Anführungszeichen steht dann der Text, \n ist nichts anderes als ein Zeilenumbruch (new-line). Natürlich hätte man die Browserausgabe auch auf eine Zeile schreiben können (hello1.cgi): #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html><body>hello world!</body></html>"; Besonders bei etwas umfangreicheren Dokumenten wird dies jedoch schnell unübersichtlich. Eine weitere sehr elegante Möglichkeit sieht wie folgt aus (hello2.cgi): #!/usr/bin/perl print "Content-type: text/html\n\n"; print <<HTMLtext; <html> <body> hello world! </body> </html> HTMLtext # Zeilenumbruch am Ende Wollen wir auch diese Lösung noch etwas genauer anschauen. Es gibt hier einen Befehl print <<HTMLtext;, der nichts anderes bedeutet als dass ab jetzt alle Zeilen ausgegeben werden sollen, bis der Text "HTMLtext" folgt. Anstelle von "HTMLtext" kann auch ein beliebiger anderer Text verwendet werden, z.B. "Ausgabe". Es gibt jedoch einige wichtige Punkte zu beachten:
Diese Lösung gefällt mir persönlich besonders gut, denn 1. muss nicht auf jeder Zeile ein print-Befehl kommen, 2. muss ich auch nicht jedes Anführungszeichen Backquoten (dazu im nächsten Abschnitt mehr), 3. wirkt es sehr übersichtlich und 4. ist es an PHP angelehnt. Spezielle ZeichenWir haben in der Zwischenzeit ja bereits \n für einen Zeilenumbruch kennen gelernt (Übrigens: dies bezieht sich lediglich auf einen Zeilenumbruch im Quelltext des Browsers. Zeilenumbrüche im Browser müssen natürlich auch weiterhin mit den HTML-Tags <br/> bzw. <p> </p> gemacht werden. Es gibt jedoch noch eine Reihe anderer Sonderzeichen:
Diese Liste ist nicht vollständig, sollte aber für die meisten Fälle reichen. Die komplette Liste findet man in Rex Swain's HTMLified Perl 5 Reference Guide. KommentareEbenfalls ganz wichtig sind Kommentare im Quelltext. Diese können mit dem Zeichen # eingeleitet werden. Sobald dieses Zeichen ausserhalb eines Textes erscheint, wird der Rest der Zeile als Kommentar betrachtet. print "Content-type: text/html\n\n"; # Ausgabe des MIME-Types (HTML-Dokument) an den Browser print "Das Rautezeichen # innerhalb eines Textes in \"\" wird nicht als Kommentar beachtet"; print "Text 1"; # Kommentare gelten bis Zeilenende. Befehle hinter # werden ignoriert print "Text 2"; # In Perl gibts es - anders als in anderen Programmiersprachen - # keine Möglichkeit, einen Kommentar über mehrere # Zeilen zu erfassen. Das #-Zeichen muss auf jeder neuen Zeile # nochmals vorhanden sein! ZusammenfassungIn diesem Kapitel haben wir das erste Script geschrieben, die erste Zeile jedes Scripts mit dem Pfad zu Perl angesehen und den print-Befehl kennen gelernt. Ebenfalls wissen wir, dass jede Zeile mit einem Strichpunkt (;) abgeschlossen werden muss, kennen Sonderzeichen wie \n für einen Zeilenumbruch und wissen auch, dass wir mit # Kommentare in unser Script einfügen können. Ziemlich viel Stoff für den Anfang, oder? Wie geht's weiter?Im Kapitel 3 befassen wir uns mit Variablen Im vorherigen Kapitel (1) haben wir einen Webserver mit Perl/CGI-Unterstützung installiert. Sie können aber auch zurück zum Inhaltsverzeichnis und dort ein beliebiges anderes Kapitel auswählen.
|
|||||||||||||||||