http://www.perlmonks.org?node_id=796591


in reply to How to see what is available in Module::Namespace::*

So, basically, to load every available module matching /MyModule::Plugins::\w+/ you can do:

for (@INC) { my $path = "$_/MyModule/Plugins"; for my $m (<$path/*.pm>) { $m =~ s{^\Q$_\E/}{}; # strip off everything leading up to MyModul +e... $m =~ s{/}{::}g; # replace / with :: $m =~ s{\.pm$}{}; # remove extension eval "use $m;"; # use MyModule::Plugin::Whatever die if $@; # propagate exceptions } }
updated: fixed glob