← Index
NYTProf Performance Profile   « line view »
For /Users/timbo/perl5/perlbrew/perls/perl-5.18.2/bin/perlcritic
  Run on Sat Mar 19 22:12:22 2016
Reported on Sat Mar 19 22:14:12 2016

Filename/Users/timbo/perl5/perlbrew/perls/perl-5.18.2/lib/site_perl/5.18.2/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm
StatementsExecuted 18 statements in 322µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11116µs16µsPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::BEGIN@10Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@10
1117µs11µsPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::BEGIN@12Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@12
1117µs27µsPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::BEGIN@13Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@13
1117µs18µsPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::BEGIN@11Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@11
1117µs62µsPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::BEGIN@16Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@16
1117µs144µsPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::BEGIN@15Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@15
1116µs7µsPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::default_severityPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::default_severity
1115µs5µsPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::supported_parametersPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::supported_parameters
0000s0sPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::applies_toPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::applies_to
0000s0sPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::default_themesPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::default_themes
0000s0sPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::::violatesPerl::Critic::Policy::ControlStructures::ProhibitDeepNests::violates
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1##############################################################################
2# $URL$
3# $Date$
4# $Author$
5# $Revision$
6##############################################################################
7
8package Perl::Critic::Policy::ControlStructures::ProhibitDeepNests;
9
10242µs116µs
# spent 16µs within Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@10 which was called: # once (16µs+0s) by Module::Pluggable::Object::_require at line 10
use 5.006001;
11225µs229µs
# spent 18µs (7+11) within Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@11 which was called: # once (7µs+11µs) by Module::Pluggable::Object::_require at line 11
use strict;
# spent 18µs making 1 call to Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@11 # spent 11µs making 1 call to strict::import
12218µs215µs
# spent 11µs (7+4) within Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@12 which was called: # once (7µs+4µs) by Module::Pluggable::Object::_require at line 12
use warnings;
# spent 11µs making 1 call to Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@12 # spent 4µs making 1 call to warnings::import
13221µs247µs
# spent 27µs (7+20) within Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@13 which was called: # once (7µs+20µs) by Module::Pluggable::Object::_require at line 13
use Readonly;
# spent 27µs making 1 call to Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@13 # spent 20µs making 1 call to Exporter::import
14
15223µs2281µs
# spent 144µs (7+137) within Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@15 which was called: # once (7µs+137µs) by Module::Pluggable::Object::_require at line 15
use Perl::Critic::Utils qw{ :severities };
# spent 144µs making 1 call to Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@15 # spent 137µs making 1 call to Exporter::import
162177µs2118µs
# spent 62µs (7+56) within Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@16 which was called: # once (7µs+56µs) by Module::Pluggable::Object::_require at line 16
use base 'Perl::Critic::Policy';
# spent 62µs making 1 call to Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::BEGIN@16 # spent 56µs making 1 call to base::import
17
181500nsour $VERSION = '1.121';
19
20#-----------------------------------------------------------------------------
21
2212µs138µsReadonly::Scalar my $DESC => q{Code structure is deeply nested};
# spent 38µs making 1 call to Readonly::Scalar
2311µs122µsReadonly::Scalar my $EXPL => q{Consider refactoring};
# spent 22µs making 1 call to Readonly::Scalar
24
25#-----------------------------------------------------------------------------
26
27
# spent 5µs within Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::supported_parameters which was called: # once (5µs+0s) by Perl::Critic::Policy::new at line 88 of Perl/Critic/Policy.pm
sub supported_parameters {
28 return (
29 {
3018µs name => 'max_nests',
31 description => 'The maximum number of nested constructs to allow.',
32 default_string => '5',
33 behavior => 'integer',
34 integer_minimum => 1,
35 },
36 );
37}
38
3912µs
# spent 7µs (6+1) within Perl::Critic::Policy::ControlStructures::ProhibitDeepNests::default_severity which was called: # once (6µs+1µs) by Perl::Critic::Policy::get_severity at line 331 of Perl/Critic/Policy.pm
sub default_severity { return $SEVERITY_MEDIUM }
40sub default_themes { return qw(core maintenance complexity) }
41sub applies_to { return 'PPI::Statement::Compound' }
42
43#-----------------------------------------------------------------------------
44
45sub violates {
46 my ( $self, $elem, undef ) = @_;
47
48 my $nest_count = 1; #For _this_ element
49 my $parent = $elem;
50
51 while ( $parent = $parent->parent() ){
52 if( $parent->isa('PPI::Statement::Compound') ) {
53 $nest_count++;
54 }
55 }
56
57 if ( $nest_count > $self->{_max_nests} ) {
58 return $self->violation( $DESC, $EXPL, $elem );
59 }
60 return; #ok!
61}
62
63
6413µs1;
65
66__END__