Re: localized lexical varibles
[prev]
[thread]
[next]
[Date index for 2005/03/15]
Vladimir D Belousov wrote:
> Tom Schindl wrote:
>
>> Vladimir D Belousov wrote:
>> You are creating a closure here for $s here. There enough material out
>> there go and read about closures(See Apache::Registry).
>> Why do you embed a sub into a sub?
>
>
> I hope this sub will be mmm... "localized subroutine" and all varibles
> in one will be reinitialized :)
> I now - it's nonsense :)
The variables would get reinitialized if you passed them in as
arguments. The link that I sent you explains that once the Call sub is
compiled it creates a closure around the $r and $s variables so that
even if they are changed in other places, that closure will make sure
that Call never sees those changes.
> By the way, any compilation time errors are found out only at the
> request to the Apache.
> But how such code Apache loads? I mean if a code has sintax errors, for
> example.
> Or Apache loads code only with first client request?
If you preload your modules in a startup.pl or by a PerlLoadModule
directive then apache will not start if there are syntax errors. If you
don't do that however, you'll have to wait until the first time apache
compiles the module, which is normally at request time.
A good idea is to preload all of your modules and then use
Apache::Reload inside of the modules you are still developing.
HTH
--
Michael Peters
Developer
Plus Three, LP