]> git.vpit.fr Git - perl/modules/Acme-CPANAuthors-You-re_using.git/blobdiff - lib/Acme/CPANAuthors/You/re_using.pm
Guard against exceptions thrown by Module::Metadata
[perl/modules/Acme-CPANAuthors-You-re_using.git] / lib / Acme / CPANAuthors / You / re_using.pm
index 8c8a746578eeb3ef3e234b819ff469618c899858..a2474bbb14eb4f3b2b308b7cc4e26e50dc586229 100644 (file)
@@ -3,8 +3,6 @@ package Acme::CPANAuthors::You::re_using;
 use strict;
 use warnings;
 
-use Carp qw/croak/;
-
 use File::Find ();
 use Module::Metadata;
 
@@ -16,13 +14,13 @@ Acme::CPANAuthors::You::re_using - We are the CPAN authors that have written the
 
 =head1 VERSION
 
-Version 0.03
+Version 0.06
 
 =cut
 
 our $VERSION;
 BEGIN {
- $VERSION = '0.03';
+ $VERSION = '0.06';
 }
 
 =head1 SYNOPSIS
@@ -57,17 +55,20 @@ sub register {
  my %authors;
 
  my $pkgs = Acme::CPANAuthors::Utils::cpan_packages();
croak 'Couldn\'t retrieve a valid Parse::CPAN::Packages object' unless $pkgs;
die 'Couldn\'t retrieve a valid Parse::CPAN::Packages object' unless $pkgs;
 
  my $auths = Acme::CPANAuthors::Utils::cpan_authors();
croak 'Couldn\'t retrieve a valid Parse::CPAN::Authors object' unless $auths;
die 'Couldn\'t retrieve a valid Parse::CPAN::Authors object' unless $auths;
 
  my %modules;
 
  File::Find::find({
   wanted => sub {
    return unless /\.pm$/;
-   my $mod = Module::Metadata->new_from_file($_);
+   my $mod = do {
+    local $@;
+    eval { Module::Metadata->new_from_file($_) }
+   };
    return unless $mod;
    @modules{grep $_, $mod->packages_inside} = ();
   },
@@ -89,7 +90,7 @@ sub register {
 
   my $name;
   $name = $auth->name if defined $auth;
+
   $authors{$cpanid} = defined $name ? $name : $cpanid;
  }
 
@@ -100,7 +101,7 @@ BEGIN { register() }
 
 =head1 DEPENDENCIES
 
-L<Carp>, L<File::Find>, L<Module::Metadata>, L<Acme::CPANAuthors>.
+L<File::Find>, L<Module::Metadata>, L<Acme::CPANAuthors>.
 
 =head1 SEE ALSO
 
@@ -124,7 +125,7 @@ You can find documentation for this module with the perldoc command.
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2009,2010,2011 Vincent Pit, all rights reserved.
+Copyright 2009,2010,2011,2013 Vincent Pit, all rights reserved.
 
 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.