X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperldiag.pod;h=838b54554d9afd3f770593494edafda7bb3fee30;hb=17c338f39c13131c1bc175ef38013b54bc98396d;hp=267d91de701bf4837549ad664ee93f83a2b47d30;hpb=5b027e89afd4ee57cb404e7185751841691f917c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perldiag.pod b/pod/perldiag.pod index 267d91d..838b545 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -261,7 +261,7 @@ avoid this warning. used as an lvalue, which is pretty strange. Perhaps you forgot to dereference it first. See L. -=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, @@ -631,7 +631,7 @@ is no builtin with the name C. =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 or C prefix? @@ -1294,6 +1294,10 @@ Your code will be interpreted as an attempt to call a method named "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 pragma, switching the real and @@ -1696,7 +1700,6 @@ operations. 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 @@ -1712,7 +1715,6 @@ terminate the Perl script and execute the specified command. <-- 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 @@ -1853,7 +1855,6 @@ shows in the regular expression about where the problem was discovered. prefix1;prefix2 or - prefix1 prefix2 with nonempty prefix1 and prefix2. If C is indeed a prefix of @@ -1879,6 +1880,12 @@ regular expression engine didn't specifically check for that. The <-- HERE shows in the regular expression about where the problem was discovered. See L. +=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 @@ -1937,6 +1944,10 @@ can vary from one line to the next. (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 @@ -2306,7 +2317,7 @@ supplied it an uninitialized value. See L. =item Number too long (F) Perl limits the representation of decimal numbers in programs to -about about 250 characters. You've exceeded that length. Future +about 250 characters. You've exceeded that length. Future versions of Perl are likely to eliminate this arbitrary limitation. In the meantime, try using scientific notation (e.g. "1e6" instead of "1_000_000"). @@ -2434,7 +2445,7 @@ mixed-case attribute name, instead. See L. =item Package '%s' not found (did you use the incorrect case?) (W misc) You included a package file via C, but the package name -did not match the file name. It's possible that you mispelled the +did not match the file name. It's possible that you misspelled the package name. =item page overflow @@ -2791,6 +2802,13 @@ Perl guesses a reasonable buffer size, but puts a sentinel byte at the end of the buffer just in case. This sentinel byte got clobbered, and Perl assumes that memory is now corrupted. See L. +=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 @@ -3337,6 +3355,12 @@ questions>. 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 succeeds. @@ -3832,6 +3856,21 @@ returns no useful value. See L. (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 @@ -4034,6 +4073,16 @@ where the problem was discovered. See L. its equivalent C 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 say +C. 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) or