Do the PerlSetEnv as you are, and use this module to ensure it is visible from your pgplot lib env.
http://search.cpan.org/dist/Env-C/C.pm From: ckatz...@gmail.com [mailto:ckatz...@gmail.com] On Behalf Of Charlie Katz Sent: March-26-12 2:26 PM To: rand...@modperl.pl Cc: modperl@perl.apache.org Subject: Re: difference between PerlSetEnv and <Perl>$ENV{}=</Perl> ? I have also tried using SetEnv from mod_env, and neither the Perl nor the PGPLOT library can see the environment variable set that way. On Mon, Mar 26, 2012 at 2:54 PM, Randolf Richardson <rand...@modperl.pl<mailto:rand...@modperl.pl>> wrote: > Hi, > > My web app uses the PGPLOT module to access PGPLOT, which is a scientific > plotting library commonly used in my field. It is a Fortran library, with > a C wrapper around it, which is then wrapped in Perl. This works fine in > my test scripts, producing the desired graphics. > > The library requires that the environment variable PGPLOT_DIR be set so it > can find some required files. Running from the command line, I just set > this in the shell, and PGPLOT works fine. Running in Apache, I see > different behavior: > > When I set this in httpd.conf: > PerlSetEnv PGPLOT_DIR /my/pgplot/directory > my Perl programs can see the value in $ENV{PGPLOT_DIR}, but the PGPLOT > library can't, and my code fails. > > When I set this in httpd.conf: > <Perl> > $ENV{PGPLOT_DIR} = q[/my/pgplot/directory]; > </Perl> > my Perl programs can't see the value in $ENV, but the PGPLOT library can, > and my code works. > > > Can someone help me understand what the difference is between these two > cases? > > Is the situation muddled because the PGPLOT library is a > Perl-wrapped-C-wrapped-Fortran library? I'm not sure how the environment > passing is supposed to work. Try this module: http://httpd.apache.org/docs/current/mod/mod_env.html Randolf Richardson - rand...@inter-corporate.com<mailto:rand...@inter-corporate.com> Inter-Corporate Computer & Network Services, Inc. Beautiful British Columbia, Canada http://www.inter-corporate.com/