Most of the information needed by CGI programs is made available
via Unix environment variables. Programs can access this information
as they would any environment variable (via the %ENV
hash in Perl).
The table below lists environment variables commonly available
through CGI. However, since servers occasionally vary on
the names of environment variables they assign, check with your
own server documentation for more information.
Here's a simple Perl CGI script that uses environment variables to display various information about the server:
The preceding program outputs five environments as an HTML document. In Perl, you can access the environment variables with the#!/usr/local/bin/perl print << EOF Content-type: text/html <HTML> <HEAD><TITLE>About this Server</TITLE></HEAD> <BODY><H1>About this Server</H1> <HR><PRE> Server Name: $ENV{'SERVER_NAME'}<BR> Running on Port: $ENV{'SERVER_PORT'}<BR> Server Software: $ENV{'SERVER_SOFTWARE'}<BR> Server Protocol: $ENV{'SERVER_PROTOCOL'}<BR> CGI Revision: $ENV{'GATEWAY_INTERFACE'}<BR> <HR></PRE> </BODY></HTML>
%ENV
hash.
Here's typical output of the program:
<HTML> <HEAD><TITLE>About this Server</TITLE></HEAD> <BODY><H1>About this Server</H1> <HR><PRE> Server Name: www.whatever.com Running on Port: 80 Server Software: NCSA/1.4.2 Server Protocol: HTTP/1.0 CGI Revision: CGI/1.1 <HR></PRE> </BODY></HTML>