Filename | /usr/share/perl5/strictures.pm |
Statements | Executed 0 statements in 0s |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
12 | 12 | 11 | 117µs | 334µs | import | strictures::
10 | 10 | 10 | 99µs | 208µs | VERSION | strictures::
1 | 1 | 1 | 14µs | 23µs | BEGIN@3 | strictures::
1 | 1 | 1 | 14µs | 27µs | BEGIN@21 | strictures::
1 | 1 | 1 | 11µs | 30µs | BEGIN@4 | strictures::
1 | 1 | 1 | 8µs | 8µs | CORE:ftis (opcode) | strictures::
1 | 1 | 1 | 5µs | 5µs | BEGIN@6 | strictures::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package strictures; | ||||
2 | |||||
3 | 2 | 32µs | # spent 23µs (14+9) within strictures::BEGIN@3 which was called:
# once (14µs+9µs) by Sub::Quote::BEGIN@3 at line 3 # spent 23µs making 1 call to strictures::BEGIN@3
# spent 9µs making 1 call to strict::import | ||
4 | 2 | 48µs | # spent 30µs (11+19) within strictures::BEGIN@4 which was called:
# once (11µs+19µ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 5µs within strictures::BEGIN@6 which was called:
# once (5µs+0s) by Sub::Quote::BEGIN@3 at line 8 | ||||
7 | *_PERL_LT_5_8_4 = ($] < 5.008004) ? sub(){1} : sub(){0}; | ||||
8 | 1 | 5µs | } # spent 5µs making 1 call to strictures::BEGIN@6 | ||
9 | |||||
10 | our $VERSION = '1.005005'; | ||||
11 | |||||
12 | # spent 208µs (99+109) within strictures::VERSION which was called 10 times, avg 21µs/call:
# once (14µs+20µs) by Sub::Quote::BEGIN@3 at line 3 of Sub/Quote.pm
# once (15µs+14µs) by Moo::sification::BEGIN@3 at line 3 of Moo/sification.pm
# once (12µs+13µs) by Moo::BEGIN@3 at line 3 of Moo.pm
# once (11µs+11µs) by Moo::HandleMoose::_TypeMap::BEGIN@2 at line 2 of Moo/HandleMoose/_TypeMap.pm
# once (10µs+10µs) by Method::Generate::Constructor::BEGIN@3 at line 3 of Method/Generate/Constructor.pm
# once (8µs+11µs) by Method::Generate::Accessor::BEGIN@3 at line 3 of Method/Generate/Accessor.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 (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 | my ($class, $version) = @_; | ||||
14 | for ($version) { | ||||
15 | 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 | 41µs | # spent 27µs (14+13) within strictures::BEGIN@21 which was called:
# once (14µs+13µs) by Sub::Quote::BEGIN@3 at line 21 # spent 27µs making 1 call to strictures::BEGIN@21
# spent 13µs making 1 call to warnings::unimport | ||
22 | 10 | 109µs | shift->SUPER::VERSION(@_); # spent 109µs making 10 calls to version::vxs::_VERSION, avg 11µs/call | ||
23 | } | ||||
24 | |||||
25 | our $extra_load_states; | ||||
26 | |||||
27 | 1 | 8µs | our $Smells_Like_VCS = (-e '.git' || -e '.svn' || -e '.hg' # spent 8µs making 1 call to strictures::CORE:ftis | ||
28 | || (-e '../../dist.ini' | ||||
29 | && (-e '../../.git' || -e '../../.svn' || -e '../../.hg' ))); | ||||
30 | |||||
31 | # spent 334µs (117+217) within strictures::import which was called 12 times, avg 28µs/call:
# once (14µs+23µs) by Moo::HandleMoose::_TypeMap::BEGIN@2 at line 2 of Moo/HandleMoose/_TypeMap.pm
# once (12µs+24µs) by Moo::sification::BEGIN@3 at line 3 of Moo/sification.pm
# once (12µs+21µs) by Moo::BEGIN@3 at line 3 of Moo.pm
# once (16µ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 (7µs+25µs) by Moo::_Utils::BEGIN@11 at line 11 of Moo/_Utils.pm
# once (10µs+22µs) by Method::Generate::Constructor::BEGIN@3 at line 3 of Method/Generate/Constructor.pm
# once (9µs+19µ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 (8µs+14µs) by Sub::Quote::BEGIN@3 at line 3 of Sub/Quote.pm
# once (8µs+13µs) by Moo::_mro::BEGIN@2 at line 2 of Moo/_mro.pm
# once (7µs+14µs) by Method::Generate::Accessor::BEGIN@3 at line 3 of Method/Generate/Accessor.pm
# once (7µs+14µ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 | 100µs | strict->import; # spent 100µs making 12 calls to strict::import, avg 8µs/call | ||
33 | 12 | 117µs | warnings->import(FATAL => 'all'); # spent 117µs making 12 calls to warnings::import, avg 10µs/call | ||
34 | |||||
35 | my $extra_tests = do { | ||||
36 | 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 | $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 | 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; | ||||
90 | |||||
91 | __END__ | ||||
# spent 8µs within strictures::CORE:ftis which was called:
# once (8µs+0s) by Sub::Quote::BEGIN@3 at line 27 |