Hi,

 

This might be a little off topic, I hope it's OK to post. I'm not positive
if mod_perl matters or not because it's a little confusing to me.

 

I've taken over some pretty old code that I'm updating and making mp2
content handlers out of. The main script is a standard cgi script
"start.cgi" there is nothing special in the apache conf for it.

 

        <Directory /xxx/>

        SetHandler perl-script

        PerlFixupHandler My::Fixup

        PerlResponseHandler ModPerl::PerlRun

        PerlOptions +ParseHeaders

        DirectoryIndex start.cgi

        Options +ExecCGI +Indexes

        allow from all

        </Directory>

 

start.cgi calls a custom module (use CustomModule;) which exports a bunch of
subs, for example foobar and all over the place in the subs that are
exported from CustomModule I see code like

 

 

sub foobar {

            my $key = @_;

            

            if ($cache{$key}) {

                        return $cache{$key};

            } else {

                        my $do_some_query = xxxx;

                        $cache{$key} = $do_some_query_results

                        return $cache{$key};

            }

}

 

My question is isn't the "else" in foobar always going to be true anyplace
where start.cgi is calling "&foobar('somekey')"??????

I don't understand how %cache could already be populate from a previous
browser request or something? I'm I just missing something stupid?

 

FYI this was all running before on a version of Debian with old apache and
old mod_perl (early 1.99 and 2.0.x). I've updated mod_perl to 2.0.2 and
apache to 2.2 and everything still works.

 

TIA!!

-Chris

 

 

 

 

 

 

 

Reply via email to