← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Thu Dec 15 15:23:56 2022
Reported on Thu Dec 15 15:27:04 2022

Filename/Users/ether/.perlbrew/libs/36.0@std/lib/perl5/YAML/PP/Schema.pm
StatementsExecuted 570494 statements in 491ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
2076411307ms468msYAML::PP::Schema::::load_scalarYAML::PP::Schema::load_scalar
704251168.7ms68.7msYAML::PP::Schema::::CORE:regcompYAML::PP::Schema::CORE:regcomp (opcode)
704273162.2ms62.2msYAML::PP::Schema::::CORE:matchYAML::PP::Schema::CORE:match (opcode)
69001124.7ms28.3msYAML::PP::Schema::::create_mappingYAML::PP::Schema::create_mapping
283284113.3ms13.3msYAML::PP::Schema::::resolversYAML::PP::Schema::resolvers
636112.90ms3.15msYAML::PP::Schema::::create_sequenceYAML::PP::Schema::create_sequence
566111.80ms2.86msYAML::PP::Schema::::_bool_jsonpp_trueYAML::PP::Schema::_bool_jsonpp_true
403111.56ms2.37msYAML::PP::Schema::::_bool_jsonpp_falseYAML::PP::Schema::_bool_jsonpp_false
1111.37ms1.54msYAML::PP::Schema::::BEGIN@5YAML::PP::Schema::BEGIN@5
1111.32ms1.73msYAML::PP::Schema::::BEGIN@9YAML::PP::Schema::BEGIN@9
28111178µs187µsYAML::PP::Schema::::add_resolverYAML::PP::Schema::add_resolver
286199µs111µsYAML::PP::Schema::::add_representerYAML::PP::Schema::add_representer
11152µs54µsYAML::PP::::BEGIN@1 YAML::PP::BEGIN@1
11132µs1.81msYAML::PP::Schema::::load_subschemasYAML::PP::Schema::load_subschemas
11127µs27µsYAML::PP::Schema::::newYAML::PP::Schema::new
281112µs12µsYAML::PP::Schema::::representersYAML::PP::Schema::representers
1115µs16µsYAML::PP::Schema::::BEGIN@11YAML::PP::Schema::BEGIN@11
1114µs19µsYAML::PP::::BEGIN@2 YAML::PP::BEGIN@2
1113µs5µsYAML::PP::Schema::::BEGIN@4YAML::PP::Schema::BEGIN@4
1113µs3µsYAML::PP::Schema::::yaml_versionYAML::PP::Schema::yaml_version
2112µs2µsYAML::PP::Schema::::bool_classYAML::PP::Schema::bool_class
3111µs1µsYAML::PP::Schema::::falseYAML::PP::Schema::false
3111µs1µsYAML::PP::Schema::::trueYAML::PP::Schema::true
0000s0sYAML::PP::Schema::::_bool_booleanpm_falseYAML::PP::Schema::_bool_booleanpm_false
0000s0sYAML::PP::Schema::::_bool_booleanpm_trueYAML::PP::Schema::_bool_booleanpm_true
0000s0sYAML::PP::Schema::::_bool_perl_falseYAML::PP::Schema::_bool_perl_false
0000s0sYAML::PP::Schema::::_bool_perl_trueYAML::PP::Schema::_bool_perl_true
0000s0sYAML::PP::Schema::::add_collection_resolverYAML::PP::Schema::add_collection_resolver
0000s0sYAML::PP::Schema::::add_mapping_resolverYAML::PP::Schema::add_mapping_resolver
0000s0sYAML::PP::Schema::::add_sequence_resolverYAML::PP::Schema::add_sequence_resolver
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1223µs256µs
# spent 54µs (52+2) within YAML::PP::BEGIN@1 which was called: # once (52µs+2µs) by YAML::PP::BEGIN@8 at line 1
use strict;
# spent 54µs making 1 call to YAML::PP::BEGIN@1 # spent 2µs making 1 call to strict::import
2226µs234µs
# spent 19µs (4+15) within YAML::PP::BEGIN@2 which was called: # once (4µs+15µs) by YAML::PP::BEGIN@8 at line 2
use warnings;
# spent 19µs making 1 call to YAML::PP::BEGIN@2 # spent 15µs making 1 call to warnings::import
3package YAML::PP::Schema;
4213µs27µs
# spent 5µs (3+2) within YAML::PP::Schema::BEGIN@4 which was called: # once (3µs+2µs) by YAML::PP::BEGIN@8 at line 4
use B;
# spent 5µs making 1 call to YAML::PP::Schema::BEGIN@4 # spent 2µs making 1 call to B::import
52614µs11.54ms
# spent 1.54ms (1.37+169µs) within YAML::PP::Schema::BEGIN@5 which was called: # once (1.37ms+169µs) by YAML::PP::BEGIN@8 at line 5
use Module::Load qw//;
# spent 1.54ms making 1 call to YAML::PP::Schema::BEGIN@5
6
710sour $VERSION = '0.035'; # VERSION
8
92570µs21.78ms
# spent 1.73ms (1.32+408µs) within YAML::PP::Schema::BEGIN@9 which was called: # once (1.32ms+408µs) by YAML::PP::BEGIN@8 at line 9
use YAML::PP::Common qw/ YAML_PLAIN_SCALAR_STYLE /;
# spent 1.73ms making 1 call to YAML::PP::Schema::BEGIN@9 # spent 45µs making 1 call to Exporter::import
10
1121.83ms227µs
# spent 16µs (5+11) within YAML::PP::Schema::BEGIN@11 which was called: # once (5µs+11µs) by YAML::PP::BEGIN@8 at line 11
use Scalar::Util qw/ blessed /;
# spent 16µs making 1 call to YAML::PP::Schema::BEGIN@11 # spent 11µs making 1 call to Exporter::import
12
13
# spent 27µs within YAML::PP::Schema::new which was called: # once (27µs+0s) by YAML::PP::new at line 55 of YAML/PP.pm
sub new {
1411µs my ($class, %args) = @_;
15
1611µs my $yaml_version = delete $args{yaml_version};
1710s my $bool = delete $args{boolean};
1810s $bool = 'perl' unless defined $bool;
1910s if (keys %args) {
20 die "Unexpected arguments: " . join ', ', sort keys %args;
21 }
2210s my $true;
23 my $false;
24 my @bool_class;
2512µs my @bools = split m/,/, $bool;
2611µs for my $b (@bools) {
2711µs if ($b eq '*') {
28 push @bool_class, ('boolean', 'JSON::PP::Boolean');
29 last;
30 }
31 elsif ($b eq 'JSON::PP') {
3211µs require JSON::PP;
3310s $true ||= \&_bool_jsonpp_true;
3411µs $false ||= \&_bool_jsonpp_false;
3510s push @bool_class, 'JSON::PP::Boolean';
36 }
37 elsif ($b eq 'boolean') {
38 require boolean;
39 $true ||= \&_bool_booleanpm_true;
40 $false ||= \&_bool_booleanpm_false;
41 push @bool_class, 'boolean';
42 }
43 elsif ($b eq 'perl') {
44 $true ||= \&_bool_perl_true;
45 $false ||= \&_bool_perl_false;
46 }
47 elsif ($b eq 'perl_experimental') {
48 $true ||= \&_bool_perl_true;
49 $false ||= \&_bool_perl_false;
50 push @bool_class, 'perl_experimental';
51 }
52 else {
53 die "Invalid value for 'boolean': '$b'. Allowed: ('perl', 'boolean', 'JSON::PP')";
54 }
55 }
56
57112µs my %representers = (
58 'undef' => undef,
59 flags => [],
60 equals => {},
61 regex => [],
62 class_equals => {},
63 class_matches => [],
64 class_isa => [],
65 scalarref => undef,
66 refref => undef,
67 coderef => undef,
68 glob => undef,
69 tied_equals => {},
70 );
7114µs my $self = bless {
72 yaml_version => $yaml_version,
73 resolvers => {},
74 representers => \%representers,
75 true => $true,
76 false => $false,
77 bool_class => \@bool_class,
78 }, $class;
7915µs return $self;
80}
81
822832833.6ms
# spent 13.3ms within YAML::PP::Schema::resolvers which was called 28328 times, avg 468ns/call: # 20764 times (9.33ms+0s) by YAML::PP::Schema::load_scalar at line 308, avg 449ns/call # 6900 times (3.66ms+0s) by YAML::PP::Schema::create_mapping at line 392, avg 531ns/call # 636 times (252µs+0s) by YAML::PP::Schema::create_sequence at line 362, avg 396ns/call # 28 times (9µs+0s) by YAML::PP::Schema::add_resolver at line 153, avg 321ns/call
sub resolvers { return $_[0]->{resolvers} }
832819µs
# spent 12µs within YAML::PP::Schema::representers which was called 28 times, avg 429ns/call: # 28 times (12µs+0s) by YAML::PP::Schema::add_representer at line 225, avg 429ns/call
sub representers { return $_[0]->{representers} }
84
8533µs
# spent 1µs within YAML::PP::Schema::true which was called 3 times, avg 333ns/call: # 3 times (1µs+0s) by YAML::PP::Schema::Core::register at line 35 of YAML/PP/Schema/Core.pm, avg 333ns/call
sub true { return $_[0]->{true} }
8632µs
# spent 1µs within YAML::PP::Schema::false which was called 3 times, avg 333ns/call: # 3 times (1µs+0s) by YAML::PP::Schema::Core::register at line 39 of YAML/PP/Schema/Core.pm, avg 333ns/call
sub false { return $_[0]->{false} }
8724µs
# spent 2µs within YAML::PP::Schema::bool_class which was called 2 times, avg 1µs/call: # 2 times (2µs+0s) by YAML::PP::Schema::Core::register at line 98 of YAML/PP/Schema/Core.pm, avg 1µs/call
sub bool_class { return @{ $_[0]->{bool_class} } ? $_[0]->{bool_class} : undef }
8815µs
# spent 3µs within YAML::PP::Schema::yaml_version which was called: # once (3µs+0s) by YAML::PP::Schema::load_subschemas at line 100
sub yaml_version { return $_[0]->{yaml_version} }
89
9012µsmy %LOADED_SCHEMA = (
91 JSON => 1,
92);
9311µsmy %DEFAULT_SCHEMA = (
94 '1.2' => 'Core',
95 '1.1' => 'YAML1_1',
96);
97
98
# spent 1.81ms (32µs+1.78) within YAML::PP::Schema::load_subschemas which was called: # once (32µs+1.78ms) by YAML::PP::new at line 59 of YAML/PP.pm
sub load_subschemas {
9911µs my ($self, @schemas) = @_;
10011µs13µs my $yaml_version = $self->yaml_version;
# spent 3µs making 1 call to YAML::PP::Schema::yaml_version
10110s my $i = 0;
10215µs while ($i < @schemas) {
10311µs my $item = $schemas[ $i ];
10411µs if ($item eq '+') {
105 $item = $DEFAULT_SCHEMA{ $yaml_version };
106 }
10711µs $i++;
10813µs11µs if (blessed($item)) {
# spent 1µs making 1 call to Scalar::Util::blessed
109 $item->register(
110 schema => $self,
111 );
112 next;
113 }
11410s my @options;
11511µs while ($i < @schemas
116 and (
117 $schemas[ $i ] =~ m/^[^A-Za-z]/
118 or
119 $schemas[ $i ] =~ m/^[a-zA-Z0-9]+=/
120 )
121 ) {
122 push @options, $schemas[ $i ];
123 $i++;
124 }
125
12610s my $class;
12715µs11µs if ($item =~ m/^\:(.*)/) {
# spent 1µs making 1 call to YAML::PP::Schema::CORE:match
128 $class = "$1";
129 unless ($class =~ m/\A[A-Za-z0-9_:]+\z/) {
130 die "Module name '$class' is invalid";
131 }
132 Module::Load::load $class;
133 }
134 else {
13511µs $class = "YAML::PP::Schema::$item";
13617µs15µs unless ($class =~ m/\A[A-Za-z0-9_:]+\z/) {
# spent 5µs making 1 call to YAML::PP::Schema::CORE:match
137 die "Module name '$class' is invalid";
138 }
13913µs13µs $LOADED_SCHEMA{ $item } ||= Module::Load::load $class;
# spent 3µs making 1 call to Module::Load::load
140 }
14114µs1473µs $class->register(
# spent 473µs making 1 call to YAML::PP::Schema::Core::register
142 schema => $self,
143 options => \@options,
144 );
145
146 }
147}
148
149
# spent 187µs (178+9) within YAML::PP::Schema::add_resolver which was called 28 times, avg 7µs/call: # 6 times (33µs+2µs) by YAML::PP::Schema::Core::register at line 59 of YAML/PP/Schema/Core.pm, avg 6µs/call # 5 times (38µs+1000ns) by YAML::PP::Schema::Core::register at line 31 of YAML/PP/Schema/Core.pm, avg 8µs/call # 3 times (20µs+1000ns) by YAML::PP::Schema::Core::register at line 63 of YAML/PP/Schema/Core.pm, avg 7µs/call # 3 times (19µs+0s) by YAML::PP::Schema::Core::register at line 67 of YAML/PP/Schema/Core.pm, avg 6µs/call # 3 times (18µs+1µs) by YAML::PP::Schema::Core::register at line 39 of YAML/PP/Schema/Core.pm, avg 6µs/call # 3 times (15µs+3µs) by YAML::PP::Schema::Core::register at line 35 of YAML/PP/Schema/Core.pm, avg 6µs/call # once (9µs+0s) by YAML::PP::Schema::Core::register at line 48 of YAML/PP/Schema/Core.pm # once (8µs+0s) by YAML::PP::Schema::Core::register at line 52 of YAML/PP/Schema/Core.pm # once (7µs+0s) by YAML::PP::Schema::Core::register at line 44 of YAML/PP/Schema/Core.pm # once (6µs+0s) by YAML::PP::Schema::Core::register at line 40 of YAML/PP/Schema/Core.pm # once (5µs+1000ns) by YAML::PP::Schema::Core::register at line 70 of YAML/PP/Schema/Core.pm
sub add_resolver {
150289µs my ($self, %args) = @_;
151283µs my $tag = $args{tag};
152284µs my $rule = $args{match};
1532813µs289µs my $resolvers = $self->resolvers;
# spent 9µs making 28 calls to YAML::PP::Schema::resolvers, avg 321ns/call
154286µs my ($type, @rule) = @$rule;
155285µs my $implicit = $args{implicit};
156284µs $implicit = 1 unless defined $implicit;
157286µs my $resolver_list = [];
158285µs if ($tag) {
159284µs if (ref $tag eq 'Regexp') {
160 my $res = $resolvers->{tags} ||= [];
161 push @$res, [ $tag, {} ];
162 push @$resolver_list, $res->[-1]->[1];
163 }
164 else {
165285µs my $res = $resolvers->{tag}->{ $tag } ||= {};
166284µs push @$resolver_list, $res;
167 }
168 }
169286µs if ($implicit) {
170 push @$resolver_list, $resolvers->{value} ||= {};
171 }
1722855µs for my $res (@$resolver_list) {
173567µs if ($type eq 'equals') {
174464µs my ($match, $value) = @rule;
1754627µs unless (exists $res->{equals}->{ $match }) {
176 $res->{equals}->{ $match } = $value;
177 }
178466µs next;
179 }
180 elsif ($type eq 'regex') {
18182µs my ($match, $value) = @rule;
18285µs push @{ $res->{regex} }, [ $match => $value ];
183 }
184 elsif ($type eq 'all') {
18520s my ($value) = @rule;
18620s $res->{all} = $value;
187 }
188 }
189}
190
191sub add_sequence_resolver {
192 my ($self, %args) = @_;
193 return $self->add_collection_resolver(sequence => %args);
194}
195
196sub add_mapping_resolver {
197 my ($self, %args) = @_;
198 return $self->add_collection_resolver(mapping => %args);
199}
200
201sub add_collection_resolver {
202 my ($self, $type, %args) = @_;
203 my $tag = $args{tag};
204 my $implicit = $args{implicit};
205 my $resolvers = $self->resolvers;
206
207 if ($tag and ref $tag eq 'Regexp') {
208 my $res = $resolvers->{ $type }->{tags} ||= [];
209 push @$res, [ $tag, {
210 on_create => $args{on_create},
211 on_data => $args{on_data},
212 } ];
213 }
214 elsif ($tag) {
215 my $res = $resolvers->{ $type }->{tag}->{ $tag } ||= {
216 on_create => $args{on_create},
217 on_data => $args{on_data},
218 };
219 }
220}
221
222
# spent 111µs (99+12) within YAML::PP::Schema::add_representer which was called 28 times, avg 4µs/call: # 23 times (72µs+8µs) by YAML::PP::Schema::Core::register at line 89 of YAML/PP/Schema/Core.pm, avg 3µs/call # once (8µs+1µs) by YAML::PP::Schema::Core::register at line 75 of YAML/PP/Schema/Core.pm # once (7µs+1000ns) by YAML::PP::Schema::Core::register at line 100 of YAML/PP/Schema/Core.pm # once (6µs+1000ns) by YAML::PP::Schema::Core::register at line 83 of YAML/PP/Schema/Core.pm # once (3µs+1000ns) by YAML::PP::Schema::Core::register at line 93 of YAML/PP/Schema/Core.pm # once (3µs+0s) by YAML::PP::Schema::Core::register at line 79 of YAML/PP/Schema/Core.pm
sub add_representer {
223287µs my ($self, %args) = @_;
224
2252820µs2812µs my $representers = $self->representers;
# spent 12µs making 28 calls to YAML::PP::Schema::representers, avg 429ns/call
226282µs if (my $flags = $args{flags}) {
22721µs my $rep = $representers->{flags};
22820s push @$rep, \%args;
22923µs return;
230 }
231261µs if (my $regex = $args{regex}) {
23211µs my $rep = $representers->{regex};
23310s push @$rep, \%args;
23412µs return;
235 }
236256µs if (my $regex = $args{class_matches}) {
237 my $rep = $representers->{class_matches};
238 push @$rep, [ $args{class_matches}, $args{code} ];
239 return;
240 }
241253µs if (my $class_equals = $args{class_equals}) {
24211µs if ($] >= 5.036000 and $class_equals eq 'perl_experimental') {
243 $representers->{bool} = {
244 code => $args{code},
245 };
246 return;
247 }
24811µs my $rep = $representers->{class_equals};
249 $rep->{ $class_equals } = {
250 code => $args{code},
25111µs };
25213µs return;
253 }
254241µs if (my $class_isa = $args{class_isa}) {
255 my $rep = $representers->{class_isa};
256 push @$rep, [ $args{class_isa}, $args{code} ];
257 return;
258 }
259243µs if (my $tied_equals = $args{tied_equals}) {
260 my $rep = $representers->{tied_equals};
261 $rep->{ $tied_equals } = {
262 code => $args{code},
263 };
264 return;
265 }
266246µs if (defined(my $equals = $args{equals})) {
267234µs my $rep = $representers->{equals};
268 $rep->{ $equals } = {
269 code => $args{code},
2702312µs };
2712323µs return;
272 }
27311µs if (defined(my $scalarref = $args{scalarref})) {
274 $representers->{scalarref} = {
275 code => $args{code},
276 };
277 return;
278 }
27910s if (defined(my $refref = $args{refref})) {
280 $representers->{refref} = {
281 code => $args{code},
282 };
283 return;
284 }
28511µs if (defined(my $coderef = $args{coderef})) {
286 $representers->{coderef} = {
287 code => $args{code},
288 };
289 return;
290 }
29110s if (defined(my $glob = $args{glob})) {
292 $representers->{glob} = {
293 code => $args{code},
294 };
295 return;
296 }
29711µs if (my $undef = $args{undefined}) {
29810s $representers->{undef} = $undef;
29912µs return;
300 }
301}
302
303
# spent 468ms (307+161) within YAML::PP::Schema::load_scalar which was called 20764 times, avg 23µs/call: # 20764 times (307ms+161ms) by YAML::PP::Constructor::scalar_event at line 287 of YAML/PP/Constructor.pm, avg 23µs/call
sub load_scalar {
304207643.34ms my ($self, $constructor, $event) = @_;
305207644.40ms my $tag = $event->{tag};
306207645.35ms my $value = $event->{value};
307
3082076412.3ms207649.33ms my $resolvers = $self->resolvers;
# spent 9.33ms making 20764 calls to YAML::PP::Schema::resolvers, avg 449ns/call
309207642.64ms my $res;
310207645.19ms if ($tag) {
311 $res = $resolvers->{tag}->{ $tag };
312 if (not $res and my $matches = $resolvers->{tags}) {
313 for my $match (@$matches) {
314 my ($re, $rule) = @$match;
315 if ($tag =~ $re) {
316 $res = $rule;
317 last;
318 }
319 }
320 }
321 }
322 else {
323207643.76ms $res = $resolvers->{value};
324207648.41ms if ($event->{style} ne YAML_PLAIN_SCALAR_STYLE) {
325 return $value;
326 }
327 }
328
329187186.80ms if (my $equals = $res->{equals}) {
3301871812.9ms if (exists $equals->{ $value }) {
3311003472µs my $res = $equals->{ $value };
33210032.75ms9695.23ms if (ref $res eq 'CODE') {
# spent 2.86ms making 566 calls to YAML::PP::Schema::_bool_jsonpp_true, avg 5µs/call # spent 2.37ms making 403 calls to YAML::PP::Schema::_bool_jsonpp_false, avg 6µs/call
333 return $res->($constructor, $event);
334 }
3353446µs return $res;
336 }
337 }
338177155.70ms if (my $regex = $res->{regex}) {
339177157.60ms for my $item (@$regex) {
3407042514.0ms my ($re, $sub) = @$item;
34170425258ms140850131ms my @matches = $value =~ $re;
# spent 68.7ms making 70425 calls to YAML::PP::Schema::CORE:regcomp, avg 975ns/call # spent 62.2ms making 70425 calls to YAML::PP::Schema::CORE:match, avg 884ns/call
3427042524.5ms145355µs if (@matches) {
# spent 355µs making 145 calls to YAML::PP::Schema::JSON::_to_int, avg 2µs/call
343 return $sub->($constructor, $event, \@matches);
344 }
345 }
346 }
347175704.38ms if (my $catch_all = $res->{all}) {
3481757042.2ms1757015.1ms if (ref $catch_all eq 'CODE') {
# spent 15.1ms making 17570 calls to YAML::PP::Schema::Core::__ANON__[YAML/PP/Schema/Core.pm:70], avg 861ns/call
349 return $catch_all->($constructor, $event);
350 }
351 return $catch_all;
352 }
353 return $value;
354}
355
356
# spent 3.15ms (2.90+252µs) within YAML::PP::Schema::create_sequence which was called 636 times, avg 5µs/call: # 636 times (2.90ms+252µs) by YAML::PP::Constructor::sequence_start_event at line 229 of YAML/PP/Constructor.pm, avg 5µs/call
sub create_sequence {
357636161µs my ($self, $constructor, $event) = @_;
358636309µs my $tag = $event->{tag};
359636314µs my $data = [];
360636113µs my $on_data;
361
362636637µs636252µs my $resolvers = $self->resolvers->{sequence};
# spent 252µs making 636 calls to YAML::PP::Schema::resolvers, avg 396ns/call
363636160µs if ($tag) {
364 if (my $equals = $resolvers->{tag}->{ $tag }) {
365 my $on_create = $equals->{on_create};
366 $on_data = $equals->{on_data};
367 $on_create and $data = $on_create->($constructor, $event);
368 return ($data, $on_data);
369 }
370 if (my $matches = $resolvers->{tags}) {
371 for my $match (@$matches) {
372 my ($re, $actions) = @$match;
373 my $on_create = $actions->{on_create};
374 if ($tag =~ $re) {
375 $on_data = $actions->{on_data};
376 $on_create and $data = $on_create->($constructor, $event);
377 return ($data, $on_data);
378 }
379 }
380 }
381 }
382
3836361.10ms return ($data, $on_data);
384}
385
386
# spent 28.3ms (24.7+3.66) within YAML::PP::Schema::create_mapping which was called 6900 times, avg 4µs/call: # 6900 times (24.7ms+3.66ms) by YAML::PP::Constructor::mapping_start_event at line 128 of YAML/PP/Constructor.pm, avg 4µs/call
sub create_mapping {
38769001.27ms my ($self, $constructor, $event) = @_;
38869002.09ms my $tag = $event->{tag};
38969001.96ms my $data = {};
3906900883µs my $on_data;
391
39269006.40ms69003.66ms my $resolvers = $self->resolvers->{mapping};
# spent 3.66ms making 6900 calls to YAML::PP::Schema::resolvers, avg 531ns/call
39369001.00ms if ($tag) {
394 if (my $equals = $resolvers->{tag}->{ $tag }) {
395 my $on_create = $equals->{on_create};
396 $on_data = $equals->{on_data};
397 $on_create and $data = $on_create->($constructor, $event);
398 return ($data, $on_data);
399 }
400 if (my $matches = $resolvers->{tags}) {
401 for my $match (@$matches) {
402 my ($re, $actions) = @$match;
403 my $on_create = $actions->{on_create};
404 if ($tag =~ $re) {
405 $on_data = $actions->{on_data};
406 $on_create and $data = $on_create->($constructor, $event);
407 return ($data, $on_data);
408 }
409 }
410 }
411 }
412
41369009.63ms return ($data, $on_data);
414}
415
4165662.01ms5661.06ms
# spent 2.86ms (1.80+1.06) within YAML::PP::Schema::_bool_jsonpp_true which was called 566 times, avg 5µs/call: # 566 times (1.80ms+1.06ms) by YAML::PP::Schema::load_scalar at line 332, avg 5µs/call
sub _bool_jsonpp_true { JSON::PP::true() }
# spent 1.06ms making 566 calls to JSON::PP::true, avg 2µs/call
417
418sub _bool_booleanpm_true { boolean::true() }
419
420sub _bool_perl_true { !!1 }
421
4224031.57ms403815µs
# spent 2.37ms (1.56+815µs) within YAML::PP::Schema::_bool_jsonpp_false which was called 403 times, avg 6µs/call: # 403 times (1.56ms+815µs) by YAML::PP::Schema::load_scalar at line 332, avg 6µs/call
sub _bool_jsonpp_false { JSON::PP::false() }
# spent 815µs making 403 calls to JSON::PP::false, avg 2µs/call
423
424sub _bool_booleanpm_false { boolean::false() }
425
426sub _bool_perl_false { !!0 }
427
42814µs1;
429
430__END__
 
# spent 62.2ms within YAML::PP::Schema::CORE:match which was called 70427 times, avg 884ns/call: # 70425 times (62.2ms+0s) by YAML::PP::Schema::load_scalar at line 341, avg 884ns/call # once (5µs+0s) by YAML::PP::Schema::load_subschemas at line 136 # once (1µs+0s) by YAML::PP::Schema::load_subschemas at line 127
sub YAML::PP::Schema::CORE:match; # opcode
# spent 68.7ms within YAML::PP::Schema::CORE:regcomp which was called 70425 times, avg 975ns/call: # 70425 times (68.7ms+0s) by YAML::PP::Schema::load_scalar at line 341, avg 975ns/call
sub YAML::PP::Schema::CORE:regcomp; # opcode