Here's a script I hacked together that gives me a basic report on a distribution. It provides a simple listing of each module, sorted by modules with most lines of code along with the number of subroutines in the module, followed by a summary report.

#! /usr/bin/env perl use strict; use warnings; use Devel::Examine::Subs; use SourceCode::LineCounter::Perl; use Data::Dumper qw(Dumper); my $filename = '/path/to/module/directory'; my $des = Devel::Examine::Subs->new( file => $filename ); my $files = $des->all( ); my %subs = (); my $subroutine_total = 0; my $counter = SourceCode::LineCounter::Perl->new; $counter->accumulate(1); for my $file (sort keys %$files) { my $name = $file =~ s/$filename//r; my $old_count = $counter->code; $counter->count( $file ); my $lines_of_code = $counter->code - $old_count; my $number_of_subs = scalar @{$files->{$file}}; $subroutine_total += $number_of_subs; $subs{$name}{sub_names} = join("\n", @{$files->{$file}}); $subs{$name}{lines_of_code} = $lines_of_code; $subs{$name}{subroutines} = $number_of_subs; } print "File listing:\n================\n"; for my $file (sort { $subs{$b}{lines_of_code} <=> $subs{$a}{lines_of_c +ode} } sort keys %subs) { print $file . "\n"; print "Number of subroutines: " . $subs{$file}{subroutines}; print "\n"; print "Lines of code: " . $subs{$file}{lines_of_code}. "\n"; # print $subs{$file}{sub_names}; print "\n\n"; } print "\nTotal # files: " . scalar (keys %subs); print "\nTotal # subroutines: " . $subroutine_total; print "\nTotal # lines: " . $counter->total; print "\nTotal # lines of code: " . $counter->code;

$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest";
$nysus = $PM . ' ' . $MCF;
Click here if you love Perl Monks


In reply to Re: CPAN modules for inspecting a Perl distribution? by nysus
in thread CPAN modules for inspecting a Perl distribution? by nysus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.