sub module { my $name = $_; my $packagename; my $version; my $pinfo; my $vinfo; my $packageversion; my $line; if ($name =~ /\.pm$/) { open(MOD,$name) || return; while() { $line = $_; if ($line =~ /^ *package +(\S+);/) { $packagename = $1; $pinfo=1; } if ($line =~ /\$Id: ([a-zA-Z0-9\-_\.]+),v ([0-9\.]+) /) { # $packagename = $1; $version = $2; # $pinfo=1; $vinfo++; } if (($packagename) && (not $vinfo)) { $packageversion = $packagename."::VERSION"; } if (not $vinfo) { if ($line =~ /^\s*\$VERSION\s*=\s*(?:["\'\s]?)([0-9\.]+)(?:["\'\s]?);\s*$/) { $version = $1; $vinfo++; } if ($line =~ /Revision: ([0-9\.]+) \$/) { $version = $1; $vinfo++; } if ($line =~ /$packageversion\s*=\s*(?:["\'\s]?)([0-9\.]+)(?:["\'\s]?)/) { $version = $1; $vinfo++; } } if (($pinfo) && ($vinfo)) { last; } } close MOD; if (($packagename) && (($MODUL{$packagename} eq "??") || (not $MODUL{$packagename})) ) { if ($version) { $MODUL{$packagename} = $version; } else { $MODUL{$packagename} = "??"; } } } }