perlsetenv_workaround

This is part of The Pile, a partial archive of some open source mailing lists and newsgroups.



Subject: Re: Why isn't PerlSetEnv working for me?
From: Chris Winters <cwinters@intes.net>
Date: Tue, 26 Sep 2000 18:48:51 -0400

Keith G. Murphy (keithmur@mindspring.com) [000926 18:43]:
> I'm running Apache 1.3.9 with mod_perl embedded, on Debian GNU/Linux.
> 
> I have the following lines towards the end of my httpd.conf:
> 
> PerlSetEnv PERL5LIB /usr/local/MyPerl/lib
> PerlRequire startup.pl
> Include perllocs.conf
> 
> However, upon system startup, my startup.pl fails because it can't find
> a particular module in the @INC list.
> 
> If I start Apache from the command line, it works.  This is undoubtedly
> because PERL5LIB is set up in my /etc/profile, to the same path.
> 
> I've looked at this until I'm crosseyed.  Seemingly PerlSetEnv just
> doesn't work.
> 
> Any ideas?  Yes, I know the workaround: 'use lib' in startup.pl.  But
> why?

There's another workaround:

in httpd.conf:

<Perl> 
  use lib qw( /usr/local/MyPerl/lib ); 
</Perl>

Pretty painless :)

===

Subject: RE: Why isn't PerlSetEnv working for me?
From: "Christian Gilmore" <Christian_Gilmore@tivoli.com>
Date: Tue, 26 Sep 2000 18:00:15 -0500

If you have a startup.pl, why not just

  use lib qw(/usr/local/MyPerl/lib);

within the startup.pl script?

===

Subject: Re: Why isn't PerlSetEnv working for me?
From: Stas Bekman <stas@stason.org>
Date: Wed, 27 Sep 2000 01:40:10 +0200 (CEST)

http://thingy.kcilink.com/modperlguide/config/PerlSetVar_PerlSetEnv_and_PerlP.html

Regarding the setting of PerlPassEnv PERL5LIB in httpd.conf: if you turn
on taint checks (PerlTaintCheck On), $ENV{PERL5LIB} will be ignored
(unset). See the 'Switches -w, -T' section.

===


Subject: Re: Why isn't PerlSetEnv working for me?
From: "Keith G. Murphy" <keithmur@mindspring.com>
Date: Wed, 27 Sep 2000 12:10:03 -0500

Stas Bekman wrote:
> 
> http://thingy.kcilink.com/modperlguide/config/PerlSetVar_PerlSetEnv_and_PerlP.html

Yes, I have looked at that.
> 
> Regarding the setting of PerlPassEnv PERL5LIB in httpd.conf: if you turn
> on taint checks (PerlTaintCheck On), $ENV{PERL5LIB} will be ignored
> (unset). See the 'Switches -w, -T' section.
> 
I can explicitly set it *off*:

PerlTaintCheck Off

and still get the same behavior.

Upon further investigation, what I am seeing is that PERL5LIB gets
passed into %ENV just fine.  It's just not being used to locate modules;
it is not in @INC.  Could the part of Perl that pushes the PERL5LIB
setting to @INC have already executed prior to my PerlSetEnv statement?

If so, that would certainly limit the usefulness of PerlSetEnv for that
purpose.  Maybe some note should be made in the docs.  Or can someone
confirm that it works for them?

===

the rest of The Pile (a partial mailing list archive)

doom@kzsu.stanford.edu