On Sat, 2005-08-20 at 08:28 -0400, Christopher H. Laco wrote: > Huh? Now I'm really confused. MyMod2 calls MyMod1::dosomething alters > it's own @context (it should've been push @context, 'foo')... > > MyMod2 calls MyMod1::pushcontext('anotherfoo') to also alter MyMod1s > @context.
I've lost track of your example. If you want feedback on specific code, please post a working example and I'll look at it. > Why would each modules @context persist since they're declare > as my and their our of closure? That's what closures do. Here's a classic example: my $cgi = CGI->new(); my $color = $cgi->param('color'); sub print_color { print $color; } This sub will always print whatever $color was the first time the script was run. It is a closure, and keeps a private copy of $color. > Even if they did, that's a moot point as I can resent them during every > page request (via AxKits start_document function). You can't unless you create another closure with access to the same variable. These are not globals -- setting $color here later will not change the $color that print_color() is looking at. > What I'm more worried about is that I just want those MyMod1 and MyMod2 > @context changes to be effecting the current request only, not other > requests in other apache child processes. It's impossible for them to affect other child processes. Processes are totally separated from each other and run their own perl interpreters. - Perrin