X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperldiag.pod;h=1b4ab09c1ae1fca375b2cfbd3cae91890c1454f7;hb=4e9dada01dea61250de18f52c49ec01866133705;hp=984a170bbbe90dc169d53ba94445524b811d4582;hpb=7aa207d6d833e60be59e41514013c4c54b091533;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perldiag.pod b/pod/perldiag.pod index 984a170..1b4ab09 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -784,6 +784,16 @@ usually double the curlies to get the same effect though, because the inner curlies will be considered a block that loops once. See L. +=item Can't load '%s' for module %s + +(F) The module you tried to load failed to load a dynamic extension. This +may either mean that you upgraded your version of perl to one that is +incompatible with your old dynamic extensions (which is known to happen +between major versions of perl), or (more likely) that your dynamic +extension was built against an older version of the library that is +installed on your system. You may need to rebuild your old dynamic +extensions. + =item Can't localize lexical variable %s (F) You used local on a variable name that was previously declared as a @@ -815,6 +825,12 @@ autoload, but there is no function to autoload. Most probable causes are a misprint in a function/method name or a failure to C the file, say, by doing C. +=item Can't locate loadable object for module %s in @INC + +(F) The module you loaded is trying to load an external library, like +for example, C or C, but the L module was +unable to locate this library. See L. + =item Can't locate object method "%s" via package "%s" (F) You called a method correctly, and it correctly indicated a package @@ -918,6 +934,10 @@ for stdout. (F) The script you specified can't be opened for the indicated reason. +If you're debugging a script that uses #!, and normally relies on the +shell's $PATH search, the -S option causes perl to do that search, so +you don't have to type the path or C<`which $scriptname`>. + =item Can't read CRTL environ (S) A warning peculiar to VMS. Perl tried to read an element of %ENV @@ -1035,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 @@ -1083,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. @@ -1305,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 @@ -1729,6 +1765,10 @@ characters in prototypes are $, @, %, *, ;, [, ], &, and \. (F) When using the C keyword to construct an anonymous subroutine, you must always specify a block of code. See L. +=item Illegal declaration of subroutine %s + +(F) A subroutine was not declared correctly. See L. + =item Illegal division by zero (F) You tried to divide a number by 0. Either something was wrong in @@ -2284,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 @@ -2636,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 @@ -2694,11 +2730,6 @@ page. See L. (P) An internal error. -=item panic: array extend - -(P) An attempt was made to extend an array beyond the largest possible -memory allocation. - =item panic: ck_grep (P) Failed an internal consistency check trying to compile a grep. @@ -2775,11 +2806,6 @@ scope. (P) The savestack probably got out of sync. At least, there was an invalid enum on the top of it. -=item panic: list extend - -(P) An attempt was made to extend a list beyond the largest possible -memory allocation. - =item panic: magic_killbackrefs (P) Failed an internal consistency check while trying to reset all weak @@ -2864,11 +2890,6 @@ then discovered it wasn't a subroutine or eval context. (P) scan_num() got called on something that wasn't a number. -=item panic: string extend - -(P) An attempt was made to extend a string beyond the largest possible -memory allocation. - =item panic: sv_insert (P) The sv_insert() routine was told to remove more string than there @@ -2911,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, @@ -2924,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 @@ -3746,17 +3767,27 @@ target of the change to (F) The entry point function of threads->create() failed for some reason. -=item Tied variable freed while still in use - -(F) An access method for a tied variable (e.g. FETCH) did something to -free the variable. Since continuing the current operation is likely -to result in a coredump, Perl is bailing out instead. - =item times not implemented (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, @@ -3779,22 +3810,6 @@ system call to call, silly dilly. B<-M> or B<-m> option. This is an error because B<-M> and B<-m> options are not intended for use inside scripts. Use the C pragma instead. -=item Too late for "B<-T>" option - -(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 Too late to run %s block (W void) A CHECK or INIT block is being defined during run time proper, @@ -3834,8 +3849,8 @@ C<$tr> or C<$y> may cause this error. =item Transliteration replacement not terminated -(F) The lexer couldn't find the final delimiter of a tr/// or tr[][] -construct. +(F) The lexer couldn't find the final delimiter of a tr///, tr[][], +y/// or y[][] construct. =item '%s' trapped by operation mask @@ -4339,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