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