Allgemeines

CGI Programme können im Prinzip in jeder Programmiersprache geschrieben werden, die in der Lage ist, Eingaben zu akzeptieren und weiterzuverarbeiten und Ergebnisse nach StandardOut auszugeben. Was spricht für Perl?

  • Der Perl-Interpreter ist auf dem CGI-Server installiert.
  • Perl ist sehr weit verbreitet - Sie finden im Netz viele Beispiele
  • Perl ist plattformunabhängig.
  • Für Perl gibt es fertige Module und Bibliotheken, die speziell für CGI Anwendungen geschrieben sind und dem Programmierer das Leben deutlich erleichtern.

Nützliche Perl-Links:

Da jede Einführung im EDV-Umfeld mit einem "Hello World"-Beispiel beginnt, darf dieses Beispiel auch hier nicht fehlen. Am "Hello World"-Beispiel wird der prinzipielle Aufbau eines Perl-CGI-Skriptes erläutert. Nachfolgend der Quelltext:

  1. #!/usr/bin/perl
  2. # Beispiel: Hello World
  3.  
  4. use CGI qw/:standard/;
  5. use CGI::Carp qw/fatalsToBrowser/;
  6. $CGI::DISABLE_UPLOADS = 1;         # disable uploads
  7. $CGI::POST_MAX=1024*500;           # max 0.5 MB
  8.  
  9. print "Content-type: text/html\n\n";
  10. print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
  11. print "<html>\n";
  12. print "<head><title>Hello</title></head>\n";
  13. print "<body bgcolor=\"blue\">\n";
  14. print "<hr><center>\n";
  15. print "<h1>Hello World!</h1>\n";
  16. print "</center><hr>\n";
  17. print "</body></html>\n";
TestIt

Erläuterungen dazu:

1. Zeile Angabe des Interpreters /usr/bin/perl
2. Zeile Kommentar
4. - 7. Zeile CGI.pm und Carp.pm (liegt in einem Unterverzeichnis von "CGI") laden. Diese Zeilen sind nicht notwendig, aber sehr nützlich. Mehr dazu im Kapitel CGI.pm
9. Zeile HTTP Header (incl. Leerzeile) ausgeben. Die Leerzeile ist notwendig.
ab Zeile 10HTML-Anweisungen ausgeben.

Auf dem CGI-Server sind die CGI-Bibliotheken in Perl integriert. Information dazu:

  • CGI : Simple Common Gateway Interface Class
  • CGI.pm : CGI.pm - a Perl5 CGI Library
  • CGI::Carp : CGI routines for writing to the HTTPD (or other) error log
  • CGI::Cookie : Interface to Netscape Cookies
  • CGI::Fast : CGI Interface for Fast CGI
  • CGI::Push : Simple Interface to Server Push

Weiterhin sind verfügbar:

  • DBI.pm : Database independent interface for Perl
  • GD.pm : Interface to Gd Graphics Library

Bevor Sie Sie Ihr erstes CGI-Script schreiben, sollten Sie zunächst die Informationen zur Nutzung des CGI-Servers durchlesen.