#Dynamic module loader for listeners sub load_listeners { my @modules; foreach $dir (@INC) { if (-e "$dir/PMBot/Listeners/") { opendir($pmbot_dir, "$dir/PMBot/Listeners/") or die "cant opendir $some_dir: $!"; @modules = grep {/*.pm/} readdir($pmbot_dir); closedir $pmbot_dir; } } foreach $filename (@modules) { $filename =~ s/\.pm \z //; my $module_name = "PMBot::Listeners::$filename" require $module_name; } }