Filename | /Users/timbo/perl5/perlbrew/perls/perl-5.18.2/lib/site_perl/5.18.2/PPI/Util.pm |
Statements | Executed 1026 statements in 188ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
478182 | 115 | 31 | 274ms | 274ms | TRUE (xsub) | PPI::Util::
144 | 1 | 1 | 170ms | 170ms | CORE:readline (opcode) | PPI::Util::
144 | 1 | 1 | 7.26ms | 187ms | _slurp | PPI::Util::
144 | 1 | 1 | 6.77ms | 6.77ms | CORE:open (opcode) | PPI::Util::
144 | 1 | 1 | 3.00ms | 3.00ms | CORE:close (opcode) | PPI::Util::
1 | 1 | 1 | 570µs | 900µs | BEGIN@7 | PPI::Util::
1 | 1 | 1 | 17µs | 58µs | BEGIN@8 | PPI::Util::
1 | 1 | 1 | 11µs | 23µs | BEGIN@5 | PPI::Util::
1 | 1 | 1 | 9µs | 57µs | BEGIN@18 | PPI::Util::
1 | 1 | 1 | 9µs | 9µs | BEGIN@11 | PPI::Util::
1 | 1 | 1 | 7µs | 39µs | BEGIN@22 | PPI::Util::
1 | 1 | 1 | 6µs | 43µs | BEGIN@10 | PPI::Util::
1 | 1 | 1 | 3µs | 3µs | BEGIN@6 | PPI::Util::
0 | 0 | 0 | 0s | 0s | _Document | PPI::Util::
0 | 0 | 0 | 0s | 0s | md5hex | PPI::Util::
0 | 0 | 0 | 0s | 0s | md5hex_file | PPI::Util::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package PPI::Util; | ||||
2 | |||||
3 | # Provides some common utility functions that can be imported | ||||
4 | |||||
5 | 2 | 19µs | 2 | 35µs | # spent 23µs (11+12) within PPI::Util::BEGIN@5 which was called:
# once (11µs+12µs) by PPI::Element::BEGIN@29 at line 5 # spent 23µs making 1 call to PPI::Util::BEGIN@5
# spent 12µs making 1 call to strict::import |
6 | 2 | 16µs | 1 | 3µs | # spent 3µs within PPI::Util::BEGIN@6 which was called:
# once (3µs+0s) by PPI::Element::BEGIN@29 at line 6 # spent 3µs making 1 call to PPI::Util::BEGIN@6 |
7 | 2 | 94µs | 1 | 900µs | # spent 900µs (570+330) within PPI::Util::BEGIN@7 which was called:
# once (570µs+330µs) by PPI::Element::BEGIN@29 at line 7 # spent 900µs making 1 call to PPI::Util::BEGIN@7 |
8 | 2 | 24µs | 2 | 98µs | # spent 58µs (17+41) within PPI::Util::BEGIN@8 which was called:
# once (17µs+41µs) by PPI::Element::BEGIN@29 at line 8 # spent 58µs making 1 call to PPI::Util::BEGIN@8
# spent 41µs making 1 call to Exporter::import |
9 | |||||
10 | 2 | 34µs | 2 | 79µs | # spent 43µs (6+36) within PPI::Util::BEGIN@10 which was called:
# once (6µs+36µs) by PPI::Element::BEGIN@29 at line 10 # spent 43µs making 1 call to PPI::Util::BEGIN@10
# spent 36µs making 1 call to vars::import |
11 | # spent 9µs within PPI::Util::BEGIN@11 which was called:
# once (9µs+0s) by PPI::Element::BEGIN@29 at line 15 | ||||
12 | 1 | 300ns | $VERSION = '1.215'; | ||
13 | 1 | 5µs | @ISA = 'Exporter'; | ||
14 | 1 | 4µs | @EXPORT_OK = qw{_Document _slurp}; | ||
15 | 1 | 29µs | 1 | 9µs | } # spent 9µs making 1 call to PPI::Util::BEGIN@11 |
16 | |||||
17 | # Alarms are used to catch unexpectedly slow and complex documents | ||||
18 | 2 | 29µs | 2 | 105µs | # spent 57µs (9+48) within PPI::Util::BEGIN@18 which was called:
# once (9µs+48µs) by PPI::Element::BEGIN@29 at line 18 # spent 57µs making 1 call to PPI::Util::BEGIN@18
# spent 48µs making 1 call to constant::import |
19 | |||||
20 | # 5.8.7 was the first version to resolve the notorious | ||||
21 | # "unicode length caching" bug. See RT #FIXME | ||||
22 | 2 | 255µs | 2 | 71µs | # spent 39µs (7+32) within PPI::Util::BEGIN@22 which was called:
# once (7µs+32µs) by PPI::Element::BEGIN@29 at line 22 # spent 39µs making 1 call to PPI::Util::BEGIN@22
# spent 32µs making 1 call to constant::import |
23 | |||||
24 | # Common reusable true and false functions | ||||
25 | # This makes it easy to upgrade many places in PPI::XS | ||||
26 | sub TRUE () { 1 } | ||||
27 | sub FALSE () { '' } | ||||
28 | |||||
- - | |||||
33 | ##################################################################### | ||||
34 | # Functions | ||||
35 | |||||
36 | # Allows a sub that takes a L<PPI::Document> to handle the full range | ||||
37 | # of different things, including file names, SCALAR source, etc. | ||||
38 | sub _Document { | ||||
39 | shift if @_ > 1; | ||||
40 | return undef unless defined $_[0]; | ||||
41 | require PPI::Document; | ||||
42 | return PPI::Document->new(shift) unless ref $_[0]; | ||||
43 | return PPI::Document->new(shift) if _SCALAR0($_[0]); | ||||
44 | return PPI::Document->new(shift) if _ARRAY0($_[0]); | ||||
45 | return shift if _INSTANCE($_[0], 'PPI::Document'); | ||||
46 | return undef; | ||||
47 | } | ||||
48 | |||||
49 | # Provide a simple _slurp implementation | ||||
50 | # spent 187ms (7.26+180) within PPI::Util::_slurp which was called 144 times, avg 1.30ms/call:
# 144 times (7.26ms+180ms) by PPI::Tokenizer::new at line 153 of PPI/Tokenizer.pm, avg 1.30ms/call | ||||
51 | 144 | 71µs | my $file = shift; | ||
52 | 144 | 480µs | local $/ = undef; | ||
53 | 144 | 200µs | local *FILE; | ||
54 | 144 | 7.50ms | 144 | 6.77ms | open( FILE, '<', $file ) or return "open($file) failed: $!"; # spent 6.77ms making 144 calls to PPI::Util::CORE:open, avg 47µs/call |
55 | 144 | 173ms | 144 | 170ms | my $source = <FILE>; # spent 170ms making 144 calls to PPI::Util::CORE:readline, avg 1.18ms/call |
56 | 144 | 4.08ms | 144 | 3.00ms | close( FILE ) or return "close($file) failed: $!"; # spent 3.00ms making 144 calls to PPI::Util::CORE:close, avg 21µs/call |
57 | 144 | 2.63ms | return \$source; | ||
58 | } | ||||
59 | |||||
60 | # Provides a version of Digest::MD5's md5hex that explicitly | ||||
61 | # works on the unix-newlined version of the content. | ||||
62 | sub md5hex { | ||||
63 | my $string = shift; | ||||
64 | $string =~ s/(?:\015{1,2}\012|\015|\012)/\015/gs; | ||||
65 | Digest::MD5::md5_hex($string); | ||||
66 | } | ||||
67 | |||||
68 | # As above but slurps and calculates the id for a file by name | ||||
69 | sub md5hex_file { | ||||
70 | my $file = shift; | ||||
71 | my $content = _slurp($file); | ||||
72 | return undef unless ref $content; | ||||
73 | $$content =~ s/(?:\015{1,2}\012|\015|\012)/\n/gs; | ||||
74 | md5hex($$content); | ||||
75 | } | ||||
76 | |||||
77 | 1 | 2µs | 1; | ||
# spent 3.00ms within PPI::Util::CORE:close which was called 144 times, avg 21µs/call:
# 144 times (3.00ms+0s) by PPI::Util::_slurp at line 56, avg 21µs/call | |||||
# spent 6.77ms within PPI::Util::CORE:open which was called 144 times, avg 47µs/call:
# 144 times (6.77ms+0s) by PPI::Util::_slurp at line 54, avg 47µs/call | |||||
# spent 170ms within PPI::Util::CORE:readline which was called 144 times, avg 1.18ms/call:
# 144 times (170ms+0s) by PPI::Util::_slurp at line 55, avg 1.18ms/call | |||||
# spent 274ms within PPI::Util::TRUE which was called 478182 times, avg 574ns/call:
# 105472 times (57.6ms+0s) by PPI::Element::__eq at line 1089 of PPI/Element.pm, avg 546ns/call
# 82384 times (48.3ms+0s) by PPI::Tokenizer::get_token at line 266 of PPI/Tokenizer.pm, avg 587ns/call
# 30261 times (16.2ms+0s) by PPI::Element::snext_sibling at line 364 of PPI/Element.pm, avg 536ns/call
# 23156 times (13.2ms+0s) by PPI::Structure::tokens at line 278 of PPI/Structure.pm, avg 569ns/call
# 22718 times (14.1ms+0s) by PPI::Node::find at line 393 of PPI/Node.pm, avg 619ns/call
# 22718 times (12.3ms+0s) by PPI::Node::find at line 395 of PPI/Node.pm, avg 539ns/call
# 16620 times (9.35ms+0s) by PPI::Lexer::_get_token at line 1413 of PPI/Lexer.pm, avg 563ns/call
# 14319 times (7.56ms+0s) by Perl::Critic::Utils::is_hash_key at line 708 of Perl/Critic/Utils.pm, avg 528ns/call
# 14319 times (5.71ms+0s) by Perl::Critic::Utils::_is_followed_by_parens at line 733 of Perl/Critic/Utils.pm, avg 399ns/call
# 14000 times (8.12ms+0s) by Perl::Critic::Utils::_is_followed_by_parens at line 735 of Perl/Critic/Utils.pm, avg 580ns/call
# 11841 times (8.35ms+0s) by PPI::Tokenizer::get_token at line 287 of PPI/Tokenizer.pm, avg 705ns/call
# 11584 times (6.81ms+0s) by Perl::Critic::Utils::is_hash_key at line 715 of Perl/Critic/Utils.pm, avg 588ns/call
# 11584 times (6.48ms+0s) by Perl::Critic::Utils::is_hash_key at line 717 of Perl/Critic/Utils.pm, avg 559ns/call
# 11260 times (6.65ms+0s) by Perl::Critic::Utils::is_hash_key at line 723 of Perl/Critic/Utils.pm, avg 591ns/call
# 10451 times (6.54ms+0s) by PPI::Statement::new at line 203 of PPI/Statement.pm, avg 626ns/call
# 9610 times (5.22ms+0s) by PPI::Node::location at line 684 of PPI/Node.pm, avg 543ns/call
# 9549 times (6.50ms+0s) by PPI::Token::Whitespace::__TOKENIZER__on_line_end at line 417 of PPI/Token/Whitespace.pm, avg 681ns/call
# 6803 times (4.48ms+0s) by PPI::Lexer::_add_element at line 1446 of PPI/Lexer.pm, avg 659ns/call
# 2953 times (1.89ms+0s) by PPI::Lexer::_round at line 991 of PPI/Lexer.pm, avg 641ns/call
# 2743 times (1.53ms+0s) by PPI::Token::_QuoteEngine::__TOKENIZER__on_char at line 48 of PPI/Token/_QuoteEngine.pm, avg 558ns/call
# 2355 times (1.58ms+0s) by PPI::Statement::Compound::type at line 194 of PPI/Statement/Compound.pm, avg 673ns/call
# 2244 times (1.31ms+0s) by PPI::Structure::content at line 295 of PPI/Structure.pm, avg 586ns/call
# 2244 times (1.27ms+0s) by PPI::Structure::content at line 291 of PPI/Structure.pm, avg 564ns/call
# 2212 times (1.49ms+0s) by PPI::Lexer::_curly at line 1190 of PPI/Lexer.pm, avg 674ns/call
# 2212 times (1.28ms+0s) by PPI::Lexer::_curly at line 1193 of PPI/Lexer.pm, avg 581ns/call
# 2099 times (1.25ms+0s) by Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef::violates at line 40 of Perl/Critic/Policy/Subroutines/ProhibitExplicitReturnUndef.pm, avg 594ns/call
# 2099 times (1.24ms+0s) by Perl::Critic::Policy::Subroutines::ProhibitReturnSort::violates at line 40 of Perl/Critic/Policy/Subroutines/ProhibitReturnSort.pm, avg 592ns/call
# 2044 times (1.16ms+0s) by PPI::Lexer::_statement at line 500 of PPI/Lexer.pm, avg 567ns/call
# 1999 times (1.52ms+0s) by PPI::Token::Word::__TOKENIZER__literal at line 557 of PPI/Token/Word.pm, avg 762ns/call
# 1962 times (1.20ms+0s) by PPI::Lexer::_statement at line 542 of PPI/Lexer.pm, avg 613ns/call
# 1682 times (1.33ms+0s) by PPI::Token::_QuoteEngine::Simple::new at line 22 of PPI/Token/_QuoteEngine/Simple.pm, avg 788ns/call
# 1682 times (890µs+0s) by PPI::Token::_QuoteEngine::Simple::_fill at line 31 of PPI/Token/_QuoteEngine/Simple.pm, avg 529ns/call
# 1410 times (916µs+0s) by PPI::Statement::Include::module at line 125 of PPI/Statement/Include.pm, avg 649ns/call
# 1299 times (797µs+0s) by PPI::Statement::Variable::type at line 73 of PPI/Statement/Variable.pm, avg 613ns/call
# 1268 times (808µs+0s) by PPI::Statement::Include::type at line 92 of PPI/Statement/Include.pm, avg 637ns/call
# 1266 times (798µs+0s) by PPI::Statement::Include::version at line 266 of PPI/Statement/Include.pm, avg 631ns/call
# 1252 times (890µs+0s) by PPI::Token::Whitespace::__TOKENIZER__on_char at line 213 of PPI/Token/Whitespace.pm, avg 711ns/call
# 1159 times (614µs+0s) by PPI::Lexer::_curly at line 1244 of PPI/Lexer.pm, avg 530ns/call
# 1061 times (738µs+0s) by PPI::Token::_QuoteEngine::Full::new at line 149 of PPI/Token/_QuoteEngine/Full.pm, avg 696ns/call
# 1061 times (564µs+0s) by PPI::Token::_QuoteEngine::Full::_fill at line 173 of PPI/Token/_QuoteEngine/Full.pm, avg 532ns/call
# 982 times (629µs+0s) by Perl::Critic::Policy::Modules::RequireBarewordIncludes::violates at line 37 of Perl/Critic/Policy/Modules/RequireBarewordIncludes.pm, avg 640ns/call
# 572 times (305µs+0s) by PPI::Element::statement at line 284 of PPI/Element.pm, avg 533ns/call
# 498 times (300µs+0s) by PPI::Statement::Compound::type at line 204 of PPI/Statement/Compound.pm, avg 602ns/call
# 432 times (262µs+0s) by PPI::Lexer::_lex_end at line 680 of PPI/Lexer.pm, avg 607ns/call
# 362 times (206µs+0s) by PPI::Lexer::_statement at line 429 of PPI/Lexer.pm, avg 568ns/call
# 356 times (242µs+0s) by PPI::Lexer::_square at line 1030 of PPI/Lexer.pm, avg 681ns/call
# 339 times (192µs+0s) by PPI::Element::sprevious_sibling at line 412 of PPI/Element.pm, avg 565ns/call
# 329 times (227µs+0s) by PPI::Lexer::_continues at line 751 of PPI/Lexer.pm, avg 689ns/call
# 284 times (162µs+0s) by PPI::Structure::braces at line 198 of PPI/Structure.pm, avg 571ns/call
# 256 times (153µs+0s) by PPI::Lexer::_curly at line 1263 of PPI/Lexer.pm, avg 599ns/call
# 226 times (120µs+0s) by PPI::Element::next_sibling at line 341 of PPI/Element.pm, avg 532ns/call
# 216 times (132µs+0s) by PPI::Element::next_sibling at line 347 of PPI/Element.pm, avg 611ns/call
# 208 times (110µs+0s) by Perl::Critic::Annotation::_init at line 108 of Perl/Critic/Annotation.pm, avg 528ns/call
# 144 times (180µs+0s) by Perl::Critic::Document::_disable_shebang_fix at line 545 of Perl/Critic/Document.pm, avg 1µs/call
# 144 times (137µs+0s) by PPI::Document::new at line 216 of PPI/Document.pm, avg 952ns/call
# 144 times (118µs+0s) by Perl::Critic::Utils::shebang_line at line 1155 of Perl/Critic/Utils.pm, avg 816ns/call
# 144 times (104µs+0s) by Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict::violates at line 59 of Perl/Critic/Policy/TestingAndDebugging/RequireUseStrict.pm, avg 725ns/call
# 144 times (102µs+0s) by PPI::Node::find_first at line 463 of PPI/Node.pm, avg 708ns/call
# 144 times (99µs+0s) by PPI::Document::File::new at line 62 of PPI/Document/File.pm, avg 686ns/call
# 144 times (98µs+0s) by Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage::violates at line 49 of Perl/Critic/Policy/Modules/RequireFilenameMatchesPackage.pm, avg 682ns/call
# 144 times (94µs+0s) by PPI::Document::File::new at line 67 of PPI/Document/File.pm, avg 653ns/call
# 144 times (89µs+0s) by PPI::Tokenizer::_clean_eof at line 635 of PPI/Tokenizer.pm, avg 618ns/call
# 144 times (88µs+0s) by PPI::Lexer::_lex_end at line 675 of PPI/Lexer.pm, avg 608ns/call
# 144 times (85µs+0s) by PPI::Statement::Package::namespace at line 94 of PPI/Statement/Package.pm, avg 588ns/call
# 143 times (216µs+0s) by PPI::Token::Whitespace::null at line 79 of PPI/Token/Whitespace.pm, avg 2µs/call
# 128 times (60µs+0s) by Perl::Critic::Utils::_is_dereference_operator at line 798 of Perl/Critic/Utils.pm, avg 471ns/call
# 102 times (52µs+0s) by Perl::Critic::Utils::parse_arg_list at line 975 of Perl/Critic/Utils.pm, avg 510ns/call
# 96 times (57µs+0s) by PPI::Lexer::_round at line 1011 of PPI/Lexer.pm, avg 598ns/call
# 86 times (53µs+0s) by Perl::Critic::Policy::Variables::RequireLexicalLoopIterators::violates at line 54 of Perl/Critic/Policy/Variables/RequireLexicalLoopIterators.pm, avg 612ns/call
# 86 times (51µs+0s) by Perl::Critic::Policy::Variables::RequireLexicalLoopIterators::violates at line 58 of Perl/Critic/Policy/Variables/RequireLexicalLoopIterators.pm, avg 590ns/call
# 79 times (45µs+0s) by PPI::Statement::Compound::type at line 197 of PPI/Statement/Compound.pm, avg 575ns/call
# 79 times (42µs+0s) by Perl::Critic::Utils::is_function_call at line 830 of Perl/Critic/Utils.pm, avg 537ns/call
# 77 times (40µs+0s) by Perl::Critic::Utils::is_class_name at line 788 of Perl/Critic/Utils.pm, avg 517ns/call
# 77 times (40µs+0s) by Perl::Critic::Utils::is_label_pointer at line 766 of Perl/Critic/Utils.pm, avg 514ns/call
# 77 times (39µs+0s) by Perl::Critic::Utils::is_package_declaration at line 809 of Perl/Critic/Utils.pm, avg 509ns/call
# 77 times (39µs+0s) by Perl::Critic::Utils::is_included_module_name at line 745 of Perl/Critic/Utils.pm, avg 509ns/call
# 77 times (38µs+0s) by Perl::Critic::Utils::is_method_call at line 779 of Perl/Critic/Utils.pm, avg 491ns/call
# 77 times (36µs+0s) by Perl::Critic::Utils::is_perl_bareword at line 377 of Perl/Critic/Utils.pm, avg 468ns/call
# 77 times (35µs+0s) by Perl::Critic::Utils::is_perl_filehandle at line 420 of Perl/Critic/Utils.pm, avg 460ns/call
# 77 times (35µs+0s) by Perl::Critic::Utils::is_package_declaration at line 807 of Perl/Critic/Utils.pm, avg 458ns/call
# 77 times (35µs+0s) by Perl::Critic::Utils::is_subroutine_name at line 818 of Perl/Critic/Utils.pm, avg 455ns/call
# 77 times (34µs+0s) by Perl::Critic::Utils::is_label_pointer at line 763 of Perl/Critic/Utils.pm, avg 445ns/call
# 77 times (34µs+0s) by Perl::Critic::Utils::is_included_module_name at line 743 of Perl/Critic/Utils.pm, avg 442ns/call
# 68 times (64µs+0s) by PPI::Lexer::_curly at line 1283 of PPI/Lexer.pm, avg 940ns/call
# 65 times (37µs+0s) by Perl::Critic::Utils::first_arg at line 923 of Perl/Critic/Utils.pm, avg 565ns/call
# 55 times (30µs+0s) by Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions::violates at line 104 of Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm, avg 540ns/call
# 54 times (34µs+0s) by PPI::Lexer::_curly at line 1248 of PPI/Lexer.pm, avg 626ns/call
# 54 times (33µs+0s) by PPI::Lexer::_curly at line 1254 of PPI/Lexer.pm, avg 611ns/call
# 52 times (34µs+0s) by Perl::Critic::Utils::is_subroutine_name at line 820 of Perl/Critic/Utils.pm, avg 646ns/call
# 52 times (32µs+0s) by Perl::Critic::Utils::is_label_pointer at line 769 of Perl/Critic/Utils.pm, avg 625ns/call
# 52 times (27µs+0s) by Perl::Critic::Utils::is_subroutine_name at line 822 of Perl/Critic/Utils.pm, avg 515ns/call
# 51 times (38µs+0s) by Perl::Critic::Annotation::_init at line 69 of Perl/Critic/Annotation.pm, avg 735ns/call
# 51 times (34µs+0s) by PPI::Token::Whitespace::__TOKENIZER__on_char at line 261 of PPI/Token/Whitespace.pm, avg 675ns/call
# 51 times (33µs+0s) by Perl::Critic::Annotation::_init at line 57 of Perl/Critic/Annotation.pm, avg 639ns/call
# 50 times (23µs+0s) by Perl::Critic::Utils::precedence_of at line 700 of Perl/Critic/Utils.pm, avg 464ns/call
# 41 times (27µs+0s) by Perl::Critic::Annotation::_is_single_line_annotation_on_simple_statement at line 188 of Perl/Critic/Annotation.pm, avg 654ns/call
# 38 times (22µs+0s) by Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions::_is_assignment_to_topic at line 137 of Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm, avg 582ns/call
# 24 times (11µs+0s) by PPI::Element::top at line 306 of PPI/Element.pm, avg 475ns/call
# 23 times (13µs+0s) by PPI::Structure::location at line 264 of PPI/Structure.pm, avg 548ns/call
# 23 times (12µs+0s) by PPI::Structure::first_element at line 251 of PPI/Structure.pm, avg 513ns/call
# 21 times (12µs+0s) by Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions::_is_assignment_to_topic at line 142 of Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm, avg 571ns/call
# 18 times (10µs+0s) by Perl::Critic::Utils::parse_arg_list at line 940 of Perl/Critic/Utils.pm, avg 561ns/call
# 18 times (10µs+0s) by Perl::Critic::Utils::parse_arg_list at line 970 of Perl/Critic/Utils.pm, avg 528ns/call
# 16 times (10µs+0s) by Perl::Critic::Annotation::_is_single_line_annotation_on_simple_statement at line 205 of Perl/Critic/Annotation.pm, avg 625ns/call
# 14 times (8µs+0s) by PPI::Lexer::_statement at line 585 of PPI/Lexer.pm, avg 564ns/call
# 12 times (6µs+0s) by Perl::Critic::Annotation::_is_single_line_annotation_on_simple_statement at line 209 of Perl/Critic/Annotation.pm, avg 517ns/call
# 10 times (5µs+0s) by Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval::violates at line 53 of Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm, avg 510ns/call
# 8 times (4µs+0s) by Perl::Critic::Annotation::_init at line 119 of Perl/Critic/Annotation.pm, avg 500ns/call
# 5 times (3µs+0s) by Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles::violates at line 43 of Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm, avg 680ns/call
# 3 times (2µs+0s) by Perl::Critic::Violation::_line_containing_violation at line 303 of Perl/Critic/Violation.pm, avg 500ns/call
# 2 times (2µs+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 59 of PPI/Token/Unknown.pm, avg 750ns/call
# 2 times (1µs+0s) by Perl::Critic::Annotation::_init at line 116 of Perl/Critic/Annotation.pm, avg 550ns/call
# 2 times (1µs+0s) by PPI::Lexer::_continues at line 876 of PPI/Lexer.pm, avg 500ns/call
# once (900ns+0s) by PPI::Token::Whitespace::__TOKENIZER__on_char at line 316 of PPI/Token/Whitespace.pm
# once (500ns+0s) by PPI::Lexer::_curly at line 1211 of PPI/Lexer.pm |