| Filename | /usr/lib/x86_64-linux-gnu/perl-base/strict.pm |
| Statements | Executed 0 statements in 0s |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 67 | 67 | 43 | 271µs | 271µs | strict::unimport |
| 118 | 116 | 110 | 184µs | 184µs | strict::import |
| 0 | 0 | 0 | 0s | 0s | strict::BEGIN |
| 0 | 0 | 0 | 0s | 0s | strict::__ANON__[:31] |
| 0 | 0 | 0 | 0s | 0s | strict::__ANON__[:37] |
| 0 | 0 | 0 | 0s | 0s | strict::bits |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package strict; | ||||
| 2 | |||||
| 3 | $strict::VERSION = "1.12"; | ||||
| 4 | |||||
| 5 | my ( %bitmask, %explicit_bitmask ); | ||||
| 6 | |||||
| 7 | BEGIN { | ||||
| 8 | # Verify that we're called correctly so that strictures will work. | ||||
| 9 | # Can't use Carp, since Carp uses us! | ||||
| 10 | # see also warnings.pm. | ||||
| 11 | die sprintf "Incorrect use of pragma '%s' at %s line %d.\n", __PACKAGE__, +(caller)[1,2] | ||||
| 12 | if __FILE__ !~ ( '(?x) \b '.__PACKAGE__.' \.pmc? \z' ) | ||||
| 13 | && __FILE__ =~ ( '(?x) \b (?i:'.__PACKAGE__.') \.pmc? \z' ); | ||||
| 14 | |||||
| 15 | %bitmask = ( | ||||
| 16 | refs => 0x00000002, | ||||
| 17 | subs => 0x00000200, | ||||
| 18 | vars => 0x00000400, | ||||
| 19 | ); | ||||
| 20 | |||||
| 21 | %explicit_bitmask = ( | ||||
| 22 | refs => 0x00000020, | ||||
| 23 | subs => 0x00000040, | ||||
| 24 | vars => 0x00000080, | ||||
| 25 | ); | ||||
| 26 | |||||
| 27 | my $bits = 0; | ||||
| 28 | $bits |= $_ for values %bitmask; | ||||
| 29 | |||||
| 30 | my $inline_all_bits = $bits; | ||||
| 31 | *all_bits = sub () { $inline_all_bits }; | ||||
| 32 | |||||
| 33 | $bits = 0; | ||||
| 34 | $bits |= $_ for values %explicit_bitmask; | ||||
| 35 | |||||
| 36 | my $inline_all_explicit_bits = $bits; | ||||
| 37 | *all_explicit_bits = sub () { $inline_all_explicit_bits }; | ||||
| 38 | } | ||||
| 39 | |||||
| 40 | sub bits { | ||||
| 41 | my $bits = 0; | ||||
| 42 | my @wrong; | ||||
| 43 | foreach my $s (@_) { | ||||
| 44 | if (exists $bitmask{$s}) { | ||||
| 45 | $^H |= $explicit_bitmask{$s}; | ||||
| 46 | |||||
| 47 | $bits |= $bitmask{$s}; | ||||
| 48 | } | ||||
| 49 | else { | ||||
| 50 | push @wrong, $s; | ||||
| 51 | } | ||||
| 52 | } | ||||
| 53 | if (@wrong) { | ||||
| 54 | require Carp; | ||||
| 55 | Carp::croak("Unknown 'strict' tag(s) '@wrong'"); | ||||
| 56 | } | ||||
| 57 | $bits; | ||||
| 58 | } | ||||
| 59 | |||||
| 60 | # spent 184µs within strict::import which was called 118 times, avg 2µs/call:
# 3 times (3µs+0s) by strictures::_enable_2 at line 169 of strictures.pm, avg 1µs/call
# once (5µs+0s) by Carp::Assert::BEGIN@4 at line 4 of Carp/Assert.pm
# once (3µs+0s) by vars::BEGIN@8 at line 8 of vars.pm
# once (3µs+0s) by IPC::Run::IO::BEGIN@65 at line 65 of IPC/Run/IO.pm
# once (3µs+0s) by base::BEGIN@4 at line 4 of base.pm
# once (3µs+0s) by Data::Printer::Config::BEGIN@2 at line 2 of Data/Printer/Config.pm
# once (3µs+0s) by ExtUtils::MY::BEGIN@3 at line 3 of ExtUtils/MY.pm
# once (3µs+0s) by Encode::MIME::Name::BEGIN@2 at line 2 of Encode/MIME/Name.pm
# once (2µs+0s) by Scalar::Util::BEGIN@9 at line 9 of Scalar/Util.pm
# once (2µs+0s) by ExtUtils::MakeMaker::version::BEGIN@14 at line 14 of ExtUtils/MakeMaker/version.pm
# once (2µs+0s) by ExtUtils::MM_Any::BEGIN@3 at line 3 of ExtUtils/MM_Any.pm
# once (2µs+0s) by Fcntl::BEGIN@3 at line 3 of Fcntl.pm
# once (2µs+0s) by ExtUtils::MM_Unix::BEGIN@5 at line 5 of ExtUtils/MM_Unix.pm
# once (2µs+0s) by Symbol::BEGIN@88 at line 88 of Symbol.pm
# once (2µs+0s) by re::BEGIN@4 at line 4 of re.pm
# once (2µs+0s) by IPC::Open3::BEGIN@3 at line 3 of IPC/Open3.pm
# once (2µs+0s) by lib::BEGIN@8 at line 8 of lib.pm
# once (2µs+0s) by attributes::BEGIN@9 at line 9 of attributes.pm
# once (2µs+0s) by Pod::Usage::BEGIN@13 at line 13 of Pod/Usage.pm
# once (2µs+0s) by Pod::Simple::BEGIN@2 at line 2 of Pod/Simple/TiedOutFH.pm
# once (2µs+0s) by Time::HiRes::BEGIN@4 at line 4 of Time/HiRes.pm
# once (2µs+0s) by Pod::Simple::LinkSection::BEGIN@6 at line 6 of Pod/Simple/LinkSection.pm
# once (2µs+0s) by main::BEGIN@2 at line 2 of Capture/Tiny.pm
# once (2µs+0s) by main::BEGIN@15.7 at line 15 of Getopt/Long.pm
# once (2µs+0s) by bytes::BEGIN@3 at line 3 of bytes.pm
# once (2µs+0s) by PerlIO::encoding::BEGIN@3 at line 3 of PerlIO/encoding.pm
# once (2µs+0s) by YAML::XS::LibYAML::BEGIN@3 at line 3 of YAML/XS/LibYAML.pm
# once (2µs+0s) by IPC::Run::Timer::BEGIN@160 at line 160 of IPC/Run/Timer.pm
# once (2µs+0s) by ExtUtils::MakeMaker::Locale::BEGIN@3 at line 3 of ExtUtils/MakeMaker/Locale.pm
# once (2µs+0s) by JSON::BEGIN@4 at line 4 of JSON.pm
# once (2µs+0s) by File::Glob::BEGIN@3 at line 3 of File/Glob.pm
# once (2µs+0s) by Encode::Encoding::BEGIN@4 at line 4 of Encode/Encoding.pm
# once (2µs+0s) by Cwd::BEGIN@2 at line 2 of Cwd.pm
# once (2µs+0s) by Encode::Alias::BEGIN@2 at line 2 of Encode/Alias.pm
# once (2µs+0s) by File::Temp::BEGIN@145 at line 145 of File/Temp.pm
# once (2µs+0s) by File::Temp::Dir::BEGIN@2591 at line 2591 of File/Temp.pm
# once (2µs+0s) by Contextual::Return::Failure::BEGIN@8 at line 8 of Contextual/Return/Failure.pm
# once (2µs+0s) by File::Find::BEGIN@3 at line 3 of File/Find.pm
# once (2µs+0s) by utf8::BEGIN@3 at line 3 of utf8.pm
# once (2µs+0s) by main::BEGIN@1 at line 1 of YAML/XS.pm
# once (2µs+0s) by Pod::Text::BEGIN@18 at line 18 of Pod/Text.pm
# once (2µs+0s) by Want::BEGIN@3 at line 3 of DynaLoader.pm
# once (2µs+0s) by File::Basename::BEGIN@12 at line 12 of File/Basename.pm
# once (2µs+0s) by Data::Printer::Filter::GLOB::BEGIN@2 at line 2 of Data/Printer/Filter/GLOB.pm
# once (2µs+0s) by Text::CSV::BEGIN@4 at line 4 of Text/CSV.pm
# once (2µs+0s) by File::Slurp::BEGIN@3 at line 3 of File/Slurp.pm
# once (2µs+0s) by Text::ParseWords::BEGIN@3 at line 3 of Text/ParseWords.pm
# once (2µs+0s) by Data::Printer::Theme::BEGIN@2 at line 2 of Data/Printer/Theme.pm
# once (2µs+0s) by builtin::BEGIN@3 at line 3 of builtin.pm
# once (2µs+0s) by diagnostics::BEGIN@184 at line 184 of diagnostics.pm
# once (2µs+0s) by if::BEGIN@2 at line 2 of if.pm
# once (2µs+0s) by Params::Check::BEGIN@3 at line 3 of Params/Check.pm
# once (2µs+0s) by Data::Printer::Filter::SCALAR::BEGIN@2 at line 2 of Data/Printer/Filter/SCALAR.pm
# once (2µs+0s) by Exporter::BEGIN@3 at line 3 of Exporter.pm
# once (2µs+0s) by parent::BEGIN@2 at line 2 of parent.pm
# once (2µs+0s) by ExtUtils::Liblist::BEGIN@3 at line 3 of ExtUtils/Liblist.pm
# once (2µs+0s) by File::Spec::BEGIN@3 at line 3 of File/Spec.pm
# once (1µs+0s) by Data::Printer::Filter::REF::BEGIN@2 at line 2 of Data/Printer/Filter/REF.pm
# once (1µs+0s) by IO::Seekable::BEGIN@99 at line 99 of IO/Seekable.pm
# once (1µs+0s) by Data::Printer::Filter::HASH::BEGIN@2 at line 2 of Data/Printer/Filter/HASH.pm
# once (1µs+0s) by IPC::Cmd::BEGIN@3 at line 3 of IPC/Cmd.pm
# once (1µs+0s) by Pod::Simple::BEGIN@4 at line 4 of Pod/Simple.pm
# once (1µs+0s) by Text::CSV_XS::BEGIN@21 at line 21 of Text/CSV_XS.pm
# once (1µs+0s) by diagnostics::BEGIN@1 at line 1 of Text/Tabs.pm
# once (1µs+0s) by I18N::Langinfo::BEGIN@4 at line 4 of I18N/Langinfo.pm
# once (1µs+0s) by ExtUtils::MM::BEGIN@3 at line 3 of ExtUtils/MM.pm
# once (1µs+0s) by Encode::Config::BEGIN@7 at line 7 of Encode/Config.pm
# once (1µs+0s) by IO::File::BEGIN@128 at line 128 of IO/File.pm
# once (1µs+0s) by Errno::BEGIN@9 at line 9 of Errno.pm
# once (1µs+0s) by ExtUtils::MakeMaker::BEGIN@4 at line 4 of ExtUtils/MakeMaker.pm
# once (1µs+0s) by strictures::BEGIN@3 at line 3 of strictures.pm
# once (1µs+0s) by constant::BEGIN@3 at line 3 of constant.pm
# once (1µs+0s) by IO::Select::BEGIN@9 at line 9 of IO/Select.pm
# once (1µs+0s) by Data::Printer::Filter::GenericClass::BEGIN@2 at line 2 of Data/Printer/Filter/GenericClass.pm
# once (1µs+0s) by Config::BEGIN@9 at line 9 of Config.pm
# once (1µs+0s) by Pod::Simple::BEGIN@1521 at line 1521 of Pod/Simple.pm
# once (1µs+0s) by Want::BEGIN@5 at line 5 of Want.pm
# once (1µs+0s) by Data::Printer::Filter::FORMAT::BEGIN@2 at line 2 of Data/Printer/Filter/FORMAT.pm
# once (1µs+0s) by IPC::Run::BEGIN@1013 at line 1013 of IPC/Run.pm
# once (1µs+0s) by List::Util::BEGIN@9 at line 9 of List/Util.pm
# once (1µs+0s) by FileHandle::BEGIN@4 at line 4 of FileHandle.pm
# once (1µs+0s) by Socket::BEGIN@3 at line 3 of Socket.pm
# once (1µs+0s) by POSIX::BEGIN@2 at line 2 of POSIX.pm
# once (1µs+0s) by Exporter::Heavy::BEGIN@3 at line 3 of Exporter/Heavy.pm
# once (1µs+0s) by version::BEGIN@5 at line 5 of version.pm
# once (1µs+0s) by Data::Printer::BEGIN@2 at line 2 of Data/Printer.pm
# once (1µs+0s) by Module::Load::Conditional::BEGIN@3 at line 3 of Module/Load/Conditional.pm
# once (1µs+0s) by ExtUtils::Liblist::Kid::BEGIN@12 at line 12 of ExtUtils/Liblist/Kid.pm
# once (1µs+0s) by File::Path::BEGIN@4 at line 4 of File/Path.pm
# once (1µs+0s) by Module::Metadata::BEGIN@14 at line 14 of Module/Metadata.pm
# once (1µs+0s) by Data::Printer::Filter::ARRAY::BEGIN@2 at line 2 of Data/Printer/Filter/ARRAY.pm
# once (1µs+0s) by IPC::Run::BEGIN@1050 at line 1050 of IPC/Run.pm
# once (1µs+0s) by Encode::BEGIN@5 at line 5 of Encode.pm
# once (1µs+0s) by Data::Printer::Filter::CODE::BEGIN@2 at line 2 of Data/Printer/Filter/CODE.pm
# once (1µs+0s) by Data::Printer::Filter::Regexp::BEGIN@2 at line 2 of Data/Printer/Filter/Regexp.pm
# once (1µs+0s) by Data::Printer::Filter::VSTRING::BEGIN@2 at line 2 of Data/Printer/Filter/VSTRING.pm
# once (1µs+0s) by Carp::BEGIN@4 at line 4 of Carp.pm
# once (1µs+0s) by version::regex::BEGIN@3 at line 3 of version/regex.pm
# once (1µs+0s) by File::Spec::Unix::BEGIN@3 at line 3 of File/Spec/Unix.pm
# once (1µs+0s) by overload::BEGIN@3 at line 3 of overload.pm
# once (1µs+0s) by IPC::Run::Debug::BEGIN@69 at line 69 of IPC/Run/Debug.pm
# once (1µs+0s) by IO::BEGIN@7 at line 7 of IO.pm
# once (1µs+0s) by Data::Printer::Filter::BEGIN@2 at line 2 of Data/Printer/Filter.pm
# once (1µs+0s) by ExtUtils::MakeMaker::Config::BEGIN@3 at line 3 of ExtUtils/MakeMaker/Config.pm
# once (1µs+0s) by Locale::Maketext::Simple::BEGIN@4 at line 4 of Locale/Maketext/Simple.pm
# once (1µs+0s) by IO::Handle::BEGIN@264 at line 264 of IO/Handle.pm
# once (1µs+0s) by File::Find::BEGIN@13 at line 13 of File/Find.pm
# once (1µs+0s) by Config::BEGIN@5 at line 5 of Config_heavy.pl
# once (1µs+0s) by Data::Printer::BEGIN@1 at line 1 of Data/Printer/Object.pm
# once (1µs+0s) by Pod::Escapes::BEGIN@2 at line 2 of Pod/Escapes.pm
# once (1µs+0s) by Data::Printer::Common::BEGIN@3 at line 3 of Data/Printer/Common.pm
# once (900ns+0s) by IO::Prompter::BEGIN@7 at line 7 of IO/Prompter.pm
# once (900ns+0s) by Symbol::BEGIN@3 at line 3 of Symbol.pm
# once (900ns+0s) by Module::Load::BEGIN@3 at line 3 of Module/Load.pm
# once (800ns+0s) by Contextual::Return::BEGIN@3 at line 3 of Contextual/Return.pm
# once (600ns+0s) by Pod::Simple::BlackBox::BEGIN@22 at line 22 of Pod/Simple/BlackBox.pm | ||||
| 61 | shift; | ||||
| 62 | $^H |= @_ ? &bits : all_bits | all_explicit_bits; | ||||
| 63 | } | ||||
| 64 | |||||
| 65 | # spent 271µs within strict::unimport which was called 67 times, avg 4µs/call:
# once (6µs+0s) by JSON::Backend::XS::BEGIN@13 at line 13 of (eval 13)[JSON.pm:295]
# once (6µs+0s) by ExtUtils::MakeMaker::BEGIN@665 at line 665 of ExtUtils/MakeMaker.pm
# once (6µs+0s) by Pod::Simple::BEGIN@1517 at line 1517 of Pod/Simple.pm
# once (6µs+0s) by IO::Prompter::BEGIN@104 at line 104 of IO/Prompter.pm
# once (6µs+0s) by Cwd::BEGIN@657 at line 657 of Cwd.pm
# once (5µs+0s) by IO::Handle::BEGIN@609 at line 609 of IO/Handle.pm
# once (5µs+0s) by Module::Load::Conditional::BEGIN@196 at line 196 of Module/Load/Conditional.pm
# once (5µs+0s) by JSON::Backend::PP::BEGIN@342 at line 342 of JSON.pm
# once (5µs+0s) by main::BEGIN@1212 at line 1212 of IO/Prompter.pm
# once (5µs+0s) by Data::Printer::BEGIN@39 at line 39 of Data/Printer.pm
# once (5µs+0s) by ExtUtils::MakeMaker::version::BEGIN@40 at line 40 of ExtUtils/MakeMaker/version.pm
# once (5µs+0s) by Capture::Tiny::BEGIN@102 at line 102 of Capture/Tiny.pm
# once (5µs+0s) by Data::Printer::Common::BEGIN@401 at line 401 of Data/Printer/Common.pm
# once (5µs+0s) by Data::Printer::Object::BEGIN@76 at line 76 of Data/Printer/Object.pm
# once (5µs+0s) by IPC::Open3::BEGIN@4 at line 4 of IPC/Open3.pm
# once (5µs+0s) by constant::BEGIN@40 at line 40 of constant.pm
# once (5µs+0s) by IO::Prompter::BEGIN@1689 at line 1689 of IO/Prompter.pm
# once (5µs+0s) by Time::HiRes::BEGIN@70 at line 70 of Time/HiRes.pm
# once (5µs+0s) by Contextual::Return::BEGIN@670 at line 670 of Contextual/Return.pm
# once (5µs+0s) by Text::CSV::BEGIN@122 at line 122 of Text/CSV.pm
# once (5µs+0s) by Carp::BEGIN@728 at line 728 of Carp.pm
# once (5µs+0s) by Carp::BEGIN@187 at line 187 of Carp.pm
# once (5µs+0s) by File::Temp::BEGIN@240 at line 240 of File/Temp.pm
# once (5µs+0s) by DynaLoader::BEGIN@109 at line 109 of DynaLoader.pm
# once (5µs+0s) by Contextual::Return::BEGIN@145 at line 145 of Contextual/Return.pm
# once (5µs+0s) by List::Util::BEGIN@35 at line 35 of List/Util.pm
# once (5µs+0s) by Socket::BEGIN@843 at line 843 of Socket.pm
# once (4µs+0s) by ExtUtils::MakeMaker::Config::BEGIN@17 at line 17 of ExtUtils/MakeMaker/Config.pm
# once (4µs+0s) by Symbol::BEGIN@25 at line 25 of Symbol.pm
# once (4µs+0s) by File::Path::BEGIN@29 at line 29 of File/Path.pm
# once (4µs+0s) by Contextual::Return::BEGIN@313 at line 313 of Contextual/Return.pm
# once (4µs+0s) by parent::BEGIN@21 at line 21 of parent.pm
# once (4µs+0s) by FileHandle::BEGIN@46 at line 46 of FileHandle.pm
# once (4µs+0s) by Carp::BEGIN@254 at line 254 of Carp.pm
# once (4µs+0s) by Module::Load::BEGIN@14 at line 14 of Module/Load.pm
# once (4µs+0s) by Locale::Maketext::Simple::BEGIN@122 at line 122 of Locale/Maketext/Simple.pm
# once (4µs+0s) by ExtUtils::MakeMaker::BEGIN@1178 at line 1178 of ExtUtils/MakeMaker.pm
# once (4µs+0s) by ExtUtils::MakeMaker::Locale::BEGIN@141 at line 141 of ExtUtils/MakeMaker/Locale.pm
# once (4µs+0s) by Exporter::Heavy::BEGIN@4 at line 4 of Exporter/Heavy.pm
# once (4µs+0s) by Contextual::Return::BEGIN@809 at line 809 of Contextual/Return.pm
# once (4µs+0s) by IPC::Cmd::BEGIN@357 at line 357 of IPC/Cmd.pm
# once (4µs+0s) by File::Spec::Unix::BEGIN@167 at line 167 of File/Spec/Unix.pm
# once (4µs+0s) by Contextual::Return::BEGIN@223 at line 223 of Contextual/Return.pm
# once (4µs+0s) by Symbol::BEGIN@59 at line 59 of Symbol.pm
# once (3µs+0s) by Data::Printer::Theme::BEGIN@95 at line 95 of Data/Printer/Theme.pm
# once (3µs+0s) by JSON::Backend::XS::BEGIN@51 at line 51 of (eval 13)[JSON.pm:295]
# once (3µs+0s) by File::Temp::BEGIN@270 at line 270 of File/Temp.pm
# once (3µs+0s) by Data::Printer::Filter::BEGIN@26 at line 26 of Data/Printer/Filter.pm
# once (3µs+0s) by Config::BEGIN@47 at line 47 of Config.pm
# once (3µs+0s) by Module::Load::BEGIN@89 at line 89 of Module/Load.pm
# once (3µs+0s) by Socket::BEGIN@942 at line 942 of Socket.pm
# once (3µs+0s) by version::BEGIN@27 at line 27 of version.pm
# once (3µs+0s) by constant::BEGIN@65 at line 65 of constant.pm
# once (3µs+0s) by Data::Printer::Common::BEGIN@428 at line 428 of Data/Printer/Common.pm
# once (3µs+0s) by IO::Prompter::BEGIN@118 at line 118 of IO/Prompter.pm
# once (3µs+0s) by Contextual::Return::BEGIN@354 at line 354 of Contextual/Return.pm
# once (3µs+0s) by Symbol::BEGIN@78 at line 78 of Symbol.pm
# once (3µs+0s) by Carp::BEGIN@749 at line 749 of Carp.pm
# once (3µs+0s) by overload::BEGIN@4 at line 4 of overload.pm
# once (3µs+0s) by ExtUtils::MakeMaker::Locale::BEGIN@147 at line 147 of ExtUtils/MakeMaker/Locale.pm
# once (2µs+0s) by ExtUtils::MakeMaker::BEGIN@1161 at line 1161 of ExtUtils/MakeMaker.pm
# once (2µs+0s) by constant::BEGIN@90 at line 90 of constant.pm
# once (2µs+0s) by POSIX::BEGIN@225 at line 225 of POSIX.pm
# once (2µs+0s) by ExtUtils::MakeMaker::_version::BEGIN@3021 at line 3021 of ExtUtils/MM_Unix.pm
# once (2µs+0s) by Exporter::BEGIN@4 at line 4 of Exporter.pm
# once (2µs+0s) by constant::BEGIN@141 at line 141 of constant.pm
# once (2µs+0s) by File::Glob::BEGIN@54 at line 54 of File/Glob.pm | ||||
| 66 | shift; | ||||
| 67 | |||||
| 68 | if (@_) { | ||||
| 69 | $^H &= ~&bits; | ||||
| 70 | } | ||||
| 71 | else { | ||||
| 72 | $^H &= ~all_bits; | ||||
| 73 | $^H |= all_explicit_bits; | ||||
| 74 | } | ||||
| 75 | } | ||||
| 76 | |||||
| 77 | 1; | ||||
| 78 | __END__ | ||||
| 79 |