package TestNeeds;
use Data::Dumper;
sub import {
my $package = shift;
my $caller = caller();
my @missing;
while ( my $package = shift ) {
my $import = "";
if ( @_ and ref $_[0] ) {
local($Data::Dumper::Purity) = 1;
$import = Data::Dumper::Dumper(${(shift)});
} elsif ( @_ and $_[0] =~ m/^[0-9\.\-][\w\-\.]*$/) {
$import = shift;
}
eval "package $caller; use $package $import;";
push @missing, $package, $import, $@ if $@;
}
if ( @missing ) {
print("1..0 # Skip missing/broken dependancies");
if ( 0 and -t STDOUT ) {
print "\n";
while ( my ($pkg, $args, $err) = splice @missing, 0, 3 ) {
print STDERR ("ERROR - pre-requisite $pkg "
.($args ? "$args " : "")
."failed to load ($err)\n");
}
} else {
print "; ".join(", ", grep { !($i++ % 3) } @missing)."\n";
}
exit(0);
}
}
1;