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.

Regards,
Charlie

Reply via email to