note
Rhandom
Be careful about using Module::Pluggable. Each time you run your script Module::Pluggable has to search through the entire INC path, and as part of that searching it will load every matching module. So, you get a win in that you can abstract out parts of your code or use separate distributions. But you also get a heavy penalty in that you might be loading large chunks of code unrelated to your current task at hand.
<br><br>
If you don't care to allow for arbitrary extension by third parties, then I'd use something like [cpan://autouse] or [cpan://AutoRole] to mix in known functionality.
<br><br>
If you want third party extensions but without the bloat, then a mapping of method name to module name is a way to go.
<br><br>
Alternately you could use a hybrid approach and scan @INC for module names - but don't load them unless a method that maps to a module is called.
<br><br>
However, with all that said, Module::Pluggable might be doing exactly what you want. I haven't had any of my personal projects ever fall into that category.
<!-- Node text goes above. Div tags should contain sig only -->
<div class="pmsig"><div class="pmsig-1598">
<font size=1>my @a=qw(random brilliant braindead); print $a[rand(@a)];</font>
</div></div>
962988
962988