Perl::Metrics::Simple(3pm)

Perl::Metrics::Simple3pm

Count packages, subs, lines, etc. of many files.

Usage

  use Perl::Metrics::Simple;
  my $analyzer = Perl::Metrics::Simple->new;
  my $analysis = $analyzer->analyze_files(@paths, @refs_to_file_contents);
  $file_count    = $analysis->file_count;
  $package_count = $analysis->package_count;
  $sub_count     = $analysis->sub_count;
  $lines         = $analysis->lines;
  $main_stats    = $analysis->main_stats;
  $file_stats    = $analysis->file_stats;

Overview

Perl::Metrics::Simple provides just enough methods to run static analysis of one or many Perl files and obtain a few metrics: packages, subroutines, lines of code, and an approximation of cyclomatic (mccabe) complexity for the subroutines and the "main" portion of the code.

Perl::Metrics::Simple is far simpler than Perl::Metrics.

Installs a script called countperl.

Usage

See the countperl script (included with this distribution) for a simple example of usage.

Class methods

new

Takes no arguments and returns a new Perl::Metrics::Simple object.

is_perl_file

Takes a path and returns true if the target is a Perl file.

Object methods

analyze_files( @paths, @refs_to_file_contents )

Takes an array of files and or directory paths, and/or SCALAR refs to file contents and returns an Perl::Metrics::Simple::Analysis object.

find_files( @directories_and_files )

Uses list_perl_files to find all the readable Perl files and returns a reference to a (possibly empty) list of paths.

list_perl_files

Takes a list of one or more paths and returns an alphabetically sorted list of only the perl files. Uses is_perl_file so may throw an exception if a file is unreadable.

is_perl_file($path)

Takes a path to a file and returns true if the file appears to be a Perl file, otherwise returns false.

If the file name does not match any of @Perl::Metrics::Simple::PERL_FILE_SUFFIXES then the file is opened for reading and the first line examined for a a Perl 'shebang' line. An exception is thrown if the file cannot be opened in this case.

should_be_skipped($path)

Returns true if the path should be skipped when looking for Perl files. Currently skips .svn, CVS, and _darcs directories.

Bugs and limitations

See: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Perl-Metrics-Simple

Support

Via CPAN:

Disussion Forum

http://www.cpanforum.com/dist/Perl-Metrics-Simple

Bug Reports

http://rt.cpan.org/NoAuth/Bugs.html?Dist=Perl-Metrics-Simple

Releases

8 releases since Debian 6.0 (Squeeze); the text changed 5 times.

  1. 6.0–7
  2. 8
  3. 9–10
  4. 11
  5. 12
  6. 13

Author

    Matisse Enzer
    CPAN ID: MATISSE
    Eigenstate Consulting, LLC
    [email protected]
    http://www.eigenstate.net/

From libperl-metrics-simple-perl 1.0.3-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.