Filename | /usr/share/perl5/strictures.pm |
Statements | Executed 123 statements in 1.14ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
12 | 12 | 11 | 101µs | 293µs | import | strictures::
10 | 10 | 10 | 99µs | 194µs | VERSION | strictures::
1 | 1 | 1 | 13µs | 21µs | BEGIN@3 | strictures::
1 | 1 | 1 | 12µs | 30µs | BEGIN@4 | strictures::
1 | 1 | 1 | 9µs | 9µs | CORE:ftis (opcode) | strictures::
1 | 1 | 1 | 8µs | 22µs | BEGIN@21 | strictures::
1 | 1 | 1 | 4µs | 4µs | BEGIN@6 | strictures::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package strictures; | ||||
2 | |||||
3 | 2 | 39µs | 2 | 30µs | # spent 21µs (13+8) within strictures::BEGIN@3 which was called:
# once (13µs+8µs) by Sub::Quote::BEGIN@3 at line 3 # spent 21µs making 1 call to strictures::BEGIN@3
# spent 8µs making 1 call to strict::import |
4 | 2 | 83µs | 2 | 48µs | # spent 30µs (12+18) within strictures::BEGIN@4 which was called:
# once (12µs+18µs) by Sub::Quote::BEGIN@3 at line 4 # spent 30µs making 1 call to strictures::BEGIN@4
# spent 18µs making 1 call to warnings::import |
5 | |||||
6 | # spent 4µs within strictures::BEGIN@6 which was called:
# once (4µs+0s) by Sub::Quote::BEGIN@3 at line 8 | ||||
7 | 1 | 5µs | *_PERL_LT_5_8_4 = ($] < 5.008004) ? sub(){1} : sub(){0}; | ||
8 | 1 | 82µs | 1 | 4µs | } # spent 4µs making 1 call to strictures::BEGIN@6 |
9 | |||||
10 | 1 | 400ns | our $VERSION = '1.005005'; | ||
11 | |||||
12 | # spent 194µs (99+95) within strictures::VERSION which was called 10 times, avg 19µs/call:
# once (19µs+18µs) by Sub::Quote::BEGIN@3 at line 3 of Sub/Quote.pm
# once (14µs+12µs) by Method::Generate::Constructor::BEGIN@3 at line 3 of Method/Generate/Constructor.pm
# once (14µs+12µs) by Moo::BEGIN@3 at line 3 of Moo.pm
# once (10µs+9µs) by Moo::sification::BEGIN@3 at line 3 of Moo/sification.pm
# once (8µs+8µs) by Moo::_mro::BEGIN@2 at line 2 of Moo/_mro.pm
# once (7µs+8µs) by Moo::Object::BEGIN@3 at line 3 of Moo/Object.pm
# once (8µs+7µs) by Moo::HandleMoose::_TypeMap::BEGIN@2 at line 2 of Moo/HandleMoose/_TypeMap.pm
# once (7µs+7µs) by Method::Generate::Accessor::BEGIN@3 at line 3 of Method/Generate/Accessor.pm
# once (7µs+7µs) by Sub::Defer::BEGIN@3 at line 3 of Sub/Defer.pm
# once (6µs+7µs) by Moo::_Utils::BEGIN@11 at line 11 of Moo/_Utils.pm | ||||
13 | 10 | 8µs | my ($class, $version) = @_; | ||
14 | 10 | 8µs | for ($version) { | ||
15 | 10 | 15µs | last unless defined && !ref && int != 1; | ||
16 | die "Major version specified as $_ - this is strictures version 1"; | ||||
17 | } | ||||
18 | # passing undef here may either warn or die depending on the version of perl. | ||||
19 | # we can't match the caller's warning state in this case, so just disable the | ||||
20 | # warning. | ||||
21 | 2 | 375µs | 2 | 36µs | # spent 22µs (8+14) within strictures::BEGIN@21 which was called:
# once (8µs+14µs) by Sub::Quote::BEGIN@3 at line 21 # spent 22µs making 1 call to strictures::BEGIN@21
# spent 14µs making 1 call to warnings::unimport |
22 | 10 | 195µs | 10 | 95µs | shift->SUPER::VERSION(@_); # spent 95µs making 10 calls to version::vxs::_VERSION, avg 9µs/call |
23 | } | ||||
24 | |||||
25 | 1 | 0s | our $extra_load_states; | ||
26 | |||||
27 | 1 | 16µs | 1 | 9µs | our $Smells_Like_VCS = (-e '.git' || -e '.svn' || -e '.hg' # spent 9µs making 1 call to strictures::CORE:ftis |
28 | || (-e '../../dist.ini' | ||||
29 | && (-e '../../.git' || -e '../../.svn' || -e '../../.hg' ))); | ||||
30 | |||||
31 | # spent 293µs (101+192) within strictures::import which was called 12 times, avg 24µs/call:
# once (14µs+28µs) by Method::Generate::Constructor::BEGIN@3 at line 3 of Method/Generate/Constructor.pm
# once (9µs+21µs) by DBIx::Class::Storage::BlockRunner::__ANON__[/usr/share/perl5/DBIx/Class/Storage/BlockRunner.pm:29] at line 29 of DBIx/Class/Storage/BlockRunner.pm
# once (11µs+17µs) by Moo::BEGIN@3 at line 3 of Moo.pm
# once (10µs+14µs) by Sub::Quote::BEGIN@3 at line 3 of Sub/Quote.pm
# once (8µs+16µs) by Method::Generate::Constructor::__ANON__[/usr/share/perl5/Method/Generate/Constructor.pm:202] at line 202 of Method/Generate/Constructor.pm
# once (8µs+16µs) by Moo::sification::BEGIN@3 at line 3 of Moo/sification.pm
# once (7µs+14µs) by Moo::_mro::BEGIN@2 at line 2 of Moo/_mro.pm
# once (7µs+14µs) by Moo::HandleMoose::_TypeMap::BEGIN@2 at line 2 of Moo/HandleMoose/_TypeMap.pm
# once (7µs+13µs) by Moo::_Utils::BEGIN@11 at line 11 of Moo/_Utils.pm
# once (7µs+13µs) by Method::Generate::Accessor::BEGIN@3 at line 3 of Method/Generate/Accessor.pm
# once (7µs+13µs) by Moo::Object::BEGIN@3 at line 3 of Moo/Object.pm
# once (7µs+13µs) by Sub::Defer::BEGIN@3 at line 3 of Sub/Defer.pm | ||||
32 | 12 | 115µs | 12 | 82µs | strict->import; # spent 82µs making 12 calls to strict::import, avg 7µs/call |
33 | 12 | 141µs | 12 | 110µs | warnings->import(FATAL => 'all'); # spent 110µs making 12 calls to warnings::import, avg 9µs/call |
34 | |||||
35 | 12 | 5µs | my $extra_tests = do { | ||
36 | 12 | 8µs | if (exists $ENV{PERL_STRICTURES_EXTRA}) { | ||
37 | if (_PERL_LT_5_8_4 and $ENV{PERL_STRICTURES_EXTRA}) { | ||||
38 | die 'PERL_STRICTURES_EXTRA checks are not available on perls older than 5.8.4: ' | ||||
39 | . "please unset \$ENV{PERL_STRICTURES_EXTRA}\n"; | ||||
40 | } | ||||
41 | 12 | 9µs | $ENV{PERL_STRICTURES_EXTRA}; | ||
42 | } elsif (! _PERL_LT_5_8_4) { | ||||
43 | !!((caller)[1] =~ /^(?:t|xt|lib|blib)/ | ||||
44 | and $Smells_Like_VCS) | ||||
45 | } | ||||
46 | }; | ||||
47 | 12 | 33µs | if ($extra_tests) { | ||
48 | $extra_load_states ||= do { | ||||
49 | |||||
50 | my (%rv, @failed); | ||||
51 | foreach my $mod (qw(indirect multidimensional bareword::filehandles)) { | ||||
52 | eval "require $mod; \$rv{'$mod'} = 1;" or do { | ||||
53 | push @failed, $mod; | ||||
54 | |||||
55 | # courtesy of the 5.8 require bug | ||||
56 | # (we do a copy because 5.16.2 at least uses the same read-only | ||||
57 | # scalars for the qw() list and it doesn't seem worth a $^V check) | ||||
58 | |||||
59 | (my $file = $mod) =~ s|::|/|g; | ||||
60 | delete $INC{"${file}.pm"}; | ||||
61 | }; | ||||
62 | } | ||||
63 | |||||
64 | if (@failed) { | ||||
65 | my $failed = join ' ', @failed; | ||||
66 | print STDERR <<EOE; | ||||
67 | strictures.pm extra testing active but couldn't load all modules. Missing were: | ||||
68 | |||||
69 | $failed | ||||
70 | |||||
71 | Extra testing is auto-enabled in checkouts only, so if you're the author | ||||
72 | of a strictures-using module you need to run: | ||||
73 | |||||
74 | cpan indirect multidimensional bareword::filehandles | ||||
75 | |||||
76 | but these modules are not required by your users. | ||||
77 | EOE | ||||
78 | } | ||||
79 | |||||
80 | \%rv; | ||||
81 | }; | ||||
82 | |||||
83 | indirect->unimport(':fatal') if $extra_load_states->{indirect}; | ||||
84 | multidimensional->unimport if $extra_load_states->{multidimensional}; | ||||
85 | bareword::filehandles->unimport if $extra_load_states->{'bareword::filehandles'}; | ||||
86 | } | ||||
87 | } | ||||
88 | |||||
89 | 1 | 4µs | 1; | ||
90 | |||||
91 | __END__ | ||||
# spent 9µs within strictures::CORE:ftis which was called:
# once (9µs+0s) by Sub::Quote::BEGIN@3 at line 27 |