Webbasierte Adressdatenbank

Perl Module zur vereinfachten HTML Erzeugung

Grundsätzliches zu Modulen in Perl
Perl bietet neben den Standard Funktionen die Möglichkeit Erweiterungen in Form von Modulen zu benutzen. Diese Module werden mit  use Modulname;  am Anfang des Perl Skriptes eingebunden. Im Standard Umfang von Perl sind bereits viele Module vorhanden. Hier nur zwei Beispiele:  strict  beschränkt unsicher Konstrukte, d.h. alle Variablen müssen mit  my  deklariert werden.  CGI  ermöglicht die einfache Nutzung des Common Gateway Interface. Es vereinfacht die HTML Ausgabe, die Übergabe von Formulardaten mit  GET  oder  POST , das parsen der Daten (Umwandlung der mit hexadezimal Zahlen geschützten Sonderzeichen), Erstellen von HTML Tabellen, Verwendung und Erzeugung von Formularen und vieles mehr.

Ein Beispiel mit CGI.pm
Wir wollen ein Formular erzeugen, das die Eingabe eines Namens ermöglicht. Danach soll dann dise Ausgabe "Hallo Name" erfolgen:


       1: #!/usr/bin/perl -w
       2: 
       3: use CGI qw/:standard/;
       4: use CGI::Carp qw/fatalsToBrowser/;
       5: use strict;
       6:
       7: my $eingabe = param("name");
       8: 
       9: print header(), start_html("Hallo Benutzer"), h1("Hallo Benutzer");
      10:
      11: if ($eingabe) {
      12:	  print p("Hallo: $eingabe");
      13:
      14: } else {
      15:    print hr, start_form;
      16:    print p("Bitte geben Sie ihren Namen ein: ", textfield("name",""));
      17:    print end_form, hr;
      18: }
      19: 
      20: print end_html;
  
    

Die Zeilennummern dienen nur dem besseren Verstänis und sind in Perl natürlich nicht notwendig.
In der Zeile 3 binden wir das Modul  CGI  mit den Standard Methoden ein. Dieses Modul bietet noch viel mehr Möglichkeiten, auf die hier mal nicht eingegangen werden soll. Zeile 4 benutzt das Modul  CGI::Carp  mit der Methode  fatalsToBrowser , was bedeutet, daß bei Fehlermeldungen diese auf dem Browser ausgegeben werden. In Zeile 5 verwenden wir  strict  und beschränken unsichere Konstrukte, d.h. alle Variablen müssen mit  my  deklariert werden. In Zeile 7 wird es spannend. Hier holen wir, falls vorhanden, die Daten aus dem Formular, welches ein Texteingabefeld enthät, das als Bezeichnung "name" besitzt, parsen die Daten (Umwandlung der Sonderzeichen) und geben die Daten an die Variable  $eingabe  weiter. Zeile 9 teilt den Browser mit "Achtung es kommt ein HTML Dokument" und gibt eine Überschift aus. In Zeile 11 prüfen wir, ob Daten übergeben wurden, wenn ja geben wir diese in Zeile 12 aus. Wurden keine Daten gesendet, erzeugen wir in den Zeilen 15 bis 17 ein Formular mit einem Texteingabefeld, und harren der Dinge die da kommen.
Wird das Programm ohne Daten aufgerufen erhalten wir folgende HTML Ausgabe:


      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
      <HTML>
      <HEAD>
      <TITLE>Hallo Benutzer</TITLE>
      </HEAD>
      <BODY>
      <H1>Hallo Benutzer</H1>
      <HR>
      <FORM METHOD="POST"  ENCTYPE="application/x-www-form-urlencoded">
      <P>
      Bitte geben Sie ihren Namen ein:  <INPUT TYPE="text" NAME="name" >
      </P>
      </FORM>
      <HR>
      </BODY>
      </HTML>
  
    

Perl gibt das Ganze nahezu ohne Zeilenvorschübe aus, zur beseren Übersicht wurden hier welche eingefügt.
Wird jetzt "Thomas" in das Formular eingegeben und die Return Taste gerückt, gibt das Perl Programm folgendes zurück:


      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
      <HTML>
      <HEAD>
      <TITLE>Hallo Benutzer</TITLE>
      </HEAD>
      <BODY>
      <H1>Hallo Benutzer</H1>
      <P>Hallo: Thomas</P>
      </BODY>
      </HTML>
  
    

Literaturhinweise:

Zurück zum Anfang dieses Projekts.