By Alvin Alexander. Last updated: June 4, 2016
Here's a sample Perl CGI program I wrote that prints out all of the environment variables it knows. I've found this program to be very useful when first installing a web server, or when debugging a problem with a web server or new environment.
Perl CGI environment variables - example program
Here's the code:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<BODY BGCOLOR=black>\n";
print "<FONT COLOR=white><P>";
print "<tt>\n";
foreach $key (sort keys(%ENV)) {
      print "$key = $ENV{$key}<BR>\n";
}
print "</FONT></BODY>"; 
Perl environment variables - example output
And here's some sample output from the program from an Apache web server:
DOCUMENT_ROOT = /home/apache/htdocs GATEWAY_INTERFACE = CGI/1.1 HTTP_ACCEPT = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg */* HTTP_ACCEPT_ENCODING = gzip, deflate HTTP_ACCEPT_LANGUAGE = en-us HTTP_CONNECTION = Keep-Alive HTTP_COOKIE = he=llo; in=vue HTTP_HOST = www.devdaily.com HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705) PATH = /bin:/sbin:/usr/bin QUERY_STRING = REMOTE_ADDR = 123.45.67.891 REMOTE_PORT = 2000 REQUEST_METHOD = GET REQUEST_URI = /cgi-bin/printenv.cgi SCRIPT_FILENAME = //home/apache/cgi-bin/printenv.cgi SCRIPT_NAME = /cgi-bin/printenv.cgi SERVER_ADDR = 123.54.32.1111 SERVER_ADMIN = webmaster@devdaily.com SERVER_NAME = www.devdaily.com SERVER_PORT = 80 SERVER_PROTOCOL = HTTP/1.1 SERVER_SIGNATURE = Apache/1.1.1 Server at www.devdaily.com Port 80 SERVER_SOFTWARE = Apache/1.1.1 (Unix) mod_jk










