in reply to %ENV in a .pm versus .cgi ?

Thanks for the great ideas, all!

So after following many a rabbit trail, it turns out the reason %ENV was different was that the cgi script was being called by a PHP exec() command! There was apparently some PHP setup on the old server that allowed the exec() to pass the environment onto the CGI script, but since I compiled everything from source on the new box, that setup was no longer available. (It worked on the old server, but probably wasn't all that secure)

If anyone gives half a **** about PHP (which I'm not sure I do), the solution was to pass the needed ENV variables in the exec command before the cgi script:

<?php exec(DOCUMENT_ROOT=/whatever SERVER_NAME=host.com session.cgi, $output); ?>

Now that's done, I'm back to Perl like any respectable coder ;)