my $can_run; my $reason; BEGIN { $can_run = eval { require My::Module; require Some::Other::Module; 1; }; $reason = $@; }; use Test::More; if (! $can_run) { $reason ||= "no reason given"; plan skip_all => "Prerequisite module not found ($reason)"; exit; } else { plan tests => 42; }; ...