Misplaced Pages

CGI.pm

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Perl module for web applications
This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "CGI.pm" – news · newspapers · books · scholar · JSTOR (September 2011) (Learn how and when to remove this message)
This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.
Find sources: "CGI.pm" – news · newspapers · books · scholar · JSTOR (April 2024)
CGI.pm
Original author(s)Lincoln Stein
Developer(s)Lee Johnson
Stable release4.21 / 2015-06-22
PlatformPerl
TypePerl module for CGI
Websitemetacpan.org/release/CGI

CGI.pm is a large and once widely used Perl module for programming Common Gateway Interface (CGI) web applications, providing a consistent API for receiving and processing user input. There are also functions for producing HTML or XHTML output, but these are now unmaintained and are to be avoided. CGI.pm was a core Perl module but has been removed as of v5.22 of Perl. The module was written by Lincoln Stein and is now maintained by Lee Johnson.

Examples

Here is a simple CGI page, written in Perl using CGI.pm (in object-oriented style):

#!/usr/bin/env perl
use strict;
use warnings;
use CGI;
my $cgi = CGI->new;
print $cgi->header('text/html');
print << "EndOfHTML";
<!DOCTYPE html>
<html>
    <head>
        <title>A Simple CGI Page</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <h1>A Simple CGI Page</h1>
        <form method="post" enctype="multipart/form-data">
            Name: <input type="text" name="name"  /><br />
            Age: <input type="text" name="age"  /><p>
            <input type="submit" name="Submit!" value="Submit!" />
        </form>
        <hr />
EndOfHTML
if ( my $name = $cgi->param('name') ) {
    print "Your name is $name.<br />";
}
if ( my $age = $cgi->param('age') ) {
    print "You are $age years old.";
}
print '</body></html>';

This would print a very simple webform, asking for your name and age, and after having been submitted, redisplaying the form with the name and age displayed below it. This sample makes use of CGI.pm's object-oriented abilities; it can also be done by calling functions directly, without the $cgi->, however the necessary functions must be imported into the namespace of the script that requires access to those functions:

#!perl
use strict;
use warnings;
use CGI qw/ :standard /;
print header('text/html');
# ... HTML output same as above example
if ( my $name = param('name') ) {
    print "Your name is $name.<br />";
}
if ( my $age = param('age') ) {
    print "You are $age years old.";
}
print '</body></html>';

Note: in many examples $q, short for query, is used to store a CGI object.

See also

References

  1. ^ "CGI - Handle Common Gateway Interface requests and responses - metacpan.org". metacpan.org.

External links


Stub icon

This Unix-related article is a stub. You can help Misplaced Pages by expanding it.

Categories: