← 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/PPI/Statement/Scheduled.pm
StatementsExecuted 9 statements in 252µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
111385µs487µsPPI::Statement::Scheduled::::BEGIN@57PPI::Statement::Scheduled::BEGIN@57
11111µs23µsPPI::Statement::Scheduled::::BEGIN@56PPI::Statement::Scheduled::BEGIN@56
1119µs9µsPPI::Statement::Scheduled::::BEGIN@60PPI::Statement::Scheduled::BEGIN@60
1117µs35µsPPI::Statement::Scheduled::::BEGIN@59PPI::Statement::Scheduled::BEGIN@59
0000s0sPPI::Statement::Scheduled::::__LEXER__normalPPI::Statement::Scheduled::__LEXER__normal
0000s0sPPI::Statement::Scheduled::::_completePPI::Statement::Scheduled::_complete
0000s0sPPI::Statement::Scheduled::::namePPI::Statement::Scheduled::name
0000s0sPPI::Statement::Scheduled::::typePPI::Statement::Scheduled::type
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package PPI::Statement::Scheduled;
2
3=pod
4
5=head1 NAME
6
7PPI::Statement::Scheduled - A scheduled code block
8
9=head1 INHERITANCE
10
11 PPI::Statement::Scheduled
12 isa PPI::Statement::Sub
13 isa PPI::Statement
14 isa PPI::Node
15 isa PPI::Element
16
17=head1 DESCRIPTION
18
19A scheduled code block is one that is intended to be run at a specific
20time during the loading process.
21
22There are five types of scheduled block:
23
24 BEGIN {
25 # Executes as soon as this block is fully defined
26 ...
27 }
28
29 CHECK {
30 # Executes after overall compile-phase in reverse order
31 ...
32 }
33
34 UNITCHECK {
35 # Executes after compile-phase of individual module in reverse order
36 ...
37 }
38
39 INIT {
40 # Executes just before run-time
41 ...
42 }
43
44 END {
45 # Executes as late as possible in reverse order
46 ...
47 }
48
49Technically these scheduled blocks are actually subroutines, and in fact
50may have 'sub' in front of them.
51
52=head1 METHODS
53
54=cut
55
56219µs235µs
# spent 23µs (11+12) within PPI::Statement::Scheduled::BEGIN@56 which was called: # once (11µs+12µs) by PPI::Statement::BEGIN@170 at line 56
use strict;
# spent 23µs making 1 call to PPI::Statement::Scheduled::BEGIN@56 # spent 12µs making 1 call to strict::import
57286µs1487µs
# spent 487µs (385+102) within PPI::Statement::Scheduled::BEGIN@57 which was called: # once (385µs+102µs) by PPI::Statement::BEGIN@170 at line 57
use PPI::Statement::Sub ();
# spent 487µs making 1 call to PPI::Statement::Scheduled::BEGIN@57
58
59228µs263µs
# spent 35µs (7+28) within PPI::Statement::Scheduled::BEGIN@59 which was called: # once (7µs+28µs) by PPI::Statement::BEGIN@170 at line 59
use vars qw{$VERSION @ISA};
# spent 35µs making 1 call to PPI::Statement::Scheduled::BEGIN@59 # spent 28µs making 1 call to vars::import
60
# spent 9µs within PPI::Statement::Scheduled::BEGIN@60 which was called: # once (9µs+0s) by PPI::Statement::BEGIN@170 at line 63
BEGIN {
611400ns $VERSION = '1.215';
6219µs @ISA = 'PPI::Statement::Sub';
631109µs19µs}
# spent 9µs making 1 call to PPI::Statement::Scheduled::BEGIN@60
64
65sub __LEXER__normal { '' }
66
67sub _complete {
68 my $child = $_[0]->schild(-1);
69 return !! (
70 defined $child
71 and
72 $child->isa('PPI::Structure::Block')
73 and
74 $child->complete
75 );
76}
77
78=pod
79
80=head2 type
81
82The C<type> method returns the type of scheduled block, which should always be
83one of C<'BEGIN'>, C<'CHECK'>, C<'UNITCHECK'>, C<'INIT'> or C<'END'>.
84
85=cut
86
87sub type {
88 my $self = shift;
89 my @children = $self->schildren or return undef;
90 $children[0]->content eq 'sub'
91 ? $children[1]->content
92 : $children[0]->content;
93}
94
95# This is actually the same as Sub->name
96sub name {
97 shift->type(@_);
98}
99
10012µs1;
101
102=pod
103
104=head1 TO DO
105
106- Write unit tests for this package
107
108=head1 SUPPORT
109
110See the L<support section|PPI/SUPPORT> in the main module.
111
112=head1 AUTHOR
113
114Adam Kennedy E<lt>adamk@cpan.orgE<gt>
115
116=head1 COPYRIGHT
117
118Copyright 2001 - 2011 Adam Kennedy.
119
120This program is free software; you can redistribute
121it and/or modify it under the same terms as Perl itself.
122
123The full text of the license can be found in the
124LICENSE file included with this module.
125
126=cut