Jeremy Nixon am Dienstag, 15. November 2005 08.06:
> Peter1 Alvin <[EMAIL PROTECTED]> wrote:
> > Please tell me I can do this!
> >
> > Using mod_perl, how do you keep Perl objects in RAM from page to page?
[...]
> As an example, I have a handler that needs to read a directory listing.
> Most of the time it will be looking at the same directory over and over,
> so I decide that it's okay to have to restart the server if the listing
> will change (the listing won't change much) and do something like:
>
> { # start a lexical scope
> my %d_cache;
> sub handler {
> # stuff
> if (not defined($d_cache{$foo})) {
> # pull in directory listing and store it in $d_cache{$foo}
> }
> # proceed to use $d_cache{$foo} information
> }
> } end lexical scope
>
> This way, a directory is only actually read once (at most) per server
> child process.
Hi Jeremy
Hope it's not a stupid question, but are you sure %d_cache survives a request?
Maybe I'm totally misunderstanding something but I thought after the point
} end lexical scope
%d_cache gets destroyed (if not still referenced from somewhere else).
I would have left out the scope-{} to keep %d_cache at file level.
Would that be wrong? And why?
I'd appreciate every hint.
joe