I've been banging my head on the table with Apache::Session::MySQL today. Consider:

eval { ( my %session, $ok ); $ok = tie( %session, 'Apache::Session::MySQL', undef, ... ); if ( $ok ) { ... do something with %session ... } untie %session; }
This doesn't work from mod_perl, because the untie throws an exception:
untie attempted while 1 inner references still exist at line 250.
Since I don't use any explicit references to %session, this caught me by surprise. Can you see the bug?