On Tue, 27 Jul 2004 11:58:51 -0400, Bob Showalter wrote
> 
> It's really not a Perl issue per se. I assume you're talking about variables
> used by Oracle libraries, like ORACLE_HOME and ORACLE_SID.
> 
> I advise you to *not* attempt to set or monkey with these variables inside
> the Perl script. The whole point of environment variables is so the 
> user can establish his environment *before* invoking your script.

I agree with this in general, but sometimes the environment in which your Perl
runs cannot define these variables for you.  For instance, Interwoven TeamSite
Data Capture Template inline callout invocations clear all environment
variables before forking your process (the vendor claims this is for security
reasons).  For Oracle you must set ORACLE_HOME, etc, and for SQL Server you
have to define SYSTEMROOT or something like that or ODBC or whatever doesn't
work.  If coded, this logic of course belongs in a module.  

I also sometimes use environment variables to hold global configurables when
it is not feasible to pass these values to the subroutines that need them. 
It's faster for the subroutine to use an environment variable than to do a
lookup into a flat file to get some configuration info.  If I put this in the
environment before forking the process the space would be cluttered.  If
there's a better way to cache global confgiurables or other feedback on these
subjects I am all ears - I don't like using the environment, let alone setting
values that should be set elsewhere.

Thanks,

   -John


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to