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