my $app = Foo::App->new();
Looking at that, I'm already wondering
- Why "use Foo" and not "use Foo::App"?
- Why would there be anything else in main?
I'm still not seeing anything in your proposed design that offers anything that's not implementable in a proper design as suggested by others in this thread.
Maybe what you really have is an example of a specific derived class that inherits these common functions from a base class.
Or maybe something else entirely.
But I'd be very confused if I had "package My::Package" and then found that there were other subroutines that poofed into my namespace when I hadn't specifically imported them. Argh!
-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.