Filename | /usr/share/perl/5.20/vars.pm |
Statements | Executed 2680 statements in 8.00ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
152 | 152 | 123 | 4.63ms | 5.82ms | import | vars::
1 | 1 | 1 | 1.33ms | 1.43ms | BEGIN@7 | vars::
1548 | 3 | 1 | 1.18ms | 1.18ms | CORE:match (opcode) | vars::
1 | 1 | 1 | 23µs | 23µs | BEGIN@3 | vars::
1 | 1 | 1 | 8µs | 22µs | BEGIN@8 | vars::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package vars; | ||||
2 | |||||
3 | 2 | 78µs | 1 | 23µs | # spent 23µs within vars::BEGIN@3 which was called:
# once (23µs+0s) by C4::Context::BEGIN@21 at line 3 # spent 23µs making 1 call to vars::BEGIN@3 |
4 | |||||
5 | 1 | 600ns | our $VERSION = '1.03'; | ||
6 | |||||
7 | 2 | 1.35ms | 2 | 1.54ms | # spent 1.43ms (1.33+105µs) within vars::BEGIN@7 which was called:
# once (1.33ms+105µs) by C4::Context::BEGIN@21 at line 7 # spent 1.43ms making 1 call to vars::BEGIN@7
# spent 105µs making 1 call to warnings::register::import |
8 | 2 | 410µs | 2 | 35µs | # spent 22µs (8+13) within vars::BEGIN@8 which was called:
# once (8µs+13µs) by C4::Context::BEGIN@21 at line 8 # spent 22µs making 1 call to vars::BEGIN@8
# spent 13µs making 1 call to strict::import |
9 | |||||
10 | # spent 5.82ms (4.63+1.18) within vars::import which was called 152 times, avg 38µs/call:
# once (114µs+28µs) by C4::Auth::BEGIN@37 at line 37 of C4/Auth.pm
# once (99µs+26µs) by Template::Config::BEGIN@24 at line 24 of Template/Config.pm
# once (100µs+25µs) by YAML::Syck::BEGIN@6 at line 6 of YAML/Syck.pm
# once (98µs+26µs) by Set::Infinite::BEGIN@24 at line 24 of Set/Infinite.pm
# once (109µs+13µs) by Date::Calc::BEGIN@15 at line 15 of Date/Calc.pm
# once (97µs+24µs) by Params::Check::BEGIN@10 at line 10 of Params/Check.pm
# once (93µs+23µs) by XML::LibXML::BEGIN@16 at line 16 of XML/LibXML.pm
# once (78µs+21µs) by C4::Context::BEGIN@21 at line 21 of C4/Context.pm
# once (79µs+18µs) by C4::Auth_with_cas::BEGIN@30 at line 30 of C4/Auth_with_cas.pm
# once (72µs+18µs) by Mail::Sendmail::BEGIN@39 at line 39 of Mail/Sendmail.pm
# once (59µs+15µs) by Module::Load::Conditional::BEGIN@21 at line 21 of Module/Load/Conditional.pm
# once (58µs+15µs) by MIME::Lite::BEGIN@341 at line 341 of MIME/Lite.pm
# once (58µs+15µs) by Math::BigInt::BEGIN@28 at line 28 of Math/BigInt.pm
# once (58µs+10µs) by Template::Constants::BEGIN@28 at line 28 of Template/Constants.pm
# once (52µs+14µs) by Digest::MD5::BEGIN@4 at line 4 of Digest/MD5.pm
# once (51µs+15µs) by XML::Simple::BEGIN@49 at line 49 of XML/Simple.pm
# once (53µs+12µs) by C4::Languages::BEGIN@26 at line 26 of C4/Languages.pm
# once (52µs+13µs) by version::BEGIN@7 at line 7 of version.pm
# once (48µs+12µs) by DateTime::Format::Strptime::BEGIN@14 at line 14 of DateTime/Format/Strptime.pm
# once (48µs+11µs) by Set::Infinite::Basic::BEGIN@14 at line 14 of Set/Infinite/Basic.pm
# once (46µs+13µs) by C4::Debug::BEGIN@26 at line 26 of C4/Debug.pm
# once (46µs+12µs) by DateTime::TimeZone::Catalog::BEGIN@12 at line 12 of DateTime/TimeZone/Catalog.pm
# once (44µs+14µs) by HTTP::Message::BEGIN@4 at line 4 of HTTP/Message.pm
# once (46µs+11µs) by Set::Infinite::Arithmetic::BEGIN@37 at line 37 of Set/Infinite/Arithmetic.pm
# once (46µs+11µs) by XML::Parser::Expat::BEGIN@6 at line 6 of XML/Parser/Expat.pm
# once (44µs+11µs) by HTTP::Status::BEGIN@6 at line 6 of HTTP/Status.pm
# once (46µs+8µs) by HTTP::Date::BEGIN@13 at line 13 of HTTP/Date.pm
# once (42µs+11µs) by C4::Branch::BEGIN@24 at line 24 of C4/Branch.pm
# once (42µs+10µs) by C4::Members::Attributes::BEGIN@27 at line 27 of C4/Members/Attributes.pm
# once (41µs+10µs) by C4::Letters::BEGIN@38 at line 38 of C4/Letters.pm
# once (40µs+10µs) by C4::Output::BEGIN@38 at line 38 of C4/Output.pm
# once (41µs+8µs) by MARC::Record::BEGIN@28 at line 28 of MARC/Record.pm
# once (39µs+10µs) by C4::ClassSortRoutine::BEGIN@27 at line 27 of C4/ClassSortRoutine.pm
# once (39µs+9µs) by File::Path::BEGIN@19 at line 19 of File/Path.pm
# once (39µs+10µs) by List::MoreUtils::BEGIN@8 at line 8 of List/MoreUtils.pm
# once (39µs+10µs) by DBI::Const::GetInfoType::BEGIN@16 at line 16 of DBI/Const/GetInfoType.pm
# once (38µs+10µs) by C4::Koha::BEGIN@34 at line 34 of C4/Koha.pm
# once (38µs+10µs) by C4::Circulation::BEGIN@61 at line 61 of C4/Circulation.pm
# once (38µs+9µs) by C4::ClassSource::BEGIN@27 at line 27 of C4/ClassSource.pm
# once (37µs+8µs) by C4::VirtualShelves::BEGIN@32 at line 32 of C4/VirtualShelves.pm
# once (36µs+9µs) by XML::LibXML::InputCallback::BEGIN@2178 at line 2178 of XML/LibXML.pm
# once (35µs+10µs) by Sys::Hostname::Long::BEGIN@12 at line 12 of Sys/Hostname/Long.pm
# once (35µs+10µs) by Params::Util::BEGIN@65 at line 65 of Params/Util.pm
# once (33µs+11µs) by Time::Local::BEGIN@8 at line 8 of Time/Local.pm
# once (35µs+9µs) by C4::Reserves::BEGIN@44 at line 44 of C4/Reserves.pm
# once (36µs+9µs) by C4::Charset::BEGIN@29 at line 29 of C4/Charset.pm
# once (35µs+9µs) by C4::Dates::BEGIN@30 at line 30 of C4/Dates.pm
# once (34µs+9µs) by Date::Calc::XS::BEGIN@16 at line 16 of Date/Calc/XS.pm
# once (34µs+8µs) by Date::Parse::BEGIN@207 at line 207 of Date/Parse.pm
# once (34µs+8µs) by File::Temp::BEGIN@36 at line 36 of File/Temp.pm
# once (33µs+9µs) by Carp::Clan::BEGIN@17 at line 17 of Carp/Clan.pm
# once (34µs+8µs) by C4::SQLHelper::BEGIN@28 at line 28 of C4/SQLHelper.pm
# once (33µs+7µs) by Time::Zone::BEGIN@149 at line 148 of Time/Zone.pm
# once (30µs+11µs) by HTTP::Headers::BEGIN@6 at line 6 of HTTP/Headers.pm
# once (31µs+8µs) by Text::Iconv::BEGIN@6 at line 6 of Text/Iconv.pm
# once (29µs+9µs) by C4::NewsChannels::BEGIN@26 at line 26 of C4/NewsChannels.pm
# once (29µs+9µs) by Cwd::BEGIN@5 at line 5 of Cwd.pm
# once (30µs+8µs) by MIME::Base64::BEGIN@4 at line 4 of MIME/Base64.pm
# once (30µs+8µs) by Time::Zone::BEGIN@47 at line 47 of Time/Zone.pm
# once (31µs+7µs) by Set::Infinite::Arithmetic::BEGIN@31 at line 31 of Set/Infinite/Arithmetic.pm
# once (30µs+8µs) by Readonly::BEGIN@156 at line 156 of Readonly.pm
# once (30µs+7µs) by C4::Items::BEGIN@37 at line 37 of C4/Items.pm
# once (30µs+7µs) by C4::Budgets::BEGIN@27 at line 27 of C4/Budgets.pm
# once (29µs+8µs) by XML::LibXML::BEGIN@38 at line 38 of XML/LibXML.pm
# once (27µs+10µs) by Storable::BEGIN@23 at line 23 of Storable.pm
# once (30µs+7µs) by C4::Stats::BEGIN@26 at line 26 of C4/Stats.pm
# once (28µs+8µs) by version::regex::BEGIN@5 at line 5 of version/regex.pm
# once (26µs+9µs) by Template::Constants::BEGIN@27 at line 27 of Template/Constants.pm
# once (29µs+7µs) by C4::Accounts::BEGIN@31 at line 31 of C4/Accounts.pm
# once (28µs+8µs) by C4::Log::BEGIN@30 at line 30 of C4/Log.pm
# once (28µs+7µs) by Params::Validate::BEGIN@12 at line 12 of Params/Validate.pm
# once (27µs+8µs) by LWP::UserAgent::BEGIN@4 at line 4 of LWP/UserAgent.pm
# once (27µs+8µs) by Config::BEGIN@11 at line 11 of Config.pm
# once (28µs+7µs) by Set::Infinite::Basic::BEGIN@13 at line 13 of Set/Infinite/Basic.pm
# once (27µs+7µs) by Date::Parse::BEGIN@9 at line 9 of Date/Parse.pm
# once (27µs+7µs) by Text::Unaccent::BEGIN@21 at line 21 of Text/Unaccent.pm
# once (27µs+6µs) by C4::Overdues::BEGIN@32 at line 32 of C4/Overdues.pm
# once (25µs+8µs) by constant::BEGIN@6 at line 6 of constant.pm
# once (27µs+7µs) by C4::Biblio::BEGIN@41 at line 41 of C4/Biblio.pm
# once (26µs+7µs) by Set::Infinite::Arithmetic::BEGIN@13 at line 13 of Set/Infinite/Arithmetic.pm
# once (26µs+7µs) by XML::SAX::BEGIN@6 at line 6 of XML/SAX.pm
# once (24µs+9µs) by C4::OAI::Sets::BEGIN@35 at line 35 of C4/OAI/Sets.pm
# once (26µs+6µs) by Set::Infinite::_recurrence::BEGIN@12 at line 12 of Set/Infinite/_recurrence.pm
# once (26µs+6µs) by Readonly::BEGIN@42 at line 42 of Readonly.pm
# once (26µs+7µs) by XML::LibXML::XPathContext::BEGIN@14 at line 14 of XML/LibXML/XPathContext.pm
# once (25µs+6µs) by XML::NamespaceSupport::BEGIN@18 at line 18 of XML/NamespaceSupport.pm
# once (24µs+7µs) by MIME::QuotedPrint::BEGIN@4 at line 4 of MIME/QuotedPrint.pm
# once (24µs+6µs) by Text::CSV_XS::BEGIN@30 at line 30 of Text/CSV_XS.pm
# once (24µs+6µs) by MARC::File::XML::BEGIN@5 at line 5 of MARC/File/XML.pm
# once (23µs+6µs) by XML::LibXML::Error::BEGIN@19 at line 19 of XML/LibXML/Error.pm
# once (22µs+6µs) by File::Spec::BEGIN@4 at line 4 of File/Spec.pm
# once (20µs+6µs) by C4::Members::AttributeTypes::BEGIN@24 at line 24 of C4/Members/AttributeTypes.pm
# once (20µs+5µs) by XML::Parser::BEGIN@13 at line 13 of XML/Parser.pm
# once (18µs+6µs) by Text::CSV::BEGIN@6 at line 6 of Text/CSV.pm
# once (18µs+6µs) by base::BEGIN@4 at line 4 of base.pm
# once (17µs+6µs) by MIME::Lite::SMTP::BEGIN@3107 at line 3107 of MIME/Lite.pm
# once (18µs+4µs) by C4::Members::BEGIN@916 at line 916 of C4/Members.pm
# once (17µs+5µs) by C4::Members::Messaging::BEGIN@24 at line 24 of C4/Members/Messaging.pm
# once (16µs+5µs) by parent::BEGIN@3 at line 3 of parent.pm
# once (17µs+4µs) by C4::ClassSortRoutine::LCC::BEGIN@25 at line 25 of C4/ClassSortRoutine/LCC.pm
# once (16µs+4µs) by DateTime::Format::DateParse::BEGIN@9 at line 9 of DateTime/Format/DateParse.pm
# once (16µs+4µs) by MARC::Record::BEGIN@13 at line 13 of MARC/Record.pm
# once (15µs+4µs) by C4::ClassSortRoutine::Generic::BEGIN@23 at line 23 of C4/ClassSortRoutine/Generic.pm
# once (15µs+4µs) by XML::LibXML::Document::BEGIN@1414 at line 1414 of XML/LibXML.pm
# once (15µs+4µs) by DateTime::Format::Builder::Parser::Dispatch::BEGIN@7 at line 7 of DateTime/Format/Builder/Parser/Dispatch.pm
# once (15µs+4µs) by XML::LibXML::Text::BEGIN@1772 at line 1772 of XML/LibXML.pm
# once (14µs+4µs) by Digest::base::BEGIN@4 at line 4 of Digest/base.pm
# once (14µs+4µs) by C4::ClassSortRoutine::Dewey::BEGIN@23 at line 23 of C4/ClassSortRoutine/Dewey.pm
# once (14µs+4µs) by MARC::File::USMARC::BEGIN@13 at line 13 of MARC/File/USMARC.pm
# once (14µs+4µs) by DateTime::Format::Builder::Parser::Quick::BEGIN@7 at line 7 of DateTime/Format/Builder/Parser/Quick.pm
# once (14µs+4µs) by Class::Factory::Util::BEGIN@4 at line 4 of Class/Factory/Util.pm
# once (14µs+4µs) by File::Spec::Unix::BEGIN@4 at line 4 of File/Spec/Unix.pm
# once (14µs+4µs) by MIME::Types::BEGIN@7 at line 7 of MIME/Types.pm
# once (13µs+4µs) by Readonly::BEGIN@19 at line 19 of Readonly.pm
# once (13µs+4µs) by Config::BEGIN@7 at line 7 of Config_heavy.pl
# once (14µs+4µs) by DateTime::Format::Builder::Parser::Strptime::BEGIN@9 at line 9 of DateTime/Format/Builder/Parser/Strptime.pm
# once (13µs+4µs) by C4::SMS::BEGIN@40 at line 40 of C4/SMS.pm
# once (13µs+4µs) by XML::LibXML::Literal::BEGIN@18 at line 18 of XML/LibXML/Literal.pm
# once (14µs+4µs) by MARC::File::USMARC::BEGIN@17 at line 17 of MARC/File/USMARC.pm
# once (13µs+4µs) by DateTime::Format::MySQL::BEGIN@5 at line 5 of DateTime/Format/MySQL.pm
# once (14µs+3µs) by DateTime::Format::Builder::BEGIN@15 at line 15 of DateTime/Format/Builder.pm
# once (13µs+4µs) by XML::Parser::ExpatNB::BEGIN@590 at line 590 of XML/Parser/Expat.pm
# once (14µs+3µs) by XML::SAX::Expat::BEGIN@13 at line 13 of XML/SAX/Expat.pm
# once (14µs+3µs) by MIME::Type::BEGIN@6 at line 6 of MIME/Type.pm
# once (13µs+4µs) by DateTime::Format::Builder::Parser::Regex::BEGIN@9 at line 9 of DateTime/Format/Builder/Parser/Regex.pm
# once (13µs+4µs) by C4::Dates::BEGIN@31 at line 31 of C4/Dates.pm
# once (13µs+4µs) by Memoize::BEGIN@27 at line 27 of Memoize.pm
# once (14µs+3µs) by MARC::Field::BEGIN@11 at line 11 of MARC/Field.pm
# once (13µs+4µs) by Mail::Address::BEGIN@6 at line 6 of Mail/Address.pm
# once (13µs+4µs) by Mail::Sendmail::BEGIN@183 at line 183 of Mail/Sendmail.pm
# once (13µs+3µs) by DateTime::Span::BEGIN@13 at line 13 of DateTime/Span.pm
# once (13µs+3µs) by XML::LibXML::Number::BEGIN@16 at line 16 of XML/LibXML/Number.pm
# once (13µs+4µs) by MARC::File::BEGIN@13 at line 13 of MARC/File.pm
# once (13µs+3µs) by MARC::Record::BEGIN@24 at line 24 of MARC/Record.pm
# once (13µs+3µs) by XML::LibXML::DocumentFragment::BEGIN@1510 at line 1510 of XML/LibXML.pm
# once (12µs+3µs) by DateTime::Set::BEGIN@12 at line 12 of DateTime/Set.pm
# once (12µs+3µs) by DateTime::SpanSet::BEGIN@14 at line 14 of DateTime/SpanSet.pm
# once (12µs+3µs) by XML::SAX::ParserFactory::BEGIN@6 at line 6 of XML/SAX/ParserFactory.pm
# once (12µs+3µs) by XML::LibXML::AttributeHash::BEGIN@9 at line 9 of XML/LibXML/AttributeHash.pm
# once (12µs+3µs) by XML::LibXML::Comment::BEGIN@1817 at line 1817 of XML/LibXML.pm
# once (12µs+3µs) by XML::LibXML::Boolean::BEGIN@17 at line 17 of XML/LibXML/Boolean.pm
# once (12µs+3µs) by Algorithm::CheckDigits::BEGIN@8 at line 8 of Algorithm/CheckDigits.pm
# once (12µs+3µs) by XML::LibXML::NodeList::BEGIN@19 at line 19 of XML/LibXML/NodeList.pm
# once (12µs+3µs) by XML::LibXML::Element::BEGIN@1533 at line 1533 of XML/LibXML.pm
# once (11µs+3µs) by XML::SAX::Exception::BEGIN@11 at line 11 of XML/SAX/Exception.pm
# once (12µs+2µs) by Time::Zone::BEGIN@59 at line 59 of Time/Zone.pm
# once (12µs+2µs) by XML::LibXML::CDATASection::BEGIN@1824 at line 1824 of XML/LibXML.pm
# once (11µs+3µs) by MARC::Record::BEGIN@33 at line 33 of MARC/Record.pm
# once (11µs+3µs) by XML::LibXML::Dtd::BEGIN@1855 at line 1855 of XML/LibXML.pm
# once (11µs+2µs) by XML::LibXML::Attr::BEGIN@1833 at line 1833 of XML/LibXML.pm
# once (11µs+2µs) by XML::LibXML::PI::BEGIN@1866 at line 1866 of XML/LibXML.pm
# once (11µs+2µs) by C4::Dates::BEGIN@39 at line 39 of C4/Dates.pm | ||||
11 | 152 | 118µs | my $callpack = caller; | ||
12 | 152 | 194µs | my (undef, @imports) = @_; | ||
13 | 152 | 34µs | my ($sym, $ch); | ||
14 | 152 | 641µs | foreach (@imports) { | ||
15 | 516 | 2.21ms | 516 | 803µs | if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) { # spent 803µs making 516 calls to vars::CORE:match, avg 2µs/call |
16 | 516 | 715µs | 516 | 223µs | if ($sym =~ /\W/) { # spent 223µs making 516 calls to vars::CORE:match, avg 431ns/call |
17 | # time for a more-detailed check-up | ||||
18 | if ($sym =~ /^\w+[[{].*[]}]$/) { | ||||
19 | require Carp; | ||||
20 | Carp::croak("Can't declare individual elements of hash or array"); | ||||
21 | } elsif (warnings::enabled() and length($sym) == 1 and $sym !~ tr/a-zA-Z//) { | ||||
22 | warnings::warn("No need to declare built-in vars"); | ||||
23 | } elsif (($^H &= strict::bits('vars'))) { | ||||
24 | require Carp; | ||||
25 | Carp::croak("'$_' is not a valid variable name under strict vars"); | ||||
26 | } | ||||
27 | } | ||||
28 | 516 | 855µs | 516 | 159µs | $sym = "${callpack}::$sym" unless $sym =~ /::/; # spent 159µs making 516 calls to vars::CORE:match, avg 308ns/call |
29 | *$sym = | ||||
30 | ( $ch eq "\$" ? \$$sym | ||||
31 | : $ch eq "\@" ? \@$sym | ||||
32 | : $ch eq "\%" ? \%$sym | ||||
33 | : $ch eq "\*" ? \*$sym | ||||
34 | : $ch eq "\&" ? \&$sym | ||||
35 | 516 | 1.39ms | : do { | ||
36 | require Carp; | ||||
37 | Carp::croak("'$_' is not a valid variable name"); | ||||
38 | }); | ||||
39 | } else { | ||||
40 | require Carp; | ||||
41 | Carp::croak("'$_' is not a valid variable name"); | ||||
42 | } | ||||
43 | } | ||||
44 | }; | ||||
45 | |||||
46 | 1 | 3µs | 1; | ||
47 | __END__ | ||||
sub vars::CORE:match; # opcode |