http://www.perlmonks.org?node_id=655678

olus has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks,

I'm trying to read a variable, that was set on the apache2 conf with PerSetVar, on a PerlPostReadRequestHandler, but so far all my tries failed.
I do see the variable when accessing it from the requested page.

A snipet of the post read request handler code:
... sub handler { my $r = shift; my $var = $r->dir_config('var'); $ENV{'VAR'} = $var; $ENV{'AM_I_SET'} = 'Yes'; return Apache2::Const::OK; }
When printing the %ENV I see AM_I_SET as 'Yes' but VAR is undef.

On the requested page I have:
my $r = shift; # template initialization not shown my $var = $r->dir_config('var'); $vars{'message'} = "Var is: $var"; $vars{'message'} .= '<br />'.Dumper(\%ENV); $template->process("hello.html", \%vars) || die $template->error();
The resulting web page will correctly display the value of 'var' and undef on %ENV.

I've been browsing the mod_perl2 docs, the Practical mod_perl book and searching the monastery and the web, but still haven't found the solution.

So, is it possible to access variables set with PerlSetVar from within the early handlers (those other than the final script)? How? What am I not doing?

--
olus