The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More;
use File::Find;

my %prereqs = (
    'Net::Proxy::Connector::connect' => [qw( LWP::UserAgent  )],
    'Net::Proxy::Connector::ssl'     => [qw( IO::Socket::SSL )],
    'Net::Proxy::Connector::connect_ssl' =>
        [qw( LWP::UserAgent IO::Socket::SSL )],
);

# compute the list of modules
my @modules;
find( sub { push @modules, $File::Find::name if /\.pm$/ }, 'blib/lib' );
@modules = sort map { s!/!::!g; s/\.pm$//; s/^blib::lib:://; $_ } @modules;

plan tests => scalar @modules;

for my $module (@modules) {
SKIP: {
        my $missing_prereqs = 0;

        for my $prereq ( @{ $prereqs{$module} } ) {
            eval "require $prereq";
            $missing_prereqs++ if $@;
        }
        skip "Missing prerequisites for $module", 1 if $missing_prereqs;
        use_ok($module);
    }
}