$r-dir_info and BEGIN {}?
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 {}?
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