| Filename | /usr/share/perl5/strictures.pm |
| Statements | Executed 0 statements in 0s |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 12 | 12 | 11 | 129µs | 360µs | strictures::import |
| 10 | 10 | 10 | 114µs | 225µs | strictures::VERSION |
| 1 | 1 | 1 | 31µs | 40µs | strictures::BEGIN@3 |
| 1 | 1 | 1 | 10µs | 28µs | strictures::BEGIN@4 |
| 1 | 1 | 1 | 10µs | 10µs | strictures::CORE:ftis (opcode) |
| 1 | 1 | 1 | 7µs | 22µs | strictures::BEGIN@21 |
| 1 | 1 | 1 | 5µs | 5µs | strictures::BEGIN@6 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package strictures; | ||||
| 2 | |||||
| 3 | 2 | 49µs | # spent 40µs (31+9) within strictures::BEGIN@3 which was called:
# once (31µs+9µs) by Sub::Quote::BEGIN@3 at line 3 # spent 40µs making 1 call to strictures::BEGIN@3
# spent 9µs making 1 call to strict::import | ||
| 4 | 2 | 46µs | # spent 28µs (10+18) within strictures::BEGIN@4 which was called:
# once (10µs+18µs) by Sub::Quote::BEGIN@3 at line 4 # spent 28µ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 225µs (114+112) within strictures::VERSION which was called 10 times, avg 23µs/call:
# once (18µs+19µs) by Sub::Quote::BEGIN@3 at line 3 of Sub/Quote.pm
# once (21µs+16µs) by Moo::sification::BEGIN@3 at line 3 of Moo/sification.pm
# once (15µs+14µs) by Method::Generate::Constructor::BEGIN@3 at line 3 of Method/Generate/Constructor.pm
# once (12µs+13µs) by Moo::BEGIN@3 at line 3 of Moo.pm
# once (9µs+12µs) by Method::Generate::Accessor::BEGIN@3 at line 3 of Method/Generate/Accessor.pm
# once (9µs+8µs) by Moo::Object::BEGIN@3 at line 3 of Moo/Object.pm
# once (8µs+8µs) by Moo::HandleMoose::_TypeMap::BEGIN@2 at line 2 of Moo/HandleMoose/_TypeMap.pm
# once (8µs+8µs) by Moo::_mro::BEGIN@2 at line 2 of Moo/_mro.pm
# once (7µs+7µs) by Sub::Defer::BEGIN@3 at line 3 of Sub/Defer.pm
# once (6µs+8µ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 | 36µs | # spent 22µs (7+14) within strictures::BEGIN@21 which was called:
# once (7µ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 | 112µs | shift->SUPER::VERSION(@_); # spent 112µs making 10 calls to version::vxs::_VERSION, avg 11µs/call | ||
| 23 | } | ||||
| 24 | |||||
| 25 | our $extra_load_states; | ||||
| 26 | |||||
| 27 | 1 | 10µs | our $Smells_Like_VCS = (-e '.git' || -e '.svn' || -e '.hg' # spent 10µs making 1 call to strictures::CORE:ftis | ||
| 28 | || (-e '../../dist.ini' | ||||
| 29 | && (-e '../../.git' || -e '../../.svn' || -e '../../.hg' ))); | ||||
| 30 | |||||
| 31 | # spent 360µs (129+231) within strictures::import which was called 12 times, avg 30µs/call:
# once (25µs+33µs) by Moo::BEGIN@3 at line 3 of Moo.pm
# once (15µs+31µs) by Moo::sification::BEGIN@3 at line 3 of Moo/sification.pm
# once (14µs+30µs) by Method::Generate::Constructor::BEGIN@3 at line 3 of Method/Generate/Constructor.pm
# once (10µs+21µs) by Method::Generate::Constructor::__ANON__[/usr/share/perl5/Method/Generate/Constructor.pm:202] at line 202 of Method/Generate/Constructor.pm
# once (12µs+18µ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+15µs) by Method::Generate::Accessor::BEGIN@3 at line 3 of Method/Generate/Accessor.pm
# once (9µs+14µs) by Sub::Quote::BEGIN@3 at line 3 of Sub/Quote.pm
# once (8µs+15µs) by Moo::Object::BEGIN@3 at line 3 of Moo/Object.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+14µs) by Moo::_Utils::BEGIN@11 at line 11 of Moo/_Utils.pm
# once (7µs+12µ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 | 131µs | warnings->import(FATAL => 'all'); # spent 131µs making 12 calls to warnings::import, avg 11µ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 10µs within strictures::CORE:ftis which was called:
# once (10µs+0s) by Sub::Quote::BEGIN@3 at line 27 |