Profile of warnings.pm

← Index
NYTProf Performance Profile «line view»
For script/ponapi
Run on Wed Feb 10 15:51:26 2016
Reported on Thu Feb 11 09:43:08 2016

Filename | /usr/share/perl/5.18/warnings.pm
Statements | Executed 1944 statements in 3.14ms

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
253 | 185 | 183 | 1.37ms | 1.37ms | warnings::::importwarnings::import
8 | 1 | 1 | 450µs | 503µs | warnings::::register_categorieswarnings::register_categories
27 | 27 | 21 | 402µs | 402µs | warnings::::unimportwarnings::unimport
16 | 2 | 1 | 53µs | 53µs | warnings::::_mkMaskwarnings::_mkMask
1 | 1 | 1 | 13µs | 13µs | warnings::::CORE:regcompwarnings::CORE:regcomp (opcode)
1 | 1 | 1 | 4µs | 4µs | warnings::::CORE:matchwarnings::CORE:match (opcode)
0 | 0 | 0 | 0s | 0s | warnings::::Croakerwarnings::Croaker
0 | 0 | 0 | 0s | 0s | warnings::::__chkwarnings::__chk
0 | 0 | 0 | 0s | 0s | warnings::::_bitswarnings::_bits
0 | 0 | 0 | 0s | 0s | warnings::::_error_locwarnings::_error_loc
0 | 0 | 0 | 0s | 0s | warnings::::bitswarnings::bits
0 | 0 | 0 | 0s | 0s | warnings::::enabledwarnings::enabled
0 | 0 | 0 | 0s | 0s | warnings::::fatal_enabledwarnings::fatal_enabled
0 | 0 | 0 | 0s | 0s | warnings::::warnwarnings::warn
0 | 0 | 0 | 0s | 0s | warnings::::warnifwarnings::warnif

Call graph for these subroutines as a Graphviz dot language file.

