Perl::Metrics::Simple::Analysis.3pm

Langue: en

Version: 2009-05-04 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Perl::Metrics::Simple::Analysis - Contains anaylsis results.

SYNOPSIS

This is the class of objects returned by the analyze_files method of the Perl::Metrics::Simple class.

Normally you would not create objects of this class directly, instead you get them by calling the analyze_files method on a Perl::Metrics::Simple object.

VERSION

This is VERSION 0.1

DESCRIPTION

USAGE

new

   $analysis = Perl::Metrics::Simple::Analsys->new( \@file_objects )
 
 

Takes an arrayref of Perl::Metrics::Simple::Analysis::File objects and returns a new Perl::Metrics::Simple::Analysis object.

data

The raw data for the analysis. This is the arrayref you passed as the argument to new();

files

Arrayref of file paths, in the order they were encountered.

file_count

How many Perl files were found.

lines

Total lines in all files, excluding comments and pod.

main_stats

Returns a hashref of data based the main code in all files, that is, on the code minus all named subroutines.
   {
     lines             => 723,
     mccabe_complexity => 45
   }
 
 

file_stats

Returns an arrayref of hashrefs, each entry is for one analyzed file, in the order they were encountered. The main_stats slot in the hashref is for all the code in the file outside of any named subroutines.
    [
       {
         path => '/path/to/file',
         main_stats => {
                         lines             => 23,
                         mccabe_complexity => 3,
                         path              => '/path/to/file',
                         name              => '{code not in named subroutines}',
                        },
         },
         ...
    ]
 
 

packages

Arrayref of unique packages found in code.

package_count

How many unique packages found.

subs

Array ref containing hashrefs of all named subroutines, in the order encounted.

Each hashref has the structure:

     {
          'lines' => 19,
          'mccabe_complexity' => 6,
          'name' => 'databaseRecords',
          'path' => '../path/to/File.pm',
     }
 
 

sub_count

How many subroutines found.

summary_stats

Returns a data structure of the summary counts for all the files examined:
     {
         sub_length      => {
             min           => $min_sub_length,
             max           => $max_sub_length,
             sorted_values => \@lengths_of_all_subs,
             mean          => $average_sub_length,
             median        => $median_sub_length,
             standard_deviation => $std_dev_for_sub_lengths,
          },
         sub_complexity  => {
             min           => $min_sub_complexity,
             max           => $max_sub_complexity,
             sorted_values => \@complexities_of_all_subs,
             mean          => $average_sub_complexity,
             median        => $median_sub_complexity,
             standard_deviation => $std_dev_for_sub_complexity,
         },
         main_complexity => {
             min           => $min_main_complexity,
             max           => $max_main_complexity,
             sorted_values => \@complexities_of_all_subs,
             mean          => $average_main_complexity,
             median        => $median_main_complexity,
             standard_deviation => $std_dev_for_main_complexity,
         },
     }
 
 

STATIC PACKAGE SUBROUTINES

Utility subs used internally, but no harm in exposing them for now. Call these with a fully-qualified package name, e.g.
   Perl::Metrics::Simple::Analysis::is_ref($thing,'ARRAY')
 
 

is_ref

Takes a thing and a type. Returns true is thing is a reference of type type, otherwise returns false.

BUGS AND LIMITATIONS

None reported yet ;-)

DEPENDENCIES

Readonly
Statistics::Basic

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

AUTHOR

     Matisse Enzer
     CPAN ID: MATISSE
     Eigenstate Consulting, LLC
     matisse@eigenstate.net
     http://www.eigenstate.net/
 
 
Copyright (c) 2006-2009 by Eigenstate Consulting, LLC.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

perl(1).