All pastes #233709 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-11-02 02:49 UTC
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;
}