Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 |
2 | .\" | |
3 | .\" Standard preamble: | |
4 | .\" ======================================================================== | |
5 | .de Sh \" Subsection heading | |
6 | .br | |
7 | .if t .Sp | |
8 | .ne 5 | |
9 | .PP | |
10 | \fB\\$1\fR | |
11 | .PP | |
12 | .. | |
13 | .de Sp \" Vertical space (when we can't use .PP) | |
14 | .if t .sp .5v | |
15 | .if n .sp | |
16 | .. | |
17 | .de Vb \" Begin verbatim text | |
18 | .ft CW | |
19 | .nf | |
20 | .ne \\$1 | |
21 | .. | |
22 | .de Ve \" End verbatim text | |
23 | .ft R | |
24 | .fi | |
25 | .. | |
26 | .\" Set up some character translations and predefined strings. \*(-- will | |
27 | .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left | |
28 | .\" double quote, and \*(R" will give a right double quote. | will give a | |
29 | .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to | |
30 | .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' | |
31 | .\" expand to `' in nroff, nothing in troff, for use with C<>. | |
32 | .tr \(*W-|\(bv\*(Tr | |
33 | .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' | |
34 | .ie n \{\ | |
35 | . ds -- \(*W- | |
36 | . ds PI pi | |
37 | . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch | |
38 | . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch | |
39 | . ds L" "" | |
40 | . ds R" "" | |
41 | . ds C` "" | |
42 | . ds C' "" | |
43 | 'br\} | |
44 | .el\{\ | |
45 | . ds -- \|\(em\| | |
46 | . ds PI \(*p | |
47 | . ds L" `` | |
48 | . ds R" '' | |
49 | 'br\} | |
50 | .\" | |
51 | .\" If the F register is turned on, we'll generate index entries on stderr for | |
52 | .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index | |
53 | .\" entries marked with X<> in POD. Of course, you'll have to process the | |
54 | .\" output yourself in some meaningful fashion. | |
55 | .if \nF \{\ | |
56 | . de IX | |
57 | . tm Index:\\$1\t\\n%\t"\\$2" | |
58 | .. | |
59 | . nr % 0 | |
60 | . rr F | |
61 | .\} | |
62 | .\" | |
63 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes | |
64 | .\" way too many mistakes in technical documents. | |
65 | .hy 0 | |
66 | .if n .na | |
67 | .\" | |
68 | .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). | |
69 | .\" Fear. Run. Save yourself. No user-serviceable parts. | |
70 | . \" fudge factors for nroff and troff | |
71 | .if n \{\ | |
72 | . ds #H 0 | |
73 | . ds #V .8m | |
74 | . ds #F .3m | |
75 | . ds #[ \f1 | |
76 | . ds #] \fP | |
77 | .\} | |
78 | .if t \{\ | |
79 | . ds #H ((1u-(\\\\n(.fu%2u))*.13m) | |
80 | . ds #V .6m | |
81 | . ds #F 0 | |
82 | . ds #[ \& | |
83 | . ds #] \& | |
84 | .\} | |
85 | . \" simple accents for nroff and troff | |
86 | .if n \{\ | |
87 | . ds ' \& | |
88 | . ds ` \& | |
89 | . ds ^ \& | |
90 | . ds , \& | |
91 | . ds ~ ~ | |
92 | . ds / | |
93 | .\} | |
94 | .if t \{\ | |
95 | . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" | |
96 | . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' | |
97 | . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' | |
98 | . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' | |
99 | . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' | |
100 | . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' | |
101 | .\} | |
102 | . \" troff and (daisy-wheel) nroff accents | |
103 | .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' | |
104 | .ds 8 \h'\*(#H'\(*b\h'-\*(#H' | |
105 | .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] | |
106 | .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' | |
107 | .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' | |
108 | .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] | |
109 | .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] | |
110 | .ds ae a\h'-(\w'a'u*4/10)'e | |
111 | .ds Ae A\h'-(\w'A'u*4/10)'E | |
112 | . \" corrections for vroff | |
113 | .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' | |
114 | .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' | |
115 | . \" for low resolution devices (crt and lpr) | |
116 | .if \n(.H>23 .if \n(.V>19 \ | |
117 | \{\ | |
118 | . ds : e | |
119 | . ds 8 ss | |
120 | . ds o a | |
121 | . ds d- d\h'-1'\(ga | |
122 | . ds D- D\h'-1'\(hy | |
123 | . ds th \o'bp' | |
124 | . ds Th \o'LP' | |
125 | . ds ae ae | |
126 | . ds Ae AE | |
127 | .\} | |
128 | .rm #[ #] #H #V #F C | |
129 | .\" ======================================================================== | |
130 | .\" | |
131 | .IX Title "PERLDIAG 1" | |
132 | .TH PERLDIAG 1 "2006-01-07" "perl v5.8.8" "Perl Programmers Reference Guide" | |
133 | .SH "NAME" | |
134 | perldiag \- various Perl diagnostics | |
135 | .SH "DESCRIPTION" | |
136 | .IX Header "DESCRIPTION" | |
137 | These messages are classified as follows (listed in increasing order of | |
138 | desperation): | |
139 | .PP | |
140 | .Vb 7 | |
141 | \& (W) A warning (optional). | |
142 | \& (D) A deprecation (optional). | |
143 | \& (S) A severe warning (default). | |
144 | \& (F) A fatal error (trappable). | |
145 | \& (P) An internal error you should never see (trappable). | |
146 | \& (X) A very fatal error (nontrappable). | |
147 | \& (A) An alien error message (not generated by Perl). | |
148 | .Ve | |
149 | .PP | |
150 | The majority of messages from the first three classifications above | |
151 | (W, D & S) can be controlled using the \f(CW\*(C`warnings\*(C'\fR pragma. | |
152 | .PP | |
153 | If a message can be controlled by the \f(CW\*(C`warnings\*(C'\fR pragma, its warning | |
154 | category is included with the classification letter in the description | |
155 | below. | |
156 | .PP | |
157 | Optional warnings are enabled by using the \f(CW\*(C`warnings\*(C'\fR pragma or the \fB\-w\fR | |
158 | and \fB\-W\fR switches. Warnings may be captured by setting \f(CW$SIG{_\|_WARN_\|_}\fR | |
159 | to a reference to a routine that will be called on each warning instead | |
160 | of printing it. See perlvar. | |
161 | .PP | |
162 | Default warnings are always enabled unless they are explicitly disabled | |
163 | with the \f(CW\*(C`warnings\*(C'\fR pragma or the \fB\-X\fR switch. | |
164 | .PP | |
165 | Trappable errors may be trapped using the eval operator. See | |
166 | \&\*(L"eval\*(R" in perlfunc. In almost all cases, warnings may be selectively | |
167 | disabled or promoted to fatal errors using the \f(CW\*(C`warnings\*(C'\fR pragma. | |
168 | See warnings. | |
169 | .PP | |
170 | The messages are in alphabetical order, without regard to upper or | |
171 | lower\-case. Some of these messages are generic. Spots that vary are | |
172 | denoted with a \f(CW%s\fR or other printf-style escape. These escapes are | |
173 | ignored by the alphabetical order, as are all characters other than | |
174 | letters. To look up your message, just ignore anything that is not a | |
175 | letter. | |
176 | .ie n .IP "\fIaccept()\fR on closed socket %s" 4 | |
177 | .el .IP "\fIaccept()\fR on closed socket \f(CW%s\fR" 4 | |
178 | .IX Item "accept() on closed socket %s" | |
179 | (W closed) You tried to do an accept on a closed socket. Did you forget | |
180 | to check the return value of your \fIsocket()\fR call? See | |
181 | \&\*(L"accept\*(R" in perlfunc. | |
182 | .ie n .IP "Allocation too large: %lx" 4 | |
183 | .el .IP "Allocation too large: \f(CW%lx\fR" 4 | |
184 | .IX Item "Allocation too large: %lx" | |
185 | (X) You can't allocate more than 64K on an MS-DOS machine. | |
186 | .ie n .IP "'!' allowed only after types %s" 4 | |
187 | .el .IP "'!' allowed only after types \f(CW%s\fR" 4 | |
188 | .IX Item "'!' allowed only after types %s" | |
189 | (F) The '!' is allowed in \fIpack()\fR or \fIunpack()\fR only after certain types. | |
190 | See \*(L"pack\*(R" in perlfunc. | |
191 | .IP "Ambiguous call resolved as CORE::%s(), qualify as such or use &" 4 | |
192 | .IX Item "Ambiguous call resolved as CORE::%s(), qualify as such or use &" | |
193 | (W ambiguous) A subroutine you have declared has the same name as a Perl | |
194 | keyword, and you have used the name without qualification for calling | |
195 | one or the other. Perl decided to call the builtin because the | |
196 | subroutine is not imported. | |
197 | .Sp | |
198 | To force interpretation as a subroutine call, either put an ampersand | |
199 | before the subroutine name, or qualify the name with its package. | |
200 | Alternatively, you can import the subroutine (or pretend that it's | |
201 | imported with the \f(CW\*(C`use subs\*(C'\fR pragma). | |
202 | .Sp | |
203 | To silently interpret it as the Perl operator, use the \f(CW\*(C`CORE::\*(C'\fR prefix | |
204 | on the operator (e.g. \f(CW\*(C`CORE::log($x)\*(C'\fR) or declare the subroutine | |
205 | to be an object method (see \*(L"Subroutine Attributes\*(R" in perlsub or | |
206 | attributes). | |
207 | .IP "Ambiguous range in transliteration operator" 4 | |
208 | .IX Item "Ambiguous range in transliteration operator" | |
209 | (F) You wrote something like \f(CW\*(C`tr/a\-z\-0//\*(C'\fR which doesn't mean anything at | |
210 | all. To include a \f(CW\*(C`\-\*(C'\fR character in a transliteration, put it either | |
211 | first or last. (In the past, \f(CW\*(C`tr/a\-z\-0//\*(C'\fR was synonymous with | |
212 | \&\f(CW\*(C`tr/a\-y//\*(C'\fR, which was probably not what you would have expected.) | |
213 | .ie n .IP "Ambiguous use of %s\fR resolved as \f(CW%s" 4 | |
214 | .el .IP "Ambiguous use of \f(CW%s\fR resolved as \f(CW%s\fR" 4 | |
215 | .IX Item "Ambiguous use of %s resolved as %s" | |
216 | (W ambiguous)(S) You said something that may not be interpreted the way | |
217 | you thought. Normally it's pretty easy to disambiguate it by supplying | |
218 | a missing quote, operator, parenthesis pair or declaration. | |
219 | .IP "'|' and '<' may not both be specified on command line" 4 | |
220 | .IX Item "'|' and '<' may not both be specified on command line" | |
221 | (F) An error peculiar to \s-1VMS\s0. Perl does its own command line | |
222 | redirection, and found that \s-1STDIN\s0 was a pipe, and that you also tried to | |
223 | redirect \s-1STDIN\s0 using '<'. Only one \s-1STDIN\s0 stream to a customer, please. | |
224 | .IP "'|' and '>' may not both be specified on command line" 4 | |
225 | .IX Item "'|' and '>' may not both be specified on command line" | |
226 | (F) An error peculiar to \s-1VMS\s0. Perl does its own command line | |
227 | redirection, and thinks you tried to redirect stdout both to a file and | |
228 | into a pipe to another command. You need to choose one or the other, | |
229 | though nothing's stopping you from piping into a program or Perl script | |
230 | which 'splits' output into two streams, such as | |
231 | .Sp | |
232 | .Vb 6 | |
233 | \& open(OUT,">$ARGV[0]") or die "Can't write to $ARGV[0]: $!"; | |
234 | \& while (<STDIN>) { | |
235 | \& print; | |
236 | \& print OUT; | |
237 | \& } | |
238 | \& close OUT; | |
239 | .Ve | |
240 | .ie n .IP "Applying %s\fR to \f(CW%s will act on scalar(%s)" 4 | |
241 | .el .IP "Applying \f(CW%s\fR to \f(CW%s\fR will act on scalar(%s)" 4 | |
242 | .IX Item "Applying %s to %s will act on scalar(%s)" | |
243 | (W misc) The pattern match (\f(CW\*(C`//\*(C'\fR), substitution (\f(CW\*(C`s///\*(C'\fR), and | |
244 | transliteration (\f(CW\*(C`tr///\*(C'\fR) operators work on scalar values. If you apply | |
245 | one of them to an array or a hash, it will convert the array or hash to | |
246 | a scalar value \*(-- the length of an array, or the population info of a | |
247 | hash \*(-- and then work on that scalar value. This is probably not what | |
248 | you meant to do. See \*(L"grep\*(R" in perlfunc and \*(L"map\*(R" in perlfunc for | |
249 | alternatives. | |
250 | .IP "Args must match #! line" 4 | |
251 | .IX Item "Args must match #! line" | |
252 | (F) The setuid emulator requires that the arguments Perl was invoked | |
253 | with match the arguments specified on the #! line. Since some systems | |
254 | impose a one-argument limit on the #! line, try combining switches; | |
255 | for example, turn \f(CW\*(C`\-w \-U\*(C'\fR into \f(CW\*(C`\-wU\*(C'\fR. | |
256 | .IP "Arg too short for msgsnd" 4 | |
257 | .IX Item "Arg too short for msgsnd" | |
258 | (F) \fImsgsnd()\fR requires a string at least as long as sizeof(long). | |
259 | .IP "%s argument is not a \s-1HASH\s0 or \s-1ARRAY\s0 element" 4 | |
260 | .IX Item "%s argument is not a HASH or ARRAY element" | |
261 | (F) The argument to \fIexists()\fR must be a hash or array element, such as: | |
262 | .Sp | |
263 | .Vb 2 | |
264 | \& $foo{$bar} | |
265 | \& $ref->{"susie"}[12] | |
266 | .Ve | |
267 | .IP "%s argument is not a \s-1HASH\s0 or \s-1ARRAY\s0 element or slice" 4 | |
268 | .IX Item "%s argument is not a HASH or ARRAY element or slice" | |
269 | (F) The argument to \fIdelete()\fR must be either a hash or array element, | |
270 | such as: | |
271 | .Sp | |
272 | .Vb 2 | |
273 | \& $foo{$bar} | |
274 | \& $ref->{"susie"}[12] | |
275 | .Ve | |
276 | .Sp | |
277 | or a hash or array slice, such as: | |
278 | .Sp | |
279 | .Vb 2 | |
280 | \& @foo[$bar, $baz, $xyzzy] | |
281 | \& @{$ref->[12]}{"susie", "queue"} | |
282 | .Ve | |
283 | .IP "%s argument is not a subroutine name" 4 | |
284 | .IX Item "%s argument is not a subroutine name" | |
285 | (F) The argument to \fIexists()\fR for \f(CW\*(C`exists &sub\*(C'\fR must be a subroutine | |
286 | name, and not a subroutine call. \f(CW\*(C`exists &sub()\*(C'\fR will generate this | |
287 | error. | |
288 | .ie n .IP "Argument ""%s"" isn't numeric%s" 4 | |
289 | .el .IP "Argument ``%s'' isn't numeric%s" 4 | |
290 | .IX Item "Argument %s isn't numeric%s" | |
291 | (W numeric) The indicated string was fed as an argument to an operator | |
292 | that expected a numeric value instead. If you're fortunate the message | |
293 | will identify which operator was so unfortunate. | |
294 | .ie n .IP "Argument list not closed for PerlIO layer ""%s""" 4 | |
295 | .el .IP "Argument list not closed for PerlIO layer ``%s''" 4 | |
296 | .IX Item "Argument list not closed for PerlIO layer %s" | |
297 | (W layer) When pushing a layer with arguments onto the Perl I/O system you | |
298 | forgot the ) that closes the argument list. (Layers take care of transforming | |
299 | data between external and internal representations.) Perl stopped parsing | |
300 | the layer list at this point and did not attempt to push this layer. | |
301 | If your program didn't explicitly request the failing operation, it may be | |
302 | the result of the value of the environment variable \s-1PERLIO\s0. | |
303 | .ie n .IP "Array @%s missing the @ in argument %d of %s()" 4 | |
304 | .el .IP "Array @%s missing the @ in argument \f(CW%d\fR of %s()" 4 | |
305 | .IX Item "Array @%s missing the @ in argument %d of %s()" | |
306 | (D deprecated) Really old Perl let you omit the @ on array names in some | |
307 | spots. This is now heavily deprecated. | |
308 | .ie n .IP "assertion botched: %s" 4 | |
309 | .el .IP "assertion botched: \f(CW%s\fR" 4 | |
310 | .IX Item "assertion botched: %s" | |
311 | (P) The malloc package that comes with Perl had an internal failure. | |
312 | .ie n .IP "Assertion failed: file ""%s""" 4 | |
313 | .el .IP "Assertion failed: file ``%s''" 4 | |
314 | .IX Item "Assertion failed: file %s" | |
315 | (P) A general assertion failed. The file in question must be examined. | |
316 | .IP "Assignment to both a list and a scalar" 4 | |
317 | .IX Item "Assignment to both a list and a scalar" | |
318 | (F) If you assign to a conditional operator, the 2nd and 3rd arguments | |
319 | must either both be scalars or both be lists. Otherwise Perl won't | |
320 | know which context to supply to the right side. | |
321 | .ie n .IP "A thread exited while %d threads were running" 4 | |
322 | .el .IP "A thread exited while \f(CW%d\fR threads were running" 4 | |
323 | .IX Item "A thread exited while %d threads were running" | |
324 | (W threads)(S) When using threaded Perl, a thread (not necessarily the main | |
325 | thread) exited while there were still other threads running. | |
326 | Usually it's a good idea to first collect the return values of the | |
327 | created threads by joining them, and only then exit from the main | |
328 | thread. See threads. | |
329 | .IP "Attempt to access disallowed key '%s' in a restricted hash" 4 | |
330 | .IX Item "Attempt to access disallowed key '%s' in a restricted hash" | |
331 | (F) The failing code has attempted to get or set a key which is not in | |
332 | the current set of allowed keys of a restricted hash. | |
333 | .IP "Attempt to bless into a reference" 4 | |
334 | .IX Item "Attempt to bless into a reference" | |
335 | (F) The \s-1CLASSNAME\s0 argument to the \fIbless()\fR operator is expected to be | |
336 | the name of the package to bless the resulting object into. You've | |
337 | supplied instead a reference to something: perhaps you wrote | |
338 | .Sp | |
339 | .Vb 1 | |
340 | \& bless $self, $proto; | |
341 | .Ve | |
342 | .Sp | |
343 | when you intended | |
344 | .Sp | |
345 | .Vb 1 | |
346 | \& bless $self, ref($proto) || $proto; | |
347 | .Ve | |
348 | .Sp | |
349 | If you actually want to bless into the stringified version | |
350 | of the reference supplied, you need to stringify it yourself, for | |
351 | example by: | |
352 | .Sp | |
353 | .Vb 1 | |
354 | \& bless $self, "$proto"; | |
355 | .Ve | |
356 | .IP "Attempt to delete disallowed key '%s' from a restricted hash" 4 | |
357 | .IX Item "Attempt to delete disallowed key '%s' from a restricted hash" | |
358 | (F) The failing code attempted to delete from a restricted hash a key | |
359 | which is not in its key set. | |
360 | .IP "Attempt to delete readonly key '%s' from a restricted hash" 4 | |
361 | .IX Item "Attempt to delete readonly key '%s' from a restricted hash" | |
362 | (F) The failing code attempted to delete a key whose value has been | |
363 | declared readonly from a restricted hash. | |
364 | .IP "Attempt to free non-arena \s-1SV:\s0 0x%lx" 4 | |
365 | .IX Item "Attempt to free non-arena SV: 0x%lx" | |
366 | (P internal) All \s-1SV\s0 objects are supposed to be allocated from arenas | |
367 | that will be garbage collected on exit. An \s-1SV\s0 was discovered to be | |
368 | outside any of those arenas. | |
369 | .IP "Attempt to free nonexistent shared string" 4 | |
370 | .IX Item "Attempt to free nonexistent shared string" | |
371 | (P internal) Perl maintains a reference counted internal table of | |
372 | strings to optimize the storage and access of hash keys and other | |
373 | strings. This indicates someone tried to decrement the reference count | |
374 | of a string that can no longer be found in the table. | |
375 | .IP "Attempt to free temp prematurely" 4 | |
376 | .IX Item "Attempt to free temp prematurely" | |
377 | (W debugging) Mortalized values are supposed to be freed by the | |
378 | \&\fIfree_tmps()\fR routine. This indicates that something else is freeing the | |
379 | \&\s-1SV\s0 before the \fIfree_tmps()\fR routine gets a chance, which means that the | |
380 | \&\fIfree_tmps()\fR routine will be freeing an unreferenced scalar when it does | |
381 | try to free it. | |
382 | .IP "Attempt to free unreferenced glob pointers" 4 | |
383 | .IX Item "Attempt to free unreferenced glob pointers" | |
384 | (P internal) The reference counts got screwed up on symbol aliases. | |
385 | .IP "Attempt to free unreferenced scalar" 4 | |
386 | .IX Item "Attempt to free unreferenced scalar" | |
387 | (W internal) Perl went to decrement the reference count of a scalar to | |
388 | see if it would go to 0, and discovered that it had already gone to 0 | |
389 | earlier, and should have been freed, and in fact, probably was freed. | |
390 | This could indicate that \fISvREFCNT_dec()\fR was called too many times, or | |
391 | that \fISvREFCNT_inc()\fR was called too few times, or that the \s-1SV\s0 was | |
392 | mortalized when it shouldn't have been, or that memory has been | |
393 | corrupted. | |
394 | .IP "Attempt to join self" 4 | |
395 | .IX Item "Attempt to join self" | |
396 | (F) You tried to join a thread from within itself, which is an | |
397 | impossible task. You may be joining the wrong thread, or you may need | |
398 | to move the \fIjoin()\fR to some other thread. | |
399 | .IP "Attempt to pack pointer to temporary value" 4 | |
400 | .IX Item "Attempt to pack pointer to temporary value" | |
401 | (W pack) You tried to pass a temporary value (like the result of a | |
402 | function, or a computed expression) to the \*(L"p\*(R" \fIpack()\fR template. This | |
403 | means the result contains a pointer to a location that could become | |
404 | invalid anytime, even before the end of the current statement. Use | |
405 | literals or global values as arguments to the \*(L"p\*(R" \fIpack()\fR template to | |
406 | avoid this warning. | |
407 | .IP "Attempt to set length of freed array" 4 | |
408 | .IX Item "Attempt to set length of freed array" | |
409 | (W) You tried to set the length of an array which has been freed. You | |
410 | can do this by storing a reference to the scalar representing the last index | |
411 | of an array and later assigning through that reference. For example | |
412 | .Sp | |
413 | .Vb 2 | |
414 | \& $r = do {my @a; \e$#a}; | |
415 | \& $$r = 503 | |
416 | .Ve | |
417 | .IP "Attempt to use reference as lvalue in substr" 4 | |
418 | .IX Item "Attempt to use reference as lvalue in substr" | |
419 | (W substr) You supplied a reference as the first argument to \fIsubstr()\fR | |
420 | used as an lvalue, which is pretty strange. Perhaps you forgot to | |
421 | dereference it first. See \*(L"substr\*(R" in perlfunc. | |
422 | .ie n .IP "Bad arg length for %s\fR, is \f(CW%d\fR, should be \f(CW%s" 4 | |
423 | .el .IP "Bad arg length for \f(CW%s\fR, is \f(CW%d\fR, should be \f(CW%s\fR" 4 | |
424 | .IX Item "Bad arg length for %s, is %d, should be %s" | |
425 | (F) You passed a buffer of the wrong size to one of \fImsgctl()\fR, \fIsemctl()\fR | |
426 | or \fIshmctl()\fR. In C parlance, the correct sizes are, respectively, | |
427 | sizeof(struct\ msqid_ds\ *), sizeof(struct\ semid_ds\ *), and | |
428 | sizeof(struct\ shmid_ds\ *). | |
429 | .IP "Bad evalled substitution pattern" 4 | |
430 | .IX Item "Bad evalled substitution pattern" | |
431 | (F) You've used the \f(CW\*(C`/e\*(C'\fR switch to evaluate the replacement for a | |
432 | substitution, but perl found a syntax error in the code to evaluate, | |
433 | most likely an unexpected right brace '}'. | |
434 | .ie n .IP "Bad filehandle: %s" 4 | |
435 | .el .IP "Bad filehandle: \f(CW%s\fR" 4 | |
436 | .IX Item "Bad filehandle: %s" | |
437 | (F) A symbol was passed to something wanting a filehandle, but the | |
438 | symbol has no filehandle associated with it. Perhaps you didn't do an | |
439 | \&\fIopen()\fR, or did it in another package. | |
440 | .IP "Bad \fIfree()\fR ignored" 4 | |
441 | .IX Item "Bad free() ignored" | |
442 | (S malloc) An internal routine called \fIfree()\fR on something that had never | |
443 | been \fImalloc()\fRed in the first place. Mandatory, but can be disabled by | |
444 | setting environment variable \f(CW\*(C`PERL_BADFREE\*(C'\fR to 0. | |
445 | .Sp | |
446 | This message can be seen quite often with DB_File on systems with \*(L"hard\*(R" | |
447 | dynamic linking, like \f(CW\*(C`AIX\*(C'\fR and \f(CW\*(C`OS/2\*(C'\fR. It is a bug of \f(CW\*(C`Berkeley DB\*(C'\fR | |
448 | which is left unnoticed if \f(CW\*(C`DB\*(C'\fR uses \fIforgiving\fR system \fImalloc()\fR. | |
449 | .IP "Bad hash" 4 | |
450 | .IX Item "Bad hash" | |
451 | (P) One of the internal hash routines was passed a null \s-1HV\s0 pointer. | |
452 | .IP "Bad index while coercing array into hash" 4 | |
453 | .IX Item "Bad index while coercing array into hash" | |
454 | (F) The index looked up in the hash found as the 0'th element of a | |
455 | pseudo-hash is not legal. Index values must be at 1 or greater. | |
456 | See perlref. | |
457 | .IP "Badly placed ()'s" 4 | |
458 | .IX Item "Badly placed ()'s" | |
459 | (A) You've accidentally run your script through \fBcsh\fR instead | |
460 | of Perl. Check the #! line, or manually feed your script into | |
461 | Perl yourself. | |
462 | .ie n .IP "Bad name after %s::" 4 | |
463 | .el .IP "Bad name after \f(CW%s::\fR" 4 | |
464 | .IX Item "Bad name after %s::" | |
465 | (F) You started to name a symbol by using a package prefix, and then | |
466 | didn't finish the symbol. In particular, you can't interpolate outside | |
467 | of quotes, so | |
468 | .Sp | |
469 | .Vb 2 | |
470 | \& $var = 'myvar'; | |
471 | \& $sym = mypack::$var; | |
472 | .Ve | |
473 | .Sp | |
474 | is not the same as | |
475 | .Sp | |
476 | .Vb 2 | |
477 | \& $var = 'myvar'; | |
478 | \& $sym = "mypack::$var"; | |
479 | .Ve | |
480 | .IP "Bad \fIrealloc()\fR ignored" 4 | |
481 | .IX Item "Bad realloc() ignored" | |
482 | (S malloc) An internal routine called \fIrealloc()\fR on something that had | |
483 | never been \fImalloc()\fRed in the first place. Mandatory, but can be disabled | |
484 | by setting environment variable \f(CW\*(C`PERL_BADFREE\*(C'\fR to 1. | |
485 | .IP "Bad symbol for array" 4 | |
486 | .IX Item "Bad symbol for array" | |
487 | (P) An internal request asked to add an array entry to something that | |
488 | wasn't a symbol table entry. | |
489 | .IP "Bad symbol for filehandle" 4 | |
490 | .IX Item "Bad symbol for filehandle" | |
491 | (P) An internal request asked to add a filehandle entry to something | |
492 | that wasn't a symbol table entry. | |
493 | .IP "Bad symbol for hash" 4 | |
494 | .IX Item "Bad symbol for hash" | |
495 | (P) An internal request asked to add a hash entry to something that | |
496 | wasn't a symbol table entry. | |
497 | .IP "Bareword found in conditional" 4 | |
498 | .IX Item "Bareword found in conditional" | |
499 | (W bareword) The compiler found a bareword where it expected a | |
500 | conditional, which often indicates that an || or && was parsed as part | |
501 | of the last argument of the previous construct, for example: | |
502 | .Sp | |
503 | .Vb 1 | |
504 | \& open FOO || die; | |
505 | .Ve | |
506 | .Sp | |
507 | It may also indicate a misspelled constant that has been interpreted as | |
508 | a bareword: | |
509 | .Sp | |
510 | .Vb 2 | |
511 | \& use constant TYPO => 1; | |
512 | \& if (TYOP) { print "foo" } | |
513 | .Ve | |
514 | .Sp | |
515 | The \f(CW\*(C`strict\*(C'\fR pragma is useful in avoiding such errors. | |
516 | .ie n .IP "Bareword ""%s"" not allowed while ""strict subs"" in use" 4 | |
517 | .el .IP "Bareword ``%s'' not allowed while ``strict subs'' in use" 4 | |
518 | .IX Item "Bareword %s not allowed while strict subs in use" | |
519 | (F) With \*(L"strict subs\*(R" in use, a bareword is only allowed as a | |
520 | subroutine identifier, in curly brackets or to the left of the \*(L"=>\*(R" | |
521 | symbol. Perhaps you need to predeclare a subroutine? | |
522 | .ie n .IP "Bareword ""%s"" refers to nonexistent package" 4 | |
523 | .el .IP "Bareword ``%s'' refers to nonexistent package" 4 | |
524 | .IX Item "Bareword %s refers to nonexistent package" | |
525 | (W bareword) You used a qualified bareword of the form \f(CW\*(C`Foo::\*(C'\fR, but the | |
526 | compiler saw no other uses of that namespace before that point. Perhaps | |
527 | you need to predeclare a package? | |
528 | .IP "\s-1BEGIN\s0 failed\*(--compilation aborted" 4 | |
529 | .IX Item "BEGIN failedcompilation aborted" | |
530 | (F) An untrapped exception was raised while executing a \s-1BEGIN\s0 | |
531 | subroutine. Compilation stops immediately and the interpreter is | |
532 | exited. | |
533 | .IP "\s-1BEGIN\s0 not safe after errors\*(--compilation aborted" 4 | |
534 | .IX Item "BEGIN not safe after errorscompilation aborted" | |
535 | (F) Perl found a \f(CW\*(C`BEGIN {}\*(C'\fR subroutine (or a \f(CW\*(C`use\*(C'\fR directive, which | |
536 | implies a \f(CW\*(C`BEGIN {}\*(C'\fR) after one or more compilation errors had already | |
537 | occurred. Since the intended environment for the \f(CW\*(C`BEGIN {}\*(C'\fR could not | |
538 | be guaranteed (due to the errors), and since subsequent code likely | |
539 | depends on its correct operation, Perl just gave up. | |
540 | .ie n .IP "\e1 better written as $1" 4 | |
541 | .el .IP "\e1 better written as \f(CW$1\fR" 4 | |
542 | .IX Item "1 better written as $1" | |
543 | (W syntax) Outside of patterns, backreferences live on as variables. | |
544 | The use of backslashes is grandfathered on the right-hand side of a | |
545 | substitution, but stylistically it's better to use the variable form | |
546 | because other Perl programmers will expect it, and it works better if | |
547 | there are more than 9 backreferences. | |
548 | .IP "Binary number > 0b11111111111111111111111111111111 non-portable" 4 | |
549 | .IX Item "Binary number > 0b11111111111111111111111111111111 non-portable" | |
550 | (W portable) The binary number you specified is larger than 2**32\-1 | |
551 | (4294967295) and therefore non-portable between systems. See | |
552 | perlport for more on portability concerns. | |
553 | .ie n .IP "\fIbind()\fR on closed socket %s" 4 | |
554 | .el .IP "\fIbind()\fR on closed socket \f(CW%s\fR" 4 | |
555 | .IX Item "bind() on closed socket %s" | |
556 | (W closed) You tried to do a bind on a closed socket. Did you forget to | |
557 | check the return value of your \fIsocket()\fR call? See \*(L"bind\*(R" in perlfunc. | |
558 | .ie n .IP "\fIbinmode()\fR on closed filehandle %s" 4 | |
559 | .el .IP "\fIbinmode()\fR on closed filehandle \f(CW%s\fR" 4 | |
560 | .IX Item "binmode() on closed filehandle %s" | |
561 | (W unopened) You tried \fIbinmode()\fR on a filehandle that was never opened. | |
562 | Check you control flow and number of arguments. | |
563 | .IP "Bit vector size > 32 non-portable" 4 | |
564 | .IX Item "Bit vector size > 32 non-portable" | |
565 | (W portable) Using bit vector sizes larger than 32 is non\-portable. | |
566 | .ie n .IP "Bizarre copy of %s\fR in \f(CW%s" 4 | |
567 | .el .IP "Bizarre copy of \f(CW%s\fR in \f(CW%s\fR" 4 | |
568 | .IX Item "Bizarre copy of %s in %s" | |
569 | (P) Perl detected an attempt to copy an internal value that is not | |
570 | copyable. | |
571 | .ie n .IP "Buffer overflow in prime_env_iter: %s" 4 | |
572 | .el .IP "Buffer overflow in prime_env_iter: \f(CW%s\fR" 4 | |
573 | .IX Item "Buffer overflow in prime_env_iter: %s" | |
574 | (W internal) A warning peculiar to \s-1VMS\s0. While Perl was preparing to | |
575 | iterate over \f(CW%ENV\fR, it encountered a logical name or symbol definition | |
576 | which was too long, so it was truncated to the string shown. | |
577 | .IP "Callback called exit" 4 | |
578 | .IX Item "Callback called exit" | |
579 | (F) A subroutine invoked from an external package via \fIcall_sv()\fR | |
580 | exited by calling exit. | |
581 | .IP "%s() called too early to check prototype" 4 | |
582 | .IX Item "%s() called too early to check prototype" | |
583 | (W prototype) You've called a function that has a prototype before the | |
584 | parser saw a definition or declaration for it, and Perl could not check | |
585 | that the call conforms to the prototype. You need to either add an | |
586 | early prototype declaration for the subroutine in question, or move the | |
587 | subroutine definition ahead of the call to get proper prototype | |
588 | checking. Alternatively, if you are certain that you're calling the | |
589 | function correctly, you may put an ampersand before the name to avoid | |
590 | the warning. See perlsub. | |
591 | .IP "Cannot compress integer in pack" 4 | |
592 | .IX Item "Cannot compress integer in pack" | |
593 | (F) An argument to pack(\*(L"w\*(R",...) was too large to compress. The \s-1BER\s0 | |
594 | compressed integer format can only be used with positive integers, and you | |
595 | attempted to compress Infinity or a very large number (> 1e308). | |
596 | See \*(L"pack\*(R" in perlfunc. | |
597 | .IP "Cannot compress negative numbers in pack" 4 | |
598 | .IX Item "Cannot compress negative numbers in pack" | |
599 | (F) An argument to pack(\*(L"w\*(R",...) was negative. The \s-1BER\s0 compressed integer | |
600 | format can only be used with positive integers. See \*(L"pack\*(R" in perlfunc. | |
601 | .IP "Can only compress unsigned integers in pack" 4 | |
602 | .IX Item "Can only compress unsigned integers in pack" | |
603 | (F) An argument to pack(\*(L"w\*(R",...) was not an integer. The \s-1BER\s0 compressed | |
604 | integer format can only be used with positive integers, and you attempted | |
605 | to compress something else. See \*(L"pack\*(R" in perlfunc. | |
606 | .IP "Can't bless non-reference value" 4 | |
607 | .IX Item "Can't bless non-reference value" | |
608 | (F) Only hard references may be blessed. This is how Perl \*(L"enforces\*(R" | |
609 | encapsulation of objects. See perlobj. | |
610 | .ie n .IP "Can't call method ""%s"" in empty package ""%s""" 4 | |
611 | .el .IP "Can't call method ``%s'' in empty package ``%s''" 4 | |
612 | .IX Item "Can't call method %s in empty package %s" | |
613 | (F) You called a method correctly, and it correctly indicated a package | |
614 | functioning as a class, but that package doesn't have \s-1ANYTHING\s0 defined | |
615 | in it, let alone methods. See perlobj. | |
616 | .ie n .IP "Can't call method ""%s"" on an undefined value" 4 | |
617 | .el .IP "Can't call method ``%s'' on an undefined value" 4 | |
618 | .IX Item "Can't call method %s on an undefined value" | |
619 | (F) You used the syntax of a method call, but the slot filled by the | |
620 | object reference or package name contains an undefined value. Something | |
621 | like this will reproduce the error: | |
622 | .Sp | |
623 | .Vb 3 | |
624 | \& $BADREF = undef; | |
625 | \& process $BADREF 1,2,3; | |
626 | \& $BADREF->process(1,2,3); | |
627 | .Ve | |
628 | .ie n .IP "Can't call method ""%s"" on unblessed reference" 4 | |
629 | .el .IP "Can't call method ``%s'' on unblessed reference" 4 | |
630 | .IX Item "Can't call method %s on unblessed reference" | |
631 | (F) A method call must know in what package it's supposed to run. It | |
632 | ordinarily finds this out from the object reference you supply, but you | |
633 | didn't supply an object reference in this case. A reference isn't an | |
634 | object reference until it has been blessed. See perlobj. | |
635 | .ie n .IP "Can't call method ""%s"" without a package or object reference" 4 | |
636 | .el .IP "Can't call method ``%s'' without a package or object reference" 4 | |
637 | .IX Item "Can't call method %s without a package or object reference" | |
638 | (F) You used the syntax of a method call, but the slot filled by the | |
639 | object reference or package name contains an expression that returns a | |
640 | defined value which is neither an object reference nor a package name. | |
641 | Something like this will reproduce the error: | |
642 | .Sp | |
643 | .Vb 3 | |
644 | \& $BADREF = 42; | |
645 | \& process $BADREF 1,2,3; | |
646 | \& $BADREF->process(1,2,3); | |
647 | .Ve | |
648 | .ie n .IP "Can't chdir to %s" 4 | |
649 | .el .IP "Can't chdir to \f(CW%s\fR" 4 | |
650 | .IX Item "Can't chdir to %s" | |
651 | (F) You called \f(CW\*(C`perl \-x/foo/bar\*(C'\fR, but \f(CW\*(C`/foo/bar\*(C'\fR is not a directory | |
652 | that you can chdir to, possibly because it doesn't exist. | |
653 | .ie n .IP "Can't check filesystem of script ""%s"" for nosuid" 4 | |
654 | .el .IP "Can't check filesystem of script ``%s'' for nosuid" 4 | |
655 | .IX Item "Can't check filesystem of script %s for nosuid" | |
656 | (P) For some reason you can't check the filesystem of the script for | |
657 | nosuid. | |
658 | .IP "Can't coerce array into hash" 4 | |
659 | .IX Item "Can't coerce array into hash" | |
660 | (F) You used an array where a hash was expected, but the array has no | |
661 | information on how to map from keys to array indices. You can do that | |
662 | only with arrays that have a hash reference at index 0. | |
663 | .ie n .IP "Can't coerce %s\fR to integer in \f(CW%s" 4 | |
664 | .el .IP "Can't coerce \f(CW%s\fR to integer in \f(CW%s\fR" 4 | |
665 | .IX Item "Can't coerce %s to integer in %s" | |
666 | (F) Certain types of SVs, in particular real symbol table entries | |
667 | (typeglobs), can't be forced to stop being what they are. So you can't | |
668 | say things like: | |
669 | .Sp | |
670 | .Vb 1 | |
671 | \& *foo += 1; | |
672 | .Ve | |
673 | .Sp | |
674 | You \s-1CAN\s0 say | |
675 | .Sp | |
676 | .Vb 2 | |
677 | \& $foo = *foo; | |
678 | \& $foo += 1; | |
679 | .Ve | |
680 | .Sp | |
681 | but then \f(CW$foo\fR no longer contains a glob. | |
682 | .ie n .IP "Can't coerce %s\fR to number in \f(CW%s" 4 | |
683 | .el .IP "Can't coerce \f(CW%s\fR to number in \f(CW%s\fR" 4 | |
684 | .IX Item "Can't coerce %s to number in %s" | |
685 | (F) Certain types of SVs, in particular real symbol table entries | |
686 | (typeglobs), can't be forced to stop being what they are. | |
687 | .ie n .IP "Can't coerce %s\fR to string in \f(CW%s" 4 | |
688 | .el .IP "Can't coerce \f(CW%s\fR to string in \f(CW%s\fR" 4 | |
689 | .IX Item "Can't coerce %s to string in %s" | |
690 | (F) Certain types of SVs, in particular real symbol table entries | |
691 | (typeglobs), can't be forced to stop being what they are. | |
692 | .IP "Can't create pipe mailbox" 4 | |
693 | .IX Item "Can't create pipe mailbox" | |
694 | (P) An error peculiar to \s-1VMS\s0. The process is suffering from exhausted | |
695 | quotas or other plumbing problems. | |
696 | .ie n .IP "Can't declare class for non-scalar %s in ""%s""" 4 | |
697 | .el .IP "Can't declare class for non-scalar \f(CW%s\fR in ``%s''" 4 | |
698 | .IX Item "Can't declare class for non-scalar %s in %s" | |
699 | (F) Currently, only scalar variables can be declared with a specific | |
700 | class qualifier in a \*(L"my\*(R" or \*(L"our\*(R" declaration. The semantics may be | |
701 | extended for other types of variables in future. | |
702 | .ie n .IP "Can't declare %s in ""%s""" 4 | |
703 | .el .IP "Can't declare \f(CW%s\fR in ``%s''" 4 | |
704 | .IX Item "Can't declare %s in %s" | |
705 | (F) Only scalar, array, and hash variables may be declared as \*(L"my\*(R" or | |
706 | \&\*(L"our\*(R" variables. They must have ordinary identifiers as names. | |
707 | .ie n .IP "Can't do inplace edit: %s is not a regular file" 4 | |
708 | .el .IP "Can't do inplace edit: \f(CW%s\fR is not a regular file" 4 | |
709 | .IX Item "Can't do inplace edit: %s is not a regular file" | |
710 | (S inplace) You tried to use the \fB\-i\fR switch on a special file, such as | |
711 | a file in /dev, or a \s-1FIFO\s0. The file was ignored. | |
712 | .ie n .IP "Can't do inplace edit on %s:\fR \f(CW%s" 4 | |
713 | .el .IP "Can't do inplace edit on \f(CW%s:\fR \f(CW%s\fR" 4 | |
714 | .IX Item "Can't do inplace edit on %s: %s" | |
715 | (S inplace) The creation of the new file failed for the indicated | |
716 | reason. | |
717 | .IP "Can't do inplace edit without backup" 4 | |
718 | .IX Item "Can't do inplace edit without backup" | |
719 | (F) You're on a system such as MS-DOS that gets confused if you try | |
720 | reading from a deleted (but still opened) file. You have to say | |
721 | \&\f(CW\*(C`\-i.bak\*(C'\fR, or some such. | |
722 | .ie n .IP "Can't do inplace edit: %s would not be unique" 4 | |
723 | .el .IP "Can't do inplace edit: \f(CW%s\fR would not be unique" 4 | |
724 | .IX Item "Can't do inplace edit: %s would not be unique" | |
725 | (S inplace) Your filesystem does not support filenames longer than 14 | |
726 | characters and Perl was unable to create a unique filename during | |
727 | inplace editing with the \fB\-i\fR switch. The file was ignored. | |
728 | .IP "Can't do {n,m} with n > m in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
729 | .IX Item "Can't do {n,m} with n > m in regex; marked by <-- HERE in m/%s/" | |
730 | (F) Minima must be less than or equal to maxima. If you really want your | |
731 | regexp to match something 0 times, just put {0}. The <\-\- \s-1HERE\s0 shows in the | |
732 | regular expression about where the problem was discovered. See perlre. | |
733 | .IP "Can't do setegid!" 4 | |
734 | .IX Item "Can't do setegid!" | |
735 | (P) The \fIsetegid()\fR call failed for some reason in the setuid emulator of | |
736 | suidperl. | |
737 | .IP "Can't do seteuid!" 4 | |
738 | .IX Item "Can't do seteuid!" | |
739 | (P) The setuid emulator of suidperl failed for some reason. | |
740 | .IP "Can't do setuid" 4 | |
741 | .IX Item "Can't do setuid" | |
742 | (F) This typically means that ordinary perl tried to exec suidperl to do | |
743 | setuid emulation, but couldn't exec it. It looks for a name of the form | |
744 | sperl5.000 in the same directory that the perl executable resides under | |
745 | the name perl5.000, typically /usr/local/bin on Unix machines. If the | |
746 | file is there, check the execute permissions. If it isn't, ask your | |
747 | sysadmin why he and/or she removed it. | |
748 | .IP "Can't do waitpid with flags" 4 | |
749 | .IX Item "Can't do waitpid with flags" | |
750 | (F) This machine doesn't have either \fIwaitpid()\fR or \fIwait4()\fR, so only | |
751 | \&\fIwaitpid()\fR without flags is emulated. | |
752 | .IP "Can't emulate \-%s on #! line" 4 | |
753 | .IX Item "Can't emulate -%s on #! line" | |
754 | (F) The #! line specifies a switch that doesn't make sense at this | |
755 | point. For example, it'd be kind of silly to put a \fB\-x\fR on the #! | |
756 | line. | |
757 | .ie n .IP "Can't exec ""%s"": %s" 4 | |
758 | .el .IP "Can't exec ``%s'': \f(CW%s\fR" 4 | |
759 | .IX Item "Can't exec %s: %s" | |
760 | (W exec) A \fIsystem()\fR, \fIexec()\fR, or piped open call could not execute the | |
761 | named program for the indicated reason. Typical reasons include: the | |
762 | permissions were wrong on the file, the file wasn't found in | |
763 | \&\f(CW$ENV{PATH}\fR, the executable in question was compiled for another | |
764 | architecture, or the #! line in a script points to an interpreter that | |
765 | can't be run for similar reasons. (Or maybe your system doesn't support | |
766 | #! at all.) | |
767 | .ie n .IP "Can't exec %s" 4 | |
768 | .el .IP "Can't exec \f(CW%s\fR" 4 | |
769 | .IX Item "Can't exec %s" | |
770 | (F) Perl was trying to execute the indicated program for you because | |
771 | that's what the #! line said. If that's not what you wanted, you may | |
772 | need to mention \*(L"perl\*(R" on the #! line somewhere. | |
773 | .ie n .IP "Can't execute %s" 4 | |
774 | .el .IP "Can't execute \f(CW%s\fR" 4 | |
775 | .IX Item "Can't execute %s" | |
776 | (F) You used the \fB\-S\fR switch, but the copies of the script to execute | |
777 | found in the \s-1PATH\s0 did not have correct permissions. | |
778 | .ie n .IP "Can't find an opnumber for ""%s""" 4 | |
779 | .el .IP "Can't find an opnumber for ``%s''" 4 | |
780 | .IX Item "Can't find an opnumber for %s" | |
781 | (F) A string of a form \f(CW\*(C`CORE::word\*(C'\fR was given to \fIprototype()\fR, but there | |
782 | is no builtin with the name \f(CW\*(C`word\*(C'\fR. | |
783 | .ie n .IP "Can't find %s character property ""%s""" 4 | |
784 | .el .IP "Can't find \f(CW%s\fR character property ``%s''" 4 | |
785 | .IX Item "Can't find %s character property %s" | |
786 | (F) You used \f(CW\*(C`\ep{}\*(C'\fR or \f(CW\*(C`\eP{}\*(C'\fR but the character property by that name | |
787 | could not be found. Maybe you misspelled the name of the property | |
788 | (remember that the names of character properties consist only of | |
789 | alphanumeric characters), or maybe you forgot the \f(CW\*(C`Is\*(C'\fR or \f(CW\*(C`In\*(C'\fR prefix? | |
790 | .ie n .IP "Can't find label %s" 4 | |
791 | .el .IP "Can't find label \f(CW%s\fR" 4 | |
792 | .IX Item "Can't find label %s" | |
793 | (F) You said to goto a label that isn't mentioned anywhere that it's | |
794 | possible for us to go to. See \*(L"goto\*(R" in perlfunc. | |
795 | .ie n .IP "Can't find %s on \s-1PATH\s0" 4 | |
796 | .el .IP "Can't find \f(CW%s\fR on \s-1PATH\s0" 4 | |
797 | .IX Item "Can't find %s on PATH" | |
798 | (F) You used the \fB\-S\fR switch, but the script to execute could not be | |
799 | found in the \s-1PATH\s0. | |
800 | .ie n .IP "Can't find %s on \s-1PATH\s0, '.' not in \s-1PATH\s0" 4 | |
801 | .el .IP "Can't find \f(CW%s\fR on \s-1PATH\s0, '.' not in \s-1PATH\s0" 4 | |
802 | .IX Item "Can't find %s on PATH, '.' not in PATH" | |
803 | (F) You used the \fB\-S\fR switch, but the script to execute could not be | |
804 | found in the \s-1PATH\s0, or at least not with the correct permissions. The | |
805 | script exists in the current directory, but \s-1PATH\s0 prohibits running it. | |
806 | .ie n .IP "Can't find %s\fR property definition \f(CW%s" 4 | |
807 | .el .IP "Can't find \f(CW%s\fR property definition \f(CW%s\fR" 4 | |
808 | .IX Item "Can't find %s property definition %s" | |
809 | (F) You may have tried to use \f(CW\*(C`\ep\*(C'\fR which means a Unicode property (for | |
810 | example \f(CW\*(C`\ep{Lu}\*(C'\fR is all uppercase letters). If you did mean to use a | |
811 | Unicode property, see perlunicode for the list of known properties. | |
812 | If you didn't mean to use a Unicode property, escape the \f(CW\*(C`\ep\*(C'\fR, either | |
813 | by \f(CW\*(C`\e\ep\*(C'\fR (just the \f(CW\*(C`\ep\*(C'\fR) or by \f(CW\*(C`\eQ\ep\*(C'\fR (the rest of the string, until | |
814 | possible \f(CW\*(C`\eE\*(C'\fR). | |
815 | .ie n .IP "Can't find string terminator %s anywhere before \s-1EOF\s0" 4 | |
816 | .el .IP "Can't find string terminator \f(CW%s\fR anywhere before \s-1EOF\s0" 4 | |
817 | .IX Item "Can't find string terminator %s anywhere before EOF" | |
818 | (F) Perl strings can stretch over multiple lines. This message means | |
819 | that the closing delimiter was omitted. Because bracketed quotes count | |
820 | nesting levels, the following is missing its final parenthesis: | |
821 | .Sp | |
822 | .Vb 1 | |
823 | \& print q(The character '(' starts a side comment.); | |
824 | .Ve | |
825 | .Sp | |
826 | If you're getting this error from a here\-document, you may have included | |
827 | unseen whitespace before or after your closing tag. A good programmer's | |
828 | editor will have a way to help you find these characters. | |
829 | .IP "Can't fork" 4 | |
830 | .IX Item "Can't fork" | |
831 | (F) A fatal error occurred while trying to fork while opening a | |
832 | pipeline. | |
833 | .IP "Can't get filespec \- stale stat buffer?" 4 | |
834 | .IX Item "Can't get filespec - stale stat buffer?" | |
835 | (S) A warning peculiar to \s-1VMS\s0. This arises because of the difference | |
836 | between access checks under \s-1VMS\s0 and under the Unix model Perl assumes. | |
837 | Under \s-1VMS\s0, access checks are done by filename, rather than by bits in | |
838 | the stat buffer, so that ACLs and other protections can be taken into | |
839 | account. Unfortunately, Perl assumes that the stat buffer contains all | |
840 | the necessary information, and passes it, instead of the filespec, to | |
841 | the access checking routine. It will try to retrieve the filespec using | |
842 | the device name and \s-1FID\s0 present in the stat buffer, but this works only | |
843 | if you haven't made a subsequent call to the \s-1CRTL\s0 \fIstat()\fR routine, | |
844 | because the device name is overwritten with each call. If this warning | |
845 | appears, the name lookup failed, and the access checking routine gave up | |
846 | and returned \s-1FALSE\s0, just to be conservative. (Note: The access checking | |
847 | routine knows about the Perl \f(CW\*(C`stat\*(C'\fR operator and file tests, so you | |
848 | shouldn't ever see this warning in response to a Perl command; it arises | |
849 | only if some internal code takes stat buffers lightly.) | |
850 | .IP "Can't get pipe mailbox device name" 4 | |
851 | .IX Item "Can't get pipe mailbox device name" | |
852 | (P) An error peculiar to \s-1VMS\s0. After creating a mailbox to act as a | |
853 | pipe, Perl can't retrieve its name for later use. | |
854 | .IP "Can't get \s-1SYSGEN\s0 parameter value for \s-1MAXBUF\s0" 4 | |
855 | .IX Item "Can't get SYSGEN parameter value for MAXBUF" | |
856 | (P) An error peculiar to \s-1VMS\s0. Perl asked \f(CW$GETSYI\fR how big you want your | |
857 | mailbox buffers to be, and didn't get an answer. | |
858 | .ie n .IP "Can't ""goto"" into the middle of a foreach loop" 4 | |
859 | .el .IP "Can't ``goto'' into the middle of a foreach loop" 4 | |
860 | .IX Item "Can't goto into the middle of a foreach loop" | |
861 | (F) A \*(L"goto\*(R" statement was executed to jump into the middle of a foreach | |
862 | loop. You can't get there from here. See \*(L"goto\*(R" in perlfunc. | |
863 | .ie n .IP "Can't ""goto"" out of a pseudo block" 4 | |
864 | .el .IP "Can't ``goto'' out of a pseudo block" 4 | |
865 | .IX Item "Can't goto out of a pseudo block" | |
866 | (F) A \*(L"goto\*(R" statement was executed to jump out of what might look like | |
867 | a block, except that it isn't a proper block. This usually occurs if | |
868 | you tried to jump out of a \fIsort()\fR block or subroutine, which is a no\-no. | |
869 | See \*(L"goto\*(R" in perlfunc. | |
870 | .IP "Can't goto subroutine from an eval\-%s" 4 | |
871 | .IX Item "Can't goto subroutine from an eval-%s" | |
872 | (F) The \*(L"goto subroutine\*(R" call can't be used to jump out of an eval | |
873 | \&\*(L"string\*(R" or block. | |
874 | .IP "Can't goto subroutine outside a subroutine" 4 | |
875 | .IX Item "Can't goto subroutine outside a subroutine" | |
876 | (F) The deeply magical \*(L"goto subroutine\*(R" call can only replace one | |
877 | subroutine call for another. It can't manufacture one out of whole | |
878 | cloth. In general you should be calling it out of only an \s-1AUTOLOAD\s0 | |
879 | routine anyway. See \*(L"goto\*(R" in perlfunc. | |
880 | .IP "Can't ignore signal \s-1CHLD\s0, forcing to default" 4 | |
881 | .IX Item "Can't ignore signal CHLD, forcing to default" | |
882 | (W signal) Perl has detected that it is being run with the \s-1SIGCHLD\s0 | |
883 | signal (sometimes known as \s-1SIGCLD\s0) disabled. Since disabling this | |
884 | signal will interfere with proper determination of exit status of child | |
885 | processes, Perl has reset the signal to its default value. This | |
886 | situation typically indicates that the parent program under which Perl | |
887 | may be running (e.g. cron) is being very careless. | |
888 | .ie n .IP "Can't ""last"" outside a loop block" 4 | |
889 | .el .IP "Can't ``last'' outside a loop block" 4 | |
890 | .IX Item "Can't last outside a loop block" | |
891 | (F) A \*(L"last\*(R" statement was executed to break out of the current block, | |
892 | except that there's this itty bitty problem called there isn't a current | |
893 | block. Note that an \*(L"if\*(R" or \*(L"else\*(R" block doesn't count as a \*(L"loopish\*(R" | |
894 | block, as doesn't a block given to \fIsort()\fR, \fImap()\fR or \fIgrep()\fR. You can | |
895 | usually double the curlies to get the same effect though, because the | |
896 | inner curlies will be considered a block that loops once. See | |
897 | \&\*(L"last\*(R" in perlfunc. | |
898 | .ie n .IP "Can't load '%s' for module %s" 4 | |
899 | .el .IP "Can't load '%s' for module \f(CW%s\fR" 4 | |
900 | .IX Item "Can't load '%s' for module %s" | |
901 | (F) The module you tried to load failed to load a dynamic extension. This | |
902 | may either mean that you upgraded your version of perl to one that is | |
903 | incompatible with your old dynamic extensions (which is known to happen | |
904 | between major versions of perl), or (more likely) that your dynamic | |
905 | extension was built against an older version of the library that is | |
906 | installed on your system. You may need to rebuild your old dynamic | |
907 | extensions. | |
908 | .ie n .IP "Can't localize lexical variable %s" 4 | |
909 | .el .IP "Can't localize lexical variable \f(CW%s\fR" 4 | |
910 | .IX Item "Can't localize lexical variable %s" | |
911 | (F) You used local on a variable name that was previously declared as a | |
912 | lexical variable using \*(L"my\*(R". This is not allowed. If you want to | |
913 | localize a package variable of the same name, qualify it with the | |
914 | package name. | |
915 | .IP "Can't localize pseudo-hash element" 4 | |
916 | .IX Item "Can't localize pseudo-hash element" | |
917 | (F) You said something like \f(CW\*(C`local $ar\->{'key'}\*(C'\fR, where \f(CW$ar\fR is a | |
918 | reference to a pseudo\-hash. That hasn't been implemented yet, but you | |
919 | can get a similar effect by localizing the corresponding array element | |
920 | directly \*(-- \f(CW\*(C`local $ar\->[$ar\->[0]{'key'}]\*(C'\fR. | |
921 | .IP "Can't localize through a reference" 4 | |
922 | .IX Item "Can't localize through a reference" | |
923 | (F) You said something like \f(CW\*(C`local $$ref\*(C'\fR, which Perl can't currently | |
924 | handle, because when it goes to restore the old value of whatever \f(CW$ref\fR | |
925 | pointed to after the scope of the \fIlocal()\fR is finished, it can't be sure | |
926 | that \f(CW$ref\fR will still be a reference. | |
927 | .ie n .IP "Can't locate %s" 4 | |
928 | .el .IP "Can't locate \f(CW%s\fR" 4 | |
929 | .IX Item "Can't locate %s" | |
930 | (F) You said to \f(CW\*(C`do\*(C'\fR (or \f(CW\*(C`require\*(C'\fR, or \f(CW\*(C`use\*(C'\fR) a file that couldn't be | |
931 | found. Perl looks for the file in all the locations mentioned in \f(CW@INC\fR, | |
932 | unless the file name included the full path to the file. Perhaps you | |
933 | need to set the \s-1PERL5LIB\s0 or \s-1PERL5OPT\s0 environment variable to say where | |
934 | the extra library is, or maybe the script needs to add the library name | |
935 | to \f(CW@INC\fR. Or maybe you just misspelled the name of the file. See | |
936 | \&\*(L"require\*(R" in perlfunc and lib. | |
937 | .ie n .IP "Can't locate auto/%s.al in @INC" 4 | |
938 | .el .IP "Can't locate auto/%s.al in \f(CW@INC\fR" 4 | |
939 | .IX Item "Can't locate auto/%s.al in @INC" | |
940 | (F) A function (or method) was called in a package which allows | |
941 | autoload, but there is no function to autoload. Most probable causes | |
942 | are a misprint in a function/method name or a failure to \f(CW\*(C`AutoSplit\*(C'\fR | |
943 | the file, say, by doing \f(CW\*(C`make install\*(C'\fR. | |
944 | .ie n .IP "Can't locate loadable object for module %s\fR in \f(CW@INC" 4 | |
945 | .el .IP "Can't locate loadable object for module \f(CW%s\fR in \f(CW@INC\fR" 4 | |
946 | .IX Item "Can't locate loadable object for module %s in @INC" | |
947 | (F) The module you loaded is trying to load an external library, like | |
948 | for example, \f(CW\*(C`foo.so\*(C'\fR or \f(CW\*(C`bar.dll\*(C'\fR, but the DynaLoader module was | |
949 | unable to locate this library. See DynaLoader. | |
950 | .ie n .IP "Can't locate object method ""%s"" via package ""%s""" 4 | |
951 | .el .IP "Can't locate object method ``%s'' via package ``%s''" 4 | |
952 | .IX Item "Can't locate object method %s via package %s" | |
953 | (F) You called a method correctly, and it correctly indicated a package | |
954 | functioning as a class, but that package doesn't define that particular | |
955 | method, nor does any of its base classes. See perlobj. | |
956 | .ie n .IP "Can't locate package %s for @%s::ISA" 4 | |
957 | .el .IP "Can't locate package \f(CW%s\fR for @%s::ISA" 4 | |
958 | .IX Item "Can't locate package %s for @%s::ISA" | |
959 | (W syntax) The \f(CW@ISA\fR array contained the name of another package that | |
960 | doesn't seem to exist. | |
961 | .IP "Can't locate PerlIO%s" 4 | |
962 | .IX Item "Can't locate PerlIO%s" | |
963 | (F) You tried to use in \fIopen()\fR a PerlIO layer that does not exist, | |
964 | e.g. open(\s-1FH\s0, \*(L">:nosuchlayer\*(R", \*(L"somefile\*(R"). | |
965 | .IP "Can't make list assignment to \e%ENV on this system" 4 | |
966 | .IX Item "Can't make list assignment to %ENV on this system" | |
967 | (F) List assignment to \f(CW%ENV\fR is not supported on some systems, notably | |
968 | \&\s-1VMS\s0. | |
969 | .ie n .IP "Can't modify %s\fR in \f(CW%s" 4 | |
970 | .el .IP "Can't modify \f(CW%s\fR in \f(CW%s\fR" 4 | |
971 | .IX Item "Can't modify %s in %s" | |
972 | (F) You aren't allowed to assign to the item indicated, or otherwise try | |
973 | to change it, such as with an auto\-increment. | |
974 | .IP "Can't modify nonexistent substring" 4 | |
975 | .IX Item "Can't modify nonexistent substring" | |
976 | (P) The internal routine that does assignment to a \fIsubstr()\fR was handed | |
977 | a \s-1NULL\s0. | |
978 | .IP "Can't modify non-lvalue subroutine call" 4 | |
979 | .IX Item "Can't modify non-lvalue subroutine call" | |
980 | (F) Subroutines meant to be used in lvalue context should be declared as | |
981 | such, see \*(L"Lvalue subroutines\*(R" in perlsub. | |
982 | .IP "Can't msgrcv to read-only var" 4 | |
983 | .IX Item "Can't msgrcv to read-only var" | |
984 | (F) The target of a msgrcv must be modifiable to be used as a receive | |
985 | buffer. | |
986 | .ie n .IP "Can't ""next"" outside a loop block" 4 | |
987 | .el .IP "Can't ``next'' outside a loop block" 4 | |
988 | .IX Item "Can't next outside a loop block" | |
989 | (F) A \*(L"next\*(R" statement was executed to reiterate the current block, but | |
990 | there isn't a current block. Note that an \*(L"if\*(R" or \*(L"else\*(R" block doesn't | |
991 | count as a \*(L"loopish\*(R" block, as doesn't a block given to \fIsort()\fR, \fImap()\fR or | |
992 | \&\fIgrep()\fR. You can usually double the curlies to get the same effect | |
993 | though, because the inner curlies will be considered a block that loops | |
994 | once. See \*(L"next\*(R" in perlfunc. | |
995 | .ie n .IP "Can't open %s:\fR \f(CW%s" 4 | |
996 | .el .IP "Can't open \f(CW%s:\fR \f(CW%s\fR" 4 | |
997 | .IX Item "Can't open %s: %s" | |
998 | (S inplace) The implicit opening of a file through use of the \f(CW\*(C`<>\*(C'\fR | |
999 | filehandle, either implicitly under the \f(CW\*(C`\-n\*(C'\fR or \f(CW\*(C`\-p\*(C'\fR command-line | |
1000 | switches, or explicitly, failed for the indicated reason. Usually this | |
1001 | is because you don't have read permission for a file which you named on | |
1002 | the command line. | |
1003 | .IP "Can't open a reference" 4 | |
1004 | .IX Item "Can't open a reference" | |
1005 | (W io) You tried to open a scalar reference for reading or writing, | |
1006 | using the 3\-arg \fIopen()\fR syntax : | |
1007 | .Sp | |
1008 | .Vb 1 | |
1009 | \& open FH, '>', $ref; | |
1010 | .Ve | |
1011 | .Sp | |
1012 | but your version of perl is compiled without perlio, and this form of | |
1013 | open is not supported. | |
1014 | .IP "Can't open bidirectional pipe" 4 | |
1015 | .IX Item "Can't open bidirectional pipe" | |
1016 | (W pipe) You tried to say \f(CW\*(C`open(CMD, "|cmd|")\*(C'\fR, which is not supported. | |
1017 | You can try any of several modules in the Perl library to do this, such | |
1018 | as IPC::Open2. Alternately, direct the pipe's output to a file using | |
1019 | \&\*(L">\*(R", and then read it in under a different file handle. | |
1020 | .ie n .IP "Can't open error file %s as stderr" 4 | |
1021 | .el .IP "Can't open error file \f(CW%s\fR as stderr" 4 | |
1022 | .IX Item "Can't open error file %s as stderr" | |
1023 | (F) An error peculiar to \s-1VMS\s0. Perl does its own command line | |
1024 | redirection, and couldn't open the file specified after '2>' or '2>>' on | |
1025 | the command line for writing. | |
1026 | .ie n .IP "Can't open input file %s as stdin" 4 | |
1027 | .el .IP "Can't open input file \f(CW%s\fR as stdin" 4 | |
1028 | .IX Item "Can't open input file %s as stdin" | |
1029 | (F) An error peculiar to \s-1VMS\s0. Perl does its own command line | |
1030 | redirection, and couldn't open the file specified after '<' on the | |
1031 | command line for reading. | |
1032 | .ie n .IP "Can't open output file %s as stdout" 4 | |
1033 | .el .IP "Can't open output file \f(CW%s\fR as stdout" 4 | |
1034 | .IX Item "Can't open output file %s as stdout" | |
1035 | (F) An error peculiar to \s-1VMS\s0. Perl does its own command line | |
1036 | redirection, and couldn't open the file specified after '>' or '>>' on | |
1037 | the command line for writing. | |
1038 | .ie n .IP "Can't open output pipe (name: %s)" 4 | |
1039 | .el .IP "Can't open output pipe (name: \f(CW%s\fR)" 4 | |
1040 | .IX Item "Can't open output pipe (name: %s)" | |
1041 | (P) An error peculiar to \s-1VMS\s0. Perl does its own command line | |
1042 | redirection, and couldn't open the pipe into which to send data destined | |
1043 | for stdout. | |
1044 | .IP "Can't open perl script%s" 4 | |
1045 | .IX Item "Can't open perl script%s" | |
1046 | (F) The script you specified can't be opened for the indicated reason. | |
1047 | .Sp | |
1048 | If you're debugging a script that uses #!, and normally relies on the | |
1049 | shell's \f(CW$PATH\fR search, the \-S option causes perl to do that search, so | |
1050 | you don't have to type the path or \f(CW`which $scriptname`\fR. | |
1051 | .IP "Can't read \s-1CRTL\s0 environ" 4 | |
1052 | .IX Item "Can't read CRTL environ" | |
1053 | (S) A warning peculiar to \s-1VMS\s0. Perl tried to read an element of \f(CW%ENV\fR | |
1054 | from the \s-1CRTL\s0's internal environment array and discovered the array was | |
1055 | missing. You need to figure out where your \s-1CRTL\s0 misplaced its environ | |
1056 | or define \fI\s-1PERL_ENV_TABLES\s0\fR (see perlvms) so that environ is not | |
1057 | searched. | |
1058 | .ie n .IP "Can't redefine active sort subroutine %s" 4 | |
1059 | .el .IP "Can't redefine active sort subroutine \f(CW%s\fR" 4 | |
1060 | .IX Item "Can't redefine active sort subroutine %s" | |
1061 | (F) Perl optimizes the internal handling of sort subroutines and keeps | |
1062 | pointers into them. You tried to redefine one such sort subroutine when | |
1063 | it was currently active, which is not allowed. If you really want to do | |
1064 | this, you should write \f(CW\*(C`sort { &func } @x\*(C'\fR instead of \f(CW\*(C`sort func @x\*(C'\fR. | |
1065 | .ie n .IP "Can't ""redo"" outside a loop block" 4 | |
1066 | .el .IP "Can't ``redo'' outside a loop block" 4 | |
1067 | .IX Item "Can't redo outside a loop block" | |
1068 | (F) A \*(L"redo\*(R" statement was executed to restart the current block, but | |
1069 | there isn't a current block. Note that an \*(L"if\*(R" or \*(L"else\*(R" block doesn't | |
1070 | count as a \*(L"loopish\*(R" block, as doesn't a block given to \fIsort()\fR, \fImap()\fR | |
1071 | or \fIgrep()\fR. You can usually double the curlies to get the same effect | |
1072 | though, because the inner curlies will be considered a block that | |
1073 | loops once. See \*(L"redo\*(R" in perlfunc. | |
1074 | .ie n .IP "Can't remove %s:\fR \f(CW%s, skipping file" 4 | |
1075 | .el .IP "Can't remove \f(CW%s:\fR \f(CW%s\fR, skipping file" 4 | |
1076 | .IX Item "Can't remove %s: %s, skipping file" | |
1077 | (S inplace) You requested an inplace edit without creating a backup | |
1078 | file. Perl was unable to remove the original file to replace it with | |
1079 | the modified file. The file was left unmodified. | |
1080 | .ie n .IP "Can't rename %s\fR to \f(CW%s:\fR \f(CW%s, skipping file" 4 | |
1081 | .el .IP "Can't rename \f(CW%s\fR to \f(CW%s:\fR \f(CW%s\fR, skipping file" 4 | |
1082 | .IX Item "Can't rename %s to %s: %s, skipping file" | |
1083 | (S inplace) The rename done by the \fB\-i\fR switch failed for some reason, | |
1084 | probably because you don't have write permission to the directory. | |
1085 | .ie n .IP "Can't reopen input pipe (name: %s) in binary mode" 4 | |
1086 | .el .IP "Can't reopen input pipe (name: \f(CW%s\fR) in binary mode" 4 | |
1087 | .IX Item "Can't reopen input pipe (name: %s) in binary mode" | |
1088 | (P) An error peculiar to \s-1VMS\s0. Perl thought stdin was a pipe, and tried | |
1089 | to reopen it to accept binary data. Alas, it failed. | |
1090 | .IP "Can't resolve method `%s' overloading `%s' in package `%s'" 4 | |
1091 | .IX Item "Can't resolve method `%s' overloading `%s' in package `%s'" | |
1092 | (F|P) Error resolving overloading specified by a method name (as opposed | |
1093 | to a subroutine reference): no such method callable via the package. If | |
1094 | method name is \f(CW\*(C`???\*(C'\fR, this is an internal error. | |
1095 | .IP "Can't reswap uid and euid" 4 | |
1096 | .IX Item "Can't reswap uid and euid" | |
1097 | (P) The \fIsetreuid()\fR call failed for some reason in the setuid emulator of | |
1098 | suidperl. | |
1099 | .ie n .IP "Can't return %s from lvalue subroutine" 4 | |
1100 | .el .IP "Can't return \f(CW%s\fR from lvalue subroutine" 4 | |
1101 | .IX Item "Can't return %s from lvalue subroutine" | |
1102 | (F) Perl detected an attempt to return illegal lvalues (such as | |
1103 | temporary or readonly values) from a subroutine used as an lvalue. This | |
1104 | is not allowed. | |
1105 | .IP "Can't return outside a subroutine" 4 | |
1106 | .IX Item "Can't return outside a subroutine" | |
1107 | (F) The return statement was executed in mainline code, that is, where | |
1108 | there was no subroutine call to return out of. See perlsub. | |
1109 | .ie n .IP "Can't return %s to lvalue scalar context" 4 | |
1110 | .el .IP "Can't return \f(CW%s\fR to lvalue scalar context" 4 | |
1111 | .IX Item "Can't return %s to lvalue scalar context" | |
1112 | (F) You tried to return a complete array or hash from an lvalue subroutine, | |
1113 | but you called the subroutine in a way that made Perl think you meant | |
1114 | to return only one value. You probably meant to write parentheses around | |
1115 | the call to the subroutine, which tell Perl that the call should be in | |
1116 | list context. | |
1117 | .ie n .IP "Can't stat script ""%s""" 4 | |
1118 | .el .IP "Can't stat script ``%s''" 4 | |
1119 | .IX Item "Can't stat script %s" | |
1120 | (P) For some reason you can't \fIfstat()\fR the script even though you have it | |
1121 | open already. Bizarre. | |
1122 | .IP "Can't swap uid and euid" 4 | |
1123 | .IX Item "Can't swap uid and euid" | |
1124 | (P) The \fIsetreuid()\fR call failed for some reason in the setuid emulator of | |
1125 | suidperl. | |
1126 | .ie n .IP "Can't take log of %g" 4 | |
1127 | .el .IP "Can't take log of \f(CW%g\fR" 4 | |
1128 | .IX Item "Can't take log of %g" | |
1129 | (F) For ordinary real numbers, you can't take the logarithm of a | |
1130 | negative number or zero. There's a Math::Complex package that comes | |
1131 | standard with Perl, though, if you really want to do that for the | |
1132 | negative numbers. | |
1133 | .ie n .IP "Can't take sqrt of %g" 4 | |
1134 | .el .IP "Can't take sqrt of \f(CW%g\fR" 4 | |
1135 | .IX Item "Can't take sqrt of %g" | |
1136 | (F) For ordinary real numbers, you can't take the square root of a | |
1137 | negative number. There's a Math::Complex package that comes standard | |
1138 | with Perl, though, if you really want to do that. | |
1139 | .IP "Can't undef active subroutine" 4 | |
1140 | .IX Item "Can't undef active subroutine" | |
1141 | (F) You can't undefine a routine that's currently running. You can, | |
1142 | however, redefine it while it's running, and you can even undef the | |
1143 | redefined subroutine while the old routine is running. Go figure. | |
1144 | .IP "Can't unshift" 4 | |
1145 | .IX Item "Can't unshift" | |
1146 | (F) You tried to unshift an \*(L"unreal\*(R" array that can't be unshifted, such | |
1147 | as the main Perl stack. | |
1148 | .IP "Can't upgrade that kind of scalar" 4 | |
1149 | .IX Item "Can't upgrade that kind of scalar" | |
1150 | (P) The internal sv_upgrade routine adds \*(L"members\*(R" to an \s-1SV\s0, making it | |
1151 | into a more specialized kind of \s-1SV\s0. The top several \s-1SV\s0 types are so | |
1152 | specialized, however, that they cannot be interconverted. This message | |
1153 | indicates that such a conversion was attempted. | |
1154 | .IP "Can't upgrade to undef" 4 | |
1155 | .IX Item "Can't upgrade to undef" | |
1156 | (P) The undefined \s-1SV\s0 is the bottom of the totem pole, in the scheme of | |
1157 | upgradability. Upgrading to undef indicates an error in the code | |
1158 | calling sv_upgrade. | |
1159 | .IP "Can't use anonymous symbol table for method lookup" 4 | |
1160 | .IX Item "Can't use anonymous symbol table for method lookup" | |
1161 | (F) The internal routine that does method lookup was handed a symbol | |
1162 | table that doesn't have a name. Symbol tables can become anonymous | |
1163 | for example by undefining stashes: \f(CW\*(C`undef %Some::Package::\*(C'\fR. | |
1164 | .ie n .IP "Can't use an undefined value as %s reference" 4 | |
1165 | .el .IP "Can't use an undefined value as \f(CW%s\fR reference" 4 | |
1166 | .IX Item "Can't use an undefined value as %s reference" | |
1167 | (F) A value used as either a hard reference or a symbolic reference must | |
1168 | be a defined value. This helps to delurk some insidious errors. | |
1169 | .ie n .IP "Can't use bareword (""%s"") as %s ref while ""strict refs"" in use" 4 | |
1170 | .el .IP "Can't use bareword (``%s'') as \f(CW%s\fR ref while ``strict refs'' in use" 4 | |
1171 | .IX Item "Can't use bareword (%s) as %s ref while strict refs in use" | |
1172 | (F) Only hard references are allowed by \*(L"strict refs\*(R". Symbolic | |
1173 | references are disallowed. See perlref. | |
1174 | .IP "Can't use %! because Errno.pm is not available" 4 | |
1175 | .IX Item "Can't use %! because Errno.pm is not available" | |
1176 | (F) The first time the %! hash is used, perl automatically loads the | |
1177 | Errno.pm module. The Errno module is expected to tie the %! hash to | |
1178 | provide symbolic names for \f(CW$!\fR errno values. | |
1179 | .ie n .IP "Can't use %s for loop variable" 4 | |
1180 | .el .IP "Can't use \f(CW%s\fR for loop variable" 4 | |
1181 | .IX Item "Can't use %s for loop variable" | |
1182 | (F) Only a simple scalar variable may be used as a loop variable on a | |
1183 | foreach. | |
1184 | .ie n .IP "Can't use global %s in ""my""" 4 | |
1185 | .el .IP "Can't use global \f(CW%s\fR in ``my''" 4 | |
1186 | .IX Item "Can't use global %s in my" | |
1187 | (F) You tried to declare a magical variable as a lexical variable. This | |
1188 | is not allowed, because the magic can be tied to only one location | |
1189 | (namely the global variable) and it would be incredibly confusing to | |
1190 | have variables in your program that looked like magical variables but | |
1191 | weren't. | |
1192 | .ie n .IP "Can't use ""my %s"" in sort comparison" 4 | |
1193 | .el .IP "Can't use ``my \f(CW%s\fR'' in sort comparison" 4 | |
1194 | .IX Item "Can't use my %s in sort comparison" | |
1195 | (F) The global variables \f(CW$a\fR and \f(CW$b\fR are reserved for sort comparisons. | |
1196 | You mentioned \f(CW$a\fR or \f(CW$b\fR in the same line as the <=> or cmp operator, | |
1197 | and the variable had earlier been declared as a lexical variable. | |
1198 | Either qualify the sort variable with the package name, or rename the | |
1199 | lexical variable. | |
1200 | .ie n .IP "Can't use %s\fR ref as \f(CW%s ref" 4 | |
1201 | .el .IP "Can't use \f(CW%s\fR ref as \f(CW%s\fR ref" 4 | |
1202 | .IX Item "Can't use %s ref as %s ref" | |
1203 | (F) You've mixed up your reference types. You have to dereference a | |
1204 | reference of the type needed. You can use the \fIref()\fR function to | |
1205 | test the type of the reference, if need be. | |
1206 | .ie n .IP "Can't use string (""%s"") as %s ref while ""strict refs"" in use" 4 | |
1207 | .el .IP "Can't use string (``%s'') as \f(CW%s\fR ref while ``strict refs'' in use" 4 | |
1208 | .IX Item "Can't use string (%s) as %s ref while strict refs in use" | |
1209 | (F) Only hard references are allowed by \*(L"strict refs\*(R". Symbolic | |
1210 | references are disallowed. See perlref. | |
1211 | .ie n .IP "Can't use subscript on %s" 4 | |
1212 | .el .IP "Can't use subscript on \f(CW%s\fR" 4 | |
1213 | .IX Item "Can't use subscript on %s" | |
1214 | (F) The compiler tried to interpret a bracketed expression as a | |
1215 | subscript. But to the left of the brackets was an expression that | |
1216 | didn't look like a hash or array reference, or anything else subscriptable. | |
1217 | .IP "Can't use \e%c to mean $%c in expression" 4 | |
1218 | .IX Item "Can't use %c to mean $%c in expression" | |
1219 | (W syntax) In an ordinary expression, backslash is a unary operator that | |
1220 | creates a reference to its argument. The use of backslash to indicate a | |
1221 | backreference to a matched substring is valid only as part of a regular | |
1222 | expression pattern. Trying to do this in ordinary Perl code produces a | |
1223 | value that prints out looking like \s-1\fISCALAR\s0\fR\|(0xdecaf). Use the \f(CW$1\fR form | |
1224 | instead. | |
1225 | .IP "Can't weaken a nonreference" 4 | |
1226 | .IX Item "Can't weaken a nonreference" | |
1227 | (F) You attempted to weaken something that was not a reference. Only | |
1228 | references can be weakened. | |
1229 | .IP "Can't x= to read-only value" 4 | |
1230 | .IX Item "Can't x= to read-only value" | |
1231 | (F) You tried to repeat a constant value (often the undefined value) | |
1232 | with an assignment operator, which implies modifying the value itself. | |
1233 | Perhaps you need to copy the value to a temporary, and repeat that. | |
1234 | .ie n .IP "Character in ""C"" format wrapped in pack" 4 | |
1235 | .el .IP "Character in ``C'' format wrapped in pack" 4 | |
1236 | .IX Item "Character in C format wrapped in pack" | |
1237 | (W pack) You said | |
1238 | .Sp | |
1239 | .Vb 1 | |
1240 | \& pack("C", $x) | |
1241 | .Ve | |
1242 | .Sp | |
1243 | where \f(CW$x\fR is either less than 0 or more than 255; the \f(CW"C"\fR format is | |
1244 | only for encoding native operating system characters (\s-1ASCII\s0, \s-1EBCDIC\s0, | |
1245 | and so on) and not for Unicode characters, so Perl behaved as if you meant | |
1246 | .Sp | |
1247 | .Vb 1 | |
1248 | \& pack("C", $x & 255) | |
1249 | .Ve | |
1250 | .Sp | |
1251 | If you actually want to pack Unicode codepoints, use the \f(CW"U"\fR format | |
1252 | instead. | |
1253 | .ie n .IP "Character in ""c"" format wrapped in pack" 4 | |
1254 | .el .IP "Character in ``c'' format wrapped in pack" 4 | |
1255 | .IX Item "Character in c format wrapped in pack" | |
1256 | (W pack) You said | |
1257 | .Sp | |
1258 | .Vb 1 | |
1259 | \& pack("c", $x) | |
1260 | .Ve | |
1261 | .Sp | |
1262 | where \f(CW$x\fR is either less than \-128 or more than 127; the \f(CW"c"\fR format | |
1263 | is only for encoding native operating system characters (\s-1ASCII\s0, \s-1EBCDIC\s0, | |
1264 | and so on) and not for Unicode characters, so Perl behaved as if you meant | |
1265 | .Sp | |
1266 | .Vb 1 | |
1267 | \& pack("c", $x & 255); | |
1268 | .Ve | |
1269 | .Sp | |
1270 | If you actually want to pack Unicode codepoints, use the \f(CW"U"\fR format | |
1271 | instead. | |
1272 | .ie n .IP "\fIclose()\fR on unopened filehandle %s" 4 | |
1273 | .el .IP "\fIclose()\fR on unopened filehandle \f(CW%s\fR" 4 | |
1274 | .IX Item "close() on unopened filehandle %s" | |
1275 | (W unopened) You tried to close a filehandle that was never opened. | |
1276 | .IP "Code missing after '/'" 4 | |
1277 | .IX Item "Code missing after '/'" | |
1278 | (F) You had a (sub\-)template that ends with a '/'. There must be another | |
1279 | template code following the slash. See \*(L"pack\*(R" in perlfunc. | |
1280 | .IP "%s: Command not found" 4 | |
1281 | .IX Item "%s: Command not found" | |
1282 | (A) You've accidentally run your script through \fBcsh\fR instead of Perl. | |
1283 | Check the #! line, or manually feed your script into Perl yourself. | |
1284 | .IP "Compilation failed in require" 4 | |
1285 | .IX Item "Compilation failed in require" | |
1286 | (F) Perl could not compile a file specified in a \f(CW\*(C`require\*(C'\fR statement. | |
1287 | Perl uses this generic message when none of the errors that it | |
1288 | encountered were severe enough to halt compilation immediately. | |
1289 | .IP "Complex regular subexpression recursion limit (%d) exceeded" 4 | |
1290 | .IX Item "Complex regular subexpression recursion limit (%d) exceeded" | |
1291 | (W regexp) The regular expression engine uses recursion in complex | |
1292 | situations where back-tracking is required. Recursion depth is limited | |
1293 | to 32766, or perhaps less in architectures where the stack cannot grow | |
1294 | arbitrarily. (\*(L"Simple\*(R" and \*(L"medium\*(R" situations are handled without | |
1295 | recursion and are not subject to a limit.) Try shortening the string | |
1296 | under examination; looping in Perl code (e.g. with \f(CW\*(C`while\*(C'\fR) rather than | |
1297 | in the regular expression engine; or rewriting the regular expression so | |
1298 | that it is simpler or backtracks less. (See perlfaq2 for information | |
1299 | on \fIMastering Regular Expressions\fR.) | |
1300 | .IP "\fIcond_broadcast()\fR called on unlocked variable" 4 | |
1301 | .IX Item "cond_broadcast() called on unlocked variable" | |
1302 | (W threads) Within a thread-enabled program, you tried to call | |
1303 | \&\fIcond_broadcast()\fR on a variable which wasn't locked. The \fIcond_broadcast()\fR | |
1304 | function is used to wake up another thread that is waiting in a | |
1305 | \&\fIcond_wait()\fR. To ensure that the signal isn't sent before the other thread | |
1306 | has a chance to enter the wait, it is usual for the signaling thread to | |
1307 | first wait for a lock on variable. This lock attempt will only succeed | |
1308 | after the other thread has entered \fIcond_wait()\fR and thus relinquished the | |
1309 | lock. | |
1310 | .IP "\fIcond_signal()\fR called on unlocked variable" 4 | |
1311 | .IX Item "cond_signal() called on unlocked variable" | |
1312 | (W threads) Within a thread-enabled program, you tried to call | |
1313 | \&\fIcond_signal()\fR on a variable which wasn't locked. The \fIcond_signal()\fR | |
1314 | function is used to wake up another thread that is waiting in a | |
1315 | \&\fIcond_wait()\fR. To ensure that the signal isn't sent before the other thread | |
1316 | has a chance to enter the wait, it is usual for the signaling thread to | |
1317 | first wait for a lock on variable. This lock attempt will only succeed | |
1318 | after the other thread has entered \fIcond_wait()\fR and thus relinquished the | |
1319 | lock. | |
1320 | .ie n .IP "\fIconnect()\fR on closed socket %s" 4 | |
1321 | .el .IP "\fIconnect()\fR on closed socket \f(CW%s\fR" 4 | |
1322 | .IX Item "connect() on closed socket %s" | |
1323 | (W closed) You tried to do a connect on a closed socket. Did you forget | |
1324 | to check the return value of your \fIsocket()\fR call? See | |
1325 | \&\*(L"connect\*(R" in perlfunc. | |
1326 | .ie n .IP "Constant(%s)%s: %s" 4 | |
1327 | .el .IP "Constant(%s)%s: \f(CW%s\fR" 4 | |
1328 | .IX Item "Constant(%s)%s: %s" | |
1329 | (F) The parser found inconsistencies either while attempting to define | |
1330 | an overloaded constant, or when trying to find the character name | |
1331 | specified in the \f(CW\*(C`\eN{...}\*(C'\fR escape. Perhaps you forgot to load the | |
1332 | corresponding \f(CW\*(C`overload\*(C'\fR or \f(CW\*(C`charnames\*(C'\fR pragma? See charnames and | |
1333 | overload. | |
1334 | .ie n .IP "Constant is not %s reference" 4 | |
1335 | .el .IP "Constant is not \f(CW%s\fR reference" 4 | |
1336 | .IX Item "Constant is not %s reference" | |
1337 | (F) A constant value (perhaps declared using the \f(CW\*(C`use constant\*(C'\fR pragma) | |
1338 | is being dereferenced, but it amounts to the wrong type of reference. | |
1339 | The message indicates the type of reference that was expected. This | |
1340 | usually indicates a syntax error in dereferencing the constant value. | |
1341 | See \*(L"Constant Functions\*(R" in perlsub and constant. | |
1342 | .ie n .IP "Constant subroutine %s redefined" 4 | |
1343 | .el .IP "Constant subroutine \f(CW%s\fR redefined" 4 | |
1344 | .IX Item "Constant subroutine %s redefined" | |
1345 | (S) You redefined a subroutine which had previously been | |
1346 | eligible for inlining. See \*(L"Constant Functions\*(R" in perlsub for | |
1347 | commentary and workarounds. | |
1348 | .ie n .IP "Constant subroutine %s undefined" 4 | |
1349 | .el .IP "Constant subroutine \f(CW%s\fR undefined" 4 | |
1350 | .IX Item "Constant subroutine %s undefined" | |
1351 | (W misc) You undefined a subroutine which had previously been eligible | |
1352 | for inlining. See \*(L"Constant Functions\*(R" in perlsub for commentary and | |
1353 | workarounds. | |
1354 | .IP "Copy method did not return a reference" 4 | |
1355 | .IX Item "Copy method did not return a reference" | |
1356 | (F) The method which overloads \*(L"=\*(R" is buggy. See | |
1357 | \&\*(L"Copy Constructor\*(R" in overload. | |
1358 | .IP "CORE::%s is not a keyword" 4 | |
1359 | .IX Item "CORE::%s is not a keyword" | |
1360 | (F) The \s-1CORE::\s0 namespace is reserved for Perl keywords. | |
1361 | .IP "corrupted regexp pointers" 4 | |
1362 | .IX Item "corrupted regexp pointers" | |
1363 | (P) The regular expression engine got confused by what the regular | |
1364 | expression compiler gave it. | |
1365 | .IP "corrupted regexp program" 4 | |
1366 | .IX Item "corrupted regexp program" | |
1367 | (P) The regular expression engine got passed a regexp program without a | |
1368 | valid magic number. | |
1369 | .IP "Corrupt malloc ptr 0x%lx at 0x%lx" 4 | |
1370 | .IX Item "Corrupt malloc ptr 0x%lx at 0x%lx" | |
1371 | (P) The malloc package that comes with Perl had an internal failure. | |
1372 | .IP "Count after length/code in unpack" 4 | |
1373 | .IX Item "Count after length/code in unpack" | |
1374 | (F) You had an unpack template indicating a counted-length string, but | |
1375 | you have also specified an explicit size for the string. See | |
1376 | \&\*(L"pack\*(R" in perlfunc. | |
1377 | .ie n .IP "Deep recursion on subroutine ""%s""" 4 | |
1378 | .el .IP "Deep recursion on subroutine ``%s''" 4 | |
1379 | .IX Item "Deep recursion on subroutine %s" | |
1380 | (W recursion) This subroutine has called itself (directly or indirectly) | |
1381 | 100 times more than it has returned. This probably indicates an | |
1382 | infinite recursion, unless you're writing strange benchmark programs, in | |
1383 | which case it indicates something else. | |
1384 | .IP "defined(@array) is deprecated" 4 | |
1385 | .IX Item "defined(@array) is deprecated" | |
1386 | (D deprecated) \fIdefined()\fR is not usually useful on arrays because it | |
1387 | checks for an undefined \fIscalar\fR value. If you want to see if the | |
1388 | array is empty, just use \f(CW\*(C`if (@array) { # not empty }\*(C'\fR for example. | |
1389 | .IP "defined(%hash) is deprecated" 4 | |
1390 | .IX Item "defined(%hash) is deprecated" | |
1391 | (D deprecated) \fIdefined()\fR is not usually useful on hashes because it | |
1392 | checks for an undefined \fIscalar\fR value. If you want to see if the hash | |
1393 | is empty, just use \f(CW\*(C`if (%hash) { # not empty }\*(C'\fR for example. | |
1394 | .IP "%s defines neither package nor VERSION\*(--version check failed" 4 | |
1395 | .IX Item "%s defines neither package nor VERSIONversion check failed" | |
1396 | (F) You said something like \*(L"use Module 42\*(R" but in the Module file | |
1397 | there are neither package declarations nor a \f(CW$VERSION\fR. | |
1398 | .IP "Delimiter for here document is too long" 4 | |
1399 | .IX Item "Delimiter for here document is too long" | |
1400 | (F) In a here document construct like \f(CW\*(C`<<FOO\*(C'\fR, the label \f(CW\*(C`FOO\*(C'\fR is too | |
1401 | long for Perl to handle. You have to be seriously twisted to write code | |
1402 | that triggers this error. | |
1403 | .IP "\s-1DESTROY\s0 created new reference to dead object '%s'" 4 | |
1404 | .IX Item "DESTROY created new reference to dead object '%s'" | |
1405 | (F) A \s-1\fIDESTROY\s0()\fR method created a new reference to the object which is | |
1406 | just being DESTROYed. Perl is confused, and prefers to abort rather than | |
1407 | to create a dangling reference. | |
1408 | .IP "Did not produce a valid header" 4 | |
1409 | .IX Item "Did not produce a valid header" | |
1410 | See Server error. | |
1411 | .IP "%s did not return a true value" 4 | |
1412 | .IX Item "%s did not return a true value" | |
1413 | (F) A required (or used) file must return a true value to indicate that | |
1414 | it compiled correctly and ran its initialization code correctly. It's | |
1415 | traditional to end such a file with a \*(L"1;\*(R", though any true value would | |
1416 | do. See \*(L"require\*(R" in perlfunc. | |
1417 | .IP "(Did you mean &%s instead?)" 4 | |
1418 | .IX Item "(Did you mean &%s instead?)" | |
1419 | (W) You probably referred to an imported subroutine &FOO as \f(CW$FOO\fR or some | |
1420 | such. | |
1421 | .ie n .IP "(Did you mean ""local"" instead of ""our""?)" 4 | |
1422 | .el .IP "(Did you mean ``local'' instead of ``our''?)" 4 | |
1423 | .IX Item "(Did you mean local instead of our?)" | |
1424 | (W misc) Remember that \*(L"our\*(R" does not localize the declared global | |
1425 | variable. You have declared it again in the same lexical scope, which | |
1426 | seems superfluous. | |
1427 | .IP "(Did you mean $ or @ instead of %?)" 4 | |
1428 | .IX Item "(Did you mean $ or @ instead of %?)" | |
1429 | (W) You probably said \f(CW%hash\fR{$key} when you meant \f(CW$hash\fR{$key} or | |
1430 | \&\f(CW@hash\fR{@keys}. On the other hand, maybe you just meant \f(CW%hash\fR and got | |
1431 | carried away. | |
1432 | .IP "Died" 4 | |
1433 | .IX Item "Died" | |
1434 | (F) You passed \fIdie()\fR an empty string (the equivalent of \f(CW\*(C`die ""\*(C'\fR) or | |
1435 | you called it with no args and both \f(CW$@\fR and \f(CW$_\fR were empty. | |
1436 | .IP "Document contains no data" 4 | |
1437 | .IX Item "Document contains no data" | |
1438 | See Server error. | |
1439 | .ie n .IP "%s does not define %s::VERSION\*(--version check failed" 4 | |
1440 | .el .IP "%s does not define \f(CW%s::VERSION\fR\*(--version check failed" 4 | |
1441 | .IX Item "%s does not define %s::VERSIONversion check failed" | |
1442 | (F) You said something like \*(L"use Module 42\*(R" but the Module did not | |
1443 | define a \f(CW\*(C`$VERSION.\*(C'\fR | |
1444 | .IP "'/' does not take a repeat count" 4 | |
1445 | .IX Item "'/' does not take a repeat count" | |
1446 | (F) You cannot put a repeat count of any kind right after the '/' code. | |
1447 | See \*(L"pack\*(R" in perlfunc. | |
1448 | .IP "Don't know how to handle magic of type '%s'" 4 | |
1449 | .IX Item "Don't know how to handle magic of type '%s'" | |
1450 | (P) The internal handling of magical variables has been cursed. | |
1451 | .IP "do_study: out of memory" 4 | |
1452 | .IX Item "do_study: out of memory" | |
1453 | (P) This should have been caught by \fIsafemalloc()\fR instead. | |
1454 | .ie n .IP "(Do you need to predeclare %s?)" 4 | |
1455 | .el .IP "(Do you need to predeclare \f(CW%s\fR?)" 4 | |
1456 | .IX Item "(Do you need to predeclare %s?)" | |
1457 | (S syntax) This is an educated guess made in conjunction with the message | |
1458 | \&\*(L"%s found where operator expected\*(R". It often means a subroutine or module | |
1459 | name is being referenced that hasn't been declared yet. This may be | |
1460 | because of ordering problems in your file, or because of a missing | |
1461 | \&\*(L"sub\*(R", \*(L"package\*(R", \*(L"require\*(R", or \*(L"use\*(R" statement. If you're referencing | |
1462 | something that isn't defined yet, you don't actually have to define the | |
1463 | subroutine or package before the current location. You can use an empty | |
1464 | \&\*(L"sub foo;\*(R" or \*(L"package \s-1FOO\s0;\*(R" to enter a \*(L"forward\*(R" declaration. | |
1465 | .IP "\fIdump()\fR better written as \fICORE::dump()\fR" 4 | |
1466 | .IX Item "dump() better written as CORE::dump()" | |
1467 | (W misc) You used the obsolescent \f(CW\*(C`dump()\*(C'\fR built-in function, without fully | |
1468 | qualifying it as \f(CW\*(C`CORE::dump()\*(C'\fR. Maybe it's a typo. See \*(L"dump\*(R" in perlfunc. | |
1469 | .IP "Duplicate \fIfree()\fR ignored" 4 | |
1470 | .IX Item "Duplicate free() ignored" | |
1471 | (S malloc) An internal routine called \fIfree()\fR on something that had | |
1472 | already been freed. | |
1473 | .ie n .IP "Duplicate modifier '%c' after '%c' in %s" 4 | |
1474 | .el .IP "Duplicate modifier '%c' after '%c' in \f(CW%s\fR" 4 | |
1475 | .IX Item "Duplicate modifier '%c' after '%c' in %s" | |
1476 | (W) You have applied the same modifier more than once after a type | |
1477 | in a pack template. See \*(L"pack\*(R" in perlfunc. | |
1478 | .IP "elseif should be elsif" 4 | |
1479 | .IX Item "elseif should be elsif" | |
1480 | (S syntax) There is no keyword \*(L"elseif\*(R" in Perl because Larry thinks it's | |
1481 | ugly. Your code will be interpreted as an attempt to call a method named | |
1482 | \&\*(L"elseif\*(R" for the class returned by the following block. This is | |
1483 | unlikely to be what you want. | |
1484 | .ie n .IP "Empty %s" 4 | |
1485 | .el .IP "Empty \f(CW%s\fR" 4 | |
1486 | .IX Item "Empty %s" | |
1487 | (F) \f(CW\*(C`\ep\*(C'\fR and \f(CW\*(C`\eP\*(C'\fR are used to introduce a named Unicode property, as | |
1488 | described in perlunicode and perlre. You used \f(CW\*(C`\ep\*(C'\fR or \f(CW\*(C`\eP\*(C'\fR in | |
1489 | a regular expression without specifying the property name. | |
1490 | .ie n .IP "entering effective %s failed" 4 | |
1491 | .el .IP "entering effective \f(CW%s\fR failed" 4 | |
1492 | .IX Item "entering effective %s failed" | |
1493 | (F) While under the \f(CW\*(C`use filetest\*(C'\fR pragma, switching the real and | |
1494 | effective uids or gids failed. | |
1495 | .ie n .IP "%ENV is aliased to %s" 4 | |
1496 | .el .IP "%ENV is aliased to \f(CW%s\fR" 4 | |
1497 | .IX Item "%ENV is aliased to %s" | |
1498 | (F) You're running under taint mode, and the \f(CW%ENV\fR variable has been | |
1499 | aliased to another hash, so it doesn't reflect anymore the state of the | |
1500 | program's environment. This is potentially insecure. | |
1501 | .ie n .IP "Error converting file specification %s" 4 | |
1502 | .el .IP "Error converting file specification \f(CW%s\fR" 4 | |
1503 | .IX Item "Error converting file specification %s" | |
1504 | (F) An error peculiar to \s-1VMS\s0. Because Perl may have to deal with file | |
1505 | specifications in either \s-1VMS\s0 or Unix syntax, it converts them to a | |
1506 | single form when it must operate on them directly. Either you've passed | |
1507 | an invalid file specification to Perl, or you've found a case the | |
1508 | conversion routines don't handle. Drat. | |
1509 | .IP "%s: Eval-group in insecure regular expression" 4 | |
1510 | .IX Item "%s: Eval-group in insecure regular expression" | |
1511 | (F) Perl detected tainted data when trying to compile a regular | |
1512 | expression that contains the \f(CW\*(C`(?{ ... })\*(C'\fR zero-width assertion, which | |
1513 | is unsafe. See \*(L"(?{ code })\*(R" in perlre, and perlsec. | |
1514 | .IP "%s: Eval-group not allowed at run time" 4 | |
1515 | .IX Item "%s: Eval-group not allowed at run time" | |
1516 | (F) Perl tried to compile a regular expression containing the | |
1517 | \&\f(CW\*(C`(?{ ... })\*(C'\fR zero-width assertion at run time, as it would when the | |
1518 | pattern contains interpolated values. Since that is a security risk, it | |
1519 | is not allowed. If you insist, you may still do this by explicitly | |
1520 | building the pattern from an interpolated string at run time and using | |
1521 | that in an \fIeval()\fR. See \*(L"(?{ code })\*(R" in perlre. | |
1522 | .IP "%s: Eval-group not allowed, use re 'eval'" 4 | |
1523 | .IX Item "%s: Eval-group not allowed, use re 'eval'" | |
1524 | (F) A regular expression contained the \f(CW\*(C`(?{ ... })\*(C'\fR zero-width | |
1525 | assertion, but that construct is only allowed when the \f(CW\*(C`use re 'eval'\*(C'\fR | |
1526 | pragma is in effect. See \*(L"(?{ code })\*(R" in perlre. | |
1527 | .IP "Excessively long <> operator" 4 | |
1528 | .IX Item "Excessively long <> operator" | |
1529 | (F) The contents of a <> operator may not exceed the maximum size of a | |
1530 | Perl identifier. If you're just trying to glob a long list of | |
1531 | filenames, try using the \fIglob()\fR operator, or put the filenames into a | |
1532 | variable and glob that. | |
1533 | .IP "exec? I'm not *that* kind of operating system" 4 | |
1534 | .IX Item "exec? I'm not *that* kind of operating system" | |
1535 | (F) The \f(CW\*(C`exec\*(C'\fR function is not implemented in MacPerl. See perlport. | |
1536 | .ie n .IP "Execution of %s aborted due to compilation errors" 4 | |
1537 | .el .IP "Execution of \f(CW%s\fR aborted due to compilation errors" 4 | |
1538 | .IX Item "Execution of %s aborted due to compilation errors" | |
1539 | (F) The final summary message when a Perl compilation fails. | |
1540 | .ie n .IP "Exiting eval via %s" 4 | |
1541 | .el .IP "Exiting eval via \f(CW%s\fR" 4 | |
1542 | .IX Item "Exiting eval via %s" | |
1543 | (W exiting) You are exiting an eval by unconventional means, such as a | |
1544 | goto, or a loop control statement. | |
1545 | .ie n .IP "Exiting format via %s" 4 | |
1546 | .el .IP "Exiting format via \f(CW%s\fR" 4 | |
1547 | .IX Item "Exiting format via %s" | |
1548 | (W exiting) You are exiting a format by unconventional means, such as a | |
1549 | goto, or a loop control statement. | |
1550 | .ie n .IP "Exiting pseudo-block via %s" 4 | |
1551 | .el .IP "Exiting pseudo-block via \f(CW%s\fR" 4 | |
1552 | .IX Item "Exiting pseudo-block via %s" | |
1553 | (W exiting) You are exiting a rather special block construct (like a | |
1554 | sort block or subroutine) by unconventional means, such as a goto, or a | |
1555 | loop control statement. See \*(L"sort\*(R" in perlfunc. | |
1556 | .ie n .IP "Exiting subroutine via %s" 4 | |
1557 | .el .IP "Exiting subroutine via \f(CW%s\fR" 4 | |
1558 | .IX Item "Exiting subroutine via %s" | |
1559 | (W exiting) You are exiting a subroutine by unconventional means, such | |
1560 | as a goto, or a loop control statement. | |
1561 | .ie n .IP "Exiting substitution via %s" 4 | |
1562 | .el .IP "Exiting substitution via \f(CW%s\fR" 4 | |
1563 | .IX Item "Exiting substitution via %s" | |
1564 | (W exiting) You are exiting a substitution by unconventional means, such | |
1565 | as a return, a goto, or a loop control statement. | |
1566 | .IP "Explicit blessing to '' (assuming package main)" 4 | |
1567 | .IX Item "Explicit blessing to '' (assuming package main)" | |
1568 | (W misc) You are blessing a reference to a zero length string. This has | |
1569 | the effect of blessing the reference into the package main. This is | |
1570 | usually not what you want. Consider providing a default target package, | |
1571 | e.g. bless($ref, \f(CW$p\fR || 'MyPackage'); | |
1572 | .IP "%s: Expression syntax" 4 | |
1573 | .IX Item "%s: Expression syntax" | |
1574 | (A) You've accidentally run your script through \fBcsh\fR instead of Perl. | |
1575 | Check the #! line, or manually feed your script into Perl yourself. | |
1576 | .IP "%s failed\*(--call queue aborted" 4 | |
1577 | .IX Item "%s failedcall queue aborted" | |
1578 | (F) An untrapped exception was raised while executing a \s-1CHECK\s0, \s-1INIT\s0, or | |
1579 | \&\s-1END\s0 subroutine. Processing of the remainder of the queue of such | |
1580 | routines has been prematurely ended. | |
1581 | .ie n .IP "False [] range ""%s"" in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
1582 | .el .IP "False [] range ``%s'' in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
1583 | .IX Item "False [] range %s in regex; marked by <-- HERE in m/%s/" | |
1584 | (W regexp) A character class range must start and end at a literal | |
1585 | character, not another character class like \f(CW\*(C`\ed\*(C'\fR or \f(CW\*(C`[:alpha:]\*(C'\fR. The \*(L"\-\*(R" | |
1586 | in your false range is interpreted as a literal \*(L"\-\*(R". Consider quoting the | |
1587 | \&\*(L"\-\*(R", \*(L"\e\-\*(R". The <\-\- \s-1HERE\s0 shows in the regular expression about where the | |
1588 | problem was discovered. See perlre. | |
1589 | .ie n .IP "Fatal \s-1VMS\s0 error at %s\fR, line \f(CW%d" 4 | |
1590 | .el .IP "Fatal \s-1VMS\s0 error at \f(CW%s\fR, line \f(CW%d\fR" 4 | |
1591 | .IX Item "Fatal VMS error at %s, line %d" | |
1592 | (P) An error peculiar to \s-1VMS\s0. Something untoward happened in a \s-1VMS\s0 | |
1593 | system service or \s-1RTL\s0 routine; Perl's exit status should provide more | |
1594 | details. The filename in \*(L"at \f(CW%s\fR\*(R" and the line number in \*(L"line \f(CW%d\fR\*(R" tell | |
1595 | you which section of the Perl source code is distressed. | |
1596 | .IP "fcntl is not implemented" 4 | |
1597 | .IX Item "fcntl is not implemented" | |
1598 | (F) Your machine apparently doesn't implement \fIfcntl()\fR. What is this, a | |
1599 | \&\s-1PDP\-11\s0 or something? | |
1600 | .ie n .IP "Filehandle %s opened only for input" 4 | |
1601 | .el .IP "Filehandle \f(CW%s\fR opened only for input" 4 | |
1602 | .IX Item "Filehandle %s opened only for input" | |
1603 | (W io) You tried to write on a read-only filehandle. If you intended | |
1604 | it to be a read-write filehandle, you needed to open it with \*(L"+<\*(R" or | |
1605 | \&\*(L"+>\*(R" or \*(L"+>>\*(R" instead of with \*(L"<\*(R" or nothing. If you intended only to | |
1606 | write the file, use \*(L">\*(R" or \*(L">>\*(R". See \*(L"open\*(R" in perlfunc. | |
1607 | .ie n .IP "Filehandle %s opened only for output" 4 | |
1608 | .el .IP "Filehandle \f(CW%s\fR opened only for output" 4 | |
1609 | .IX Item "Filehandle %s opened only for output" | |
1610 | (W io) You tried to read from a filehandle opened only for writing, If | |
1611 | you intended it to be a read/write filehandle, you needed to open it | |
1612 | with \*(L"+<\*(R" or \*(L"+>\*(R" or \*(L"+>>\*(R" instead of with \*(L"<\*(R" or nothing. If you | |
1613 | intended only to read from the file, use \*(L"<\*(R". See \*(L"open\*(R" in perlfunc. | |
1614 | Another possibility is that you attempted to open filedescriptor 0 | |
1615 | (also known as \s-1STDIN\s0) for output (maybe you closed \s-1STDIN\s0 earlier?). | |
1616 | .ie n .IP "Filehandle %s\fR reopened as \f(CW%s only for input" 4 | |
1617 | .el .IP "Filehandle \f(CW%s\fR reopened as \f(CW%s\fR only for input" 4 | |
1618 | .IX Item "Filehandle %s reopened as %s only for input" | |
1619 | (W io) You opened for reading a filehandle that got the same filehandle id | |
1620 | as \s-1STDOUT\s0 or \s-1STDERR\s0. This occurred because you closed \s-1STDOUT\s0 or \s-1STDERR\s0 | |
1621 | previously. | |
1622 | .ie n .IP "Filehandle \s-1STDIN\s0 reopened as %s only for output" 4 | |
1623 | .el .IP "Filehandle \s-1STDIN\s0 reopened as \f(CW%s\fR only for output" 4 | |
1624 | .IX Item "Filehandle STDIN reopened as %s only for output" | |
1625 | (W io) You opened for writing a filehandle that got the same filehandle id | |
1626 | as \s-1STDIN\s0. This occurred because you closed \s-1STDIN\s0 previously. | |
1627 | .ie n .IP "Final $ should be \e$ or $name" 4 | |
1628 | .el .IP "Final $ should be \e$ or \f(CW$name\fR" 4 | |
1629 | .IX Item "Final $ should be $ or $name" | |
1630 | (F) You must now decide whether the final $ in a string was meant to be | |
1631 | a literal dollar sign, or was meant to introduce a variable name that | |
1632 | happens to be missing. So you have to put either the backslash or the | |
1633 | name. | |
1634 | .ie n .IP "\fIflock()\fR on closed filehandle %s" 4 | |
1635 | .el .IP "\fIflock()\fR on closed filehandle \f(CW%s\fR" 4 | |
1636 | .IX Item "flock() on closed filehandle %s" | |
1637 | (W closed) The filehandle you're attempting to \fIflock()\fR got itself closed | |
1638 | some time before now. Check your control flow. \fIflock()\fR operates on | |
1639 | filehandles. Are you attempting to call \fIflock()\fR on a dirhandle by the | |
1640 | same name? | |
1641 | .IP "Format not terminated" 4 | |
1642 | .IX Item "Format not terminated" | |
1643 | (F) A format must be terminated by a line with a solitary dot. Perl got | |
1644 | to the end of your file without finding such a line. | |
1645 | .ie n .IP "Format %s redefined" 4 | |
1646 | .el .IP "Format \f(CW%s\fR redefined" 4 | |
1647 | .IX Item "Format %s redefined" | |
1648 | (W redefine) You redefined a format. To suppress this warning, say | |
1649 | .Sp | |
1650 | .Vb 4 | |
1651 | \& { | |
1652 | \& no warnings 'redefine'; | |
1653 | \& eval "format NAME =..."; | |
1654 | \& } | |
1655 | .Ve | |
1656 | .IP "Found = in conditional, should be ==" 4 | |
1657 | .IX Item "Found = in conditional, should be ==" | |
1658 | (W syntax) You said | |
1659 | .Sp | |
1660 | .Vb 1 | |
1661 | \& if ($foo = 123) | |
1662 | .Ve | |
1663 | .Sp | |
1664 | when you meant | |
1665 | .Sp | |
1666 | .Vb 1 | |
1667 | \& if ($foo == 123) | |
1668 | .Ve | |
1669 | .Sp | |
1670 | (or something like that). | |
1671 | .IP "%s found where operator expected" 4 | |
1672 | .IX Item "%s found where operator expected" | |
1673 | (S syntax) The Perl lexer knows whether to expect a term or an operator. | |
1674 | If it sees what it knows to be a term when it was expecting to see an | |
1675 | operator, it gives you this warning. Usually it indicates that an | |
1676 | operator or delimiter was omitted, such as a semicolon. | |
1677 | .ie n .IP "gdbm store returned %d\fR, errno \f(CW%d, key ""%s""" 4 | |
1678 | .el .IP "gdbm store returned \f(CW%d\fR, errno \f(CW%d\fR, key ``%s''" 4 | |
1679 | .IX Item "gdbm store returned %d, errno %d, key %s" | |
1680 | (S) A warning from the GDBM_File extension that a store failed. | |
1681 | .IP "gethostent not implemented" 4 | |
1682 | .IX Item "gethostent not implemented" | |
1683 | (F) Your C library apparently doesn't implement \fIgethostent()\fR, probably | |
1684 | because if it did, it'd feel morally obligated to return every hostname | |
1685 | on the Internet. | |
1686 | .ie n .IP "get%\fIsname()\fR on closed socket %s" 4 | |
1687 | .el .IP "get%\fIsname()\fR on closed socket \f(CW%s\fR" 4 | |
1688 | .IX Item "get%sname() on closed socket %s" | |
1689 | (W closed) You tried to get a socket or peer socket name on a closed | |
1690 | socket. Did you forget to check the return value of your \fIsocket()\fR call? | |
1691 | .ie n .IP "getpwnam returned invalid \s-1UIC\s0 %#o for user ""%s""" 4 | |
1692 | .el .IP "getpwnam returned invalid \s-1UIC\s0 %#o for user ``%s''" 4 | |
1693 | .IX Item "getpwnam returned invalid UIC %#o for user %s" | |
1694 | (S) A warning peculiar to \s-1VMS\s0. The call to \f(CW\*(C`sys$getuai\*(C'\fR underlying the | |
1695 | \&\f(CW\*(C`getpwnam\*(C'\fR operator returned an invalid \s-1UIC\s0. | |
1696 | .ie n .IP "\fIgetsockopt()\fR on closed socket %s" 4 | |
1697 | .el .IP "\fIgetsockopt()\fR on closed socket \f(CW%s\fR" 4 | |
1698 | .IX Item "getsockopt() on closed socket %s" | |
1699 | (W closed) You tried to get a socket option on a closed socket. Did you | |
1700 | forget to check the return value of your \fIsocket()\fR call? See | |
1701 | \&\*(L"getsockopt\*(R" in perlfunc. | |
1702 | .ie n .IP "Global symbol ""%s"" requires explicit package name" 4 | |
1703 | .el .IP "Global symbol ``%s'' requires explicit package name" 4 | |
1704 | .IX Item "Global symbol %s requires explicit package name" | |
1705 | (F) You've said \*(L"use strict vars\*(R", which indicates that all variables | |
1706 | must either be lexically scoped (using \*(L"my\*(R"), declared beforehand using | |
1707 | \&\*(L"our\*(R", or explicitly qualified to say which package the global variable | |
1708 | is in (using \*(L"::\*(R"). | |
1709 | .IP "glob failed (%s)" 4 | |
1710 | .IX Item "glob failed (%s)" | |
1711 | (W glob) Something went wrong with the external program(s) used for | |
1712 | \&\f(CW\*(C`glob\*(C'\fR and \f(CW\*(C`<*.c>\*(C'\fR. Usually, this means that you supplied a | |
1713 | \&\f(CW\*(C`glob\*(C'\fR pattern that caused the external program to fail and exit with a | |
1714 | nonzero status. If the message indicates that the abnormal exit | |
1715 | resulted in a coredump, this may also mean that your csh (C shell) is | |
1716 | broken. If so, you should change all of the csh-related variables in | |
1717 | config.sh: If you have tcsh, make the variables refer to it as if it | |
1718 | were csh (e.g. \f(CW\*(C`full_csh='/usr/bin/tcsh'\*(C'\fR); otherwise, make them all | |
1719 | empty (except that \f(CW\*(C`d_csh\*(C'\fR should be \f(CW'undef'\fR) so that Perl will | |
1720 | think csh is missing. In either case, after editing config.sh, run | |
1721 | \&\f(CW\*(C`./Configure \-S\*(C'\fR and rebuild Perl. | |
1722 | .IP "Glob not terminated" 4 | |
1723 | .IX Item "Glob not terminated" | |
1724 | (F) The lexer saw a left angle bracket in a place where it was expecting | |
1725 | a term, so it's looking for the corresponding right angle bracket, and | |
1726 | not finding it. Chances are you left some needed parentheses out | |
1727 | earlier in the line, and you really meant a \*(L"less than\*(R". | |
1728 | .IP "Got an error from DosAllocMem" 4 | |
1729 | .IX Item "Got an error from DosAllocMem" | |
1730 | (P) An error peculiar to \s-1OS/2\s0. Most probably you're using an obsolete | |
1731 | version of Perl, and this should not happen anyway. | |
1732 | .IP "goto must have label" 4 | |
1733 | .IX Item "goto must have label" | |
1734 | (F) Unlike with \*(L"next\*(R" or \*(L"last\*(R", you're not allowed to goto an | |
1735 | unspecified destination. See \*(L"goto\*(R" in perlfunc. | |
1736 | .IP "()\-group starts with a count" 4 | |
1737 | .IX Item "()-group starts with a count" | |
1738 | (F) A ()\-group started with a count. A count is | |
1739 | supposed to follow something: a template character or a ()\-group. | |
1740 | See \*(L"pack\*(R" in perlfunc. | |
1741 | .IP "%s had compilation errors" 4 | |
1742 | .IX Item "%s had compilation errors" | |
1743 | (F) The final summary message when a \f(CW\*(C`perl \-c\*(C'\fR fails. | |
1744 | .ie n .IP "Had to create %s unexpectedly" 4 | |
1745 | .el .IP "Had to create \f(CW%s\fR unexpectedly" 4 | |
1746 | .IX Item "Had to create %s unexpectedly" | |
1747 | (S internal) A routine asked for a symbol from a symbol table that ought | |
1748 | to have existed already, but for some reason it didn't, and had to be | |
1749 | created on an emergency basis to prevent a core dump. | |
1750 | .ie n .IP "Hash %%s missing the % in argument %d of %s()" 4 | |
1751 | .el .IP "Hash %%s missing the % in argument \f(CW%d\fR of %s()" 4 | |
1752 | .IX Item "Hash %%s missing the % in argument %d of %s()" | |
1753 | (D deprecated) Really old Perl let you omit the % on hash names in some | |
1754 | spots. This is now heavily deprecated. | |
1755 | .IP "%s has too many errors" 4 | |
1756 | .IX Item "%s has too many errors" | |
1757 | (F) The parser has given up trying to parse the program after 10 errors. | |
1758 | Further error messages would likely be uninformative. | |
1759 | .IP "Hexadecimal number > 0xffffffff non-portable" 4 | |
1760 | .IX Item "Hexadecimal number > 0xffffffff non-portable" | |
1761 | (W portable) The hexadecimal number you specified is larger than 2**32\-1 | |
1762 | (4294967295) and therefore non-portable between systems. See | |
1763 | perlport for more on portability concerns. | |
1764 | .IP "Identifier too long" 4 | |
1765 | .IX Item "Identifier too long" | |
1766 | (F) Perl limits identifiers (names for variables, functions, etc.) to | |
1767 | about 250 characters for simple names, and somewhat more for compound | |
1768 | names (like \f(CW$A::B\fR). You've exceeded Perl's limits. Future versions | |
1769 | of Perl are likely to eliminate these arbitrary limitations. | |
1770 | .ie n .IP "Illegal binary digit %s" 4 | |
1771 | .el .IP "Illegal binary digit \f(CW%s\fR" 4 | |
1772 | .IX Item "Illegal binary digit %s" | |
1773 | (F) You used a digit other than 0 or 1 in a binary number. | |
1774 | .ie n .IP "Illegal binary digit %s ignored" 4 | |
1775 | .el .IP "Illegal binary digit \f(CW%s\fR ignored" 4 | |
1776 | .IX Item "Illegal binary digit %s ignored" | |
1777 | (W digit) You may have tried to use a digit other than 0 or 1 in a | |
1778 | binary number. Interpretation of the binary number stopped before the | |
1779 | offending digit. | |
1780 | .ie n .IP "Illegal character %s (carriage return)" 4 | |
1781 | .el .IP "Illegal character \f(CW%s\fR (carriage return)" 4 | |
1782 | .IX Item "Illegal character %s (carriage return)" | |
1783 | (F) Perl normally treats carriage returns in the program text as it | |
1784 | would any other whitespace, which means you should never see this error | |
1785 | when Perl was built using standard options. For some reason, your | |
1786 | version of Perl appears to have been built without this support. Talk | |
1787 | to your Perl administrator. | |
1788 | .ie n .IP "Illegal character in prototype for %s\fR : \f(CW%s" 4 | |
1789 | .el .IP "Illegal character in prototype for \f(CW%s\fR : \f(CW%s\fR" 4 | |
1790 | .IX Item "Illegal character in prototype for %s : %s" | |
1791 | (W syntax) An illegal character was found in a prototype declaration. Legal | |
1792 | characters in prototypes are $, @, %, *, ;, [, ], &, and \e. | |
1793 | .IP "Illegal declaration of anonymous subroutine" 4 | |
1794 | .IX Item "Illegal declaration of anonymous subroutine" | |
1795 | (F) When using the \f(CW\*(C`sub\*(C'\fR keyword to construct an anonymous subroutine, | |
1796 | you must always specify a block of code. See perlsub. | |
1797 | .ie n .IP "Illegal declaration of subroutine %s" 4 | |
1798 | .el .IP "Illegal declaration of subroutine \f(CW%s\fR" 4 | |
1799 | .IX Item "Illegal declaration of subroutine %s" | |
1800 | (F) A subroutine was not declared correctly. See perlsub. | |
1801 | .IP "Illegal division by zero" 4 | |
1802 | .IX Item "Illegal division by zero" | |
1803 | (F) You tried to divide a number by 0. Either something was wrong in | |
1804 | your logic, or you need to put a conditional in to guard against | |
1805 | meaningless input. | |
1806 | .ie n .IP "Illegal hexadecimal digit %s ignored" 4 | |
1807 | .el .IP "Illegal hexadecimal digit \f(CW%s\fR ignored" 4 | |
1808 | .IX Item "Illegal hexadecimal digit %s ignored" | |
1809 | (W digit) You may have tried to use a character other than 0 \- 9 or | |
1810 | A \- F, a \- f in a hexadecimal number. Interpretation of the hexadecimal | |
1811 | number stopped before the illegal character. | |
1812 | .IP "Illegal modulus zero" 4 | |
1813 | .IX Item "Illegal modulus zero" | |
1814 | (F) You tried to divide a number by 0 to get the remainder. Most | |
1815 | numbers don't take to this kindly. | |
1816 | .IP "Illegal number of bits in vec" 4 | |
1817 | .IX Item "Illegal number of bits in vec" | |
1818 | (F) The number of bits in \fIvec()\fR (the third argument) must be a power of | |
1819 | two from 1 to 32 (or 64, if your platform supports that). | |
1820 | .ie n .IP "Illegal octal digit %s" 4 | |
1821 | .el .IP "Illegal octal digit \f(CW%s\fR" 4 | |
1822 | .IX Item "Illegal octal digit %s" | |
1823 | (F) You used an 8 or 9 in an octal number. | |
1824 | .ie n .IP "Illegal octal digit %s ignored" 4 | |
1825 | .el .IP "Illegal octal digit \f(CW%s\fR ignored" 4 | |
1826 | .IX Item "Illegal octal digit %s ignored" | |
1827 | (W digit) You may have tried to use an 8 or 9 in an octal number. | |
1828 | Interpretation of the octal number stopped before the 8 or 9. | |
1829 | .ie n .IP "Illegal switch in \s-1PERL5OPT:\s0 %s" 4 | |
1830 | .el .IP "Illegal switch in \s-1PERL5OPT:\s0 \f(CW%s\fR" 4 | |
1831 | .IX Item "Illegal switch in PERL5OPT: %s" | |
1832 | (X) The \s-1PERL5OPT\s0 environment variable may only be used to set the | |
1833 | following switches: \fB\-[DIMUdmtw]\fR. | |
1834 | .ie n .IP "Ill-formed \s-1CRTL\s0 environ value ""%s""" 4 | |
1835 | .el .IP "Ill-formed \s-1CRTL\s0 environ value ``%s''" 4 | |
1836 | .IX Item "Ill-formed CRTL environ value %s" | |
1837 | (W internal) A warning peculiar to \s-1VMS\s0. Perl tried to read the \s-1CRTL\s0's | |
1838 | internal environ array, and encountered an element without the \f(CW\*(C`=\*(C'\fR | |
1839 | delimiter used to separate keys from values. The element is ignored. | |
1840 | .IP "Ill-formed message in prime_env_iter: |%s|" 4 | |
1841 | .IX Item "Ill-formed message in prime_env_iter: |%s|" | |
1842 | (W internal) A warning peculiar to \s-1VMS\s0. Perl tried to read a logical | |
1843 | name or \s-1CLI\s0 symbol definition when preparing to iterate over \f(CW%ENV\fR, and | |
1844 | didn't see the expected delimiter between key and value, so the line was | |
1845 | ignored. | |
1846 | .ie n .IP "(in cleanup) %s" 4 | |
1847 | .el .IP "(in cleanup) \f(CW%s\fR" 4 | |
1848 | .IX Item "(in cleanup) %s" | |
1849 | (W misc) This prefix usually indicates that a \s-1\fIDESTROY\s0()\fR method raised | |
1850 | the indicated exception. Since destructors are usually called by the | |
1851 | system at arbitrary points during execution, and often a vast number of | |
1852 | times, the warning is issued only once for any number of failures that | |
1853 | would otherwise result in the same message being repeated. | |
1854 | .Sp | |
1855 | Failure of user callbacks dispatched using the \f(CW\*(C`G_KEEPERR\*(C'\fR flag could | |
1856 | also result in this warning. See \*(L"G_KEEPERR\*(R" in perlcall. | |
1857 | .IP "In \s-1EBCDIC\s0 the v\-string components cannot exceed 2147483647" 4 | |
1858 | .IX Item "In EBCDIC the v-string components cannot exceed 2147483647" | |
1859 | (F) An error peculiar to \s-1EBCDIC\s0. Internally, v\-strings are stored as | |
1860 | Unicode code points, and encoded in \s-1EBCDIC\s0 as \s-1UTF\-EBCDIC\s0. The UTF-EBCDIC | |
1861 | encoding is limited to code points no larger than 2147483647 (0x7FFFFFFF). | |
1862 | .ie n .IP "Insecure dependency in %s" 4 | |
1863 | .el .IP "Insecure dependency in \f(CW%s\fR" 4 | |
1864 | .IX Item "Insecure dependency in %s" | |
1865 | (F) You tried to do something that the tainting mechanism didn't like. | |
1866 | The tainting mechanism is turned on when you're running setuid or | |
1867 | setgid, or when you specify \fB\-T\fR to turn it on explicitly. The | |
1868 | tainting mechanism labels all data that's derived directly or indirectly | |
1869 | from the user, who is considered to be unworthy of your trust. If any | |
1870 | such data is used in a \*(L"dangerous\*(R" operation, you get this error. See | |
1871 | perlsec for more information. | |
1872 | .ie n .IP "Insecure directory in %s" 4 | |
1873 | .el .IP "Insecure directory in \f(CW%s\fR" 4 | |
1874 | .IX Item "Insecure directory in %s" | |
1875 | (F) You can't use \fIsystem()\fR, \fIexec()\fR, or a piped open in a setuid or | |
1876 | setgid script if \f(CW$ENV{PATH}\fR contains a directory that is writable by | |
1877 | the world. Also, the \s-1PATH\s0 must not contain any relative directory. | |
1878 | See perlsec. | |
1879 | .ie n .IP "Insecure $ENV\fR{%s} while running \f(CW%s" 4 | |
1880 | .el .IP "Insecure \f(CW$ENV\fR{%s} while running \f(CW%s\fR" 4 | |
1881 | .IX Item "Insecure $ENV{%s} while running %s" | |
1882 | (F) You can't use \fIsystem()\fR, \fIexec()\fR, or a piped open in a setuid or | |
1883 | setgid script if any of \f(CW$ENV{PATH}\fR, \f(CW$ENV{IFS}\fR, \f(CW$ENV{CDPATH}\fR, | |
1884 | \&\f(CW$ENV{ENV}\fR, \f(CW$ENV{BASH_ENV}\fR or \f(CW$ENV{TERM}\fR are derived from data | |
1885 | supplied (or potentially supplied) by the user. The script must set | |
1886 | the path to a known value, using trustworthy data. See perlsec. | |
1887 | .ie n .IP "Integer overflow in %s number" 4 | |
1888 | .el .IP "Integer overflow in \f(CW%s\fR number" 4 | |
1889 | .IX Item "Integer overflow in %s number" | |
1890 | (W overflow) The hexadecimal, octal or binary number you have specified | |
1891 | either as a literal or as an argument to \fIhex()\fR or \fIoct()\fR is too big for | |
1892 | your architecture, and has been converted to a floating point number. | |
1893 | On a 32\-bit architecture the largest hexadecimal, octal or binary number | |
1894 | representable without overflow is 0xFFFFFFFF, 037777777777, or | |
1895 | 0b11111111111111111111111111111111 respectively. Note that Perl | |
1896 | transparently promotes all numbers to a floating point representation | |
1897 | internally\*(--subject to loss of precision errors in subsequent | |
1898 | operations. | |
1899 | .IP "Internal disaster in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
1900 | .IX Item "Internal disaster in regex; marked by <-- HERE in m/%s/" | |
1901 | (P) Something went badly wrong in the regular expression parser. | |
1902 | The <\-\- \s-1HERE\s0 shows in the regular expression about where the problem was | |
1903 | discovered. | |
1904 | .IP "Internal inconsistency in tracking vforks" 4 | |
1905 | .IX Item "Internal inconsistency in tracking vforks" | |
1906 | (S) A warning peculiar to \s-1VMS\s0. Perl keeps track of the number of times | |
1907 | you've called \f(CW\*(C`fork\*(C'\fR and \f(CW\*(C`exec\*(C'\fR, to determine whether the current call | |
1908 | to \f(CW\*(C`exec\*(C'\fR should affect the current script or a subprocess (see | |
1909 | \&\*(L"exec \s-1LIST\s0\*(R" in perlvms). Somehow, this count has become scrambled, so | |
1910 | Perl is making a guess and treating this \f(CW\*(C`exec\*(C'\fR as a request to | |
1911 | terminate the Perl script and execute the specified command. | |
1912 | .IP "Internal urp in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
1913 | .IX Item "Internal urp in regex; marked by <-- HERE in m/%s/" | |
1914 | (P) Something went badly awry in the regular expression parser. The | |
1915 | <\-\- \s-1HERE\s0 shows in the regular expression about where the problem was | |
1916 | discovered. | |
1917 | .IP "%s (...) interpreted as function" 4 | |
1918 | .IX Item "%s (...) interpreted as function" | |
1919 | (W syntax) You've run afoul of the rule that says that any list operator | |
1920 | followed by parentheses turns into a function, with all the list | |
1921 | operators arguments found inside the parentheses. See | |
1922 | \&\*(L"Terms and List Operators (Leftward)\*(R" in perlop. | |
1923 | .ie n .IP "Invalid %s\fR attribute: \f(CW%s" 4 | |
1924 | .el .IP "Invalid \f(CW%s\fR attribute: \f(CW%s\fR" 4 | |
1925 | .IX Item "Invalid %s attribute: %s" | |
1926 | The indicated attribute for a subroutine or variable was not recognized | |
1927 | by Perl or by a user-supplied handler. See attributes. | |
1928 | .ie n .IP "Invalid %s\fR attributes: \f(CW%s" 4 | |
1929 | .el .IP "Invalid \f(CW%s\fR attributes: \f(CW%s\fR" 4 | |
1930 | .IX Item "Invalid %s attributes: %s" | |
1931 | The indicated attributes for a subroutine or variable were not | |
1932 | recognized by Perl or by a user-supplied handler. See attributes. | |
1933 | .ie n .IP "Invalid conversion in %s: ""%s""" 4 | |
1934 | .el .IP "Invalid conversion in \f(CW%s:\fR ``%s''" 4 | |
1935 | .IX Item "Invalid conversion in %s: %s" | |
1936 | (W printf) Perl does not understand the given format conversion. See | |
1937 | \&\*(L"sprintf\*(R" in perlfunc. | |
1938 | .ie n .IP "Invalid [] range ""%s"" in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
1939 | .el .IP "Invalid [] range ``%s'' in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
1940 | .IX Item "Invalid [] range %s in regex; marked by <-- HERE in m/%s/" | |
1941 | (F) The range specified in a character class had a minimum character | |
1942 | greater than the maximum character. One possibility is that you forgot the | |
1943 | \&\f(CW\*(C`{}\*(C'\fR from your ending \f(CW\*(C`\ex{}\*(C'\fR \- \f(CW\*(C`\ex\*(C'\fR without the curly braces can go only | |
1944 | up to \f(CW\*(C`ff\*(C'\fR. The <\-\- \s-1HERE\s0 shows in the regular expression about where the | |
1945 | problem was discovered. See perlre. | |
1946 | .ie n .IP "Invalid range ""%s"" in transliteration operator" 4 | |
1947 | .el .IP "Invalid range ``%s'' in transliteration operator" 4 | |
1948 | .IX Item "Invalid range %s in transliteration operator" | |
1949 | (F) The range specified in the tr/// or y/// operator had a minimum | |
1950 | character greater than the maximum character. See perlop. | |
1951 | .ie n .IP "Invalid separator character %s in attribute list" 4 | |
1952 | .el .IP "Invalid separator character \f(CW%s\fR in attribute list" 4 | |
1953 | .IX Item "Invalid separator character %s in attribute list" | |
1954 | (F) Something other than a colon or whitespace was seen between the | |
1955 | elements of an attribute list. If the previous attribute had a | |
1956 | parenthesised parameter list, perhaps that list was terminated too soon. | |
1957 | See attributes. | |
1958 | .ie n .IP "Invalid separator character %s\fR in PerlIO layer specification \f(CW%s" 4 | |
1959 | .el .IP "Invalid separator character \f(CW%s\fR in PerlIO layer specification \f(CW%s\fR" 4 | |
1960 | .IX Item "Invalid separator character %s in PerlIO layer specification %s" | |
1961 | (W layer) When pushing layers onto the Perl I/O system, something other than a | |
1962 | colon or whitespace was seen between the elements of a layer list. | |
1963 | If the previous attribute had a parenthesised parameter list, perhaps that | |
1964 | list was terminated too soon. | |
1965 | .ie n .IP "Invalid type '%s' in %s" 4 | |
1966 | .el .IP "Invalid type '%s' in \f(CW%s\fR" 4 | |
1967 | .IX Item "Invalid type '%s' in %s" | |
1968 | (F) The given character is not a valid pack or unpack type. | |
1969 | See \*(L"pack\*(R" in perlfunc. | |
1970 | (W) The given character is not a valid pack or unpack type but used to be | |
1971 | silently ignored. | |
1972 | .IP "ioctl is not implemented" 4 | |
1973 | .IX Item "ioctl is not implemented" | |
1974 | (F) Your machine apparently doesn't implement \fIioctl()\fR, which is pretty | |
1975 | strange for a machine that supports C. | |
1976 | .ie n .IP "\fIioctl()\fR on unopened %s" 4 | |
1977 | .el .IP "\fIioctl()\fR on unopened \f(CW%s\fR" 4 | |
1978 | .IX Item "ioctl() on unopened %s" | |
1979 | (W unopened) You tried \fIioctl()\fR on a filehandle that was never opened. | |
1980 | Check you control flow and number of arguments. | |
1981 | .ie n .IP "\s-1IO\s0 layers (like ""%s"") unavailable" 4 | |
1982 | .el .IP "\s-1IO\s0 layers (like ``%s'') unavailable" 4 | |
1983 | .IX Item "IO layers (like %s) unavailable" | |
1984 | (F) Your Perl has not been configured to have PerlIO, and therefore | |
1985 | you cannot use \s-1IO\s0 layers. To have PerlIO Perl must be configured | |
1986 | with 'useperlio'. | |
1987 | .IP "IO::Socket::atmark not implemented on this architecture" 4 | |
1988 | .IX Item "IO::Socket::atmark not implemented on this architecture" | |
1989 | (F) Your machine doesn't implement the \fIsockatmark()\fR functionality, | |
1990 | neither as a system call or an ioctl call (\s-1SIOCATMARK\s0). | |
1991 | .IP "`%s' is not a code reference" 4 | |
1992 | .IX Item "`%s' is not a code reference" | |
1993 | (W overload) The second (fourth, sixth, ...) argument of overload::constant | |
1994 | needs to be a code reference. Either an anonymous subroutine, or a reference | |
1995 | to a subroutine. | |
1996 | .IP "`%s' is not an overloadable type" 4 | |
1997 | .IX Item "`%s' is not an overloadable type" | |
1998 | (W overload) You tried to overload a constant type the overload package is | |
1999 | unaware of. | |
2000 | .IP "junk on end of regexp" 4 | |
2001 | .IX Item "junk on end of regexp" | |
2002 | (P) The regular expression parser is confused. | |
2003 | .ie n .IP "Label not found for ""last %s""" 4 | |
2004 | .el .IP "Label not found for ``last \f(CW%s\fR''" 4 | |
2005 | .IX Item "Label not found for last %s" | |
2006 | (F) You named a loop to break out of, but you're not currently in a loop | |
2007 | of that name, not even if you count where you were called from. See | |
2008 | \&\*(L"last\*(R" in perlfunc. | |
2009 | .ie n .IP "Label not found for ""next %s""" 4 | |
2010 | .el .IP "Label not found for ``next \f(CW%s\fR''" 4 | |
2011 | .IX Item "Label not found for next %s" | |
2012 | (F) You named a loop to continue, but you're not currently in a loop of | |
2013 | that name, not even if you count where you were called from. See | |
2014 | \&\*(L"last\*(R" in perlfunc. | |
2015 | .ie n .IP "Label not found for ""redo %s""" 4 | |
2016 | .el .IP "Label not found for ``redo \f(CW%s\fR''" 4 | |
2017 | .IX Item "Label not found for redo %s" | |
2018 | (F) You named a loop to restart, but you're not currently in a loop of | |
2019 | that name, not even if you count where you were called from. See | |
2020 | \&\*(L"last\*(R" in perlfunc. | |
2021 | .ie n .IP "leaving effective %s failed" 4 | |
2022 | .el .IP "leaving effective \f(CW%s\fR failed" 4 | |
2023 | .IX Item "leaving effective %s failed" | |
2024 | (F) While under the \f(CW\*(C`use filetest\*(C'\fR pragma, switching the real and | |
2025 | effective uids or gids failed. | |
2026 | .IP "length/code after end of string in unpack" 4 | |
2027 | .IX Item "length/code after end of string in unpack" | |
2028 | (F) While unpacking, the string buffer was already used up when an unpack | |
2029 | length/code combination tried to obtain more data. This results in | |
2030 | an undefined value for the length. See \*(L"pack\*(R" in perlfunc. | |
2031 | .ie n .IP "\fIlisten()\fR on closed socket %s" 4 | |
2032 | .el .IP "\fIlisten()\fR on closed socket \f(CW%s\fR" 4 | |
2033 | .IX Item "listen() on closed socket %s" | |
2034 | (W closed) You tried to do a listen on a closed socket. Did you forget | |
2035 | to check the return value of your \fIsocket()\fR call? See | |
2036 | \&\*(L"listen\*(R" in perlfunc. | |
2037 | .ie n .IP "Lookbehind longer than %d not implemented in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
2038 | .el .IP "Lookbehind longer than \f(CW%d\fR not implemented in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
2039 | .IX Item "Lookbehind longer than %d not implemented in regex; marked by <-- HERE in m/%s/" | |
2040 | (F) There is currently a limit on the length of string which lookbehind can | |
2041 | handle. This restriction may be eased in a future release. The <\-\- \s-1HERE\s0 | |
2042 | shows in the regular expression about where the problem was discovered. | |
2043 | .ie n .IP "\fIlstat()\fR on filehandle %s" 4 | |
2044 | .el .IP "\fIlstat()\fR on filehandle \f(CW%s\fR" 4 | |
2045 | .IX Item "lstat() on filehandle %s" | |
2046 | (W io) You tried to do an lstat on a filehandle. What did you mean | |
2047 | by that? \fIlstat()\fR makes sense only on filenames. (Perl did a \fIfstat()\fR | |
2048 | instead on the filehandle.) | |
2049 | .ie n .IP "Lvalue subs returning %s not implemented yet" 4 | |
2050 | .el .IP "Lvalue subs returning \f(CW%s\fR not implemented yet" 4 | |
2051 | .IX Item "Lvalue subs returning %s not implemented yet" | |
2052 | (F) Due to limitations in the current implementation, array and hash | |
2053 | values cannot be returned in subroutines used in lvalue context. See | |
2054 | \&\*(L"Lvalue subroutines\*(R" in perlsub. | |
2055 | .IP "Malformed integer in [] in pack" 4 | |
2056 | .IX Item "Malformed integer in [] in pack" | |
2057 | (F) Between the brackets enclosing a numeric repeat count only digits | |
2058 | are permitted. See \*(L"pack\*(R" in perlfunc. | |
2059 | .IP "Malformed integer in [] in unpack" 4 | |
2060 | .IX Item "Malformed integer in [] in unpack" | |
2061 | (F) Between the brackets enclosing a numeric repeat count only digits | |
2062 | are permitted. See \*(L"pack\*(R" in perlfunc. | |
2063 | .IP "Malformed \s-1PERLLIB_PREFIX\s0" 4 | |
2064 | .IX Item "Malformed PERLLIB_PREFIX" | |
2065 | (F) An error peculiar to \s-1OS/2\s0. \s-1PERLLIB_PREFIX\s0 should be of the form | |
2066 | .Sp | |
2067 | .Vb 1 | |
2068 | \& prefix1;prefix2 | |
2069 | .Ve | |
2070 | .Sp | |
2071 | or | |
2072 | prefix1 prefix2 | |
2073 | .Sp | |
2074 | with nonempty prefix1 and prefix2. If \f(CW\*(C`prefix1\*(C'\fR is indeed a prefix of | |
2075 | a builtin library search path, prefix2 is substituted. The error may | |
2076 | appear if components are not found, or are too long. See | |
2077 | \&\*(L"\s-1PERLLIB_PREFIX\s0\*(R" in perlos2. | |
2078 | .ie n .IP "Malformed prototype for %s:\fR \f(CW%s" 4 | |
2079 | .el .IP "Malformed prototype for \f(CW%s:\fR \f(CW%s\fR" 4 | |
2080 | .IX Item "Malformed prototype for %s: %s" | |
2081 | (F) You tried to use a function with a malformed prototype. The | |
2082 | syntax of function prototypes is given a brief compile-time check for | |
2083 | obvious errors like invalid characters. A more rigorous check is run | |
2084 | when the function is called. | |
2085 | .IP "Malformed \s-1UTF\-8\s0 character (%s)" 4 | |
2086 | .IX Item "Malformed UTF-8 character (%s)" | |
2087 | (S utf8) (F) Perl detected something that didn't comply with \s-1UTF\-8\s0 | |
2088 | encoding rules. | |
2089 | .Sp | |
2090 | One possible cause is that you read in data that you thought to be in | |
2091 | \&\s-1UTF\-8\s0 but it wasn't (it was for example legacy 8\-bit data). Another | |
2092 | possibility is careless use of \fIutf8::upgrade()\fR. | |
2093 | .IP "Malformed \s-1UTF\-16\s0 surrogate" 4 | |
2094 | .IX Item "Malformed UTF-16 surrogate" | |
2095 | Perl thought it was reading \s-1UTF\-16\s0 encoded character data but while | |
2096 | doing it Perl met a malformed Unicode surrogate. | |
2097 | .IP "%s matches null string many times in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
2098 | .IX Item "%s matches null string many times in regex; marked by <-- HERE in m/%s/" | |
2099 | (W regexp) The pattern you've specified would be an infinite loop if the | |
2100 | regular expression engine didn't specifically check for that. The <\-\- \s-1HERE\s0 | |
2101 | shows in the regular expression about where the problem was discovered. | |
2102 | See perlre. | |
2103 | .ie n .IP """%s"" may clash with future reserved word" 4 | |
2104 | .el .IP "``%s'' may clash with future reserved word" 4 | |
2105 | .IX Item "%s may clash with future reserved word" | |
2106 | (W) This warning may be due to running a perl5 script through a perl4 | |
2107 | interpreter, especially if the word that is being warned about is | |
2108 | \&\*(L"use\*(R" or \*(L"my\*(R". | |
2109 | .IP "% may not be used in pack" 4 | |
2110 | .IX Item "% may not be used in pack" | |
2111 | (F) You can't pack a string by supplying a checksum, because the | |
2112 | checksumming process loses information, and you can't go the other way. | |
2113 | See \*(L"unpack\*(R" in perlfunc. | |
2114 | .ie n .IP "Method for operation %s\fR not found in package \f(CW%s during blessing" 4 | |
2115 | .el .IP "Method for operation \f(CW%s\fR not found in package \f(CW%s\fR during blessing" 4 | |
2116 | .IX Item "Method for operation %s not found in package %s during blessing" | |
2117 | (F) An attempt was made to specify an entry in an overloading table that | |
2118 | doesn't resolve to a valid subroutine. See overload. | |
2119 | .ie n .IP "Method %s not permitted" 4 | |
2120 | .el .IP "Method \f(CW%s\fR not permitted" 4 | |
2121 | .IX Item "Method %s not permitted" | |
2122 | See Server error. | |
2123 | .ie n .IP "Might be a runaway multi-line %s\fR string starting on line \f(CW%d" 4 | |
2124 | .el .IP "Might be a runaway multi-line \f(CW%s\fR string starting on line \f(CW%d\fR" 4 | |
2125 | .IX Item "Might be a runaway multi-line %s string starting on line %d" | |
2126 | (S) An advisory indicating that the previous error may have been caused | |
2127 | by a missing delimiter on a string or pattern, because it eventually | |
2128 | ended earlier on the current line. | |
2129 | .IP "Misplaced _ in number" 4 | |
2130 | .IX Item "Misplaced _ in number" | |
2131 | (W syntax) An underscore (underbar) in a numeric constant did not | |
2132 | separate two digits. | |
2133 | .IP "Missing argument to \-%c" 4 | |
2134 | .IX Item "Missing argument to -%c" | |
2135 | (F) The argument to the indicated command line switch must follow | |
2136 | immediately after the switch, without intervening spaces. | |
2137 | .ie n .IP "Missing %sbrace%s on \eN{}" 4 | |
2138 | .el .IP "Missing \f(CW%sbrace\fR%s on \eN{}" 4 | |
2139 | .IX Item "Missing %sbrace%s on N{}" | |
2140 | (F) Wrong syntax of character name literal \f(CW\*(C`\eN{charname}\*(C'\fR within | |
2141 | double-quotish context. | |
2142 | .ie n .IP "Missing comma after first argument to %s function" 4 | |
2143 | .el .IP "Missing comma after first argument to \f(CW%s\fR function" 4 | |
2144 | .IX Item "Missing comma after first argument to %s function" | |
2145 | (F) While certain functions allow you to specify a filehandle or an | |
2146 | \&\*(L"indirect object\*(R" before the argument list, this ain't one of them. | |
2147 | .IP "Missing command in piped open" 4 | |
2148 | .IX Item "Missing command in piped open" | |
2149 | (W pipe) You used the \f(CW\*(C`open(FH, "| command")\*(C'\fR or | |
2150 | \&\f(CW\*(C`open(FH, "command |")\*(C'\fR construction, but the command was missing or | |
2151 | blank. | |
2152 | .IP "Missing control char name in \ec" 4 | |
2153 | .IX Item "Missing control char name in c" | |
2154 | (F) A double-quoted string ended with \*(L"\ec\*(R", without the required control | |
2155 | character name. | |
2156 | .ie n .IP "Missing name in ""my sub""" 4 | |
2157 | .el .IP "Missing name in ``my sub''" 4 | |
2158 | .IX Item "Missing name in my sub" | |
2159 | (F) The reserved syntax for lexically scoped subroutines requires that | |
2160 | they have a name with which they can be found. | |
2161 | .IP "Missing $ on loop variable" 4 | |
2162 | .IX Item "Missing $ on loop variable" | |
2163 | (F) Apparently you've been programming in \fBcsh\fR too much. Variables | |
2164 | are always mentioned with the $ in Perl, unlike in the shells, where it | |
2165 | can vary from one line to the next. | |
2166 | .ie n .IP "(Missing operator before %s?)" 4 | |
2167 | .el .IP "(Missing operator before \f(CW%s\fR?)" 4 | |
2168 | .IX Item "(Missing operator before %s?)" | |
2169 | (S syntax) This is an educated guess made in conjunction with the message | |
2170 | \&\*(L"%s found where operator expected\*(R". Often the missing operator is a comma. | |
2171 | .ie n .IP "Missing right brace on %s" 4 | |
2172 | .el .IP "Missing right brace on \f(CW%s\fR" 4 | |
2173 | .IX Item "Missing right brace on %s" | |
2174 | (F) Missing right brace in \f(CW\*(C`\ep{...}\*(C'\fR or \f(CW\*(C`\eP{...}\*(C'\fR. | |
2175 | .IP "Missing right curly or square bracket" 4 | |
2176 | .IX Item "Missing right curly or square bracket" | |
2177 | (F) The lexer counted more opening curly or square brackets than closing | |
2178 | ones. As a general rule, you'll find it's missing near the place you | |
2179 | were last editing. | |
2180 | .IP "(Missing semicolon on previous line?)" 4 | |
2181 | .IX Item "(Missing semicolon on previous line?)" | |
2182 | (S syntax) This is an educated guess made in conjunction with the message | |
2183 | \&\*(L"%s found where operator expected\*(R". Don't automatically put a semicolon on | |
2184 | the previous line just because you saw this message. | |
2185 | .IP "Modification of a read-only value attempted" 4 | |
2186 | .IX Item "Modification of a read-only value attempted" | |
2187 | (F) You tried, directly or indirectly, to change the value of a | |
2188 | constant. You didn't, of course, try \*(L"2 = 1\*(R", because the compiler | |
2189 | catches that. But an easy way to do the same thing is: | |
2190 | .Sp | |
2191 | .Vb 2 | |
2192 | \& sub mod { $_[0] = 1 } | |
2193 | \& mod(2); | |
2194 | .Ve | |
2195 | .Sp | |
2196 | Another way is to assign to a \fIsubstr()\fR that's off the end of the string. | |
2197 | .Sp | |
2198 | Yet another way is to assign to a \f(CW\*(C`foreach\*(C'\fR loop \fI\s-1VAR\s0\fR when \fI\s-1VAR\s0\fR | |
2199 | is aliased to a constant in the look \fI\s-1LIST\s0\fR: | |
2200 | .Sp | |
2201 | .Vb 4 | |
2202 | \& $x = 1; | |
2203 | \& foreach my $n ($x, 2) { | |
2204 | \& $n *= 2; # modifies the $x, but fails on attempt to modify the 2 | |
2205 | \& } | |
2206 | .Ve | |
2207 | .ie n .IP "Modification of non-creatable array value attempted, %s" 4 | |
2208 | .el .IP "Modification of non-creatable array value attempted, \f(CW%s\fR" 4 | |
2209 | .IX Item "Modification of non-creatable array value attempted, %s" | |
2210 | (F) You tried to make an array value spring into existence, and the | |
2211 | subscript was probably negative, even counting from end of the array | |
2212 | backwards. | |
2213 | .ie n .IP "Modification of non-creatable hash value attempted, %s" 4 | |
2214 | .el .IP "Modification of non-creatable hash value attempted, \f(CW%s\fR" 4 | |
2215 | .IX Item "Modification of non-creatable hash value attempted, %s" | |
2216 | (P) You tried to make a hash value spring into existence, and it | |
2217 | couldn't be created for some peculiar reason. | |
2218 | .IP "Module name must be constant" 4 | |
2219 | .IX Item "Module name must be constant" | |
2220 | (F) Only a bare module name is allowed as the first argument to a \*(L"use\*(R". | |
2221 | .IP "Module name required with \-%c option" 4 | |
2222 | .IX Item "Module name required with -%c option" | |
2223 | (F) The \f(CW\*(C`\-M\*(C'\fR or \f(CW\*(C`\-m\*(C'\fR options say that Perl should load some module, but | |
2224 | you omitted the name of the module. Consult perlrun for full details | |
2225 | about \f(CW\*(C`\-M\*(C'\fR and \f(CW\*(C`\-m\*(C'\fR. | |
2226 | .IP "More than one argument to open" 4 | |
2227 | .IX Item "More than one argument to open" | |
2228 | (F) The \f(CW\*(C`open\*(C'\fR function has been asked to open multiple files. This | |
2229 | can happen if you are trying to open a pipe to a command that takes a | |
2230 | list of arguments, but have forgotten to specify a piped open mode. | |
2231 | See \*(L"open\*(R" in perlfunc for details. | |
2232 | .IP "msg%s not implemented" 4 | |
2233 | .IX Item "msg%s not implemented" | |
2234 | (F) You don't have System V message \s-1IPC\s0 on your system. | |
2235 | .ie n .IP "Multidimensional syntax %s not supported" 4 | |
2236 | .el .IP "Multidimensional syntax \f(CW%s\fR not supported" 4 | |
2237 | .IX Item "Multidimensional syntax %s not supported" | |
2238 | (W syntax) Multidimensional arrays aren't written like \f(CW$foo[1,2,3]\fR. | |
2239 | They're written like \f(CW$foo[1][2][3]\fR, as in C. | |
2240 | .IP "'/' must be followed by 'a*', 'A*' or 'Z*'" 4 | |
2241 | .IX Item "'/' must be followed by 'a*', 'A*' or 'Z*'" | |
2242 | (F) You had a pack template indicating a counted-length string, | |
2243 | Currently the only things that can have their length counted are a*, A* | |
2244 | or Z*. See \*(L"pack\*(R" in perlfunc. | |
2245 | .IP "'/' must follow a numeric type in unpack" 4 | |
2246 | .IX Item "'/' must follow a numeric type in unpack" | |
2247 | (F) You had an unpack template that contained a '/', but this did not | |
2248 | follow some unpack specification producing a numeric value. | |
2249 | See \*(L"pack\*(R" in perlfunc. | |
2250 | .ie n .IP """my sub"" not yet implemented" 4 | |
2251 | .el .IP "``my sub'' not yet implemented" 4 | |
2252 | .IX Item "my sub not yet implemented" | |
2253 | (F) Lexically scoped subroutines are not yet implemented. Don't try | |
2254 | that yet. | |
2255 | .ie n .IP """my"" variable %s can't be in a package" 4 | |
2256 | .el .IP "``my'' variable \f(CW%s\fR can't be in a package" 4 | |
2257 | .IX Item "my variable %s can't be in a package" | |
2258 | (F) Lexically scoped variables aren't in a package, so it doesn't make | |
2259 | sense to try to declare one with a package qualifier on the front. Use | |
2260 | \&\fIlocal()\fR if you want to localize a package variable. | |
2261 | .ie n .IP "Name ""%s::%s"" used only once: possible typo" 4 | |
2262 | .el .IP "Name ``%s::%s'' used only once: possible typo" 4 | |
2263 | .IX Item "Name %s::%s used only once: possible typo" | |
2264 | (W once) Typographical errors often show up as unique variable names. | |
2265 | If you had a good reason for having a unique name, then just mention it | |
2266 | again somehow to suppress the message. The \f(CW\*(C`our\*(C'\fR declaration is | |
2267 | provided for this purpose. | |
2268 | .Sp | |
2269 | \&\s-1NOTE:\s0 This warning detects symbols that have been used only once so \f(CW$c\fR, \f(CW@c\fR, | |
2270 | \&\f(CW%c\fR, *c, &c, sub c{}, c(), and c (the filehandle or format) are considered | |
2271 | the same; if a program uses \f(CW$c\fR only once but also uses any of the others it | |
2272 | will not trigger this warning. | |
2273 | .IP "Negative '/' count in unpack" 4 | |
2274 | .IX Item "Negative '/' count in unpack" | |
2275 | (F) The length count obtained from a length/code unpack operation was | |
2276 | negative. See \*(L"pack\*(R" in perlfunc. | |
2277 | .IP "Negative length" 4 | |
2278 | .IX Item "Negative length" | |
2279 | (F) You tried to do a read/write/send/recv operation with a buffer | |
2280 | length that is less than 0. This is difficult to imagine. | |
2281 | .IP "Negative offset to vec in lvalue context" 4 | |
2282 | .IX Item "Negative offset to vec in lvalue context" | |
2283 | (F) When \f(CW\*(C`vec\*(C'\fR is called in an lvalue context, the second argument must be | |
2284 | greater than or equal to zero. | |
2285 | .IP "Nested quantifiers in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
2286 | .IX Item "Nested quantifiers in regex; marked by <-- HERE in m/%s/" | |
2287 | (F) You can't quantify a quantifier without intervening parentheses. So | |
2288 | things like ** or +* or ?* are illegal. The <\-\- \s-1HERE\s0 shows in the regular | |
2289 | expression about where the problem was discovered. | |
2290 | .Sp | |
2291 | Note that the minimal matching quantifiers, \f(CW\*(C`*?\*(C'\fR, \f(CW\*(C`+?\*(C'\fR, and | |
2292 | \&\f(CW\*(C`??\*(C'\fR appear to be nested quantifiers, but aren't. See perlre. | |
2293 | .IP "%s never introduced" 4 | |
2294 | .IX Item "%s never introduced" | |
2295 | (S internal) The symbol in question was declared but somehow went out of | |
2296 | scope before it could possibly have been used. | |
2297 | .ie n .IP "Newline in left-justified string for %s" 4 | |
2298 | .el .IP "Newline in left-justified string for \f(CW%s\fR" 4 | |
2299 | .IX Item "Newline in left-justified string for %s" | |
2300 | (W printf) There is a newline in a string to be left justified by | |
2301 | \&\f(CW\*(C`printf\*(C'\fR or \f(CW\*(C`sprintf\*(C'\fR. | |
2302 | .Sp | |
2303 | The padding spaces will appear after the newline, which is probably not | |
2304 | what you wanted. Usually you should remove the newline from the string | |
2305 | and put formatting characters in the \f(CW\*(C`sprintf\*(C'\fR format. | |
2306 | .ie n .IP "No %s allowed while running setuid" 4 | |
2307 | .el .IP "No \f(CW%s\fR allowed while running setuid" 4 | |
2308 | .IX Item "No %s allowed while running setuid" | |
2309 | (F) Certain operations are deemed to be too insecure for a setuid or | |
2310 | setgid script to even be allowed to attempt. Generally speaking there | |
2311 | will be another way to do what you want that is, if not secure, at least | |
2312 | securable. See perlsec. | |
2313 | .ie n .IP "No comma allowed after %s" 4 | |
2314 | .el .IP "No comma allowed after \f(CW%s\fR" 4 | |
2315 | .IX Item "No comma allowed after %s" | |
2316 | (F) A list operator that has a filehandle or \*(L"indirect object\*(R" is not | |
2317 | allowed to have a comma between that and the following arguments. | |
2318 | Otherwise it'd be just another one of the arguments. | |
2319 | .Sp | |
2320 | One possible cause for this is that you expected to have imported a | |
2321 | constant to your name space with \fBuse\fR or \fBimport\fR while no such | |
2322 | importing took place, it may for example be that your operating system | |
2323 | does not support that particular constant. Hopefully you did use an | |
2324 | explicit import list for the constants you expect to see, please see | |
2325 | \&\*(L"use\*(R" in perlfunc and \*(L"import\*(R" in perlfunc. While an explicit import list | |
2326 | would probably have caught this error earlier it naturally does not | |
2327 | remedy the fact that your operating system still does not support that | |
2328 | constant. Maybe you have a typo in the constants of the symbol import | |
2329 | list of \fBuse\fR or \fBimport\fR or in the constant name at the line where | |
2330 | this error was triggered? | |
2331 | .IP "No command into which to pipe on command line" 4 | |
2332 | .IX Item "No command into which to pipe on command line" | |
2333 | (F) An error peculiar to \s-1VMS\s0. Perl handles its own command line | |
2334 | redirection, and found a '|' at the end of the command line, so it | |
2335 | doesn't know where you want to pipe the output from this command. | |
2336 | .IP "No \s-1DB::DB\s0 routine defined" 4 | |
2337 | .IX Item "No DB::DB routine defined" | |
2338 | (F) The currently executing code was compiled with the \fB\-d\fR switch, but | |
2339 | for some reason the current debugger (e.g. \fIperl5db.pl\fR or a \f(CW\*(C`Devel::\*(C'\fR | |
2340 | module) didn't define a routine to be called at the beginning of each | |
2341 | statement. | |
2342 | .IP "No dbm on this machine" 4 | |
2343 | .IX Item "No dbm on this machine" | |
2344 | (P) This is counted as an internal error, because every machine should | |
2345 | supply dbm nowadays, because Perl comes with \s-1SDBM\s0. See SDBM_File. | |
2346 | .IP "No DB::sub routine defined" 4 | |
2347 | .IX Item "No DB::sub routine defined" | |
2348 | (F) The currently executing code was compiled with the \fB\-d\fR switch, but | |
2349 | for some reason the current debugger (e.g. \fIperl5db.pl\fR or a \f(CW\*(C`Devel::\*(C'\fR | |
2350 | module) didn't define a \f(CW\*(C`DB::sub\*(C'\fR routine to be called at the beginning | |
2351 | of each ordinary subroutine call. | |
2352 | .IP "No \fB\-e\fR allowed in setuid scripts" 4 | |
2353 | .IX Item "No -e allowed in setuid scripts" | |
2354 | (F) A setuid script can't be specified by the user. | |
2355 | .IP "No error file after 2> or 2>> on command line" 4 | |
2356 | .IX Item "No error file after 2> or 2>> on command line" | |
2357 | (F) An error peculiar to \s-1VMS\s0. Perl handles its own command line | |
2358 | redirection, and found a '2>' or a '2>>' on the command line, but can't | |
2359 | find the name of the file to which to write data destined for stderr. | |
2360 | .IP "No group ending character '%c' found in template" 4 | |
2361 | .IX Item "No group ending character '%c' found in template" | |
2362 | (F) A pack or unpack template has an opening '(' or '[' without its | |
2363 | matching counterpart. See \*(L"pack\*(R" in perlfunc. | |
2364 | .IP "No input file after < on command line" 4 | |
2365 | .IX Item "No input file after < on command line" | |
2366 | (F) An error peculiar to \s-1VMS\s0. Perl handles its own command line | |
2367 | redirection, and found a '<' on the command line, but can't find the | |
2368 | name of the file from which to read data for stdin. | |
2369 | .IP "No #! line" 4 | |
2370 | .IX Item "No #! line" | |
2371 | (F) The setuid emulator requires that scripts have a well-formed #! line | |
2372 | even on machines that don't support the #! construct. | |
2373 | .ie n .IP """no"" not allowed in expression" 4 | |
2374 | .el .IP "``no'' not allowed in expression" 4 | |
2375 | .IX Item "no not allowed in expression" | |
2376 | (F) The \*(L"no\*(R" keyword is recognized and executed at compile time, and | |
2377 | returns no useful value. See perlmod. | |
2378 | .IP "No output file after > on command line" 4 | |
2379 | .IX Item "No output file after > on command line" | |
2380 | (F) An error peculiar to \s-1VMS\s0. Perl handles its own command line | |
2381 | redirection, and found a lone '>' at the end of the command line, so it | |
2382 | doesn't know where you wanted to redirect stdout. | |
2383 | .IP "No output file after > or >> on command line" 4 | |
2384 | .IX Item "No output file after > or >> on command line" | |
2385 | (F) An error peculiar to \s-1VMS\s0. Perl handles its own command line | |
2386 | redirection, and found a '>' or a '>>' on the command line, but can't | |
2387 | find the name of the file to which to write data destined for stdout. | |
2388 | .ie n .IP "No package name allowed for variable %s in ""our""" 4 | |
2389 | .el .IP "No package name allowed for variable \f(CW%s\fR in ``our''" 4 | |
2390 | .IX Item "No package name allowed for variable %s in our" | |
2391 | (F) Fully qualified variable names are not allowed in \*(L"our\*(R" | |
2392 | declarations, because that doesn't make much sense under existing | |
2393 | semantics. Such syntax is reserved for future extensions. | |
2394 | .IP "No Perl script found in input" 4 | |
2395 | .IX Item "No Perl script found in input" | |
2396 | (F) You called \f(CW\*(C`perl \-x\*(C'\fR, but no line was found in the file beginning | |
2397 | with #! and containing the word \*(L"perl\*(R". | |
2398 | .IP "No setregid available" 4 | |
2399 | .IX Item "No setregid available" | |
2400 | (F) Configure didn't find anything resembling the \fIsetregid()\fR call for | |
2401 | your system. | |
2402 | .IP "No setreuid available" 4 | |
2403 | .IX Item "No setreuid available" | |
2404 | (F) Configure didn't find anything resembling the \fIsetreuid()\fR call for | |
2405 | your system. | |
2406 | .ie n .IP "No %s specified for \-%c" 4 | |
2407 | .el .IP "No \f(CW%s\fR specified for \-%c" 4 | |
2408 | .IX Item "No %s specified for -%c" | |
2409 | (F) The indicated command line switch needs a mandatory argument, but | |
2410 | you haven't specified one. | |
2411 | .ie n .IP "No such class %s" 4 | |
2412 | .el .IP "No such class \f(CW%s\fR" 4 | |
2413 | .IX Item "No such class %s" | |
2414 | (F) You provided a class qualifier in a \*(L"my\*(R" or \*(L"our\*(R" declaration, but | |
2415 | this class doesn't exist at this point in your program. | |
2416 | .IP "No such pipe open" 4 | |
2417 | .IX Item "No such pipe open" | |
2418 | (P) An error peculiar to \s-1VMS\s0. The internal routine \fImy_pclose()\fR tried to | |
2419 | close a pipe which hadn't been opened. This should have been caught | |
2420 | earlier as an attempt to close an unopened filehandle. | |
2421 | .ie n .IP "No such pseudo-hash field ""%s""" 4 | |
2422 | .el .IP "No such pseudo-hash field ``%s''" 4 | |
2423 | .IX Item "No such pseudo-hash field %s" | |
2424 | (F) You tried to access an array as a hash, but the field name used is | |
2425 | not defined. The hash at index 0 should map all valid field names to | |
2426 | array indices for that to work. | |
2427 | .ie n .IP "No such pseudo-hash field ""%s"" in variable %s\fR of type \f(CW%s" 4 | |
2428 | .el .IP "No such pseudo-hash field ``%s'' in variable \f(CW%s\fR of type \f(CW%s\fR" 4 | |
2429 | .IX Item "No such pseudo-hash field %s in variable %s of type %s" | |
2430 | (F) You tried to access a field of a typed variable where the type does | |
2431 | not know about the field name. The field names are looked up in the | |
2432 | \&\f(CW%FIELDS\fR hash in the type package at compile time. The \f(CW%FIELDS\fR hash is | |
2433 | \&\f(CW%usually\fR set up with the 'fields' pragma. | |
2434 | .IP "No such signal: SIG%s" 4 | |
2435 | .IX Item "No such signal: SIG%s" | |
2436 | (W signal) You specified a signal name as a subscript to \f(CW%SIG\fR that was | |
2437 | not recognized. Say \f(CW\*(C`kill \-l\*(C'\fR in your shell to see the valid signal | |
2438 | names on your system. | |
2439 | .IP "Not a \s-1CODE\s0 reference" 4 | |
2440 | .IX Item "Not a CODE reference" | |
2441 | (F) Perl was trying to evaluate a reference to a code value (that is, a | |
2442 | subroutine), but found a reference to something else instead. You can | |
2443 | use the \fIref()\fR function to find out what kind of ref it really was. See | |
2444 | also perlref. | |
2445 | .IP "Not a format reference" 4 | |
2446 | .IX Item "Not a format reference" | |
2447 | (F) I'm not sure how you managed to generate a reference to an anonymous | |
2448 | format, but this indicates you did, and that it didn't exist. | |
2449 | .IP "Not a \s-1GLOB\s0 reference" 4 | |
2450 | .IX Item "Not a GLOB reference" | |
2451 | (F) Perl was trying to evaluate a reference to a \*(L"typeglob\*(R" (that is, a | |
2452 | symbol table entry that looks like \f(CW*foo\fR), but found a reference to | |
2453 | something else instead. You can use the \fIref()\fR function to find out what | |
2454 | kind of ref it really was. See perlref. | |
2455 | .IP "Not a \s-1HASH\s0 reference" 4 | |
2456 | .IX Item "Not a HASH reference" | |
2457 | (F) Perl was trying to evaluate a reference to a hash value, but found a | |
2458 | reference to something else instead. You can use the \fIref()\fR function to | |
2459 | find out what kind of ref it really was. See perlref. | |
2460 | .IP "Not an \s-1ARRAY\s0 reference" 4 | |
2461 | .IX Item "Not an ARRAY reference" | |
2462 | (F) Perl was trying to evaluate a reference to an array value, but found | |
2463 | a reference to something else instead. You can use the \fIref()\fR function | |
2464 | to find out what kind of ref it really was. See perlref. | |
2465 | .IP "Not a perl script" 4 | |
2466 | .IX Item "Not a perl script" | |
2467 | (F) The setuid emulator requires that scripts have a well-formed #! line | |
2468 | even on machines that don't support the #! construct. The line must | |
2469 | mention perl. | |
2470 | .IP "Not a \s-1SCALAR\s0 reference" 4 | |
2471 | .IX Item "Not a SCALAR reference" | |
2472 | (F) Perl was trying to evaluate a reference to a scalar value, but found | |
2473 | a reference to something else instead. You can use the \fIref()\fR function | |
2474 | to find out what kind of ref it really was. See perlref. | |
2475 | .IP "Not a subroutine reference" 4 | |
2476 | .IX Item "Not a subroutine reference" | |
2477 | (F) Perl was trying to evaluate a reference to a code value (that is, a | |
2478 | subroutine), but found a reference to something else instead. You can | |
2479 | use the \fIref()\fR function to find out what kind of ref it really was. See | |
2480 | also perlref. | |
2481 | .IP "Not a subroutine reference in overload table" 4 | |
2482 | .IX Item "Not a subroutine reference in overload table" | |
2483 | (F) An attempt was made to specify an entry in an overloading table that | |
2484 | doesn't somehow point to a valid subroutine. See overload. | |
2485 | .ie n .IP "Not enough arguments for %s" 4 | |
2486 | .el .IP "Not enough arguments for \f(CW%s\fR" 4 | |
2487 | .IX Item "Not enough arguments for %s" | |
2488 | (F) The function requires more arguments than you specified. | |
2489 | .IP "Not enough format arguments" 4 | |
2490 | .IX Item "Not enough format arguments" | |
2491 | (W syntax) A format specified more picture fields than the next line | |
2492 | supplied. See perlform. | |
2493 | .IP "%s: not found" 4 | |
2494 | .IX Item "%s: not found" | |
2495 | (A) You've accidentally run your script through the Bourne shell instead | |
2496 | of Perl. Check the #! line, or manually feed your script into Perl | |
2497 | yourself. | |
2498 | .IP "no \s-1UTC\s0 offset information; assuming local time is \s-1UTC\s0" 4 | |
2499 | .IX Item "no UTC offset information; assuming local time is UTC" | |
2500 | (S) A warning peculiar to \s-1VMS\s0. Perl was unable to find the local | |
2501 | timezone offset, so it's assuming that local system time is equivalent | |
2502 | to \s-1UTC\s0. If it's not, define the logical name | |
2503 | \&\fI\s-1SYS$TIMEZONE_DIFFERENTIAL\s0\fR to translate to the number of seconds which | |
2504 | need to be added to \s-1UTC\s0 to get local time. | |
2505 | .IP "Non-string passed as bitmask" 4 | |
2506 | .IX Item "Non-string passed as bitmask" | |
2507 | (W misc) A number has been passed as a bitmask argument to \fIselect()\fR. | |
2508 | Use the \fIvec()\fR function to construct the file descriptor bitmasks for | |
2509 | select. See \*(L"select\*(R" in perlfunc | |
2510 | .IP "Null filename used" 4 | |
2511 | .IX Item "Null filename used" | |
2512 | (F) You can't require the null filename, especially because on many | |
2513 | machines that means the current directory! See \*(L"require\*(R" in perlfunc. | |
2514 | .IP "\s-1NULL\s0 \s-1OP\s0 \s-1IN\s0 \s-1RUN\s0" 4 | |
2515 | .IX Item "NULL OP IN RUN" | |
2516 | (P debugging) Some internal routine called \fIrun()\fR with a null opcode | |
2517 | pointer. | |
2518 | .IP "Null picture in formline" 4 | |
2519 | .IX Item "Null picture in formline" | |
2520 | (F) The first argument to formline must be a valid format picture | |
2521 | specification. It was found to be empty, which probably means you | |
2522 | supplied it an uninitialized value. See perlform. | |
2523 | .IP "Null realloc" 4 | |
2524 | .IX Item "Null realloc" | |
2525 | (P) An attempt was made to realloc \s-1NULL\s0. | |
2526 | .IP "\s-1NULL\s0 regexp argument" 4 | |
2527 | .IX Item "NULL regexp argument" | |
2528 | (P) The internal pattern matching routines blew it big time. | |
2529 | .IP "\s-1NULL\s0 regexp parameter" 4 | |
2530 | .IX Item "NULL regexp parameter" | |
2531 | (P) The internal pattern matching routines are out of their gourd. | |
2532 | .IP "Number too long" 4 | |
2533 | .IX Item "Number too long" | |
2534 | (F) Perl limits the representation of decimal numbers in programs to | |
2535 | about 250 characters. You've exceeded that length. Future | |
2536 | versions of Perl are likely to eliminate this arbitrary limitation. In | |
2537 | the meantime, try using scientific notation (e.g. \*(L"1e6\*(R" instead of | |
2538 | \&\*(L"1_000_000\*(R"). | |
2539 | .IP "Octal number in vector unsupported" 4 | |
2540 | .IX Item "Octal number in vector unsupported" | |
2541 | (F) Numbers with a leading \f(CW0\fR are not currently allowed in vectors. | |
2542 | The octal number interpretation of such numbers may be supported in a | |
2543 | future version. | |
2544 | .IP "Octal number > 037777777777 non-portable" 4 | |
2545 | .IX Item "Octal number > 037777777777 non-portable" | |
2546 | (W portable) The octal number you specified is larger than 2**32\-1 | |
2547 | (4294967295) and therefore non-portable between systems. See | |
2548 | perlport for more on portability concerns. | |
2549 | .Sp | |
2550 | See also perlport for writing portable code. | |
2551 | .IP "Odd number of arguments for overload::constant" 4 | |
2552 | .IX Item "Odd number of arguments for overload::constant" | |
2553 | (W overload) The call to overload::constant contained an odd number of | |
2554 | arguments. The arguments should come in pairs. | |
2555 | .IP "Odd number of elements in anonymous hash" 4 | |
2556 | .IX Item "Odd number of elements in anonymous hash" | |
2557 | (W misc) You specified an odd number of elements to initialize a hash, | |
2558 | which is odd, because hashes come in key/value pairs. | |
2559 | .IP "Odd number of elements in hash assignment" 4 | |
2560 | .IX Item "Odd number of elements in hash assignment" | |
2561 | (W misc) You specified an odd number of elements to initialize a hash, | |
2562 | which is odd, because hashes come in key/value pairs. | |
2563 | .IP "Offset outside string" 4 | |
2564 | .IX Item "Offset outside string" | |
2565 | (F) You tried to do a read/write/send/recv operation with an offset | |
2566 | pointing outside the buffer. This is difficult to imagine. The sole | |
2567 | exception to this is that \f(CW\*(C`sysread()\*(C'\fRing past the buffer will extend | |
2568 | the buffer and zero pad the new area. | |
2569 | .ie n .IP "%s() on unopened %s" 4 | |
2570 | .el .IP "%s() on unopened \f(CW%s\fR" 4 | |
2571 | .IX Item "%s() on unopened %s" | |
2572 | (W unopened) An I/O operation was attempted on a filehandle that was | |
2573 | never initialized. You need to do an \fIopen()\fR, a \fIsysopen()\fR, or a \fIsocket()\fR | |
2574 | call, or call a constructor from the FileHandle package. | |
2575 | .ie n .IP "\-%s on unopened filehandle %s" 4 | |
2576 | .el .IP "\-%s on unopened filehandle \f(CW%s\fR" 4 | |
2577 | .IX Item "-%s on unopened filehandle %s" | |
2578 | (W unopened) You tried to invoke a file test operator on a filehandle | |
2579 | that isn't open. Check your control flow. See also \*(L"\-X\*(R" in perlfunc. | |
2580 | .IP "oops: oopsAV" 4 | |
2581 | .IX Item "oops: oopsAV" | |
2582 | (S internal) An internal warning that the grammar is screwed up. | |
2583 | .IP "oops: oopsHV" 4 | |
2584 | .IX Item "oops: oopsHV" | |
2585 | (S internal) An internal warning that the grammar is screwed up. | |
2586 | .ie n .IP "Operation ""%s"": no method found, %s" 4 | |
2587 | .el .IP "Operation ``%s'': no method found, \f(CW%s\fR" 4 | |
2588 | .IX Item "Operation %s: no method found, %s" | |
2589 | (F) An attempt was made to perform an overloaded operation for which no | |
2590 | handler was defined. While some handlers can be autogenerated in terms | |
2591 | of other handlers, there is no default handler for any operation, unless | |
2592 | \&\f(CW\*(C`fallback\*(C'\fR overloading key is specified to be true. See overload. | |
2593 | .ie n .IP "Operator or semicolon missing before %s" 4 | |
2594 | .el .IP "Operator or semicolon missing before \f(CW%s\fR" 4 | |
2595 | .IX Item "Operator or semicolon missing before %s" | |
2596 | (S ambiguous) You used a variable or subroutine call where the parser | |
2597 | was expecting an operator. The parser has assumed you really meant to | |
2598 | use an operator, but this is highly likely to be incorrect. For | |
2599 | example, if you say \*(L"*foo *foo\*(R" it will be interpreted as if you said | |
2600 | \&\*(L"*foo * 'foo'\*(R". | |
2601 | .ie n .IP """our"" variable %s redeclared" 4 | |
2602 | .el .IP "``our'' variable \f(CW%s\fR redeclared" 4 | |
2603 | .IX Item "our variable %s redeclared" | |
2604 | (W misc) You seem to have already declared the same global once before | |
2605 | in the current lexical scope. | |
2606 | .IP "Out of memory!" 4 | |
2607 | .IX Item "Out of memory!" | |
2608 | (X) The \fImalloc()\fR function returned 0, indicating there was insufficient | |
2609 | remaining memory (or virtual memory) to satisfy the request. Perl has | |
2610 | no option but to exit immediately. | |
2611 | .Sp | |
2612 | At least in Unix you may be able to get past this by increasing your | |
2613 | process datasize limits: in csh/tcsh use \f(CW\*(C`limit\*(C'\fR and | |
2614 | \&\f(CW\*(C`limit datasize n\*(C'\fR (where \f(CW\*(C`n\*(C'\fR is the number of kilobytes) to check | |
2615 | the current limits and change them, and in ksh/bash/zsh use \f(CW\*(C`ulimit \-a\*(C'\fR | |
2616 | and \f(CW\*(C`ulimit \-d n\*(C'\fR, respectively. | |
2617 | .ie n .IP "Out of memory during %s extend" 4 | |
2618 | .el .IP "Out of memory during \f(CW%s\fR extend" 4 | |
2619 | .IX Item "Out of memory during %s extend" | |
2620 | (X) An attempt was made to extend an array, a list, or a string beyond | |
2621 | the largest possible memory allocation. | |
2622 | .ie n .IP "Out of memory during ""large"" request for %s" 4 | |
2623 | .el .IP "Out of memory during ``large'' request for \f(CW%s\fR" 4 | |
2624 | .IX Item "Out of memory during large request for %s" | |
2625 | (F) The \fImalloc()\fR function returned 0, indicating there was insufficient | |
2626 | remaining memory (or virtual memory) to satisfy the request. However, | |
2627 | the request was judged large enough (compile\-time default is 64K), so a | |
2628 | possibility to shut down by trapping this error is granted. | |
2629 | .ie n .IP "Out of memory during request for %s" 4 | |
2630 | .el .IP "Out of memory during request for \f(CW%s\fR" 4 | |
2631 | .IX Item "Out of memory during request for %s" | |
2632 | (X|F) The \fImalloc()\fR function returned 0, indicating there was | |
2633 | insufficient remaining memory (or virtual memory) to satisfy the | |
2634 | request. | |
2635 | .Sp | |
2636 | The request was judged to be small, so the possibility to trap it | |
2637 | depends on the way perl was compiled. By default it is not trappable. | |
2638 | However, if compiled for this, Perl may use the contents of \f(CW$^M\fR as an | |
2639 | emergency pool after \fIdie()\fRing with this message. In this case the error | |
2640 | is trappable \fIonce\fR, and the error message will include the line and file | |
2641 | where the failed request happened. | |
2642 | .IP "Out of memory during ridiculously large request" 4 | |
2643 | .IX Item "Out of memory during ridiculously large request" | |
2644 | (F) You can't allocate more than 2^31+\*(L"small amount\*(R" bytes. This error | |
2645 | is most likely to be caused by a typo in the Perl program. e.g., | |
2646 | \&\f(CW$arr[time]\fR instead of \f(CW$arr[$time]\fR. | |
2647 | .IP "Out of memory for yacc stack" 4 | |
2648 | .IX Item "Out of memory for yacc stack" | |
2649 | (F) The yacc parser wanted to grow its stack so it could continue | |
2650 | parsing, but \fIrealloc()\fR wouldn't give it more memory, virtual or | |
2651 | otherwise. | |
2652 | .IP "'@' outside of string in unpack" 4 | |
2653 | .IX Item "'@' outside of string in unpack" | |
2654 | (F) You had a template that specified an absolute position outside | |
2655 | the string being unpacked. See \*(L"pack\*(R" in perlfunc. | |
2656 | .ie n .IP "%s package attribute may clash with future reserved word: %s" 4 | |
2657 | .el .IP "%s package attribute may clash with future reserved word: \f(CW%s\fR" 4 | |
2658 | .IX Item "%s package attribute may clash with future reserved word: %s" | |
2659 | (W reserved) A lowercase attribute name was used that had a | |
2660 | package-specific handler. That name might have a meaning to Perl itself | |
2661 | some day, even though it doesn't yet. Perhaps you should use a | |
2662 | mixed-case attribute name, instead. See attributes. | |
2663 | .IP "pack/unpack repeat count overflow" 4 | |
2664 | .IX Item "pack/unpack repeat count overflow" | |
2665 | (F) You can't specify a repeat count so large that it overflows your | |
2666 | signed integers. See \*(L"pack\*(R" in perlfunc. | |
2667 | .IP "page overflow" 4 | |
2668 | .IX Item "page overflow" | |
2669 | (W io) A single call to \fIwrite()\fR produced more lines than can fit on a | |
2670 | page. See perlform. | |
2671 | .ie n .IP "panic: %s" 4 | |
2672 | .el .IP "panic: \f(CW%s\fR" 4 | |
2673 | .IX Item "panic: %s" | |
2674 | (P) An internal error. | |
2675 | .IP "panic: ck_grep" 4 | |
2676 | .IX Item "panic: ck_grep" | |
2677 | (P) Failed an internal consistency check trying to compile a grep. | |
2678 | .IP "panic: ck_split" 4 | |
2679 | .IX Item "panic: ck_split" | |
2680 | (P) Failed an internal consistency check trying to compile a split. | |
2681 | .IP "panic: corrupt saved stack index" 4 | |
2682 | .IX Item "panic: corrupt saved stack index" | |
2683 | (P) The savestack was requested to restore more localized values than | |
2684 | there are in the savestack. | |
2685 | .IP "panic: del_backref" 4 | |
2686 | .IX Item "panic: del_backref" | |
2687 | (P) Failed an internal consistency check while trying to reset a weak | |
2688 | reference. | |
2689 | .IP "panic: Devel::DProf inconsistent subroutine return" 4 | |
2690 | .IX Item "panic: Devel::DProf inconsistent subroutine return" | |
2691 | (P) Devel::DProf called a subroutine that exited using goto(\s-1LABEL\s0), | |
2692 | last(\s-1LABEL\s0) or next(\s-1LABEL\s0). Leaving that way a subroutine called from | |
2693 | an \s-1XSUB\s0 will lead very probably to a crash of the interpreter. This is | |
2694 | a bug that will hopefully one day get fixed. | |
2695 | .ie n .IP "panic: die %s" 4 | |
2696 | .el .IP "panic: die \f(CW%s\fR" 4 | |
2697 | .IX Item "panic: die %s" | |
2698 | (P) We popped the context stack to an eval context, and then discovered | |
2699 | it wasn't an eval context. | |
2700 | .IP "panic: do_subst" 4 | |
2701 | .IX Item "panic: do_subst" | |
2702 | (P) The internal \fIpp_subst()\fR routine was called with invalid operational | |
2703 | data. | |
2704 | .IP "panic: do_trans_%s" 4 | |
2705 | .IX Item "panic: do_trans_%s" | |
2706 | (P) The internal do_trans routines were called with invalid operational | |
2707 | data. | |
2708 | .IP "panic: frexp" 4 | |
2709 | .IX Item "panic: frexp" | |
2710 | (P) The library function \fIfrexp()\fR failed, making printf(\*(L"%f\*(R") impossible. | |
2711 | .IP "panic: goto" 4 | |
2712 | .IX Item "panic: goto" | |
2713 | (P) We popped the context stack to a context with the specified label, | |
2714 | and then discovered it wasn't a context we know how to do a goto in. | |
2715 | .IP "panic: \s-1INTERPCASEMOD\s0" 4 | |
2716 | .IX Item "panic: INTERPCASEMOD" | |
2717 | (P) The lexer got into a bad state at a case modifier. | |
2718 | .IP "panic: \s-1INTERPCONCAT\s0" 4 | |
2719 | .IX Item "panic: INTERPCONCAT" | |
2720 | (P) The lexer got into a bad state parsing a string with brackets. | |
2721 | .IP "panic: kid popen errno read" 4 | |
2722 | .IX Item "panic: kid popen errno read" | |
2723 | (F) forked child returned an incomprehensible message about its errno. | |
2724 | .IP "panic: last" 4 | |
2725 | .IX Item "panic: last" | |
2726 | (P) We popped the context stack to a block context, and then discovered | |
2727 | it wasn't a block context. | |
2728 | .IP "panic: leave_scope clearsv" 4 | |
2729 | .IX Item "panic: leave_scope clearsv" | |
2730 | (P) A writable lexical variable became read-only somehow within the | |
2731 | scope. | |
2732 | .IP "panic: leave_scope inconsistency" 4 | |
2733 | .IX Item "panic: leave_scope inconsistency" | |
2734 | (P) The savestack probably got out of sync. At least, there was an | |
2735 | invalid enum on the top of it. | |
2736 | .IP "panic: magic_killbackrefs" 4 | |
2737 | .IX Item "panic: magic_killbackrefs" | |
2738 | (P) Failed an internal consistency check while trying to reset all weak | |
2739 | references to an object. | |
2740 | .IP "panic: malloc" 4 | |
2741 | .IX Item "panic: malloc" | |
2742 | (P) Something requested a negative number of bytes of malloc. | |
2743 | .IP "panic: mapstart" 4 | |
2744 | .IX Item "panic: mapstart" | |
2745 | (P) The compiler is screwed up with respect to the \fImap()\fR function. | |
2746 | .IP "panic: memory wrap" 4 | |
2747 | .IX Item "panic: memory wrap" | |
2748 | (P) Something tried to allocate more memory than possible. | |
2749 | .IP "panic: null array" 4 | |
2750 | .IX Item "panic: null array" | |
2751 | (P) One of the internal array routines was passed a null \s-1AV\s0 pointer. | |
2752 | .IP "panic: pad_alloc" 4 | |
2753 | .IX Item "panic: pad_alloc" | |
2754 | (P) The compiler got confused about which scratch pad it was allocating | |
2755 | and freeing temporaries and lexicals from. | |
2756 | .IP "panic: pad_free curpad" 4 | |
2757 | .IX Item "panic: pad_free curpad" | |
2758 | (P) The compiler got confused about which scratch pad it was allocating | |
2759 | and freeing temporaries and lexicals from. | |
2760 | .IP "panic: pad_free po" 4 | |
2761 | .IX Item "panic: pad_free po" | |
2762 | (P) An invalid scratch pad offset was detected internally. | |
2763 | .IP "panic: pad_reset curpad" 4 | |
2764 | .IX Item "panic: pad_reset curpad" | |
2765 | (P) The compiler got confused about which scratch pad it was allocating | |
2766 | and freeing temporaries and lexicals from. | |
2767 | .IP "panic: pad_sv po" 4 | |
2768 | .IX Item "panic: pad_sv po" | |
2769 | (P) An invalid scratch pad offset was detected internally. | |
2770 | .IP "panic: pad_swipe curpad" 4 | |
2771 | .IX Item "panic: pad_swipe curpad" | |
2772 | (P) The compiler got confused about which scratch pad it was allocating | |
2773 | and freeing temporaries and lexicals from. | |
2774 | .IP "panic: pad_swipe po" 4 | |
2775 | .IX Item "panic: pad_swipe po" | |
2776 | (P) An invalid scratch pad offset was detected internally. | |
2777 | .IP "panic: pp_iter" 4 | |
2778 | .IX Item "panic: pp_iter" | |
2779 | (P) The foreach iterator got called in a non-loop context frame. | |
2780 | .IP "panic: pp_match%s" 4 | |
2781 | .IX Item "panic: pp_match%s" | |
2782 | (P) The internal \fIpp_match()\fR routine was called with invalid operational | |
2783 | data. | |
2784 | .IP "panic: pp_split" 4 | |
2785 | .IX Item "panic: pp_split" | |
2786 | (P) Something terrible went wrong in setting up for the split. | |
2787 | .IP "panic: realloc" 4 | |
2788 | .IX Item "panic: realloc" | |
2789 | (P) Something requested a negative number of bytes of realloc. | |
2790 | .IP "panic: restartop" 4 | |
2791 | .IX Item "panic: restartop" | |
2792 | (P) Some internal routine requested a goto (or something like it), and | |
2793 | didn't supply the destination. | |
2794 | .IP "panic: return" 4 | |
2795 | .IX Item "panic: return" | |
2796 | (P) We popped the context stack to a subroutine or eval context, and | |
2797 | then discovered it wasn't a subroutine or eval context. | |
2798 | .IP "panic: scan_num" 4 | |
2799 | .IX Item "panic: scan_num" | |
2800 | (P) \fIscan_num()\fR got called on something that wasn't a number. | |
2801 | .IP "panic: sv_insert" 4 | |
2802 | .IX Item "panic: sv_insert" | |
2803 | (P) The \fIsv_insert()\fR routine was told to remove more string than there | |
2804 | was string. | |
2805 | .IP "panic: top_env" 4 | |
2806 | .IX Item "panic: top_env" | |
2807 | (P) The compiler attempted to do a goto, or something weird like that. | |
2808 | .IP "panic: utf16_to_utf8: odd bytelen" 4 | |
2809 | .IX Item "panic: utf16_to_utf8: odd bytelen" | |
2810 | (P) Something tried to call utf16_to_utf8 with an odd (as opposed | |
2811 | to even) byte length. | |
2812 | .IP "panic: yylex" 4 | |
2813 | .IX Item "panic: yylex" | |
2814 | (P) The lexer got into a bad state while processing a case modifier. | |
2815 | .ie n .IP "Parentheses missing around ""%s"" list" 4 | |
2816 | .el .IP "Parentheses missing around ``%s'' list" 4 | |
2817 | .IX Item "Parentheses missing around %s list" | |
2818 | (W parenthesis) You said something like | |
2819 | .Sp | |
2820 | .Vb 1 | |
2821 | \& my $foo, $bar = @_; | |
2822 | .Ve | |
2823 | .Sp | |
2824 | when you meant | |
2825 | .Sp | |
2826 | .Vb 1 | |
2827 | \& my ($foo, $bar) = @_; | |
2828 | .Ve | |
2829 | .Sp | |
2830 | Remember that \*(L"my\*(R", \*(L"our\*(R", and \*(L"local\*(R" bind tighter than comma. | |
2831 | .ie n .IP """\-p""\fR destination: \f(CW%s" 4 | |
2832 | .el .IP "\f(CW\-p\fR destination: \f(CW%s\fR" 4 | |
2833 | .IX Item "-p destination: %s" | |
2834 | (F) An error occurred during the implicit output invoked by the \f(CW\*(C`\-p\*(C'\fR | |
2835 | command-line switch. (This output goes to \s-1STDOUT\s0 unless you've | |
2836 | redirected it with \fIselect()\fR.) | |
2837 | .ie n .IP "(perhaps you forgot to load ""%s""?)" 4 | |
2838 | .el .IP "(perhaps you forgot to load ``%s''?)" 4 | |
2839 | .IX Item "(perhaps you forgot to load %s?)" | |
2840 | (F) This is an educated guess made in conjunction with the message | |
2841 | \&\*(L"Can't locate object method \e\*(R"%s\e\*(L" via package \e\*(R"%s\e"". It often means | |
2842 | that a method requires a package that has not been loaded. | |
2843 | .ie n .IP "Perl %s\fR required\*(--this is only version \f(CW%s, stopped" 4 | |
2844 | .el .IP "Perl \f(CW%s\fR required\*(--this is only version \f(CW%s\fR, stopped" 4 | |
2845 | .IX Item "Perl %s requiredthis is only version %s, stopped" | |
2846 | (F) The module in question uses features of a version of Perl more | |
2847 | recent than the currently running version. How long has it been since | |
2848 | you upgraded, anyway? See \*(L"require\*(R" in perlfunc. | |
2849 | .IP "\s-1PERL_SH_DIR\s0 too long" 4 | |
2850 | .IX Item "PERL_SH_DIR too long" | |
2851 | (F) An error peculiar to \s-1OS/2\s0. \s-1PERL_SH_DIR\s0 is the directory to find the | |
2852 | \&\f(CW\*(C`sh\*(C'\fR\-shell in. See \*(L"\s-1PERL_SH_DIR\s0\*(R" in perlos2. | |
2853 | .ie n .IP "\s-1PERL_SIGNALS\s0 illegal: ""%s""" 4 | |
2854 | .el .IP "\s-1PERL_SIGNALS\s0 illegal: ``%s''" 4 | |
2855 | .IX Item "PERL_SIGNALS illegal: %s" | |
2856 | See \*(L"\s-1PERL_SIGNALS\s0\*(R" in perlrun for legal values. | |
2857 | .IP "perl: warning: Setting locale failed." 4 | |
2858 | .IX Item "perl: warning: Setting locale failed." | |
2859 | (S) The whole warning message will look something like: | |
2860 | .Sp | |
2861 | .Vb 6 | |
2862 | \& perl: warning: Setting locale failed. | |
2863 | \& perl: warning: Please check that your locale settings: | |
2864 | \& LC_ALL = "En_US", | |
2865 | \& LANG = (unset) | |
2866 | \& are supported and installed on your system. | |
2867 | \& perl: warning: Falling back to the standard locale ("C"). | |
2868 | .Ve | |
2869 | .Sp | |
2870 | Exactly what were the failed locale settings varies. In the above the | |
2871 | settings were that the \s-1LC_ALL\s0 was \*(L"En_US\*(R" and the \s-1LANG\s0 had no value. | |
2872 | This error means that Perl detected that you and/or your operating | |
2873 | system supplier and/or system administrator have set up the so-called | |
2874 | locale system but Perl could not use those settings. This was not | |
2875 | dead serious, fortunately: there is a \*(L"default locale\*(R" called \*(L"C\*(R" that | |
2876 | Perl can and will use, the script will be run. Before you really fix | |
2877 | the problem, however, you will get the same error message each time | |
2878 | you run Perl. How to really fix the problem can be found in | |
2879 | perllocale section \fB\s-1LOCALE\s0 \s-1PROBLEMS\s0\fR. | |
2880 | .IP "Permission denied" 4 | |
2881 | .IX Item "Permission denied" | |
2882 | (F) The setuid emulator in suidperl decided you were up to no good. | |
2883 | .ie n .IP "pid %x not a child" 4 | |
2884 | .el .IP "pid \f(CW%x\fR not a child" 4 | |
2885 | .IX Item "pid %x not a child" | |
2886 | (W exec) A warning peculiar to \s-1VMS\s0. \fIWaitpid()\fR was asked to wait for a | |
2887 | process which isn't a subprocess of the current process. While this is | |
2888 | fine from \s-1VMS\s0' perspective, it's probably not what you intended. | |
2889 | .IP "'P' must have an explicit size in unpack" 4 | |
2890 | .IX Item "'P' must have an explicit size in unpack" | |
2891 | (F) The unpack format P must have an explicit size, not \*(L"*\*(R". | |
2892 | .IP "\fB\-P\fR not allowed for setuid/setgid script" 4 | |
2893 | .IX Item "-P not allowed for setuid/setgid script" | |
2894 | (F) The script would have to be opened by the C preprocessor by name, | |
2895 | which provides a race condition that breaks security. | |
2896 | .IP "\s-1POSIX\s0 class [:%s:] unknown in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
2897 | .IX Item "POSIX class [:%s:] unknown in regex; marked by <-- HERE in m/%s/" | |
2898 | (F) The class in the character class [: :] syntax is unknown. The <\-\- \s-1HERE\s0 | |
2899 | shows in the regular expression about where the problem was discovered. | |
2900 | Note that the \s-1POSIX\s0 character classes do \fBnot\fR have the \f(CW\*(C`is\*(C'\fR prefix | |
2901 | the corresponding C interfaces have: in other words, it's \f(CW\*(C`[[:print:]]\*(C'\fR, | |
2902 | not \f(CW\*(C`isprint\*(C'\fR. See perlre. | |
2903 | .IP "\s-1POSIX\s0 getpgrp can't take an argument" 4 | |
2904 | .IX Item "POSIX getpgrp can't take an argument" | |
2905 | (F) Your system has \s-1POSIX\s0 \fIgetpgrp()\fR, which takes no argument, unlike | |
2906 | the \s-1BSD\s0 version, which takes a pid. | |
2907 | .IP "\s-1POSIX\s0 syntax [%s] belongs inside character classes in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
2908 | .IX Item "POSIX syntax [%s] belongs inside character classes in regex; marked by <-- HERE in m/%s/" | |
2909 | (W regexp) The character class constructs [: :], [= =], and [. .] go | |
2910 | \&\fIinside\fR character classes, the [] are part of the construct, for example: | |
2911 | /[012[:alpha:]345]/. Note that [= =] and [. .] are not currently | |
2912 | implemented; they are simply placeholders for future extensions and will | |
2913 | cause fatal errors. The <\-\- \s-1HERE\s0 shows in the regular expression about | |
2914 | where the problem was discovered. See perlre. | |
2915 | .IP "\s-1POSIX\s0 syntax [. .] is reserved for future extensions in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
2916 | .IX Item "POSIX syntax [. .] is reserved for future extensions in regex; marked by <-- HERE in m/%s/" | |
2917 | (F regexp) Within regular expression character classes ([]) the syntax | |
2918 | beginning with \*(L"[.\*(R" and ending with \*(L".]\*(R" is reserved for future extensions. | |
2919 | If you need to represent those character sequences inside a regular | |
2920 | expression character class, just quote the square brackets with the | |
2921 | backslash: \*(L"\e[.\*(R" and \*(L".\e]\*(R". The <\-\- \s-1HERE\s0 shows in the regular expression | |
2922 | about where the problem was discovered. See perlre. | |
2923 | .IP "\s-1POSIX\s0 syntax [= =] is reserved for future extensions in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
2924 | .IX Item "POSIX syntax [= =] is reserved for future extensions in regex; marked by <-- HERE in m/%s/" | |
2925 | (F) Within regular expression character classes ([]) the syntax beginning | |
2926 | with \*(L"[=\*(R" and ending with \*(L"=]\*(R" is reserved for future extensions. If you | |
2927 | need to represent those character sequences inside a regular expression | |
2928 | character class, just quote the square brackets with the backslash: \*(L"\e[=\*(R" | |
2929 | and \*(L"=\e]\*(R". The <\-\- \s-1HERE\s0 shows in the regular expression about where the | |
2930 | problem was discovered. See perlre. | |
2931 | .IP "Possible attempt to put comments in \fIqw()\fR list" 4 | |
2932 | .IX Item "Possible attempt to put comments in qw() list" | |
2933 | (W qw) \fIqw()\fR lists contain items separated by whitespace; as with literal | |
2934 | strings, comment characters are not ignored, but are instead treated as | |
2935 | literal data. (You may have used different delimiters than the | |
2936 | parentheses shown here; braces are also frequently used.) | |
2937 | .Sp | |
2938 | You probably wrote something like this: | |
2939 | .Sp | |
2940 | .Vb 4 | |
2941 | \& @list = qw( | |
2942 | \& a # a comment | |
2943 | \& b # another comment | |
2944 | \& ); | |
2945 | .Ve | |
2946 | .Sp | |
2947 | when you should have written this: | |
2948 | .Sp | |
2949 | .Vb 4 | |
2950 | \& @list = qw( | |
2951 | \& a | |
2952 | \& b | |
2953 | \& ); | |
2954 | .Ve | |
2955 | .Sp | |
2956 | If you really want comments, build your list the | |
2957 | old-fashioned way, with quotes and commas: | |
2958 | .Sp | |
2959 | .Vb 4 | |
2960 | \& @list = ( | |
2961 | \& 'a', # a comment | |
2962 | \& 'b', # another comment | |
2963 | \& ); | |
2964 | .Ve | |
2965 | .IP "Possible attempt to separate words with commas" 4 | |
2966 | .IX Item "Possible attempt to separate words with commas" | |
2967 | (W qw) \fIqw()\fR lists contain items separated by whitespace; therefore | |
2968 | commas aren't needed to separate the items. (You may have used | |
2969 | different delimiters than the parentheses shown here; braces are also | |
2970 | frequently used.) | |
2971 | .Sp | |
2972 | You probably wrote something like this: | |
2973 | .Sp | |
2974 | .Vb 1 | |
2975 | \& qw! a, b, c !; | |
2976 | .Ve | |
2977 | .Sp | |
2978 | which puts literal commas into some of the list items. Write it without | |
2979 | commas if you don't want them to appear in your data: | |
2980 | .Sp | |
2981 | .Vb 1 | |
2982 | \& qw! a b c !; | |
2983 | .Ve | |
2984 | .ie n .IP "Possible memory corruption: %s overflowed 3rd argument" 4 | |
2985 | .el .IP "Possible memory corruption: \f(CW%s\fR overflowed 3rd argument" 4 | |
2986 | .IX Item "Possible memory corruption: %s overflowed 3rd argument" | |
2987 | (F) An \fIioctl()\fR or \fIfcntl()\fR returned more than Perl was bargaining for. | |
2988 | Perl guesses a reasonable buffer size, but puts a sentinel byte at the | |
2989 | end of the buffer just in case. This sentinel byte got clobbered, and | |
2990 | Perl assumes that memory is now corrupted. See \*(L"ioctl\*(R" in perlfunc. | |
2991 | .ie n .IP "Possible precedence problem on bitwise %c operator" 4 | |
2992 | .el .IP "Possible precedence problem on bitwise \f(CW%c\fR operator" 4 | |
2993 | .IX Item "Possible precedence problem on bitwise %c operator" | |
2994 | (W precedence) Your program uses a bitwise logical operator in conjunction | |
2995 | with a numeric comparison operator, like this : | |
2996 | .Sp | |
2997 | .Vb 1 | |
2998 | \& if ($x & $y == 0) { ... } | |
2999 | .Ve | |
3000 | .Sp | |
3001 | This expression is actually equivalent to \f(CW\*(C`$x & ($y == 0)\*(C'\fR, due to the | |
3002 | higher precedence of \f(CW\*(C`==\*(C'\fR. This is probably not what you want. (If you | |
3003 | really meant to write this, disable the warning, or, better, put the | |
3004 | parentheses explicitly and write \f(CW\*(C`$x & ($y == 0)\*(C'\fR). | |
3005 | .ie n .IP "Possible unintended interpolation of %s in string" 4 | |
3006 | .el .IP "Possible unintended interpolation of \f(CW%s\fR in string" 4 | |
3007 | .IX Item "Possible unintended interpolation of %s in string" | |
3008 | (W ambiguous) You said something like `@foo' in a double-quoted string | |
3009 | but there was no array \f(CW@foo\fR in scope at the time. If you wanted a | |
3010 | literal \f(CW@foo\fR, then write it as \e@foo; otherwise find out what happened | |
3011 | to the array you apparently lost track of. | |
3012 | .ie n .IP "Possible Y2K bug: %s" 4 | |
3013 | .el .IP "Possible Y2K bug: \f(CW%s\fR" 4 | |
3014 | .IX Item "Possible Y2K bug: %s" | |
3015 | (W y2k) You are concatenating the number 19 with another number, which | |
3016 | could be a potential Year 2000 problem. | |
3017 | .ie n .IP "pragma ""attrs"" is deprecated, use ""sub \s-1NAME\s0 : \s-1ATTRS\s0"" instead" 4 | |
3018 | .el .IP "pragma ``attrs'' is deprecated, use ``sub \s-1NAME\s0 : \s-1ATTRS\s0'' instead" 4 | |
3019 | .IX Item "pragma attrs is deprecated, use sub NAME : ATTRS instead" | |
3020 | (D deprecated) You have written something like this: | |
3021 | .Sp | |
3022 | .Vb 4 | |
3023 | \& sub doit | |
3024 | \& { | |
3025 | \& use attrs qw(locked); | |
3026 | \& } | |
3027 | .Ve | |
3028 | .Sp | |
3029 | You should use the new declaration syntax instead. | |
3030 | .Sp | |
3031 | .Vb 3 | |
3032 | \& sub doit : locked | |
3033 | \& { | |
3034 | \& ... | |
3035 | .Ve | |
3036 | .Sp | |
3037 | The \f(CW\*(C`use attrs\*(C'\fR pragma is now obsolete, and is only provided for | |
3038 | backward\-compatibility. See \*(L"Subroutine Attributes\*(R" in perlsub. | |
3039 | .ie n .IP "Precedence problem: open %s should be open(%s)" 4 | |
3040 | .el .IP "Precedence problem: open \f(CW%s\fR should be open(%s)" 4 | |
3041 | .IX Item "Precedence problem: open %s should be open(%s)" | |
3042 | (S precedence) The old irregular construct | |
3043 | .Sp | |
3044 | .Vb 1 | |
3045 | \& open FOO || die; | |
3046 | .Ve | |
3047 | .Sp | |
3048 | is now misinterpreted as | |
3049 | .Sp | |
3050 | .Vb 1 | |
3051 | \& open(FOO || die); | |
3052 | .Ve | |
3053 | .Sp | |
3054 | because of the strict regularization of Perl 5's grammar into unary and | |
3055 | list operators. (The old open was a little of both.) You must put | |
3056 | parentheses around the filehandle, or use the new \*(L"or\*(R" operator instead | |
3057 | of \*(L"||\*(R". | |
3058 | .IP "Premature end of script headers" 4 | |
3059 | .IX Item "Premature end of script headers" | |
3060 | See Server error. | |
3061 | .ie n .IP "\fIprintf()\fR on closed filehandle %s" 4 | |
3062 | .el .IP "\fIprintf()\fR on closed filehandle \f(CW%s\fR" 4 | |
3063 | .IX Item "printf() on closed filehandle %s" | |
3064 | (W closed) The filehandle you're writing to got itself closed sometime | |
3065 | before now. Check your control flow. | |
3066 | .ie n .IP "\fIprint()\fR on closed filehandle %s" 4 | |
3067 | .el .IP "\fIprint()\fR on closed filehandle \f(CW%s\fR" 4 | |
3068 | .IX Item "print() on closed filehandle %s" | |
3069 | (W closed) The filehandle you're printing on got itself closed sometime | |
3070 | before now. Check your control flow. | |
3071 | .IP "Process terminated by SIG%s" 4 | |
3072 | .IX Item "Process terminated by SIG%s" | |
3073 | (W) This is a standard message issued by \s-1OS/2\s0 applications, while *nix | |
3074 | applications die in silence. It is considered a feature of the \s-1OS/2\s0 | |
3075 | port. One can easily disable this by appropriate sighandlers, see | |
3076 | \&\*(L"Signals\*(R" in perlipc. See also \*(L"Process terminated by \s-1SIGTERM/SIGINT\s0\*(R" | |
3077 | in perlos2. | |
3078 | .ie n .IP "Prototype mismatch: %s\fR vs \f(CW%s" 4 | |
3079 | .el .IP "Prototype mismatch: \f(CW%s\fR vs \f(CW%s\fR" 4 | |
3080 | .IX Item "Prototype mismatch: %s vs %s" | |
3081 | (S prototype) The subroutine being declared or defined had previously been | |
3082 | declared or defined with a different function prototype. | |
3083 | .IP "Prototype not terminated" 4 | |
3084 | .IX Item "Prototype not terminated" | |
3085 | (F) You've omitted the closing parenthesis in a function prototype | |
3086 | definition. | |
3087 | .IP "Pseudo-hashes are deprecated" 4 | |
3088 | .IX Item "Pseudo-hashes are deprecated" | |
3089 | (D deprecated) Pseudo-hashes were deprecated in Perl 5.8.0 and they | |
3090 | will be removed in Perl 5.10.0, see perl58delta for more details. | |
3091 | You can continue to use the \f(CW\*(C`fields\*(C'\fR pragma. | |
3092 | .IP "Quantifier follows nothing in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3093 | .IX Item "Quantifier follows nothing in regex; marked by <-- HERE in m/%s/" | |
3094 | (F) You started a regular expression with a quantifier. Backslash it if you | |
3095 | meant it literally. The <\-\- \s-1HERE\s0 shows in the regular expression about | |
3096 | where the problem was discovered. See perlre. | |
3097 | .ie n .IP "Quantifier in {,} bigger than %d in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3098 | .el .IP "Quantifier in {,} bigger than \f(CW%d\fR in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3099 | .IX Item "Quantifier in {,} bigger than %d in regex; marked by <-- HERE in m/%s/" | |
3100 | (F) There is currently a limit to the size of the min and max values of the | |
3101 | {min,max} construct. The <\-\- \s-1HERE\s0 shows in the regular expression about where | |
3102 | the problem was discovered. See perlre. | |
3103 | .IP "Quantifier unexpected on zero-length expression; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3104 | .IX Item "Quantifier unexpected on zero-length expression; marked by <-- HERE in m/%s/" | |
3105 | (W regexp) You applied a regular expression quantifier in a place where | |
3106 | it makes no sense, such as on a zero-width assertion. Try putting the | |
3107 | quantifier inside the assertion instead. For example, the way to match | |
3108 | \&\*(L"abc\*(R" provided that it is followed by three repetitions of \*(L"xyz\*(R" is | |
3109 | \&\f(CW\*(C`/abc(?=(?:xyz){3})/\*(C'\fR, not \f(CW\*(C`/abc(?=xyz){3}/\*(C'\fR. | |
3110 | .Sp | |
3111 | The <\-\- \s-1HERE\s0 shows in the regular expression about where the problem was | |
3112 | discovered. | |
3113 | .IP "Range iterator outside integer range" 4 | |
3114 | .IX Item "Range iterator outside integer range" | |
3115 | (F) One (or both) of the numeric arguments to the range operator \*(L"..\*(R" | |
3116 | are outside the range which can be represented by integers internally. | |
3117 | One possible workaround is to force Perl to use magical string increment | |
3118 | by prepending \*(L"0\*(R" to your numbers. | |
3119 | .ie n .IP "\fIreadline()\fR on closed filehandle %s" 4 | |
3120 | .el .IP "\fIreadline()\fR on closed filehandle \f(CW%s\fR" 4 | |
3121 | .IX Item "readline() on closed filehandle %s" | |
3122 | (W closed) The filehandle you're reading from got itself closed sometime | |
3123 | before now. Check your control flow. | |
3124 | .ie n .IP "\fIread()\fR on closed filehandle %s" 4 | |
3125 | .el .IP "\fIread()\fR on closed filehandle \f(CW%s\fR" 4 | |
3126 | .IX Item "read() on closed filehandle %s" | |
3127 | (W closed) You tried to read from a closed filehandle. | |
3128 | .ie n .IP "\fIread()\fR on unopened filehandle %s" 4 | |
3129 | .el .IP "\fIread()\fR on unopened filehandle \f(CW%s\fR" 4 | |
3130 | .IX Item "read() on unopened filehandle %s" | |
3131 | (W unopened) You tried to read from a filehandle that was never opened. | |
3132 | .ie n .IP "Reallocation too large: %lx" 4 | |
3133 | .el .IP "Reallocation too large: \f(CW%lx\fR" 4 | |
3134 | .IX Item "Reallocation too large: %lx" | |
3135 | (F) You can't allocate more than 64K on an MS-DOS machine. | |
3136 | .IP "\fIrealloc()\fR of freed memory ignored" 4 | |
3137 | .IX Item "realloc() of freed memory ignored" | |
3138 | (S malloc) An internal routine called \fIrealloc()\fR on something that had | |
3139 | already been freed. | |
3140 | .IP "Recompile perl with \fB\-D\fR\s-1DEBUGGING\s0 to use \fB\-D\fR switch" 4 | |
3141 | .IX Item "Recompile perl with -DDEBUGGING to use -D switch" | |
3142 | (F debugging) You can't use the \fB\-D\fR option unless the code to produce | |
3143 | the desired output is compiled into Perl, which entails some overhead, | |
3144 | which is why it's currently left out of your copy. | |
3145 | .IP "Recursive inheritance detected in package '%s'" 4 | |
3146 | .IX Item "Recursive inheritance detected in package '%s'" | |
3147 | (F) More than 100 levels of inheritance were used. Probably indicates | |
3148 | an unintended loop in your inheritance hierarchy. | |
3149 | .ie n .IP "Recursive inheritance detected while looking for method %s" 4 | |
3150 | .el .IP "Recursive inheritance detected while looking for method \f(CW%s\fR" 4 | |
3151 | .IX Item "Recursive inheritance detected while looking for method %s" | |
3152 | (F) More than 100 levels of inheritance were encountered while invoking | |
3153 | a method. Probably indicates an unintended loop in your inheritance | |
3154 | hierarchy. | |
3155 | .IP "Reference found where even-sized list expected" 4 | |
3156 | .IX Item "Reference found where even-sized list expected" | |
3157 | (W misc) You gave a single reference where Perl was expecting a list | |
3158 | with an even number of elements (for assignment to a hash). This usually | |
3159 | means that you used the anon hash constructor when you meant to use | |
3160 | parens. In any case, a hash requires key/value \fBpairs\fR. | |
3161 | .Sp | |
3162 | .Vb 4 | |
3163 | \& %hash = { one => 1, two => 2, }; # WRONG | |
3164 | \& %hash = [ qw/ an anon array / ]; # WRONG | |
3165 | \& %hash = ( one => 1, two => 2, ); # right | |
3166 | \& %hash = qw( one 1 two 2 ); # also fine | |
3167 | .Ve | |
3168 | .IP "Reference is already weak" 4 | |
3169 | .IX Item "Reference is already weak" | |
3170 | (W misc) You have attempted to weaken a reference that is already weak. | |
3171 | Doing so has no effect. | |
3172 | .IP "Reference miscount in \fIsv_replace()\fR" 4 | |
3173 | .IX Item "Reference miscount in sv_replace()" | |
3174 | (W internal) The internal \fIsv_replace()\fR function was handed a new \s-1SV\s0 with | |
3175 | a reference count of other than 1. | |
3176 | .IP "Reference to nonexistent group in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3177 | .IX Item "Reference to nonexistent group in regex; marked by <-- HERE in m/%s/" | |
3178 | (F) You used something like \f(CW\*(C`\e7\*(C'\fR in your regular expression, but there are | |
3179 | not at least seven sets of capturing parentheses in the expression. If you | |
3180 | wanted to have the character with value 7 inserted into the regular expression, | |
3181 | prepend a zero to make the number at least two digits: \f(CW\*(C`\e07\*(C'\fR | |
3182 | .Sp | |
3183 | The <\-\- \s-1HERE\s0 shows in the regular expression about where the problem was | |
3184 | discovered. | |
3185 | .IP "regexp memory corruption" 4 | |
3186 | .IX Item "regexp memory corruption" | |
3187 | (P) The regular expression engine got confused by what the regular | |
3188 | expression compiler gave it. | |
3189 | .IP "Regexp out of space" 4 | |
3190 | .IX Item "Regexp out of space" | |
3191 | (P) A \*(L"can't happen\*(R" error, because \fIsafemalloc()\fR should have caught it | |
3192 | earlier. | |
3193 | .IP "Repeated format line will never terminate (~~ and @# incompatible)" 4 | |
3194 | .IX Item "Repeated format line will never terminate (~~ and @# incompatible)" | |
3195 | (F) Your format contains the ~~ repeat-until-blank sequence and a | |
3196 | numeric field that will never go blank so that the repetition never | |
3197 | terminates. You might use ^# instead. See perlform. | |
3198 | .ie n .IP "Reversed %s= operator" 4 | |
3199 | .el .IP "Reversed \f(CW%s\fR= operator" 4 | |
3200 | .IX Item "Reversed %s= operator" | |
3201 | (W syntax) You wrote your assignment operator backwards. The = must | |
3202 | always comes last, to avoid ambiguity with subsequent unary operators. | |
3203 | .IP "Runaway format" 4 | |
3204 | .IX Item "Runaway format" | |
3205 | (F) Your format contained the ~~ repeat-until-blank sequence, but it | |
3206 | produced 200 lines at once, and the 200th line looked exactly like the | |
3207 | 199th line. Apparently you didn't arrange for the arguments to exhaust | |
3208 | themselves, either by using ^ instead of @ (for scalar variables), or by | |
3209 | shifting or popping (for array variables). See perlform. | |
3210 | .ie n .IP "Scalars leaked: %d" 4 | |
3211 | .el .IP "Scalars leaked: \f(CW%d\fR" 4 | |
3212 | .IX Item "Scalars leaked: %d" | |
3213 | (P) Something went wrong in Perl's internal bookkeeping of scalars: | |
3214 | not all scalar variables were deallocated by the time Perl exited. | |
3215 | What this usually indicates is a memory leak, which is of course bad, | |
3216 | especially if the Perl program is intended to be long\-running. | |
3217 | .IP "Scalar value @%s[%s] better written as $%s[%s]" 4 | |
3218 | .IX Item "Scalar value @%s[%s] better written as $%s[%s]" | |
3219 | (W syntax) You've used an array slice (indicated by @) to select a | |
3220 | single element of an array. Generally it's better to ask for a scalar | |
3221 | value (indicated by $). The difference is that \f(CW$foo[&bar]\fR always | |
3222 | behaves like a scalar, both when assigning to it and when evaluating its | |
3223 | argument, while \f(CW@foo[&bar]\fR behaves like a list when you assign to it, | |
3224 | and provides a list context to its subscript, which can do weird things | |
3225 | if you're expecting only one subscript. | |
3226 | .Sp | |
3227 | On the other hand, if you were actually hoping to treat the array | |
3228 | element as a list, you need to look into how references work, because | |
3229 | Perl will not magically convert between scalars and lists for you. See | |
3230 | perlref. | |
3231 | .IP "Scalar value @%s{%s} better written as $%s{%s}" 4 | |
3232 | .IX Item "Scalar value @%s{%s} better written as $%s{%s}" | |
3233 | (W syntax) You've used a hash slice (indicated by @) to select a single | |
3234 | element of a hash. Generally it's better to ask for a scalar value | |
3235 | (indicated by $). The difference is that \f(CW$foo{&bar}\fR always behaves | |
3236 | like a scalar, both when assigning to it and when evaluating its | |
3237 | argument, while \f(CW@foo{&bar}\fR behaves like a list when you assign to it, | |
3238 | and provides a list context to its subscript, which can do weird things | |
3239 | if you're expecting only one subscript. | |
3240 | .Sp | |
3241 | On the other hand, if you were actually hoping to treat the hash element | |
3242 | as a list, you need to look into how references work, because Perl will | |
3243 | not magically convert between scalars and lists for you. See | |
3244 | perlref. | |
3245 | .IP "Script is not setuid/setgid in suidperl" 4 | |
3246 | .IX Item "Script is not setuid/setgid in suidperl" | |
3247 | (F) Oddly, the suidperl program was invoked on a script without a setuid | |
3248 | or setgid bit set. This doesn't make much sense. | |
3249 | .IP "Search pattern not terminated" 4 | |
3250 | .IX Item "Search pattern not terminated" | |
3251 | (F) The lexer couldn't find the final delimiter of a // or m{} | |
3252 | construct. Remember that bracketing delimiters count nesting level. | |
3253 | Missing the leading \f(CW\*(C`$\*(C'\fR from a variable \f(CW$m\fR may cause this error. | |
3254 | .Sp | |
3255 | Note that since Perl 5.9.0 a // can also be the \fIdefined-or\fR | |
3256 | construct, not just the empty search pattern. Therefore code written | |
3257 | in Perl 5.9.0 or later that uses the // as the \fIdefined-or\fR can be | |
3258 | misparsed by pre\-5.9.0 Perls as a non-terminated search pattern. | |
3259 | .IP "Search pattern not terminated or ternary operator parsed as search pattern" 4 | |
3260 | .IX Item "Search pattern not terminated or ternary operator parsed as search pattern" | |
3261 | (F) The lexer couldn't find the final delimiter of a \f(CW\*(C`?PATTERN?\*(C'\fR | |
3262 | construct. | |
3263 | .Sp | |
3264 | The question mark is also used as part of the ternary operator (as in | |
3265 | \&\f(CW\*(C`foo ? 0 : 1\*(C'\fR) leading to some ambiguous constructions being wrongly | |
3266 | parsed. One way to disambiguate the parsing is to put parentheses around | |
3267 | the conditional expression, i.e. \f(CW\*(C`(foo) ? 0 : 1\*(C'\fR. | |
3268 | .IP "%\fIsseek()\fR on unopened filehandle" 4 | |
3269 | .IX Item "%sseek() on unopened filehandle" | |
3270 | (W unopened) You tried to use the \fIseek()\fR or \fIsysseek()\fR function on a | |
3271 | filehandle that was either never opened or has since been closed. | |
3272 | .IP "select not implemented" 4 | |
3273 | .IX Item "select not implemented" | |
3274 | (F) This machine doesn't implement the \fIselect()\fR system call. | |
3275 | .IP "Self-ties of arrays and hashes are not supported" 4 | |
3276 | .IX Item "Self-ties of arrays and hashes are not supported" | |
3277 | (F) Self-ties are of arrays and hashes are not supported in | |
3278 | the current implementation. | |
3279 | .IP "Semicolon seems to be missing" 4 | |
3280 | .IX Item "Semicolon seems to be missing" | |
3281 | (W semicolon) A nearby syntax error was probably caused by a missing | |
3282 | semicolon, or possibly some other missing operator, such as a comma. | |
3283 | .IP "semi\-panic: attempt to dup freed string" 4 | |
3284 | .IX Item "semi-panic: attempt to dup freed string" | |
3285 | (S internal) The internal \fInewSVsv()\fR routine was called to duplicate a | |
3286 | scalar that had previously been marked as free. | |
3287 | .IP "sem%s not implemented" 4 | |
3288 | .IX Item "sem%s not implemented" | |
3289 | (F) You don't have System V semaphore \s-1IPC\s0 on your system. | |
3290 | .ie n .IP "\fIsend()\fR on closed socket %s" 4 | |
3291 | .el .IP "\fIsend()\fR on closed socket \f(CW%s\fR" 4 | |
3292 | .IX Item "send() on closed socket %s" | |
3293 | (W closed) The socket you're sending to got itself closed sometime | |
3294 | before now. Check your control flow. | |
3295 | .IP "Sequence (? incomplete in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3296 | .IX Item "Sequence (? incomplete in regex; marked by <-- HERE in m/%s/" | |
3297 | (F) A regular expression ended with an incomplete extension (?. The <\-\- \s-1HERE\s0 | |
3298 | shows in the regular expression about where the problem was discovered. See | |
3299 | perlre. | |
3300 | .IP "Sequence (?%s...) not implemented in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3301 | .IX Item "Sequence (?%s...) not implemented in regex; marked by <-- HERE in m/%s/" | |
3302 | (F) A proposed regular expression extension has the character reserved but | |
3303 | has not yet been written. The <\-\- \s-1HERE\s0 shows in the regular expression about | |
3304 | where the problem was discovered. See perlre. | |
3305 | .IP "Sequence (?%s...) not recognized in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3306 | .IX Item "Sequence (?%s...) not recognized in regex; marked by <-- HERE in m/%s/" | |
3307 | (F) You used a regular expression extension that doesn't make sense. The | |
3308 | <\-\- \s-1HERE\s0 shows in the regular expression about where the problem was | |
3309 | discovered. See perlre. | |
3310 | .IP "Sequence (?#... not terminated in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3311 | .IX Item "Sequence (?#... not terminated in regex; marked by <-- HERE in m/%s/" | |
3312 | (F) A regular expression comment must be terminated by a closing | |
3313 | parenthesis. Embedded parentheses aren't allowed. The <\-\- \s-1HERE\s0 shows in | |
3314 | the regular expression about where the problem was discovered. See | |
3315 | perlre. | |
3316 | .IP "Sequence (?{...}) not terminated or not {}\-balanced in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3317 | .IX Item "Sequence (?{...}) not terminated or not {}-balanced in regex; marked by <-- HERE in m/%s/" | |
3318 | (F) If the contents of a (?{...}) clause contains braces, they must balance | |
3319 | for Perl to properly detect the end of the clause. The <\-\- \s-1HERE\s0 shows in | |
3320 | the regular expression about where the problem was discovered. See | |
3321 | perlre. | |
3322 | .IP "500 Server error" 4 | |
3323 | .IX Item "500 Server error" | |
3324 | See Server error. | |
3325 | .IP "Server error" 4 | |
3326 | .IX Item "Server error" | |
3327 | This is the error message generally seen in a browser window when trying | |
3328 | to run a \s-1CGI\s0 program (including \s-1SSI\s0) over the web. The actual error text | |
3329 | varies widely from server to server. The most frequently-seen variants | |
3330 | are \*(L"500 Server error\*(R", \*(L"Method (something) not permitted\*(R", \*(L"Document | |
3331 | contains no data\*(R", \*(L"Premature end of script headers\*(R", and \*(L"Did not | |
3332 | produce a valid header\*(R". | |
3333 | .Sp | |
3334 | \&\fBThis is a \s-1CGI\s0 error, not a Perl error\fR. | |
3335 | .Sp | |
3336 | You need to make sure your script is executable, is accessible by the | |
3337 | user \s-1CGI\s0 is running the script under (which is probably not the user | |
3338 | account you tested it under), does not rely on any environment variables | |
3339 | (like \s-1PATH\s0) from the user it isn't running under, and isn't in a | |
3340 | location where the \s-1CGI\s0 server can't find it, basically, more or less. | |
3341 | Please see the following for more information: | |
3342 | .Sp | |
3343 | .Vb 3 | |
3344 | \& http://www.perl.org/CGI_MetaFAQ.html | |
3345 | \& http://www.htmlhelp.org/faq/cgifaq.html | |
3346 | \& http://www.w3.org/Security/Faq/ | |
3347 | .Ve | |
3348 | .Sp | |
3349 | You should also look at perlfaq9. | |
3350 | .IP "\fIsetegid()\fR not implemented" 4 | |
3351 | .IX Item "setegid() not implemented" | |
3352 | (F) You tried to assign to \f(CW$)\fR, and your operating system doesn't | |
3353 | support the \fIsetegid()\fR system call (or equivalent), or at least Configure | |
3354 | didn't think so. | |
3355 | .IP "\fIseteuid()\fR not implemented" 4 | |
3356 | .IX Item "seteuid() not implemented" | |
3357 | (F) You tried to assign to \f(CW$>\fR, and your operating system doesn't | |
3358 | support the \fIseteuid()\fR system call (or equivalent), or at least Configure | |
3359 | didn't think so. | |
3360 | .IP "setpgrp can't take arguments" 4 | |
3361 | .IX Item "setpgrp can't take arguments" | |
3362 | (F) Your system has the \fIsetpgrp()\fR from \s-1BSD\s0 4.2, which takes no | |
3363 | arguments, unlike \s-1POSIX\s0 \fIsetpgid()\fR, which takes a process \s-1ID\s0 and process | |
3364 | group \s-1ID\s0. | |
3365 | .IP "\fIsetrgid()\fR not implemented" 4 | |
3366 | .IX Item "setrgid() not implemented" | |
3367 | (F) You tried to assign to \f(CW$(\fR, and your operating system doesn't | |
3368 | support the \fIsetrgid()\fR system call (or equivalent), or at least Configure | |
3369 | didn't think so. | |
3370 | .IP "\fIsetruid()\fR not implemented" 4 | |
3371 | .IX Item "setruid() not implemented" | |
3372 | (F) You tried to assign to \f(CW$<\fR, and your operating system doesn't | |
3373 | support the \fIsetruid()\fR system call (or equivalent), or at least Configure | |
3374 | didn't think so. | |
3375 | .ie n .IP "\fIsetsockopt()\fR on closed socket %s" 4 | |
3376 | .el .IP "\fIsetsockopt()\fR on closed socket \f(CW%s\fR" 4 | |
3377 | .IX Item "setsockopt() on closed socket %s" | |
3378 | (W closed) You tried to set a socket option on a closed socket. Did you | |
3379 | forget to check the return value of your \fIsocket()\fR call? See | |
3380 | \&\*(L"setsockopt\*(R" in perlfunc. | |
3381 | .IP "Setuid/gid script is writable by world" 4 | |
3382 | .IX Item "Setuid/gid script is writable by world" | |
3383 | (F) The setuid emulator won't run a script that is writable by the | |
3384 | world, because the world might have written on it already. | |
3385 | .IP "Setuid script not plain file" 4 | |
3386 | .IX Item "Setuid script not plain file" | |
3387 | (F) The setuid emulator won't run a script that isn't read from a file, | |
3388 | but from a socket, a pipe or another device. | |
3389 | .IP "shm%s not implemented" 4 | |
3390 | .IX Item "shm%s not implemented" | |
3391 | (F) You don't have System V shared memory \s-1IPC\s0 on your system. | |
3392 | .IP "<> should be quotes" 4 | |
3393 | .IX Item "<> should be quotes" | |
3394 | (F) You wrote \f(CW\*(C`require <file>\*(C'\fR when you should have written | |
3395 | \&\f(CW\*(C`require 'file'\*(C'\fR. | |
3396 | .ie n .IP "/%s/ should probably be written as ""%s""" 4 | |
3397 | .el .IP "/%s/ should probably be written as ``%s''" 4 | |
3398 | .IX Item "/%s/ should probably be written as %s" | |
3399 | (W syntax) You have used a pattern where Perl expected to find a string, | |
3400 | as in the first argument to \f(CW\*(C`join\*(C'\fR. Perl will treat the true or false | |
3401 | result of matching the pattern against \f(CW$_\fR as the string, which is | |
3402 | probably not what you had in mind. | |
3403 | .ie n .IP "\fIshutdown()\fR on closed socket %s" 4 | |
3404 | .el .IP "\fIshutdown()\fR on closed socket \f(CW%s\fR" 4 | |
3405 | .IX Item "shutdown() on closed socket %s" | |
3406 | (W closed) You tried to do a shutdown on a closed socket. Seems a bit | |
3407 | superfluous. | |
3408 | .ie n .IP "SIG%s handler ""%s"" not defined" 4 | |
3409 | .el .IP "SIG%s handler ``%s'' not defined" 4 | |
3410 | .IX Item "SIG%s handler %s not defined" | |
3411 | (W signal) The signal handler named in \f(CW%SIG\fR doesn't, in fact, exist. | |
3412 | Perhaps you put it into the wrong package? | |
3413 | .IP "sort is now a reserved word" 4 | |
3414 | .IX Item "sort is now a reserved word" | |
3415 | (F) An ancient error message that almost nobody ever runs into anymore. | |
3416 | But before sort was a keyword, people sometimes used it as a filehandle. | |
3417 | .IP "Sort subroutine didn't return a numeric value" 4 | |
3418 | .IX Item "Sort subroutine didn't return a numeric value" | |
3419 | (F) A sort comparison routine must return a number. You probably blew | |
3420 | it by not using \f(CW\*(C`<=>\*(C'\fR or \f(CW\*(C`cmp\*(C'\fR, or by not using them correctly. | |
3421 | See \*(L"sort\*(R" in perlfunc. | |
3422 | .IP "Sort subroutine didn't return single value" 4 | |
3423 | .IX Item "Sort subroutine didn't return single value" | |
3424 | (F) A sort comparison subroutine may not return a list value with more | |
3425 | or less than one element. See \*(L"sort\*(R" in perlfunc. | |
3426 | .IP "\fIsplice()\fR offset past end of array" 4 | |
3427 | .IX Item "splice() offset past end of array" | |
3428 | (W misc) You attempted to specify an offset that was past the end of | |
3429 | the array passed to \fIsplice()\fR. Splicing will instead commence at the end | |
3430 | of the array, rather than past it. If this isn't what you want, try | |
3431 | explicitly pre-extending the array by assigning $#array = \f(CW$offset\fR. See | |
3432 | \&\*(L"splice\*(R" in perlfunc. | |
3433 | .IP "Split loop" 4 | |
3434 | .IX Item "Split loop" | |
3435 | (P) The split was looping infinitely. (Obviously, a split shouldn't | |
3436 | iterate more times than there are characters of input, which is what | |
3437 | happened.) See \*(L"split\*(R" in perlfunc. | |
3438 | .IP "Statement unlikely to be reached" 4 | |
3439 | .IX Item "Statement unlikely to be reached" | |
3440 | (W exec) You did an \fIexec()\fR with some statement after it other than a | |
3441 | \&\fIdie()\fR. This is almost always an error, because \fIexec()\fR never returns | |
3442 | unless there was a failure. You probably wanted to use \fIsystem()\fR | |
3443 | instead, which does return. To suppress this warning, put the \fIexec()\fR in | |
3444 | a block by itself. | |
3445 | .ie n .IP "\fIstat()\fR on unopened filehandle %s" 4 | |
3446 | .el .IP "\fIstat()\fR on unopened filehandle \f(CW%s\fR" 4 | |
3447 | .IX Item "stat() on unopened filehandle %s" | |
3448 | (W unopened) You tried to use the \fIstat()\fR function on a filehandle that | |
3449 | was either never opened or has since been closed. | |
3450 | .ie n .IP "Stub found while resolving method ""%s"" overloading ""%s""" 4 | |
3451 | .el .IP "Stub found while resolving method ``%s'' overloading ``%s''" 4 | |
3452 | .IX Item "Stub found while resolving method %s overloading %s" | |
3453 | (P) Overloading resolution over \f(CW@ISA\fR tree may be broken by importation | |
3454 | stubs. Stubs should never be implicitly created, but explicit calls to | |
3455 | \&\f(CW\*(C`can\*(C'\fR may break this. | |
3456 | .ie n .IP "Subroutine %s redefined" 4 | |
3457 | .el .IP "Subroutine \f(CW%s\fR redefined" 4 | |
3458 | .IX Item "Subroutine %s redefined" | |
3459 | (W redefine) You redefined a subroutine. To suppress this warning, say | |
3460 | .Sp | |
3461 | .Vb 4 | |
3462 | \& { | |
3463 | \& no warnings 'redefine'; | |
3464 | \& eval "sub name { ... }"; | |
3465 | \& } | |
3466 | .Ve | |
3467 | .IP "Substitution loop" 4 | |
3468 | .IX Item "Substitution loop" | |
3469 | (P) The substitution was looping infinitely. (Obviously, a substitution | |
3470 | shouldn't iterate more times than there are characters of input, which | |
3471 | is what happened.) See the discussion of substitution in | |
3472 | \&\*(L"Quote and Quote-like Operators\*(R" in perlop. | |
3473 | .IP "Substitution pattern not terminated" 4 | |
3474 | .IX Item "Substitution pattern not terminated" | |
3475 | (F) The lexer couldn't find the interior delimiter of an s/// or s{}{} | |
3476 | construct. Remember that bracketing delimiters count nesting level. | |
3477 | Missing the leading \f(CW\*(C`$\*(C'\fR from variable \f(CW$s\fR may cause this error. | |
3478 | .IP "Substitution replacement not terminated" 4 | |
3479 | .IX Item "Substitution replacement not terminated" | |
3480 | (F) The lexer couldn't find the final delimiter of an s/// or s{}{} | |
3481 | construct. Remember that bracketing delimiters count nesting level. | |
3482 | Missing the leading \f(CW\*(C`$\*(C'\fR from variable \f(CW$s\fR may cause this error. | |
3483 | .IP "substr outside of string" 4 | |
3484 | .IX Item "substr outside of string" | |
3485 | (W substr),(F) You tried to reference a \fIsubstr()\fR that pointed outside of | |
3486 | a string. That is, the absolute value of the offset was larger than the | |
3487 | length of the string. See \*(L"substr\*(R" in perlfunc. This warning is fatal if | |
3488 | substr is used in an lvalue context (as the left hand side of an | |
3489 | assignment or as a subroutine argument for example). | |
3490 | .ie n .IP "suidperl is no longer needed since %s" 4 | |
3491 | .el .IP "suidperl is no longer needed since \f(CW%s\fR" 4 | |
3492 | .IX Item "suidperl is no longer needed since %s" | |
3493 | (F) Your Perl was compiled with \fB\-D\fR\s-1SETUID_SCRIPTS_ARE_SECURE_NOW\s0, but | |
3494 | a version of the setuid emulator somehow got run anyway. | |
3495 | .IP "Switch (?(condition)... contains too many branches in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3496 | .IX Item "Switch (?(condition)... contains too many branches in regex; marked by <-- HERE in m/%s/" | |
3497 | (F) A (?(condition)if\-clause|else\-clause) construct can have at most two | |
3498 | branches (the if-clause and the else\-clause). If you want one or both to | |
3499 | contain alternation, such as using \f(CW\*(C`this|that|other\*(C'\fR, enclose it in | |
3500 | clustering parentheses: | |
3501 | .Sp | |
3502 | .Vb 1 | |
3503 | \& (?(condition)(?:this|that|other)|else-clause) | |
3504 | .Ve | |
3505 | .Sp | |
3506 | The <\-\- \s-1HERE\s0 shows in the regular expression about where the problem was | |
3507 | discovered. See perlre. | |
3508 | .IP "Switch condition not recognized in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3509 | .IX Item "Switch condition not recognized in regex; marked by <-- HERE in m/%s/" | |
3510 | (F) If the argument to the (?(...)if\-clause|else\-clause) construct is a | |
3511 | number, it can be only a number. The <\-\- \s-1HERE\s0 shows in the regular expression | |
3512 | about where the problem was discovered. See perlre. | |
3513 | .ie n .IP "switching effective %s is not implemented" 4 | |
3514 | .el .IP "switching effective \f(CW%s\fR is not implemented" 4 | |
3515 | .IX Item "switching effective %s is not implemented" | |
3516 | (F) While under the \f(CW\*(C`use filetest\*(C'\fR pragma, we cannot switch the real | |
3517 | and effective uids or gids. | |
3518 | .IP "%s syntax" 4 | |
3519 | .IX Item "%s syntax" | |
3520 | (F) The final summary message when a \f(CW\*(C`perl \-c\*(C'\fR succeeds. | |
3521 | .IP "syntax error" 4 | |
3522 | .IX Item "syntax error" | |
3523 | (F) Probably means you had a syntax error. Common reasons include: | |
3524 | .Sp | |
3525 | .Vb 6 | |
3526 | \& A keyword is misspelled. | |
3527 | \& A semicolon is missing. | |
3528 | \& A comma is missing. | |
3529 | \& An opening or closing parenthesis is missing. | |
3530 | \& An opening or closing brace is missing. | |
3531 | \& A closing quote is missing. | |
3532 | .Ve | |
3533 | .Sp | |
3534 | Often there will be another error message associated with the syntax | |
3535 | error giving more information. (Sometimes it helps to turn on \fB\-w\fR.) | |
3536 | The error message itself often tells you where it was in the line when | |
3537 | it decided to give up. Sometimes the actual error is several tokens | |
3538 | before this, because Perl is good at understanding random input. | |
3539 | Occasionally the line number may be misleading, and once in a blue moon | |
3540 | the only way to figure out what's triggering the error is to call | |
3541 | \&\f(CW\*(C`perl \-c\*(C'\fR repeatedly, chopping away half the program each time to see | |
3542 | if the error went away. Sort of the cybernetic version of 20\ questions. | |
3543 | .ie n .IP "syntax error at line %d: `%s' unexpected" 4 | |
3544 | .el .IP "syntax error at line \f(CW%d:\fR `%s' unexpected" 4 | |
3545 | .IX Item "syntax error at line %d: `%s' unexpected" | |
3546 | (A) You've accidentally run your script through the Bourne shell instead | |
3547 | of Perl. Check the #! line, or manually feed your script into Perl | |
3548 | yourself. | |
3549 | .ie n .IP "syntax error in file %s\fR at line \f(CW%d, next 2 tokens ""%s""" 4 | |
3550 | .el .IP "syntax error in file \f(CW%s\fR at line \f(CW%d\fR, next 2 tokens ``%s''" 4 | |
3551 | .IX Item "syntax error in file %s at line %d, next 2 tokens %s" | |
3552 | (F) This error is likely to occur if you run a perl5 script through | |
3553 | a perl4 interpreter, especially if the next 2 tokens are \*(L"use strict\*(R" | |
3554 | or \*(L"my \f(CW$var\fR\*(R" or \*(L"our \f(CW$var\fR\*(R". | |
3555 | .ie n .IP "\fIsysread()\fR on closed filehandle %s" 4 | |
3556 | .el .IP "\fIsysread()\fR on closed filehandle \f(CW%s\fR" 4 | |
3557 | .IX Item "sysread() on closed filehandle %s" | |
3558 | (W closed) You tried to read from a closed filehandle. | |
3559 | .ie n .IP "\fIsysread()\fR on unopened filehandle %s" 4 | |
3560 | .el .IP "\fIsysread()\fR on unopened filehandle \f(CW%s\fR" 4 | |
3561 | .IX Item "sysread() on unopened filehandle %s" | |
3562 | (W unopened) You tried to read from a filehandle that was never opened. | |
3563 | .ie n .IP "System V %s is not implemented on this machine" 4 | |
3564 | .el .IP "System V \f(CW%s\fR is not implemented on this machine" 4 | |
3565 | .IX Item "System V %s is not implemented on this machine" | |
3566 | (F) You tried to do something with a function beginning with \*(L"sem\*(R", | |
3567 | \&\*(L"shm\*(R", or \*(L"msg\*(R" but that System V \s-1IPC\s0 is not implemented in your | |
3568 | machine. In some machines the functionality can exist but be | |
3569 | unconfigured. Consult your system support. | |
3570 | .ie n .IP "\fIsyswrite()\fR on closed filehandle %s" 4 | |
3571 | .el .IP "\fIsyswrite()\fR on closed filehandle \f(CW%s\fR" 4 | |
3572 | .IX Item "syswrite() on closed filehandle %s" | |
3573 | (W closed) The filehandle you're writing to got itself closed sometime | |
3574 | before now. Check your control flow. | |
3575 | .ie n .IP """\-T""\fR and \f(CW""\-B"" not implemented on filehandles" 4 | |
3576 | .el .IP "\f(CW\-T\fR and \f(CW\-B\fR not implemented on filehandles" 4 | |
3577 | .IX Item "-T and -B not implemented on filehandles" | |
3578 | (F) Perl can't peek at the stdio buffer of filehandles when it doesn't | |
3579 | know about your kind of stdio. You'll have to use a filename instead. | |
3580 | .IP "Target of goto is too deeply nested" 4 | |
3581 | .IX Item "Target of goto is too deeply nested" | |
3582 | (F) You tried to use \f(CW\*(C`goto\*(C'\fR to reach a label that was too deeply nested | |
3583 | for Perl to reach. Perl is doing you a favor by refusing. | |
3584 | .IP "\fItell()\fR on unopened filehandle" 4 | |
3585 | .IX Item "tell() on unopened filehandle" | |
3586 | (W unopened) You tried to use the \fItell()\fR function on a filehandle that | |
3587 | was either never opened or has since been closed. | |
3588 | .IP "That use of $[ is unsupported" 4 | |
3589 | .IX Item "That use of $[ is unsupported" | |
3590 | (F) Assignment to \f(CW$[\fR is now strictly circumscribed, and interpreted | |
3591 | as a compiler directive. You may say only one of | |
3592 | .Sp | |
3593 | .Vb 6 | |
3594 | \& $[ = 0; | |
3595 | \& $[ = 1; | |
3596 | \& ... | |
3597 | \& local $[ = 0; | |
3598 | \& local $[ = 1; | |
3599 | \& ... | |
3600 | .Ve | |
3601 | .Sp | |
3602 | This is to prevent the problem of one module changing the array base out | |
3603 | from under another module inadvertently. See \*(L"$[\*(R" in perlvar. | |
3604 | .IP "The \fIcrypt()\fR function is unimplemented due to excessive paranoia" 4 | |
3605 | .IX Item "The crypt() function is unimplemented due to excessive paranoia" | |
3606 | (F) Configure couldn't find the \fIcrypt()\fR function on your machine, | |
3607 | probably because your vendor didn't supply it, probably because they | |
3608 | think the U.S. Government thinks it's a secret, or at least that they | |
3609 | will continue to pretend that it is. And if you quote me on that, I | |
3610 | will deny it. | |
3611 | .ie n .IP "The %s function is unimplemented" 4 | |
3612 | .el .IP "The \f(CW%s\fR function is unimplemented" 4 | |
3613 | .IX Item "The %s function is unimplemented" | |
3614 | The function indicated isn't implemented on this architecture, according | |
3615 | to the probings of Configure. | |
3616 | .ie n .IP "The stat preceding %s wasn't an lstat" 4 | |
3617 | .el .IP "The stat preceding \f(CW%s\fR wasn't an lstat" 4 | |
3618 | .IX Item "The stat preceding %s wasn't an lstat" | |
3619 | (F) It makes no sense to test the current stat buffer for symbolic | |
3620 | linkhood if the last stat that wrote to the stat buffer already went | |
3621 | past the symlink to get to the real file. Use an actual filename | |
3622 | instead. | |
3623 | .IP "The 'unique' attribute may only be applied to 'our' variables" 4 | |
3624 | .IX Item "The 'unique' attribute may only be applied to 'our' variables" | |
3625 | (F) Currently this attribute is not supported on \f(CW\*(C`my\*(C'\fR or \f(CW\*(C`sub\*(C'\fR | |
3626 | declarations. See \*(L"our\*(R" in perlfunc. | |
3627 | .IP "This Perl can't reset \s-1CRTL\s0 environ elements (%s)" 4 | |
3628 | .IX Item "This Perl can't reset CRTL environ elements (%s)" | |
3629 | .PD 0 | |
3630 | .IP "This Perl can't set \s-1CRTL\s0 environ elements (%s=%s)" 4 | |
3631 | .IX Item "This Perl can't set CRTL environ elements (%s=%s)" | |
3632 | .PD | |
3633 | (W internal) Warnings peculiar to \s-1VMS\s0. You tried to change or delete an | |
3634 | element of the \s-1CRTL\s0's internal environ array, but your copy of Perl | |
3635 | wasn't built with a \s-1CRTL\s0 that contained the \fIsetenv()\fR function. You'll | |
3636 | need to rebuild Perl with a \s-1CRTL\s0 that does, or redefine | |
3637 | \&\fI\s-1PERL_ENV_TABLES\s0\fR (see perlvms) so that the environ array isn't the | |
3638 | target of the change to | |
3639 | \&\f(CW%ENV\fR which produced the warning. | |
3640 | .ie n .IP "thread failed to start: %s" 4 | |
3641 | .el .IP "thread failed to start: \f(CW%s\fR" 4 | |
3642 | .IX Item "thread failed to start: %s" | |
3643 | (W threads)(S) The entry point function of threads\->\fIcreate()\fR failed for some reason. | |
3644 | .IP "5.005 threads are deprecated" 4 | |
3645 | .IX Item "5.005 threads are deprecated" | |
3646 | (D deprecated) The 5.005\-style threads (activated by \f(CW\*(C`use Thread;\*(C'\fR) | |
3647 | are deprecated and one should use the new ithreads instead, | |
3648 | see perl58delta for more details. | |
3649 | .IP "times not implemented" 4 | |
3650 | .IX Item "times not implemented" | |
3651 | (F) Your version of the C library apparently doesn't do \fItimes()\fR. I | |
3652 | suspect you're not running on Unix. | |
3653 | .ie n .IP """\-T"" is on the #! line, it must also be used on the command line" 4 | |
3654 | .el .IP "``\-T'' is on the #! line, it must also be used on the command line" 4 | |
3655 | .IX Item "-T is on the #! line, it must also be used on the command line" | |
3656 | (X) The #! line (or local equivalent) in a Perl script contains the | |
3657 | \&\fB\-T\fR option, but Perl was not invoked with \fB\-T\fR in its command line. | |
3658 | This is an error because, by the time Perl discovers a \fB\-T\fR in a | |
3659 | script, it's too late to properly taint everything from the environment. | |
3660 | So Perl gives up. | |
3661 | .Sp | |
3662 | If the Perl script is being executed as a command using the #! | |
3663 | mechanism (or its local equivalent), this error can usually be fixed by | |
3664 | editing the #! line so that the \fB\-T\fR option is a part of Perl's first | |
3665 | argument: e.g. change \f(CW\*(C`perl \-n \-T\*(C'\fR to \f(CW\*(C`perl \-T \-n\*(C'\fR. | |
3666 | .Sp | |
3667 | If the Perl script is being executed as \f(CW\*(C`perl scriptname\*(C'\fR, then the | |
3668 | \&\fB\-T\fR option must appear on the command line: \f(CW\*(C`perl \-T scriptname\*(C'\fR. | |
3669 | .IP "To%s: illegal mapping '%s'" 4 | |
3670 | .IX Item "To%s: illegal mapping '%s'" | |
3671 | (F) You tried to define a customized To-mapping for \fIlc()\fR, lcfirst, | |
3672 | \&\fIuc()\fR, or \fIucfirst()\fR (or their string-inlined versions), but you | |
3673 | specified an illegal mapping. | |
3674 | See \*(L"User\-Defined Character Properties\*(R" in perlunicode. | |
3675 | .IP "Too deeply nested ()\-groups" 4 | |
3676 | .IX Item "Too deeply nested ()-groups" | |
3677 | (F) Your template contains ()\-groups with a ridiculously deep nesting level. | |
3678 | .IP "Too few args to syscall" 4 | |
3679 | .IX Item "Too few args to syscall" | |
3680 | (F) There has to be at least one argument to \fIsyscall()\fR to specify the | |
3681 | system call to call, silly dilly. | |
3682 | .ie n .IP "Too late for ""\-%s"" option" 4 | |
3683 | .el .IP "Too late for ``\-%s'' option" 4 | |
3684 | .IX Item "Too late for -%s option" | |
3685 | (X) The #! line (or local equivalent) in a Perl script contains the | |
3686 | \&\fB\-M\fR or \fB\-m\fR option. This is an error because \fB\-M\fR and \fB\-m\fR options | |
3687 | are not intended for use inside scripts. Use the \f(CW\*(C`use\*(C'\fR pragma instead. | |
3688 | .ie n .IP "Too late to run %s block" 4 | |
3689 | .el .IP "Too late to run \f(CW%s\fR block" 4 | |
3690 | .IX Item "Too late to run %s block" | |
3691 | (W void) A \s-1CHECK\s0 or \s-1INIT\s0 block is being defined during run time proper, | |
3692 | when the opportunity to run them has already passed. Perhaps you are | |
3693 | loading a file with \f(CW\*(C`require\*(C'\fR or \f(CW\*(C`do\*(C'\fR when you should be using \f(CW\*(C`use\*(C'\fR | |
3694 | instead. Or perhaps you should put the \f(CW\*(C`require\*(C'\fR or \f(CW\*(C`do\*(C'\fR inside a | |
3695 | \&\s-1BEGIN\s0 block. | |
3696 | .IP "Too many args to syscall" 4 | |
3697 | .IX Item "Too many args to syscall" | |
3698 | (F) Perl supports a maximum of only 14 args to \fIsyscall()\fR. | |
3699 | .ie n .IP "Too many arguments for %s" 4 | |
3700 | .el .IP "Too many arguments for \f(CW%s\fR" 4 | |
3701 | .IX Item "Too many arguments for %s" | |
3702 | (F) The function requires fewer arguments than you specified. | |
3703 | .IP "Too many )'s" 4 | |
3704 | .IX Item "Too many )'s" | |
3705 | (A) You've accidentally run your script through \fBcsh\fR instead of Perl. | |
3706 | Check the #! line, or manually feed your script into Perl yourself. | |
3707 | .IP "Too many ('s" 4 | |
3708 | .IX Item "Too many ('s" | |
3709 | (A) You've accidentally run your script through \fBcsh\fR instead of Perl. | |
3710 | Check the #! line, or manually feed your script into Perl yourself. | |
3711 | .IP "Trailing \e in regex m/%s/" 4 | |
3712 | .IX Item "Trailing in regex m/%s/" | |
3713 | (F) The regular expression ends with an unbackslashed backslash. | |
3714 | Backslash it. See perlre. | |
3715 | .IP "Transliteration pattern not terminated" 4 | |
3716 | .IX Item "Transliteration pattern not terminated" | |
3717 | (F) The lexer couldn't find the interior delimiter of a tr/// or tr[][] | |
3718 | or y/// or y[][] construct. Missing the leading \f(CW\*(C`$\*(C'\fR from variables | |
3719 | \&\f(CW$tr\fR or \f(CW$y\fR may cause this error. | |
3720 | .IP "Transliteration replacement not terminated" 4 | |
3721 | .IX Item "Transliteration replacement not terminated" | |
3722 | (F) The lexer couldn't find the final delimiter of a tr///, tr[][], | |
3723 | y/// or y[][] construct. | |
3724 | .IP "'%s' trapped by operation mask" 4 | |
3725 | .IX Item "'%s' trapped by operation mask" | |
3726 | (F) You tried to use an operator from a Safe compartment in which it's | |
3727 | disallowed. See Safe. | |
3728 | .IP "truncate not implemented" 4 | |
3729 | .IX Item "truncate not implemented" | |
3730 | (F) Your machine doesn't implement a file truncation mechanism that | |
3731 | Configure knows about. | |
3732 | .ie n .IP "Type of arg %d\fR to \f(CW%s\fR must be \f(CW%s\fR (not \f(CW%s)" 4 | |
3733 | .el .IP "Type of arg \f(CW%d\fR to \f(CW%s\fR must be \f(CW%s\fR (not \f(CW%s\fR)" 4 | |
3734 | .IX Item "Type of arg %d to %s must be %s (not %s)" | |
3735 | (F) This function requires the argument in that position to be of a | |
3736 | certain type. Arrays must be \f(CW@NAME\fR or \f(CW\*(C`@{EXPR}\*(C'\fR. Hashes must be | |
3737 | \&\f(CW%NAME\fR or \f(CW\*(C`%{EXPR}\*(C'\fR. No implicit dereferencing is allowed\*(--use the | |
3738 | {\s-1EXPR\s0} forms as an explicit dereference. See perlref. | |
3739 | .IP "umask not implemented" 4 | |
3740 | .IX Item "umask not implemented" | |
3741 | (F) Your machine doesn't implement the umask function and you tried to | |
3742 | use it to restrict permissions for yourself (\s-1EXPR\s0 & 0700). | |
3743 | .ie n .IP "Unable to create sub named ""%s""" 4 | |
3744 | .el .IP "Unable to create sub named ``%s''" 4 | |
3745 | .IX Item "Unable to create sub named %s" | |
3746 | (F) You attempted to create or access a subroutine with an illegal name. | |
3747 | .ie n .IP "Unbalanced context: %d more PUSHes than POPs" 4 | |
3748 | .el .IP "Unbalanced context: \f(CW%d\fR more PUSHes than POPs" 4 | |
3749 | .IX Item "Unbalanced context: %d more PUSHes than POPs" | |
3750 | (W internal) The exit code detected an internal inconsistency in how | |
3751 | many execution contexts were entered and left. | |
3752 | .ie n .IP "Unbalanced saves: %d more saves than restores" 4 | |
3753 | .el .IP "Unbalanced saves: \f(CW%d\fR more saves than restores" 4 | |
3754 | .IX Item "Unbalanced saves: %d more saves than restores" | |
3755 | (W internal) The exit code detected an internal inconsistency in how | |
3756 | many values were temporarily localized. | |
3757 | .ie n .IP "Unbalanced scopes: %d more ENTERs than LEAVEs" 4 | |
3758 | .el .IP "Unbalanced scopes: \f(CW%d\fR more ENTERs than LEAVEs" 4 | |
3759 | .IX Item "Unbalanced scopes: %d more ENTERs than LEAVEs" | |
3760 | (W internal) The exit code detected an internal inconsistency in how | |
3761 | many blocks were entered and left. | |
3762 | .ie n .IP "Unbalanced tmps: %d more allocs than frees" 4 | |
3763 | .el .IP "Unbalanced tmps: \f(CW%d\fR more allocs than frees" 4 | |
3764 | .IX Item "Unbalanced tmps: %d more allocs than frees" | |
3765 | (W internal) The exit code detected an internal inconsistency in how | |
3766 | many mortal scalars were allocated and freed. | |
3767 | .ie n .IP "Undefined format ""%s"" called" 4 | |
3768 | .el .IP "Undefined format ``%s'' called" 4 | |
3769 | .IX Item "Undefined format %s called" | |
3770 | (F) The format indicated doesn't seem to exist. Perhaps it's really in | |
3771 | another package? See perlform. | |
3772 | .ie n .IP "Undefined sort subroutine ""%s"" called" 4 | |
3773 | .el .IP "Undefined sort subroutine ``%s'' called" 4 | |
3774 | .IX Item "Undefined sort subroutine %s called" | |
3775 | (F) The sort comparison routine specified doesn't seem to exist. | |
3776 | Perhaps it's in a different package? See \*(L"sort\*(R" in perlfunc. | |
3777 | .IP "Undefined subroutine &%s called" 4 | |
3778 | .IX Item "Undefined subroutine &%s called" | |
3779 | (F) The subroutine indicated hasn't been defined, or if it was, it has | |
3780 | since been undefined. | |
3781 | .IP "Undefined subroutine called" 4 | |
3782 | .IX Item "Undefined subroutine called" | |
3783 | (F) The anonymous subroutine you're trying to call hasn't been defined, | |
3784 | or if it was, it has since been undefined. | |
3785 | .IP "Undefined subroutine in sort" 4 | |
3786 | .IX Item "Undefined subroutine in sort" | |
3787 | (F) The sort comparison routine specified is declared but doesn't seem | |
3788 | to have been defined yet. See \*(L"sort\*(R" in perlfunc. | |
3789 | .ie n .IP "Undefined top format ""%s"" called" 4 | |
3790 | .el .IP "Undefined top format ``%s'' called" 4 | |
3791 | .IX Item "Undefined top format %s called" | |
3792 | (F) The format indicated doesn't seem to exist. Perhaps it's really in | |
3793 | another package? See perlform. | |
3794 | .IP "Undefined value assigned to typeglob" 4 | |
3795 | .IX Item "Undefined value assigned to typeglob" | |
3796 | (W misc) An undefined value was assigned to a typeglob, a la | |
3797 | \&\f(CW\*(C`*foo = undef\*(C'\fR. This does nothing. It's possible that you really mean | |
3798 | \&\f(CW\*(C`undef *foo\*(C'\fR. | |
3799 | .IP "%s: Undefined variable" 4 | |
3800 | .IX Item "%s: Undefined variable" | |
3801 | (A) You've accidentally run your script through \fBcsh\fR instead of Perl. | |
3802 | Check the #! line, or manually feed your script into Perl yourself. | |
3803 | .ie n .IP "unexec of %s\fR into \f(CW%s failed!" 4 | |
3804 | .el .IP "unexec of \f(CW%s\fR into \f(CW%s\fR failed!" 4 | |
3805 | .IX Item "unexec of %s into %s failed!" | |
3806 | (F) The \fIunexec()\fR routine failed for some reason. See your local \s-1FSF\s0 | |
3807 | representative, who probably put it there in the first place. | |
3808 | .ie n .IP "Unicode character %s is illegal" 4 | |
3809 | .el .IP "Unicode character \f(CW%s\fR is illegal" 4 | |
3810 | .IX Item "Unicode character %s is illegal" | |
3811 | (W utf8) Certain Unicode characters have been designated off-limits by | |
3812 | the Unicode standard and should not be generated. If you really know | |
3813 | what you are doing you can turn off this warning by \f(CW\*(C`no warnings 'utf8';\*(C'\fR. | |
3814 | .IP "Unknown \s-1BYTEORDER\s0" 4 | |
3815 | .IX Item "Unknown BYTEORDER" | |
3816 | (F) There are no byte-swapping functions for a machine with this byte | |
3817 | order. | |
3818 | .IP "Unknown \fIopen()\fR mode '%s'" 4 | |
3819 | .IX Item "Unknown open() mode '%s'" | |
3820 | (F) The second argument of 3\-argument \fIopen()\fR is not among the list | |
3821 | of valid modes: \f(CW\*(C`<\*(C'\fR, \f(CW\*(C`>\*(C'\fR, \f(CW\*(C`>>\*(C'\fR, \f(CW\*(C`+<\*(C'\fR, | |
3822 | \&\f(CW\*(C`+>\*(C'\fR, \f(CW\*(C`+>>\*(C'\fR, \f(CW\*(C`\-|\*(C'\fR, \f(CW\*(C`|\-\*(C'\fR, \f(CW\*(C`<&\*(C'\fR, \f(CW\*(C`>&\*(C'\fR. | |
3823 | .ie n .IP "Unknown PerlIO layer ""%s""" 4 | |
3824 | .el .IP "Unknown PerlIO layer ``%s''" 4 | |
3825 | .IX Item "Unknown PerlIO layer %s" | |
3826 | (W layer) An attempt was made to push an unknown layer onto the Perl I/O | |
3827 | system. (Layers take care of transforming data between external and | |
3828 | internal representations.) Note that some layers, such as \f(CW\*(C`mmap\*(C'\fR, | |
3829 | are not supported in all environments. If your program didn't | |
3830 | explicitly request the failing operation, it may be the result of the | |
3831 | value of the environment variable \s-1PERLIO\s0. | |
3832 | .ie n .IP "Unknown process %x\fR sent message to prime_env_iter: \f(CW%s" 4 | |
3833 | .el .IP "Unknown process \f(CW%x\fR sent message to prime_env_iter: \f(CW%s\fR" 4 | |
3834 | .IX Item "Unknown process %x sent message to prime_env_iter: %s" | |
3835 | (P) An error peculiar to \s-1VMS\s0. Perl was reading values for \f(CW%ENV\fR before | |
3836 | iterating over it, and someone else stuck a message in the stream of | |
3837 | data Perl expected. Someone's very confused, or perhaps trying to | |
3838 | subvert Perl's population of \f(CW%ENV\fR for nefarious purposes. | |
3839 | .ie n .IP "Unknown ""re"" subpragma '%s' (known ones are: %s)" 4 | |
3840 | .el .IP "Unknown ``re'' subpragma '%s' (known ones are: \f(CW%s\fR)" 4 | |
3841 | .IX Item "Unknown re subpragma '%s' (known ones are: %s)" | |
3842 | You tried to use an unknown subpragma of the \*(L"re\*(R" pragma. | |
3843 | .IP "Unknown switch condition (?(%.2s in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3844 | .IX Item "Unknown switch condition (?(%.2s in regex; marked by <-- HERE in m/%s/" | |
3845 | (F) The condition part of a (?(condition)if\-clause|else\-clause) construct | |
3846 | is not known. The condition may be lookahead or lookbehind (the condition | |
3847 | is true if the lookahead or lookbehind is true), a (?{...}) construct (the | |
3848 | condition is true if the code evaluates to a true value), or a number (the | |
3849 | condition is true if the set of capturing parentheses named by the number | |
3850 | matched). | |
3851 | .Sp | |
3852 | The <\-\- \s-1HERE\s0 shows in the regular expression about where the problem was | |
3853 | discovered. See perlre. | |
3854 | .IP "Unknown Unicode option letter '%c'" 4 | |
3855 | .IX Item "Unknown Unicode option letter '%c'" | |
3856 | You specified an unknown Unicode option. See perlrun documentation | |
3857 | of the \f(CW\*(C`\-C\*(C'\fR switch for the list of known options. | |
3858 | .ie n .IP "Unknown Unicode option value %x" 4 | |
3859 | .el .IP "Unknown Unicode option value \f(CW%x\fR" 4 | |
3860 | .IX Item "Unknown Unicode option value %x" | |
3861 | You specified an unknown Unicode option. See perlrun documentation | |
3862 | of the \f(CW\*(C`\-C\*(C'\fR switch for the list of known options. | |
3863 | .IP "Unknown warnings category '%s'" 4 | |
3864 | .IX Item "Unknown warnings category '%s'" | |
3865 | (F) An error issued by the \f(CW\*(C`warnings\*(C'\fR pragma. You specified a warnings | |
3866 | category that is unknown to perl at this point. | |
3867 | .Sp | |
3868 | Note that if you want to enable a warnings category registered by a module | |
3869 | (e.g. \f(CW\*(C`use warnings 'File::Find'\*(C'\fR), you must have imported this module | |
3870 | first. | |
3871 | .IP "unmatched [ in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3872 | .IX Item "unmatched [ in regex; marked by <-- HERE in m/%s/" | |
3873 | (F) The brackets around a character class must match. If you wish to | |
3874 | include a closing bracket in a character class, backslash it or put it | |
3875 | first. The <\-\- \s-1HERE\s0 shows in the regular expression about where the problem | |
3876 | was discovered. See perlre. | |
3877 | .IP "unmatched ( in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3878 | .IX Item "unmatched ( in regex; marked by <-- HERE in m/%s/" | |
3879 | (F) Unbackslashed parentheses must always be balanced in regular | |
3880 | expressions. If you're a vi user, the % key is valuable for finding the | |
3881 | matching parenthesis. The <\-\- \s-1HERE\s0 shows in the regular expression about | |
3882 | where the problem was discovered. See perlre. | |
3883 | .ie n .IP "Unmatched right %s bracket" 4 | |
3884 | .el .IP "Unmatched right \f(CW%s\fR bracket" 4 | |
3885 | .IX Item "Unmatched right %s bracket" | |
3886 | (F) The lexer counted more closing curly or square brackets than opening | |
3887 | ones, so you're probably missing a matching opening bracket. As a | |
3888 | general rule, you'll find the missing one (so to speak) near the place | |
3889 | you were last editing. | |
3890 | .ie n .IP "Unquoted string ""%s"" may clash with future reserved word" 4 | |
3891 | .el .IP "Unquoted string ``%s'' may clash with future reserved word" 4 | |
3892 | .IX Item "Unquoted string %s may clash with future reserved word" | |
3893 | (W reserved) You used a bareword that might someday be claimed as a | |
3894 | reserved word. It's best to put such a word in quotes, or capitalize it | |
3895 | somehow, or insert an underbar into it. You might also declare it as a | |
3896 | subroutine. | |
3897 | .ie n .IP "Unrecognized character %s" 4 | |
3898 | .el .IP "Unrecognized character \f(CW%s\fR" 4 | |
3899 | .IX Item "Unrecognized character %s" | |
3900 | (F) The Perl parser has no idea what to do with the specified character | |
3901 | in your Perl script (or eval). Perhaps you tried to run a compressed | |
3902 | script, a binary program, or a directory as a Perl program. | |
3903 | .IP "/%s/: Unrecognized escape \e\e%c in character class passed through" 4 | |
3904 | .IX Item "/%s/: Unrecognized escape %c in character class passed through" | |
3905 | (W regexp) You used a backslash-character combination which is not | |
3906 | recognized by Perl inside character classes. The character was | |
3907 | understood literally. | |
3908 | .IP "Unrecognized escape \e\e%c passed through" 4 | |
3909 | .IX Item "Unrecognized escape %c passed through" | |
3910 | (W misc) You used a backslash-character combination which is not | |
3911 | recognized by Perl. | |
3912 | .IP "Unrecognized escape \e\e%c passed through in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3913 | .IX Item "Unrecognized escape %c passed through in regex; marked by <-- HERE in m/%s/" | |
3914 | (W regexp) You used a backslash-character combination which is not | |
3915 | recognized by Perl. This combination appears in an interpolated variable or | |
3916 | a \f(CW\*(C`'\*(C'\fR\-delimited regular expression. The character was understood | |
3917 | literally. The <\-\- \s-1HERE\s0 shows in the regular expression about where the | |
3918 | escape was discovered. | |
3919 | .ie n .IP "Unrecognized signal name ""%s""" 4 | |
3920 | .el .IP "Unrecognized signal name ``%s''" 4 | |
3921 | .IX Item "Unrecognized signal name %s" | |
3922 | (F) You specified a signal name to the \fIkill()\fR function that was not | |
3923 | recognized. Say \f(CW\*(C`kill \-l\*(C'\fR in your shell to see the valid signal names | |
3924 | on your system. | |
3925 | .IP "Unrecognized switch: \-%s (\-h will show valid options)" 4 | |
3926 | .IX Item "Unrecognized switch: -%s (-h will show valid options)" | |
3927 | (F) You specified an illegal option to Perl. Don't do that. (If you | |
3928 | think you didn't do that, check the #! line to see if it's supplying the | |
3929 | bad switch on your behalf.) | |
3930 | .ie n .IP "Unsuccessful %s on filename containing newline" 4 | |
3931 | .el .IP "Unsuccessful \f(CW%s\fR on filename containing newline" 4 | |
3932 | .IX Item "Unsuccessful %s on filename containing newline" | |
3933 | (W newline) A file operation was attempted on a filename, and that | |
3934 | operation failed, \s-1PROBABLY\s0 because the filename contained a newline, | |
3935 | \&\s-1PROBABLY\s0 because you forgot to \fIchomp()\fR it off. See \*(L"chomp\*(R" in perlfunc. | |
3936 | .ie n .IP "Unsupported directory function ""%s"" called" 4 | |
3937 | .el .IP "Unsupported directory function ``%s'' called" 4 | |
3938 | .IX Item "Unsupported directory function %s called" | |
3939 | (F) Your machine doesn't support \fIopendir()\fR and \fIreaddir()\fR. | |
3940 | .ie n .IP "Unsupported function %s" 4 | |
3941 | .el .IP "Unsupported function \f(CW%s\fR" 4 | |
3942 | .IX Item "Unsupported function %s" | |
3943 | (F) This machine doesn't implement the indicated function, apparently. | |
3944 | At least, Configure doesn't think so. | |
3945 | .IP "Unsupported function fork" 4 | |
3946 | .IX Item "Unsupported function fork" | |
3947 | (F) Your version of executable does not support forking. | |
3948 | .Sp | |
3949 | Note that under some systems, like \s-1OS/2\s0, there may be different flavors | |
3950 | of Perl executables, some of which may support fork, some not. Try | |
3951 | changing the name you call Perl by to \f(CW\*(C`perl_\*(C'\fR, \f(CW\*(C`perl_\|_\*(C'\fR, and so on. | |
3952 | .ie n .IP "Unsupported script encoding %s" 4 | |
3953 | .el .IP "Unsupported script encoding \f(CW%s\fR" 4 | |
3954 | .IX Item "Unsupported script encoding %s" | |
3955 | (F) Your program file begins with a Unicode Byte Order Mark (\s-1BOM\s0) which | |
3956 | declares it to be in a Unicode encoding that Perl cannot read. | |
3957 | .ie n .IP "Unsupported socket function ""%s"" called" 4 | |
3958 | .el .IP "Unsupported socket function ``%s'' called" 4 | |
3959 | .IX Item "Unsupported socket function %s called" | |
3960 | (F) Your machine doesn't support the Berkeley socket mechanism, or at | |
3961 | least that's what Configure thought. | |
3962 | .IP "Unterminated attribute list" 4 | |
3963 | .IX Item "Unterminated attribute list" | |
3964 | (F) The lexer found something other than a simple identifier at the | |
3965 | start of an attribute, and it wasn't a semicolon or the start of a | |
3966 | block. Perhaps you terminated the parameter list of the previous | |
3967 | attribute too soon. See attributes. | |
3968 | .IP "Unterminated attribute parameter in attribute list" 4 | |
3969 | .IX Item "Unterminated attribute parameter in attribute list" | |
3970 | (F) The lexer saw an opening (left) parenthesis character while parsing | |
3971 | an attribute list, but the matching closing (right) parenthesis | |
3972 | character was not found. You may need to add (or remove) a backslash | |
3973 | character to get your parentheses to balance. See attributes. | |
3974 | .IP "Unterminated compressed integer" 4 | |
3975 | .IX Item "Unterminated compressed integer" | |
3976 | (F) An argument to unpack(\*(L"w\*(R",...) was incompatible with the \s-1BER\s0 | |
3977 | compressed integer format and could not be converted to an integer. | |
3978 | See \*(L"pack\*(R" in perlfunc. | |
3979 | .IP "Unterminated <> operator" 4 | |
3980 | .IX Item "Unterminated <> operator" | |
3981 | (F) The lexer saw a left angle bracket in a place where it was expecting | |
3982 | a term, so it's looking for the corresponding right angle bracket, and | |
3983 | not finding it. Chances are you left some needed parentheses out | |
3984 | earlier in the line, and you really meant a \*(L"less than\*(R". | |
3985 | .ie n .IP "untie attempted while %d inner references still exist" 4 | |
3986 | .el .IP "untie attempted while \f(CW%d\fR inner references still exist" 4 | |
3987 | .IX Item "untie attempted while %d inner references still exist" | |
3988 | (W untie) A copy of the object returned from \f(CW\*(C`tie\*(C'\fR (or \f(CW\*(C`tied\*(C'\fR) was | |
3989 | still valid when \f(CW\*(C`untie\*(C'\fR was called. | |
3990 | .IP "Usage: POSIX::%s(%s)" 4 | |
3991 | .IX Item "Usage: POSIX::%s(%s)" | |
3992 | (F) You called a \s-1POSIX\s0 function with incorrect arguments. | |
3993 | See \*(L"\s-1FUNCTIONS\s0\*(R" in \s-1POSIX\s0 for more information. | |
3994 | .IP "Usage: Win32::%s(%s)" 4 | |
3995 | .IX Item "Usage: Win32::%s(%s)" | |
3996 | (F) You called a Win32 function with incorrect arguments. | |
3997 | See Win32 for more information. | |
3998 | .IP "Useless (?\-%s) \- don't use /%s modifier in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
3999 | .IX Item "Useless (?-%s) - don't use /%s modifier in regex; marked by <-- HERE in m/%s/" | |
4000 | (W regexp) You have used an internal modifier such as (?\-o) that has no | |
4001 | meaning unless removed from the entire regexp: | |
4002 | .Sp | |
4003 | .Vb 1 | |
4004 | \& if ($string =~ /(?-o)$pattern/o) { ... } | |
4005 | .Ve | |
4006 | .Sp | |
4007 | must be written as | |
4008 | .Sp | |
4009 | .Vb 1 | |
4010 | \& if ($string =~ /$pattern/) { ... } | |
4011 | .Ve | |
4012 | .Sp | |
4013 | The <\-\- \s-1HERE\s0 shows in the regular expression about | |
4014 | where the problem was discovered. See perlre. | |
4015 | .IP "Useless (?%s) \- use /%s modifier in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
4016 | .IX Item "Useless (?%s) - use /%s modifier in regex; marked by <-- HERE in m/%s/" | |
4017 | (W regexp) You have used an internal modifier such as (?o) that has no | |
4018 | meaning unless applied to the entire regexp: | |
4019 | .Sp | |
4020 | .Vb 1 | |
4021 | \& if ($string =~ /(?o)$pattern/) { ... } | |
4022 | .Ve | |
4023 | .Sp | |
4024 | must be written as | |
4025 | .Sp | |
4026 | .Vb 1 | |
4027 | \& if ($string =~ /$pattern/o) { ... } | |
4028 | .Ve | |
4029 | .Sp | |
4030 | The <\-\- \s-1HERE\s0 shows in the regular expression about | |
4031 | where the problem was discovered. See perlre. | |
4032 | .ie n .IP "Useless use of %s in void context" 4 | |
4033 | .el .IP "Useless use of \f(CW%s\fR in void context" 4 | |
4034 | .IX Item "Useless use of %s in void context" | |
4035 | (W void) You did something without a side effect in a context that does | |
4036 | nothing with the return value, such as a statement that doesn't return a | |
4037 | value from a block, or the left side of a scalar comma operator. Very | |
4038 | often this points not to stupidity on your part, but a failure of Perl | |
4039 | to parse your program the way you thought it would. For example, you'd | |
4040 | get this if you mixed up your C precedence with Python precedence and | |
4041 | said | |
4042 | .Sp | |
4043 | .Vb 1 | |
4044 | \& $one, $two = 1, 2; | |
4045 | .Ve | |
4046 | .Sp | |
4047 | when you meant to say | |
4048 | .Sp | |
4049 | .Vb 1 | |
4050 | \& ($one, $two) = (1, 2); | |
4051 | .Ve | |
4052 | .Sp | |
4053 | Another common error is to use ordinary parentheses to construct a list | |
4054 | reference when you should be using square or curly brackets, for | |
4055 | example, if you say | |
4056 | .Sp | |
4057 | .Vb 1 | |
4058 | \& $array = (1,2); | |
4059 | .Ve | |
4060 | .Sp | |
4061 | when you should have said | |
4062 | .Sp | |
4063 | .Vb 1 | |
4064 | \& $array = [1,2]; | |
4065 | .Ve | |
4066 | .Sp | |
4067 | The square brackets explicitly turn a list value into a scalar value, | |
4068 | while parentheses do not. So when a parenthesized list is evaluated in | |
4069 | a scalar context, the comma is treated like C's comma operator, which | |
4070 | throws away the left argument, which is not what you want. See | |
4071 | perlref for more on this. | |
4072 | .Sp | |
4073 | This warning will not be issued for numerical constants equal to 0 or 1 | |
4074 | since they are often used in statements like | |
4075 | .Sp | |
4076 | .Vb 1 | |
4077 | \& 1 while sub_with_side_effects(); | |
4078 | .Ve | |
4079 | .Sp | |
4080 | String constants that would normally evaluate to 0 or 1 are warned | |
4081 | about. | |
4082 | .ie n .IP "Useless use of ""re"" pragma" 4 | |
4083 | .el .IP "Useless use of ``re'' pragma" 4 | |
4084 | .IX Item "Useless use of re pragma" | |
4085 | (W) You did \f(CW\*(C`use re;\*(C'\fR without any arguments. That isn't very useful. | |
4086 | .IP "Useless use of sort in scalar context" 4 | |
4087 | .IX Item "Useless use of sort in scalar context" | |
4088 | (W void) You used sort in scalar context, as in : | |
4089 | .Sp | |
4090 | .Vb 1 | |
4091 | \& my $x = sort @y; | |
4092 | .Ve | |
4093 | .Sp | |
4094 | This is not very useful, and perl currently optimizes this away. | |
4095 | .ie n .IP "Useless use of %s with no values" 4 | |
4096 | .el .IP "Useless use of \f(CW%s\fR with no values" 4 | |
4097 | .IX Item "Useless use of %s with no values" | |
4098 | (W syntax) You used the \fIpush()\fR or \fIunshift()\fR function with no arguments | |
4099 | apart from the array, like \f(CW\*(C`push(@x)\*(C'\fR or \f(CW\*(C`unshift(@foo)\*(C'\fR. That won't | |
4100 | usually have any effect on the array, so is completely useless. It's | |
4101 | possible in principle that push(@tied_array) could have some effect | |
4102 | if the array is tied to a class which implements a \s-1PUSH\s0 method. If so, | |
4103 | you can write it as \f(CW\*(C`push(@tied_array,())\*(C'\fR to avoid this warning. | |
4104 | .ie n .IP """use"" not allowed in expression" 4 | |
4105 | .el .IP "``use'' not allowed in expression" 4 | |
4106 | .IX Item "use not allowed in expression" | |
4107 | (F) The \*(L"use\*(R" keyword is recognized and executed at compile time, and | |
4108 | returns no useful value. See perlmod. | |
4109 | .ie n .IP "Use of bare << to mean <<"""" is deprecated" 4 | |
4110 | .el .IP "Use of bare << to mean <<``'' is deprecated" 4 | |
4111 | .IX Item "Use of bare << to mean <<"""" is deprecated" | |
4112 | (D deprecated) You are now encouraged to use the explicitly quoted form | |
4113 | if you wish to use an empty line as the terminator of the here\-document. | |
4114 | .IP "Use of chdir('') or chdir(undef) as \fIchdir()\fR deprecated" 4 | |
4115 | .IX Item "Use of chdir('') or chdir(undef) as chdir() deprecated" | |
4116 | (D deprecated) \fIchdir()\fR with no arguments is documented to change to | |
4117 | \&\f(CW$ENV\fR{\s-1HOME\s0} or \f(CW$ENV\fR{\s-1LOGDIR\s0}. chdir(undef) and chdir('') share this | |
4118 | behavior, but that has been deprecated. In future versions they | |
4119 | will simply fail. | |
4120 | .Sp | |
4121 | Be careful to check that what you pass to \fIchdir()\fR is defined and not | |
4122 | blank, else you might find yourself in your home directory. | |
4123 | .IP "Use of /c modifier is meaningless in s///" 4 | |
4124 | .IX Item "Use of /c modifier is meaningless in s///" | |
4125 | (W regexp) You used the /c modifier in a substitution. The /c | |
4126 | modifier is not presently meaningful in substitutions. | |
4127 | .IP "Use of /c modifier is meaningless without /g" 4 | |
4128 | .IX Item "Use of /c modifier is meaningless without /g" | |
4129 | (W regexp) You used the /c modifier with a regex operand, but didn't | |
4130 | use the /g modifier. Currently, /c is meaningful only when /g is | |
4131 | used. (This may change in the future.) | |
4132 | .IP "Use of freed value in iteration" 4 | |
4133 | .IX Item "Use of freed value in iteration" | |
4134 | (F) Perhaps you modified the iterated array within the loop? | |
4135 | This error is typically caused by code like the following: | |
4136 | .Sp | |
4137 | .Vb 2 | |
4138 | \& @a = (3,4); | |
4139 | \& @a = () for (1,2,@a); | |
4140 | .Ve | |
4141 | .Sp | |
4142 | You are not supposed to modify arrays while they are being iterated over. | |
4143 | For speed and efficiency reasons, Perl internally does not do full | |
4144 | reference-counting of iterated items, hence deleting such an item in the | |
4145 | middle of an iteration causes Perl to see a freed value. | |
4146 | .IP "Use of *glob{\s-1FILEHANDLE\s0} is deprecated" 4 | |
4147 | .IX Item "Use of *glob{FILEHANDLE} is deprecated" | |
4148 | (D deprecated) You are now encouraged to use the shorter *glob{\s-1IO\s0} form | |
4149 | to access the filehandle slot within a typeglob. | |
4150 | .IP "Use of /g modifier is meaningless in split" 4 | |
4151 | .IX Item "Use of /g modifier is meaningless in split" | |
4152 | (W regexp) You used the /g modifier on the pattern for a \f(CW\*(C`split\*(C'\fR | |
4153 | operator. Since \f(CW\*(C`split\*(C'\fR always tries to match the pattern | |
4154 | repeatedly, the \f(CW\*(C`/g\*(C'\fR has no effect. | |
4155 | .ie n .IP "Use of implicit split to @_ is deprecated" 4 | |
4156 | .el .IP "Use of implicit split to \f(CW@_\fR is deprecated" 4 | |
4157 | .IX Item "Use of implicit split to @_ is deprecated" | |
4158 | (D deprecated) It makes a lot of work for the compiler when you clobber | |
4159 | a subroutine's argument list, so it's better if you assign the results | |
4160 | of a \fIsplit()\fR explicitly to an array (or list). | |
4161 | .IP "Use of inherited \s-1AUTOLOAD\s0 for non-method %s() is deprecated" 4 | |
4162 | .IX Item "Use of inherited AUTOLOAD for non-method %s() is deprecated" | |
4163 | (D deprecated) As an (ahem) accidental feature, \f(CW\*(C`AUTOLOAD\*(C'\fR subroutines | |
4164 | are looked up as methods (using the \f(CW@ISA\fR hierarchy) even when the | |
4165 | subroutines to be autoloaded were called as plain functions (e.g. | |
4166 | \&\f(CW\*(C`Foo::bar()\*(C'\fR), not as methods (e.g. \f(CW\*(C`Foo\->bar()\*(C'\fR or \f(CW\*(C`$obj\->bar()\*(C'\fR). | |
4167 | .Sp | |
4168 | This bug will be rectified in future by using method lookup only for | |
4169 | methods' \f(CW\*(C`AUTOLOAD\*(C'\fRs. However, there is a significant base of existing | |
4170 | code that may be using the old behavior. So, as an interim step, Perl | |
4171 | currently issues an optional warning when non-methods use inherited | |
4172 | \&\f(CW\*(C`AUTOLOAD\*(C'\fRs. | |
4173 | .Sp | |
4174 | The simple rule is: Inheritance will not work when autoloading | |
4175 | non\-methods. The simple fix for old code is: In any module that used | |
4176 | to depend on inheriting \f(CW\*(C`AUTOLOAD\*(C'\fR for non-methods from a base class | |
4177 | named \f(CW\*(C`BaseClass\*(C'\fR, execute \f(CW\*(C`*AUTOLOAD = \e&BaseClass::AUTOLOAD\*(C'\fR during | |
4178 | startup. | |
4179 | .Sp | |
4180 | In code that currently says \f(CW\*(C`use AutoLoader; @ISA = qw(AutoLoader);\*(C'\fR | |
4181 | you should remove AutoLoader from \f(CW@ISA\fR and change \f(CW\*(C`use AutoLoader;\*(C'\fR to | |
4182 | \&\f(CW\*(C`use AutoLoader 'AUTOLOAD';\*(C'\fR. | |
4183 | .ie n .IP "Use of %s in printf format not supported" 4 | |
4184 | .el .IP "Use of \f(CW%s\fR in printf format not supported" 4 | |
4185 | .IX Item "Use of %s in printf format not supported" | |
4186 | (F) You attempted to use a feature of printf that is accessible from | |
4187 | only C. This usually means there's a better way to do it in Perl. | |
4188 | .IP "Use of $* is deprecated" 4 | |
4189 | .IX Item "Use of $* is deprecated" | |
4190 | (D deprecated) This variable magically turned on multi-line pattern | |
4191 | matching, both for you and for any luckless subroutine that you happen | |
4192 | to call. You should use the new \f(CW\*(C`//m\*(C'\fR and \f(CW\*(C`//s\*(C'\fR modifiers now to do | |
4193 | that without the dangerous action-at-a-distance effects of \f(CW$*\fR. | |
4194 | .IP "Use of $# is deprecated" 4 | |
4195 | .IX Item "Use of $# is deprecated" | |
4196 | (D deprecated) This was an ill-advised attempt to emulate a poorly | |
4197 | defined \fBawk\fR feature. Use an explicit \fIprintf()\fR or \fIsprintf()\fR instead. | |
4198 | .ie n .IP "Use of %s is deprecated" 4 | |
4199 | .el .IP "Use of \f(CW%s\fR is deprecated" 4 | |
4200 | .IX Item "Use of %s is deprecated" | |
4201 | (D deprecated) The construct indicated is no longer recommended for use, | |
4202 | generally because there's a better way to do it, and also because the | |
4203 | old way has bad side effects. | |
4204 | .ie n .IP "Use of \-l on filehandle %s" 4 | |
4205 | .el .IP "Use of \-l on filehandle \f(CW%s\fR" 4 | |
4206 | .IX Item "Use of -l on filehandle %s" | |
4207 | (W io) A filehandle represents an opened file, and when you opened the file | |
4208 | it already went past any symlink you are presumably trying to look for. | |
4209 | The operation returned \f(CW\*(C`undef\*(C'\fR. Use a filename instead. | |
4210 | .ie n .IP "Use of ""package"" with no arguments is deprecated" 4 | |
4211 | .el .IP "Use of ``package'' with no arguments is deprecated" 4 | |
4212 | .IX Item "Use of package with no arguments is deprecated" | |
4213 | (D deprecated) You used the \f(CW\*(C`package\*(C'\fR keyword without specifying a package | |
4214 | name. So no namespace is current at all. Using this can cause many | |
4215 | otherwise reasonable constructs to fail in baffling ways. \f(CW\*(C`use strict;\*(C'\fR | |
4216 | instead. | |
4217 | .ie n .IP "Use of reference ""%s"" as array index" 4 | |
4218 | .el .IP "Use of reference ``%s'' as array index" 4 | |
4219 | .IX Item "Use of reference %s as array index" | |
4220 | (W misc) You tried to use a reference as an array index; this probably | |
4221 | isn't what you mean, because references in numerical context tend | |
4222 | to be huge numbers, and so usually indicates programmer error. | |
4223 | .Sp | |
4224 | If you really do mean it, explicitly numify your reference, like so: | |
4225 | \&\f(CW$array[0+$ref]\fR. This warning is not given for overloaded objects, | |
4226 | either, because you can overload the numification and stringification | |
4227 | operators and then you assumedly know what you are doing. | |
4228 | .ie n .IP "Use of reserved word ""%s"" is deprecated" 4 | |
4229 | .el .IP "Use of reserved word ``%s'' is deprecated" 4 | |
4230 | .IX Item "Use of reserved word %s is deprecated" | |
4231 | (D deprecated) The indicated bareword is a reserved word. Future | |
4232 | versions of perl may use it as a keyword, so you're better off either | |
4233 | explicitly quoting the word in a manner appropriate for its context of | |
4234 | use, or using a different name altogether. The warning can be | |
4235 | suppressed for subroutine names by either adding a \f(CW\*(C`&\*(C'\fR prefix, or using | |
4236 | a package qualifier, e.g. \f(CW\*(C`&our()\*(C'\fR, or \f(CW\*(C`Foo::our()\*(C'\fR. | |
4237 | .ie n .IP "Use of tainted arguments in %s is deprecated" 4 | |
4238 | .el .IP "Use of tainted arguments in \f(CW%s\fR is deprecated" 4 | |
4239 | .IX Item "Use of tainted arguments in %s is deprecated" | |
4240 | (W taint, deprecated) You have supplied \f(CW\*(C`system()\*(C'\fR or \f(CW\*(C`exec()\*(C'\fR with multiple | |
4241 | arguments and at least one of them is tainted. This used to be allowed | |
4242 | but will become a fatal error in a future version of perl. Untaint your | |
4243 | arguments. See perlsec. | |
4244 | .IP "Use of uninitialized value%s" 4 | |
4245 | .IX Item "Use of uninitialized value%s" | |
4246 | (W uninitialized) An undefined value was used as if it were already | |
4247 | defined. It was interpreted as a "" or a 0, but maybe it was a mistake. | |
4248 | To suppress this warning assign a defined value to your variables. | |
4249 | .Sp | |
4250 | To help you figure out what was undefined, perl tells you what operation | |
4251 | you used the undefined value in. Note, however, that perl optimizes your | |
4252 | program and the operation displayed in the warning may not necessarily | |
4253 | appear literally in your program. For example, \f(CW"that $foo"\fR is | |
4254 | usually optimized into \f(CW\*(C`"that " . $foo\*(C'\fR, and the warning will refer to | |
4255 | the \f(CW\*(C`concatenation (.)\*(C'\fR operator, even though there is no \f(CW\*(C`.\*(C'\fR in your | |
4256 | program. | |
4257 | .IP "Using a hash as a reference is deprecated" 4 | |
4258 | .IX Item "Using a hash as a reference is deprecated" | |
4259 | (D deprecated) You tried to use a hash as a reference, as in | |
4260 | \&\f(CW\*(C`%foo\->{"bar"}\*(C'\fR or \f(CW\*(C`%$ref\->{"hello"}\*(C'\fR. Versions of perl <= 5.6.1 | |
4261 | used to allow this syntax, but shouldn't have. It is now deprecated, and will | |
4262 | be removed in a future version. | |
4263 | .IP "Using an array as a reference is deprecated" 4 | |
4264 | .IX Item "Using an array as a reference is deprecated" | |
4265 | (D deprecated) You tried to use an array as a reference, as in | |
4266 | \&\f(CW\*(C`@foo\->[23]\*(C'\fR or \f(CW\*(C`@$ref\->[99]\*(C'\fR. Versions of perl <= 5.6.1 used to | |
4267 | allow this syntax, but shouldn't have. It is now deprecated, and will be | |
4268 | removed in a future version. | |
4269 | .ie n .IP "\s-1UTF\-16\s0 surrogate %s" 4 | |
4270 | .el .IP "\s-1UTF\-16\s0 surrogate \f(CW%s\fR" 4 | |
4271 | .IX Item "UTF-16 surrogate %s" | |
4272 | (W utf8) You tried to generate half of an \s-1UTF\-16\s0 surrogate by | |
4273 | requesting a Unicode character between the code points 0xD800 and | |
4274 | 0xDFFF (inclusive). That range is reserved exclusively for the use of | |
4275 | \&\s-1UTF\-16\s0 encoding (by having two 16\-bit \s-1UCS\-2\s0 characters); but Perl | |
4276 | encodes its characters in \s-1UTF\-8\s0, so what you got is a very illegal | |
4277 | character. If you really know what you are doing you can turn off | |
4278 | this warning by \f(CW\*(C`no warnings 'utf8';\*(C'\fR. | |
4279 | .ie n .IP "Value of %s\fR can be ""0""; test with \fIdefined()" 4 | |
4280 | .el .IP "Value of \f(CW%s\fR can be ``0''; test with \fIdefined()\fR" 4 | |
4281 | .IX Item "Value of %s can be 0; test with defined()" | |
4282 | (W misc) In a conditional expression, you used <\s-1HANDLE\s0>, <*> (glob), | |
4283 | \&\f(CW\*(C`each()\*(C'\fR, or \f(CW\*(C`readdir()\*(C'\fR as a boolean value. Each of these constructs | |
4284 | can return a value of \*(L"0\*(R"; that would make the conditional expression | |
4285 | false, which is probably not what you intended. When using these | |
4286 | constructs in conditional expressions, test their values with the | |
4287 | \&\f(CW\*(C`defined\*(C'\fR operator. | |
4288 | .ie n .IP "Value of \s-1CLI\s0 symbol ""%s"" too long" 4 | |
4289 | .el .IP "Value of \s-1CLI\s0 symbol ``%s'' too long" 4 | |
4290 | .IX Item "Value of CLI symbol %s too long" | |
4291 | (W misc) A warning peculiar to \s-1VMS\s0. Perl tried to read the value of an | |
4292 | \&\f(CW%ENV\fR element from a \s-1CLI\s0 symbol table, and found a resultant string | |
4293 | longer than 1024 characters. The return value has been truncated to | |
4294 | 1024 characters. | |
4295 | .ie n .IP "Variable ""%s"" is not imported%s" 4 | |
4296 | .el .IP "Variable ``%s'' is not imported%s" 4 | |
4297 | .IX Item "Variable %s is not imported%s" | |
4298 | (F) While \*(L"use strict\*(R" in effect, you referred to a global variable that | |
4299 | you apparently thought was imported from another module, because | |
4300 | something else of the same name (usually a subroutine) is exported by | |
4301 | that module. It usually means you put the wrong funny character on the | |
4302 | front of your variable. | |
4303 | .IP "Variable length lookbehind not implemented in regex; marked by <\-\- \s-1HERE\s0 in m/%s/" 4 | |
4304 | .IX Item "Variable length lookbehind not implemented in regex; marked by <-- HERE in m/%s/" | |
4305 | (F) Lookbehind is allowed only for subexpressions whose length is fixed and | |
4306 | known at compile time. The <\-\- \s-1HERE\s0 shows in the regular expression about | |
4307 | where the problem was discovered. See perlre. | |
4308 | .ie n .IP """%s"" variable %s\fR masks earlier declaration in same \f(CW%s" 4 | |
4309 | .el .IP "``%s'' variable \f(CW%s\fR masks earlier declaration in same \f(CW%s\fR" 4 | |
4310 | .IX Item "%s variable %s masks earlier declaration in same %s" | |
4311 | (W misc) A \*(L"my\*(R" or \*(L"our\*(R" variable has been redeclared in the current | |
4312 | scope or statement, effectively eliminating all access to the previous | |
4313 | instance. This is almost always a typographical error. Note that the | |
4314 | earlier variable will still exist until the end of the scope or until | |
4315 | all closure referents to it are destroyed. | |
4316 | .ie n .IP "Variable ""%s"" may be unavailable" 4 | |
4317 | .el .IP "Variable ``%s'' may be unavailable" 4 | |
4318 | .IX Item "Variable %s may be unavailable" | |
4319 | (W closure) An inner (nested) \fIanonymous\fR subroutine is inside a | |
4320 | \&\fInamed\fR subroutine, and outside that is another subroutine; and the | |
4321 | anonymous (innermost) subroutine is referencing a lexical variable | |
4322 | defined in the outermost subroutine. For example: | |
4323 | .Sp | |
4324 | .Vb 1 | |
4325 | \& sub outermost { my $a; sub middle { sub { $a } } } | |
4326 | .Ve | |
4327 | .Sp | |
4328 | If the anonymous subroutine is called or referenced (directly or | |
4329 | indirectly) from the outermost subroutine, it will share the variable as | |
4330 | you would expect. But if the anonymous subroutine is called or | |
4331 | referenced when the outermost subroutine is not active, it will see the | |
4332 | value of the shared variable as it was before and during the *first* | |
4333 | call to the outermost subroutine, which is probably not what you want. | |
4334 | .Sp | |
4335 | In these circumstances, it is usually best to make the middle subroutine | |
4336 | anonymous, using the \f(CW\*(C`sub {}\*(C'\fR syntax. Perl has specific support for | |
4337 | shared variables in nested anonymous subroutines; a named subroutine in | |
4338 | between interferes with this feature. | |
4339 | .IP "Variable syntax" 4 | |
4340 | .IX Item "Variable syntax" | |
4341 | (A) You've accidentally run your script through \fBcsh\fR instead | |
4342 | of Perl. Check the #! line, or manually feed your script into | |
4343 | Perl yourself. | |
4344 | .ie n .IP "Variable ""%s"" will not stay shared" 4 | |
4345 | .el .IP "Variable ``%s'' will not stay shared" 4 | |
4346 | .IX Item "Variable %s will not stay shared" | |
4347 | (W closure) An inner (nested) \fInamed\fR subroutine is referencing a | |
4348 | lexical variable defined in an outer subroutine. | |
4349 | .Sp | |
4350 | When the inner subroutine is called, it will probably see the value of | |
4351 | the outer subroutine's variable as it was before and during the *first* | |
4352 | call to the outer subroutine; in this case, after the first call to the | |
4353 | outer subroutine is complete, the inner and outer subroutines will no | |
4354 | longer share a common value for the variable. In other words, the | |
4355 | variable will no longer be shared. | |
4356 | .Sp | |
4357 | Furthermore, if the outer subroutine is anonymous and references a | |
4358 | lexical variable outside itself, then the outer and inner subroutines | |
4359 | will \fInever\fR share the given variable. | |
4360 | .Sp | |
4361 | This problem can usually be solved by making the inner subroutine | |
4362 | anonymous, using the \f(CW\*(C`sub {}\*(C'\fR syntax. When inner anonymous subs that | |
4363 | reference variables in outer subroutines are called or referenced, they | |
4364 | are automatically rebound to the current values of such variables. | |
4365 | .IP "Version number must be a constant number" 4 | |
4366 | .IX Item "Version number must be a constant number" | |
4367 | (P) The attempt to translate a \f(CW\*(C`use Module n.n LIST\*(C'\fR statement into | |
4368 | its equivalent \f(CW\*(C`BEGIN\*(C'\fR block found an internal inconsistency with | |
4369 | the version number. | |
4370 | .IP "Warning: something's wrong" 4 | |
4371 | .IX Item "Warning: something's wrong" | |
4372 | (W) You passed \fIwarn()\fR an empty string (the equivalent of \f(CW\*(C`warn ""\*(C'\fR) or | |
4373 | you called it with no args and \f(CW$_\fR was empty. | |
4374 | .ie n .IP "Warning: unable to close filehandle %s properly" 4 | |
4375 | .el .IP "Warning: unable to close filehandle \f(CW%s\fR properly" 4 | |
4376 | .IX Item "Warning: unable to close filehandle %s properly" | |
4377 | (S) The implicit \fIclose()\fR done by an \fIopen()\fR got an error indication on | |
4378 | the \fIclose()\fR. This usually indicates your file system ran out of disk | |
4379 | space. | |
4380 | .ie n .IP "Warning: Use of ""%s"" without parentheses is ambiguous" 4 | |
4381 | .el .IP "Warning: Use of ``%s'' without parentheses is ambiguous" 4 | |
4382 | .IX Item "Warning: Use of %s without parentheses is ambiguous" | |
4383 | (S ambiguous) You wrote a unary operator followed by something that | |
4384 | looks like a binary operator that could also have been interpreted as a | |
4385 | term or unary operator. For instance, if you know that the rand | |
4386 | function has a default argument of 1.0, and you write | |
4387 | .Sp | |
4388 | .Vb 1 | |
4389 | \& rand + 5; | |
4390 | .Ve | |
4391 | .Sp | |
4392 | you may \s-1THINK\s0 you wrote the same thing as | |
4393 | .Sp | |
4394 | .Vb 1 | |
4395 | \& rand() + 5; | |
4396 | .Ve | |
4397 | .Sp | |
4398 | but in actual fact, you got | |
4399 | .Sp | |
4400 | .Vb 1 | |
4401 | \& rand(+5); | |
4402 | .Ve | |
4403 | .Sp | |
4404 | So put in parentheses to say what you really mean. | |
4405 | .ie n .IP "Wide character in %s" 4 | |
4406 | .el .IP "Wide character in \f(CW%s\fR" 4 | |
4407 | .IX Item "Wide character in %s" | |
4408 | (W utf8) Perl met a wide character (>255) when it wasn't expecting | |
4409 | one. This warning is by default on for I/O (like print). The easiest | |
4410 | way to quiet this warning is simply to add the \f(CW\*(C`:utf8\*(C'\fR layer to the | |
4411 | output, e.g. \f(CW\*(C`binmode STDOUT, ':utf8'\*(C'\fR. Another way to turn off the | |
4412 | warning is to add \f(CW\*(C`no warnings 'utf8';\*(C'\fR but that is often closer to | |
4413 | cheating. In general, you are supposed to explicitly mark the | |
4414 | filehandle with an encoding, see open and \*(L"binmode\*(R" in perlfunc. | |
4415 | .IP "Within []\-length '%c' not allowed" 4 | |
4416 | .IX Item "Within []-length '%c' not allowed" | |
4417 | (F) The count in the (un)pack template may be replaced by \f(CW\*(C`[TEMPLATE]\*(C'\fR only if | |
4418 | \&\f(CW\*(C`TEMPLATE\*(C'\fR always matches the same amount of packed bytes that can be | |
4419 | determined from the template alone. This is not possible if it contains an | |
4420 | of the codes @, /, U, u, w or a *\-length. Redesign the template. | |
4421 | .ie n .IP "\fIwrite()\fR on closed filehandle %s" 4 | |
4422 | .el .IP "\fIwrite()\fR on closed filehandle \f(CW%s\fR" 4 | |
4423 | .IX Item "write() on closed filehandle %s" | |
4424 | (W closed) The filehandle you're writing to got itself closed sometime | |
4425 | before now. Check your control flow. | |
4426 | .ie n .IP "%s ""\ex%s"" does not map to Unicode" 4 | |
4427 | .el .IP "%s ``\ex%s'' does not map to Unicode" 4 | |
4428 | .IX Item "%s x%s does not map to Unicode" | |
4429 | When reading in different encodings Perl tries to map everything | |
4430 | into Unicode characters. The bytes you read in are not legal in | |
4431 | this encoding, for example | |
4432 | .Sp | |
4433 | .Vb 1 | |
4434 | \& utf8 "\exE4" does not map to Unicode | |
4435 | .Ve | |
4436 | .Sp | |
4437 | if you try to read in the a\-diaereses Latin\-1 as \s-1UTF\-8\s0. | |
4438 | .IP "'X' outside of string" 4 | |
4439 | .IX Item "'X' outside of string" | |
4440 | (F) You had a (un)pack template that specified a relative position before | |
4441 | the beginning of the string being (un)packed. See \*(L"pack\*(R" in perlfunc. | |
4442 | .IP "'x' outside of string in unpack" 4 | |
4443 | .IX Item "'x' outside of string in unpack" | |
4444 | (F) You had a pack template that specified a relative position after | |
4445 | the end of the string being unpacked. See \*(L"pack\*(R" in perlfunc. | |
4446 | .IP "\s-1YOU\s0 \s-1HAVEN\s0'T \s-1DISABLED\s0 SET-ID \s-1SCRIPTS\s0 \s-1IN\s0 \s-1THE\s0 \s-1KERNEL\s0 \s-1YET\s0!" 4 | |
4447 | .IX Item "YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!" | |
4448 | (F) And you probably never will, because you probably don't have the | |
4449 | sources to your kernel, and your vendor probably doesn't give a rip | |
4450 | about what you want. Your best bet is to put a setuid C wrapper around | |
4451 | your script. | |
4452 | .ie n .IP "You need to quote ""%s""" 4 | |
4453 | .el .IP "You need to quote ``%s''" 4 | |
4454 | .IX Item "You need to quote %s" | |
4455 | (W syntax) You assigned a bareword as a signal handler name. | |
4456 | Unfortunately, you already have a subroutine of that name declared, | |
4457 | which means that Perl 5 will try to call the subroutine when the | |
4458 | assignment is executed, which is probably not what you want. (If it \s-1IS\s0 | |
4459 | what you want, put an & in front.) | |
4460 | .IP "Your random numbers are not that random" 4 | |
4461 | .IX Item "Your random numbers are not that random" | |
4462 | (F) When trying to initialise the random seed for hashes, Perl could | |
4463 | not get any randomness out of your system. This usually indicates | |
4464 | Something Very Wrong. |