Filename | /usr/local/lib/perl5/5.24/vars.pm |
Statements | Executed 1840 statements in 17.6ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
115 | 115 | 97 | 12.2ms | 15.8ms | import | vars::
1029 | 3 | 1 | 3.56ms | 3.56ms | CORE:match (opcode) | vars::
1 | 1 | 1 | 464µs | 893µs | BEGIN@7 | vars::
1 | 1 | 1 | 52µs | 52µs | BEGIN@3 | vars::
1 | 1 | 1 | 17µs | 66µs | BEGIN@8 | vars::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package vars; | ||||
2 | |||||
3 | 2 | 129µs | 1 | 52µs | # spent 52µs within vars::BEGIN@3 which was called:
# once (52µs+0s) by Config::BEGIN@11 at line 3 # spent 52µs making 1 call to vars::BEGIN@3 |
4 | |||||
5 | 1 | 2µs | our $VERSION = '1.03'; | ||
6 | |||||
7 | 2 | 494µs | 2 | 1.32ms | # spent 893µs (464+430) within vars::BEGIN@7 which was called:
# once (464µs+430µs) by Config::BEGIN@11 at line 7 # spent 893µs making 1 call to vars::BEGIN@7
# spent 430µs making 1 call to warnings::register::import |
8 | 2 | 694µs | 2 | 115µs | # spent 66µs (17+49) within vars::BEGIN@8 which was called:
# once (17µs+49µs) by Config::BEGIN@11 at line 8 # spent 66µs making 1 call to vars::BEGIN@8
# spent 49µs making 1 call to strict::import |
9 | |||||
10 | # spent 15.8ms (12.2+3.56) within vars::import which was called 115 times, avg 137µs/call:
# once (742µs+241µs) by Mail::SpamAssassin::Conf::BEGIN@94 at line 109 of Mail/SpamAssassin/Conf.pm
# once (426µs+127µs) by main::BEGIN@28 at line 33 of /usr/local/bin/sa-learn
# once (408µs+119µs) by Mail::SpamAssassin::BayesStore::DBM::BEGIN@43 at line 50 of Mail/SpamAssassin/BayesStore/DBM.pm
# once (358µs+117µs) by Pod::Escapes::BEGIN@6 at line 16 of Pod/Escapes.pm
# once (307µs+90µs) by Mail::SpamAssassin::BEGIN@90 at line 95 of Mail/SpamAssassin.pm
# once (276µs+73µs) by Getopt::Long::BEGIN@45 at line 45 of Getopt/Long.pm
# once (230µs+69µs) by NetAddr::IP::Lite::BEGIN@33 at line 33 of NetAddr/IP/Lite.pm
# once (221µs+66µs) by version::BEGIN@11 at line 11 of version.pm
# once (194µs+62µs) by Pod::Simple::BEGIN@13 at line 18 of Pod/Simple.pm
# once (195µs+59µs) by Net::SSLeay::BEGIN@18 at line 18 of Net/SSLeay.pm
# once (183µs+55µs) by Socket6::BEGIN@39 at line 39 of Socket6.pm
# once (185µs+52µs) by NetAddr::IP::BEGIN@25 at line 32 of NetAddr/IP.pm
# once (180µs+50µs) by Getopt::Long::BEGIN@51 at line 51 of Getopt/Long.pm
# once (175µs+53µs) by Getopt::Long::BEGIN@48 at line 49 of Getopt/Long.pm
# once (172µs+55µs) by NetAddr::IP::InetBase::BEGIN@8 at line 8 of NetAddr/IP/InetBase.pm
# once (160µs+45µs) by Mail::SpamAssassin::Plugin::Bayes::BEGIN@68 at line 73 of Mail/SpamAssassin/Plugin/Bayes.pm
# once (160µs+45µs) by NetAddr::IP::Util::BEGIN@8 at line 8 of NetAddr/IP/Util.pm
# once (148µs+53µs) by Digest::SHA::BEGIN@7 at line 7 of Digest/SHA.pm
# once (148µs+52µs) by Razor2::Preproc::deHTMLxs::BEGIN@4 at line 4 of Razor2/Preproc/deHTMLxs.pm
# once (154µs+40µs) by Mail::SpamAssassin::Constants::BEGIN@33 at line 35 of Mail/SpamAssassin/Constants.pm
# once (145µs+44µs) by Pod::Text::BEGIN@30 at line 30 of Pod/Text.pm
# once (137µs+48µs) by Time::Local::BEGIN@8 at line 8 of Time/Local.pm
# once (141µs+38µs) by Cwd::BEGIN@4 at line 4 of Cwd.pm
# once (140µs+39µs) by Mail::SpamAssassin::ArchiveIterator::BEGIN@36 at line 41 of Mail/SpamAssassin/ArchiveIterator.pm
# once (137µs+40µs) by Mail::SpamAssassin::NetSet::BEGIN@31 at line 33 of Mail/SpamAssassin/NetSet.pm
# once (138µs+38µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@38 at line 40 of Mail/SpamAssassin/Dns.pm
# once (132µs+44µs) by File::Path::BEGIN@20 at line 20 of File/Path.pm
# once (133µs+40µs) by HTML::Entities::BEGIN@139 at line 139 of HTML/Entities.pm
# once (132µs+40µs) by MIME::Base64::BEGIN@4 at line 4 of MIME/Base64.pm
# once (127µs+39µs) by Mail::SpamAssassin::Util::BEGIN@55 at line 58 of Mail/SpamAssassin/Util.pm
# once (129µs+36µs) by Razor2::Syslog::BEGIN@3 at line 3 of Razor2/Syslog.pm
# once (131µs+32µs) by Mail::SpamAssassin::Plugin::AskDNS::BEGIN@195 at line 195 of Mail/SpamAssassin/Plugin/AskDNS.pm
# once (122µs+41µs) by Getopt::Long::BEGIN@46 at line 46 of Getopt/Long.pm
# once (118µs+37µs) by version::regex::BEGIN@5 at line 5 of version/regex.pm
# once (116µs+38µs) by IO::Socket::SSL::BEGIN@282 at line 282 of IO/Socket/SSL.pm
# once (115µs+35µs) by MIME::QuotedPrint::BEGIN@4 at line 4 of MIME/QuotedPrint.pm
# once (117µs+33µs) by Pod::Usage::BEGIN@14 at line 14 of Pod/Usage.pm
# once (116µs+32µs) by Mail::SpamAssassin::Plugin::FreeMail::BEGIN@114 at line 114 of Mail/SpamAssassin/Plugin/FreeMail.pm
# once (109µs+31µs) by Mail::SpamAssassin::Logger::BEGIN@45 at line 45 of Mail/SpamAssassin/Logger.pm
# once (110µs+30µs) by Razor2::String::BEGIN@12 at line 12 of Razor2/String.pm
# once (105µs+31µs) by Digest::SHA1::BEGIN@4 at line 4 of Digest/SHA1.pm
# once (104µs+31µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@66 at line 68 of Mail/SpamAssassin/PerMsgStatus.pm
# once (96µs+32µs) by Term::ReadKey::BEGIN@317 at line 317 of Term/ReadKey.pm
# once (96µs+29µs) by Mail::SpamAssassin::Plugin::Check::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/Check.pm
# once (97µs+27µs) by Net::Patricia::BEGIN@33 at line 33 of Net/Patricia.pm
# once (96µs+25µs) by Getopt::Long::BEGIN@26 at line 26 of Getopt/Long.pm
# once (93µs+25µs) by Term::ReadKey::BEGIN@290 at line 290 of Term/ReadKey.pm
# once (92µs+23µs) by Config::BEGIN@11 at line 11 of Config.pm
# once (84µs+31µs) by Razor2::Client::Agent::BEGIN@26 at line 26 of Razor2/Client/Agent.pm
# once (84µs+30µs) by File::Spec::BEGIN@4 at line 4 of File/Spec.pm
# once (83µs+23µs) by Razor2::Client::Version::BEGIN@13 at line 13 of Razor2/Client/Version.pm
# once (80µs+24µs) by Mail::SpamAssassin::Plugin::BEGIN@105 at line 107 of Mail/SpamAssassin/Plugin.pm
# once (78µs+24µs) by HTML::Parser::BEGIN@4 at line 4 of HTML/Parser.pm
# once (78µs+21µs) by IO::Select::BEGIN@11 at line 11 of IO/Select.pm
# once (70µs+30µs) by Pod::Simple::LinkSection::BEGIN@5 at line 5 of Pod/Simple/LinkSection.pm
# once (77µs+22µs) by NetAddr::IP::InetBase::BEGIN@125 at line 125 of NetAddr/IP/InetBase.pm
# once (75µs+22µs) by Net::Patricia::AF_INET::BEGIN@150 at line 150 of Net/Patricia.pm
# once (76µs+20µs) by Mail::SpamAssassin::Plugin::MIMEHeader::BEGIN@70 at line 70 of Mail/SpamAssassin/Plugin/MIMEHeader.pm
# once (72µs+20µs) by Mail::SpamAssassin::PluginHandler::BEGIN@37 at line 39 of Mail/SpamAssassin/PluginHandler.pm
# once (72µs+19µs) by Net::Patricia::AF_INET6::BEGIN@237 at line 237 of Net/Patricia.pm
# once (73µs+17µs) by Razor2::Client::Core::BEGIN@20 at line 20 of Razor2/Client/Core.pm
# once (64µs+25µs) by Pod::Simple::LinkSection::BEGIN@10 at line 10 of Pod/Simple/LinkSection.pm
# once (70µs+14µs) by Mail::SpamAssassin::Locales::BEGIN@25 at line 27 of Mail/SpamAssassin/Locales.pm
# once (72µs+12µs) by Mail::SpamAssassin::Plugin::MIMEEval::BEGIN@31 at line 31 of Mail/SpamAssassin/Plugin/MIMEEval.pm
# once (66µs+17µs) by HTML::Entities::BEGIN@140 at line 140 of HTML/Entities.pm
# once (61µs+22µs) by Mail::SpamAssassin::Conf::SQL::BEGIN@51 at line 53 of Mail/SpamAssassin/Conf/SQL.pm
# once (61µs+20µs) by Sys::Syslog::BEGIN@77 at line 77 of Sys/Syslog.pm
# once (59µs+21µs) by Mail::SpamAssassin::PerMsgLearner::BEGIN@59 at line 61 of Mail/SpamAssassin/PerMsgLearner.pm
# once (61µs+19µs) by Mail::SpamAssassin::Plugin::TxRep::BEGIN@213 at line 213 of Mail/SpamAssassin/Plugin/TxRep.pm
# once (63µs+15µs) by Mail::SpamAssassin::Plugin::SpamCop::BEGIN@55 at line 55 of Mail/SpamAssassin/Plugin/SpamCop.pm
# once (58µs+19µs) by Mail::SpamAssassin::Locker::BEGIN@29 at line 31 of Mail/SpamAssassin/Locker.pm
# once (60µs+17µs) by Mail::SpamAssassin::Plugin::Hashcash::BEGIN@105 at line 105 of Mail/SpamAssassin/Plugin/Hashcash.pm
# once (62µs+15µs) by Mail::SpamAssassin::Logger::Stderr::BEGIN@40 at line 40 of Mail/SpamAssassin/Logger/Stderr.pm
# once (62µs+14µs) by Mail::SpamAssassin::Plugin::HTTPSMismatch::BEGIN@27 at line 27 of Mail/SpamAssassin/Plugin/HTTPSMismatch.pm
# once (61µs+15µs) by Mail::SpamAssassin::Plugin::SPF::BEGIN@44 at line 44 of Mail/SpamAssassin/Plugin/SPF.pm
# once (60µs+15µs) by Mail::SpamAssassin::PersistentAddrList::BEGIN@54 at line 56 of Mail/SpamAssassin/PersistentAddrList.pm
# once (60µs+14µs) by Mail::SpamAssassin::Plugin::RelayEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/RelayEval.pm
# once (58µs+16µs) by Razor2::Client::Config::BEGIN@14 at line 14 of Razor2/Client/Config.pm
# once (59µs+14µs) by Mail::SpamAssassin::Plugin::ImageInfo::BEGIN@90 at line 90 of Mail/SpamAssassin/Plugin/ImageInfo.pm
# once (54µs+17µs) by Mail::SpamAssassin::Plugin::ReplaceTags::BEGIN@61 at line 61 of Mail/SpamAssassin/Plugin/ReplaceTags.pm
# once (47µs+24µs) by Getopt::Long::BEGIN@19 at line 19 of Getopt/Long.pm
# once (59µs+12µs) by Mail::SpamAssassin::Plugin::URIDNSBL::BEGIN@304 at line 304 of Mail/SpamAssassin/Plugin/URIDNSBL.pm
# once (58µs+13µs) by Mail::SpamAssassin::Message::BEGIN@60 at line 60 of Mail/SpamAssassin/Message.pm
# once (55µs+15µs) by Config::BEGIN@7 at line 7 of Config_heavy.pl
# once (56µs+13µs) by Mail::SpamAssassin::Plugin::Razor2::BEGIN@51 at line 51 of Mail/SpamAssassin/Plugin/Razor2.pm
# once (56µs+12µs) by Mail::SpamAssassin::Plugin::URIEval::BEGIN@28 at line 28 of Mail/SpamAssassin/Plugin/URIEval.pm
# once (51µs+16µs) by Net::CIDR::Lite::BEGIN@4 at line 4 of Net/CIDR/Lite.pm
# once (52µs+15µs) by Term::ReadKey::BEGIN@283 at line 283 of Term/ReadKey.pm
# once (50µs+16µs) by Mail::SpamAssassin::Plugin::WhiteListSubject::BEGIN@52 at line 52 of Mail/SpamAssassin/Plugin/WhiteListSubject.pm
# once (52µs+14µs) by Mail::SpamAssassin::RegistryBoundaries::BEGIN@34 at line 34 of Mail/SpamAssassin/RegistryBoundaries.pm
# once (52µs+13µs) by Mail::SpamAssassin::Plugin::AutoLearnThreshold::BEGIN@61 at line 61 of Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm
# once (56µs+8µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@80 at line 80 of Mail/SpamAssassin/PerMsgStatus.pm
# once (48µs+16µs) by Digest::base::BEGIN@4 at line 4 of Digest/base.pm
# once (52µs+12µs) by Mail::SpamAssassin::Conf::LDAP::BEGIN@51 at line 53 of Mail/SpamAssassin/Conf/LDAP.pm
# once (51µs+12µs) by Mail::SpamAssassin::Plugin::DKIM::BEGIN@131 at line 131 of Mail/SpamAssassin/Plugin/DKIM.pm
# once (52µs+11µs) by Mail::SpamAssassin::Plugin::BodyEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/BodyEval.pm
# once (51µs+11µs) by Mail::SpamAssassin::Plugin::DNSEval::BEGIN@37 at line 37 of Mail/SpamAssassin/Plugin/DNSEval.pm
# once (51µs+11µs) by Mail::SpamAssassin::Conf::Parser::BEGIN@148 at line 150 of Mail/SpamAssassin/Conf/Parser.pm
# once (47µs+15µs) by NetAddr::IP::Util_IS::BEGIN@8 at line 8 of NetAddr/IP/Util_IS.pm
# once (49µs+12µs) by Mail::SpamAssassin::Plugin::URIDetail::BEGIN@78 at line 78 of Mail/SpamAssassin/Plugin/URIDetail.pm
# once (50µs+11µs) by Mail::SpamAssassin::Plugin::WLBLEval::BEGIN@28 at line 28 of Mail/SpamAssassin/Plugin/WLBLEval.pm
# once (49µs+10µs) by Mail::SpamAssassin::Plugin::HeaderEval::BEGIN@31 at line 31 of Mail/SpamAssassin/Plugin/HeaderEval.pm
# once (46µs+13µs) by Mail::SpamAssassin::Constants::BEGIN@30 at line 30 of Mail/SpamAssassin/Constants.pm
# once (48µs+10µs) by Mail::SpamAssassin::Locker::UnixNFSSafe::BEGIN@33 at line 35 of Mail/SpamAssassin/Locker/UnixNFSSafe.pm
# once (48µs+10µs) by Mail::SpamAssassin::DnsResolver::BEGIN@56 at line 56 of Mail/SpamAssassin/DnsResolver.pm
# once (45µs+12µs) by File::Spec::Unix::BEGIN@4 at line 4 of File/Spec/Unix.pm
# once (45µs+11µs) by Mail::SpamAssassin::Plugin::HTMLEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/HTMLEval.pm
# once (46µs+10µs) by Mail::SpamAssassin::Timeout::BEGIN@64 at line 66 of Mail/SpamAssassin/Timeout.pm
# once (44µs+11µs) by Pod::Simple::BlackBox::BEGIN@24 at line 24 of Pod/Simple/BlackBox.pm
# once (45µs+10µs) by Mail::SpamAssassin::AsyncLoop::BEGIN@50 at line 50 of Mail/SpamAssassin/AsyncLoop.pm
# once (42µs+11µs) by base::BEGIN@5 at line 5 of base.pm
# once (44µs+9µs) by Mail::SpamAssassin::Timeout::BEGIN@95 at line 95 of Mail/SpamAssassin/Timeout.pm
# once (42µs+9µs) by Getopt::Long::BEGIN@22 at line 22 of Getopt/Long.pm
# once (41µs+9µs) by Sys::Syslog::BEGIN@87 at line 87 of Sys/Syslog.pm
# once (40µs+9µs) by Mail::SpamAssassin::Timeout::BEGIN@93 at line 93 of Mail/SpamAssassin/Timeout.pm | ||||
11 | 115 | 340µs | my $callpack = caller; | ||
12 | 115 | 519µs | my (undef, @imports) = @_; | ||
13 | 115 | 216µs | my ($sym, $ch); | ||
14 | 115 | 1.42ms | foreach (@imports) { | ||
15 | 343 | 5.66ms | 343 | 1.98ms | if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) { # spent 1.98ms making 343 calls to vars::CORE:match, avg 6µs/call |
16 | 343 | 2.55ms | 343 | 826µs | if ($sym =~ /\W/) { # spent 826µs making 343 calls to vars::CORE:match, avg 2µs/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 | 343 | 2.88ms | 343 | 748µs | $sym = "${callpack}::$sym" unless $sym =~ /::/; # spent 748µs making 343 calls to vars::CORE:match, avg 2µs/call |
29 | *$sym = | ||||
30 | ( $ch eq "\$" ? \$$sym | ||||
31 | : $ch eq "\@" ? \@$sym | ||||
32 | : $ch eq "\%" ? \%$sym | ||||
33 | : $ch eq "\*" ? \*$sym | ||||
34 | : $ch eq "\&" ? \&$sym | ||||
35 | 343 | 2.68ms | : 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 | 8µs | 1; | ||
47 | __END__ | ||||
sub vars::CORE:match; # opcode |