Filename | /Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm |
Statements | Executed 838 statements in 5.10ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
184 | 1 | 1 | 1.12ms | 6.26ms | __ANON__[:60] | Moose::Util::TypeConstraints::Builtins::
125 | 1 | 1 | 858µs | 8.36ms | __ANON__[:77] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 475µs | 7.98ms | define_builtins | Moose::Util::TypeConstraints::Builtins::
185 | 1 | 1 | 326µs | 326µs | __ANON__[:40] | Moose::Util::TypeConstraints::Builtins::
36 | 1 | 1 | 183µs | 2.40ms | __ANON__[:114] | Moose::Util::TypeConstraints::Builtins::
45 | 1 | 1 | 135µs | 135µs | __ANON__[:52] | Moose::Util::TypeConstraints::Builtins::
55 | 1 | 1 | 122µs | 122µs | __ANON__[:252] | Moose::Util::TypeConstraints::Builtins::
22 | 1 | 1 | 112µs | 1.37ms | __ANON__[:106] | Moose::Util::TypeConstraints::Builtins::
40 | 1 | 1 | 93µs | 93µs | __ANON__[:217] | Moose::Util::TypeConstraints::Builtins::
6 | 1 | 1 | 47µs | 368µs | __ANON__[:292] | Moose::Util::TypeConstraints::Builtins::
2 | 1 | 1 | 22µs | 27µs | __ANON__[:284] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 21µs | 38µs | BEGIN@4 | Moose::Util::TypeConstraints::Builtins::
16 | 16 | 1 | 20µs | 20µs | where | Moose::Util::TypeConstraints::Builtins::
16 | 16 | 1 | 17µs | 17µs | subtype | Moose::Util::TypeConstraints::Builtins::
17 | 17 | 1 | 17µs | 17µs | inline_as | Moose::Util::TypeConstraints::Builtins::
16 | 16 | 1 | 16µs | 16µs | as | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 12µs | 26µs | BEGIN@8 | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 11µs | 37µs | __ANON__[:170] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 11µs | 45µs | BEGIN@7 | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 10µs | 18µs | BEGIN@5 | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 10µs | 32µs | BEGIN@9 | Moose::Util::TypeConstraints::Builtins::
2 | 1 | 1 | 4µs | 4µs | __ANON__[:157] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 4µs | 4µs | __ANON__[:146] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 3µs | 3µs | __ANON__[:119] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 3µs | 3µs | __ANON__[:189] | Moose::Util::TypeConstraints::Builtins::
2 | 1 | 1 | 2µs | 2µs | __ANON__[:22] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 2µs | 2µs | __ANON__[:131] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 2µs | 2µs | __ANON__[:151] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 2µs | 2µs | __ANON__[:126] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 2µs | 2µs | __ANON__[:66] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 2µs | 2µs | __ANON__[:285] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 2µs | 2µs | __ANON__[:33] | Moose::Util::TypeConstraints::Builtins::
1 | 1 | 1 | 1µs | 1µs | type | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:110] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:118] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:130] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:140] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:150] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:155] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:163] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:178] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:184] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:185] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:196] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:206] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:215] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:216] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:21] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:231] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:241] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:250] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:251] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:266] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:26] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:276] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:283] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:30] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:37] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:44] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:56] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:64] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:70] | Moose::Util::TypeConstraints::Builtins::
0 | 0 | 0 | 0s | 0s | __ANON__[:91] | Moose::Util::TypeConstraints::Builtins::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package Moose::Util::TypeConstraints::Builtins; | ||||
2 | 1 | 800ns | our $VERSION = '2.1403'; | ||
3 | |||||
4 | 2 | 27µs | 2 | 56µs | # spent 38µs (21+18) within Moose::Util::TypeConstraints::Builtins::BEGIN@4 which was called:
# once (21µs+18µs) by Moose::Meta::Attribute::BEGIN@16 at line 4 # spent 38µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@4
# spent 18µs making 1 call to strict::import |
5 | 2 | 27µs | 2 | 26µs | # spent 18µs (10+8) within Moose::Util::TypeConstraints::Builtins::BEGIN@5 which was called:
# once (10µs+8µs) by Moose::Meta::Attribute::BEGIN@16 at line 5 # spent 18µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@5
# spent 8µs making 1 call to warnings::import |
6 | |||||
7 | 2 | 30µs | 2 | 79µs | # spent 45µs (11+34) within Moose::Util::TypeConstraints::Builtins::BEGIN@7 which was called:
# once (11µs+34µs) by Moose::Meta::Attribute::BEGIN@16 at line 7 # spent 45µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@7
# spent 34µs making 1 call to Exporter::import |
8 | 3 | 45µs | 2 | 41µs | # spent 26µs (12+14) within Moose::Util::TypeConstraints::Builtins::BEGIN@8 which was called:
# once (12µs+14µs) by Moose::Meta::Attribute::BEGIN@16 at line 8 # spent 26µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@8
# spent 14µs making 1 call to UNIVERSAL::VERSION |
9 | 2 | 1.90ms | 2 | 55µs | # spent 32µs (10+23) within Moose::Util::TypeConstraints::Builtins::BEGIN@9 which was called:
# once (10µs+23µs) by Moose::Meta::Attribute::BEGIN@16 at line 9 # spent 32µs making 1 call to Moose::Util::TypeConstraints::Builtins::BEGIN@9
# spent 23µs making 1 call to Exporter::import |
10 | |||||
11 | 1 | 4µs | 1 | 442µs | # spent 1µs within Moose::Util::TypeConstraints::Builtins::type which was called:
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 22 # spent 442µs making 1 call to Moose::Util::TypeConstraints::type |
12 | 16 | 56µs | 16 | 5.71ms | # spent 17µs within Moose::Util::TypeConstraints::Builtins::subtype which was called 16 times, avg 1µs/call:
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 26
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 33
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 119
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 52
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 170
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 131
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 77
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 106
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 157
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 126
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 40
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 146
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 114
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 60
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 66
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 151 # spent 5.71ms making 16 calls to Moose::Util::TypeConstraints::subtype, avg 357µs/call |
13 | 16 | 53µs | 16 | 29µs | # spent 16µs within Moose::Util::TypeConstraints::Builtins::as which was called 16 times, avg 1µs/call:
# once (2µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 26
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 33
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 131
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 119
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 106
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 146
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 52
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 66
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 151
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 170
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 77
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 157
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 126
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 40
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 114
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 60 # spent 29µs making 16 calls to Moose::Util::TypeConstraints::as, avg 2µs/call |
14 | 16 | 72µs | 16 | 24µs | # spent 20µs within Moose::Util::TypeConstraints::Builtins::where which was called 16 times, avg 1µs/call:
# once (2µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 22
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 52
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 33
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 119
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 170
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 131
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 77
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 157
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 126
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 40
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 146
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 114
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 60
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 151
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 106
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 66 # spent 24µs making 16 calls to Moose::Util::TypeConstraints::where, avg 2µs/call |
15 | 17 | 60µs | 17 | 22µs | # spent 17µs within Moose::Util::TypeConstraints::Builtins::inline_as which was called 17 times, avg 976ns/call:
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 26
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 22
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 170
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 119
# once (1µs+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 60
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 131
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 33
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 77
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 106
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 157
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 126
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 40
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 146
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 114
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 52
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 66
# once (900ns+0s) by Moose::Util::TypeConstraints::Builtins::define_builtins at line 151 # spent 22µs making 17 calls to Moose::Util::TypeConstraints::inline_as, avg 1µs/call |
16 | |||||
17 | # spent 7.98ms (475µs+7.50) within Moose::Util::TypeConstraints::Builtins::define_builtins which was called:
# once (475µs+7.50ms) by Moose::Meta::Attribute::BEGIN@16 at line 732 of Moose/Util/TypeConstraints.pm | ||||
18 | 1 | 500ns | my $registry = shift; | ||
19 | |||||
20 | type 'Any' # meta-type including all | ||||
21 | => where {1} | ||||
22 | 3 | 16µs | 3 | 5µs | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:22] which was called 2 times, avg 1µs/call:
# 2 times (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 1µs/call # spent 2µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::type |
23 | |||||
24 | subtype 'Item' # base type | ||||
25 | => as 'Any' | ||||
26 | 1 | 6µs | 3 | 4µs | => inline_as { '1' }; # spent 2µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype |
27 | |||||
28 | subtype 'Undef' | ||||
29 | => as 'Item' | ||||
30 | => where { !defined($_) } | ||||
31 | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:33] which was called:
# once (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm | ||||
32 | 1 | 4µs | '!defined(' . $_[1] . ')' | ||
33 | 1 | 7µs | 4 | 5µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
34 | |||||
35 | subtype 'Defined' | ||||
36 | => as 'Item' | ||||
37 | => where { defined($_) } | ||||
38 | # spent 326µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:40] which was called 185 times, avg 2µs/call:
# 185 times (326µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 2µs/call | ||||
39 | 185 | 463µs | 'defined(' . $_[1] . ')' | ||
40 | 1 | 8µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
41 | |||||
42 | subtype 'Bool' | ||||
43 | => as 'Item' | ||||
44 | => where { !defined($_) || $_ eq "" || "$_" eq '1' || "$_" eq '0' } | ||||
45 | # spent 135µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:52] which was called 45 times, avg 3µs/call:
# 45 times (135µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 3µs/call | ||||
46 | 45 | 160µs | '(' | ||
47 | . '!defined(' . $_[1] . ') ' | ||||
48 | . '|| ' . $_[1] . ' eq "" ' | ||||
49 | . '|| (' . $_[1] . '."") eq "1" ' | ||||
50 | . '|| (' . $_[1] . '."") eq "0"' | ||||
51 | . ')' | ||||
52 | 1 | 8µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
53 | |||||
54 | subtype 'Value' | ||||
55 | => as 'Defined' | ||||
56 | => where { !ref($_) } | ||||
57 | # spent 6.26ms (1.12+5.13) within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:60] which was called 184 times, avg 34µs/call:
# 184 times (1.12ms+5.13ms) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 34µs/call | ||||
58 | 184 | 768µs | 368 | 227µs | $_[0]->parent()->_inline_check($_[1]) # spent 227µs making 184 calls to Moose::Meta::TypeConstraint::parent, avg 1µs/call
# spent 4.91ms making 184 calls to Moose::Meta::TypeConstraint::_inline_check, avg 27µs/call, recursion: max depth 2, sum of overlapping time 4.91ms |
59 | . ' && !ref(' . $_[1] . ')' | ||||
60 | 1 | 8µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::as |
61 | |||||
62 | subtype 'Ref' | ||||
63 | => as 'Defined' | ||||
64 | => where { ref($_) } | ||||
65 | # no need to call parent - ref also checks for definedness | ||||
66 | 2 | 12µs | 4 | 4µs | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:66] which was called:
# once (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
67 | |||||
68 | subtype 'Str' | ||||
69 | => as 'Value' | ||||
70 | => where { ref(\$_) eq 'SCALAR' || ref(\(my $val = $_)) eq 'SCALAR' } | ||||
71 | # spent 8.36ms (858µs+7.50) within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:77] which was called 125 times, avg 67µs/call:
# 125 times (858µs+7.50ms) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 67µs/call | ||||
72 | 125 | 610µs | 250 | 183µs | $_[0]->parent()->_inline_check($_[1]) # spent 183µs making 125 calls to Moose::Meta::TypeConstraint::parent, avg 1µs/call
# spent 7.32ms making 125 calls to Moose::Meta::TypeConstraint::_inline_check, avg 59µs/call, recursion: max depth 1, sum of overlapping time 7.32ms |
73 | . ' && (' | ||||
74 | . 'ref(\\' . $_[1] . ') eq "SCALAR"' | ||||
75 | . ' || ref(\\(my $val = ' . $_[1] . ')) eq "SCALAR"' | ||||
76 | . ')' | ||||
77 | 1 | 8µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
78 | |||||
79 | 1 | 1µs | 1 | 16µs | my $value_type = Moose::Util::TypeConstraints::find_type_constraint('Value'); # spent 16µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint |
80 | subtype 'Num' | ||||
81 | => as 'Str' | ||||
82 | => where { | ||||
83 | my $val = $_; | ||||
84 | ($val =~ /\A[+-]?[0-9]+\z/) || | ||||
85 | ( $val =~ /\A(?:[+-]?) #matches optional +- in the beginning | ||||
86 | (?=[0-9]|\.[0-9]) #matches previous +- only if there is something like 3 or .3 | ||||
87 | [0-9]* #matches 0-9 zero or more times | ||||
88 | (?:\.[0-9]+)? #matches optional .89 or nothing | ||||
89 | (?:[Ee](?:[+-]?[0-9]+))? #matches E1 or e1 or e-1 or e+1 etc | ||||
90 | \z/x ); | ||||
91 | } | ||||
92 | # spent 1.37ms (112µs+1.26) within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:106] which was called 22 times, avg 62µs/call:
# 22 times (112µs+1.26ms) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 62µs/call | ||||
93 | # the long Str tests are redundant here | ||||
94 | #storing $_[1] in a temporary value, | ||||
95 | #so that $_[1] won't get converted to a string for regex match | ||||
96 | #see t/attributes/numeric_defaults.t for more details | ||||
97 | 22 | 94µs | 22 | 0s | 'my $val = '.$_[1].';'. # spent 1.26ms making 22 calls to Moose::Meta::TypeConstraint::_inline_check, avg 57µs/call, recursion: max depth 1, sum of overlapping time 1.26ms |
98 | $value_type->_inline_check('$val') | ||||
99 | .' && ( $val =~ /\A[+-]?[0-9]+\z/ || ' | ||||
100 | . '$val =~ /\A(?:[+-]?) #matches optional +- in the beginning | ||||
101 | (?=[0-9]|\.[0-9]) #matches previous +- only if there is something like 3 or .3 | ||||
102 | [0-9]* #matches 0-9 zero or more times | ||||
103 | (?:\.[0-9]+)? #matches optional .89 or nothing | ||||
104 | (?:[Ee](?:[+-]?[0-9]+))? #matches E1 or e1 or e-1 or e+1 etc | ||||
105 | \z/x ); ' | ||||
106 | 1 | 8µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
107 | |||||
108 | subtype 'Int' | ||||
109 | => as 'Num' | ||||
110 | => where { (my $val = $_) =~ /\A-?[0-9]+\z/ } | ||||
111 | # spent 2.40ms (183µs+2.21) within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:114] which was called 36 times, avg 67µs/call:
# 36 times (183µs+2.21ms) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 67µs/call | ||||
112 | 36 | 144µs | 36 | 0s | $value_type->_inline_check($_[1]) # spent 2.21ms making 36 calls to Moose::Meta::TypeConstraint::_inline_check, avg 61µs/call, recursion: max depth 1, sum of overlapping time 2.21ms |
113 | . ' && (my $val = ' . $_[1] . ') =~ /\A-?[0-9]+\z/' | ||||
114 | 1 | 8µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
115 | |||||
116 | subtype 'CodeRef' | ||||
117 | => as 'Ref' | ||||
118 | => where { ref($_) eq 'CODE' } | ||||
119 | 2 | 13µs | 4 | 4µs | # spent 3µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:119] which was called:
# once (3µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
120 | |||||
121 | subtype 'RegexpRef' | ||||
122 | => as 'Ref' | ||||
123 | => where( \&_RegexpRef ) | ||||
124 | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:126] which was called:
# once (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm | ||||
125 | 1 | 4µs | 'Moose::Util::TypeConstraints::Builtins::_RegexpRef(' . $_[1] . ')' | ||
126 | 1 | 7µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
127 | |||||
128 | subtype 'GlobRef' | ||||
129 | => as 'Ref' | ||||
130 | => where { ref($_) eq 'GLOB' } | ||||
131 | 2 | 12µs | 4 | 4µs | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:131] which was called:
# once (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
132 | |||||
133 | # NOTE: scalar filehandles are GLOB refs, but a GLOB ref is not always a | ||||
134 | # filehandle | ||||
135 | subtype 'FileHandle' | ||||
136 | => as 'Ref' | ||||
137 | => where { | ||||
138 | (ref($_) eq "GLOB" && Scalar::Util::openhandle($_)) | ||||
139 | || (blessed($_) && $_->isa("IO::Handle")); | ||||
140 | } | ||||
141 | # spent 4µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:146] which was called:
# once (4µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm | ||||
142 | 1 | 6µs | '(ref(' . $_[1] . ') eq "GLOB" ' | ||
143 | . '&& Scalar::Util::openhandle(' . $_[1] . ')) ' | ||||
144 | . '|| (Scalar::Util::blessed(' . $_[1] . ') ' | ||||
145 | . '&& ' . $_[1] . '->isa("IO::Handle"))' | ||||
146 | 1 | 9µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
147 | |||||
148 | subtype 'Object' | ||||
149 | => as 'Ref' | ||||
150 | => where { blessed($_) } | ||||
151 | 2 | 12µs | 4 | 4µs | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:151] which was called:
# once (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
152 | |||||
153 | subtype 'ClassName' | ||||
154 | => as 'Str' | ||||
155 | => where { is_class_loaded($_) } | ||||
156 | # the long Str tests are redundant here | ||||
157 | 3 | 14µs | 4 | 4µs | # spent 4µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:157] which was called 2 times, avg 2µs/call:
# 2 times (4µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 2µs/call # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::as
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as |
158 | |||||
159 | subtype 'RoleName' | ||||
160 | => as 'ClassName' | ||||
161 | => where { | ||||
162 | (Class::MOP::class_of($_) || return)->isa('Moose::Meta::Role'); | ||||
163 | } | ||||
164 | # spent 37µs (11+26) within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:170] which was called:
# once (11µs+26µs) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm | ||||
165 | 1 | 7µs | 2 | 1µs | $_[0]->parent()->_inline_check($_[1]) # spent 1µs making 1 call to Moose::Meta::TypeConstraint::parent
# spent 25µs making 1 call to Moose::Meta::TypeConstraint::_inline_check, recursion: max depth 1, sum of overlapping time 25µs |
166 | . ' && do {' | ||||
167 | . 'my $meta = Class::MOP::class_of(' . $_[1] . ');' | ||||
168 | . '$meta && $meta->isa("Moose::Meta::Role");' | ||||
169 | . '}' | ||||
170 | 1 | 12µs | 4 | 4µs | }; # spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::where
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::inline_as
# spent 1µs making 1 call to Moose::Util::TypeConstraints::Builtins::subtype
# spent 900ns making 1 call to Moose::Util::TypeConstraints::Builtins::as |
171 | |||||
172 | $registry->add_type_constraint( | ||||
173 | Moose::Meta::TypeConstraint::Parameterizable->new( | ||||
174 | name => 'ScalarRef', | ||||
175 | package_defined_in => __PACKAGE__, | ||||
176 | parent => | ||||
177 | Moose::Util::TypeConstraints::find_type_constraint('Ref'), | ||||
178 | constraint => sub { ref($_) eq 'SCALAR' || ref($_) eq 'REF' }, | ||||
179 | constraint_generator => sub { | ||||
180 | my $type_parameter = shift; | ||||
181 | my $check = $type_parameter->_compiled_type_constraint; | ||||
182 | return sub { | ||||
183 | return $check->( ${$_} ); | ||||
184 | }; | ||||
185 | }, | ||||
186 | # spent 3µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:189] which was called:
# once (3µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm | ||||
187 | 1 | 5µs | 'ref(' . $_[1] . ') eq "SCALAR" ' | ||
188 | . '|| ref(' . $_[1] . ') eq "REF"' | ||||
189 | }, | ||||
190 | inline_generator => sub { | ||||
191 | my $self = shift; | ||||
192 | my $type_parameter = shift; | ||||
193 | my $val = shift; | ||||
194 | '(ref(' . $val . ') eq "SCALAR" || ref(' . $val . ') eq "REF") ' | ||||
195 | . '&& ' . $type_parameter->_inline_check('${(' . $val . ')}') | ||||
196 | }, | ||||
197 | ) | ||||
198 | 1 | 16µs | 3 | 416µs | ); # spent 379µs making 1 call to Moose::Meta::TypeConstraint::new
# spent 21µs making 1 call to Moose::Meta::TypeConstraint::Registry::add_type_constraint
# spent 16µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint |
199 | |||||
200 | $registry->add_type_constraint( | ||||
201 | Moose::Meta::TypeConstraint::Parameterizable->new( | ||||
202 | name => 'ArrayRef', | ||||
203 | package_defined_in => __PACKAGE__, | ||||
204 | parent => | ||||
205 | Moose::Util::TypeConstraints::find_type_constraint('Ref'), | ||||
206 | constraint => sub { ref($_) eq 'ARRAY' }, | ||||
207 | constraint_generator => sub { | ||||
208 | my $type_parameter = shift; | ||||
209 | my $check = $type_parameter->_compiled_type_constraint; | ||||
210 | return sub { | ||||
211 | foreach my $x (@$_) { | ||||
212 | ( $check->($x) ) || return; | ||||
213 | } | ||||
214 | 1; | ||||
215 | } | ||||
216 | }, | ||||
217 | 40 | 117µs | # spent 93µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:217] which was called 40 times, avg 2µs/call:
# 40 times (93µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 2µs/call | ||
218 | inline_generator => sub { | ||||
219 | my $self = shift; | ||||
220 | my $type_parameter = shift; | ||||
221 | my $val = shift; | ||||
222 | |||||
223 | 'do {' | ||||
224 | . 'my $check = ' . $val . ';' | ||||
225 | . 'ref($check) eq "ARRAY" ' | ||||
226 | . '&& &List::Util::all(' | ||||
227 | . 'sub { ' . $type_parameter->_inline_check('$_') . ' }, ' | ||||
228 | . '@{$check}' | ||||
229 | . ')' | ||||
230 | . '}'; | ||||
231 | }, | ||||
232 | ) | ||||
233 | 1 | 13µs | 3 | 242µs | ); # spent 210µs making 1 call to Moose::Meta::TypeConstraint::new
# spent 16µs making 1 call to Moose::Meta::TypeConstraint::Registry::add_type_constraint
# spent 16µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint |
234 | |||||
235 | $registry->add_type_constraint( | ||||
236 | Moose::Meta::TypeConstraint::Parameterizable->new( | ||||
237 | name => 'HashRef', | ||||
238 | package_defined_in => __PACKAGE__, | ||||
239 | parent => | ||||
240 | Moose::Util::TypeConstraints::find_type_constraint('Ref'), | ||||
241 | constraint => sub { ref($_) eq 'HASH' }, | ||||
242 | constraint_generator => sub { | ||||
243 | my $type_parameter = shift; | ||||
244 | my $check = $type_parameter->_compiled_type_constraint; | ||||
245 | return sub { | ||||
246 | foreach my $x ( values %$_ ) { | ||||
247 | ( $check->($x) ) || return; | ||||
248 | } | ||||
249 | 1; | ||||
250 | } | ||||
251 | }, | ||||
252 | 55 | 153µs | # spent 122µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:252] which was called 55 times, avg 2µs/call:
# 55 times (122µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm, avg 2µs/call | ||
253 | inline_generator => sub { | ||||
254 | my $self = shift; | ||||
255 | my $type_parameter = shift; | ||||
256 | my $val = shift; | ||||
257 | |||||
258 | 'do {' | ||||
259 | . 'my $check = ' . $val . ';' | ||||
260 | . 'ref($check) eq "HASH" ' | ||||
261 | . '&& &List::Util::all(' | ||||
262 | . 'sub { ' . $type_parameter->_inline_check('$_') . ' }, ' | ||||
263 | . 'values %{$check}' | ||||
264 | . ')' | ||||
265 | . '}'; | ||||
266 | }, | ||||
267 | ) | ||||
268 | 1 | 14µs | 3 | 241µs | ); # spent 209µs making 1 call to Moose::Meta::TypeConstraint::new
# spent 16µs making 1 call to Moose::Meta::TypeConstraint::Registry::add_type_constraint
# spent 15µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint |
269 | |||||
270 | $registry->add_type_constraint( | ||||
271 | Moose::Meta::TypeConstraint::Parameterizable->new( | ||||
272 | name => 'Maybe', | ||||
273 | package_defined_in => __PACKAGE__, | ||||
274 | parent => | ||||
275 | Moose::Util::TypeConstraints::find_type_constraint('Item'), | ||||
276 | constraint => sub {1}, | ||||
277 | # spent 27µs (22+5) within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:284] which was called 2 times, avg 13µs/call:
# 2 times (22µs+5µs) by Moose::Meta::TypeConstraint::Parameterizable::generate_constraint_for at line 33 of Moose/Meta/TypeConstraint/Parameterizable.pm, avg 13µs/call | ||||
278 | 2 | 1µs | my $type_parameter = shift; | ||
279 | 2 | 4µs | 2 | 5µs | my $check = $type_parameter->_compiled_type_constraint; # spent 5µs making 2 calls to Moose::Meta::TypeConstraint::_compiled_type_constraint, avg 2µs/call |
280 | return sub { | ||||
281 | return 1 if not( defined($_) ) || $check->($_); | ||||
282 | return; | ||||
283 | } | ||||
284 | 2 | 11µs | }, | ||
285 | 1 | 4µs | # spent 2µs within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:285] which was called:
# once (2µs+0s) by Moose::Meta::TypeConstraint::_inline_check at line 195 of Moose/Meta/TypeConstraint.pm | ||
286 | # spent 368µs (47+320) within Moose::Util::TypeConstraints::Builtins::__ANON__[/Users/ap13/perl5/lib/perl5/darwin-2level/Moose/Util/TypeConstraints/Builtins.pm:292] which was called 6 times, avg 61µs/call:
# 6 times (47µs+320µs) by Moose::Meta::TypeConstraint::Parameterizable::generate_inline_for at line 62 of Moose/Meta/TypeConstraint/Parameterizable.pm, avg 61µs/call | ||||
287 | 6 | 3µs | my $self = shift; | ||
288 | 6 | 2µs | my $type_parameter = shift; | ||
289 | 6 | 3µs | my $val = shift; | ||
290 | 6 | 32µs | 6 | 320µs | '!defined(' . $val . ') ' # spent 320µs making 6 calls to Moose::Meta::TypeConstraint::_inline_check, avg 53µs/call |
291 | . '|| (' . $type_parameter->_inline_check($val) . ')' | ||||
292 | }, | ||||
293 | ) | ||||
294 | 1 | 18µs | 3 | 295µs | ); # spent 262µs making 1 call to Moose::Meta::TypeConstraint::new
# spent 17µs making 1 call to Moose::Meta::TypeConstraint::Registry::add_type_constraint
# spent 16µs making 1 call to Moose::Util::TypeConstraints::find_type_constraint |
295 | } | ||||
296 | |||||
297 | 1 | 4µs | 1; | ||
298 | |||||
299 | __END__ |