If the issue really is a difference between my() and our(), then the only thing I can think of is to check your Apache logs for when the server is first starting up and look for warning messages that look like "variable %cache will not stay shared at...." (you are using
warnings, right?) This is something you should not normally see in a handler module, unless for some bizarre reason this module were being processed by
Apache::Registry. I confess to not being a mod_perl expert, but I don't see how that could actually happen. Nonetheless, I would check your Apache configuration files to make sure this is not the case, and also check to make sure that you're not
useing or
requireing this My::Apache::UserCache module from within a subroutine in some other module.