in reply to a few questions about __PACKAGE__

I'm assuming that __PACKAGE__ is not defined until a script loads the module,
That's not your problem. The problem is that $INC{"Module.pm"} only gets set after successful complication, and you haven't finished compiling yet.