Line | State ments | Time on line | Calls | Time in subs | Code
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | # -*- buffer-read-only: t -*-
2 |  |  |  |  | # !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
3 |  |  |  |  | # This file is built by regen/warnings.pl.
4 |  |  |  |  | # Any changes made here will be lost!
5 |  |  |  |  |
6 |  |  |  |  | package warnings;
7 |  |  |  |  |
8 | 1 | 500ns |  |  | our $VERSION = '1.18';
9 |  |  |  |  |
10 |  |  |  |  | # Verify that we're called correctly so that warnings will work.
11 |  |  |  |  | # see also strict.pm.
12 | 1 | 25µs | 2 | 17µs | unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) { # spent 13µs making 1 call to warnings::CORE:regcomp # spent 4µs making 1 call to warnings::CORE:match
13 |  |  |  |  | my (undef, $f, $l) = caller;
14 |  |  |  |  | die("Incorrect use of pragma '${\__PACKAGE__}' at $f line $l.\n");
15 |  |  |  |  | }
16 |  |  |  |  |
17 | 1 | 36µs |  |  | our %Offsets = (
18 |  |  |  |  |
19 |  |  |  |  | # Warnings Categories added in Perl 5.008
20 |  |  |  |  |
21 |  |  |  |  | 'all' => 0,
22 |  |  |  |  | 'closure' => 2,
23 |  |  |  |  | 'deprecated' => 4,
24 |  |  |  |  | 'exiting' => 6,
25 |  |  |  |  | 'glob' => 8,
26 |  |  |  |  | 'io' => 10,
27 |  |  |  |  | 'closed' => 12,
28 |  |  |  |  | 'exec' => 14,
29 |  |  |  |  | 'layer' => 16,
30 |  |  |  |  | 'newline' => 18,
31 |  |  |  |  | 'pipe' => 20,
32 |  |  |  |  | 'unopened' => 22,
33 |  |  |  |  | 'misc' => 24,
34 |  |  |  |  | 'numeric' => 26,
35 |  |  |  |  | 'once' => 28,
36 |  |  |  |  | 'overflow' => 30,
37 |  |  |  |  | 'pack' => 32,
38 |  |  |  |  | 'portable' => 34,
39 |  |  |  |  | 'recursion' => 36,
40 |  |  |  |  | 'redefine' => 38,
41 |  |  |  |  | 'regexp' => 40,
42 |  |  |  |  | 'severe' => 42,
43 |  |  |  |  | 'debugging' => 44,
44 |  |  |  |  | 'inplace' => 46,
45 |  |  |  |  | 'internal' => 48,
46 |  |  |  |  | 'malloc' => 50,
47 |  |  |  |  | 'signal' => 52,
48 |  |  |  |  | 'substr' => 54,
49 |  |  |  |  | 'syntax' => 56,
50 |  |  |  |  | 'ambiguous' => 58,
51 |  |  |  |  | 'bareword' => 60,
52 |  |  |  |  | 'digit' => 62,
53 |  |  |  |  | 'parenthesis' => 64,
54 |  |  |  |  | 'precedence' => 66,
55 |  |  |  |  | 'printf' => 68,
56 |  |  |  |  | 'prototype' => 70,
57 |  |  |  |  | 'qw' => 72,
58 |  |  |  |  | 'reserved' => 74,
59 |  |  |  |  | 'semicolon' => 76,
60 |  |  |  |  | 'taint' => 78,
61 |  |  |  |  | 'threads' => 80,
62 |  |  |  |  | 'uninitialized' => 82,
63 |  |  |  |  | 'unpack' => 84,
64 |  |  |  |  | 'untie' => 86,
65 |  |  |  |  | 'utf8' => 88,
66 |  |  |  |  | 'void' => 90,
67 |  |  |  |  |
68 |  |  |  |  | # Warnings Categories added in Perl 5.011
69 |  |  |  |  |
70 |  |  |  |  | 'imprecision' => 92,
71 |  |  |  |  | 'illegalproto' => 94,
72 |  |  |  |  |
73 |  |  |  |  | # Warnings Categories added in Perl 5.013
74 |  |  |  |  |
75 |  |  |  |  | 'non_unicode' => 96,
76 |  |  |  |  | 'nonchar' => 98,
77 |  |  |  |  | 'surrogate' => 100,
78 |  |  |  |  |
79 |  |  |  |  | # Warnings Categories added in Perl 5.017
80 |  |  |  |  |
81 |  |  |  |  | 'experimental' => 102,
82 |  |  |  |  | 'experimental::lexical_subs'=> 104,
83 |  |  |  |  | 'experimental::lexical_topic'=> 106,
84 |  |  |  |  | 'experimental::regex_sets'=> 108,
85 |  |  |  |  | 'experimental::smartmatch'=> 110,
86 |  |  |  |  | );
87 |  |  |  |  |
88 | 1 | 12µs |  |  | our %Bits = (
89 |  |  |  |  | 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..55]
90 |  |  |  |  | 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [29]
91 |  |  |  |  | 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [30]
92 |  |  |  |  | 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
93 |  |  |  |  | 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
94 |  |  |  |  | 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
95 |  |  |  |  | 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
96 |  |  |  |  | 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [31]
97 |  |  |  |  | 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
98 |  |  |  |  | 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
99 |  |  |  |  | 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55", # [51..55]
100 |  |  |  |  | 'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [52]
101 |  |  |  |  | 'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [53]
102 |  |  |  |  | 'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [54]
103 |  |  |  |  | 'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [55]
104 |  |  |  |  | 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
105 |  |  |  |  | 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [47]
106 |  |  |  |  | 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [46]
107 |  |  |  |  | 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
108 |  |  |  |  | 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [24]
109 |  |  |  |  | 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..11]
110 |  |  |  |  | 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
111 |  |  |  |  | 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [25]
112 |  |  |  |  | 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
113 |  |  |  |  | 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
114 |  |  |  |  | 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [48]
115 |  |  |  |  | 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [49]
116 |  |  |  |  | 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
117 |  |  |  |  | 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
118 |  |  |  |  | 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
119 |  |  |  |  | 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
120 |  |  |  |  | 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [32]
121 |  |  |  |  | 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
122 |  |  |  |  | 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
123 |  |  |  |  | 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [33]
124 |  |  |  |  | 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [34]
125 |  |  |  |  | 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [35]
126 |  |  |  |  | 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [36]
127 |  |  |  |  | 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
128 |  |  |  |  | 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
129 |  |  |  |  | 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
130 |  |  |  |  | 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [37]
131 |  |  |  |  | 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [38]
132 |  |  |  |  | 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00", # [21..25]
133 |  |  |  |  | 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [26]
134 |  |  |  |  | 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [27]
135 |  |  |  |  | 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [50]
136 |  |  |  |  | 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00", # [28..38,47]
137 |  |  |  |  | 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [39]
138 |  |  |  |  | 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [40]
139 |  |  |  |  | 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [41]
140 |  |  |  |  | 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
141 |  |  |  |  | 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [42]
142 |  |  |  |  | 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [43]
143 |  |  |  |  | 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00", # [44,48..50]
144 |  |  |  |  | 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [45]
145 |  |  |  |  | );
146 |  |  |  |  |
147 | 1 | 13µs |  |  | our %DeadBits = (
148 |  |  |  |  | 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..55]
149 |  |  |  |  | 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [29]
150 |  |  |  |  | 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [30]
151 |  |  |  |  | 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
152 |  |  |  |  | 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
153 |  |  |  |  | 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [22]
154 |  |  |  |  | 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
155 |  |  |  |  | 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [31]
156 |  |  |  |  | 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
157 |  |  |  |  | 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
158 |  |  |  |  | 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa", # [51..55]
159 |  |  |  |  | 'experimental::lexical_subs'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [52]
160 |  |  |  |  | 'experimental::lexical_topic'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [53]
161 |  |  |  |  | 'experimental::regex_sets'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [54]
162 |  |  |  |  | 'experimental::smartmatch'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [55]
163 |  |  |  |  | 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
164 |  |  |  |  | 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [47]
165 |  |  |  |  | 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [46]
166 |  |  |  |  | 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [23]
167 |  |  |  |  | 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [24]
168 |  |  |  |  | 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..11]
169 |  |  |  |  | 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
170 |  |  |  |  | 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [25]
171 |  |  |  |  | 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
172 |  |  |  |  | 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
173 |  |  |  |  | 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [48]
174 |  |  |  |  | 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [49]
175 |  |  |  |  | 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
176 |  |  |  |  | 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
177 |  |  |  |  | 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
178 |  |  |  |  | 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16]
179 |  |  |  |  | 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [32]
180 |  |  |  |  | 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
181 |  |  |  |  | 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17]
182 |  |  |  |  | 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [33]
183 |  |  |  |  | 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [34]
184 |  |  |  |  | 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [35]
185 |  |  |  |  | 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [36]
186 |  |  |  |  | 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18]
187 |  |  |  |  | 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19]
188 |  |  |  |  | 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [20]
189 |  |  |  |  | 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [37]
190 |  |  |  |  | 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [38]
191 |  |  |  |  | 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00", # [21..25]
192 |  |  |  |  | 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [26]
193 |  |  |  |  | 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [27]
194 |  |  |  |  | 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [50]
195 |  |  |  |  | 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00", # [28..38,47]
196 |  |  |  |  | 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [39]
197 |  |  |  |  | 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [40]
198 |  |  |  |  | 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [41]
199 |  |  |  |  | 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
200 |  |  |  |  | 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [42]
201 |  |  |  |  | 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [43]
202 |  |  |  |  | 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00", # [44,48..50]
203 |  |  |  |  | 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [45]
204 |  |  |  |  | );
205 |  |  |  |  |
206 | 1 | 200ns |  |  | $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
207 | 1 | 300ns |  |  | $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55", # [2,52..55,4,22,23,25]
208 |  |  |  |  | $LAST_BIT = 112 ;
209 | 1 | 200ns |  |  | $BYTES = 14 ;
210 |  |  |  |  |
211 | 2 | 7µs |  |  | $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
212 |  |  |  |  |
213 |  |  |  |  | sub Croaker
214 |  |  |  |  | {
215 |  |  |  |  | require Carp; # this initializes %CarpInternal
216 |  |  |  |  | local $Carp::CarpInternal{'warnings'};
217 |  |  |  |  | delete $Carp::CarpInternal{'warnings'};
218 |  |  |  |  | Carp::croak(@_);
219 |  |  |  |  | }
220 |  |  |  |  |
221 |  |  |  |  | sub _bits {
222 |  |  |  |  | my $mask = shift ;
223 |  |  |  |  | my $catmask ;
224 |  |  |  |  | my $fatal = 0 ;
225 |  |  |  |  | my $no_fatal = 0 ;
226 |  |  |  |  |
227 |  |  |  |  | foreach my $word ( @_ ) {
228 |  |  |  |  | if ($word eq 'FATAL') {
229 |  |  |  |  | $fatal = 1;
230 |  |  |  |  | $no_fatal = 0;
231 |  |  |  |  | }
232 |  |  |  |  | elsif ($word eq 'NONFATAL') {
233 |  |  |  |  | $fatal = 0;
234 |  |  |  |  | $no_fatal = 1;
235 |  |  |  |  | }
236 |  |  |  |  | elsif ($catmask = $Bits{$word}) {
237 |  |  |  |  | $mask |= $catmask ;
238 |  |  |  |  | $mask |= $DeadBits{$word} if $fatal ;
239 |  |  |  |  | $mask &= ~($DeadBits{$word}|$All) if $no_fatal ;
240 |  |  |  |  | }
241 |  |  |  |  | else
242 |  |  |  |  | { Croaker("Unknown warnings category '$word'")}
243 |  |  |  |  | }
244 |  |  |  |  |
245 |  |  |  |  | return $mask ;
246 |  |  |  |  | }
247 |  |  |  |  |
248 |  |  |  |  | sub bits
249 |  |  |  |  | {
250 |  |  |  |  | # called from B::Deparse.pm
251 |  |  |  |  | push @_, 'all' unless @_ ;
252 |  |  |  |  | return _bits(undef, @_) ;
253 |  |  |  |  | }
254 |  |  |  |  |
255 |  |  |  |  | sub import
256 |  |  |  |  | # spent 1.37ms within warnings::import which was called 253 times, avg 5µs/call: # 67 times (413µs+0s) by Moose::Role::import or Moose::Util::TypeConstraints::import or Moose::import at line 475 of Moose/Exporter.pm, avg 6µs/call # 3 times (26µs+0s) by Moose::Exporter::import at line 792 of Moose/Exporter.pm, avg 9µs/call # once (34µs+0s) by HTTP::Headers::ActionPack::Core::BaseHeaderType::BEGIN@11 at line 11 of HTTP/Headers/ActionPack/Core/BaseHeaderType.pm # once (30µs+0s) by HTTP::Headers::ActionPack::MediaType::BEGIN@11 at line 11 of HTTP/Headers/ActionPack/MediaType.pm # once (22µs+0s) by HTTP::Headers::ActionPack::Util::BEGIN@11 at line 11 of HTTP/Headers/ActionPack/Util.pm # once (15µs+0s) by HTTP::Headers::ActionPack::MediaTypeList::BEGIN@11 at line 11 of HTTP/Headers/ActionPack/MediaTypeList.pm # once (13µs+0s) by Plack::Middleware::BEGIN@3 at line 3 of Plack/Middleware.pm # once (12µs+0s) by PONAPI::CLI::RunServer::BEGIN@3 at line 3 of Plack/Middleware/MethodOverride.pm # once (10µs+0s) by Plack::Request::BEGIN@3 at line 3 of Plack/Request.pm # once (9µs+0s) by HTTP::Headers::Fast::BEGIN@3 at line 3 of HTTP/Headers/Fast.pm # once (9µs+0s) by Moose::Meta::Method::Accessor::Native::Array::get::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Array/get.pm # once (9µs+0s) by HTTP::Headers::Util::BEGIN@4 at line 4 of HTTP/Headers/Util.pm # once (9µs+0s) by re::BEGIN@5 at line 5 of re.pm # once (9µs+0s) by HTTP::Headers::BEGIN@4 at line 4 of HTTP/Headers.pm # once (9µs+0s) by HTTP::Message::BEGIN@4 at line 4 of HTTP/Message.pm # once (9µs+0s) by Moose::Meta::Method::Accessor::Native::Array::count::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Array/count.pm # once (9µs+0s) by Moose::Meta::Method::Accessor::Native::Hash::set::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Hash/set.pm # once (8µs+0s) by Moose::Meta::Method::Accessor::Native::Hash::keys::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Hash/keys.pm # once (8µs+0s) by PONAPI::Utils::Names::BEGIN@5 at line 5 of lib/PONAPI/Utils/Names.pm # once (8µs+0s) by Stream::Buffered::BEGIN@3 at line 3 of Stream/Buffered.pm # once (8µs+0s) by Plack::Request::Upload::BEGIN@3 at line 3 of Plack/Request/Upload.pm # once (8µs+0s) by Moose::Meta::Method::Accessor::Native::Hash::get::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Hash/get.pm # once (8µs+0s) by PONAPI::Builder::BEGIN@2 at line 2 of Moose/Role.pm # once (7µs+0s) by Moose::Meta::Method::Accessor::Native::Array::push::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Array/push.pm # once (7µs+0s) by Moose::Meta::Method::Accessor::Native::Hash::count::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Hash/count.pm # once (7µs+0s) by Moose::Meta::Method::Accessor::Native::Hash::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Hash.pm # once (7µs+0s) by Moose::Util::TypeConstraints::Builtins::BEGIN@5 at line 5 of Moose/Util/TypeConstraints/Builtins.pm # once (7µs+0s) by HTTP::Status::BEGIN@4 at line 4 of HTTP/Status.pm # once (7µs+0s) by POSIX::BEGIN@3 at line 3 of POSIX.pm # once (7µs+0s) by DBD::SQLite::Constants::BEGIN@7 at line 7 of DBD/SQLite/Constants.pm # once (7µs+0s) by Moose::Meta::Mixin::AttributeCore::BEGIN@5 at line 5 of Moose/Meta/Mixin/AttributeCore.pm # once (7µs+0s) by IO::BEGIN@8 at line 8 of IO.pm # once (7µs+0s) by PONAPI::CLI::BEGIN@4 at line 4 of lib/PONAPI/CLI.pm # once (7µs+0s) by Plack::Handler::Standalone::BEGIN@3 at line 3 of Plack/Handler/Standalone.pm # once (7µs+0s) by Config::BEGIN@6 at line 6 of Config_heavy.pl # once (6µs+0s) by Moose::Meta::Method::Accessor::Native::Hash::exists::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Hash/exists.pm # once (6µs+0s) by Moose::Meta::TypeConstraint::DuckType::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/DuckType.pm # once (6µs+0s) by Moose::Meta::Role::Composite::BEGIN@5 at line 5 of Moose/Meta/Role/Composite.pm # once (6µs+0s) by Moose::Meta::Instance::BEGIN@5 at line 5 of Moose/Meta/Instance.pm # once (6µs+0s) by Module::Runtime::BEGIN@2 at line 2 of App/Cmd/Command/commands.pm # once (6µs+0s) by PONAPI::CLI::RunServer::BEGIN@5 at line 5 of lib/PONAPI/CLI/RunServer.pm # once (6µs+0s) by Path::Class::File::BEGIN@2 at line 2 of Perl/OSType.pm # once (6µs+0s) by Plack::Middleware::StackTrace::BEGIN@3 at line 3 of Plack/Middleware/StackTrace.pm # once (6µs+0s) by Plack::Middleware::AccessLog::BEGIN@3 at line 3 of Plack/Middleware/AccessLog.pm # once (6µs+0s) by Moose::Meta::Method::Accessor::Native::Collection::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Collection.pm # once (6µs+0s) by Class::MOP::Deprecated::BEGIN@5 at line 5 of Class/MOP/Deprecated.pm # once (6µs+0s) by Moose::Meta::TypeConstraint::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint.pm # once (6µs+0s) by Moose::Util::MetaRole::BEGIN@5 at line 5 of Moose/Util/MetaRole.pm # once (6µs+0s) by Class::MOP::Attribute::BEGIN@5 at line 5 of Class/MOP/Attribute.pm # once (6µs+0s) by Moose::Meta::TypeConstraint::Registry::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Registry.pm # once (6µs+0s) by Params::Validate::BEGIN@9 at line 9 of Params/Validate.pm # once (6µs+0s) by PONAPI::CLI::Command::demo::BEGIN@7 at line 7 of lib/PONAPI/CLI/Command/demo.pm # once (6µs+0s) by Moose::Meta::Role::Application::ToClass::BEGIN@5 at line 5 of Moose/Meta/Role/Application/ToClass.pm # once (6µs+0s) by Moose::Meta::TypeCoercion::BEGIN@5 at line 5 of Moose/Meta/TypeCoercion.pm # once (6µs+0s) by Moose::Meta::Method::Accessor::Native::Hash::Writer::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Hash/Writer.pm # once (6µs+0s) by Moose::Meta::TypeConstraint::Class::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Class.pm # once (6µs+0s) by Moose::Meta::Method::Augmented::BEGIN@5 at line 5 of Moose/Meta/Method/Augmented.pm # once (6µs+0s) by Config::BEGIN@10 at line 10 of Config.pm # once (6µs+0s) by PONAPI::Constants::BEGIN@5 at line 5 of lib/PONAPI/Constants.pm # once (5µs+0s) by Moose::Meta::TypeConstraint::Parameterized::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Parameterized.pm # once (5µs+0s) by Carp::BEGIN@5 at line 5 of Carp.pm # once (5µs+0s) by Moose::Meta::Role::Application::ToRole::BEGIN@5 at line 5 of Moose/Meta/Role/Application/ToRole.pm # once (5µs+0s) by HTTP::Headers::ActionPack::PriorityList::BEGIN@11 at line 11 of HTTP/Headers/ActionPack/PriorityList.pm # once (5µs+0s) by Moose::Meta::Role::Application::RoleSummation::BEGIN@5 at line 5 of Moose/Meta/Role/Application/RoleSummation.pm # once (5µs+0s) by Plack::Middleware::ContentLength::BEGIN@3 at line 3 of Plack/Middleware/ContentLength.pm # once (5µs+0s) by PONAPI::CLI::Command::manual::BEGIN@7 at line 7 of lib/PONAPI/CLI/Command/manual.pm # once (5µs+0s) by Moose::Meta::Method::Accessor::Native::Array::Writer::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Array/Writer.pm # once (5µs+0s) by Pod::Perldoc::BEGIN@5 at line 5 of Pod/Perldoc.pm # once (5µs+0s) by Moose::Meta::Role::BEGIN@5 at line 5 of Moose/Meta/Role.pm # once (5µs+0s) by Moose::Meta::Role::Application::BEGIN@5 at line 5 of Moose/Meta/Role/Application.pm # once (5µs+0s) by App::Cmd::Setup::BEGIN@2.7 at line 2 of App/Cmd/Plugin.pm # once (5µs+0s) by HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@11 at line 11 of HTTP/Headers/ActionPack/Core/BaseHeaderWithParams.pm # once (5µs+0s) by Module::Runtime::BEGIN@2.13 at line 2 of App/Cmd/Command/help.pm # once (4µs+0s) by Moose::Meta::Method::Accessor::Native::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native.pm # once (4µs+0s) by Data::OptList::BEGIN@2 at line 2 of Sub/Install.pm # once (4µs+0s) by HTTP::Headers::ActionPack::Core::BaseHeaderList::BEGIN@11 at line 11 of HTTP/Headers/ActionPack/Core/BaseHeaderList.pm # once (4µs+0s) by Class::MOP::Instance::BEGIN@5 at line 5 of Class/MOP/Instance.pm # once (4µs+0s) by utf8::BEGIN@3 at line 3 of utf8_heavy.pl # once (4µs+0s) by App::Cmd::Setup::BEGIN@2.5 at line 2 of App/Cmd/Command.pm # once (4µs+0s) by Stream::Buffered::Auto::BEGIN@3 at line 3 of Stream/Buffered/Auto.pm # once (4µs+0s) by Params::Validate::XS::BEGIN@7 at line 7 of Params/Validate/XS.pm # once (4µs+0s) by deprecate::BEGIN@3 at line 3 of deprecate.pm # once (4µs+0s) by Moose::Meta::Method::Accessor::Native::Reader::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Reader.pm # once (4µs+0s) by Class::Load::BEGIN@8 at line 8 of Class/Load.pm # once (4µs+0s) by Moose::Meta::Method::Accessor::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor.pm # once (4µs+0s) by Plack::Component::BEGIN@3 at line 3 of Plack/Component.pm # once (4µs+0s) by Moose::Meta::Method::Accessor::Native::Writer::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Writer.pm # once (4µs+0s) by Moose::Meta::TypeConstraint::Parameterizable::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Parameterizable.pm # once (4µs+0s) by PONAPI::Server::BEGIN@5 at line 5 of lib/PONAPI/Server.pm # once (4µs+0s) by Moose::Meta::TypeConstraint::Enum::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Enum.pm # once (4µs+0s) by Moose::Meta::TypeConstraint::Role::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Role.pm # once (4µs+0s) by Class::MOP::Method::Wrapped::BEGIN@5 at line 5 of Class/MOP/Method/Wrapped.pm # once (4µs+0s) by Moose::Meta::Role::Application::ToInstance::BEGIN@5 at line 5 of Moose/Meta/Role/Application/ToInstance.pm # once (4µs+0s) by Getopt::Long::Descriptive::BEGIN@2 at line 2 of Getopt/Long/Descriptive/Opts.pm # once (4µs+0s) by PONAPI::CLI::Command::gen::BEGIN@7 at line 7 of lib/PONAPI/CLI/Command/gen.pm # once (4µs+0s) by Module::Implementation::BEGIN@10 at line 10 of Module/Implementation.pm # once (4µs+0s) by overloading::BEGIN@2 at line 2 of overloading.pm # once (4µs+0s) by Class::MOP::Class::Immutable::Trait::BEGIN@5 at line 5 of Class/MOP/Class/Immutable/Trait.pm # once (4µs+0s) by Moose::Meta::Role::Method::BEGIN@5 at line 5 of Moose/Meta/Role/Method.pm # once (4µs+0s) by YAML::XS::LibYAML::BEGIN@4 at line 4 of YAML/XS/LibYAML.pm # once (4µs+0s) by Module::Runtime::BEGIN@2.15 at line 2 of App/Cmd/Command/version.pm # once (4µs+0s) by Moose::Meta::Method::Accessor::Native::Array::BEGIN@5 at line 5 of Moose/Meta/Method/Accessor/Native/Array.pm # once (4µs+0s) by Params::Validate::Constants::BEGIN@7 at line 7 of Params/Validate/Constants.pm # once (4µs+0s) by Class::MOP::Class::BEGIN@5 at line 5 of Class/MOP/Class.pm # once (4µs+0s) by Devel::StackTrace::BEGIN@8 at line 8 of Devel/StackTrace.pm # once (4µs+0s) by Class::Load::XS::BEGIN@9 at line 9 of Class/Load/XS.pm # once (4µs+0s) by File::Copy::BEGIN@12 at line 12 of File/Copy.pm # once (4µs+0s) by Moose::Object::BEGIN@5 at line 5 of Moose/Object.pm # once (4µs+0s) by POSIX::strftime::Compiler::BEGIN@5 at line 5 of POSIX/strftime/Compiler.pm # once (4µs+0s) by App::Cmd::ArgProcessor::BEGIN@2 at line 2 of Getopt/Long/Descriptive.pm # once (4µs+0s) by Getopt::Long::Descriptive::BEGIN@2.19 at line 2 of Sub/Exporter/Util.pm # once (4µs+0s) by App::Cmd::Setup::BEGIN@2.9 at line 2 of String/RewritePrefix.pm # once (4µs+0s) by Moose::Meta::Method::Constructor::BEGIN@5 at line 5 of Moose/Meta/Method/Constructor.pm # once (4µs+0s) by PONAPI::Server::ConfigReader::BEGIN@1.22 at line 1 of YAML/XS.pm # once (4µs+0s) by Apache::LogFormat::Compiler::BEGIN@4 at line 4 of Apache/LogFormat/Compiler.pm # once (4µs+0s) by Moose::Exporter::BEGIN@5 at line 5 of Moose/Exporter.pm # once (4µs+0s) by Plack::Runner::BEGIN@3 at line 3 of Plack/Runner.pm # once (4µs+0s) by Getopt::Long::Descriptive::BEGIN@2.17 at line 2 of Getopt/Long/Descriptive/Usage.pm # once (4µs+0s) by Return::MultiLevel::BEGIN@3 at line 3 of Return/MultiLevel.pm # once (4µs+0s) by Moose::Meta::Method::Overridden::BEGIN@5 at line 5 of Moose/Meta/Method/Overridden.pm # once (4µs+0s) by File::stat::BEGIN@5 at line 5 of File/stat.pm # once (4µs+0s) by Class::MOP::Method::Generated::BEGIN@5 at line 5 of Class/MOP/Method/Generated.pm # once (3µs+0s) by PONAPI::Server::ConfigReader::BEGIN@2 at line 2 of Moose.pm # once (3µs+0s) by Moose::BEGIN@2 at line 2 of Moose/Meta/Attribute/Native.pm # once (3µs+0s) by Moose::Util::BEGIN@5 at line 5 of Moose/Util.pm # once (3µs+0s) by HTTP::Server::PSGI::BEGIN@3 at line 3 of HTTP/Server/PSGI.pm # once (3µs+0s) by Moose::Meta::Method::Delegation::BEGIN@5 at line 5 of Moose/Meta/Method/Delegation.pm # once (3µs+0s) by HTTP::Headers::ActionPack::BEGIN@11 at line 11 of HTTP/Headers/ActionPack.pm # once (3µs+0s) by Class::MOP::Mixin::HasOverloads::BEGIN@5 at line 5 of Class/MOP/Mixin/HasOverloads.pm # once (3µs+0s) by Class::MOP::Method::Accessor::BEGIN@5 at line 5 of Class/MOP/Method/Accessor.pm # once (3µs+0s) by Try::Tiny::BEGIN@10 at line 10 of Try/Tiny.pm # once (3µs+0s) by Moose::Meta::Role::Attribute::BEGIN@5 at line 5 of Moose/Meta/Role/Attribute.pm # once (3µs+0s) by Class::MOP::MiniTrait::BEGIN@5 at line 5 of Class/MOP/MiniTrait.pm # once (3µs+0s) by Scope::Upper::BEGIN@6 at line 6 of Scope/Upper.pm # once (3µs+0s) by Stream::Buffered::File::BEGIN@3 at line 3 of Stream/Buffered/File.pm # once (3µs+0s) by App::Cmd::BEGIN@3 at line 3 of Sub/Exporter.pm # once (3µs+0s) by Package::Stash::BEGIN@9 at line 9 of Package/Stash.pm # once (3µs+0s) by Moose::Meta::Class::BEGIN@5 at line 5 of Moose/Meta/Class.pm # once (3µs+0s) by Stream::Buffered::PerlIO::BEGIN@3 at line 3 of Stream/Buffered/PerlIO.pm # once (3µs+0s) by Plack::Util::Accessor::BEGIN@3 at line 3 of Plack/Util/Accessor.pm # once (3µs+0s) by Devel::StackTrace::Frame::BEGIN@4 at line 4 of Devel/StackTrace/Frame.pm # once (3µs+0s) by Sub::Name::BEGIN@45 at line 45 of Sub/Name.pm # once (3µs+0s) by Devel::OverloadInfo::BEGIN@15 at line 15 of Devel/OverloadInfo.pm # once (3µs+0s) by Class::Load::BEGIN@2.1 at line 2 of Data/OptList.pm # once (3µs+0s) by Class::MOP::Mixin::HasMethods::BEGIN@5 at line 5 of Class/MOP/Mixin/HasMethods.pm # once (3µs+0s) by File::Find::BEGIN@4 at line 4 of File/Find.pm # once (3µs+0s) by MRO::Compat::BEGIN@3 at line 3 of MRO/Compat.pm # once (3µs+0s) by Class::MOP::Method::Constructor::BEGIN@5 at line 5 of Class/MOP/Method/Constructor.pm # once (3µs+0s) by Class::MOP::Module::BEGIN@5 at line 5 of Class/MOP/Module.pm # once (3µs+0s) by Moose::Meta::Method::Meta::BEGIN@5 at line 5 of Moose/Meta/Method/Meta.pm # once (3µs+0s) by Moose::Deprecated::BEGIN@5 at line 5 of Moose/Deprecated.pm # once (3µs+0s) by Package::Stash::XS::BEGIN@9 at line 9 of Package/Stash/XS.pm # once (3µs+0s) by Moose::Meta::TypeCoercion::Union::BEGIN@5 at line 5 of Moose/Meta/TypeCoercion/Union.pm # once (3µs+0s) by Moose::Meta::Method::Destructor::BEGIN@5 at line 5 of Moose/Meta/Method/Destructor.pm # once (3µs+0s) by Moose::Meta::TypeCoercion::BEGIN@2 at line 2 of Moose/Meta/Attribute.pm # once (3µs+0s) by Moose::Meta::Role::Method::Conflicting::BEGIN@5 at line 5 of Moose/Meta/Role/Method/Conflicting.pm # once (3µs+0s) by Class::MOP::Method::Inlined::BEGIN@5 at line 5 of Class/MOP/Method/Inlined.pm # once (3µs+0s) by Plack::BEGIN@4 at line 4 of Plack.pm # once (3µs+0s) by HTTP::Parser::XS::BEGIN@4 at line 4 of HTTP/Parser/XS.pm # once (3µs+0s) by PONAPI::CLI::BEGIN@2 at line 2 of App/Cmd/Setup.pm # once (3µs+0s) by Moose::Meta::TypeConstraint::Union::BEGIN@5 at line 5 of Moose/Meta/TypeConstraint/Union.pm # once (3µs+0s) by App::Cmd::Setup::BEGIN@2 at line 2 of App/Cmd.pm # once (3µs+0s) by Moose::Meta::Class::Immutable::Trait::BEGIN@5 at line 5 of Moose/Meta/Class/Immutable/Trait.pm # once (3µs+0s) by App::Cmd::BEGIN@2 at line 2 of App/Cmd/ArgProcessor.pm # once (3µs+0s) by Class::MOP::Package::BEGIN@5 at line 5 of Class/MOP/Package.pm # once (3µs+0s) by HTTP::Headers::ActionPack::Core::Base::BEGIN@11 at line 11 of HTTP/Headers/ActionPack/Core/Base.pm # once (3µs+0s) by Class::MOP::BEGIN@5 at line 5 of Class/MOP.pm # once (3µs+0s) by Moose::Meta::Role::Method::Required::BEGIN@5 at line 5 of Moose/Meta/Role/Method/Required.pm # once (3µs+0s) by Cookie::Baker::BEGIN@5 at line 5 of Cookie/Baker.pm # once (3µs+0s) by Plack::Response::BEGIN@3 at line 3 of Plack/Response.pm # once (3µs+0s) by Class::MOP::Mixin::HasAttributes::BEGIN@5 at line 5 of Class/MOP/Mixin/HasAttributes.pm # once (3µs+0s) by Class::MOP::Mixin::AttributeCore::BEGIN@5 at line 5 of Class/MOP/Mixin/AttributeCore.pm # once (3µs+0s) by File::Basename::BEGIN@52 at line 52 of File/Basename.pm # once (3µs+0s) by Eval::Closure::BEGIN@9 at line 9 of Eval/Closure.pm # once (3µs+0s) by Class::MOP::Method::Meta::BEGIN@5 at line 5 of Class/MOP/Method/Meta.pm # once (3µs+0s) by Class::MOP::Mixin::BEGIN@5 at line 5 of Class/MOP/Mixin.pm # once (3µs+0s) by Sub::Exporter::Progressive::BEGIN@4 at line 4 of Sub/Exporter/Progressive.pm # once (3µs+0s) by Class::MOP::Overload::BEGIN@5 at line 5 of Class/MOP/Overload.pm # once (3µs+0s) by Package::DeprecationManager::BEGIN@7 at line 7 of Package/DeprecationManager.pm # once (3µs+0s) by metaclass::BEGIN@5 at line 5 of metaclass.pm # once (3µs+0s) by mro::BEGIN@11 at line 11 of mro.pm # once (3µs+0s) by Devel::GlobalDestruction::BEGIN@4 at line 4 of Devel/GlobalDestruction.pm # once (3µs+0s) by Class::MOP::Method::BEGIN@5 at line 5 of Class/MOP/Method.pm # once (3µs+0s) by Class::MOP::Object::BEGIN@5 at line 5 of Class/MOP/Object.pm # once (3µs+0s) by Moose::Meta::Method::BEGIN@5 at line 5 of Moose/Meta/Method.pm {
257 | 253 | 41µs |  |  | shift;
258 |  |  |  |  |
259 | 253 | 335µs |  |  | my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ;
260 |  |  |  |  |
261 | 253 | 312µs |  |  | if (vec($mask, $Offsets{'all'}, 1)) {
262 | 22 | 13µs |  |  | $mask |= $Bits{'all'} ;
263 | 22 | 23µs |  |  | $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
264 |  |  |  |  | }
265 |  |  |  |  |
266 |  |  |  |  | # Empty @_ is equivalent to @_ = 'all' ;
267 | 253 | 1.30ms |  |  | ${^WARNING_BITS} = @_ ? _bits($mask, @_) : $mask | $Bits{all} ;
268 |  |  |  |  | }
269 |  |  |  |  |
270 |  |  |  |  | sub unimport
271 |  |  |  |  | # spent 402µs within warnings::unimport which was called 27 times, avg 15µs/call: # once (49µs+0s) by Time::Piece::BEGIN@122 at line 122 of Time/Piece.pm # once (35µs+0s) by Plack::Runner::BEGIN@167 at line 167 of Plack/Runner.pm # once (35µs+0s) by Exporter::Heavy::BEGIN@183 at line 183 of Exporter/Heavy.pm # once (20µs+0s) by Hash::MultiValue::BEGIN@4 at line 4 of Hash/MultiValue.pm # once (17µs+0s) by Moose::Util::TypeConstraints::BEGIN@674 at line 674 of Moose/Util/TypeConstraints.pm # once (16µs+0s) by Plack::Middleware::MethodOverride::BEGIN@29 at line 29 of Plack/Middleware/MethodOverride.pm # once (15µs+0s) by Carp::BEGIN@434 at line 434 of Carp.pm # once (14µs+0s) by utf8::BEGIN@149 at line 149 of utf8_heavy.pl # once (14µs+0s) by B::Deparse::BEGIN@3803 at line 3803 of B/Deparse.pm # once (13µs+0s) by Plack::Middleware::Lint::BEGIN@3 at line 3 of Plack/Middleware/Lint.pm # once (13µs+0s) by Devel::GlobalDestruction::BEGIN@23 at line 23 of Devel/GlobalDestruction.pm # once (13µs+0s) by Moose::Exporter::BEGIN@136 at line 136 of Moose/Exporter.pm # once (12µs+0s) by File::Copy::BEGIN@12.11 at line 12 of File/Copy.pm # once (12µs+0s) by POSIX::strftime::Compiler::BEGIN@34 at line 34 of POSIX/strftime/Compiler.pm # once (12µs+0s) by Cookie::Baker::BEGIN@65 at line 65 of Cookie/Baker.pm # once (11µs+0s) by Plack::Util::BEGIN@35 at line 35 of Plack/Util.pm # once (11µs+0s) by MRO::Compat::BEGIN@39 at line 39 of MRO/Compat.pm # once (11µs+0s) by Module::Implementation::BEGIN@124 at line 124 of Module/Implementation.pm # once (11µs+0s) by IO::Dir::BEGIN@42 at line 42 of IO/Dir.pm # once (11µs+0s) by Devel::StackTrace::AsHTML::BEGIN@11 at line 11 of Devel/StackTrace/AsHTML.pm # once (10µs+0s) by MRO::Compat::BEGIN@228 at line 228 of MRO/Compat.pm # once (9µs+0s) by utf8::BEGIN@544 at line 544 of utf8_heavy.pl # once (9µs+0s) by Class::MOP::Package::BEGIN@95 at line 95 of Class/MOP/Package.pm # once (8µs+0s) by Carp::BEGIN@441 at line 441 of Carp.pm # once (8µs+0s) by Moose::Util::TypeConstraints::BEGIN@680 at line 680 of Moose/Util/TypeConstraints.pm # once (7µs+0s) by Moose::Util::TypeConstraints::BEGIN@699 at line 699 of Moose/Util/TypeConstraints.pm # once (7µs+0s) by Moose::Util::TypeConstraints::BEGIN@685 at line 685 of Moose/Util/TypeConstraints.pm {
272 | 27 | 20µs |  |  | shift;
273 |  |  |  |  |
274 | 27 | 7µs |  |  | my $catmask ;
275 | 27 | 70µs |  |  | my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ;
276 |  |  |  |  |
277 | 27 | 52µs |  |  | if (vec($mask, $Offsets{'all'}, 1)) {
278 | 19 | 14µs |  |  | $mask |= $Bits{'all'} ;
279 | 19 | 17µs |  |  | $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
280 |  |  |  |  | }
281 |  |  |  |  |
282 | 27 | 15µs |  |  | push @_, 'all' unless @_;
283 |  |  |  |  |
284 | 27 | 30µs |  |  | foreach my $word ( @_ ) {
285 | 27 | 117µs |  |  | if ($word eq 'FATAL') {
286 |  |  |  |  | next;
287 |  |  |  |  | }
288 |  |  |  |  | elsif ($catmask = $Bits{$word}) {
289 |  |  |  |  | $mask &= ~($catmask | $DeadBits{$word} | $All);
290 |  |  |  |  | }
291 |  |  |  |  | else
292 |  |  |  |  | { Croaker("Unknown warnings category '$word'")}
293 |  |  |  |  | }
294 |  |  |  |  |
295 | 27 | 147µs |  |  | ${^WARNING_BITS} = $mask ;
296 |  |  |  |  | }
297 |  |  |  |  |
298 | 2 | 2µs |  |  | my %builtin_type; @builtin_type{qw(SCALAR ARRAY HASH CODE REF GLOB LVALUE Regexp)} = ();
299 |  |  |  |  |
300 |  |  |  |  | sub MESSAGE () { 4 };
301 |  |  |  |  | sub FATAL () { 2 };
302 |  |  |  |  | sub NORMAL () { 1 };
303 |  |  |  |  |
304 |  |  |  |  | sub __chk
305 |  |  |  |  | {
306 |  |  |  |  | my $category ;
307 |  |  |  |  | my $offset ;
308 |  |  |  |  | my $isobj = 0 ;
309 |  |  |  |  | my $wanted = shift;
310 |  |  |  |  | my $has_message = $wanted & MESSAGE;
311 |  |  |  |  |
312 |  |  |  |  | unless (@_ == 1 || @_ == ($has_message ? 2 : 0)) {
313 |  |  |  |  | my $sub = (caller 1)[3];
314 |  |  |  |  | my $syntax = $has_message ? "[category,] 'message'" : '[category]';
315 |  |  |  |  | Croaker("Usage: $sub($syntax)");
316 |  |  |  |  | }
317 |  |  |  |  |
318 |  |  |  |  | my $message = pop if $has_message;
319 |  |  |  |  |
320 |  |  |  |  | if (@_) {
321 |  |  |  |  | # check the category supplied.
322 |  |  |  |  | $category = shift ;
323 |  |  |  |  | if (my $type = ref $category) {
324 |  |  |  |  | Croaker("not an object")
325 |  |  |  |  | if exists $builtin_type{$type};
326 |  |  |  |  | $category = $type;
327 |  |  |  |  | $isobj = 1 ;
328 |  |  |  |  | }
329 |  |  |  |  | $offset = $Offsets{$category};
330 |  |  |  |  | Croaker("Unknown warnings category '$category'")
331 |  |  |  |  | unless defined $offset;
332 |  |  |  |  | }
333 |  |  |  |  | else {
334 |  |  |  |  | $category = (caller(1))[0] ;
335 |  |  |  |  | $offset = $Offsets{$category};
336 |  |  |  |  | Croaker("package '$category' not registered for warnings")
337 |  |  |  |  | unless defined $offset ;
338 |  |  |  |  | }
339 |  |  |  |  |
340 |  |  |  |  | my $i;
341 |  |  |  |  |
342 |  |  |  |  | if ($isobj) {
343 |  |  |  |  | my $pkg;
344 |  |  |  |  | $i = 2;
345 |  |  |  |  | while (do { { package DB; $pkg = (caller($i++))[0] } } ) {
346 |  |  |  |  | last unless @DB::args && $DB::args[0] =~ /^$category=/ ;
347 |  |  |  |  | }
348 |  |  |  |  | $i -= 2 ;
349 |  |  |  |  | }
350 |  |  |  |  | else {
351 |  |  |  |  | $i = _error_loc(); # see where Carp will allocate the error
352 |  |  |  |  | }
353 |  |  |  |  |
354 |  |  |  |  | # Default to 0 if caller returns nothing. Default to $DEFAULT if it
355 |  |  |  |  | # explicitly returns undef.
356 |  |  |  |  | my(@callers_bitmask) = (caller($i))[9] ;
357 |  |  |  |  | my $callers_bitmask =
358 |  |  |  |  | @callers_bitmask ? $callers_bitmask[0] // $DEFAULT : 0 ;
359 |  |  |  |  |
360 |  |  |  |  | my @results;
361 |  |  |  |  | foreach my $type (FATAL, NORMAL) {
362 |  |  |  |  | next unless $wanted & $type;
363 |  |  |  |  |
364 |  |  |  |  | push @results, (vec($callers_bitmask, $offset + $type - 1, 1) ||
365 |  |  |  |  | vec($callers_bitmask, $Offsets{'all'} + $type - 1, 1));
366 |  |  |  |  | }
367 |  |  |  |  |
368 |  |  |  |  | # &enabled and &fatal_enabled
369 |  |  |  |  | return $results[0] unless $has_message;
370 |  |  |  |  |
371 |  |  |  |  | # &warnif, and the category is neither enabled as warning nor as fatal
372 |  |  |  |  | return if $wanted == (NORMAL | FATAL | MESSAGE)
373 |  |  |  |  | && !($results[0] || $results[1]);
374 |  |  |  |  |
375 |  |  |  |  | require Carp;
376 |  |  |  |  | Carp::croak($message) if $results[0];
377 |  |  |  |  | # will always get here for &warn. will only get here for &warnif if the
378 |  |  |  |  | # category is enabled
379 |  |  |  |  | Carp::carp($message);
380 |  |  |  |  | }
381 |  |  |  |  |
382 |  |  |  |  | sub _mkMask
383 |  |  |  |  | # spent 53µs within warnings::_mkMask which was called 16 times, avg 3µs/call: # 8 times (37µs+0s) by warnings::register_categories at line 397, avg 5µs/call # 8 times (16µs+0s) by warnings::register_categories at line 403, avg 2µs/call {
384 | 16 | 6µs |  |  | my ($bit) = @_;
385 | 16 | 4µs |  |  | my $mask = "";
386 |  |  |  |  |
387 | 16 | 21µs |  |  | vec($mask, $bit, 1) = 1;
388 | 16 | 44µs |  |  | return $mask;
389 |  |  |  |  | }
390 |  |  |  |  |
391 |  |  |  |  | sub register_categories
392 |  |  |  |  | # spent 503µs (450+53) within warnings::register_categories which was called 8 times, avg 63µs/call: # 8 times (450µs+53µs) by warnings::register::import at line 24 of warnings/register.pm, avg 63µs/call {
393 | 8 | 4µs |  |  | my @names = @_;
394 |  |  |  |  |
395 | 8 | 23µs |  |  | for my $name (@names) {
396 | 8 | 12µs |  |  | if (! defined $Bits{$name}) {
397 | 8 | 25µs | 8 | 37µs | $Bits{$name} = _mkMask($LAST_BIT); # spent 37µs making 8 calls to warnings::_mkMask, avg 5µs/call
398 | 8 | 10µs |  |  | vec($Bits{'all'}, $LAST_BIT, 1) = 1;
399 | 8 | 8µs |  |  | $Offsets{$name} = $LAST_BIT ++;
400 | 8 | 74µs |  |  | foreach my $k (keys %Bits) {
401 | 484 | 251µs |  |  | vec($Bits{$k}, $LAST_BIT, 1) = 0;
402 |  |  |  |  | }
403 | 8 | 15µs | 8 | 16µs | $DeadBits{$name} = _mkMask($LAST_BIT); # spent 16µs making 8 calls to warnings::_mkMask, avg 2µs/call
404 | 8 | 10µs |  |  | vec($DeadBits{'all'}, $LAST_BIT++, 1) = 1;
405 |  |  |  |  | }
406 |  |  |  |  | }
407 |  |  |  |  | }
408 |  |  |  |  |
409 |  |  |  |  | sub _error_loc {
410 |  |  |  |  | require Carp;
411 |  |  |  |  | goto &Carp::short_error_loc; # don't introduce another stack frame
412 |  |  |  |  | }
413 |  |  |  |  |
414 |  |  |  |  | sub enabled
415 |  |  |  |  | {
416 |  |  |  |  | return __chk(NORMAL, @_);
417 |  |  |  |  | }
418 |  |  |  |  |
419 |  |  |  |  | sub fatal_enabled
420 |  |  |  |  | {
421 |  |  |  |  | return __chk(FATAL, @_);
422 |  |  |  |  | }
423 |  |  |  |  |
424 |  |  |  |  | sub warn
425 |  |  |  |  | {
426 |  |  |  |  | return __chk(FATAL | MESSAGE, @_);
427 |  |  |  |  | }
428 |  |  |  |  |
429 |  |  |  |  | sub warnif
430 |  |  |  |  | {
431 |  |  |  |  | return __chk(NORMAL | FATAL | MESSAGE, @_);
432 |  |  |  |  | }
433 |  |  |  |  |
434 |  |  |  |  | # These are not part of any public interface, so we can delete them to save
435 |  |  |  |  | # space.
436 | 1 | 5µs |  |  | delete @warnings::{qw(NORMAL FATAL MESSAGE)};
437 |  |  |  |  |
438 | 1 | 24µs |  |  | 1;
439 |  |  |  |  |
440 |  |  |  |  | # ex: set ro:
|  |  |  |  | # spent 4µs within warnings::CORE:match which was called: # once (4µs+0s) by PONAPI::CLI::BEGIN@4 at line 12 sub warnings::CORE:match; # opcode
|  |  |  |  | # spent 13µs within warnings::CORE:regcomp which was called: # once (13µs+0s) by PONAPI::CLI::BEGIN@4 at line 12 sub warnings::CORE:regcomp; # opcode