http://www.perlmonks.org?node_id=415861


in reply to enviroment variables do not work when cgi saved as image/png

If this works from the command line, but not as a CGI, and the issue is missing environment variables, I would first check your web server. You have to take special measures (i.e., configuration) to have a web server set environment variables that a CGI sees. The simple place to start is to write a CGI script -- not even necessarily Perl -- that shows what your environment is when the CGI is invoked. Apache comes with this printenv CGI script (written in Perl of course!):

#!/usr/local/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; }