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
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/
LICENSE AND COPYRIGHT
Copyright (c) 2006-2021 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).