Filename | C:/tmp64ng/perl/lib/strict.pm |
Statements | Executed 1295 statements in 0s |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 0s | 0s | CORE:match (opcode) | strict::
1 | 1 | 1 | 0s | 0s | CORE:regcomp (opcode) | strict::
92 | 2 | 1 | 0s | 0s | bits | strict::
62 | 62 | 60 | 0s | 0s | import | strict::
30 | 30 | 19 | 0s | 0s | unimport | strict::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package strict; | ||||
2 | |||||
3 | 1 | 0s | $strict::VERSION = "1.08"; | ||
4 | |||||
5 | # Verify that we're called correctly so that strictures will work. | ||||
6 | 1 | 0s | 2 | 0s | unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) { # spent 0s making 1 call to strict::CORE:match
# spent 0s making 1 call to strict::CORE:regcomp |
7 | # Can't use Carp, since Carp uses us! | ||||
8 | my (undef, $f, $l) = caller; | ||||
9 | die("Incorrect use of pragma '${\__PACKAGE__}' at $f line $l.\n"); | ||||
10 | } | ||||
11 | |||||
12 | 1 | 0s | my %bitmask = ( | ||
13 | refs => 0x00000002, | ||||
14 | subs => 0x00000200, | ||||
15 | vars => 0x00000400 | ||||
16 | ); | ||||
17 | 1 | 0s | my %explicit_bitmask = ( | ||
18 | refs => 0x00000020, | ||||
19 | subs => 0x00000040, | ||||
20 | vars => 0x00000080 | ||||
21 | ); | ||||
22 | |||||
23 | sub bits { | ||||
24 | 92 | 0s | my $bits = 0; | ||
25 | 92 | 0s | my @wrong; | ||
26 | 92 | 0s | foreach my $s (@_) { | ||
27 | 215 | 0s | if (exists $bitmask{$s}) { | ||
28 | 215 | 0s | $^H |= $explicit_bitmask{$s}; | ||
29 | } | ||||
30 | else { push @wrong, $s }; | ||||
31 | 215 | 0s | $bits |= $bitmask{$s} || 0; | ||
32 | } | ||||
33 | 92 | 0s | if (@wrong) { | ||
34 | require Carp; | ||||
35 | Carp::croak("Unknown 'strict' tag(s) '@wrong'"); | ||||
36 | } | ||||
37 | 92 | 0s | $bits; | ||
38 | } | ||||
39 | |||||
40 | 1 | 0s | my @default_bits = qw(refs subs vars); | ||
41 | |||||
42 | # spent 0s within strict::import which was called 62 times, avg 0s/call:
# once (0s+0s) by PerlIO::encoding::BEGIN@3 at line 3 of PerlIO/encoding.pm
# once (0s+0s) by File::Find::BEGIN@3 at line 3 of File/Find.pm
# once (0s+0s) by File::Find::BEGIN@357 at line 357 of File/Find.pm
# once (0s+0s) by Portable::CPAN::BEGIN@4 at line 4 of Portable/CPAN.pm
# once (0s+0s) by version::BEGIN@5 at line 5 of version.pm
# once (0s+0s) by ExtUtils::Liblist::BEGIN@3 at line 3 of ExtUtils/Liblist.pm
# once (0s+0s) by Parse::CPAN::Meta::BEGIN@2 at line 2 of CPAN/Meta/YAML.pm
# once (0s+0s) by ExtUtils::MakeMaker::Locale::BEGIN@3 at line 3 of ExtUtils/MakeMaker/Locale.pm
# once (0s+0s) by CPAN::Meta::Converter::BEGIN@2 at line 2 of CPAN/Meta/Validator.pm
# once (0s+0s) by Portable::minicpan::BEGIN@4 at line 4 of Portable/minicpan.pm
# once (0s+0s) by Config::BEGIN@9 at line 9 of Config.pm
# once (0s+0s) by ExtUtils::MY::BEGIN@3 at line 3 of ExtUtils/MY.pm
# once (0s+0s) by Cwd::BEGIN@170 at line 170 of Cwd.pm
# once (0s+0s) by JSON::PP::BEGIN@6 at line 6 of JSON/PP.pm
# once (0s+0s) by JSON::PP::IncrParser::BEGIN@1415 at line 1415 of JSON/PP.pm
# once (0s+0s) by Win32::API::BEGIN@17 at line 17 of Win32/API.pm
# once (0s+0s) by constant::BEGIN@3 at line 3 of constant.pm
# once (0s+0s) by Encode::Byte::BEGIN@2 at line 2 of Encode/Byte.pm
# once (0s+0s) by ExtUtils::MM_Any::BEGIN@3 at line 3 of ExtUtils/MM_Any.pm
# once (0s+0s) by Carp::BEGIN@4 at line 4 of Carp.pm
# once (0s+0s) by List::Util::BEGIN@9 at line 9 of List/Util.pm
# once (0s+0s) by Encode::Alias::BEGIN@2 at line 2 of Encode/Alias.pm
# once (0s+0s) by CPAN::Meta::Feature::BEGIN@2 at line 2 of CPAN/Meta/Prereqs.pm
# once (0s+0s) by ExtUtils::MM_Any::BEGIN@2 at line 2 of CPAN/Meta.pm
# once (0s+0s) by Scalar::Util::BEGIN@9 at line 9 of Scalar/Util.pm
# once (0s+0s) by Portable::BEGIN@52 at line 52 of Portable.pm
# once (0s+0s) by Portable::FileSpec::BEGIN@6 at line 6 of Portable/FileSpec.pm
# once (0s+0s) by CPAN::Meta::Converter::BEGIN@2.8 at line 2 of Parse/CPAN/Meta.pm
# once (0s+0s) by ExtUtils::Liblist::Kid::BEGIN@12 at line 12 of ExtUtils/Liblist/Kid.pm
# once (0s+0s) by File::Basename::BEGIN@50 at line 50 of File/Basename.pm
# once (0s+0s) by ExtUtils::MakeMaker::Config::BEGIN@3 at line 3 of ExtUtils/MakeMaker/Config.pm
# once (0s+0s) by Text::ParseWords::BEGIN@3 at line 3 of Text/ParseWords.pm
# once (0s+0s) by Portable::LoadYaml::BEGIN@6 at line 6 of Portable/LoadYaml.pm
# once (0s+0s) by File::Copy::BEGIN@11 at line 11 of File/Copy.pm
# once (0s+0s) by CPAN::Meta::Prereqs::BEGIN@1 at line 1 of CPAN/Meta/Requirements.pm
# once (0s+0s) by Portable::Config::BEGIN@4 at line 4 of Portable/Config.pm
# once (0s+0s) by CPAN::Meta::BEGIN@2.5 at line 2 of CPAN/Meta/Converter.pm
# once (0s+0s) by version::vxs::BEGIN@5 at line 5 of version/vxs.pm
# once (0s+0s) by ExtUtils::MM::BEGIN@3 at line 3 of ExtUtils/MM.pm
# once (0s+0s) by Win32::API::Struct::BEGIN@9 at line 9 of Win32/API/Struct.pm
# once (0s+0s) by Encode::Encoding::BEGIN@4 at line 4 of Encode/Encoding.pm
# once (0s+0s) by ExtUtils::MakeMaker::version::BEGIN@14 at line 14 of ExtUtils/MakeMaker/version.pm
# once (0s+0s) by base::BEGIN@3 at line 3 of base.pm
# once (0s+0s) by CPAN::Meta::BEGIN@2 at line 2 of CPAN/Meta/Feature.pm
# once (0s+0s) by ExtUtils::MM_Win32::BEGIN@3 at line 3 of ExtUtils/MM_Win32.pm
# once (0s+0s) by Exporter::Heavy::BEGIN@3 at line 3 of Exporter/Heavy.pm
# once (0s+0s) by File::Spec::Win32::BEGIN@3 at line 3 of File/Spec/Win32.pm
# once (0s+0s) by File::Spec::BEGIN@3 at line 3 of File/Spec.pm
# once (0s+0s) by ExtUtils::MM_Unix::BEGIN@5 at line 5 of ExtUtils/MM_Unix.pm
# once (0s+0s) by File::Spec::Unix::BEGIN@3 at line 3 of File/Spec/Unix.pm
# once (0s+0s) by Portable::HomeDir::BEGIN@6 at line 6 of Portable/HomeDir.pm
# once (0s+0s) by vars::BEGIN@8 at line 8 of vars.pm
# once (0s+0s) by Encode::BEGIN@5 at line 5 of Encode.pm
# once (0s+0s) by version::regex::BEGIN@3 at line 3 of version/regex.pm
# once (0s+0s) by Config::BEGIN@5 at line 5 of Config_heavy.pl
# once (0s+0s) by ExtUtils::MakeMaker::BEGIN@4 at line 4 of ExtUtils/MakeMaker.pm
# once (0s+0s) by Win32::BEGIN@4 at line 4 of Win32.pm
# once (0s+0s) by ExtUtils::Manifest::BEGIN@10 at line 10 of ExtUtils/Manifest.pm
# once (0s+0s) by File::Path::BEGIN@4 at line 4 of File/Path.pm
# once (0s+0s) by Win32::API::Type::BEGIN@15 at line 15 of Win32/API/Type.pm
# once (0s+0s) by B::BEGIN@9 at line 9 of B.pm
# once (0s+0s) by Encode::Config::BEGIN@7 at line 7 of Encode/Config.pm | ||||
43 | 62 | 0s | shift; | ||
44 | 62 | 0s | 62 | 0s | $^H |= bits(@_ ? @_ : @default_bits); # spent 0s making 62 calls to strict::bits, avg 0s/call |
45 | } | ||||
46 | |||||
47 | # spent 0s within strict::unimport which was called 30 times, avg 0s/call:
# once (0s+0s) by Config::BEGIN@47 at line 47 of Config.pm
# once (0s+0s) by Cwd::BEGIN@843 at line 843 of Cwd.pm
# once (0s+0s) by ExtUtils::MakeMaker::version::BEGIN@38 at line 38 of ExtUtils/MakeMaker/version.pm
# once (0s+0s) by Exporter::Heavy::BEGIN@4 at line 4 of Exporter/Heavy.pm
# once (0s+0s) by CPAN::Meta::Requirements::BEGIN@224 at line 224 of CPAN/Meta/Requirements.pm
# once (0s+0s) by version::BEGIN@51 at line 51 of version.pm
# once (0s+0s) by version::BEGIN@33 at line 33 of version.pm
# once (0s+0s) by version::BEGIN@68 at line 68 of version.pm
# once (0s+0s) by ExtUtils::MakeMaker::Locale::BEGIN@110 at line 110 of ExtUtils/MakeMaker/Locale.pm
# once (0s+0s) by ExtUtils::MakeMaker::Locale::BEGIN@104 at line 104 of ExtUtils/MakeMaker/Locale.pm
# once (0s+0s) by CPAN::Meta::Converter::BEGIN@489 at line 489 of CPAN/Meta/Converter.pm
# once (0s+0s) by Parse::CPAN::Meta::BEGIN@45 at line 45 of Parse/CPAN/Meta.pm
# once (0s+0s) by ExtUtils::MakeMaker::BEGIN@1091 at line 1091 of ExtUtils/MakeMaker.pm
# once (0s+0s) by ExtUtils::MakeMaker::BEGIN@577 at line 577 of ExtUtils/MakeMaker.pm
# once (0s+0s) by ExtUtils::MakeMaker::Config::BEGIN@15 at line 15 of ExtUtils/MakeMaker/Config.pm
# once (0s+0s) by File::Path::BEGIN@329 at line 329 of File/Path.pm
# once (0s+0s) by B::BEGIN@254 at line 254 of B.pm
# once (0s+0s) by constant::BEGIN@39 at line 39 of constant.pm
# once (0s+0s) by constant::BEGIN@64 at line 64 of constant.pm
# once (0s+0s) by constant::BEGIN@126 at line 126 of constant.pm
# once (0s+0s) by ExtUtils::MakeMaker::_version::BEGIN@2801 at line 2801 of ExtUtils/MM_Unix.pm
# once (0s+0s) by Carp::BEGIN@131 at line 131 of Carp.pm
# once (0s+0s) by Carp::BEGIN@555 at line 555 of Carp.pm
# once (0s+0s) by Carp::BEGIN@575 at line 575 of Carp.pm
# once (0s+0s) by File::Spec::Unix::BEGIN@179 at line 179 of File/Spec/Unix.pm
# once (0s+0s) by List::Util::BEGIN@30 at line 30 of List/Util.pm
# once (0s+0s) by CPAN::Meta::BEGIN@120 at line 120 of CPAN/Meta.pm
# once (0s+0s) by CPAN::Meta::BEGIN@92 at line 92 of CPAN/Meta.pm
# once (0s+0s) by CPAN::Meta::BEGIN@616 at line 616 of CPAN/Meta.pm
# once (0s+0s) by CPAN::Meta::BEGIN@161 at line 161 of CPAN/Meta.pm | ||||
48 | 30 | 0s | shift; | ||
49 | 30 | 0s | 30 | 0s | $^H &= ~ bits(@_ ? @_ : @default_bits); # spent 0s making 30 calls to strict::bits, avg 0s/call |
50 | } | ||||
51 | |||||
52 | 1 | 0s | 1; | ||
53 | __END__ | ||||
# spent 0s within strict::CORE:match which was called:
# once (0s+0s) by ExtUtils::MakeMaker::BEGIN@4 at line 6 | |||||
# spent 0s within strict::CORE:regcomp which was called:
# once (0s+0s) by ExtUtils::MakeMaker::BEGIN@4 at line 6 |