rendered paste body#Dynamic module loader for listeners
sub load_modules {
my @modules_to_load = shift;
my ( %modules, @module_paths );
#Change module names to paths
foreach $module_name (@modules_to_load) {
my $path = $module_name;
$path =~ s/::/\//;
push @module_paths $path;
}
#Construct a full path to the .pm file(s)
foreach $inc_path (@INC) {
foreach $module_path (@module_paths) {
$full_path = $inc_path . "/" . $module_path . "/";
if ( -e $full_path ) { push @dirs $full_path };
}
}
#Load the modules and add their names to the hash
foreach my $dir (@dirs) {
foreach my $module ( glob "$dir*.pm" ) {
require $module;
my $module_name = fileparse( $module, ".pm" );
my $module_type = basename($dir);
push @%modules{},
( $ . "::" . $module_name );
}
}
#print Dumper(%INC);
return \%modules;
}