sub _load { my ($self, $plugin) = @_; if ($plugin =~ /(.*)\W(\w+)\.pm/){ unshift @INC, $1; $plugin = $2; } elsif ($plugin =~ /^(\w+)\.pm$/){ unshift @INC, '.'; $plugin = $1; } my $loaded = eval { load $plugin; 1; }; if ($loaded) { return $plugin; } }