1PERLDIAG(1)            Perl Programmers Reference Guide            PERLDIAG(1)
2
3
4

NAME

6       perldiag - various Perl diagnostics
7

DESCRIPTION

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)
Impressum