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/
LICENSE AND COPYRIGHT¶
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).