used as an lvalue, which is pretty strange. Perhaps you forgot to
dereference it first. See L<perlfunc/substr>.
-=item Bad arg length for %s, is %d, should be %d
+=item Bad arg length for %s, is %d, should be %s
(F) You passed a buffer of the wrong size to one of msgctl(), semctl()
or shmctl(). In C parlance, the correct sizes are, respectively,
=item Can't find %s character property "%s"
(F) You used C<\p{}> or C<\P{}> but the character property by that name
-could not be find. Maybe you mispelled the name of the property
+could not be found. Maybe you misspelled the name of the property
(remember that the names of character properties consist only of
alphanumeric characters), or maybe you forgot the C<Is> or C<In> prefix?
If you actually want to pack Unicode codepoints, use the C<"U"> format
instead.
-=item chmod() mode argument is missing initial 0
-
-(W chmod) A novice will sometimes say
-
- chmod 777, $filename
-
-not realizing that 777 will be interpreted as a decimal number,
-equivalent to 01411. Octal constants are introduced with a leading 0 in
-Perl, as in C.
-
=item close() on unopened filehandle %s
(W unopened) You tried to close a filehandle that was never opened.
"elseif" for the class returned by the following block. This is
unlikely to be what you want.
+=item Empty %s
+
+(F) Empty C<\p{}> or C<\P{}>.
+
=item entering effective %s failed
(F) While under the C<use filetest> pragma, switching the real and
The <-- HERE shows in the regular expression about where the problem was
discovered.
-
=item Internal inconsistency in tracking vforks
(S) A warning peculiar to VMS. Perl keeps track of the number of times
<-- HERE shows in the regular expression about where the problem was
discovered.
-
=item %s (...) interpreted as function
(W syntax) You've run afoul of the rule that says that any list operator
prefix1;prefix2
or
-
prefix1 prefix2
with nonempty prefix1 and prefix2. If C<prefix1> is indeed a prefix of
shows in the regular expression about where the problem was discovered.
See L<perlre>.
+=item "%s" may clash with future reserved word
+
+(W) This warning may be due to running a perl5 script through a perl4
+interpreter, especially if the word that is being warned about is
+"use" or "my".
+
=item % may only be used in unpack
(F) You can't pack a string by supplying a checksum, because the
(S) This is an educated guess made in conjunction with the message "%s
found where operator expected". Often the missing operator is a comma.
+=item Missing right brace on %s
+
+(F) Missing right brace in C<\p{...}> or C<\P{...}>.
+
=item Missing right curly or square bracket
(F) The lexer counted more opening curly or square brackets than closing
some day, even though it doesn't yet. Perhaps you should use a
mixed-case attribute name, instead. See L<attributes>.
+=item Package '%s' not found (did you use the incorrect case?)
+
+(W misc) You included a package file via C<use>, but the package name
+did not match the file name. It's possible that you misspelled the
+package name.
+
=item page overflow
(W io) A single call to write() produced more lines than can fit on a
end of the buffer just in case. This sentinel byte got clobbered, and
Perl assumes that memory is now corrupted. See L<perlfunc/ioctl>.
+=item Possible unintended interpolation of %s in string
+
+(W ambiguous) You said something like `@foo' in a double-quoted string
+but there was no array C<@foo> in scope at the time. If you wanted a
+literal @foo, then write it as \@foo; otherwise find out what happened
+to the array you apparently lost track of.
+
=item Possible Y2K bug: %s
(W y2k) You are concatenating the number 19 with another number, which
of Perl. Check the #! line, or manually feed your script into Perl
yourself.
+=item syntax error in file %s at line %d, next 2 tokens "%s"
+
+(F) This error is likely to occur if you run a perl5 script through
+a perl4 interpreter, especially if the next 2 tokens are "use strict"
+or "my $var" or "our $var".
+
=item %s syntax OK
(F) The final summary message when a C<perl -c> succeeds.
%NAME or C<%{EXPR}>. No implicit dereferencing is allowed--use the
{EXPR} forms as an explicit dereference. See L<perlref>.
-=item umask: argument is missing initial 0
-
-(W umask) A umask of 222 is incorrect. It should be 0222, because octal
-literals always start with 0 in Perl, as in C.
-
=item umask not implemented
(F) Your machine doesn't implement the umask function and you tried to
(D deprecated) You are now encouraged to use the explicitly quoted form
if you wish to use an empty line as the terminator of the here-document.
+=item Use of *glob{FILEHANDLE} is deprecated
+
+(D deprecated) You are now encouraged to use the shorter *glob{IO} form
+to access the filehandle slot within a typeglob.
+
+=item Use of chdir('') or chdir(undef) as chdir() deprecated
+
+(D deprecated) chdir() with no arguments is documented to change to
+$ENV{HOME} or $ENV{LOGDIR}. chdir(undef) and chdir('') share this
+behavior, but that has been deprecated. In future versions they
+will simply fail.
+
+Be careful to check that what you pass to chdir() is defined and not
+blank, else you might find yourself in your home directory.
+
=item Use of implicit split to @_ is deprecated
(D deprecated) It makes a lot of work for the compiler when you clobber
you should remove AutoLoader from @ISA and change C<use AutoLoader;> to
C<use AutoLoader 'AUTOLOAD';>.
+=item Use of "package" with no arguments is deprecated
+
+(D deprecated) You used the C<package> keyword without specifying a package
+name. So no namespace is current at all. Using this can cause many
+otherwise reasonable constructs to fail in baffling ways. C<use strict;>
+instead.
+
=item Use of %s in printf format not supported
(F) You attempted to use a feature of printf that is accessible from
its equivalent C<BEGIN> block found an internal inconsistency with
the version number.
+=item v-string in use/require is non-portable
+
+(W) The use of v-strings is non-portable to older, pre-5.6, Perls.
+If you want your scripts to be backward portable, use the floating
+point version number: for example, instead of C<use 5.6.1> say
+C<use 5.006_001>. This of course won't help: the older Perls
+won't suddenly start understanding newer features, but at least
+they will show a sensible error message indicating the required
+minimum version.
+
=item Warning: something's wrong
(W) You passed warn() an empty string (the equivalent of C<warn "">) or