- croak 'Couldn\'t retrieve a valid Parse::CPAN::Authors object' unless $auths;
-
- my $installed = ExtUtils::Installed->new;
- croak 'Couldn\'t create a valid ExtUtils::Installed object' unless $installed;
-
- for ($installed->modules()) {
+ die 'Couldn\'t retrieve a valid Parse::CPAN::Authors object' unless $auths;
+
+ my %modules;
+
+ File::Find::find({
+ wanted => sub {
+ return unless /\.pm$/;
+ my $mod = do {
+ local $@;
+ eval { Module::Metadata->new_from_file($_) }
+ };
+ return unless $mod;
+ @modules{grep $_, $mod->packages_inside} = ();
+ },
+ follow => 0,
+ no_chdir => 1,
+ }, @INC);
+
+ for (keys %modules) {