What would the chapter be without a program that displays
some of the commonly used environment variables? Here it is:
#!/usr/local/bin/perl
%list = ('SERVER_SOFTWARE', 'The server software is: ',
'SERVER_NAME', 'The server hostname, DNS alias, or IP address is: ',
'GATEWAY_INTERFACE', 'The CGI specification revision is: ',
'SERVER_PROTOCOL', 'The name and revision of info protocol is: ',
'SERVER_PORT', 'The port number for the server is: ',
'REQUEST_METHOD', 'The info request method is: ',
'PATH_INFO', 'The extra path info is: ',
'PATH_TRANSLATED', 'The translated PATH_INFO is: ',
'DOCUMENT_ROOT', 'The server document root directory is: ',
'SCRIPT_NAME', 'The script name is: ',
'QUERY_STRING', 'The query string is (FORM GET): ',
'REMOTE_HOST', 'The hostname making the request is: ',
'REMOTE_ADDR', 'The IP address of the remote host is: ',
'AUTH_TYPE', 'The authentication method is: ',
'REMOTE_USER', 'The authenticated user is: ',
'REMOTE_IDENT', 'The remote user is (RFC 931): ',
'CONTENT_TYPE', 'The content type of the data is (POST, PUT): ',
'CONTENT_LENGTH', 'The length of the content is: ',
'HTTP_ACCEPT', 'The MIME types that the client will accept are: ',
'HTTP_USER_AGENT', 'The browser of the client is: ',
'HTTP_REFERER', 'The URL of the referer is: ');
print "Content-type: text/html","\n\n";
print "<HTML>", "\n";
print "<HEAD><TITLE>List of Environment Variables</TITLE></HEAD>", "\n";
print "<BODY>", "\n";
print "<H1>", "CGI Environment Variables", "</H1>", "<HR>", "\n";
while ( ($env_var, $info) = each %list ) {
print $info, "<B>", $ENV{$env_var}, "</B>", "<BR>","\n";
}
print "<HR>", "\n";
print "</BODY>", "</HTML>", "\n";
exit (0);
The associative array contains each environment variable and
its description. The while loop iterates through
the array one variable at a time with the each
command. Figure 2.3 shows what the output will look in a browser
window.