Erläuterungen zu den Perl-Skripten

Die Tabelle mit den einzelnen Beispielen:

Script-Sprache Link zum Testen Link für die Ausgabe des Quellcodes
C-Shell beispiel_1.csh beispiel_1.csh
Perl, CGI-Modul beispiel_1.pl beispiel_1.pl
Perl, cgi-lib.pl beispiel_2.pl beispiel_2.pl
PHP beispiel_1.php beispiel_1.php

Quelltext beispiel_1.pl Quelltext beispiel_2.pl

Perl Skript, CGI Modul

CGI-Module der Perl-Library werden mit use eingebunden, z.B.

use CGI qw/:standard -private_tempfiles/;
use CGI::Carp qw(fatalsToBrowser); 

Durch die erste use-Anweisung steht eine Routine param zur Verfügung, die die Decodierung der Formularinformation realisiert und damit dem CGI-Programmierer das Leben erleichtert. Die Zuweisung erfolgt in unserem Beispiel durch

$Vorname = param('Vorname'); 
$Nachname = param('Nachname');
$Submit = param('Submit');

Auch hier ist die Wahl der Perl-Variablennamen $Vorname usw. völlig beliebig. Vorgegeben ist allerdings der param-Parameter: 'Vorname' korrespondiert mit dem entsprechenden FORM-Parameter.

Die HTML-Ausgabe kann mit dem Perl Kommando print erfolgen. Auch in Perl sollten Sie die Möglichkeit der Eingabeumlenkung nutzen, z.B.

print <<"HTML_SEITE3";
Content-type: text/html 

   <html>
   <head><title>Fehlermeldung</title></head> 
   <body bgcolor="#ffaaaa">
   Ihre Eingabe ist zu lang! 
   <p> 
   <a href="$ENV{'HTTP_REFERER'}">Try it again</a>
   </body>
   </html>
 
HTML_SEITE3 

Die Environmentvariablen des CGI-Servers sind entsprechend der Perl-Syntax im Hash $ENV abgelegt (z.B. $ENV{'REQUEST_METHOD'}, $ENV{'CONTENT_LENGTH'}, $ENV{'SCRIPT_NAME'} ).

Perl Script, cgi-lib.pl

Die Datei cgi-lib.pl enthält die Routine ReadParse, die die Dekodierungsarbeit bei der Auswertung der Formularinformation übernimmt. cgi-lib.pl wird mit

require('/usr/local/lib/cgi-lib.pl');

in das eigene Perl-Programm eingebunden.

Die Zuweisung der Inahlte der FORM-Parameter zu Perl-Variablen erfolgt in unserem Beispiel durch

&ReadParse(*formvariablen);
$Vorname = $formvariablen{'Vorname'}; 
$Nachname = $formvariablen{'Nachname'};
$Submit = $formvariablen{'Submit'};

Ansonsten gelten alle Berkungen wie zum C-Shell-Skript-Beispiel.