cc-docker/scripts/checkPerlModules.pl

46 lines
998 B
Perl
Executable File

#!/usr/bin/env perl
use warnings;
use strict;
my $filename =
shift || &help; # command line argument is perl script to evaluate
my @modules; # array of 'use' statements from code we are checking
open( IN, $filename ) or die "couldn't open $filename for processing: $!
+\n";
while (<IN>) {
chomp;
if ( (/^use/) and not( /strict/ || /warnings/ ) ) {
push @modules, $_;
}
}
close IN;
for my $code (@modules) {
my ( undef, $library ) = split( / /, $code ); # get the module name
$library =~ s/;//; # clean up the name
eval $code;
if ($@) {
warn "couldn't load $library: $@", "\n";
} else {
print "$library looks ok\n";
}
}
sub help
{
print <<"END";
checkPerlModules.pl
This script finds all the "use" statements loading modules in the targ
+et perl
file (specified as a command line argument) and attempts to load them.
If there are problems loading the module, the error mesage returned is
+ printed.
END
exit;
}