Perl CGI (CGI.pm)

Die CGI.pm Perl-Bibliothek stellt Funktionen bzw. Methoden zur Verfügung, die den Bereich CGI-Programmierung, Formularerzeugung und -auswertung und HTML-Quellcode-Erzeugung abdecken.

Die Programmierung mit CGI.pm kann objektorientiert oder funktionenorientiert erfolgen.

  • Im objektorientierten Stil wird CGI.pm mit
    use CGI;
    eingebunden. Sie erzeugen ein oder mehrere CGI-Objekte und erstellen Ihre Webseite mit vordefinierten Objektmethoden (z.B start_html). Die CGI-Objekte beinhalten die gesamten Funktionen des Moduls als Methoden.

    "hello world"-Beispiel 1:

    #!/usr/bin/perl
    use CGI;                                    # load CGI module
    $q = new CGI;                               # create new CGI 
                                                #            object
    print $q->header(-type=>'text/html'),       # HTTP header
          $q->start_html(-title=>'hello world', # start the HTML
                         -bgcolor=>'blue'),  
          $q->h1('hello world'),                # level 1 header
          $q->end_html;                         # end the HTML
    

  • Im funktionenorientierten Stil müssen die einzelnen Funktionen mit der use-Anweisung in den Namensraum Ihres Skriptes importiert werden. Die Liste der importierbaren Funktionsgruppen finden Sie im Manual (Literaturangaben s.u.).

    "hello world"-Beispiel 2:

    #!/usr/bin/perl
    use CGI qw/:standard/;             # load standard CGI functions
                                     
    print header(-type=>'text/html'),       # create the HTTP header
          start_html(-title=>'hello world', # start the HTML
                     -bgcolor=>'blue'),      
          h1('hello world'),                # level 1 header
          end_html;                         # end the HTML
    

  • Das obige Beispiel ist auch ohne CGI.pm möglich. Der HTML-Code kann direkt mit der print-Anweisungen ausgegeben werden:

    "hello world"-Beispiel 3:

    #!/usr/bin/perl 
    
    print "Content-type: text/html\n\n";    # create the HTTP header
    print "<HTML>\n";                           # start the HTML  
    print "<HEAD><TITLE>hello world</TITLE>\n";
    print "</HEAD>\n";
    print "<BODY -bgcolor=\"blue\">\n";
    print "<H1>hello world</H1>\n";             # level 1 header
    print "</BODY>\n";
    print "</HTML>\n";                          # end the HTML  
    

    oder "hello world"-Beispiel 4:

     
    #!/usr/bin/perl 
    print << "EndeMarke"
    Content-type: text/html\n\n
    <HTML>                        
    <HEAD><TITLE>hello world</TITLE>
    </HEAD>
    <BODY -bgcolor="blue">
        <H1>hello world</H1>         
    </BODY>
    </HTML>
    
    EndeMarke
    

Auf die Syntax der einzelnen Funktionen zur Erzeugung von HTML-Code (wie z.B. header, start_html, end_html, ...) soll in dieser Einführung nicht eingegangen werden. Ich verweise dazu auf die weiter unten angegebenen Manuals.

Themen dieses Tutorials sind:

Literatur: