---
name: "Perl::Metrics::Simple::Analysis"
section: "3pm"
platform: "linux"
package: "libperl-metrics-simple-perl"
version: "1.0.3-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Perl::Metrics::Simple::Analysis"
---

# Perl::Metrics::Simple::Analysis(3pm)

Contains anaylsis results.

## 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-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)](/perl/1.md).
