This is probably the same global destruction problem I
described at Re (tilly) 1: Tie & Destroy, OOP. In that thread I suggested a
general solution which you can find at Class::FlyweightWrapper which
(with considerable overhead) allows you to get around the
issue in a different way (albeit with considerable
overhead).