X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperldiag.pod;h=1b4ab09c1ae1fca375b2cfbd3cae91890c1454f7;hb=4e9dada01dea61250de18f52c49ec01866133705;hp=999f2895fad2b8b9cd5b0c6aeb04b920dd38dbf2;hpb=fa3aa65a5ab84a4dd986ed927a8fcbf6d6dfcf43;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perldiag.pod b/pod/perldiag.pod index 999f289..1b4ab09 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -1055,13 +1055,6 @@ indicates that such a conversion was attempted. upgradability. Upgrading to undef indicates an error in the code calling sv_upgrade. -=item Can't use '%c' in a group with different byte-order in %s - -(F) You attempted to force a different byte-order on a type -that is already inside a group with a byte-order modifier. -For example you cannot force little-endianness on a type that -is inside a big-endian group. - =item Can't use anonymous symbol table for method lookup (F) The internal routine that does method lookup was handed a symbol @@ -1103,6 +1096,13 @@ is not allowed, because the magic can be tied to only one location have variables in your program that looked like magical variables but weren't. +=item Can't use '%c' in a group with different byte-order in %s + +(F) You attempted to force a different byte-order on a type +that is already inside a group with a byte-order modifier. +For example you cannot force little-endianness on a type that +is inside a big-endian group. + =item Can't use "my %s" in sort comparison (F) The global variables $a and $b are reserved for sort comparisons. @@ -1325,6 +1325,22 @@ there are neither package declarations nor a C<$VERSION>. long for Perl to handle. You have to be seriously twisted to write code that triggers this error. +=item Deprecated use of my() in false conditional + +(D deprecated) You used a declaration similar to C. +There has been a long-standing bug in Perl that causes a lexical variable +not to be cleared at scope exit when its declaration includes a false +conditional. Some people have exploited this bug to achieve a kind of +static variable. Since we intend to fix this bug, we don't want people +relying on this behavior. You can achieve a similar static effect by +declaring the variable in a separate block outside the function, eg + + sub f { my $x if 0; return $x++ } + +becomes + + { my $x; sub f { return $x++ } } + =item DESTROY created new reference to dead object '%s' (F) A DESTROY() method created a new reference to the object which is @@ -2308,15 +2324,6 @@ C appear to be nested quantifiers, but aren't. See L. (S internal) The symbol in question was declared but somehow went out of scope before it could possibly have been used. -=item Newline in left-justified string for %s - -(W printf) There is a newline in a string to be left justified by -C or C. - -The padding spaces will appear after the newline, which is probably not -what you wanted. Usually you should remove the newline from the string -and put formatting characters in the C format. - =item No %s allowed while running setuid (F) Certain operations are deemed to be too insecure for a setuid or @@ -2660,6 +2667,11 @@ C (where C is the number of kilobytes) to check the current limits and change them, and in ksh/bash/zsh use C and C, respectively. +=item Out of memory during %s extend + +(X) An attempt was made to extend an array, a list, or a string beyond +the largest possible memory allocation. + =item Out of memory during "large" request for %s (F) The malloc() function returned 0, indicating there was insufficient @@ -2667,11 +2679,6 @@ remaining memory (or virtual memory) to satisfy the request. However, the request was judged large enough (compile-time default is 64K), so a possibility to shut down by trapping this error is granted. -=item Out of memory during %s extend - -(X) An attempt was made to extend an array, a list, or a string beyond -the largest possible memory allocation. - =item Out of memory during request for %s (X|F) The malloc() function returned 0, indicating there was @@ -2925,12 +2932,6 @@ redirected it with select().) "Can't locate object method \"%s\" via package \"%s\"". It often means that a method requires a package that has not been loaded. -=item Perl %s required--this is only version %s, stopped - -(F) The module in question uses features of a version of Perl more -recent than the currently running version. How long has it been since -you upgraded, anyway? See L. - =item Perl_my_%s() not available (F) Your platform has very uncommon byte-order and integer size, @@ -2938,6 +2939,12 @@ so it was not possible to set up some or all fixed-width byte-order conversion functions. This is only a problem when you're using the '<' or '>' modifiers in (un)pack templates. See L. +=item Perl %s required--this is only version %s, stopped + +(F) The module in question uses features of a version of Perl more +recent than the currently running version. How long has it been since +you upgraded, anyway? See L. + =item PERL_SH_DIR too long (F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the @@ -3694,22 +3701,6 @@ before now. Check your control flow. (F) Perl can't peek at the stdio buffer of filehandles when it doesn't know about your kind of stdio. You'll have to use a filename instead. -=item "-T" is on the #! line, it must also be used on the command line - -(X) The #! line (or local equivalent) in a Perl script contains the -B<-T> option, but Perl was not invoked with B<-T> in its command line. -This is an error because, by the time Perl discovers a B<-T> in a -script, it's too late to properly taint everything from the environment. -So Perl gives up. - -If the Perl script is being executed as a command using the #! -mechanism (or its local equivalent), this error can usually be fixed by -editing the #! line so that the B<-T> option is a part of Perl's first -argument: e.g. change C to C. - -If the Perl script is being executed as C, then the -B<-T> option must appear on the command line: C. - =item Target of goto is too deeply nested (F) You tried to use C to reach a label that was too deeply nested @@ -3781,6 +3772,22 @@ target of the change to (F) Your version of the C library apparently doesn't do times(). I suspect you're not running on Unix. +=item "-T" is on the #! line, it must also be used on the command line + +(X) The #! line (or local equivalent) in a Perl script contains the +B<-T> option, but Perl was not invoked with B<-T> in its command line. +This is an error because, by the time Perl discovers a B<-T> in a +script, it's too late to properly taint everything from the environment. +So Perl gives up. + +If the Perl script is being executed as a command using the #! +mechanism (or its local equivalent), this error can usually be fixed by +editing the #! line so that the B<-T> option is a part of Perl's first +argument: e.g. change C to C. + +If the Perl script is being executed as C, then the +B<-T> option must appear on the command line: C. + =item To%s: illegal mapping '%s' (F) You tried to define a customized To-mapping for lc(), lcfirst, @@ -4347,22 +4354,6 @@ old way has bad side effects. it already went past any symlink you are presumably trying to look for. The operation returned C. Use a filename instead. -=item Deprecated use of my() in false conditional - -(D deprecated) You used a declaration similar to C. -There has been a long-standing bug in Perl that causes a lexical variable -not to be cleared at scope exit when its declaration includes a false -conditional. Some people have exploited this bug to achieve a kind of -static variable. Since we intend to fix this bug, we don't want people -relying on this behavior. You can achieve a similar static effect by -declaring the variable in a separate block outside the function, eg - - sub f { my $x if 0; return $x++ } - -becomes - - { my $x; sub f { return $x++ } } - =item Use of "package" with no arguments is deprecated (D deprecated) You used the C keyword without specifying a package