It looks like you're looking for inheritance. In My::Module do:
our @ISA = qw(My::Module::This My::Module::That);
Without knowing the details of what you're doing, I strongly recommend that you learn about the benefits of modularity. Which does not mean labeling chunks of stuff "modules". But instead means dividing your program into pieces that do different things, then making the interfaces between those pieces be small and clear. Which means that you're then able to make large changes to individual pieces.
I say this because writing down all of the functions that do one thing in one place, then freely using them everywhere else exports a large interface. This is bad for modularity, and is why Exporter advises you not to do that. To see just one of the practical problems that result, pity the poor maintenance programmer who wants to see how a commonly used function is implemented. The programmer knows that that function can be called in a particular package, but if that package has tons of imported functions from elsewhere, then tracking down the original function can be a real PITA.
This same issue is why many good programmers think that inheritance is overused and it is better to use other techniques, like composition, instead. | [reply] [d/l] |
You actual request makes no sense. There's no way to know whether My::Module->method() should call My::Module::This->method(), My::Module::That->method() or My::Module::DoesNotExistYet->method().
Either your inheritance is backwards, or you are trying to split a package across multiple files. There'sPerl has no problem doing that.
My/Module.pm:
package My::Module;
use My::Module::some_methods;
use My::Module::other_methods;
...
My/Module/some_methods.pm:
package My::Module;
...
My/Module/other_methods.pm:
package My::Module;
...
Note that if your module is really that big, you probably have some design problems in your interface.
| [reply] [d/l] [select] |
If you want all methods to be accessible as they were in Your::Module, why do you want put them into over modules? Maybe you should have a look onto AutoLoader and AutoSplit.
| [reply] [d/l] |