Subject: | Minor issue: Invalid version format (multiple underscores) at Module/ScanDeps.pm line 710, <FH> line 43. |
Date: | Fri, 24 Jul 2009 09:35:22 +0200 |
To: | bug-Module-ScanDeps [...] rt.cpan.org |
From: | Bram Stappers <bram.stappers [...] gmail.com> |
First off: thanks for a wonderful tool!
Info
Module::ScanDeps: Module-ScanDeps-0.93.tar.gz
Perl:
This is perl, v5.8.9 built for x86_64-linux-thread-multi
(with 5 registered patches, see perl -V for more detail)
Copyright 1987-2008, Larry Wall
Binary build 825 [288577] provided by ActiveState http://www.ActiveState.com
Built Dec 14 2008 19:55:40
System:
Linux quadje 2.6.27.19-170.2.35.fc10.x86_64 #1 SMP Mon Feb 23 13:00:23
EST 2009 x86_64 x86_64 x86_64 GNU/Linux
Problem
I am running PAR::Packer (pp) and this gives me
Invalid version format (multiple underscores) at
.../perl64/site/lib/Module/ScanDeps.pm line 710, <FH> line 43.
Analysis
The thing is, I am foolishly using
require __PACKAGE__ . "SomeExt.pm";
in my code which in line 708 of Module/ScanDeps.pm
if (/^\s*(?:use|require)\s+([\d\._]+)/) {
leaves $1 set to '__'
Fix
--- /home/stappers/perl64/site/lib/Module/ScanDeps.pm.org
2009-07-24 09:19:23.000000000 +0200
+++ /home/stappers/perl64/site/lib/Module/ScanDeps.pm 2009-07-24
09:31:04.000000000 +0200
@@ -705,7 +705,7 @@
return;
}
# use VERSION:
- if (/^\s*(?:use|require)\s+([\d\._]+)/) {
+ if (/^\s*(?:use|require)\s+([\d\._]+) && '__' ne $1/) {
# include feaure.pm if we have 5.9.5 or better
if (version->new($1) >= version->new("5.9.5")) { # seems to
catch 5.9, too (but not 5.9.4)
return "feature.pm";