This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module-Load-Conditional to CPAN version 0.70
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 10 Nov 2019 17:50:09 +0000 (17:50 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sun, 10 Nov 2019 17:50:09 +0000 (17:50 +0000)
  [DELTA]

0.70    Sun Nov 10 14:28:41 GMT 2019

* Protect ourselves from Module::Metadata parsing problems
  [ RT#130939 ]

MANIFEST
Porting/Maintainers.pl
cpan/Module-Load-Conditional/lib/Module/Load/Conditional.pm
cpan/Module-Load-Conditional/t/01_Module_Load_Conditional.t
cpan/Module-Load-Conditional/t/to_load/HereDoc.pm [new file with mode: 0644]

index 7cc0fc5..e013e65 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1470,6 +1470,7 @@ cpan/Module-Load-Conditional/t/test_lib/a/X.pm                    Module::Conditional tests
 cpan/Module-Load-Conditional/t/test_lib/b/X.pm                 Module::Conditional tests
 cpan/Module-Load-Conditional/t/to_load/AutoLoad.pm             Module::Conditional tests
 cpan/Module-Load-Conditional/t/to_load/Commented.pm            Module::Conditional tests
+cpan/Module-Load-Conditional/t/to_load/HereDoc.pm
 cpan/Module-Load-Conditional/t/to_load/InPod.pm                        Module::Load::Conditional tests
 cpan/Module-Load-Conditional/t/to_load/LoadIt.pm               Module::Conditional tests
 cpan/Module-Load-Conditional/t/to_load/LoadMe.pl               Module::Conditional tests
index b2d4101..a7acddd 100755 (executable)
@@ -807,7 +807,7 @@ use File::Glob qw(:case);
     },
 
     'Module::Load::Conditional' => {
-        'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.68.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.70.tar.gz',
         'FILES'        => q[cpan/Module-Load-Conditional],
     },
 
index 89e22b5..b0685d2 100644 (file)
@@ -22,7 +22,7 @@ BEGIN {
                         $FIND_VERSION $ERROR $CHECK_INC_HASH $FORCE_SAFE_INC ];
     use Exporter;
     @ISA            = qw[Exporter];
-    $VERSION        = '0.68';
+    $VERSION        = '0.70';
     $VERBOSE        = 0;
     $DEPRECATED     = 0;
     $FIND_VERSION   = 1;
@@ -259,13 +259,19 @@ sub check_install {
             last DIR unless $FIND_VERSION;
 
             ### otherwise, the user wants us to find the version from files
-            my $mod_info = Module::Metadata->new_from_handle( $fh, $filename );
-            my $ver      = $mod_info->version( $args->{module} );
 
-            if( defined $ver ) {
-                $href->{version} = $ver;
+            {
+              local $SIG{__WARN__} = sub {};
+              my $ver = eval {
+                my $mod_info = Module::Metadata->new_from_handle( $fh, $filename );
+                $mod_info->version( $args->{module} );
+              };
 
-                last DIR;
+              if( defined $ver ) {
+                  $href->{version} = $ver;
+
+                  last DIR;
+              }
             }
         }
     }
index 1bfa1a1..2f463d5 100644 (file)
@@ -132,6 +132,13 @@ use_ok( 'Module::Load::Conditional' );
     is( $rv->{version}, 2,          "   Version is correct" );
 }
 
+### test finding a version of a module that has a VERSION error in a HereDoc
+{   my $rv = check_install( module => 'HereDoc' );
+    ok( $rv,                        'Testing $VERSION in HEREDOC' );
+    ok( !$rv->{version},            "   No Version found" );
+    is( $rv->{version}, undef,      "   Version is correct" );
+}
+
 ### test that no package statement means $VERSION is $main::VERSION
 {
     my $rv = check_install( module => 'NotMain' );
diff --git a/cpan/Module-Load-Conditional/t/to_load/HereDoc.pm b/cpan/Module-Load-Conditional/t/to_load/HereDoc.pm
new file mode 100644 (file)
index 0000000..06332ac
--- /dev/null
@@ -0,0 +1,14 @@
+package HereDoc;
+$HereDoc::VERSION = 1;
+
+sub magic {
+  print <<'END';
+package Errno;
+-use vars qw($VERSION);
+-
+-$VERSION = "1.111";
++our $VERSION = "1.111";
+END
+}
+
+1;