← Index
NYTProf Performance Profile   « line view »
For /Users/timbo/perl5/perlbrew/perls/perl-5.18.2/bin/perlcritic
  Run on Sat Mar 19 22:12:22 2016
Reported on Sat Mar 19 22:14:10 2016

Filename/Users/timbo/perl5/perlbrew/perls/perl-5.18.2/lib/site_perl/5.18.2/PPI/Token/Unknown.pm
StatementsExecuted 58731 statements in 95.8ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
81801183.0ms201msPPI::Token::Unknown::::__TOKENIZER__on_charPPI::Token::Unknown::__TOKENIZER__on_char
88441418.85ms8.85msPPI::Token::Unknown::::CORE:matchPPI::Token::Unknown::CORE:match (opcode)
2511345┬Ás1.04msPPI::Token::Unknown::::__TOKENIZER__is_an_attributePPI::Token::Unknown::__TOKENIZER__is_an_attribute
10831280┬Ás280┬ÁsPPI::Token::Unknown::::CORE:regcompPPI::Token::Unknown::CORE:regcomp (opcode)
11114┬Ás16┬ÁsPPI::Token::Unknown::::BEGIN@35PPI::Token::Unknown::BEGIN@35
11111┬Ás22┬ÁsPPI::Token::Unknown::::BEGIN@30PPI::Token::Unknown::BEGIN@30
1116┬Ás45┬ÁsPPI::Token::Unknown::::BEGIN@34PPI::Token::Unknown::BEGIN@34
1113┬Ás3┬ÁsPPI::Token::Unknown::::BEGIN@31PPI::Token::Unknown::BEGIN@31
1112┬Ás2┬ÁsPPI::Token::Unknown::::BEGIN@32PPI::Token::Unknown::BEGIN@32
1112┬Ás2┬ÁsPPI::Token::Unknown::::CORE:qrPPI::Token::Unknown::CORE:qr (opcode)
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package PPI::Token::Unknown;
2
3=pod
4
5=head1 NAME
6
7PPI::Token::Unknown - Token of unknown or as-yet undetermined type
8
9=head1 INHERITANCE
10
11 PPI::Token::Unknown
12 isa PPI::Token
13 isa PPI::Element
14
15=head1 DESCRIPTION
16
17Object of the type C<PPI::Token::Unknown> exist primarily inside the
18tokenizer, where they are temporarily brought into existing for a very
19short time to represent a token that could be one of a number of types.
20
21Generally, they only exist for a character or two, after which they are
22resolved and converted into the correct type. For an object of this type
23to survive the parsing process is considered a major bug.
24
25Please report any C<PPI::Token::Unknown> you encounter in a L<PPI::Document>
26object as a bug.
27
28=cut
29
30218┬Ás233┬Ás
# spent 22┬Ás (11+11) within PPI::Token::Unknown::BEGIN@30 which was called: # once (11┬Ás+11┬Ás) by PPI::Token::Magic::BEGIN@46 at line 30
use strict;
# spent 22┬Ás making 1 call to PPI::Token::Unknown::BEGIN@30 # spent 11┬Ás making 1 call to strict::import
31215┬Ás13┬Ás
# spent 3┬Ás within PPI::Token::Unknown::BEGIN@31 which was called: # once (3┬Ás+0s) by PPI::Token::Magic::BEGIN@46 at line 31
use PPI::Token ();
# spent 3┬Ás making 1 call to PPI::Token::Unknown::BEGIN@31
32221┬Ás12┬Ás
# spent 2┬Ás within PPI::Token::Unknown::BEGIN@32 which was called: # once (2┬Ás+0s) by PPI::Token::Magic::BEGIN@46 at line 32
use PPI::Exception ();
# spent 2┬Ás making 1 call to PPI::Token::Unknown::BEGIN@32
33
34252┬Ás283┬Ás
# spent 45┬Ás (6+39) within PPI::Token::Unknown::BEGIN@34 which was called: # once (6┬Ás+39┬Ás) by PPI::Token::Magic::BEGIN@46 at line 34
use vars qw{$VERSION @ISA $CURLY_SYMBOL};
# spent 45┬Ás making 1 call to PPI::Token::Unknown::BEGIN@34 # spent 39┬Ás making 1 call to vars::import
35
# spent 16┬Ás (14+2) within PPI::Token::Unknown::BEGIN@35 which was called: # once (14┬Ás+2┬Ás) by PPI::Token::Magic::BEGIN@46 at line 39
BEGIN {
361300ns $VERSION = '1.215';
3715┬Ás @ISA = 'PPI::Token';
3819┬Ás12┬Ás $CURLY_SYMBOL = qr{^\^[[:upper:]_]\w+\}};
# spent 2┬Ás making 1 call to PPI::Token::Unknown::CORE:qr
391948┬Ás116┬Ás}
# spent 16┬Ás making 1 call to PPI::Token::Unknown::BEGIN@35
40
- -
45#####################################################################
46# Tokenizer Methods
47
48
# spent 201ms (83.0+118) within PPI::Token::Unknown::__TOKENIZER__on_char which was called 8180 times, avg 25┬Ás/call: # 8180 times (83.0ms+118ms) by PPI::Tokenizer::_process_next_char at line 554 of PPI/Tokenizer.pm, avg 25┬Ás/call
sub __TOKENIZER__on_char {
4981801.45ms my $t = $_[1]; # Tokenizer object
5081804.02ms my $c = $t->{token}->{content}; # Current token
5181803.54ms my $char = substr( $t->{line}, $t->{line_cursor}, 1 ); # Current character
52
53 # Now, we split on the different values of the current content
5481803.65ms if ( $c eq '*' ) {
5529┬Ás23┬Ás if ( $char =~ /(?:(?!\d)\w|\:)/ ) {
# spent 3┬Ás making 2 calls to PPI::Token::Unknown::CORE:match, avg 1┬Ás/call
56 # Symbol (unless the thing before it is a number
5723┬Ás220┬Ás my $tokens = $t->_previous_significant_tokens(1);
# spent 20┬Ás making 2 calls to PPI::Tokenizer::_previous_significant_tokens, avg 10┬Ás/call
582600ns my $p0 = $tokens->[0];
59219┬Ás45┬Ás if ( $p0 and ! $p0->isa('PPI::Token::Number') ) {
# spent 4┬Ás making 2 calls to UNIVERSAL::isa, avg 2┬Ás/call # spent 2┬Ás making 2 calls to PPI::Util::TRUE, avg 750ns/call
6024┬Ás220┬Ás $t->{class} = $t->{token}->set_class( 'Symbol' );
# spent 20┬Ás making 2 calls to PPI::Token::set_class, avg 10┬Ás/call
6125┬Ás return 1;
62 }
63 }
64
65 if ( $char eq '{' ) {
66 # Get rest of line
67 my $rest = substr( $t->{line}, $t->{line_cursor} + 1 );
68 if ( $rest =~ m/$CURLY_SYMBOL/ ) {
69 # control-character symbol (e.g. *{^_Foo})
70 $t->{class} = $t->{token}->set_class( 'Magic' );
71 return 1;
72 } else {
73 # Obvious GLOB cast
74 $t->{class} = $t->{token}->set_class( 'Cast' );
75 return $t->_finalize_token->__TOKENIZER__on_char( $t );
76 }
77 }
78
79 if ( $char eq '$' ) {
80 # Operator/operand-sensitive, multiple or GLOB cast
81 my $_class = undef;
82 my $tokens = $t->_previous_significant_tokens(1);
83 my $p0 = $tokens->[0];
84 if ( $p0 ) {
85 # Is it a token or a number
86 if ( $p0->isa('PPI::Token::Symbol') ) {
87 $_class = 'Operator';
88 } elsif ( $p0->isa('PPI::Token::Number') ) {
89 $_class = 'Operator';
90 } elsif (
91 $p0->isa('PPI::Token::Structure')
92 and
93 $p0->content =~ /^(?:\)|\])$/
94 ) {
95 $_class = 'Operator';
96 } else {
97 ### This is pretty weak, there's
98 ### room for a dozen more tests
99 ### before going with a default.
100 ### Or even better, a proper
101 ### operator/operand method :(
102 $_class = 'Cast';
103 }
104 } else {
105 # Nothing before it, must be glob cast
106 $_class = 'Cast';
107 }
108
109 # Set class and rerun
110 $t->{class} = $t->{token}->set_class( $_class );
111 return $t->_finalize_token->__TOKENIZER__on_char( $t );
112 }
113
114 if ( $char eq '*' || $char eq '=' ) {
115 # Power operator '**' or mult-assign '*='
116 $t->{class} = $t->{token}->set_class( 'Operator' );
117 return 1;
118 }
119
120 $t->{class} = $t->{token}->set_class( 'Operator' );
121 return $t->_finalize_token->__TOKENIZER__on_char( $t );
122
- -
125 } elsif ( $c eq '$' ) {
126683725.7ms68377.28ms if ( $char =~ /[a-z_]/i ) {
# spent 7.28ms making 6837 calls to PPI::Token::Unknown::CORE:match, avg 1┬Ás/call
127 # Symbol
128680212.5ms680287.5ms $t->{class} = $t->{token}->set_class( 'Symbol' );
# spent 87.5ms making 6802 calls to PPI::Token::set_class, avg 13┬Ás/call
129680230.7ms return 1;
130 }
131
1323528┬Ás if ( $PPI::Token::Magic::magic{ $c . $char } ) {
133 # Magic variable
1343464┬Ás34319┬Ás $t->{class} = $t->{token}->set_class( 'Magic' );
# spent 319┬Ás making 34 calls to PPI::Token::set_class, avg 9┬Ás/call
1353465┬Ás return 1;
136 }
137
1381600ns if ( $char eq '{' ) {
139 # Get rest of line
14011┬Ás my $rest = substr( $t->{line}, $t->{line_cursor} + 1 );
14119┬Ás22┬Ás if ( $rest =~ m/$CURLY_SYMBOL/ ) {
# spent 1┬Ás making 1 call to PPI::Token::Unknown::CORE:regcomp # spent 700ns making 1 call to PPI::Token::Unknown::CORE:match
142 # control-character symbol (e.g. ${^MATCH})
143 $t->{class} = $t->{token}->set_class( 'Magic' );
144 return 1;
145 }
146 }
147
148 # Must be a cast
14912┬Ás18┬Ás $t->{class} = $t->{token}->set_class( 'Cast' );
# spent 8┬Ás making 1 call to PPI::Token::set_class
15014┬Ás222┬Ás return $t->_finalize_token->__TOKENIZER__on_char( $t );
# spent 19┬Ás making 1 call to PPI::Token::Whitespace::__TOKENIZER__on_char # spent 2┬Ás making 1 call to PPI::Tokenizer::_finalize_token
151
- -
154 } elsif ( $c eq '@' ) {
1558882.78ms888890┬Ás if ( $char =~ /[\w:]/ ) {
# spent 890┬Ás making 888 calls to PPI::Token::Unknown::CORE:match, avg 1┬Ás/call
156 # Symbol
1578031.55ms8037.07ms $t->{class} = $t->{token}->set_class( 'Symbol' );
# spent 7.07ms making 803 calls to PPI::Token::set_class, avg 9┬Ás/call
1588031.57ms return 1;
159 }
160
1618576┬Ás if ( $PPI::Token::Magic::magic{ $c . $char } ) {
162 # Magic variable
163 $t->{class} = $t->{token}->set_class( 'Magic' );
164 return 1;
165 }
166
1678551┬Ás if ( $char eq '{' ) {
168 # Get rest of line
1698573┬Ás my $rest = substr( $t->{line}, $t->{line_cursor} + 1 );
17085671┬Ás170290┬Ás if ( $rest =~ m/$CURLY_SYMBOL/ ) {
# spent 233┬Ás making 85 calls to PPI::Token::Unknown::CORE:regcomp, avg 3┬Ás/call # spent 57┬Ás making 85 calls to PPI::Token::Unknown::CORE:match, avg 674ns/call
171 # control-character symbol (e.g. @{^_Foo})
172 $t->{class} = $t->{token}->set_class( 'Magic' );
173 return 1;
174 }
175 }
176
177 # Must be a cast
17885188┬Ás85792┬Ás $t->{class} = $t->{token}->set_class( 'Cast' );
# spent 792┬Ás making 85 calls to PPI::Token::set_class, avg 9┬Ás/call
17985358┬Ás1702.00ms return $t->_finalize_token->__TOKENIZER__on_char( $t );
# spent 1.79ms making 85 calls to PPI::Token::Whitespace::__TOKENIZER__on_char, avg 21┬Ás/call # spent 215┬Ás making 85 calls to PPI::Tokenizer::_finalize_token, avg 3┬Ás/call
180
- -
183 } elsif ( $c eq '%' ) {
184 # Is it a number?
185142436┬Ás14299┬Ás if ( $char =~ /\d/ ) {
# spent 99┬Ás making 142 calls to PPI::Token::Unknown::CORE:match, avg 695ns/call
186 # This is %2 (modulus number)
187 $t->{class} = $t->{token}->set_class( 'Operator' );
188 return $t->_finalize_token->__TOKENIZER__on_char( $t );
189 }
190
191 # Is it a magic variable?
192142129┬Ás if ( $char eq '^' || $PPI::Token::Magic::magic{ $c . $char } ) {
193 $t->{class} = $t->{token}->set_class( 'Magic' );
194 return 1;
195 }
196
197 # Is it a symbol?
198142378┬Ás142120┬Ás if ( $char =~ /[\w:]/ ) {
# spent 120┬Ás making 142 calls to PPI::Token::Unknown::CORE:match, avg 843ns/call
199119277┬Ás1191.15ms $t->{class} = $t->{token}->set_class( 'Symbol' );
# spent 1.15ms making 119 calls to PPI::Token::set_class, avg 10┬Ás/call
200119247┬Ás return 1;
201 }
202
2032310┬Ás if ( $char eq '{' ) {
204 # Get rest of line
2052221┬Ás my $rest = substr( $t->{line}, $t->{line_cursor} + 1 );
20622157┬Ás4461┬Ás if ( $rest =~ m/$CURLY_SYMBOL/ ) {
# spent 46┬Ás making 22 calls to PPI::Token::Unknown::CORE:regcomp, avg 2┬Ás/call # spent 15┬Ás making 22 calls to PPI::Token::Unknown::CORE:match, avg 677ns/call
207 # control-character symbol (e.g. @{^_Foo})
208 $t->{class} = $t->{token}->set_class( 'Magic' );
209 return 1;
210 }
211 }
212
2132358┬Ás2317┬Ás if ( $char =~ /[\$@%*{]/ ) {
# spent 17┬Ás making 23 calls to PPI::Token::Unknown::CORE:match, avg 752ns/call
214 # It's a cast
2152246┬Ás22183┬Ás $t->{class} = $t->{token}->set_class( 'Cast' );
# spent 183┬Ás making 22 calls to PPI::Token::set_class, avg 8┬Ás/call
2162295┬Ás44483┬Ás return $t->_finalize_token->__TOKENIZER__on_char( $t );
# spent 429┬Ás making 22 calls to PPI::Token::Whitespace::__TOKENIZER__on_char, avg 20┬Ás/call # spent 54┬Ás making 22 calls to PPI::Tokenizer::_finalize_token, avg 2┬Ás/call
217
218 }
219
220 # Probably the mod operator
22112┬Ás18┬Ás $t->{class} = $t->{token}->set_class( 'Operator' );
# spent 8┬Ás making 1 call to PPI::Token::set_class
22213┬Ás112┬Ás return $t->{class}->__TOKENIZER__on_char( $t );
# spent 12┬Ás making 1 call to PPI::Token::Operator::__TOKENIZER__on_char
223
- -
226 } elsif ( $c eq '&' ) {
227 # Is it a number?
228167493┬Ás167118┬Ás if ( $char =~ /\d/ ) {
# spent 118┬Ás making 167 calls to PPI::Token::Unknown::CORE:match, avg 707ns/call
229 # This is &2 (bitwise-and number)
230 $t->{class} = $t->{token}->set_class( 'Operator' );
231 return $t->_finalize_token->__TOKENIZER__on_char( $t );
232 }
233
234 # Is it a symbol
235167360┬Ás16787┬Ás if ( $char =~ /[\w:]/ ) {
# spent 87┬Ás making 167 calls to PPI::Token::Unknown::CORE:match, avg 522ns/call
2362857┬Ás28263┬Ás $t->{class} = $t->{token}->set_class( 'Symbol' );
# spent 263┬Ás making 28 calls to PPI::Token::set_class, avg 9┬Ás/call
2372856┬Ás return 1;
238 }
239
240139246┬Ás13949┬Ás if ( $char =~ /[\$@%{]/ ) {
# spent 49┬Ás making 139 calls to PPI::Token::Unknown::CORE:match, avg 351ns/call
241 # The ampersand is a cast
242 $t->{class} = $t->{token}->set_class( 'Cast' );
243 return $t->_finalize_token->__TOKENIZER__on_char( $t );
244 }
245
246 # Probably the binary and operator
247139301┬Ás1395.50ms $t->{class} = $t->{token}->set_class( 'Operator' );
# spent 5.50ms making 139 calls to PPI::Token::set_class, avg 40┬Ás/call
248139479┬Ás139396┬Ás return $t->{class}->__TOKENIZER__on_char( $t );
# spent 396┬Ás making 139 calls to PPI::Token::Operator::__TOKENIZER__on_char, avg 3┬Ás/call
249
- -
252 } elsif ( $c eq '-' ) {
253119326┬Ás11978┬Ás if ( $char =~ /\d/o ) {
# spent 78┬Ás making 119 calls to PPI::Token::Unknown::CORE:match, avg 660ns/call
254 # Number
255919┬Ás978┬Ás $t->{class} = $t->{token}->set_class( 'Number' );
# spent 78┬Ás making 9 calls to PPI::Token::set_class, avg 9┬Ás/call
256918┬Ás return 1;
257 }
258
25911031┬Ás if ( $char eq '.' ) {
260 # Number::Float
261 $t->{class} = $t->{token}->set_class( 'Number::Float' );
262 return 1;
263 }
264
265110205┬Ás11042┬Ás if ( $char =~ /[a-zA-Z]/ ) {
# spent 42┬Ás making 110 calls to PPI::Token::Unknown::CORE:match, avg 382ns/call
26623┬Ás216┬Ás $t->{class} = $t->{token}->set_class( 'DashedWord' );
# spent 16┬Ás making 2 calls to PPI::Token::set_class, avg 8┬Ás/call
26724┬Ás return 1;
268 }
269
270 # The numeric negative operator
271108222┬Ás108952┬Ás $t->{class} = $t->{token}->set_class( 'Operator' );
# spent 952┬Ás making 108 calls to PPI::Token::set_class, avg 9┬Ás/call
272108372┬Ás108319┬Ás return $t->{class}->__TOKENIZER__on_char( $t );
# spent 319┬Ás making 108 calls to PPI::Token::Operator::__TOKENIZER__on_char, avg 3┬Ás/call
273
- -
276 } elsif ( $c eq ':' ) {
277258┬Ás if ( $char eq ':' ) {
278 # ::foo style bareword
279 $t->{class} = $t->{token}->set_class( 'Word' );
280 return 1;
281 }
282
283 # Now, : acts very very differently in different contexts.
284 # Mainly, we need to find out if this is a subroutine attribute.
285 # We'll leave a hint in the token to indicate that, if it is.
2862550┬Ás251.04ms if ( $_[0]->__TOKENIZER__is_an_attribute( $t ) ) {
# spent 1.04ms making 25 calls to PPI::Token::Unknown::__TOKENIZER__is_an_attribute, avg 42┬Ás/call
287 # This : is an attribute indicator
288 $t->{class} = $t->{token}->set_class( 'Operator' );
289 $t->{token}->{_attribute} = 1;
290 return $t->_finalize_token->__TOKENIZER__on_char( $t );
291 }
292
293 # It MIGHT be a label, but its probably the ?: trinary operator
2942554┬Ás25212┬Ás $t->{class} = $t->{token}->set_class( 'Operator' );
# spent 212┬Ás making 25 calls to PPI::Token::set_class, avg 8┬Ás/call
2952575┬Ás25325┬Ás return $t->{class}->__TOKENIZER__on_char( $t );
# spent 325┬Ás making 25 calls to PPI::Token::Operator::__TOKENIZER__on_char, avg 13┬Ás/call
296 }
297
298 # erm...
299 PPI::Exception->throw('Unknown value in PPI::Token::Unknown token');
300}
301
302# Are we at a location where a ':' would indicate a subroutine attribute
303
# spent 1.04ms (345┬Ás+694┬Ás) within PPI::Token::Unknown::__TOKENIZER__is_an_attribute which was called 25 times, avg 42┬Ás/call: # 25 times (345┬Ás+694┬Ás) by PPI::Token::Unknown::__TOKENIZER__on_char at line 286, avg 42┬Ás/call
sub __TOKENIZER__is_an_attribute {
3042510┬Ás my $t = $_[1]; # Tokenizer object
3052540┬Ás25588┬Ás my $tokens = $t->_previous_significant_tokens(3);
# spent 588┬Ás making 25 calls to PPI::Tokenizer::_previous_significant_tokens, avg 24┬Ás/call
3062511┬Ás my $p0 = $tokens->[0];
307
308 # If we just had another attribute, we are also an attribute
30925113┬Ás2544┬Ás return 1 if $p0->isa('PPI::Token::Attribute');
# spent 44┬Ás making 25 calls to UNIVERSAL::isa, avg 2┬Ás/call
310
311 # If we just had a prototype, then we are an attribute
3122598┬Ás2536┬Ás return 1 if $p0->isa('PPI::Token::Prototype');
# spent 36┬Ás making 25 calls to UNIVERSAL::isa, avg 1┬Ás/call
313
314 # Other than that, we would need to have had a bareword
31525154┬Ás2526┬Ás return '' unless $p0->isa('PPI::Token::Word');
# spent 26┬Ás making 25 calls to UNIVERSAL::isa, avg 1┬Ás/call
316
317 # We could be an anonymous subroutine
318 if ( $p0->isa('PPI::Token::Word') and $p0->content eq 'sub' ) {
319 return 1;
320 }
321
322 # Or, we could be a named subroutine
323 my $p1 = $tokens->[1];
324 my $p2 = $tokens->[2];
325 if (
326 $p1->isa('PPI::Token::Word')
327 and
328 $p1->content eq 'sub'
329 and (
330 $p2->isa('PPI::Token::Structure')
331 or (
332 $p2->isa('PPI::Token::Whitespace')
333 and
334 $p2->content eq ''
335 )
336 )
337 ) {
338 return 1;
339 }
340
341 # We arn't an attribute
342 '';
343}
344
34512┬Ás1;
346
347=pod
348
349=head1 SUPPORT
350
351See the L<support section|PPI/SUPPORT> in the main module.
352
353=head1 AUTHOR
354
355Adam Kennedy E<lt>adamk@cpan.orgE<gt>
356
357=head1 COPYRIGHT
358
359Copyright 2001 - 2011 Adam Kennedy.
360
361This program is free software; you can redistribute
362it and/or modify it under the same terms as Perl itself.
363
364The full text of the license can be found in the
365LICENSE file included with this module.
366
367=cut
 
# spent 8.85ms within PPI::Token::Unknown::CORE:match which was called 8844 times, avg 1┬Ás/call: # 6837 times (7.28ms+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 126, avg 1┬Ás/call # 888 times (890┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 155, avg 1┬Ás/call # 167 times (118┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 228, avg 707ns/call # 167 times (87┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 235, avg 522ns/call # 142 times (120┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 198, avg 843ns/call # 142 times (99┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 185, avg 695ns/call # 139 times (49┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 240, avg 351ns/call # 119 times (78┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 253, avg 660ns/call # 110 times (42┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 265, avg 382ns/call # 85 times (57┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 170, avg 674ns/call # 23 times (17┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 213, avg 752ns/call # 22 times (15┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 206, avg 677ns/call # 2 times (3┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 55, avg 1┬Ás/call # once (700ns+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 141
sub PPI::Token::Unknown::CORE:match; # opcode
# spent 2┬Ás within PPI::Token::Unknown::CORE:qr which was called: # once (2┬Ás+0s) by PPI::Token::Unknown::BEGIN@35 at line 38
sub PPI::Token::Unknown::CORE:qr; # opcode
# spent 280┬Ás within PPI::Token::Unknown::CORE:regcomp which was called 108 times, avg 3┬Ás/call: # 85 times (233┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 170, avg 3┬Ás/call # 22 times (46┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 206, avg 2┬Ás/call # once (1┬Ás+0s) by PPI::Token::Unknown::__TOKENIZER__on_char at line 141
sub PPI::Token::Unknown::CORE:regcomp; # opcode