Tue Aug 25 18:24:10 2009: Request 49007 was acted upon.
Transaction: Ticket created by DROLSKY
       Queue: Module-ScanDeps
     Subject: This module emits a lot of uninitialized value warnings
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: drol...@cpan.org
      Status: new
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=49007 >


I've attached a patch which shuts up all the warnings I've seen. All
tests still pass.

Index: lib/Module/ScanDeps.pm
===================================================================
--- lib/Module/ScanDeps.pm	(revision 1089)
+++ lib/Module/ScanDeps.pm	(working copy)
@@ -647,7 +647,7 @@
    
     while ($recurse) {
         my $count = keys %$rv;
-        my @files = sort grep -T $_->{file}, values %$rv;
+        my @files = sort grep { defined $_->{file} && -T $_->{file} } values %$rv;
         scan_deps_static({
             files    => [ map $_->{file}, @files ],
             keys     => [ map $_->{key},  @files ],
@@ -1007,9 +1007,11 @@
                 next if $_->{name} =~ m/(?:^|\/)\.(?:exists|packlist)$/;
                 my ($ext,$type);
                 $ext = lc($1) if $_->{name} =~ /(\.[^.]+)$/;
-                next if $ext eq lc(lib_ext());
-                $type = 'shared' if $ext eq lc(dl_ext());
-                $type = 'autoload' if ($ext eq '.ix' or $ext eq '.al');
+                if (defined $ext) {
+                    next if $ext eq lc(lib_ext());
+                    $type = 'shared' if $ext eq lc(dl_ext());
+                    $type = 'autoload' if ($ext eq '.ix' or $ext eq '.al');
+                }
                 $type ||= 'data';
 
                 _add_info( rv     => $rv,        module  => "auto/$path/$_->{name}",
@@ -1023,6 +1025,7 @@
 
 sub _find_in_inc {
     my $file = shift;
+    return unless defined $file;
 
     foreach my $dir (grep !/\bBSDPAN\b/, @INC, @IncludeLibs) {
         return "$dir/$file" if -f "$dir/$file";

Reply via email to