in reply to General module question

If your modules are descended from your base class, you can call those methods without specifying their namespace at all:
package Foo::Bar; sub s1 {} sub s2 {} ... package Foo::Bar::Subclass1; use base Foo::Bar; s1(); ... package Foo::Bar::Subclass2; use base Foo::Bar; s1(); s2();
Just make sure s1() and s2() aren't shifting $self (or whatever you call it) off of @_ first, and they'll act like built in functions. That may be closer to the behavior you're looking for anyway, since they don't really 'belong to' any of the packages, but are used by them all.

--

Love justice; desire mercy.