Fri Jul 24 03:35:45 2009: Request 48151 was acted upon.
Transaction: Ticket created by bram.stapp...@gmail.com
       Queue: Module-ScanDeps
     Subject: Minor issue: Invalid version format (multiple underscores) at  
Module/ScanDeps.pm line 710, <FH> line 43.
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: bram.stapp...@gmail.com
      Status: new
 Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=48151 >


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";

Reply via email to