for my $potential () { eval qq( require "$potential" ); if( $@ ) { warn "plugin failed to load: $potential"; } else { if( $potential =~ m|plugin_dir/(.+?)\.pm| ) { my $c = $1; if( eval { $c->can("expected_method1") and $c->can("something_else") } ) { push @loaded_plugins, $c; } else { warn "$potential failed to load correctly"; } } }