#!/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 () { 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; }