53 lines
979 B
Perl
Executable File
53 lines
979 B
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
#
|
|
# Check the tree against missing VERSIONs.
|
|
#
|
|
# Originally by Larry Shatzer
|
|
#
|
|
|
|
use strict;
|
|
use File::Find;
|
|
|
|
find(
|
|
sub {
|
|
return unless -f;
|
|
if (/\.pm$/ && $File::Find::name !~ m:/t/:) { # pm but not in a test
|
|
unless (parse_file($_)) {
|
|
print "$File::Find::name\n";
|
|
}
|
|
}
|
|
}, @ARGV ? shift : ".");
|
|
|
|
sub parse_file {
|
|
my $parsefile = shift;
|
|
|
|
my $result;
|
|
|
|
open(FH,'<',$parsefile) or warn "Could not open '$parsefile': $!";
|
|
|
|
my $inpod = 0;
|
|
while (<FH>) {
|
|
$inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;
|
|
next if $inpod || /^\s*\#/;
|
|
chomp;
|
|
next unless /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/;
|
|
my $eval = qq{
|
|
package ExtUtils::MakeMaker::_version;
|
|
no strict;
|
|
local $1$2;
|
|
\$$2=undef; do {
|
|
$_
|
|
}; \$$2
|
|
};
|
|
no warnings;
|
|
$result = eval($eval);
|
|
warn "Could not eval '$eval' in $parsefile: $@" if $@;
|
|
$result = "undef" unless defined $result;
|
|
last;
|
|
}
|
|
close FH;
|
|
return $result;
|
|
}
|
|
|