in reply to global destruction and Moose

You code works fine here with Moose 0.80:

Name "Moose::Object::DEMOLISH" used only once: possible typo at /usr/s +hare/perl5/Moose/Object.pm line 82. done

Can you upgrade to a newer Moose? Yours is about 6 months old and current Moose is version 0.82.