source: trunk/third/perl/pod/perldiag.pod @ 17035

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