I'm completely stumped here, so I figured I'd ask to see if there's something I've missed in my reading.
I have a script running under apache2(2.0.47), mod_perl (1.99_09), Registry. It uses a small class to handle certain parts of the application for me, and I'm depending on the DESTROY function of the class to do certain cleanup after the script completes. so the script has something like: use app::utility_class; my $var = new app::utility_class; .... do stuff... and the instance cleans up when it goes out of scope as the script exits. This works, *except* for the very first run in a particular child, in which case the instance does not appear to be cleaned up at all (the DESTROY function is never called). Tested with just one to confirm that's what was happening - it fails the first time after a restart, but works on all subsequent runs. If I explicitly undef it, the cleanup works every time. Eg: use app::utility_class; my $var = new app::utility_class; .... do stuff... undef $var; If I wrap the script in a block, it also works. Eg: use app::utility_class; { my $var = new app::utility_class; .... do stuff... } Is there any way to work out what, if anything, is holding onto the reference to the app:utility_class instance? (It's not a circular reference as far as I can tell - if I reduce the class to just an empty blessed instance the same thing happens). Have I missed something obvious? Thanks. -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html