$r-dir_info and BEGIN {}?

2000-12-28 Thread Rafael Kitover

We obviously do not have access to a request object during a BEGIN {}
block, but if I have a bunch of PerlSetVar things that I don't want to
re-initialize every time handler() is called for speed reasons, what is
the most elegant way to have an initialization sub that needs access to
things set in PerlSetVar? Just something like:

my $is_initialized = 0;

sub handler($) {
...
unless ($is_initialized) {
initialize($r);
$is_initialized = 1;
}
...
}

sub initialize($) {
...
do stuff with $r-dir_info("thingie")
...
}

The problem with this is that initialize would be called for every
child, though this is better than initializing stuff at every request.

TIA

-- 
Do what thou wilt shall be the whole of the Law.
Love is the law, love under will.

 PGP signature


Re: $r-dir_info and BEGIN {}?

2000-12-28 Thread Jim

How about:

package ModPerlPackage;

use vars qw( $is_init );
$is_init = 0;

sub handler($) {
...
$is_init = initialize($r) unless $is_init;
...
}

Just making initialize return a true value on success.

There's undoubtedly a much more subtle solution...

HTH

Jim



Rafael Kitover wrote:
 
 We obviously do not have access to a request object during a BEGIN {}
 block, but if I have a bunch of PerlSetVar things that I don't want to
 re-initialize every time handler() is called for speed reasons, what is
 the most elegant way to have an initialization sub that needs access to
 things set in PerlSetVar? Just something like:
 
 my $is_initialized = 0;
 
 sub handler($) {
 ...
 unless ($is_initialized) {
 initialize($r);
 $is_initialized = 1;
 }
 ...
 }
 
 sub initialize($) {
 ...
 do stuff with $r-dir_info("thingie")
 ...
 }
 
 The problem with this is that initialize would be called for every
 child, though this is better than initializing stuff at every request.
 
 TIA
 
 --
 Do what thou wilt shall be the whole of the Law.
 Love is the law, love under will.
 
   
Part 1.2Type: application/pgp-signature