Filename | /usr/local/lib/perl5/5.24/vars.pm |
Statements | Executed 1840 statements in 23.3ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
115 | 115 | 97 | 16.3ms | 21.1ms | import | vars::
1029 | 3 | 1 | 4.78ms | 4.78ms | CORE:match (opcode) | vars::
1 | 1 | 1 | 503µs | 1.20ms | BEGIN@7 | vars::
1 | 1 | 1 | 51µs | 112µs | BEGIN@8 | vars::
1 | 1 | 1 | 50µs | 50µs | BEGIN@3 | vars::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package vars; | ||||
2 | |||||
3 | 2 | 135µs | 1 | 50µs | # spent 50µs within vars::BEGIN@3 which was called:
# once (50µs+0s) by Config::BEGIN@11 at line 3 # spent 50µs making 1 call to vars::BEGIN@3 |
4 | |||||
5 | 1 | 3µs | our $VERSION = '1.03'; | ||
6 | |||||
7 | 2 | 539µs | 2 | 1.89ms | # spent 1.20ms (503µs+694µs) within vars::BEGIN@7 which was called:
# once (503µs+694µs) by Config::BEGIN@11 at line 7 # spent 1.20ms making 1 call to vars::BEGIN@7
# spent 694µs making 1 call to warnings::register::import |
8 | 2 | 729µs | 2 | 172µs | # spent 112µs (51+61) within vars::BEGIN@8 which was called:
# once (51µs+61µs) by Config::BEGIN@11 at line 8 # spent 112µs making 1 call to vars::BEGIN@8
# spent 60µs making 1 call to strict::import |
9 | |||||
10 | # spent 21.1ms (16.3+4.78) within vars::import which was called 115 times, avg 183µs/call:
# once (1.19ms+316µs) by Mail::SpamAssassin::Conf::BEGIN@94 at line 109 of Mail/SpamAssassin/Conf.pm
# once (525µs+168µs) by Pod::Escapes::BEGIN@6 at line 16 of Pod/Escapes.pm
# once (511µs+146µs) by Mail::SpamAssassin::BEGIN@90 at line 95 of Mail/SpamAssassin.pm
# once (436µs+128µs) by main::BEGIN@28 at line 33 of /usr/local/bin/sa-learn
# once (404µs+116µs) by Getopt::Long::BEGIN@45 at line 45 of Getopt/Long.pm
# once (403µs+116µs) by Mail::SpamAssassin::BayesStore::DBM::BEGIN@43 at line 50 of Mail/SpamAssassin/BayesStore/DBM.pm
# once (316µs+133µs) by NetAddr::IP::Lite::BEGIN@33 at line 33 of NetAddr/IP/Lite.pm
# once (328µs+91µs) by version::BEGIN@11 at line 11 of version.pm
# once (281µs+111µs) by NetAddr::IP::BEGIN@25 at line 32 of NetAddr/IP.pm
# once (307µs+80µs) by Pod::Simple::BEGIN@13 at line 18 of Pod/Simple.pm
# once (292µs+88µs) by Getopt::Long::BEGIN@48 at line 49 of Getopt/Long.pm
# once (275µs+101µs) by Net::SSLeay::BEGIN@18 at line 18 of Net/SSLeay.pm
# once (246µs+91µs) by NetAddr::IP::InetBase::BEGIN@8 at line 8 of NetAddr/IP/InetBase.pm
# once (263µs+66µs) by Getopt::Long::BEGIN@51 at line 51 of Getopt/Long.pm
# once (263µs+62µs) by Socket6::BEGIN@39 at line 39 of Socket6.pm
# once (241µs+51µs) by NetAddr::IP::Util::BEGIN@8 at line 8 of NetAddr/IP/Util.pm
# once (240µs+48µs) by Mail::SpamAssassin::Constants::BEGIN@33 at line 35 of Mail/SpamAssassin/Constants.pm
# once (211µs+62µs) by HTML::Entities::BEGIN@139 at line 139 of HTML/Entities.pm
# once (197µs+63µs) by Cwd::BEGIN@4 at line 4 of Cwd.pm
# once (198µs+60µs) by Razor2::Syslog::BEGIN@3 at line 3 of Razor2/Syslog.pm
# once (191µs+66µs) by Getopt::Long::BEGIN@46 at line 46 of Getopt/Long.pm
# once (202µs+55µs) by Mail::SpamAssassin::Plugin::Bayes::BEGIN@68 at line 73 of Mail/SpamAssassin/Plugin/Bayes.pm
# once (200µs+51µs) by Razor2::Preproc::deHTMLxs::BEGIN@4 at line 4 of Razor2/Preproc/deHTMLxs.pm
# once (210µs+40µs) by Pod::Text::BEGIN@30 at line 30 of Pod/Text.pm
# once (179µs+68µs) by Digest::SHA::BEGIN@7 at line 7 of Digest/SHA.pm
# once (176µs+68µs) by File::Path::BEGIN@20 at line 20 of File/Path.pm
# once (186µs+55µs) by MIME::Base64::BEGIN@4 at line 4 of MIME/Base64.pm
# once (197µs+42µs) by Mail::SpamAssassin::NetSet::BEGIN@31 at line 33 of Mail/SpamAssassin/NetSet.pm
# once (186µs+48µs) by Mail::SpamAssassin::ArchiveIterator::BEGIN@36 at line 41 of Mail/SpamAssassin/ArchiveIterator.pm
# once (173µs+56µs) by Mail::SpamAssassin::Util::BEGIN@55 at line 58 of Mail/SpamAssassin/Util.pm
# once (170µs+56µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@38 at line 40 of Mail/SpamAssassin/Dns.pm
# once (151µs+67µs) by Mail::SpamAssassin::Plugin::FreeMail::BEGIN@114 at line 114 of Mail/SpamAssassin/Plugin/FreeMail.pm
# once (172µs+46µs) by Time::Local::BEGIN@8 at line 8 of Time/Local.pm
# once (152µs+61µs) by Term::ReadKey::BEGIN@317 at line 317 of Term/ReadKey.pm
# once (159µs+54µs) by version::regex::BEGIN@5 at line 5 of version/regex.pm
# once (157µs+54µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@66 at line 68 of Mail/SpamAssassin/PerMsgStatus.pm
# once (164µs+41µs) by Net::Patricia::BEGIN@33 at line 33 of Net/Patricia.pm
# once (145µs+57µs) by Razor2::String::BEGIN@12 at line 12 of Razor2/String.pm
# once (162µs+41µs) by MIME::QuotedPrint::BEGIN@4 at line 4 of MIME/QuotedPrint.pm
# once (160µs+37µs) by IO::Socket::SSL::BEGIN@282 at line 282 of IO/Socket/SSL.pm
# once (147µs+48µs) by Pod::Usage::BEGIN@14 at line 14 of Pod/Usage.pm
# once (137µs+55µs) by Mail::SpamAssassin::Plugin::AskDNS::BEGIN@195 at line 195 of Mail/SpamAssassin/Plugin/AskDNS.pm
# once (150µs+29µs) by Getopt::Long::BEGIN@26 at line 26 of Getopt/Long.pm
# once (132µs+45µs) by Digest::SHA1::BEGIN@4 at line 4 of Digest/SHA1.pm
# once (122µs+38µs) by Mail::SpamAssassin::Logger::BEGIN@45 at line 45 of Mail/SpamAssassin/Logger.pm
# once (114µs+42µs) by Term::ReadKey::BEGIN@290 at line 290 of Term/ReadKey.pm
# once (97µs+57µs) by Net::Patricia::AF_INET::BEGIN@150 at line 150 of Net/Patricia.pm
# once (116µs+29µs) by Config::BEGIN@11 at line 11 of Config.pm
# once (107µs+38µs) by Mail::SpamAssassin::Plugin::MIMEHeader::BEGIN@70 at line 70 of Mail/SpamAssassin/Plugin/MIMEHeader.pm
# once (110µs+34µs) by HTML::Parser::BEGIN@4 at line 4 of HTML/Parser.pm
# once (115µs+25µs) by NetAddr::IP::InetBase::BEGIN@125 at line 125 of NetAddr/IP/InetBase.pm
# once (109µs+30µs) by Mail::SpamAssassin::PluginHandler::BEGIN@37 at line 39 of Mail/SpamAssassin/PluginHandler.pm
# once (106µs+31µs) by Net::Patricia::AF_INET6::BEGIN@237 at line 237 of Net/Patricia.pm
# once (102µs+31µs) by Razor2::Client::Version::BEGIN@13 at line 13 of Razor2/Client/Version.pm
# once (93µs+38µs) by File::Spec::BEGIN@4 at line 4 of File/Spec.pm
# once (94µs+36µs) by Mail::SpamAssassin::Plugin::BEGIN@105 at line 107 of Mail/SpamAssassin/Plugin.pm
# once (111µs+18µs) by Razor2::Client::Core::BEGIN@20 at line 20 of Razor2/Client/Core.pm
# once (99µs+25µs) by Mail::SpamAssassin::Plugin::Check::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/Check.pm
# once (80µs+36µs) by IO::Select::BEGIN@11 at line 11 of IO/Select.pm
# once (98µs+16µs) by HTML::Entities::BEGIN@140 at line 140 of HTML/Entities.pm
# once (87µs+26µs) by Razor2::Client::Agent::BEGIN@26 at line 26 of Razor2/Client/Agent.pm
# once (77µs+21µs) by Mail::SpamAssassin::Plugin::URIDetail::BEGIN@78 at line 78 of Mail/SpamAssassin/Plugin/URIDetail.pm
# once (72µs+25µs) by Mail::SpamAssassin::Constants::BEGIN@30 at line 30 of Mail/SpamAssassin/Constants.pm
# once (75µs+21µs) by Mail::SpamAssassin::Plugin::WhiteListSubject::BEGIN@52 at line 52 of Mail/SpamAssassin/Plugin/WhiteListSubject.pm
# once (72µs+21µs) by base::BEGIN@5 at line 5 of base.pm
# once (80µs+12µs) by Mail::SpamAssassin::Plugin::ReplaceTags::BEGIN@61 at line 61 of Mail/SpamAssassin/Plugin/ReplaceTags.pm
# once (71µs+20µs) by Term::ReadKey::BEGIN@283 at line 283 of Term/ReadKey.pm
# once (69µs+21µs) by Mail::SpamAssassin::Plugin::DKIM::BEGIN@131 at line 131 of Mail/SpamAssassin/Plugin/DKIM.pm
# once (69µs+20µs) by Mail::SpamAssassin::Plugin::HeaderEval::BEGIN@31 at line 31 of Mail/SpamAssassin/Plugin/HeaderEval.pm
# once (78µs+10µs) by Mail::SpamAssassin::Plugin::DNSEval::BEGIN@37 at line 37 of Mail/SpamAssassin/Plugin/DNSEval.pm
# once (60µs+28µs) by Getopt::Long::BEGIN@19 at line 19 of Getopt/Long.pm
# once (77µs+10µs) by NetAddr::IP::Util_IS::BEGIN@8 at line 8 of NetAddr/IP/Util_IS.pm
# once (64µs+23µs) by Mail::SpamAssassin::Locales::BEGIN@25 at line 27 of Mail/SpamAssassin/Locales.pm
# once (64µs+24µs) by Mail::SpamAssassin::Plugin::TxRep::BEGIN@209 at line 209 of Mail/SpamAssassin/Plugin/TxRep.pm
# once (62µs+24µs) by Digest::base::BEGIN@4 at line 4 of Digest/base.pm
# once (62µs+24µs) by Mail::SpamAssassin::Locker::BEGIN@29 at line 31 of Mail/SpamAssassin/Locker.pm
# once (74µs+11µs) by File::Spec::Unix::BEGIN@4 at line 4 of File/Spec/Unix.pm
# once (58µs+25µs) by Net::CIDR::Lite::BEGIN@4 at line 4 of Net/CIDR/Lite.pm
# once (66µs+15µs) by Mail::SpamAssassin::PersistentAddrList::BEGIN@54 at line 56 of Mail/SpamAssassin/PersistentAddrList.pm
# once (60µs+21µs) by Mail::SpamAssassin::Conf::SQL::BEGIN@51 at line 53 of Mail/SpamAssassin/Conf/SQL.pm
# once (72µs+9µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@80 at line 80 of Mail/SpamAssassin/PerMsgStatus.pm
# once (66µs+14µs) by Mail::SpamAssassin::Plugin::SpamCop::BEGIN@55 at line 55 of Mail/SpamAssassin/Plugin/SpamCop.pm
# once (56µs+24µs) by Mail::SpamAssassin::Plugin::URIEval::BEGIN@28 at line 28 of Mail/SpamAssassin/Plugin/URIEval.pm
# once (71µs+9µs) by Mail::SpamAssassin::Timeout::BEGIN@95 at line 95 of Mail/SpamAssassin/Timeout.pm
# once (64µs+15µs) by Mail::SpamAssassin::Locker::UnixNFSSafe::BEGIN@33 at line 35 of Mail/SpamAssassin/Locker/UnixNFSSafe.pm
# once (57µs+22µs) by Pod::Simple::LinkSection::BEGIN@10 at line 10 of Pod/Simple/LinkSection.pm
# once (59µs+20µs) by Sys::Syslog::BEGIN@77 at line 77 of Sys/Syslog.pm
# once (58µs+20µs) by Pod::Simple::BlackBox::BEGIN@24 at line 24 of Pod/Simple/BlackBox.pm
# once (59µs+18µs) by Mail::SpamAssassin::Conf::LDAP::BEGIN@51 at line 53 of Mail/SpamAssassin/Conf/LDAP.pm
# once (68µs+9µs) by Mail::SpamAssassin::Timeout::BEGIN@93 at line 93 of Mail/SpamAssassin/Timeout.pm
# once (58µs+19µs) by Mail::SpamAssassin::AsyncLoop::BEGIN@50 at line 50 of Mail/SpamAssassin/AsyncLoop.pm
# once (56µs+21µs) by Mail::SpamAssassin::PerMsgLearner::BEGIN@59 at line 61 of Mail/SpamAssassin/PerMsgLearner.pm
# once (54µs+22µs) by Mail::SpamAssassin::Timeout::BEGIN@64 at line 66 of Mail/SpamAssassin/Timeout.pm
# once (61µs+16µs) by Mail::SpamAssassin::Logger::Stderr::BEGIN@40 at line 40 of Mail/SpamAssassin/Logger/Stderr.pm
# once (59µs+16µs) by Razor2::Client::Config::BEGIN@14 at line 14 of Razor2/Client/Config.pm
# once (60µs+15µs) by Mail::SpamAssassin::Plugin::Razor2::BEGIN@51 at line 51 of Mail/SpamAssassin/Plugin/Razor2.pm
# once (50µs+24µs) by Mail::SpamAssassin::RegistryBoundaries::BEGIN@34 at line 34 of Mail/SpamAssassin/RegistryBoundaries.pm
# once (62µs+11µs) by Mail::SpamAssassin::Plugin::RelayEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/RelayEval.pm
# once (61µs+13µs) by Mail::SpamAssassin::Plugin::ImageInfo::BEGIN@90 at line 90 of Mail/SpamAssassin/Plugin/ImageInfo.pm
# once (62µs+12µs) by Mail::SpamAssassin::Plugin::MIMEEval::BEGIN@31 at line 31 of Mail/SpamAssassin/Plugin/MIMEEval.pm
# once (56µs+16µs) by Mail::SpamAssassin::Plugin::SPF::BEGIN@44 at line 44 of Mail/SpamAssassin/Plugin/SPF.pm
# once (60µs+12µs) by Mail::SpamAssassin::Plugin::AutoLearnThreshold::BEGIN@61 at line 61 of Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm
# once (57µs+14µs) by Mail::SpamAssassin::Message::BEGIN@60 at line 60 of Mail/SpamAssassin/Message.pm
# once (54µs+16µs) by Mail::SpamAssassin::Plugin::URIDNSBL::BEGIN@304 at line 304 of Mail/SpamAssassin/Plugin/URIDNSBL.pm
# once (57µs+13µs) by Mail::SpamAssassin::Plugin::BodyEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/BodyEval.pm
# once (59µs+11µs) by Mail::SpamAssassin::Plugin::HTMLEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/HTMLEval.pm
# once (56µs+14µs) by Config::BEGIN@7 at line 7 of Config_heavy.pl
# once (57µs+12µs) by Mail::SpamAssassin::Plugin::WLBLEval::BEGIN@28 at line 28 of Mail/SpamAssassin/Plugin/WLBLEval.pm
# once (56µs+13µs) by Mail::SpamAssassin::DnsResolver::BEGIN@56 at line 56 of Mail/SpamAssassin/DnsResolver.pm
# once (51µs+17µs) by Mail::SpamAssassin::Plugin::Hashcash::BEGIN@105 at line 105 of Mail/SpamAssassin/Plugin/Hashcash.pm
# once (56µs+12µs) by Mail::SpamAssassin::Conf::Parser::BEGIN@148 at line 150 of Mail/SpamAssassin/Conf/Parser.pm
# once (53µs+14µs) by Mail::SpamAssassin::Plugin::HTTPSMismatch::BEGIN@27 at line 27 of Mail/SpamAssassin/Plugin/HTTPSMismatch.pm
# once (50µs+14µs) by Pod::Simple::LinkSection::BEGIN@5 at line 5 of Pod/Simple/LinkSection.pm
# once (45µs+9µs) by Sys::Syslog::BEGIN@87 at line 87 of Sys/Syslog.pm
# once (44µs+9µs) by Getopt::Long::BEGIN@22 at line 22 of Getopt/Long.pm | ||||
11 | 115 | 353µs | my $callpack = caller; | ||
12 | 115 | 605µs | my (undef, @imports) = @_; | ||
13 | 115 | 241µs | my ($sym, $ch); | ||
14 | 115 | 2.05ms | foreach (@imports) { | ||
15 | 343 | 7.35ms | 343 | 3.02ms | if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) { # spent 3.02ms making 343 calls to vars::CORE:match, avg 9µs/call |
16 | 343 | 3.47ms | 343 | 901µs | if ($sym =~ /\W/) { # spent 901µs making 343 calls to vars::CORE:match, avg 3µ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 | 3.93ms | 343 | 865µs | $sym = "${callpack}::$sym" unless $sym =~ /::/; # spent 865µs making 343 calls to vars::CORE:match, avg 3µ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 | 3.92ms | : 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 |