This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove 'hfreeentries failed to free hash' panic
[perl5.git] / pod / perldiag.pod
CommitLineData
a0d0e21e
LW
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).
d1d15184 11 (D) A deprecation (enabled by default).
00eb3f2b 12 (S) A severe warning (enabled by default).
a0d0e21e
LW
13 (F) A fatal error (trappable).
14 (P) An internal error you should never see (trappable).
54310121 15 (X) A very fatal error (nontrappable).
cb1a09d0 16 (A) An alien error message (not generated by Perl).
a0d0e21e 17
75b44862 18The majority of messages from the first three classifications above
64977eb6 19(W, D & S) can be controlled using the C<warnings> pragma.
e476b1b5
GS
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
b7eceb5b 30Severe warnings are always enabled, unless they are explicitly disabled
e476b1b5 31with the C<warnings> pragma or the B<-X> switch.
4438c4b7 32
748a9306 33Trappable errors may be trapped using the eval operator. See
4438c4b7
JH
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>.
a0d0e21e 37
6df41af2
GS
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.
a0d0e21e
LW
44
45=over 4
46
6df41af2 47=item accept() on closed socket %s
33633739 48
be771a83
GS
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>.
33633739 52
de42a5a9 53=item Allocation too large: %x
a0d0e21e 54
6df41af2 55(X) You can't allocate more than 64K on an MS-DOS machine.
a0d0e21e 56
1109a392 57=item '%c' allowed only after types %s
ef54e1a4 58
1109a392
MHM
59(F) The modifiers '!', '<' and '>' are allowed in pack() or unpack() only
60after certain types. See L<perlfunc/pack>.
ef54e1a4 61
6df41af2 62=item Ambiguous call resolved as CORE::%s(), qualify as such or use &
43192e07 63
75b44862 64(W ambiguous) A subroutine you have declared has the same name as a Perl
be771a83
GS
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.
43192e07 68
6df41af2
GS
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).
43192e07 73
6df41af2 74To silently interpret it as the Perl operator, use the C<CORE::> prefix
496a33f5 75on the operator (e.g. C<CORE::log($x)>) or declare the subroutine
be771a83
GS
76to be an object method (see L<perlsub/"Subroutine Attributes"> or
77L<attributes>).
43192e07 78
c2e66d9e
GS
79=item Ambiguous range in transliteration operator
80
81(F) You wrote something like C<tr/a-z-0//> which doesn't mean anything at
82all. To include a C<-> character in a transliteration, put it either
83first or last. (In the past, C<tr/a-z-0//> was synonymous with
84C<tr/a-y//>, which was probably not what you would have expected.)
85
6df41af2 86=item Ambiguous use of %s resolved as %s
43192e07 87
6df41af2
GS
88(W ambiguous)(S) You said something that may not be interpreted the way
89you thought. Normally it's pretty easy to disambiguate it by supplying
90a missing quote, operator, parenthesis pair or declaration.
a0d0e21e 91
d8225693
JM
92=item Ambiguous use of %c resolved as operator %c
93
94(W ambiguous) C<%>, C<&>, and C<*> are both infix operators (modulus,
3303f755
FC
95bitwise and, and multiplication) I<and> initial special characters
96(denoting hashes, subroutines and typeglobs), and you said something
97like C<*foo * foo> that might be interpreted as either of them. We
98assumed you meant the infix operator, but please try to make it more
99clear -- in the example given, you might write C<*foo * foo()> if you
100really meant to multiply a glob by the result of calling a function.
d8225693 101
1ef43bca
JM
102=item Ambiguous use of %c{%s} resolved to %c%s
103
104(W ambiguous) You wrote something like C<@{foo}>, which might be
105asking for the variable C<@foo>, or it might be calling a function
106named foo, and dereferencing it as an array reference. If you wanted
107the varable, you can just write C<@foo>. If you wanted to call the
108function, write C<@{foo()}> ... or you could just not have a variable
109and a function with the same name, and save yourself a lot of trouble.
110
e850844c
FC
111=item Ambiguous use of %c{%s[...]} resolved to %c%s[...]
112
113=item Ambiguous use of %c{%s{...}} resolved to %c%s{...}
4da60377 114
ccaaf480
FC
115(W ambiguous) You wrote something like C<${foo[2]}> (where foo
116represents the name of a Perl keyword), which might be looking for
117element number 2 of the array named C<@foo>, in which case please write
118C<$foo[2]>, or you might have meant to pass an anonymous arrayref to
119the function named foo, and then do a scalar deref on the value it
120returns. If you meant that, write C<${foo([2])}>.
121
122In regular expressions, the C<${foo[2]}> syntax is sometimes necessary
123to disambiguate between array subscripts and character classes.
124C</$length[2345]/>, for instance, will be interpreted as C<$length>
125followed by the character class C<[2345]>. If an array subscript is what
126you want, you can avoid the warning by changing C</${length[2345]}/>
127to the unsightly C</${\$length[2345]}/>, by renaming your array to
128something that does not coincide with a built-in keyword, or by
129simply turning off warnings with C<no warnings 'ambiguous';>.
4da60377 130
bdac9d71 131=item Ambiguous use of -%s resolved as -&%s()
397d0f13
JM
132
133(W ambiguous) You wrote something like C<-foo>, which might be the
a7f6e211
FC
134string C<"-foo">, or a call to the function C<foo>, negated. If you meant
135the string, just write C<"-foo">. If you meant the function call,
397d0f13
JM
136write C<-foo()>.
137
94b03d7d
KW
138=item Ambiguous use of 's//le...' resolved as 's// le...'; Rewrite as 's//el' if you meant 'use locale rules and evaluate rhs as an expression'. In Perl 5.16, it will be resolved the other way
139
140(W deprecated, ambiguous) You wrote a pattern match with substitution
141immediately followed by "le". In Perl 5.14 and earlier, this is
142resolved as meaning to take the result of the substitution, and see if
143it is stringwise less-than-or-equal-to what follows in the expression.
144Having the "le" immediately following a pattern is deprecated behavior,
145so in Perl 5.16, this expression will be resolved as meaning to do the
146pattern match using the rules of the current locale, and evaluate the
147rhs as an expression when doing the substitution. In 5.14, if you want
148the latter interpretation, you can simply write "el" instead.
149
6df41af2 150=item '|' and '<' may not both be specified on command line
a0d0e21e 151
be771a83
GS
152(F) An error peculiar to VMS. Perl does its own command line
153redirection, and found that STDIN was a pipe, and that you also tried to
154redirect STDIN using '<'. Only one STDIN stream to a customer, please.
c9f97d15 155
6df41af2 156=item '|' and '>' may not both be specified on command line
1028017a 157
be771a83
GS
158(F) An error peculiar to VMS. Perl does its own command line
159redirection, and thinks you tried to redirect stdout both to a file and
160into a pipe to another command. You need to choose one or the other,
161though nothing's stopping you from piping into a program or Perl script
162which 'splits' output into two streams, such as
1028017a 163
6df41af2
GS
164 open(OUT,">$ARGV[0]") or die "Can't write to $ARGV[0]: $!";
165 while (<STDIN>) {
166 print;
167 print OUT;
168 }
169 close OUT;
c9f97d15 170
6df41af2 171=item Applying %s to %s will act on scalar(%s)
eb6e2d6f 172
496a33f5
SC
173(W misc) The pattern match (C<//>), substitution (C<s///>), and
174transliteration (C<tr///>) operators work on scalar values. If you apply
be771a83 175one of them to an array or a hash, it will convert the array or hash to
ac036724 176a scalar value (the length of an array, or the population info of a
177hash) and then work on that scalar value. This is probably not what
be771a83
GS
178you meant to do. See L<perlfunc/grep> and L<perlfunc/map> for
179alternatives.
eb6e2d6f 180
6df41af2 181=item Arg too short for msgsnd
76cd736e 182
6df41af2 183(F) msgsnd() requires a string at least as long as sizeof(long).
76cd736e 184
b0fdf69e 185=item %s argument is not a HASH or ARRAY element or a subroutine
a0d0e21e 186
cc1c2e42
FC
187(F) The argument to exists() must be a hash or array element or a
188subroutine with an ampersand, such as:
a0d0e21e
LW
189
190 $foo{$bar}
cb4f522a 191 $ref->{"susie"}[12]
cc1c2e42 192 &do_something
a0d0e21e 193
8ea97a1e 194=item %s argument is not a HASH or ARRAY element or slice
5f05dabc 195
06e52bfa
FC
196(F) The argument to delete() must be either a hash or array element,
197such as:
5f05dabc
PP
198
199 $foo{$bar}
cb4f522a 200 $ref->{"susie"}[12]
5f05dabc 201
8ea97a1e 202or a hash or array slice, such as:
5f05dabc 203
6df41af2
GS
204 @foo[$bar, $baz, $xyzzy]
205 @{$ref->[12]}{"susie", "queue"}
5315574d 206
6df41af2 207=item %s argument is not a subroutine name
a0d0e21e 208
6df41af2 209(F) The argument to exists() for C<exists &sub> must be a subroutine
be771a83
GS
210name, and not a subroutine call. C<exists &sub()> will generate this
211error.
a0d0e21e 212
f86702cc 213=item Argument "%s" isn't numeric%s
a0d0e21e 214
be771a83
GS
215(W numeric) The indicated string was fed as an argument to an operator
216that expected a numeric value instead. If you're fortunate the message
217will identify which operator was so unfortunate.
a0d0e21e 218
b4581f09
JH
219=item Argument list not closed for PerlIO layer "%s"
220
221(W layer) When pushing a layer with arguments onto the Perl I/O system you
222forgot the ) that closes the argument list. (Layers take care of transforming
223data between external and internal representations.) Perl stopped parsing
224the layer list at this point and did not attempt to push this layer.
225If your program didn't explicitly request the failing operation, it may be
226the result of the value of the environment variable PERLIO.
227
a0d0e21e
LW
228=item Array @%s missing the @ in argument %d of %s()
229
75b44862
GS
230(D deprecated) Really old Perl let you omit the @ on array names in some
231spots. This is now heavily deprecated.
a0d0e21e
LW
232
233=item assertion botched: %s
234
235(P) The malloc package that comes with Perl had an internal failure.
236
237=item Assertion failed: file "%s"
238
239(P) A general assertion failed. The file in question must be examined.
240
241=item Assignment to both a list and a scalar
242
243(F) If you assign to a conditional operator, the 2nd and 3rd arguments
244must either both be scalars or both be lists. Otherwise Perl won't
245know which context to supply to the right side.
246
96ebfdd7
RK
247=item A thread exited while %d threads were running
248
4447dfc1 249(W threads)(S) When using threaded Perl, a thread (not necessarily the main
96ebfdd7 250thread) exited while there were still other threads running.
111a855e
FC
251Usually it's a good idea first to collect the return values of the
252created threads by joining them, and only then to exit from the main
96ebfdd7
RK
253thread. See L<threads>.
254
2393f1b9 255=item Attempt to access disallowed key '%s' in a restricted hash
1b1f1335 256
49293501 257(F) The failing code has attempted to get or set a key which is not in
2393f1b9 258the current set of allowed keys of a restricted hash.
49293501 259
81689caa
HS
260=item Attempt to bless into a reference
261
262(F) The CLASSNAME argument to the bless() operator is expected to be
263the name of the package to bless the resulting object into. You've
264supplied instead a reference to something: perhaps you wrote
265
266 bless $self, $proto;
267
268when you intended
269
270 bless $self, ref($proto) || $proto;
271
272If you actually want to bless into the stringified version
273of the reference supplied, you need to stringify it yourself, for
274example by:
275
276 bless $self, "$proto";
277
96ebfdd7
RK
278=item Attempt to delete disallowed key '%s' from a restricted hash
279
280(F) The failing code attempted to delete from a restricted hash a key
281which is not in its key set.
282
283=item Attempt to delete readonly key '%s' from a restricted hash
284
285(F) The failing code attempted to delete a key whose value has been
286declared readonly from a restricted hash.
287
de42a5a9 288=item Attempt to free non-arena SV: 0x%x
a0d0e21e 289
be771a83
GS
290(P internal) All SV objects are supposed to be allocated from arenas
291that will be garbage collected on exit. An SV was discovered to be
292outside any of those arenas.
a0d0e21e 293
54310121 294=item Attempt to free nonexistent shared string
bbce6d69 295
111a855e 296(P internal) Perl maintains a reference-counted internal table of
be771a83
GS
297strings to optimize the storage and access of hash keys and other
298strings. This indicates someone tried to decrement the reference count
299of a string that can no longer be found in the table.
bbce6d69 300
a0d0e21e
LW
301=item Attempt to free temp prematurely
302
be771a83
GS
303(W debugging) Mortalized values are supposed to be freed by the
304free_tmps() routine. This indicates that something else is freeing the
305SV before the free_tmps() routine gets a chance, which means that the
306free_tmps() routine will be freeing an unreferenced scalar when it does
307try to free it.
a0d0e21e
LW
308
309=item Attempt to free unreferenced glob pointers
310
e476b1b5 311(P internal) The reference counts got screwed up on symbol aliases.
a0d0e21e
LW
312
313=item Attempt to free unreferenced scalar
314
be771a83
GS
315(W internal) Perl went to decrement the reference count of a scalar to
316see if it would go to 0, and discovered that it had already gone to 0
317earlier, and should have been freed, and in fact, probably was freed.
318This could indicate that SvREFCNT_dec() was called too many times, or
319that SvREFCNT_inc() was called too few times, or that the SV was
320mortalized when it shouldn't have been, or that memory has been
321corrupted.
a0d0e21e 322
dcdda58d
GS
323=item Attempt to join self
324
325(F) You tried to join a thread from within itself, which is an
be771a83
GS
326impossible task. You may be joining the wrong thread, or you may need
327to move the join() to some other thread.
dcdda58d 328
84902520
TB
329=item Attempt to pack pointer to temporary value
330
be771a83
GS
331(W pack) You tried to pass a temporary value (like the result of a
332function, or a computed expression) to the "p" pack() template. This
333means the result contains a pointer to a location that could become
334invalid anytime, even before the end of the current statement. Use
335literals or global values as arguments to the "p" pack() template to
336avoid this warning.
84902520 337
087b5369
RD
338=item Attempt to reload %s aborted.
339
340(F) You tried to load a file with C<use> or C<require> that failed to
341compile once already. Perl will not try to compile this file again
342unless you delete its entry from %INC. See L<perlfunc/require> and
343L<perlvar/%INC>.
344
1b20cd17
NC
345=item Attempt to set length of freed array
346
347(W) You tried to set the length of an array which has been freed. You
348can do this by storing a reference to the scalar representing the last index
349of an array and later assigning through that reference. For example
350
351 $r = do {my @a; \$#a};
352 $$r = 503
353
b7a902f4
PP
354=item Attempt to use reference as lvalue in substr
355
be771a83
GS
356(W substr) You supplied a reference as the first argument to substr()
357used as an lvalue, which is pretty strange. Perhaps you forgot to
358dereference it first. See L<perlfunc/substr>.
b7a902f4 359
c32124fe
NC
360=item Attribute "locked" is deprecated
361
111a855e 362(D deprecated) You have used the attributes pragma to modify the "locked"
c32124fe 363attribute on a code reference. The :locked attribute is obsolete, has had no
a5547419 364effect since 5005 threads were removed, and will be removed in a future
c32124fe
NC
365release of Perl 5.
366
f1a3ce43
NC
367=item Attribute "unique" is deprecated
368
111a855e 369(D deprecated) You have used the attributes pragma to modify the "unique"
b7a2910f 370attribute on an array, hash or scalar reference. The :unique attribute has
a5547419
FC
371had no effect since Perl 5.8.8, and will be removed in a future release
372of Perl 5.
f1a3ce43 373
de42a5a9 374=item Bad arg length for %s, is %u, should be %d
a0d0e21e 375
be771a83
GS
376(F) You passed a buffer of the wrong size to one of msgctl(), semctl()
377or shmctl(). In C parlance, the correct sizes are, respectively,
5f05dabc 378S<sizeof(struct msqid_ds *)>, S<sizeof(struct semid_ds *)>, and
a0d0e21e
LW
379S<sizeof(struct shmid_ds *)>.
380
7a95317d
GS
381=item Bad evalled substitution pattern
382
496a33f5 383(F) You've used the C</e> switch to evaluate the replacement for a
7a95317d
GS
384substitution, but perl found a syntax error in the code to evaluate,
385most likely an unexpected right brace '}'.
386
a0d0e21e
LW
387=item Bad filehandle: %s
388
be771a83
GS
389(F) A symbol was passed to something wanting a filehandle, but the
390symbol has no filehandle associated with it. Perhaps you didn't do an
391open(), or did it in another package.
a0d0e21e
LW
392
393=item Bad free() ignored
394
be771a83
GS
395(S malloc) An internal routine called free() on something that had never
396been malloc()ed in the first place. Mandatory, but can be disabled by
9ea8bc6d 397setting environment variable C<PERL_BADFREE> to 0.
33c8a3fe 398
9ea8bc6d 399This message can be seen quite often with DB_File on systems with "hard"
be771a83
GS
400dynamic linking, like C<AIX> and C<OS/2>. It is a bug of C<Berkeley DB>
401which is left unnoticed if C<DB> uses I<forgiving> system malloc().
a0d0e21e 402
aa689395
PP
403=item Bad hash
404
405(P) One of the internal hash routines was passed a null HV pointer.
406
6df41af2
GS
407=item Badly placed ()'s
408
409(A) You've accidentally run your script through B<csh> instead
410of Perl. Check the #! line, or manually feed your script into
411Perl yourself.
412
a0d0e21e
LW
413=item Bad name after %s::
414
be771a83
GS
415(F) You started to name a symbol by using a package prefix, and then
416didn't finish the symbol. In particular, you can't interpolate outside
417of quotes, so
a0d0e21e
LW
418
419 $var = 'myvar';
420 $sym = mypack::$var;
421
422is not the same as
423
424 $var = 'myvar';
425 $sym = "mypack::$var";
426
88e1f1a2
JV
427=item Bad plugin affecting keyword '%s'
428
429(F) An extension using the keyword plugin mechanism violated the
430plugin API.
431
4ad56ec9
IZ
432=item Bad realloc() ignored
433
be771a83
GS
434(S malloc) An internal routine called realloc() on something that had
435never been malloc()ed in the first place. Mandatory, but can be disabled
4dcecea4 436by setting the environment variable C<PERL_BADFREE> to 1.
4ad56ec9 437
a0d0e21e
LW
438=item Bad symbol for array
439
440(P) An internal request asked to add an array entry to something that
441wasn't a symbol table entry.
442
4df3f177
SP
443=item Bad symbol for dirhandle
444
445(P) An internal request asked to add a dirhandle entry to something
446that wasn't a symbol table entry.
447
448
a0d0e21e
LW
449=item Bad symbol for filehandle
450
be771a83
GS
451(P) An internal request asked to add a filehandle entry to something
452that wasn't a symbol table entry.
a0d0e21e
LW
453
454=item Bad symbol for hash
455
456(P) An internal request asked to add a hash entry to something that
457wasn't a symbol table entry.
458
34d09196
GS
459=item Bareword found in conditional
460
be771a83
GS
461(W bareword) The compiler found a bareword where it expected a
462conditional, which often indicates that an || or && was parsed as part
463of the last argument of the previous construct, for example:
34d09196
GS
464
465 open FOO || die;
466
be771a83
GS
467It may also indicate a misspelled constant that has been interpreted as
468a bareword:
34d09196
GS
469
470 use constant TYPO => 1;
471 if (TYOP) { print "foo" }
472
473The C<strict> pragma is useful in avoiding such errors.
474
6df41af2
GS
475=item Bareword "%s" not allowed while "strict subs" in use
476
477(F) With "strict subs" in use, a bareword is only allowed as a
be771a83
GS
478subroutine identifier, in curly brackets or to the left of the "=>"
479symbol. Perhaps you need to predeclare a subroutine?
6df41af2
GS
480
481=item Bareword "%s" refers to nonexistent package
482
be771a83
GS
483(W bareword) You used a qualified bareword of the form C<Foo::>, but the
484compiler saw no other uses of that namespace before that point. Perhaps
485you need to predeclare a package?
6df41af2 486
a0d0e21e
LW
487=item BEGIN failed--compilation aborted
488
be771a83
GS
489(F) An untrapped exception was raised while executing a BEGIN
490subroutine. Compilation stops immediately and the interpreter is
491exited.
a0d0e21e 492
68dc0745
PP
493=item BEGIN not safe after errors--compilation aborted
494
495(F) Perl found a C<BEGIN {}> subroutine (or a C<use> directive, which
be771a83
GS
496implies a C<BEGIN {}>) after one or more compilation errors had already
497occurred. Since the intended environment for the C<BEGIN {}> could not
498be guaranteed (due to the errors), and since subsequent code likely
499depends on its correct operation, Perl just gave up.
68dc0745 500
6df41af2
GS
501=item \1 better written as $1
502
be771a83
GS
503(W syntax) Outside of patterns, backreferences live on as variables.
504The use of backslashes is grandfathered on the right-hand side of a
505substitution, but stylistically it's better to use the variable form
506because other Perl programmers will expect it, and it works better if
507there are more than 9 backreferences.
6df41af2 508
252aa082
JH
509=item Binary number > 0b11111111111111111111111111111111 non-portable
510
e476b1b5 511(W portable) The binary number you specified is larger than 2**32-1
9e24b6e2
JH
512(4294967295) and therefore non-portable between systems. See
513L<perlport> for more on portability concerns.
252aa082 514
69282e91 515=item bind() on closed socket %s
a0d0e21e 516
be771a83
GS
517(W closed) You tried to do a bind on a closed socket. Did you forget to
518check the return value of your socket() call? See L<perlfunc/bind>.
a0d0e21e 519
c289d2f7
JH
520=item binmode() on closed filehandle %s
521
522(W unopened) You tried binmode() on a filehandle that was never opened.
4dcecea4 523Check your control flow and number of arguments.
c289d2f7 524
f866a7cd
FC
525=item "\b{" is deprecated; use "\b\{" instead
526
527=item "\B{" is deprecated; use "\B\{" instead
528
529(W deprecated, regexp) Use of an unescaped "{" immediately following a
530C<\b> or C<\B> is now deprecated so as to reserve its use for Perl
531itself in a future release.
532
c5a0f51a
JH
533=item Bit vector size > 32 non-portable
534
e476b1b5 535(W portable) Using bit vector sizes larger than 32 is non-portable.
c5a0f51a 536
4633a7c4
LW
537=item Bizarre copy of %s in %s
538
be771a83 539(P) Perl detected an attempt to copy an internal value that is not
4dcecea4 540copiable.
4633a7c4 541
f675dbe5
CB
542=item Buffer overflow in prime_env_iter: %s
543
be771a83
GS
544(W internal) A warning peculiar to VMS. While Perl was preparing to
545iterate over %ENV, it encountered a logical name or symbol definition
546which was too long, so it was truncated to the string shown.
f675dbe5 547
a0d0e21e
LW
548=item Callback called exit
549
4929bf7b 550(F) A subroutine invoked from an external package via call_sv()
a0d0e21e
LW
551exited by calling exit.
552
6df41af2 553=item %s() called too early to check prototype
f675dbe5 554
be771a83
GS
555(W prototype) You've called a function that has a prototype before the
556parser saw a definition or declaration for it, and Perl could not check
557that the call conforms to the prototype. You need to either add an
558early prototype declaration for the subroutine in question, or move the
559subroutine definition ahead of the call to get proper prototype
560checking. Alternatively, if you are certain that you're calling the
561function correctly, you may put an ampersand before the name to avoid
562the warning. See L<perlsub>.
f675dbe5 563
49704364 564=item Cannot compress integer in pack
0258719b
NC
565
566(F) An argument to pack("w",...) was too large to compress. The BER
567compressed integer format can only be used with positive integers, and you
568attempted to compress Infinity or a very large number (> 1e308).
569See L<perlfunc/pack>.
570
49704364 571=item Cannot compress negative numbers in pack
0258719b
NC
572
573(F) An argument to pack("w",...) was negative. The BER compressed integer
574format can only be used with positive integers. See L<perlfunc/pack>.
575
5c1f4d79
NC
576=item Cannot convert a reference to %s to typeglob
577
578(F) You manipulated Perl's symbol table directly, stored a reference in it,
579then tried to access that symbol via conventional Perl syntax. The access
580triggers Perl to autovivify that typeglob, but it there is no legal conversion
581from that type of reference to a typeglob.
582
ba2fdce6
NC
583=item Cannot copy to %s in %s
584
585(P) Perl detected an attempt to copy a value to an internal type that cannot
4dcecea4 586be directly assigned to.
ba2fdce6 587
b5d97229
RGS
588=item Cannot find encoding "%s"
589
590(S io) You tried to apply an encoding that did not exist to a filehandle,
591either with open() or binmode().
592
96ebfdd7
RK
593=item Can only compress unsigned integers in pack
594
595(F) An argument to pack("w",...) was not an integer. The BER compressed
596integer format can only be used with positive integers, and you attempted
597to compress something else. See L<perlfunc/pack>.
598
a0d0e21e
LW
599=item Can't bless non-reference value
600
601(F) Only hard references may be blessed. This is how Perl "enforces"
602encapsulation of objects. See L<perlobj>.
603
dc57907a
RGS
604=item Can't "break" in a loop topicalizer
605
0d863452
RH
606(F) You called C<break>, but you're in a C<foreach> block rather than
607a C<given> block. You probably meant to use C<next> or C<last>.
608
609=item Can't "break" outside a given block
dc57907a 610
0d863452
RH
611(F) You called C<break>, but you're not inside a C<given> block.
612
6df41af2
GS
613=item Can't call method "%s" on an undefined value
614
615(F) You used the syntax of a method call, but the slot filled by the
be771a83
GS
616object reference or package name contains an undefined value. Something
617like this will reproduce the error:
6df41af2
GS
618
619 $BADREF = undef;
620 process $BADREF 1,2,3;
621 $BADREF->process(1,2,3);
622
a0d0e21e
LW
623=item Can't call method "%s" on unblessed reference
624
54310121 625(F) A method call must know in what package it's supposed to run. It
be771a83
GS
626ordinarily finds this out from the object reference you supply, but you
627didn't supply an object reference in this case. A reference isn't an
628object reference until it has been blessed. See L<perlobj>.
a0d0e21e
LW
629
630=item Can't call method "%s" without a package or object reference
631
632(F) You used the syntax of a method call, but the slot filled by the
be771a83
GS
633object reference or package name contains an expression that returns a
634defined value which is neither an object reference nor a package name.
72b5445b
GS
635Something like this will reproduce the error:
636
637 $BADREF = 42;
638 process $BADREF 1,2,3;
639 $BADREF->process(1,2,3);
640
a0d0e21e
LW
641=item Can't chdir to %s
642
643(F) You called C<perl -x/foo/bar>, but C</foo/bar> is not a directory
644that you can chdir to, possibly because it doesn't exist.
645
0545a864 646=item Can't check filesystem of script "%s" for nosuid
104d25b7 647
be771a83
GS
648(P) For some reason you can't check the filesystem of the script for
649nosuid.
104d25b7 650
22e74366 651=item Can't coerce %s to %s in %s
a0d0e21e
LW
652
653(F) Certain types of SVs, in particular real symbol table entries
55497cff 654(typeglobs), can't be forced to stop being what they are. So you can't
a0d0e21e
LW
655say things like:
656
657 *foo += 1;
658
659You CAN say
660
661 $foo = *foo;
662 $foo += 1;
663
664but then $foo no longer contains a glob.
665
0d863452 666=item Can't "continue" outside a when block
dc57907a 667
0d863452
RH
668(F) You called C<continue>, but you're not inside a C<when>
669or C<default> block.
670
a0d0e21e
LW
671=item Can't create pipe mailbox
672
be771a83
GS
673(P) An error peculiar to VMS. The process is suffering from exhausted
674quotas or other plumbing problems.
a0d0e21e 675
eb64745e
GS
676=item Can't declare %s in "%s"
677
30c282f6
NC
678(F) Only scalar, array, and hash variables may be declared as "my", "our" or
679"state" variables. They must have ordinary identifiers as names.
a0d0e21e 680
6df41af2
GS
681=item Can't do inplace edit: %s is not a regular file
682
be771a83
GS
683(S inplace) You tried to use the B<-i> switch on a special file, such as
684a file in /dev, or a FIFO. The file was ignored.
6df41af2 685
a0d0e21e
LW
686=item Can't do inplace edit on %s: %s
687
be771a83
GS
688(S inplace) The creation of the new file failed for the indicated
689reason.
a0d0e21e 690
54310121 691=item Can't do inplace edit without backup
a0d0e21e 692
be771a83
GS
693(F) You're on a system such as MS-DOS that gets confused if you try
694reading from a deleted (but still opened) file. You have to say
695C<-i.bak>, or some such.
a0d0e21e 696
10f9c03d 697=item Can't do inplace edit: %s would not be unique
a0d0e21e 698
e476b1b5 699(S inplace) Your filesystem does not support filenames longer than 14
10f9c03d
CK
700characters and Perl was unable to create a unique filename during
701inplace editing with the B<-i> switch. The file was ignored.
a0d0e21e 702
7253e4e3 703=item Can't do {n,m} with n > m in regex; marked by <-- HERE in m/%s/
a0d0e21e 704
b45f050a 705(F) Minima must be less than or equal to maxima. If you really want your
7253e4e3 706regexp to match something 0 times, just put {0}. The <-- HERE shows in the
b45f050a 707regular expression about where the problem was discovered. See L<perlre>.
a0d0e21e 708
a0d0e21e
LW
709=item Can't do waitpid with flags
710
be771a83
GS
711(F) This machine doesn't have either waitpid() or wait4(), so only
712waitpid() without flags is emulated.
a0d0e21e 713
a0d0e21e
LW
714=item Can't emulate -%s on #! line
715
be771a83
GS
716(F) The #! line specifies a switch that doesn't make sense at this
717point. For example, it'd be kind of silly to put a B<-x> on the #!
718line.
a0d0e21e 719
1109a392
MHM
720=item Can't %s %s-endian %ss on this platform
721
722(F) Your platform's byte-order is neither big-endian nor little-endian,
723or it has a very strange pointer size. Packing and unpacking big- or
724little-endian floating point values and pointers may not be possible.
725See L<perlfunc/pack>.
726
a0d0e21e
LW
727=item Can't exec "%s": %s
728
d1be9408 729(W exec) A system(), exec(), or piped open call could not execute the
be771a83
GS
730named program for the indicated reason. Typical reasons include: the
731permissions were wrong on the file, the file wasn't found in
732C<$ENV{PATH}>, the executable in question was compiled for another
733architecture, or the #! line in a script points to an interpreter that
734can't be run for similar reasons. (Or maybe your system doesn't support
735#! at all.)
a0d0e21e
LW
736
737=item Can't exec %s
738
be771a83
GS
739(F) Perl was trying to execute the indicated program for you because
740that's what the #! line said. If that's not what you wanted, you may
741need to mention "perl" on the #! line somewhere.
a0d0e21e
LW
742
743=item Can't execute %s
744
be771a83
GS
745(F) You used the B<-S> switch, but the copies of the script to execute
746found in the PATH did not have correct permissions.
2a92aaa0 747
6df41af2 748=item Can't find an opnumber for "%s"
2a92aaa0 749
be771a83
GS
750(F) A string of a form C<CORE::word> was given to prototype(), but there
751is no builtin with the name C<word>.
6df41af2 752
56ca2fc0
JH
753=item Can't find %s character property "%s"
754
755(F) You used C<\p{}> or C<\P{}> but the character property by that name
e1b711da
KW
756could not be found. Maybe you misspelled the name of the property?
757See L<perluniprops/Properties accessible through \p{} and \P{}>
758for a complete list of available properties.
56ca2fc0 759
6df41af2
GS
760=item Can't find label %s
761
be771a83
GS
762(F) You said to goto a label that isn't mentioned anywhere that it's
763possible for us to go to. See L<perlfunc/goto>.
2a92aaa0
GS
764
765=item Can't find %s on PATH
766
be771a83
GS
767(F) You used the B<-S> switch, but the script to execute could not be
768found in the PATH.
a0d0e21e 769
6df41af2 770=item Can't find %s on PATH, '.' not in PATH
a0d0e21e 771
be771a83
GS
772(F) You used the B<-S> switch, but the script to execute could not be
773found in the PATH, or at least not with the correct permissions. The
774script exists in the current directory, but PATH prohibits running it.
a0d0e21e
LW
775
776=item Can't find string terminator %s anywhere before EOF
777
be771a83
GS
778(F) Perl strings can stretch over multiple lines. This message means
779that the closing delimiter was omitted. Because bracketed quotes count
780nesting levels, the following is missing its final parenthesis:
a0d0e21e 781
fb73857a
PP
782 print q(The character '(' starts a side comment.);
783
97b3d10f 784If you're getting this error from a here-document, you may have
b6b8cb97
FC
785included unseen whitespace before or after your closing tag or there
786may not be a linebreak after it. A good programmer's editor will have
787a way to help you find these characters (or lack of characters). See
788L<perlop> for the full details on here-documents.
a0d0e21e 789
660a4616
ST
790=item Can't find Unicode property definition "%s"
791
5f8ad6b6
FC
792(F) You may have tried to use C<\p> which means a Unicode
793property (for example C<\p{Lu}> matches all uppercase
794letters). If you did mean to use a Unicode property, see
e1b711da 795L<perluniprops/Properties accessible through \p{} and \P{}>
5f8ad6b6
FC
796for a complete list of available properties. If you didn't
797mean to use a Unicode property, escape the C<\p>, either by C<\\p>
798(just the C<\p>) or by C<\Q\p> (the rest of the string, or
799until C<\E>).
660a4616 800
b3647a36 801=item Can't fork: %s
a0d0e21e 802
be771a83
GS
803(F) A fatal error occurred while trying to fork while opening a
804pipeline.
a0d0e21e 805
b3647a36
SR
806=item Can't fork, trying again in 5 seconds
807
c973c02e 808(W pipe) A fork in a piped open failed with EAGAIN and will be retried
b3647a36
SR
809after five seconds.
810
748a9306
LW
811=item Can't get filespec - stale stat buffer?
812
be771a83
GS
813(S) A warning peculiar to VMS. This arises because of the difference
814between access checks under VMS and under the Unix model Perl assumes.
815Under VMS, access checks are done by filename, rather than by bits in
816the stat buffer, so that ACLs and other protections can be taken into
817account. Unfortunately, Perl assumes that the stat buffer contains all
818the necessary information, and passes it, instead of the filespec, to
2fe2bdfd 819the access-checking routine. It will try to retrieve the filespec using
be771a83
GS
820the device name and FID present in the stat buffer, but this works only
821if you haven't made a subsequent call to the CRTL stat() routine,
822because the device name is overwritten with each call. If this warning
2fe2bdfd
FC
823appears, the name lookup failed, and the access-checking routine gave up
824and returned FALSE, just to be conservative. (Note: The access-checking
be771a83
GS
825routine knows about the Perl C<stat> operator and file tests, so you
826shouldn't ever see this warning in response to a Perl command; it arises
827only if some internal code takes stat buffers lightly.)
748a9306 828
a0d0e21e
LW
829=item Can't get pipe mailbox device name
830
be771a83
GS
831(P) An error peculiar to VMS. After creating a mailbox to act as a
832pipe, Perl can't retrieve its name for later use.
a0d0e21e
LW
833
834=item Can't get SYSGEN parameter value for MAXBUF
835
748a9306
LW
836(P) An error peculiar to VMS. Perl asked $GETSYI how big you want your
837mailbox buffers to be, and didn't get an answer.
a0d0e21e 838
6df41af2 839=item Can't "goto" into the middle of a foreach loop
a0d0e21e 840
be771a83
GS
841(F) A "goto" statement was executed to jump into the middle of a foreach
842loop. You can't get there from here. See L<perlfunc/goto>.
6df41af2
GS
843
844=item Can't "goto" out of a pseudo block
845
be771a83
GS
846(F) A "goto" statement was executed to jump out of what might look like
847a block, except that it isn't a proper block. This usually occurs if
848you tried to jump out of a sort() block or subroutine, which is a no-no.
849See L<perlfunc/goto>.
a0d0e21e 850
9850bf21 851=item Can't goto subroutine from a sort sub (or similar callback)
cd299c6e 852
9850bf21
RH
853(F) The "goto subroutine" call can't be used to jump out of the
854comparison sub for a sort(), or from a similar callback (such
855as the reduce() function in List::Util).
856
c74ace89 857=item Can't goto subroutine from an eval-%s
b150fb22 858
be771a83 859(F) The "goto subroutine" call can't be used to jump out of an eval
c74ace89 860"string" or block.
b150fb22 861
6df41af2
GS
862=item Can't goto subroutine outside a subroutine
863
be771a83
GS
864(F) The deeply magical "goto subroutine" call can only replace one
865subroutine call for another. It can't manufacture one out of whole
866cloth. In general you should be calling it out of only an AUTOLOAD
867routine anyway. See L<perlfunc/goto>.
6df41af2 868
0b5b802d
GS
869=item Can't ignore signal CHLD, forcing to default
870
be771a83
GS
871(W signal) Perl has detected that it is being run with the SIGCHLD
872signal (sometimes known as SIGCLD) disabled. Since disabling this
873signal will interfere with proper determination of exit status of child
874processes, Perl has reset the signal to its default value. This
875situation typically indicates that the parent program under which Perl
876may be running (e.g. cron) is being very careless.
0b5b802d 877
e2c0f81f
DG
878=item Can't kill a non-numeric process ID
879
880(F) Process identifiers must be (signed) integers. It is a fatal error to
881attempt to kill() an undefined, empty-string or otherwise non-numeric
882process identifier.
883
6df41af2 884=item Can't "last" outside a loop block
4633a7c4 885
6df41af2 886(F) A "last" statement was executed to break out of the current block,
be771a83
GS
887except that there's this itty bitty problem called there isn't a current
888block. Note that an "if" or "else" block doesn't count as a "loopish"
889block, as doesn't a block given to sort(), map() or grep(). You can
890usually double the curlies to get the same effect though, because the
891inner curlies will be considered a block that loops once. See
892L<perlfunc/last>.
4633a7c4 893
2c7d6b9c
RGS
894=item Can't linearize anonymous symbol table
895
896(F) Perl tried to calculate the method resolution order (MRO) of a
897package, but failed because the package stash has no name.
898
b8170e59
JB
899=item Can't load '%s' for module %s
900
901(F) The module you tried to load failed to load a dynamic extension. This
902may either mean that you upgraded your version of perl to one that is
903incompatible with your old dynamic extensions (which is known to happen
904between major versions of perl), or (more likely) that your dynamic
16d98ec5 905extension was built against an older version of the library that is
b8170e59
JB
906installed on your system. You may need to rebuild your old dynamic
907extensions.
908
748a9306
LW
909=item Can't localize lexical variable %s
910
2ba9eb46 911(F) You used local on a variable name that was previously declared as a
30c282f6 912lexical variable using "my" or "state". This is not allowed. If you want to
748a9306
LW
913localize a package variable of the same name, qualify it with the
914package name.
915
6df41af2 916=item Can't localize through a reference
4727527e 917
6df41af2
GS
918(F) You said something like C<local $$ref>, which Perl can't currently
919handle, because when it goes to restore the old value of whatever $ref
be771a83 920pointed to after the scope of the local() is finished, it can't be sure
64977eb6 921that $ref will still be a reference.
4727527e 922
ea071790 923=item Can't locate %s
ec889f3a
GS
924
925(F) You said to C<do> (or C<require>, or C<use>) a file that couldn't be
926found. Perl looks for the file in all the locations mentioned in @INC,
be771a83
GS
927unless the file name included the full path to the file. Perhaps you
928need to set the PERL5LIB or PERL5OPT environment variable to say where
929the extra library is, or maybe the script needs to add the library name
930to @INC. Or maybe you just misspelled the name of the file. See
931L<perlfunc/require> and L<lib>.
a0d0e21e 932
6df41af2
GS
933=item Can't locate auto/%s.al in @INC
934
be771a83
GS
935(F) A function (or method) was called in a package which allows
936autoload, but there is no function to autoload. Most probable causes
937are a misprint in a function/method name or a failure to C<AutoSplit>
938the file, say, by doing C<make install>.
6df41af2 939
b8170e59
JB
940=item Can't locate loadable object for module %s in @INC
941
942(F) The module you loaded is trying to load an external library, like
943for example, C<foo.so> or C<bar.dll>, but the L<DynaLoader> module was
944unable to locate this library. See L<DynaLoader>.
945
a0d0e21e
LW
946=item Can't locate object method "%s" via package "%s"
947
948(F) You called a method correctly, and it correctly indicated a package
949functioning as a class, but that package doesn't define that particular
2ba9eb46 950method, nor does any of its base classes. See L<perlobj>.
a0d0e21e
LW
951
952=item Can't locate package %s for @%s::ISA
953
be771a83
GS
954(W syntax) The @ISA array contained the name of another package that
955doesn't seem to exist.
a0d0e21e 956
2f7da168
RK
957=item Can't locate PerlIO%s
958
959(F) You tried to use in open() a PerlIO layer that does not exist,
960e.g. open(FH, ">:nosuchlayer", "somefile").
961
3e3baf6d
TB
962=item Can't make list assignment to \%ENV on this system
963
be771a83
GS
964(F) List assignment to %ENV is not supported on some systems, notably
965VMS.
3e3baf6d 966
a0d0e21e
LW
967=item Can't modify %s in %s
968
be771a83
GS
969(F) You aren't allowed to assign to the item indicated, or otherwise try
970to change it, such as with an auto-increment.
a0d0e21e 971
54310121 972=item Can't modify nonexistent substring
a0d0e21e
LW
973
974(P) The internal routine that does assignment to a substr() was handed
975a NULL.
976
6df41af2
GS
977=item Can't modify non-lvalue subroutine call
978
979(F) Subroutines meant to be used in lvalue context should be declared as
2fe2bdfd 980such. See L<perlsub/"Lvalue subroutines">.
6df41af2 981
5f05dabc 982=item Can't msgrcv to read-only var
a0d0e21e 983
5f05dabc 984(F) The target of a msgrcv must be modifiable to be used as a receive
a0d0e21e
LW
985buffer.
986
6df41af2
GS
987=item Can't "next" outside a loop block
988
989(F) A "next" statement was executed to reiterate the current block, but
990there isn't a current block. Note that an "if" or "else" block doesn't
be771a83
GS
991count as a "loopish" block, as doesn't a block given to sort(), map() or
992grep(). You can usually double the curlies to get the same effect
993though, because the inner curlies will be considered a block that loops
994once. See L<perlfunc/next>.
6df41af2 995
a0d0e21e
LW
996=item Can't open %s: %s
997
c47ff5f1 998(S inplace) The implicit opening of a file through use of the C<< <> >>
08e9d68e
DD
999filehandle, either implicitly under the C<-n> or C<-p> command-line
1000switches, or explicitly, failed for the indicated reason. Usually this
be771a83
GS
1001is because you don't have read permission for a file which you named on
1002the command line.
a0d0e21e 1003
9a869a14
RGS
1004=item Can't open a reference
1005
1006(W io) You tried to open a scalar reference for reading or writing,
2fe2bdfd 1007using the 3-arg open() syntax:
9a869a14
RGS
1008
1009 open FH, '>', $ref;
1010
1011but your version of perl is compiled without perlio, and this form of
1012open is not supported.
1013
a0d0e21e
LW
1014=item Can't open bidirectional pipe
1015
be771a83
GS
1016(W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported.
1017You can try any of several modules in the Perl library to do this, such
1018as IPC::Open2. Alternately, direct the pipe's output to a file using
1019">", and then read it in under a different file handle.
a0d0e21e 1020
748a9306
LW
1021=item Can't open error file %s as stderr
1022
be771a83
GS
1023(F) An error peculiar to VMS. Perl does its own command line
1024redirection, and couldn't open the file specified after '2>' or '2>>' on
1025the command line for writing.
748a9306
LW
1026
1027=item Can't open input file %s as stdin
1028
be771a83
GS
1029(F) An error peculiar to VMS. Perl does its own command line
1030redirection, and couldn't open the file specified after '<' on the
1031command line for reading.
748a9306
LW
1032
1033=item Can't open output file %s as stdout
1034
be771a83
GS
1035(F) An error peculiar to VMS. Perl does its own command line
1036redirection, and couldn't open the file specified after '>' or '>>' on
1037the command line for writing.
748a9306
LW
1038
1039=item Can't open output pipe (name: %s)
1040
be771a83
GS
1041(P) An error peculiar to VMS. Perl does its own command line
1042redirection, and couldn't open the pipe into which to send data destined
1043for stdout.
748a9306 1044
2b8ca739 1045=item Can't open perl script%s
a0d0e21e
LW
1046
1047(F) The script you specified can't be opened for the indicated reason.
1048
fa3aa65a
JC
1049If you're debugging a script that uses #!, and normally relies on the
1050shell's $PATH search, the -S option causes perl to do that search, so
1051you don't have to type the path or C<`which $scriptname`>.
1052
6df41af2
GS
1053=item Can't read CRTL environ
1054
1055(S) A warning peculiar to VMS. Perl tried to read an element of %ENV
1056from the CRTL's internal environment array and discovered the array was
1057missing. You need to figure out where your CRTL misplaced its environ
be771a83
GS
1058or define F<PERL_ENV_TABLES> (see L<perlvms>) so that environ is not
1059searched.
6df41af2 1060
6df41af2
GS
1061=item Can't "redo" outside a loop block
1062
1063(F) A "redo" statement was executed to restart the current block, but
1064there isn't a current block. Note that an "if" or "else" block doesn't
1065count as a "loopish" block, as doesn't a block given to sort(), map()
1066or grep(). You can usually double the curlies to get the same effect
1067though, because the inner curlies will be considered a block that
1068loops once. See L<perlfunc/redo>.
1069
64977eb6 1070=item Can't remove %s: %s, skipping file
10f9c03d 1071
be771a83
GS
1072(S inplace) You requested an inplace edit without creating a backup
1073file. Perl was unable to remove the original file to replace it with
1074the modified file. The file was left unmodified.
10f9c03d 1075
a0d0e21e
LW
1076=item Can't rename %s to %s: %s, skipping file
1077
e476b1b5 1078(S inplace) The rename done by the B<-i> switch failed for some reason,
10f9c03d 1079probably because you don't have write permission to the directory.
a0d0e21e 1080
748a9306
LW
1081=item Can't reopen input pipe (name: %s) in binary mode
1082
be771a83
GS
1083(P) An error peculiar to VMS. Perl thought stdin was a pipe, and tried
1084to reopen it to accept binary data. Alas, it failed.
748a9306 1085
fe13d51d 1086=item Can't resolve method "%s" overloading "%s" in package "%s"
6df41af2 1087
be771a83
GS
1088(F|P) Error resolving overloading specified by a method name (as opposed
1089to a subroutine reference): no such method callable via the package. If
2fe2bdfd 1090the method name is C<???>, this is an internal error.
6df41af2 1091
cd06dffe
GS
1092=item Can't return %s from lvalue subroutine
1093
be771a83
GS
1094(F) Perl detected an attempt to return illegal lvalues (such as
1095temporary or readonly values) from a subroutine used as an lvalue. This
1096is not allowed.
cd06dffe 1097
96ebfdd7
RK
1098=item Can't return outside a subroutine
1099
1100(F) The return statement was executed in mainline code, that is, where
1101there was no subroutine call to return out of. See L<perlsub>.
1102
78f9721b
SM
1103=item Can't return %s to lvalue scalar context
1104
1105(F) You tried to return a complete array or hash from an lvalue subroutine,
1106but you called the subroutine in a way that made Perl think you meant
1107to return only one value. You probably meant to write parentheses around
1108the call to the subroutine, which tell Perl that the call should be in
1109list context.
1110
a0d0e21e
LW
1111=item Can't stat script "%s"
1112
be771a83
GS
1113(P) For some reason you can't fstat() the script even though you have it
1114open already. Bizarre.
a0d0e21e 1115
a0d0e21e
LW
1116=item Can't take log of %g
1117
fb73857a
PP
1118(F) For ordinary real numbers, you can't take the logarithm of a
1119negative number or zero. There's a Math::Complex package that comes
be771a83
GS
1120standard with Perl, though, if you really want to do that for the
1121negative numbers.
a0d0e21e
LW
1122
1123=item Can't take sqrt of %g
1124
1125(F) For ordinary real numbers, you can't take the square root of a
fb73857a
PP
1126negative number. There's a Math::Complex package that comes standard
1127with Perl, though, if you really want to do that.
a0d0e21e
LW
1128
1129=item Can't undef active subroutine
1130
1131(F) You can't undefine a routine that's currently running. You can,
1132however, redefine it while it's running, and you can even undef the
1133redefined subroutine while the old routine is running. Go figure.
1134
c81225bc 1135=item Can't upgrade %s (%d) to %d
a0d0e21e 1136
be771a83
GS
1137(P) The internal sv_upgrade routine adds "members" to an SV, making it
1138into a more specialized kind of SV. The top several SV types are so
1139specialized, however, that they cannot be interconverted. This message
1140indicates that such a conversion was attempted.
a0d0e21e 1141
1db89ea5
BS
1142=item Can't use anonymous symbol table for method lookup
1143
e27ad1f2 1144(F) The internal routine that does method lookup was handed a symbol
1db89ea5
BS
1145table that doesn't have a name. Symbol tables can become anonymous
1146for example by undefining stashes: C<undef %Some::Package::>.
1147
96ebfdd7
RK
1148=item Can't use an undefined value as %s reference
1149
1150(F) A value used as either a hard reference or a symbolic reference must
1151be a defined value. This helps to delurk some insidious errors.
1152
6df41af2
GS
1153=item Can't use bareword ("%s") as %s ref while "strict refs" in use
1154
be771a83
GS
1155(F) Only hard references are allowed by "strict refs". Symbolic
1156references are disallowed. See L<perlref>.
6df41af2 1157
90b75b61 1158=item Can't use %! because Errno.pm is not available
1d2dff63
GS
1159
1160(F) The first time the %! hash is used, perl automatically loads the
1161Errno.pm module. The Errno module is expected to tie the %! hash to
1162provide symbolic names for C<$!> errno values.
1163
1109a392
MHM
1164=item Can't use both '<' and '>' after type '%c' in %s
1165
1166(F) A type cannot be forced to have both big-endian and little-endian
1167byte-order at the same time, so this combination of modifiers is not
1168allowed. See L<perlfunc/pack>.
1169
6df41af2
GS
1170=item Can't use %s for loop variable
1171
be771a83
GS
1172(F) Only a simple scalar variable may be used as a loop variable on a
1173foreach.
6df41af2 1174
aab6a793 1175=item Can't use global %s in "%s"
6df41af2 1176
be771a83
GS
1177(F) You tried to declare a magical variable as a lexical variable. This
1178is not allowed, because the magic can be tied to only one location
1179(namely the global variable) and it would be incredibly confusing to
1180have variables in your program that looked like magical variables but
6df41af2
GS
1181weren't.
1182
6d3b25aa
RGS
1183=item Can't use '%c' in a group with different byte-order in %s
1184
1185(F) You attempted to force a different byte-order on a type
1186that is already inside a group with a byte-order modifier.
1187For example you cannot force little-endianness on a type that
1188is inside a big-endian group.
1189
c07a80fd
PP
1190=item Can't use "my %s" in sort comparison
1191
1192(F) The global variables $a and $b are reserved for sort comparisons.
c47ff5f1 1193You mentioned $a or $b in the same line as the <=> or cmp operator,
c07a80fd
PP
1194and the variable had earlier been declared as a lexical variable.
1195Either qualify the sort variable with the package name, or rename the
1196lexical variable.
1197
a0d0e21e
LW
1198=item Can't use %s ref as %s ref
1199
1200(F) You've mixed up your reference types. You have to dereference a
1201reference of the type needed. You can use the ref() function to
1202test the type of the reference, if need be.
1203
748a9306 1204=item Can't use string ("%s") as %s ref while "strict refs" in use
a0d0e21e 1205
be771a83
GS
1206(F) Only hard references are allowed by "strict refs". Symbolic
1207references are disallowed. See L<perlref>.
a0d0e21e 1208
748a9306
LW
1209=item Can't use subscript on %s
1210
1211(F) The compiler tried to interpret a bracketed expression as a
1212subscript. But to the left of the brackets was an expression that
209e7cf1 1213didn't look like a hash or array reference, or anything else subscriptable.
748a9306 1214
6df41af2
GS
1215=item Can't use \%c to mean $%c in expression
1216
75b44862
GS
1217(W syntax) In an ordinary expression, backslash is a unary operator that
1218creates a reference to its argument. The use of backslash to indicate a
1219backreference to a matched substring is valid only as part of a regular
be771a83
GS
1220expression pattern. Trying to do this in ordinary Perl code produces a
1221value that prints out looking like SCALAR(0xdecaf). Use the $1 form
1222instead.
6df41af2 1223
0d863452 1224=item Can't use "when" outside a topicalizer
dc57907a 1225
0d863452
RH
1226(F) You have used a when() block that is neither inside a C<foreach>
1227loop nor a C<given> block. (Note that this error is issued on exit
1228from the C<when> block, so you won't get the error if the match fails,
1229or if you use an explicit C<continue>.)
1230
810b8aa5
GS
1231=item Can't weaken a nonreference
1232
1233(F) You attempted to weaken something that was not a reference. Only
1234references can be weakened.
1235
5f05dabc 1236=item Can't x= to read-only value
a0d0e21e 1237
be771a83
GS
1238(F) You tried to repeat a constant value (often the undefined value)
1239with an assignment operator, which implies modifying the value itself.
a0d0e21e
LW
1240Perhaps you need to copy the value to a temporary, and repeat that.
1241
4a68bf9d 1242=item Character following "\c" must be ASCII
f9d13529 1243
17a3df4c
KW
1244(F|W deprecated, syntax) In C<\cI<X>>, I<X> must be an ASCII character.
1245It is planned to make this fatal in all instances in Perl 5.16. In the
1246cases where it isn't fatal, the character this evaluates to is
1247derived by exclusive or'ing the code point of this character with 0x40.
1248
1249Note that non-alphabetic ASCII characters are discouraged here as well.
f9d13529 1250
f337b084 1251=item Character in 'C' format wrapped in pack
ac7cd81a
SC
1252
1253(W pack) You said
1254
1255 pack("C", $x)
1256
1257where $x is either less than 0 or more than 255; the C<"C"> format is
1258only for encoding native operating system characters (ASCII, EBCDIC,
1259and so on) and not for Unicode characters, so Perl behaved as if you meant
1260
1261 pack("C", $x & 255)
1262
1263If you actually want to pack Unicode codepoints, use the C<"U"> format
1264instead.
1265
f337b084
TH
1266=item Character in 'W' format wrapped in pack
1267
1268(W pack) You said
1269
1270 pack("U0W", $x)
1271
1272where $x is either less than 0 or more than 255. However, C<U0>-mode expects
1273all values to fall in the interval [0, 255], so Perl behaved as if you
1274meant:
1275
1276 pack("U0W", $x & 255)
1277
1278=item Character in 'c' format wrapped in pack
ac7cd81a
SC
1279
1280(W pack) You said
1281
1282 pack("c", $x)
1283
1284where $x is either less than -128 or more than 127; the C<"c"> format
1285is only for encoding native operating system characters (ASCII, EBCDIC,
1286and so on) and not for Unicode characters, so Perl behaved as if you meant
1287
1288 pack("c", $x & 255);
1289
1290If you actually want to pack Unicode codepoints, use the C<"U"> format
1291instead.
1292
f337b084
TH
1293=item Character in '%c' format wrapped in unpack
1294
1295(W unpack) You tried something like
1296
1297 unpack("H", "\x{2a1}")
1298
1a147d38 1299where the format expects to process a byte (a character with a value
f337b084
TH
1300below 256), but a higher value was provided instead. Perl uses the value
1301modulus 256 instead, as if you had provided:
1302
1303 unpack("H", "\x{a1}")
1304
1305=item Character(s) in '%c' format wrapped in pack
1306
1307(W pack) You tried something like
1308
1309 pack("u", "\x{1f3}b")
1310
1a147d38
YO
1311where the format expects to process a sequence of bytes (character with a
1312value below 256), but some of the characters had a higher value. Perl
f337b084
TH
1313uses the character values modulus 256 instead, as if you had provided:
1314
1315 pack("u", "\x{f3}b")
1316
1317=item Character(s) in '%c' format wrapped in unpack
1318
1319(W unpack) You tried something like
1320
1321 unpack("s", "\x{1f3}b")
1322
1a147d38
YO
1323where the format expects to process a sequence of bytes (character with a
1324value below 256), but some of the characters had a higher value. Perl
f337b084
TH
1325uses the character values modulus 256 instead, as if you had provided:
1326
1327 unpack("s", "\x{f3}b")
1328
f866a7cd
FC
1329=item "\c{" is deprecated and is more clearly written as ";"
1330
1331(D deprecated, syntax) The C<\cI<X>> construct is intended to be a way
1332to specify non-printable characters. You used it with a "{" which
1333evaluates to ";", which is printable. It is planned to remove the
1334ability to specify a semi-colon this way in Perl 5.16. Just use a
1335semi-colon or a backslash-semi-colon without the "\c".
1336
1337=item "\c%c" is more clearly written simply as "%s"
1338
1339(W syntax) The C<\cI<X>> construct is intended to be a way to specify
1340non-printable characters. You used it for a printable one, which is better
1341written as simply itself, perhaps preceded by a backslash for non-word
1342characters.
1343
96ebfdd7
RK
1344=item close() on unopened filehandle %s
1345
1346(W unopened) You tried to close a filehandle that was never opened.
1347
abc7ecad
SP
1348=item closedir() attempted on invalid dirhandle %s
1349
1350(W io) The dirhandle you tried to close is either closed or not really
1351a dirhandle. Check your control flow.
1352
541ed3a9
FC
1353=item Closure prototype called
1354
1355(F) If a closure has attributes, the subroutine passed to an attribute
1356handler is the prototype that is cloned when a new closure is created.
1357This subroutine cannot be called.
1358
49704364
LW
1359=item Code missing after '/'
1360
1361(F) You had a (sub-)template that ends with a '/'. There must be another
1362template code following the slash. See L<perlfunc/pack>.
1363
0876b9a0
KW
1364=item Code point 0x%X is not Unicode, may not be portable
1365
9ae3ac1a
KW
1366=item Code point 0x%X is not Unicode, no properties match it; all inverse properties do
1367
8457b38f 1368(W utf8, non_unicode) You had a code point above the Unicode maximum of U+10FFFF.
0876b9a0
KW
1369
1370Perl allows strings to contain a superset of Unicode code
1371points, up to the limit of what is storable in an unsigned integer on
1372your system, but these may not be accepted by other languages/systems.
1373At one time, it was legal in some standards to have code points up to
13740x7FFF_FFFF, but not higher. Code points above 0xFFFF_FFFF require
1375larger than a 32 bit word.
1376
9ae3ac1a
KW
1377None of the Unicode or Perl-defined properties will match a non-Unicode
1378code point. For example,
1379
1380 chr(0x7FF_FFFF) =~ /\p{Any}/
1381
1382will not match, because the code point is not in Unicode. But
1383
1384 chr(0x7FF_FFFF) =~ /\P{Any}/
1385
1386will match.
1387
6df41af2
GS
1388=item %s: Command not found
1389
be771a83
GS
1390(A) You've accidentally run your script through B<csh> instead of Perl.
1391Check the #! line, or manually feed your script into Perl yourself.
6df41af2 1392
7a2e2cd6
PP
1393=item Compilation failed in require
1394
1395(F) Perl could not compile a file specified in a C<require> statement.
be771a83
GS
1396Perl uses this generic message when none of the errors that it
1397encountered were severe enough to halt compilation immediately.
7a2e2cd6 1398
c3464db5
DD
1399=item Complex regular subexpression recursion limit (%d) exceeded
1400
be771a83
GS
1401(W regexp) The regular expression engine uses recursion in complex
1402situations where back-tracking is required. Recursion depth is limited
1403to 32766, or perhaps less in architectures where the stack cannot grow
1404arbitrarily. ("Simple" and "medium" situations are handled without
1405recursion and are not subject to a limit.) Try shortening the string
1406under examination; looping in Perl code (e.g. with C<while>) rather than
1407in the regular expression engine; or rewriting the regular expression so
c2e66d9e 1408that it is simpler or backtracks less. (See L<perlfaq2> for information
be771a83 1409on I<Mastering Regular Expressions>.)
c3464db5 1410
38875929
DM
1411=item cond_broadcast() called on unlocked variable
1412
1413(W threads) Within a thread-enabled program, you tried to call
1414cond_broadcast() on a variable which wasn't locked. The cond_broadcast()
a568ca76 1415function is used to wake up another thread that is waiting in a
38875929 1416cond_wait(). To ensure that the signal isn't sent before the other thread
a568ca76
FC
1417has a chance to enter the wait, it is usual for the signaling thread
1418first to wait for a lock on variable. This lock attempt will only succeed
38875929
DM
1419after the other thread has entered cond_wait() and thus relinquished the
1420lock.
1421
38875929
DM
1422=item cond_signal() called on unlocked variable
1423
1424(W threads) Within a thread-enabled program, you tried to call
1425cond_signal() on a variable which wasn't locked. The cond_signal()
a568ca76 1426function is used to wake up another thread that is waiting in a
38875929 1427cond_wait(). To ensure that the signal isn't sent before the other thread
a568ca76
FC
1428has a chance to enter the wait, it is usual for the signaling thread
1429first to wait for a lock on variable. This lock attempt will only succeed
38875929
DM
1430after the other thread has entered cond_wait() and thus relinquished the
1431lock.
1432
69282e91 1433=item connect() on closed socket %s
a0d0e21e 1434
be771a83
GS
1435(W closed) You tried to do a connect on a closed socket. Did you forget
1436to check the return value of your socket() call? See
1437L<perlfunc/connect>.
a0d0e21e 1438
41ab332f 1439=item Constant(%s)%s: %s
6df41af2 1440
be771a83
GS
1441(F) The parser found inconsistencies either while attempting to define
1442an overloaded constant, or when trying to find the character name
1443specified in the C<\N{...}> escape. Perhaps you forgot to load the
1444corresponding C<overload> or C<charnames> pragma? See L<charnames> and
1445L<overload>.
6df41af2 1446
fc8cd66c
YO
1447=item Constant(%s)%s: %s in regex; marked by <-- HERE in m/%s/
1448
1a147d38
YO
1449(F) The parser found inconsistencies while attempting to find
1450the character name specified in the C<\N{...}> escape. Perhaps you
1451forgot to load the corresponding C<charnames> pragma?
fc8cd66c
YO
1452See L<charnames>.
1453
1454
779c5bc9
GS
1455=item Constant is not %s reference
1456
1457(F) A constant value (perhaps declared using the C<use constant> pragma)
be771a83
GS
1458is being dereferenced, but it amounts to the wrong type of reference.
1459The message indicates the type of reference that was expected. This
1460usually indicates a syntax error in dereferencing the constant value.
779c5bc9
GS
1461See L<perlsub/"Constant Functions"> and L<constant>.
1462
4cee8e80
CS
1463=item Constant subroutine %s redefined
1464
bb028877 1465(S) You redefined a subroutine which had previously been
be771a83
GS
1466eligible for inlining. See L<perlsub/"Constant Functions"> for
1467commentary and workarounds.
4cee8e80 1468
9607fc9c
PP
1469=item Constant subroutine %s undefined
1470
be771a83
GS
1471(W misc) You undefined a subroutine which had previously been eligible
1472for inlining. See L<perlsub/"Constant Functions"> for commentary and
1473workarounds.
9607fc9c 1474
e7ea3e70
IZ
1475=item Copy method did not return a reference
1476
64977eb6 1477(F) The method which overloads "=" is buggy. See
13a2d996 1478L<overload/Copy Constructor>.
e7ea3e70 1479
6798c92b
GS
1480=item CORE::%s is not a keyword
1481
1482(F) The CORE:: namespace is reserved for Perl keywords.
1483
a0d0e21e
LW
1484=item corrupted regexp pointers
1485
1486(P) The regular expression engine got confused by what the regular
1487expression compiler gave it.
1488
1489=item corrupted regexp program
1490
be771a83
GS
1491(P) The regular expression engine got passed a regexp program without a
1492valid magic number.
a0d0e21e 1493
de42a5a9 1494=item Corrupt malloc ptr 0x%x at 0x%x
6df41af2
GS
1495
1496(P) The malloc package that comes with Perl had an internal failure.
1497
49704364
LW
1498=item Count after length/code in unpack
1499
1500(F) You had an unpack template indicating a counted-length string, but
1501you have also specified an explicit size for the string. See
1502L<perlfunc/pack>.
1503
a0d0e21e
LW
1504=item Deep recursion on subroutine "%s"
1505
be771a83
GS
1506(W recursion) This subroutine has called itself (directly or indirectly)
1507100 times more than it has returned. This probably indicates an
1508infinite recursion, unless you're writing strange benchmark programs, in
1509which case it indicates something else.
a0d0e21e 1510
aad1d01f
NC
1511This threshold can be changed from 100, by recompiling the F<perl> binary,
1512setting the C pre-processor macro C<PERL_SUB_DEPTH_WARN> to the desired value.
1513
f10b0346 1514=item defined(@array) is deprecated
69794302 1515
be771a83
GS
1516(D deprecated) defined() is not usually useful on arrays because it
1517checks for an undefined I<scalar> value. If you want to see if the
64977eb6 1518array is empty, just use C<if (@array) { # not empty }> for example.
69794302 1519
f10b0346 1520=item defined(%hash) is deprecated
69794302 1521
be771a83
GS
1522(D deprecated) defined() is not usually useful on hashes because it
1523checks for an undefined I<scalar> value. If you want to see if the hash
64977eb6 1524is empty, just use C<if (%hash) { # not empty }> for example.
69794302 1525
bcb95744
FC
1526=item (?(DEFINE)....) does not allow branches in regex; marked by <-- HERE in m/%s/
1527
1528(F) You used something like C<(?(DEFINE)...|..)> which is illegal. The
1529most likely cause of this error is that you left out a parenthesis inside
1530of the C<....> part.
1531
1532The <-- HERE shows in the regular expression about where the problem was
1533discovered.
1534
62658f4d
PM
1535=item %s defines neither package nor VERSION--version check failed
1536
1537(F) You said something like "use Module 42" but in the Module file
1538there are neither package declarations nor a C<$VERSION>.
1539
fc36a67e
PP
1540=item Delimiter for here document is too long
1541
be771a83
GS
1542(F) In a here document construct like C<<<FOO>, the label C<FOO> is too
1543long for Perl to handle. You have to be seriously twisted to write code
1544that triggers this error.
fc36a67e 1545
4a68bf9d 1546=item Deprecated character in \N{...}; marked by <-- HERE in \N{%s<-- HERE %s
cb233ae3
KW
1547
1548(D deprecated) Just about anything is legal for the C<...> in C<\N{...}>.
5fca8acb
FC
1549But starting in 5.12, non-reasonable ones that don't look like names
1550are deprecated. A reasonable name begins with an alphabetic character
1551and continues with any combination of alphanumerics, dashes, spaces,
1552parentheses or colons.
cb233ae3 1553
6d3b25aa
RGS
1554=item Deprecated use of my() in false conditional
1555
1556(D deprecated) You used a declaration similar to C<my $x if 0>.
1557There has been a long-standing bug in Perl that causes a lexical variable
1558not to be cleared at scope exit when its declaration includes a false
1559conditional. Some people have exploited this bug to achieve a kind of
1560static variable. Since we intend to fix this bug, we don't want people
1561relying on this behavior. You can achieve a similar static effect by
1562declaring the variable in a separate block outside the function, eg
36fb85f3 1563
6d3b25aa
RGS
1564 sub f { my $x if 0; return $x++ }
1565
1566becomes
1567
1568 { my $x; sub f { return $x++ } }
1569
36fb85f3
RGS
1570Beginning with perl 5.9.4, you can also use C<state> variables to
1571have lexicals that are initialized only once (see L<feature>):
1572
1573 sub f { state $x; return $x++ }
1574
500ab966
RGS
1575=item DESTROY created new reference to dead object '%s'
1576
1577(F) A DESTROY() method created a new reference to the object which is
1578just being DESTROYed. Perl is confused, and prefers to abort rather than
1579to create a dangling reference.
1580
3cdd684c
TP
1581=item Did not produce a valid header
1582
1583See Server error.
1584
6df41af2
GS
1585=item %s did not return a true value
1586
1587(F) A required (or used) file must return a true value to indicate that
1588it compiled correctly and ran its initialization code correctly. It's
1589traditional to end such a file with a "1;", though any true value would
1590do. See L<perlfunc/require>.
1591
cc507455 1592=item (Did you mean &%s instead?)
4633a7c4 1593
413ff9f6
FC
1594(W misc) You probably referred to an imported subroutine &FOO as $FOO or
1595some such.
4633a7c4 1596
cc507455 1597=item (Did you mean "local" instead of "our"?)
33633739 1598
be771a83
GS
1599(W misc) Remember that "our" does not localize the declared global
1600variable. You have declared it again in the same lexical scope, which
1601seems superfluous.
33633739 1602
cc507455 1603=item (Did you mean $ or @ instead of %?)
a0d0e21e 1604
be771a83
GS
1605(W) You probably said %hash{$key} when you meant $hash{$key} or
1606@hash{@keys}. On the other hand, maybe you just meant %hash and got
1607carried away.
748a9306 1608
7e1af8bc 1609=item Died
5f05dabc
PP
1610
1611(F) You passed die() an empty string (the equivalent of C<die "">) or
075b00aa 1612you called it with no args and C<$@> was empty.
5f05dabc 1613
3cdd684c
TP
1614=item Document contains no data
1615
1616See Server error.
1617
62658f4d
PM
1618=item %s does not define %s::VERSION--version check failed
1619
1620(F) You said something like "use Module 42" but the Module did not
1621define a C<$VERSION.>
1622
49704364
LW
1623=item '/' does not take a repeat count
1624
1625(F) You cannot put a repeat count of any kind right after the '/' code.
1626See L<perlfunc/pack>.
1627
a0d0e21e
LW
1628=item Don't know how to handle magic of type '%s'
1629
1630(P) The internal handling of magical variables has been cursed.
1631
1632=item do_study: out of memory
1633
1634(P) This should have been caught by safemalloc() instead.
1635
6df41af2
GS
1636=item (Do you need to predeclare %s?)
1637
56da5a46
RGS
1638(S syntax) This is an educated guess made in conjunction with the message
1639"%s found where operator expected". It often means a subroutine or module
6df41af2
GS
1640name is being referenced that hasn't been declared yet. This may be
1641because of ordering problems in your file, or because of a missing
be771a83
GS
1642"sub", "package", "require", or "use" statement. If you're referencing
1643something that isn't defined yet, you don't actually have to define the
1644subroutine or package before the current location. You can use an empty
1645"sub foo;" or "package FOO;" to enter a "forward" declaration.
6df41af2 1646
ac206dc8
RGS
1647=item dump() better written as CORE::dump()
1648
1649(W misc) You used the obsolescent C<dump()> built-in function, without fully
1650qualifying it as C<CORE::dump()>. Maybe it's a typo. See L<perlfunc/dump>.
1651
84d78eb7
YO
1652=item dump is not supported
1653
1654(F) Your machine doesn't support dump/undump.
1655
a0d0e21e
LW
1656=item Duplicate free() ignored
1657
be771a83
GS
1658(S malloc) An internal routine called free() on something that had
1659already been freed.
a0d0e21e 1660
1109a392
MHM
1661=item Duplicate modifier '%c' after '%c' in %s
1662
1663(W) You have applied the same modifier more than once after a type
1664in a pack template. See L<perlfunc/pack>.
1665
4633a7c4
LW
1666=item elseif should be elsif
1667
56da5a46
RGS
1668(S syntax) There is no keyword "elseif" in Perl because Larry thinks it's
1669ugly. Your code will be interpreted as an attempt to call a method named
be771a83 1670"elseif" for the class returned by the following block. This is
4633a7c4
LW
1671unlikely to be what you want.
1672
ab13f0c7
JH
1673=item Empty %s
1674
af6f566e
HS
1675(F) C<\p> and C<\P> are used to introduce a named Unicode property, as
1676described in L<perlunicode> and L<perlre>. You used C<\p> or C<\P> in
1677a regular expression without specifying the property name.
ab13f0c7 1678
85ab1d1d 1679=item entering effective %s failed
5ff3f7a4 1680
85ab1d1d 1681(F) While under the C<use filetest> pragma, switching the real and
5ff3f7a4
GS
1682effective uids or gids failed.
1683
c038024b
RGS
1684=item %ENV is aliased to %s
1685
1686(F) You're running under taint mode, and the C<%ENV> variable has been
1687aliased to another hash, so it doesn't reflect anymore the state of the
1688program's environment. This is potentially insecure.
1689
748a9306
LW
1690=item Error converting file specification %s
1691
5f05dabc 1692(F) An error peculiar to VMS. Because Perl may have to deal with file
748a9306 1693specifications in either VMS or Unix syntax, it converts them to a
be771a83
GS
1694single form when it must operate on them directly. Either you've passed
1695an invalid file specification to Perl, or you've found a case the
1696conversion routines don't handle. Drat.
748a9306 1697
e4d48cc9
GS
1698=item %s: Eval-group in insecure regular expression
1699
be771a83
GS
1700(F) Perl detected tainted data when trying to compile a regular
1701expression that contains the C<(?{ ... })> zero-width assertion, which
1702is unsafe. See L<perlre/(?{ code })>, and L<perlsec>.
e4d48cc9 1703
fc8f615e 1704=item %s: Eval-group not allowed at runtime, use re 'eval'
e4d48cc9 1705
be771a83
GS
1706(F) Perl tried to compile a regular expression containing the
1707C<(?{ ... })> zero-width assertion at run time, as it would when the
f11307f5
FC
1708pattern contains interpolated values. Since that is a security risk,
1709it is not allowed. If you insist, you may still do this by using the
1710C<re 'eval'> pragma or by explicitly building the pattern from an
1711interpolated string at run time and using that in an eval(). See
1712L<perlre/(?{ code })>.
e4d48cc9 1713
6df41af2
GS
1714=item %s: Eval-group not allowed, use re 'eval'
1715
be771a83
GS
1716(F) A regular expression contained the C<(?{ ... })> zero-width
1717assertion, but that construct is only allowed when the C<use re 'eval'>
1718pragma is in effect. See L<perlre/(?{ code })>.
6df41af2 1719
1a147d38
YO
1720=item EVAL without pos change exceeded limit in regex; marked by <-- HERE in m/%s/
1721
1722(F) You used a pattern that nested too many EVAL calls without consuming
1723any text. Restructure the pattern so that text is consumed.
1724
1725The <-- HERE shows in the regular expression about where the problem was
1726discovered.
1727
fc36a67e
PP
1728=item Excessively long <> operator
1729
1730(F) The contents of a <> operator may not exceed the maximum size of a
1731Perl identifier. If you're just trying to glob a long list of
1732filenames, try using the glob() operator, or put the filenames into a
1733variable and glob that.
1734
ed9aa3b7
SG
1735=item exec? I'm not *that* kind of operating system
1736
af8bb25a
FC
1737(F) The C<exec> function is not implemented on some systems, e.g., Symbian
1738OS. See L<perlport>.
ed9aa3b7 1739
fe13d51d 1740=item Execution of %s aborted due to compilation errors.
a0d0e21e
LW
1741
1742(F) The final summary message when a Perl compilation fails.
1743
1744=item Exiting eval via %s
1745
be771a83
GS
1746(W exiting) You are exiting an eval by unconventional means, such as a
1747goto, or a loop control statement.
e476b1b5
GS
1748
1749=item Exiting format via %s
1750
9a2ff54b 1751(W exiting) You are exiting a format by unconventional means, such as a
be771a83 1752goto, or a loop control statement.
a0d0e21e 1753
0a753a76
PP
1754=item Exiting pseudo-block via %s
1755
be771a83
GS
1756(W exiting) You are exiting a rather special block construct (like a
1757sort block or subroutine) by unconventional means, such as a goto, or a
1758loop control statement. See L<perlfunc/sort>.
0a753a76 1759
a0d0e21e
LW
1760=item Exiting subroutine via %s
1761
be771a83
GS
1762(W exiting) You are exiting a subroutine by unconventional means, such
1763as a goto, or a loop control statement.
a0d0e21e
LW
1764
1765=item Exiting substitution via %s
1766
be771a83
GS
1767(W exiting) You are exiting a substitution by unconventional means, such
1768as a return, a goto, or a loop control statement.
a0d0e21e 1769
7b8d334a
GS
1770=item Explicit blessing to '' (assuming package main)
1771
be771a83
GS
1772(W misc) You are blessing a reference to a zero length string. This has
1773the effect of blessing the reference into the package main. This is
1774usually not what you want. Consider providing a default target package,
1775e.g. bless($ref, $p || 'MyPackage');
7b8d334a 1776
6df41af2
GS
1777=item %s: Expression syntax
1778
be771a83
GS
1779(A) You've accidentally run your script through B<csh> instead of Perl.
1780Check the #! line, or manually feed your script into Perl yourself.
6df41af2
GS
1781
1782=item %s failed--call queue aborted
1783
3c10abe3
AG
1784(F) An untrapped exception was raised while executing a UNITCHECK,
1785CHECK, INIT, or END subroutine. Processing of the remainder of the
1786queue of such routines has been prematurely ended.
6df41af2 1787
7253e4e3 1788=item False [] range "%s" in regex; marked by <-- HERE in m/%s/
73b437c8 1789
be771a83 1790(W regexp) A character class range must start and end at a literal
7253e4e3
RK
1791character, not another character class like C<\d> or C<[:alpha:]>. The "-"
1792in your false range is interpreted as a literal "-". Consider quoting the
1793"-", "\-". The <-- HERE shows in the regular expression about where the
1794problem was discovered. See L<perlre>.
73b437c8 1795
1b1ee2ef 1796=item Fatal VMS error (status=%d) at %s, line %d
a0d0e21e 1797
be771a83
GS
1798(P) An error peculiar to VMS. Something untoward happened in a VMS
1799system service or RTL routine; Perl's exit status should provide more
1800details. The filename in "at %s" and the line number in "line %d" tell
1801you which section of the Perl source code is distressed.
a0d0e21e
LW
1802
1803=item fcntl is not implemented
1804
1805(F) Your machine apparently doesn't implement fcntl(). What is this, a
1806PDP-11 or something?
1807
22846ab4
AB
1808=item FETCHSIZE returned a negative value
1809
1810(F) A tied array claimed to have a negative number of elements, which
1811is not possible.
1812
f337b084
TH
1813=item Field too wide in 'u' format in pack
1814
1815(W pack) Each line in an uuencoded string start with a length indicator
1816which can't encode values above 63. So there is no point in asking for
1817a line length bigger than that. Perl will behave as if you specified
5c96f6f7 1818C<u63> as the format.
f337b084 1819
af8c498a 1820=item Filehandle %s opened only for input
a0d0e21e 1821
6c8d78fb
HS
1822(W io) You tried to write on a read-only filehandle. If you intended
1823it to be a read-write filehandle, you needed to open it with "+<" or
1824"+>" or "+>>" instead of with "<" or nothing. If you intended only to
1825write the file, use ">" or ">>". See L<perlfunc/open>.
a0d0e21e 1826
af8c498a 1827=item Filehandle %s opened only for output
a0d0e21e 1828
6c8d78fb
HS
1829(W io) You tried to read from a filehandle opened only for writing, If
1830you intended it to be a read/write filehandle, you needed to open it
89a1bda8
FC
1831with "+<" or "+>" or "+>>" instead of with ">". If you intended only to
1832read from the file, use "<". See L<perlfunc/open>. Another possibility
1833is that you attempted to open filedescriptor 0 (also known as STDIN) for
1834output (maybe you closed STDIN earlier?).
97828cef
RGS
1835
1836=item Filehandle %s reopened as %s only for input
1837
1838(W io) You opened for reading a filehandle that got the same filehandle id
d7f8936a 1839as STDOUT or STDERR. This occurred because you closed STDOUT or STDERR
97828cef
RGS
1840previously.
1841
1842=item Filehandle STDIN reopened as %s only for output
1843
1844(W io) You opened for writing a filehandle that got the same filehandle id
d7f8936a 1845as STDIN. This occurred because you closed STDIN previously.
a0d0e21e
LW
1846
1847=item Final $ should be \$ or $name
1848
1849(F) You must now decide whether the final $ in a string was meant to be
be771a83
GS
1850a literal dollar sign, or was meant to introduce a variable name that
1851happens to be missing. So you have to put either the backslash or the
1852name.
a0d0e21e 1853
56e90b21
GS
1854=item flock() on closed filehandle %s
1855
be771a83 1856(W closed) The filehandle you're attempting to flock() got itself closed
c289d2f7 1857some time before now. Check your control flow. flock() operates on
be771a83
GS
1858filehandles. Are you attempting to call flock() on a dirhandle by the
1859same name?
56e90b21 1860
6df41af2
GS
1861=item Format not terminated
1862
1863(F) A format must be terminated by a line with a solitary dot. Perl got
1864to the end of your file without finding such a line.
1865
a0d0e21e
LW
1866=item Format %s redefined
1867
e476b1b5 1868(W redefine) You redefined a format. To suppress this warning, say
a0d0e21e
LW
1869
1870 {
271595cc 1871 no warnings 'redefine';
a0d0e21e
LW
1872 eval "format NAME =...";
1873 }
1874
a0d0e21e
LW
1875=item Found = in conditional, should be ==
1876
e476b1b5 1877(W syntax) You said
a0d0e21e
LW
1878
1879 if ($foo = 123)
1880
1881when you meant
1882
1883 if ($foo == 123)
1884
1885(or something like that).
1886
6df41af2
GS
1887=item %s found where operator expected
1888
56da5a46
RGS
1889(S syntax) The Perl lexer knows whether to expect a term or an operator.
1890If it sees what it knows to be a term when it was expecting to see an
be771a83
GS
1891operator, it gives you this warning. Usually it indicates that an
1892operator or delimiter was omitted, such as a semicolon.
6df41af2 1893
a0d0e21e
LW
1894=item gdbm store returned %d, errno %d, key "%s"
1895
1896(S) A warning from the GDBM_File extension that a store failed.
1897
1898=item gethostent not implemented
1899
1900(F) Your C library apparently doesn't implement gethostent(), probably
1901because if it did, it'd feel morally obligated to return every hostname
1902on the Internet.
1903
69282e91 1904=item get%sname() on closed socket %s
a0d0e21e 1905
be771a83
GS
1906(W closed) You tried to get a socket or peer socket name on a closed
1907socket. Did you forget to check the return value of your socket() call?
a0d0e21e 1908
748a9306
LW
1909=item getpwnam returned invalid UIC %#o for user "%s"
1910
1911(S) A warning peculiar to VMS. The call to C<sys$getuai> underlying the
1912C<getpwnam> operator returned an invalid UIC.
1913
6df41af2
GS
1914=item getsockopt() on closed socket %s
1915
be771a83
GS
1916(W closed) You tried to get a socket option on a closed socket. Did you
1917forget to check the return value of your socket() call? See
6df41af2
GS
1918L<perlfunc/getsockopt>.
1919
1920=item Global symbol "%s" requires explicit package name
1921
a4edf47d 1922(F) You've said "use strict" or "use strict vars", which indicates
30c282f6 1923that all variables must either be lexically scoped (using "my" or "state"),
a4edf47d
GS
1924declared beforehand using "our", or explicitly qualified to say
1925which package the global variable is in (using "::").
6df41af2 1926
e476b1b5
GS
1927=item glob failed (%s)
1928
be771a83
GS
1929(W glob) Something went wrong with the external program(s) used for
1930C<glob> and C<< <*.c> >>. Usually, this means that you supplied a
1931C<glob> pattern that caused the external program to fail and exit with a
1932nonzero status. If the message indicates that the abnormal exit
1933resulted in a coredump, this may also mean that your csh (C shell) is
1934broken. If so, you should change all of the csh-related variables in
1935config.sh: If you have tcsh, make the variables refer to it as if it
1936were csh (e.g. C<full_csh='/usr/bin/tcsh'>); otherwise, make them all
1937empty (except that C<d_csh> should be C<'undef'>) so that Perl will
1938think csh is missing. In either case, after editing config.sh, run
75b44862 1939C<./Configure -S> and rebuild Perl.
e476b1b5 1940
a0d0e21e
LW
1941=item Glob not terminated
1942
1943(F) The lexer saw a left angle bracket in a place where it was expecting
be771a83
GS
1944a term, so it's looking for the corresponding right angle bracket, and
1945not finding it. Chances are you left some needed parentheses out
1946earlier in the line, and you really meant a "less than".
a0d0e21e 1947
bcd05b94 1948=item gmtime(%f) too large
8b56d6ff 1949
e9200be3 1950(W overflow) You called C<gmtime> with a number that was larger than
fc003d4b
MS
1951it can reliably handle and C<gmtime> probably returned the wrong
1952date. This warning is also triggered with nan (the special
1953not-a-number value).
1954
bcd05b94 1955=item gmtime(%f) too small
fc003d4b 1956
e9200be3 1957(W overflow) You called C<gmtime> with a number that was smaller than
fc003d4b
MS
1958it can reliably handle and C<gmtime> probably returned the wrong
1959date. This warning is also triggered with nan (the special
1960not-a-number value).
8b56d6ff 1961
6df41af2 1962=item Got an error from DosAllocMem
a0d0e21e 1963
6df41af2
GS
1964(P) An error peculiar to OS/2. Most probably you're using an obsolete
1965version of Perl, and this should not happen anyway.
a0d0e21e
LW
1966
1967=item goto must have label
1968
1969(F) Unlike with "next" or "last", you're not allowed to goto an
1970unspecified destination. See L<perlfunc/goto>.
1971
49704364 1972=item ()-group starts with a count
18529408 1973
bca4a986
FC
1974(F) A ()-group started with a count. A count is supposed to follow
1975something: a template character or a ()-group. See L<perlfunc/pack>.
18529408 1976
fe13d51d 1977=item %s had compilation errors.
6df41af2
GS
1978
1979(F) The final summary message when a C<perl -c> fails.
1980
a0d0e21e
LW
1981=item Had to create %s unexpectedly
1982
be771a83
GS
1983(S internal) A routine asked for a symbol from a symbol table that ought
1984to have existed already, but for some reason it didn't, and had to be
1985created on an emergency basis to prevent a core dump.
a0d0e21e
LW
1986
1987=item Hash %%s missing the % in argument %d of %s()
1988
be771a83
GS
1989(D deprecated) Really old Perl let you omit the % on hash names in some
1990spots. This is now heavily deprecated.
a0d0e21e 1991
6df41af2
GS
1992=item %s has too many errors
1993
1994(F) The parser has given up trying to parse the program after 10 errors.
1995Further error messages would likely be uninformative.
1996
e6897b1a
KW
1997=item Having no space between pattern and following word is deprecated
1998
1999(D syntax)
2000
bd0e971a 2001You had a word that isn't a regex modifier immediately following a
b6fa137b
FC
2002pattern without an intervening space. If you are trying to use the C</le>
2003flags on a substitution, use C</el> instead. Otherwise, add white space
2004between the pattern and following word to eliminate the warning. As an
2005example of the latter, the two constructs:
e6897b1a
KW
2006
2007 $a =~ m/$foo/sand $bar
2008 $a =~ m/$foo/s and $bar
2009
21356872
FC
2010both currently mean the same thing, but it is planned to disallow the first
2011form in Perl 5.16. And,
e6897b1a
KW
2012
2013 $a =~ m/$foo/and $bar
2014
2015will be disallowed too.
2016
252aa082
JH
2017=item Hexadecimal number > 0xffffffff non-portable
2018
e476b1b5 2019(W portable) The hexadecimal number you specified is larger than 2**32-1
9e24b6e2
JH
2020(4294967295) and therefore non-portable between systems. See
2021L<perlport> for more on portability concerns.
252aa082 2022
8903cb82
PP
2023=item Identifier too long
2024
2025(F) Perl limits identifiers (names for variables, functions, etc.) to
fc36a67e 2026about 250 characters for simple names, and somewhat more for compound
be771a83
GS
2027names (like C<$A::B>). You've exceeded Perl's limits. Future versions
2028of Perl are likely to eliminate these arbitrary limitations.
8903cb82 2029
c3c41406 2030=item Ignoring zero length \N{} in character class
fc8cd66c 2031
ff3f963a
KW
2032(W) Named Unicode character escapes (\N{...}) may return a
2033zero length sequence. When such an escape is used in a character class
1a147d38 2034its behaviour is not well defined. Check that the correct escape has
fc8cd66c
YO
2035been used, and the correct charname handler is in scope.
2036
6df41af2 2037=item Illegal binary digit %s
f675dbe5 2038
6df41af2 2039(F) You used a digit other than 0 or 1 in a binary number.
f675dbe5 2040
6df41af2 2041=item Illegal binary digit %s ignored
a0d0e21e 2042
be771a83
GS
2043(W digit) You may have tried to use a digit other than 0 or 1 in a
2044binary number. Interpretation of the binary number stopped before the
2045offending digit.
a0d0e21e 2046
78d0fecf 2047=item Illegal character \%o (carriage return)
4fdae800 2048
d5898338 2049(F) Perl normally treats carriage returns in the program text as it
be771a83
GS
2050would any other whitespace, which means you should never see this error
2051when Perl was built using standard options. For some reason, your
2052version of Perl appears to have been built without this support. Talk
2053to your Perl administrator.
4fdae800 2054
d37a9538
ST
2055=item Illegal character in prototype for %s : %s
2056
197afce1 2057(W illegalproto) An illegal character was found in a prototype declaration.
2e9cc7ef 2058Legal characters in prototypes are $, @, %, *, ;, [, ], &, \, and +.
d37a9538 2059
904d85c5
RGS
2060=item Illegal declaration of anonymous subroutine
2061
2062(F) When using the C<sub> keyword to construct an anonymous subroutine,
2063you must always specify a block of code. See L<perlsub>.
2064
8e742a20
MHM
2065=item Illegal declaration of subroutine %s
2066
2067(F) A subroutine was not declared correctly. See L<perlsub>.
2068
a0d0e21e
LW
2069=item Illegal division by zero
2070
be771a83
GS
2071(F) You tried to divide a number by 0. Either something was wrong in
2072your logic, or you need to put a conditional in to guard against
2073meaningless input.
a0d0e21e 2074
6df41af2
GS
2075=item Illegal hexadecimal digit %s ignored
2076
be771a83
GS
2077(W digit) You may have tried to use a character other than 0 - 9 or
2078A - F, a - f in a hexadecimal number. Interpretation of the hexadecimal
2079number stopped before the illegal character.
6df41af2 2080
a0d0e21e
LW
2081=item Illegal modulus zero
2082
be771a83
GS
2083(F) You tried to divide a number by 0 to get the remainder. Most
2084numbers don't take to this kindly.
a0d0e21e 2085
6df41af2 2086=item Illegal number of bits in vec
399388f4 2087
6df41af2
GS
2088(F) The number of bits in vec() (the third argument) must be a power of
2089two from 1 to 32 (or 64, if your platform supports that).
399388f4
GS
2090
2091=item Illegal octal digit %s
a0d0e21e 2092
d1be9408 2093(F) You used an 8 or 9 in an octal number.
a0d0e21e 2094
399388f4 2095=item Illegal octal digit %s ignored
748a9306 2096
d1be9408 2097(W digit) You may have tried to use an 8 or 9 in an octal number.
75b44862 2098Interpretation of the octal number stopped before the 8 or 9.
748a9306 2099
fe13d51d 2100=item Illegal switch in PERL5OPT: -%c
6ff81951 2101
6df41af2 2102(X) The PERL5OPT environment variable may only be used to set the
646ca9b2 2103following switches: B<-[CDIMUdmtw]>.
6ff81951 2104
6df41af2 2105=item Ill-formed CRTL environ value "%s"
81e118e0 2106
75b44862 2107(W internal) A warning peculiar to VMS. Perl tried to read the CRTL's
be771a83
GS
2108internal environ array, and encountered an element without the C<=>
2109delimiter used to separate keys from values. The element is ignored.
09bef843 2110
6df41af2 2111=item Ill-formed message in prime_env_iter: |%s|
54310121 2112
be771a83
GS
2113(W internal) A warning peculiar to VMS. Perl tried to read a logical
2114name or CLI symbol definition when preparing to iterate over %ENV, and
2115didn't see the expected delimiter between key and value, so the line was
2116ignored.
54310121 2117
6df41af2 2118=item (in cleanup) %s
9607fc9c 2119
be771a83
GS
2120(W misc) This prefix usually indicates that a DESTROY() method raised
2121the indicated exception. Since destructors are usually called by the
2122system at arbitrary points during execution, and often a vast number of
2123times, the warning is issued only once for any number of failures that
2124would otherwise result in the same message being repeated.
6df41af2 2125
be771a83
GS
2126Failure of user callbacks dispatched using the C<G_KEEPERR> flag could
2127also result in this warning. See L<perlcall/G_KEEPERR>.
9607fc9c 2128
2c7d6b9c
RGS
2129=item Inconsistent hierarchy during C3 merge of class '%s': merging failed on parent '%s'
2130
2131(F) The method resolution order (MRO) of the given class is not
2132C3-consistent, and you have enabled the C3 MRO for this class. See the C3
2133documentation in L<mro> for more information.
2134
979699d9
JH
2135=item In EBCDIC the v-string components cannot exceed 2147483647
2136
2137(F) An error peculiar to EBCDIC. Internally, v-strings are stored as
2138Unicode code points, and encoded in EBCDIC as UTF-EBCDIC. The UTF-EBCDIC
2139encoding is limited to code points no larger than 2147483647 (0x7FFFFFFF).
2140
1a147d38
YO
2141=item Infinite recursion in regex; marked by <-- HERE in m/%s/
2142
2143(F) You used a pattern that references itself without consuming any input
2144text. You should check the pattern to ensure that recursive patterns
2145either consume text or fail.
2146
2147The <-- HERE shows in the regular expression about where the problem was
2148discovered.
2149
6dbe9451
NC
2150=item Initialization of state variables in list context currently forbidden
2151
2152(F) Currently the implementation of "state" only permits the initialization
2153of scalar variables in scalar context. Re-write C<state ($a) = 42> as
2154C<state $a = 42> to change from list to scalar context. Constructions such
2155as C<state (@a) = foo()> will be supported in a future perl release.
2156
a0d0e21e
LW
2157=item Insecure dependency in %s
2158
8b1a09fc 2159(F) You tried to do something that the tainting mechanism didn't like.
be771a83
GS
2160The tainting mechanism is turned on when you're running setuid or
2161setgid, or when you specify B<-T> to turn it on explicitly. The
2162tainting mechanism labels all data that's derived directly or indirectly
2163from the user, who is considered to be unworthy of your trust. If any
2164such data is used in a "dangerous" operation, you get this error. See
2165L<perlsec> for more information.
a0d0e21e
LW
2166
2167=item Insecure directory in %s
2168
be771a83
GS
2169(F) You can't use system(), exec(), or a piped open in a setuid or
2170setgid script if C<$ENV{PATH}> contains a directory that is writable by
df98f984
RGS
2171the world. Also, the PATH must not contain any relative directory.
2172See L<perlsec>.
a0d0e21e 2173
62f468fc 2174=item Insecure $ENV{%s} while running %s
a0d0e21e
LW
2175
2176(F) You can't use system(), exec(), or a piped open in a setuid or
62f468fc 2177setgid script if any of C<$ENV{PATH}>, C<$ENV{IFS}>, C<$ENV{CDPATH}>,
332d5f78
SR
2178C<$ENV{ENV}>, C<$ENV{BASH_ENV}> or C<$ENV{TERM}> are derived from data
2179supplied (or potentially supplied) by the user. The script must set
2180the path to a known value, using trustworthy data. See L<perlsec>.
a0d0e21e 2181
0e9be77f
DM
2182=item Insecure user-defined property %s
2183
2184(F) Perl detected tainted data when trying to compile a regular
2185expression that contains a call to a user-defined character property
2186function, i.e. C<\p{IsFoo}> or C<\p{InFoo}>.
2187See L<perlunicode/User-Defined Character Properties> and L<perlsec>.
2188
2189
b9ef414d
FC
2190=item Integer overflow in format string for %s
2191
2192(F) The indexes and widths specified in the format string of C<printf()>
2193or C<sprintf()> are too large. The numbers must not overflow the size of
2194integers for your architecture.
2195
a7ae9550
GS
2196=item Integer overflow in %s number
2197
75b44862 2198(W overflow) The hexadecimal, octal or binary number you have specified
be771a83
GS
2199either as a literal or as an argument to hex() or oct() is too big for
2200your architecture, and has been converted to a floating point number.
2201On a 32-bit architecture the largest hexadecimal, octal or binary number
9e24b6e2
JH
2202representable without overflow is 0xFFFFFFFF, 037777777777, or
22030b11111111111111111111111111111111 respectively. Note that Perl
2204transparently promotes all numbers to a floating point representation
2205internally--subject to loss of precision errors in subsequent
2206operations.
bbce6d69 2207
46314c13
JP
2208=item Integer overflow in version
2209
2210(F) Some portion of a version initialization is too large for the
2211size of integers for your architecture. This is not a warning
2212because there is no rational reason for a version to try and use a
2213element larger than typically 2**32. This is usually caused by
2214trying to use some odd mathematical operation as a version, like
2215100/9.
2216
7253e4e3 2217=item Internal disaster in regex; marked by <-- HERE in m/%s/
6df41af2
GS
2218
2219(P) Something went badly wrong in the regular expression parser.
7253e4e3 2220The <-- HERE shows in the regular expression about where the problem was
b45f050a
JF
2221discovered.
2222
748a9306
LW
2223=item Internal inconsistency in tracking vforks
2224
be771a83
GS
2225(S) A warning peculiar to VMS. Perl keeps track of the number of times
2226you've called C<fork> and C<exec>, to determine whether the current call
2227to C<exec> should affect the current script or a subprocess (see
2228L<perlvms/"exec LIST">). Somehow, this count has become scrambled, so
2229Perl is making a guess and treating this C<exec> as a request to
2230terminate the Perl script and execute the specified command.
748a9306 2231
7253e4e3 2232=item Internal urp in regex; marked by <-- HERE in m/%s/
b45f050a 2233
7253e4e3
RK
2234(P) Something went badly awry in the regular expression parser. The
2235<-- HERE shows in the regular expression about where the problem was
2236discovered.
a0d0e21e 2237
6df41af2
GS
2238=item %s (...) interpreted as function
2239
75b44862 2240(W syntax) You've run afoul of the rule that says that any list operator
be771a83 2241followed by parentheses turns into a function, with all the list
64977eb6 2242operators arguments found inside the parentheses. See
13a2d996 2243L<perlop/Terms and List Operators (Leftward)>.
6df41af2 2244
09bef843
SB
2245=item Invalid %s attribute: %s
2246
a4a4c9e2 2247(F) The indicated attribute for a subroutine or variable was not recognized
09bef843
SB
2248by Perl or by a user-supplied handler. See L<attributes>.
2249
2250=item Invalid %s attributes: %s
2251
a4a4c9e2 2252(F) The indicated attributes for a subroutine or variable were not
be771a83 2253recognized by Perl or by a user-supplied handler. See L<attributes>.
09bef843 2254
c635e13b
PP
2255=item Invalid conversion in %s: "%s"
2256
be771a83
GS
2257(W printf) Perl does not understand the given format conversion. See
2258L<perlfunc/sprintf>.
c635e13b 2259
9e08bc66
ST
2260=item Invalid escape in the specified encoding in regex; marked by <-- HERE in m/%s/
2261
2262(W regexp) The numeric escape (for example C<\xHH>) of value < 256
2263didn't correspond to a single character through the conversion
2264from the encoding specified by the encoding pragma.
2265The escape was replaced with REPLACEMENT CHARACTER (U+FFFD) instead.
2266The <-- HERE shows in the regular expression about where the
2267escape was discovered.
2268
8149aa9f
FC
2269=item Invalid hexadecimal number in \N{U+...}
2270
2271(F) The character constant represented by C<...> is not a valid hexadecimal
74f8e9e3
FC
2272number. Either it is empty, or you tried to use a character other than
22730 - 9 or A - F, a - f in a hexadecimal number.
8149aa9f 2274
2c7d6b9c
RGS
2275=item Invalid mro name: '%s'
2276
162a3e34
FC
2277(F) You tried to C<mro::set_mro("classname", "foo")> or C<use mro 'foo'>,
2278where C<foo> is not a valid method resolution order (MRO). Currently,
2279the only valid ones supported are C<dfs> and C<c3>, unless you have loaded
2280a module that is a MRO plugin. See L<mro> and L<perlmroapi>.
2c7d6b9c 2281
7253e4e3 2282=item Invalid [] range "%s" in regex; marked by <-- HERE in m/%s/
6df41af2
GS
2283
2284(F) The range specified in a character class had a minimum character
7253e4e3
RK
2285greater than the maximum character. One possibility is that you forgot the
2286C<{}> from your ending C<\x{}> - C<\x> without the curly braces can go only
2287up to C<ff>. The <-- HERE shows in the regular expression about where the
2288problem was discovered. See L<perlre>.
6df41af2 2289
d1573ac7 2290=item Invalid range "%s" in transliteration operator
c2e66d9e
GS
2291
2292(F) The range specified in the tr/// or y/// operator had a minimum
2293character greater than the maximum character. See L<perlop>.
2294
09bef843
SB
2295=item Invalid separator character %s in attribute list
2296
0120eecf 2297(F) Something other than a colon or whitespace was seen between the
be771a83
GS
2298elements of an attribute list. If the previous attribute had a
2299parenthesised parameter list, perhaps that list was terminated too soon.
2300See L<attributes>.
09bef843 2301
b4581f09
JH
2302=item Invalid separator character %s in PerlIO layer specification %s
2303
2bfc5f71
FC
2304(W layer) When pushing layers onto the Perl I/O system, something other
2305than a colon or whitespace was seen between the elements of a layer list.
b4581f09
JH
2306If the previous attribute had a parenthesised parameter list, perhaps that
2307list was terminated too soon.
2308
2c86d456
DG
2309=item Invalid strict version format (%s)
2310
2311(F) A version number did not meet the "strict" criteria for versions.
2312A "strict" version number is a positive decimal number (integer or
2313decimal-fraction) without exponentiation or else a dotted-decimal
2314v-string with a leading 'v' character and at least three components.
a6485a24 2315The parenthesized text indicates which criteria were not met.
2c86d456
DG
2316See the L<version> module for more details on allowed version formats.
2317
49704364 2318=item Invalid type '%s' in %s
96e4d5b1 2319
49704364
LW
2320(F) The given character is not a valid pack or unpack type.
2321See L<perlfunc/pack>.
2322(W) The given character is not a valid pack or unpack type but used to be
75b44862 2323silently ignored.
96e4d5b1 2324
2c86d456
DG
2325=item Invalid version format (%s)
2326
2327(F) A version number did not meet the "lax" criteria for versions.
2328A "lax" version number is a positive decimal number (integer or
2329decimal-fraction) without exponentiation or else a dotted-decimal
9da2b86b
FC
2330v-string. If the v-string has fewer than three components, it must
2331have a leading 'v' character. Otherwise, the leading 'v' is optional.
2332Both decimal and dotted-decimal versions may have a trailing "alpha"
2c86d456
DG
2333component separated by an underscore character after a fractional or
2334dotted-decimal component. The parenthesized text indicates which
a6485a24 2335criteria were not met. See the L<version> module for more details on
2c86d456 2336allowed version formats.
46314c13 2337
798ae1b7
DG
2338=item Invalid version object
2339
2340(F) The internal structure of the version object was invalid. Perhaps
2341the internals were modified directly in some way or an arbitrary reference
2342was blessed into the "version" class.
2343
a0d0e21e
LW
2344=item ioctl is not implemented
2345
2346(F) Your machine apparently doesn't implement ioctl(), which is pretty
2347strange for a machine that supports C.
2348
c289d2f7
JH
2349=item ioctl() on unopened %s
2350
2351(W unopened) You tried ioctl() on a filehandle that was never opened.
34b6fd5e 2352Check your control flow and number of arguments.
c289d2f7 2353
fe13d51d 2354=item IO layers (like '%s') unavailable
363c40c4
SB
2355
2356(F) Your Perl has not been configured to have PerlIO, and therefore
34b6fd5e 2357you cannot use IO layers. To have PerlIO, Perl must be configured
363c40c4
SB
2358with 'useperlio'.
2359
80cbd5ad
JH
2360=item IO::Socket::atmark not implemented on this architecture
2361
2362(F) Your machine doesn't implement the sockatmark() functionality,
34b6fd5e 2363neither as a system call nor an ioctl call (SIOCATMARK).
80cbd5ad 2364
b4581f09
JH
2365=item $* is no longer supported
2366
a58ac25e
FC
2367(D deprecated, syntax) The special variable C<$*>, deprecated in older
2368perls, has been removed as of 5.9.0 and is no longer supported. In
2369previous versions of perl the use of C<$*> enabled or disabled multi-line
2370matching within a string.
4fd19576
B
2371
2372Instead of using C<$*> you should use the C</m> (and maybe C</s>) regexp
570dedd4
FC
2373modifiers. You can enable C</m> for a lexical scope (even a whole file)
2374with C<use re '/m'>. (In older versions: when C<$*> was set to a true value
2375then all regular expressions behaved as if they were written using C</m>.)
b4581f09 2376
8ae1fe26
RGS
2377=item $# is no longer supported
2378
a58ac25e
FC
2379(D deprecated, syntax) The special variable C<$#>, deprecated in older
2380perls, has been removed as of 5.9.3 and is no longer supported. You
2381should use the printf/sprintf functions instead.
8ae1fe26 2382
6ad11d81
JH
2383=item `%s' is not a code reference
2384
04a80ee0
RGS
2385(W overload) The second (fourth, sixth, ...) argument of overload::constant
2386needs to be a code reference. Either an anonymous subroutine, or a reference
6ad11d81
JH
2387to a subroutine.
2388
2389=item `%s' is not an overloadable type
2390
04a80ee0
RGS
2391(W overload) You tried to overload a constant type the overload package is
2392unaware of.
6ad11d81 2393
a0d0e21e
LW
2394=item junk on end of regexp
2395
2396(P) The regular expression parser is confused.
2397
2398=item Label not found for "last %s"
2399
be771a83
GS
2400(F) You named a loop to break out of, but you're not currently in a loop
2401of that name, not even if you count where you were called from. See
2402L<perlfunc/last>.
a0d0e21e
LW
2403
2404=item Label not found for "next %s"
2405
2406(F) You named a loop to continue, but you're not currently in a loop of
2407that name, not even if you count where you were called from. See
2408L<perlfunc/last>.
2409
2410=item Label not found for "redo %s"
2411
2412(F) You named a loop to restart, but you're not currently in a loop of
2413that name, not even if you count where you were called from. See
2414L<perlfunc/last>.
2415
85ab1d1d 2416=item leaving effective %s failed
5ff3f7a4 2417
85ab1d1d 2418(F) While under the C<use filetest> pragma, switching the real and
5ff3f7a4
GS
2419effective uids or gids failed.
2420
49704364
LW
2421=item length/code after end of string in unpack
2422
d7f8936a 2423(F) While unpacking, the string buffer was already used up when an unpack
49704364
LW
2424length/code combination tried to obtain more data. This results in
2425an undefined value for the length. See L<perlfunc/pack>.
2426
f0e67a1d
Z
2427=item Lexing code attempted to stuff non-Latin-1 character into Latin-1 input
2428
2429(F) An extension is attempting to insert text into the current parse
96090e4f 2430(using L<lex_stuff_pvn|perlapi/lex_stuff_pvn> or similar), but tried to insert a character
d35a2c71
FC
2431that couldn't be part of the current input. This is an inherent pitfall
2432of the stuffing mechanism, and one of the reasons to avoid it. Where it
2433is necessary to stuff, stuffing only plain ASCII is recommended.
f0e67a1d
Z
2434
2435=item Lexing code internal error (%s)
2436
2437(F) Lexing code supplied by an extension violated the lexer's API in a
2438detectable way.
2439
69282e91 2440=item listen() on closed socket %s
a0d0e21e 2441
be771a83
GS
2442(W closed) You tried to do a listen on a closed socket. Did you forget
2443to check the return value of your socket() call? See
2444L<perlfunc/listen>.
a0d0e21e 2445
bcd05b94 2446=item localtime(%f) too large
8b56d6ff 2447
e9200be3 2448(W overflow) You called C<localtime> with a number that was larger
fc003d4b
MS
2449than it can reliably handle and C<localtime> probably returned the
2450wrong date. This warning is also triggered with nan (the special
2451not-a-number value).
2452
bcd05b94 2453=item localtime(%f) too small
fc003d4b 2454
e9200be3 2455(W overflow) You called C<localtime> with a number that was smaller
fc003d4b
MS
2456than it can reliably handle and C<localtime> probably returned the
2457wrong date. This warning is also triggered with nan (the special
2458not-a-number value).
8b56d6ff 2459
58e23c8d 2460=item Lookbehind longer than %d not implemented in regex m/%s/
b45f050a
JF
2461
2462(F) There is currently a limit on the length of string which lookbehind can
58e23c8d 2463handle. This restriction may be eased in a future release.
2e50fd82 2464
b88df990
NC
2465=item Lost precision when %s %f by 1
2466
2467(W) The value you attempted to increment or decrement by one is too large
2468for the underlying floating point representation to store accurately,
2469hence the target of C<++> or C<--> is unchanged. Perl issues this warning
2470because it has already switched from integers to floating point when values
2471are too large for integers, and now even floating point is insufficient.
2472You may wish to switch to using L<Math::BigInt> explicitly.
2473
2f7da168
RK
2474=item lstat() on filehandle %s
2475
2476(W io) You tried to do an lstat on a filehandle. What did you mean
2477by that? lstat() makes sense only on filenames. (Perl did a fstat()
2478instead on the filehandle.)
2479
885ef6f5
GG
2480=item lvalue attribute ignored after the subroutine has been defined
2481
963d9ce9 2482(W misc) Making a subroutine an lvalue subroutine after it has been defined
d9159685
RS
2483by declaring the subroutine with an lvalue attribute is not
2484possible. To make the subroutine an lvalue subroutine add the
e2bd2e2b 2485lvalue attribute to the definition, or put the declaration before
885ef6f5
GG
2486the definition.
2487
96ebfdd7
RK
2488=item Lvalue subs returning %s not implemented yet
2489
2490(F) Due to limitations in the current implementation, array and hash
2491values cannot be returned in subroutines used in lvalue context. See
2492L<perlsub/"Lvalue subroutines">.
2493
2db62bbc 2494=item Malformed integer in [] in pack
49704364 2495
2db62bbc 2496(F) Between the brackets enclosing a numeric repeat count only digits
49704364
LW
2497are permitted. See L<perlfunc/pack>.
2498
2499=item Malformed integer in [] in unpack
2500
2db62bbc 2501(F) Between the brackets enclosing a numeric repeat count only digits
49704364
LW
2502are permitted. See L<perlfunc/pack>.
2503
6df41af2
GS
2504=item Malformed PERLLIB_PREFIX
2505
2506(F) An error peculiar to OS/2. PERLLIB_PREFIX should be of the form
2507
2508 prefix1;prefix2
2509
2510or
6df41af2
GS
2511 prefix1 prefix2
2512
be771a83
GS
2513with nonempty prefix1 and prefix2. If C<prefix1> is indeed a prefix of
2514a builtin library search path, prefix2 is substituted. The error may
2515appear if components are not found, or are too long. See
fecfaeb8 2516"PERLLIB_PREFIX" in L<perlos2>.
6df41af2 2517
2f758a16
ST
2518=item Malformed prototype for %s: %s
2519
d37a9538
ST
2520(F) You tried to use a function with a malformed prototype. The
2521syntax of function prototypes is given a brief compile-time check for
2522obvious errors like invalid characters. A more rigorous check is run
2523when the function is called.
2f758a16 2524
ba210ebe
JH
2525=item Malformed UTF-8 character (%s)
2526
2575c402
JW
2527(S utf8) (F) Perl detected a string that didn't comply with UTF-8
2528encoding rules, even though it had the UTF8 flag on.
ba210ebe 2529
2575c402
JW
2530One possible cause is that you set the UTF8 flag yourself for data that
2531you thought to be in UTF-8 but it wasn't (it was for example legacy
25328-bit data). To guard against this, you can use Encode::decode_utf8.
2533
2534If you use the C<:encoding(UTF-8)> PerlIO layer for input, invalid byte
2535sequences are handled gracefully, but if you use C<:utf8>, the flag is
2536set without validating the data, possibly resulting in this error
2537message.
2538
2539See also L<Encode/"Handling Malformed Data">.
901b21bf 2540
ff3f963a
KW
2541=item Malformed UTF-8 returned by \N
2542
2543(F) The charnames handler returned malformed UTF-8.
2544
4a5d3a93
FC
2545=item Malformed UTF-8 string in '%c' format in unpack
2546
2547(F) You tried to unpack something that didn't comply with UTF-8 encoding
2548rules and perl was unable to guess how to make more progress.
2549
f337b084
TH
2550=item Malformed UTF-8 string in pack
2551
2552(F) You tried to pack something that didn't comply with UTF-8 encoding
2553rules and perl was unable to guess how to make more progress.
2554
2555=item Malformed UTF-8 string in unpack
2556
2557(F) You tried to unpack something that didn't comply with UTF-8 encoding
2558rules and perl was unable to guess how to make more progress.
2559
4a5d3a93 2560=item Malformed UTF-16 surrogate
f337b084 2561
4a5d3a93
FC
2562(F) Perl thought it was reading UTF-16 encoded character data but while
2563doing it Perl met a malformed Unicode surrogate.
2564
2565=item %s matches null string many times in regex; marked by <-- HERE in m/%s/
2566
2567(W regexp) The pattern you've specified would be an infinite loop if the
2568regular expression engine didn't specifically check for that. The <-- HERE
2569shows in the regular expression about where the problem was discovered.
2570See L<perlre>.
f337b084 2571
de42a5a9 2572=item Maximal count of pending signals (%u) exceeded
2563cec5 2573
2db62bbc 2574(F) Perl aborted due to too high a number of signals pending. This
2563cec5
IZ
2575usually indicates that your operating system tried to deliver signals
2576too fast (with a very high priority), starving the perl process from
2577resources it would need to reach a point where it can process signals
2578safely. (See L<perlipc/"Deferred Signals (Safe Signals)">.)
2579
25f58aea
PN
2580=item "%s" may clash with future reserved word
2581
2582(W) This warning may be due to running a perl5 script through a perl4
2583interpreter, especially if the word that is being warned about is
2584"use" or "my".
2585
49704364 2586=item % may not be used in pack
6df41af2
GS
2587
2588(F) You can't pack a string by supplying a checksum, because the
be771a83
GS
2589checksumming process loses information, and you can't go the other way.
2590See L<perlfunc/unpack>.
6df41af2 2591
a0d0e21e
LW
2592=item Method for operation %s not found in package %s during blessing
2593
2594(F) An attempt was made to specify an entry in an overloading table that
e7ea3e70 2595doesn't resolve to a valid subroutine. See L<overload>.
a0d0e21e 2596
3cdd684c
TP
2597=item Method %s not permitted
2598
2599See Server error.
2600
a0d0e21e
LW
2601=item Might be a runaway multi-line %s string starting on line %d
2602
2603(S) An advisory indicating that the previous error may have been caused
2604by a missing delimiter on a string or pattern, because it eventually
2605ended earlier on the current line.
2606
2607=item Misplaced _ in number
2608
d4ced10d
JH
2609(W syntax) An underscore (underbar) in a numeric constant did not
2610separate two digits.
a0d0e21e 2611
7baa4690
HS
2612=item Missing argument in %s
2613
2614(W uninitialized) A printf-type format required more arguments than were
2615supplied.
2616
9e81e6a1
RGS
2617=item Missing argument to -%c
2618
2619(F) The argument to the indicated command line switch must follow
2620immediately after the switch, without intervening spaces.
2621
ff3f963a 2622=item Missing braces on \N{}
423cee85 2623
4a2d328f 2624(F) Wrong syntax of character name literal C<\N{charname}> within
532cb70d
FC
2625double-quotish context. This can also happen when there is a space
2626(or comment) between the C<\N> and the C<{> in a regex with the C</x> modifier.
2627This modifier does not change the requirement that the brace immediately
2628follow the C<\N>.
423cee85 2629
f0a2b745
KW
2630=item Missing braces on \o{}
2631
2632(F) A C<\o> must be followed immediately by a C<{> in double-quotish context.
2633
a0d0e21e
LW
2634=item Missing comma after first argument to %s function
2635
2636(F) While certain functions allow you to specify a filehandle or an
2637"indirect object" before the argument list, this ain't one of them.
2638
06eaf0bc
GS
2639=item Missing command in piped open
2640
be771a83
GS
2641(W pipe) You used the C<open(FH, "| command")> or
2642C<open(FH, "command |")> construction, but the command was missing or
2643blank.
06eaf0bc 2644
961ce445
RGS
2645=item Missing control char name in \c
2646
2647(F) A double-quoted string ended with "\c", without the required control
2648character name.
2649
6df41af2
GS
2650=item Missing name in "my sub"
2651
be771a83
GS
2652(F) The reserved syntax for lexically scoped subroutines requires that
2653they have a name with which they can be found.
6df41af2
GS
2654
2655=item Missing $ on loop variable
2656
be771a83
GS
2657(F) Apparently you've been programming in B<csh> too much. Variables
2658are always mentioned with the $ in Perl, unlike in the shells, where it
2659can vary from one line to the next.
6df41af2 2660
cc507455 2661=item (Missing operator before %s?)
748a9306 2662
56da5a46
RGS
2663(S syntax) This is an educated guess made in conjunction with the message
2664"%s found where operator expected". Often the missing operator is a comma.
748a9306 2665
ab13f0c7
JH
2666=item Missing right brace on %s
2667
ff3f963a
KW
2668(F) Missing right brace in C<\x{...}>, C<\p{...}>, C<\P{...}>, or C<\N{...}>.
2669
4a68bf9d 2670=item Missing right brace on \N{} or unescaped left brace after \N
ff3f963a 2671
d32207c9
FC
2672(F) C<\N> has two meanings.
2673
2674The traditional one has it followed by a name enclosed in braces,
2675meaning the character (or sequence of characters) given by that
2676name. Thus C<\N{ASTERISK}> is another way of writing C<*>, valid in both
2677double-quoted strings and regular expression patterns. In patterns,
2678it doesn't have the meaning an unescaped C<*> does.
2679
2680Starting in Perl 5.12.0, C<\N> also can have an additional meaning (only)
2681in patterns, namely to match a non-newline character. (This is short
2682for C<[^\n]>, and like C<.> but is not affected by the C</s> regex modifier.)
2683
2684This can lead to some ambiguities. When C<\N> is not followed immediately
2685by a left brace, Perl assumes the C<[^\n]> meaning. Also, if the braces
2686form a valid quantifier such as C<\N{3}> or C<\N{5,}>, Perl assumes that this
2687means to match the given quantity of non-newlines (in these examples,
26883; and 5 or more, respectively). In all other case, where there is a
2689C<\N{> and a matching C<}>, Perl assumes that a character name is desired.
2690
2691However, if there is no matching C<}>, Perl doesn't know if it was
2692mistakenly omitted, or if C<[^\n]{> was desired, and raises this error.
2693If you meant the former, add the right brace; if you meant the latter,
2694escape the brace with a backslash, like so: C<\N\{>
ab13f0c7 2695
d98d5fff 2696=item Missing right curly or square bracket
a0d0e21e 2697
be771a83
GS
2698(F) The lexer counted more opening curly or square brackets than closing
2699ones. As a general rule, you'll find it's missing near the place you
2700were last editing.
a0d0e21e 2701
6df41af2
GS
2702=item (Missing semicolon on previous line?)
2703
56da5a46
RGS
2704(S syntax) This is an educated guess made in conjunction with the message
2705"%s found where operator expected". Don't automatically put a semicolon on
6df41af2
GS
2706the previous line just because you saw this message.
2707
a0d0e21e
LW
2708=item Modification of a read-only value attempted
2709
2710(F) You tried, directly or indirectly, to change the value of a
5f05dabc 2711constant. You didn't, of course, try "2 = 1", because the compiler
a0d0e21e
LW
2712catches that. But an easy way to do the same thing is:
2713
2714 sub mod { $_[0] = 1 }
2715 mod(2);
2716
2717Another way is to assign to a substr() that's off the end of the string.
2718
c5674021
PDF
2719Yet another way is to assign to a C<foreach> loop I<VAR> when I<VAR>
2720is aliased to a constant in the look I<LIST>:
2721
2722 $x = 1;
2723 foreach my $n ($x, 2) {
2724 $n *= 2; # modifies the $x, but fails on attempt to modify the 2
64977eb6 2725 }
c5674021 2726
7a4340ed 2727=item Modification of non-creatable array value attempted, %s
a0d0e21e
LW
2728
2729(F) You tried to make an array value spring into existence, and the
2730subscript was probably negative, even counting from end of the array
2731backwards.
2732
7a4340ed 2733=item Modification of non-creatable hash value attempted, %s
a0d0e21e 2734
be771a83
GS
2735(P) You tried to make a hash value spring into existence, and it
2736couldn't be created for some peculiar reason.
a0d0e21e
LW
2737
2738=item Module name must be constant
2739
2740(F) Only a bare module name is allowed as the first argument to a "use".
2741
be98fb35 2742=item Module name required with -%c option
6df41af2 2743
be98fb35
GS
2744(F) The C<-M> or C<-m> options say that Perl should load some module, but
2745you omitted the name of the module. Consult L<perlrun> for full details
2746about C<-M> and C<-m>.
6df41af2 2747
fe13d51d 2748=item More than one argument to '%s' open
ed9aa3b7
SG
2749
2750(F) The C<open> function has been asked to open multiple files. This
2751can happen if you are trying to open a pipe to a command that takes a
2752list of arguments, but have forgotten to specify a piped open mode.
2753See L<perlfunc/open> for details.
2754
a0d0e21e
LW
2755=item msg%s not implemented
2756
2757(F) You don't have System V message IPC on your system.
2758
2759=item Multidimensional syntax %s not supported
2760
75b44862
GS
2761(W syntax) Multidimensional arrays aren't written like C<$foo[1,2,3]>.
2762They're written like C<$foo[1][2][3]>, as in C.
8b1a09fc 2763
49704364 2764=item '/' must follow a numeric type in unpack
6df41af2 2765
49704364
LW
2766(F) You had an unpack template that contained a '/', but this did not
2767follow some unpack specification producing a numeric value.
2768See L<perlfunc/pack>.
6df41af2
GS
2769
2770=item "my sub" not yet implemented
2771
be771a83
GS
2772(F) Lexically scoped subroutines are not yet implemented. Don't try
2773that yet.
6df41af2 2774
fd1b7234 2775=item "my" variable %s can't be in a package
6df41af2 2776
be771a83
GS
2777(F) Lexically scoped variables aren't in a package, so it doesn't make
2778sense to try to declare one with a package qualifier on the front. Use
2779local() if you want to localize a package variable.
09bef843 2780
8149aa9f
FC
2781=item Name "%s::%s" used only once: possible typo
2782
2783(W once) Typographical errors often show up as unique variable names.
2784If you had a good reason for having a unique name, then just mention it
2785again somehow to suppress the message. The C<our> declaration is
2786provided for this purpose.
2787
2788NOTE: This warning detects symbols that have been used only once so $c, @c,
2789%c, *c, &c, sub c{}, c(), and c (the filehandle or format) are considered
2790the same; if a program uses $c only once but also uses any of the others it
2791will not trigger this warning.
2792
4a68bf9d 2793=item \N in a character class must be a named character: \N{...}
ff3f963a 2794
c3c41406 2795(F) The new (5.12) meaning of C<\N> as C<[^\n]> is not valid in a bracketed
f4e361c7
FC
2796character class, for the same reason that C<.> in a character class loses
2797its specialness: it matches almost everything, which is probably not
2798what you want.
c3c41406 2799
4a68bf9d 2800=item \N{NAME} must be resolved by the lexer
c3c41406 2801
f4e361c7
FC
2802(F) When compiling a regex pattern, an unresolved named character or
2803sequence was encountered. This can happen in any of several ways that
2804bypass the lexer, such as using single-quotish context, or an extra
7fae04b9 2805backslash in double-quotish:
c3c41406
KW
2806
2807 $re = '\N{SPACE}'; # Wrong!
b09c05e6 2808 $re = "\\N{SPACE}"; # Wrong!
c3c41406
KW
2809 /$re/;
2810
b09c05e6 2811Instead, use double-quotes with a single backslash:
c3c41406
KW
2812
2813 $re = "\N{SPACE}"; # ok
2814 /$re/;
2815
2816The lexer can be bypassed as well by creating the pattern from smaller
2817components:
2818
2819 $re = '\N';
2820 /${re}{SPACE}/; # Wrong!
2821
2822It's not a good idea to split a construct in the middle like this, and it
2823doesn't work here. Instead use the solution above.
2824
2825Finally, the message also can happen under the C</x> regex modifier when the
2826C<\N> is separated by spaces from the C<{>, in which case, remove the spaces.
2827
2828 /\N {SPACE}/x; # Wrong!
2829 /\N{SPACE}/x; # ok
ff3f963a 2830
49704364
LW
2831=item Negative '/' count in unpack
2832
2833(F) The length count obtained from a length/code unpack operation was
2834negative. See L<perlfunc/pack>.
2835
a0d0e21e
LW
2836=item Negative length
2837
be771a83
GS
2838(F) You tried to do a read/write/send/recv operation with a buffer
2839length that is less than 0. This is difficult to imagine.
a0d0e21e 2840
ed9aa3b7
SG
2841=item Negative offset to vec in lvalue context
2842
2843(F) When C<vec> is called in an lvalue context, the second argument must be
2844greater than or equal to zero.
2845
7253e4e3 2846=item Nested quantifiers in regex; marked by <-- HERE in m/%s/
a0d0e21e 2847
b45f050a 2848(F) You can't quantify a quantifier without intervening parentheses. So
7253e4e3 2849things like ** or +* or ?* are illegal. The <-- HERE shows in the regular
b45f050a 2850expression about where the problem was discovered.
a0d0e21e 2851
7253e4e3 2852Note that the minimal matching quantifiers, C<*?>, C<+?>, and
be771a83 2853C<??> appear to be nested quantifiers, but aren't. See L<perlre>.
a0d0e21e 2854
6df41af2 2855=item %s never introduced
a0d0e21e 2856
be771a83
GS
2857(S internal) The symbol in question was declared but somehow went out of
2858scope before it could possibly have been used.
a0d0e21e 2859
2c7d6b9c
RGS
2860=item next::method/next::can/maybe::next::method cannot find enclosing method
2861
2862(F) C<next::method> needs to be called within the context of a
2863real method in a real package, and it could not find such a context.
2864See L<mro>.
2865
a0d0e21e
LW
2866=item No %s allowed while running setuid
2867
be771a83
GS
2868(F) Certain operations are deemed to be too insecure for a setuid or
2869setgid script to even be allowed to attempt. Generally speaking there
2870will be another way to do what you want that is, if not secure, at least
2871securable. See L<perlsec>.
a0d0e21e 2872
a0d0e21e
LW
2873=item No comma allowed after %s
2874
2875(F) A list operator that has a filehandle or "indirect object" is not
2876allowed to have a comma between that and the following arguments.
2877Otherwise it'd be just another one of the arguments.
2878
0a753a76
PP
2879One possible cause for this is that you expected to have imported a
2880constant to your name space with B<use> or B<import> while no such
2881importing took place, it may for example be that your operating system
2882does not support that particular constant. Hopefully you did use an
f7af5ce1 2883explicit import list for the constants you expect to see; please see
0a753a76
PP
2884L<perlfunc/use> and L<perlfunc/import>. While an explicit import list
2885would probably have caught this error earlier it naturally does not
2886remedy the fact that your operating system still does not support that
2887constant. Maybe you have a typo in the constants of the symbol import
2888list of B<use> or B<import> or in the constant name at the line where
2889this error was triggered?
2890
748a9306
LW
2891=item No command into which to pipe on command line
2892
be771a83
GS
2893(F) An error peculiar to VMS. Perl handles its own command line
2894redirection, and found a '|' at the end of the command line, so it
2895doesn't know where you want to pipe the output from this command.
748a9306 2896
a0d0e21e
LW
2897=item No DB::DB routine defined
2898
be771a83 2899(F) The currently executing code was compiled with the B<-d> switch, but
f7af5ce1 2900for some reason the current debugger (e.g. F<perl5db.pl> or a C<Devel::>
ccafdc96
RGS
2901module) didn't define a routine to be called at the beginning of each
2902statement.
a0d0e21e
LW
2903
2904=item No dbm on this machine
2905
2906(P) This is counted as an internal error, because every machine should
5f05dabc 2907supply dbm nowadays, because Perl comes with SDBM. See L<SDBM_File>.
a0d0e21e 2908
ccafdc96 2909=item No DB::sub routine defined
a0d0e21e 2910
ccafdc96
RGS
2911(F) The currently executing code was compiled with the B<-d> switch, but
2912for some reason the current debugger (e.g. F<perl5db.pl> or a C<Devel::>
2913module) didn't define a C<DB::sub> routine to be called at the beginning
2914of each ordinary subroutine call.
a0d0e21e 2915
c47ff5f1 2916=item No error file after 2> or 2>> on command line
748a9306 2917
be771a83
GS
2918(F) An error peculiar to VMS. Perl handles its own command line
2919redirection, and found a '2>' or a '2>>' on the command line, but can't
2920find the name of the file to which to write data destined for stderr.
748a9306 2921
49704364
LW
2922=item No group ending character '%c' found in template
2923
2924(F) A pack or unpack template has an opening '(' or '[' without its
2925matching counterpart. See L<perlfunc/pack>.
2926
c47ff5f1 2927=item No input file after < on command line
748a9306 2928
be771a83
GS
2929(F) An error peculiar to VMS. Perl handles its own command line
2930redirection, and found a '<' on the command line, but can't find the
2931name of the file from which to read data for stdin.
748a9306 2932
2c7d6b9c
RGS
2933=item No next::method '%s' found for %s
2934
2935(F) C<next::method> found no further instances of this method name
2936in the remaining packages of the MRO of this class. If you don't want
2937it throwing an exception, use C<maybe::next::method>
2938or C<next::can>. See L<mro>.
2939
6df41af2
GS
2940=item "no" not allowed in expression
2941
be771a83
GS
2942(F) The "no" keyword is recognized and executed at compile time, and
2943returns no useful value. See L<perlmod>.
6df41af2 2944
c47ff5f1 2945=item No output file after > on command line
748a9306 2946
be771a83
GS
2947(F) An error peculiar to VMS. Perl handles its own command line
2948redirection, and found a lone '>' at the end of the command line, so it
2949doesn't know where you wanted to redirect stdout.
748a9306 2950
c47ff5f1 2951=item No output file after > or >> on command line
748a9306 2952
be771a83
GS
2953(F) An error peculiar to VMS. Perl handles its own command line
2954redirection, and found a '>' or a '>>' on the command line, but can't
2955find the name of the file to which to write data destined for stdout.
748a9306 2956
1ec3e8de
GS
2957=item No package name allowed for variable %s in "our"
2958
be771a83
GS
2959(F) Fully qualified variable names are not allowed in "our"
2960declarations, because that doesn't make much sense under existing
2961semantics. Such syntax is reserved for future extensions.
1ec3e8de 2962
a0d0e21e
LW
2963=item No Perl script found in input
2964
2965(F) You called C<perl -x>, but no line was found in the file beginning
2966with #! and containing the word "perl".
2967
2968=item No setregid available
2969
2970(F) Configure didn't find anything resembling the setregid() call for
2971your system.
2972
2973=item No setreuid available
2974
2975(F) Configure didn't find anything resembling the setreuid() call for
2976your system.
2977
6df41af2
GS
2978=item No %s specified for -%c
2979
2980(F) The indicated command line switch needs a mandatory argument, but
2981you haven't specified one.
f7af5ce1 2982
e75d1f10
RD
2983=item No such class field "%s" in variable %s of type %s
2984
2985(F) You tried to access a key from a hash through the indicated typed variable
2986but that key is not allowed by the package of the same type. The indicated
2987package has restricted the set of allowed keys using the L<fields> pragma.
2988
2c692339
RGS
2989=item No such class %s
2990
dc7e5945
FC
2991(F) You provided a class qualifier in a "my", "our" or "state"
2992declaration, but this class doesn't exist at this point in your program.
2c692339 2993
3c20a832
SP
2994=item No such hook: %s
2995
dc7e5945
FC
2996(F) You specified a signal hook that was not recognized by Perl.
2997Currently, Perl accepts C<__DIE__> and C<__WARN__> as valid signal hooks.
3c20a832 2998
6df41af2
GS
2999=item No such pipe open
3000
3001(P) An error peculiar to VMS. The internal routine my_pclose() tried to
be771a83
GS
3002close a pipe which hadn't been opened. This should have been caught
3003earlier as an attempt to close an unopened filehandle.
6df41af2 3004
a0d0e21e
LW
3005=item No such signal: SIG%s
3006
be771a83
GS
3007(W signal) You specified a signal name as a subscript to %SIG that was
3008not recognized. Say C<kill -l> in your shell to see the valid signal
3009names on your system.
a0d0e21e
LW
3010
3011=item Not a CODE reference
3012
3013(F) Perl was trying to evaluate a reference to a code value (that is, a
3014subroutine), but found a reference to something else instead. You can
be771a83
GS
3015use the ref() function to find out what kind of ref it really was. See
3016also L<perlref>.
a0d0e21e
LW
3017
3018=item Not a format reference
3019
3020(F) I'm not sure how you managed to generate a reference to an anonymous
3021format, but this indicates you did, and that it didn't exist.
3022
3023=item Not a GLOB reference
3024
be771a83
GS
3025(F) Perl was trying to evaluate a reference to a "typeglob" (that is, a
3026symbol table entry that looks like C<*foo>), but found a reference to
3027something else instead. You can use the ref() function to find out what
3028kind of ref it really was. See L<perlref>.
a0d0e21e
LW
3029
3030=item Not a HASH reference
3031
be771a83
GS
3032(F) Perl was trying to evaluate a reference to a hash value, but found a
3033reference to something else instead. You can use the ref() function to
3034find out what kind of ref it really was. See L<perlref>.
a0d0e21e 3035
6df41af2
GS
3036=item Not an ARRAY reference
3037
be771a83
GS
3038(F) Perl was trying to evaluate a reference to an array value, but found
3039a reference to something else instead. You can use the ref() function
3040to find out what kind of ref it really was. See L<perlref>.
6df41af2 3041
d4fc4415
FC
3042=item Not an unblessed ARRAY reference
3043
3044(F) You passed a reference to a blessed array to C<push>, C<shift> or
3045another array function. These only accept unblessed array references
3046or arrays beginning explicitly with C<@>.
3047
a0d0e21e
LW
3048=item Not a SCALAR reference
3049
be771a83
GS
3050(F) Perl was trying to evaluate a reference to a scalar value, but found
3051a reference to something else instead. You can use the ref() function
3052to find out what kind of ref it really was. See L<perlref>.
a0d0e21e
LW
3053
3054=item Not a subroutine reference
3055
3056(F) Perl was trying to evaluate a reference to a code value (that is, a
3057subroutine), but found a reference to something else instead. You can
be771a83
GS
3058use the ref() function to find out what kind of ref it really was. See
3059also L<perlref>.
a0d0e21e 3060
e7ea3e70 3061=item Not a subroutine reference in overload table
a0d0e21e
LW
3062
3063(F) An attempt was made to specify an entry in an overloading table that
8b1a09fc 3064doesn't somehow point to a valid subroutine. See L<overload>.
a0d0e21e 3065
a0d0e21e
LW
3066=item Not enough arguments for %s
3067
3068(F) The function requires more arguments than you specified.
3069
6df41af2
GS
3070=item Not enough format arguments
3071
be771a83
GS
3072(W syntax) A format specified more picture fields than the next line
3073supplied. See L<perlform>.
6df41af2
GS
3074
3075=item %s: not found
3076
be771a83
GS
3077(A) You've accidentally run your script through the Bourne shell instead
3078of Perl. Check the #! line, or manually feed your script into Perl
3079yourself.
6df41af2
GS
3080
3081=item no UTC offset information; assuming local time is UTC
a0d0e21e 3082
6df41af2
GS
3083(S) A warning peculiar to VMS. Perl was unable to find the local
3084timezone offset, so it's assuming that local system time is equivalent
be771a83
GS
3085to UTC. If it's not, define the logical name
3086F<SYS$TIMEZONE_DIFFERENTIAL> to translate to the number of seconds which
3087need to be added to UTC to get local time.
a0d0e21e 3088
f0a2b745
KW
3089=item Non-octal character '%c'. Resolved as "%s"
3090
5493e060
FC
3091(W digit) In parsing an octal numeric constant, a character was
3092unexpectedly encountered that isn't octal. The resulting value is as
3093indicated.
f0a2b745 3094
4ef2275c
GA
3095=item Non-string passed as bitmask
3096
3097(W misc) A number has been passed as a bitmask argument to select().
3098Use the vec() function to construct the file descriptor bitmasks for
bc4b151d 3099select. See L<perlfunc/select>.
4ef2275c 3100
a0d0e21e
LW
3101=item Null filename used
3102
be771a83
GS
3103(F) You can't require the null filename, especially because on many
3104machines that means the current directory! See L<perlfunc/require>.
a0d0e21e 3105
6df41af2
GS
3106=item NULL OP IN RUN
3107
be771a83
GS
3108(P debugging) Some internal routine called run() with a null opcode
3109pointer.
6df41af2 3110
55497cff
PP
3111=item Null picture in formline
3112
3113(F) The first argument to formline must be a valid format picture
3114specification. It was found to be empty, which probably means you
3115supplied it an uninitialized value. See L<perlform>.
3116
a0d0e21e
LW
3117=item Null realloc
3118
3119(P) An attempt was made to realloc NULL.
3120
3121=item NULL regexp argument
3122
5f05dabc 3123(P) The internal pattern matching routines blew it big time.
a0d0e21e
LW
3124
3125=item NULL regexp parameter
3126
3127(P) The internal pattern matching routines are out of their gourd.
3128
fc36a67e
PP
3129=item Number too long
3130
be771a83 3131(F) Perl limits the representation of decimal numbers in programs to
da75cd15 3132about 250 characters. You've exceeded that length. Future
be771a83
GS
3133versions of Perl are likely to eliminate this arbitrary limitation. In
3134the meantime, try using scientific notation (e.g. "1e6" instead of
3135"1_000_000").
fc36a67e 3136
f0a2b745
KW
3137=item Number with no digits
3138
1043934d
FC
3139(F) Perl was looking for a number but found nothing that looked like
3140a number. This happens, for example with C<\o{}>, with no number between
3141the braces.
f0a2b745 3142
6df41af2
GS
3143=item Octal number in vector unsupported
3144
be771a83
GS
3145(F) Numbers with a leading C<0> are not currently allowed in vectors.
3146The octal number interpretation of such numbers may be supported in a
3147future version.
6df41af2 3148
252aa082
JH
3149=item Octal number > 037777777777 non-portable
3150
75b44862 3151(W portable) The octal number you specified is larger than 2**32-1
be771a83
GS
3152(4294967295) and therefore non-portable between systems. See
3153L<perlport> for more on portability concerns.
252aa082 3154
6ad11d81
JH
3155=item Odd number of arguments for overload::constant
3156
04a80ee0
RGS
3157(W overload) The call to overload::constant contained an odd number of
3158arguments. The arguments should come in pairs.
6ad11d81 3159
b21befc1
MG
3160=item Odd number of elements in anonymous hash
3161
3162(W misc) You specified an odd number of elements to initialize a hash,
3163which is odd, because hashes come in key/value pairs.
3164
1930e939 3165=item Odd number of elements in hash assignment
a0d0e21e 3166
be771a83
GS
3167(W misc) You specified an odd number of elements to initialize a hash,
3168which is odd, because hashes come in key/value pairs.
a0d0e21e 3169
bbce6d69
PP
3170=item Offset outside string
3171
a4a4c9e2 3172(F|W layer) You tried to do a read/write/send/recv/seek operation
42bc49da 3173with an offset pointing outside the buffer. This is difficult to
f5a7294f
JH
3174imagine. The sole exceptions to this are that zero padding will
3175take place when going past the end of the string when either
3176C<sysread()>ing a file, or when seeking past the end of a scalar opened
1a7a2554
MB
3177for I/O (in anticipation of future reads and to imitate the behaviour
3178with real files).
bbce6d69 3179
c289d2f7 3180=item %s() on unopened %s
2dd78f96
JH
3181
3182(W unopened) An I/O operation was attempted on a filehandle that was
3183never initialized. You need to do an open(), a sysopen(), or a socket()
3184call, or call a constructor from the FileHandle package.
3185
96ebfdd7
RK
3186=item -%s on unopened filehandle %s
3187
3188(W unopened) You tried to invoke a file test operator on a filehandle
3189that isn't open. Check your control flow. See also L<perlfunc/-X>.
3190
a0d0e21e
LW
3191=item oops: oopsAV
3192
e476b1b5 3193(S internal) An internal warning that the grammar is screwed up.
a0d0e21e
LW
3194
3195=item oops: oopsHV
3196
e476b1b5 3197(S internal) An internal warning that the grammar is screwed up.
a0d0e21e 3198
abc718f2
RGS
3199=item Opening dirhandle %s also as a file
3200
a4a4c9e2 3201(W io, deprecated) You used open() to associate a filehandle to
abc718f2
RGS
3202a symbol (glob or scalar) that already holds a dirhandle.
3203Although legal, this idiom might render your code confusing
3204and is deprecated.
3205
3206=item Opening filehandle %s also as a directory
3207
a4a4c9e2 3208(W io, deprecated) You used opendir() to associate a dirhandle to
abc718f2
RGS
3209a symbol (glob or scalar) that already holds a filehandle.
3210Although legal, this idiom might render your code confusing
3211and is deprecated.
3212
a0288114 3213=item Operation "%s": no method found, %s
44a8e56a 3214
be771a83
GS
3215(F) An attempt was made to perform an overloaded operation for which no
3216handler was defined. While some handlers can be autogenerated in terms
3217of other handlers, there is no default handler for any operation, unless
e4aad80d 3218the C<fallback> overloading key is specified to be true. See L<overload>.
44a8e56a 3219
5ff1373f 3220=item Operation "%s" returns its argument for non-Unicode code point 0x%X
9ae3ac1a 3221
8457b38f
KW
3222(W utf8, non_unicode) You performed an operation requiring Unicode
3223semantics on a code
5ff1373f
FC
3224point that is not in Unicode, so what it should do is not defined. Perl
3225has chosen to have it do nothing, and warn you.
9ae3ac1a
KW
3226
3227If the operation shown is "ToFold", it means that case-insensitive
3228matching in a regular expression was done on the code point.
3229
3230If you know what you are doing you can turn off this warning by
8457b38f 3231C<no warnings 'non_unicode';>.
9ae3ac1a 3232
5ff1373f 3233=item Operation "%s" returns its argument for UTF-16 surrogate U+%X
9ae3ac1a 3234
8457b38f
KW
3235(W utf8, surrogate) You performed an operation requiring Unicode
3236semantics on a Unicode
5ff1373f
FC
3237surrogate. Unicode frowns upon the use of surrogates for anything but
3238storing strings in UTF-16, but semantics are (reluctantly) defined for
3239the surrogates, and they are to do nothing for this operation. Because
3240the use of surrogates can be dangerous, Perl warns.
9ae3ac1a
KW
3241
3242If the operation shown is "ToFold", it means that case-insensitive
3243matching in a regular expression was done on the code point.
3244
3245If you know what you are doing you can turn off this warning by
8457b38f 3246C<no warnings 'surrogate';>.
9ae3ac1a 3247
748a9306
LW
3248=item Operator or semicolon missing before %s
3249
be771a83
GS
3250(S ambiguous) You used a variable or subroutine call where the parser
3251was expecting an operator. The parser has assumed you really meant to
3252use an operator, but this is highly likely to be incorrect. For
3253example, if you say "*foo *foo" it will be interpreted as if you said
3254"*foo * 'foo'".
748a9306 3255
6df41af2
GS
3256=item "our" variable %s redeclared
3257
be771a83
GS
3258(W misc) You seem to have already declared the same global once before
3259in the current lexical scope.
6df41af2 3260
a80b8354
GS
3261=item Out of memory!
3262
3263(X) The malloc() function returned 0, indicating there was insufficient
be771a83
GS
3264remaining memory (or virtual memory) to satisfy the request. Perl has
3265no option but to exit immediately.
a80b8354 3266
19a52907
JH
3267At least in Unix you may be able to get past this by increasing your
3268process datasize limits: in csh/tcsh use C<limit> and
3269C<limit datasize n> (where C<n> is the number of kilobytes) to check
3270the current limits and change them, and in ksh/bash/zsh use C<ulimit -a>
3271and C<ulimit -d n>, respectively.
3272
6d3b25aa
RGS
3273=item Out of memory during %s extend
3274
3275(X) An attempt was made to extend an array, a list, or a string beyond
3276the largest possible memory allocation.
3277
6df41af2 3278=item Out of memory during "large" request for %s
a0d0e21e 3279
6df41af2
GS
3280(F) The malloc() function returned 0, indicating there was insufficient
3281remaining memory (or virtual memory) to satisfy the request. However,
be771a83
GS
3282the request was judged large enough (compile-time default is 64K), so a
3283possibility to shut down by trapping this error is granted.
a0d0e21e 3284
1b979e0a 3285=item Out of memory during request for %s
a0d0e21e 3286
be771a83
GS
3287(X|F) The malloc() function returned 0, indicating there was
3288insufficient remaining memory (or virtual memory) to satisfy the
3289request.
eff9c6e2
CS
3290
3291The request was judged to be small, so the possibility to trap it
3292depends on the way perl was compiled. By default it is not trappable.
be771a83
GS
3293However, if compiled for this, Perl may use the contents of C<$^M> as an
3294emergency pool after die()ing with this message. In this case the error
b022d2d2
IZ
3295is trappable I<once>, and the error message will include the line and file
3296where the failed request happened.
55497cff 3297
1b979e0a
IZ
3298=item Out of memory during ridiculously large request
3299
3300(F) You can't allocate more than 2^31+"small amount" bytes. This error
be771a83
GS
3301is most likely to be caused by a typo in the Perl program. e.g.,
3302C<$arr[time]> instead of C<$arr[$time]>.
1b979e0a 3303
6df41af2
GS
3304=item Out of memory for yacc stack
3305
be771a83
GS
3306(F) The yacc parser wanted to grow its stack so it could continue
3307parsing, but realloc() wouldn't give it more memory, virtual or
3308otherwise.
6df41af2 3309
28be1210
TH
3310=item '.' outside of string in pack
3311
3312(F) The argument to a '.' in your template tried to move the working
3313position to before the start of the packed string being built.
3314
49704364 3315=item '@' outside of string in unpack
6df41af2 3316
49704364 3317(F) You had a template that specified an absolute position outside
6df41af2
GS
3318the string being unpacked. See L<perlfunc/pack>.
3319
f337b084
TH
3320=item '@' outside of string with malformed UTF-8 in unpack
3321
3322(F) You had a template that specified an absolute position outside
3323the string being unpacked. The string being unpacked was also invalid
3324UTF-8. See L<perlfunc/pack>.
3325
7cb0cfe6
BM
3326=item Overloaded dereference did not return a reference
3327
3328(F) An object with an overloaded dereference operator was dereferenced,
3329but the overloaded operation did not return a reference. See
3330L<overload>.
3331
3332=item Overloaded qr did not return a REGEXP
3333
3334(F) An object with a C<qr> overload was used as part of a match, but the
3335overloaded operation didn't return a compiled regexp. See L<overload>.
3336
6df41af2
GS
3337=item %s package attribute may clash with future reserved word: %s
3338
be771a83
GS
3339(W reserved) A lowercase attribute name was used that had a
3340package-specific handler. That name might have a meaning to Perl itself
3341some day, even though it doesn't yet. Perhaps you should use a
3342mixed-case attribute name, instead. See L<attributes>.
6df41af2 3343
96ebfdd7
RK
3344=item pack/unpack repeat count overflow
3345
3346(F) You can't specify a repeat count so large that it overflows your