File: cpan.pl

package info (click to toggle)
libmodule-extractuse-perl 0.33-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 556 kB
  • ctags: 56
  • sloc: perl: 5,653; makefile: 7
file content (46 lines) | stat: -rw-r--r-- 807 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/perl -w
use strict;
use CPANPLUS::Backend;
use File::Find;
use Module::ExtractUse;

my $cp=new CPANPLUS::Backend;

my $filter=shift @ARGV || '^Class::DBI$';
my $hide_own=1;

my $mod_search=$cp->search(type=>'module',
			   list => [$filter]);

my %seen;

foreach my $module (values %{$mod_search}) {
    my $package=$module->package;
    next unless $package;
    next if $seen{$package}++;

    print "*** CHECKING DISTRIBUTION $package\n";

    $module->fetch || next;
    my $extracted_to=$module->extract;
    find(\&find_pms,$extracted_to);
}


sub find_pms {
    return unless /\.pm$/;
    return if $File::Find::dir=~m|/t/|;
    my $p=Module::ExtractUse->new;

    my @used=$p->extract_use($_)->array;
    print "\n$File::Find::dir $_\n * ";
    print join("\n * ",@used),"\n";;
}