X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperldiag.pod;h=1f7bc0bc8ede2f0de83cea83e25a0ccf8e841119;hb=c1effa61278e47c916466883d74905b04fedc388;hp=d9582626097ca2931c3f1e65239593de92de7a82;hpb=55b6781562aff32ef6499c4f263ab251254ca5cb;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perldiag.pod b/pod/perldiag.pod index d958262..1f7bc0b 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -306,7 +306,21 @@ of an array and later assigning through that reference. For example 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 %s +=item Attribute "locked" is deprecated + +(D deprecated) You have used the attributes pragam to modify the "locked" +attribute on a code reference. The :locked attribute is obsolete, has had no +effect since 5005 threads were removed, and will be removed in the next major +release of Perl 5. + +=item Attribute "unique" is deprecated + +(D deprecated) You have used the attributes pragam to modify the "unique" +attribute on an array, hash or scalar reference. The :unique attribute has +had no effect since Perl 5.8.8, and will be removed in the next major +release of Perl 5. + +=item Bad arg length for %s, is %d, should be %d (F) You passed a buffer of the wrong size to one of msgctl(), semctl() or shmctl(). In C parlance, the correct sizes are, respectively, @@ -816,6 +830,12 @@ processes, Perl has reset the signal to its default value. This situation typically indicates that the parent program under which Perl may be running (e.g. cron) is being very careless. +=item Can't kill a non-numeric process ID + +(F) Process identifiers must be (signed) integers. It is a fatal error to +attempt to kill() an undefined, empty-string or otherwise non-numeric +process identifier. + =item Can't "last" outside a loop block (F) A "last" statement was executed to break out of the current block, @@ -1018,7 +1038,7 @@ probably because you don't have write permission to the directory. (P) An error peculiar to VMS. Perl thought stdin was a pipe, and tried to reopen it to accept binary data. Alas, it failed. -=item Can't resolve method `%s' overloading `%s' in package `%s' +=item Can't resolve method "%s" overloading "%s" in package "%s" (F|P) Error resolving overloading specified by a method name (as opposed to a subroutine reference): no such method callable via the package. If @@ -1127,6 +1147,11 @@ 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 keyword '%s' as a label + +(F) You attempted to use a reserved keyword, such as C or C, +as a statement label. This is disallowed since Perl 5.11.0. + =item Can't use "my %s" in sort comparison (F) The global variables $a and $b are reserved for sort comparisons. @@ -1394,6 +1419,9 @@ L. infinite recursion, unless you're writing strange benchmark programs, in which case it indicates something else. +This threshold can be changed from 100, by recompiling the F binary, +setting the C pre-processor macro C to the desired value. + =item defined(@array) is deprecated (D deprecated) defined() is not usually useful on arrays because it @@ -1601,7 +1629,7 @@ variable and glob that. (F) The C function is not implemented in MacPerl. See L. -=item Execution of %s aborted due to compilation errors +=item Execution of %s aborted due to compilation errors. (F) The final summary message when a Perl compilation fails. @@ -1825,7 +1853,7 @@ unspecified destination. See L. supposed to follow something: a template character or a ()-group. See L. -=item %s had compilation errors +=item %s had compilation errors. (F) The final summary message when a C fails. @@ -1928,7 +1956,7 @@ two from 1 to 32 (or 64, if your platform supports that). (W digit) You may have tried to use an 8 or 9 in an octal number. Interpretation of the octal number stopped before the 8 or 9. -=item Illegal switch in PERL5OPT: %s +=item Illegal switch in PERL5OPT: -%c (X) The PERL5OPT environment variable may only be used to set the following switches: B<-[CDIMUdmtw]>. @@ -2150,7 +2178,7 @@ strange for a machine that supports C. (W unopened) You tried ioctl() on a filehandle that was never opened. Check you control flow and number of arguments. -=item IO layers (like "%s") unavailable +=item IO layers (like '%s') unavailable (F) Your Perl has not been configured to have PerlIO, and therefore you cannot use IO layers. To have PerlIO Perl must be configured @@ -2164,8 +2192,12 @@ neither as a system call or an ioctl call (SIOCATMARK). =item $* is no longer supported (S deprecated, syntax) The special variable C<$*>, deprecated in older perls, has -been removed as of 5.9.0 and is no longer supported. You should use the -C and C regexp modifiers instead. +been removed as of 5.9.0 and is no longer supported. In previous versions of perl the use of +C<$*> enabled or disabled multi-line matching within a string. + +Instead of using C<$*> you should use the C (and maybe C) regexp +modifiers. (In older versions: when C<$*> was set to a true value then all regular +expressions behaved as if they were written using C.) =item $# is no longer supported @@ -2316,9 +2348,9 @@ rules and perl was unable to guess how to make more progress. (F) You tried to unpack something that didn't comply with UTF-8 encoding rules and perl was unable to guess how to make more progress. -=item Maximal count of pending signals (%s) exceeded +=item Maximal count of pending signals (%d) exceeded -(F) Perl aborted due to a too important number of signals pending. This +(F) Perl aborted due to a too high number of signals pending. This usually indicates that your operating system tried to deliver signals too fast (with a very high priority), starving the perl process from resources it would need to reach a point where it can process signals @@ -2407,7 +2439,7 @@ can vary from one line to the next. =item Missing right brace on %s -(F) Missing right brace in C<\p{...}> or C<\P{...}>. +(F) Missing right brace in C<\x{...}>, C<\p{...}> or C<\P{...}>. =item Missing right curly or square bracket @@ -2461,7 +2493,7 @@ couldn't be created for some peculiar reason. you omitted the name of the module. Consult L for full details about C<-M> and C<-m>. -=item More than one argument to open +=item More than one argument to '%s' open (F) The C function has been asked to open multiple files. This can happen if you are trying to open a pipe to a command that takes a @@ -3404,24 +3436,6 @@ If instead you intended to match the word 'foo' at the end of the line followed by whitespace and the word 'bar' on the next line then you can use C (for example: C). -=item pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead - -(D deprecated) You have written something like this: - - sub doit - { - use attrs qw(locked); - } - -You should use the new declaration syntax instead. - - sub doit : locked - { - ... - -The C pragma is now obsolete, and is only provided for -backward-compatibility. See L. - =item Precedence problem: open %s should be open(%s) (S precedence) The old irregular construct @@ -3944,7 +3958,7 @@ a block by itself. (W unopened) You tried to use the stat() function on a filehandle that was either never opened or has since been closed. -=item Stub found while resolving method "%s" overloading "%s" +=item Stub found while resolving method "%s" overloading "%s" in package "%s" (P) Overloading resolution over @ISA tree may be broken by importation stubs. Stubs should never be implicitly created, but explicit calls to @@ -4155,18 +4169,18 @@ 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. +B<-T> option (or 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. +editing the #! line so that the B<-%c> 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. +B<-%c> option must appear on the command line: C. =item To%s: illegal mapping '%s' @@ -4187,8 +4201,15 @@ system call to call, silly dilly. =item Too late for "-%s" option (X) The #! line (or local equivalent) in a Perl script contains the -B<-M>, B<-m> or B<-C> option. This is an error because those options -are not intended for use inside scripts. Use the C pragma instead. +B<-M>, B<-m> or B<-C> option. + +In the case of B<-M> and B<-m>, this is an error because those options are +not intended for use inside scripts. Use the C pragma instead. + +The B<-C> option only works if it is specified on the command line as well +(with the same sequence of letters or numbers following). Either specify +this option on the command line, or, if your system supports it, make your +script executable and run it directly instead of passing it to perl. =item Too late to run %s block @@ -4427,10 +4448,10 @@ reserved word. It's best to put such a word in quotes, or capitalize it somehow, or insert an underbar into it. You might also declare it as a subroutine. -=item Unrecognized character %s in column %d +=item Unrecognized character %s; marked by <-- HERE after %s near column %d (F) The Perl parser has no idea what to do with the specified character -in your Perl script (or eval) at the specified column. Perhaps you tried +in your Perl script (or eval) near the specified column. Perhaps you tried to run a compressed script, a binary program, or a directory as a Perl program. =item Unrecognized escape \\%c in character class passed through in regex; marked by <-- HERE in m/%s/ @@ -4721,12 +4742,6 @@ to access the filehandle slot within a typeglob. operator. Since C always tries to match the pattern repeatedly, the C has no effect. -=item Use of implicit split to @_ is deprecated - -(D deprecated, W syntax) It makes a lot of work for the compiler when you -clobber a subroutine's argument list, so it's better if you assign the results -of a split() explicitly to an array (or list). - =item Use of inherited AUTOLOAD for non-method %s() is deprecated (D deprecated) As an (ahem) accidental feature, C subroutines