X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperldiag.pod;h=480ab8492d8fddeac01e8f59d4e422583fab90fe;hb=b4e944950b7e107f02268dfe7e9eaf2795323d47;hp=11580f7694e0cd2882a93089f99bd3649c55d5f8;hpb=5aa4340e488ca15127d8181ea8476af4d9a9a491;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perldiag.pod b/pod/perldiag.pod index 11580f7..480ab84 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -182,6 +182,11 @@ spots. This is now heavily deprecated. must either both be scalars or both be lists. Otherwise Perl won't know which context to supply to the right side. +=item Negative offset to vec in lvalue context + +(F) When vec is called in an lvalue context, the second argument must be +greater than or equal to zero. + =item Attempt to bless into a reference (F) The CLASSNAME argument to the bless() operator is expected to be @@ -557,10 +562,10 @@ C<-i.bak>, or some such. characters and Perl was unable to create a unique filename during inplace editing with the B<-i> switch. The file was ignored. -=item Can't do {n,m} with n > m at ===HERE=== in regex m/%s/ +=item Can't do {n,m} with n > m before << HERE in regex m/%s/ (F) Minima must be less than or equal to maxima. If you really want your -regexp to match something 0 times, just put {0}. The ===HERE=== shows in the +regexp to match something 0 times, just put {0}. The << HERE shows in the regular expression about where the problem was discovered. See L. =item Can't do setegid! @@ -1379,10 +1384,10 @@ some time before now. Check your logic flow. flock() operates on filehandles. Are you attempting to call flock() on a dirhandle by the same name? -=item Quantifier follows nothing at ===HERE=== in regex m/%s/ +=item Quantifier follows nothing before << HERE in regex m/%s/ (F) You started a regular expression with a quantifier. Backslash it if you -meant it literally. The ===HERE=== shows in the regular expression about where the +meant it literally. The << HERE shows in the regular expression about where the problem was discovered. See L. =item Format not terminated @@ -1629,10 +1634,10 @@ transparently promotes all numbers to a floating point representation internally--subject to loss of precision errors in subsequent operations. -=item Internal disaster at ===HERE=== in regex m/%s/ +=item Internal disaster before << HERE in regex m/%s/ (P) Something went badly wrong in the regular expression parser. -The ===HERE=== shows in the regular expression about where the problem was +The << HERE shows in the regular expression about where the problem was discovered. @@ -1645,9 +1650,9 @@ L). Somehow, this count has become scrambled, so Perl is making a guess and treating this C as a request to terminate the Perl script and execute the specified command. -=item Internal urp at ===HERE=== in regex m/%s/ +=item Internal urp before << HERE in regex m/%s/ -(P) Something went badly awry in the regular expression parser. The ===HERE=== +(P) Something went badly awry in the regular expression parser. The <<. -=item Lookbehind longer than %d not implemented at ===HERE=== in reges m/%s/ +=item Lookbehind longer than %d not implemented before << HERE in reges m/%s/ (F) There is currently a limit on the length of string which lookbehind can -handle. This restriction may be eased in a future release. The ===HERE=== shows in +handle. This restriction may be eased in a future release. The << HERE shows in the regular expression about where the problem was discovered. - + =item Malformed PERLLIB_PREFIX (F) An error peculiar to OS/2. PERLLIB_PREFIX should be of the form @@ -1865,6 +1880,14 @@ catches that. But an easy way to do the same thing is: Another way is to assign to a substr() that's off the end of the string. +Yet another way is to assign to a C loop I when I +is aliased to a constant in the look I: + + $x = 1; + foreach my $n ($x, 2) { + $n *= 2; # modifies the $x, but fails on attempt to modify the 2 + } + =item Modification of non-creatable array value attempted, %s (F) You tried to make an array value spring into existence, and the @@ -1935,10 +1958,10 @@ provided for this purpose. (F) You tried to do a read/write/send/recv operation with a buffer length that is less than 0. This is difficult to imagine. -=item Nested quantifiers at ===HERE=== in regex m/%s/ +=item Nested quantifiers before << HERE in regex m/%s/ (F) You can't quantify a quantifier without intervening parentheses. So -things like ** or +* or ?* are illegal. The ===HERE=== shows in the regular +things like ** or +* or ?* are illegal. The << HERE shows in the regular expression about where the problem was discovered. Note, however, that the minimal matching quantifiers, C<*?>, C<+?>, and @@ -2223,6 +2246,11 @@ L for more on portability concerns. See also L for writing portable code. +=item Odd number of arguments for overload::constant + +(W) The call to overload::constant contained an odd number of arguments. +The arguments should come in pairs. + =item Odd number of elements in hash assignment (W misc) You specified an odd number of elements to initialize a hash, @@ -2704,13 +2732,13 @@ in L. (S unsafe) The subroutine being declared or defined had previously been declared or defined with a different function prototype. -=item Quantifier in {,} bigger than %d at ===HERE=== in regex m/%s/ +=item Quantifier in {,} bigger than %d before << HERE in regex m/%s/ (F) There is currently a limit to the size of the min and max values of the -{min,max} construct. The ===HERE=== shows in the regular expression about where +{min,max} construct. The << HERE shows in the regular expression about where the problem was discovered. See L. -=item Quantifier unexpected on zero-length expression at ===HERE=== in regex m/%s/ +=item Quantifier unexpected on zero-length expression before << HERE in regex m/%s/ (W regexp) You applied a regular expression quantifier in a place where it makes no sense, such as on a zero-width assertion. Try putting the @@ -2778,14 +2806,14 @@ Doing so has no effect. (W internal) The internal sv_replace() function was handed a new SV with a reference count of other than 1. -=item Reference to nonexistant group at ===HERE=== in regex m/%s/ +=item Reference to nonexistent group before << HERE in regex m/%s/ (F) You used something like C<\7> in your regular expression, but there are not at least seven sets of capturing parentheses in the expression. If you wanted to have the character with value 7 inserted into the regular expression, prepend a zero to make the number at least two digits: C<\07> -The ===HERE=== shows in the regular expression about where the problem was +The << HERE shows in the regular expression about where the problem was discovered. =item regexp memory corruption @@ -2871,6 +2899,10 @@ filehandle that was either never opened or has since been closed. (F) This machine doesn't implement the select() system call. +=item Self-ties are not supported + +(F) Self-ties are not supported in the current implementation. + =item Semicolon seems to be missing (W semicolon) A nearby syntax error was probably caused by a missing @@ -2890,9 +2922,9 @@ scalar that had previously been marked as free. (W closed) The socket you're sending to got itself closed sometime before now. Check your logic flow. -=item Sequence (? incomplete at ===HERE=== mark in regex m/%s/ +=item Sequence (? incomplete before << HERE mark in regex m/%s/ -(F) A regular expression ended with an incomplete extension (?. The ===HERE=== +(F) A regular expression ended with an incomplete extension (?. The <<. @@ -2901,16 +2933,16 @@ L. (F) If the contents of a (?{...}) clause contains braces, they must balance for Perl to properly detect the end of the clause. See L. -=item Sequence (?%s...) not implemented at ===HERE=== mark in regex m/%s/ +=item Sequence (?%s...) not implemented before << HERE mark in regex m/%s/ (F) A proposed regular expression extension has the character reserved but -has not yet been written. The ===HERE=== shows in the regular expression about +has not yet been written. The << HERE shows in the regular expression about where the problem was discovered. See L. -=item Sequence (?%s...) not recognized at ===HERE=== mark in regex m/%s/ +=item Sequence (?%s...) not recognized before << HERE mark in regex m/%s/ (F) You used a regular expression extension that doesn't make sense. -The ===HERE=== shows in the regular expression about +The << HERE shows in the regular expression about where the problem was discovered. See L. @@ -3098,7 +3130,7 @@ assignment or as a subroutine argument for example). (F) Your Perl was compiled with B<-D>SETUID_SCRIPTS_ARE_SECURE_NOW, but a version of the setuid emulator somehow got run anyway. -=item Switch (?(condition)... contains too many branches at ===HERE=== in regex m/%s/ +=item Switch (?(condition)... contains too many branches before << HERE in regex m/%s/ (F) A (?(condition)if-clause|else-clause) construct can have at most two branches (the if-clause and the else-clause). If you want one or both to @@ -3107,13 +3139,13 @@ clustering parentheses: (?(condition)(?:this|that|other)|else-clause) -The ===HERE=== shows in the regular expression about where the problem was +The << HERE shows in the regular expression about where the problem was discovered. See L. -=item Switch condition not recognized at ===HERE=== in regex m/%s/ +=item Switch condition not recognized before << HERE in regex m/%s/ (F) If the argument to the (?(...)if-clause|else-clause) construct is a -number, it can be only a number. The ===HERE=== shows in the regular expression +number, it can be only a number. The << HERE shows in the regular expression about where the problem was discovered. See L. =item switching effective %s is not implemented @@ -3391,7 +3423,7 @@ representative, who probably put it there in the first place. (F) There are no byte-swapping functions for a machine with this byte order. -=item Unknown switch condition (?(%.2s at ===HERE=== in regex m/%s/ +=item Unknown switch condition (?(%.2s before << HERE in regex m/%s/ (F) The condition of a (?(condition)if-clause|else-clause) construct is not known. The condition may be lookaround (the condition is true if the @@ -3399,7 +3431,7 @@ lookaround is true), a (?{...}) construct (the condition is true if the code evaluates to a true value), or a number (the condition is true if the set of capturing parentheses named by the number is defined). -The ===HERE=== shows in the regular expression about where the problem was +The << HERE shows in the regular expression about where the problem was discovered. See L. =item Unknown open() mode '%s' @@ -3415,14 +3447,14 @@ iterating over it, and someone else stuck a message in the stream of data Perl expected. Someone's very confused, or perhaps trying to subvert Perl's population of %ENV for nefarious purposes. -=item unmatched [ at ===HERE=== mark in regex m/%s/ +=item unmatched [ before << HERE mark in regex m/%s/ (F) The brackets around a character class must match. If you wish to include a closing bracket in a character class, backslash it or put it -first. See L. The ===HERE=== shows in the regular expression about +first. See L. The << HERE shows in the regular expression about where the escape was discovered. -=item unmatched ( in regexp at ===HERE=== mark in regex m/%s/ +=item unmatched ( in regexp before << HERE mark in regex m/%s/ (F) Unbackslashed parentheses must always be balanced in regular expressions. If you're a vi user, the % key is valuable for finding the @@ -3454,12 +3486,12 @@ script, a binary program, or a directory as a Perl program. recognized by Perl inside character classes. The character was understood literally. -=item Unrecognized escape \\%c passed through at ===HERE=== in m/%s/ +=item Unrecognized escape \\%c passed through before << HERE in m/%s/ (W regexp) You used a backslash-character combination which is not recognized by Perl. This combination appears in an interpolated variable or a C<'>-delimited regular expression. The character was understood -literally. The ===HERE=== shows in the regular expression about where the escape +literally. The << HERE shows in the regular expression about where the escape was discovered. @@ -3748,10 +3780,10 @@ anonymous, using the C syntax. When inner anonymous subs that reference variables in outer subroutines are called or referenced, they are automatically rebound to the current values of such variables. -=item Variable length lookbehind not implemented at ===HERE=== in regex m/%s/ +=item Variable length lookbehind not implemented before << HERE in regex m/%s/ (F) Lookbehind is allowed only for subexpressions whose length is fixed and -known at compile time. The ===HERE=== shows in the regular expression about where +known at compile time. The << HERE shows in the regular expression about where the problem was discovered. =item Version number must be a constant number @@ -3790,6 +3822,10 @@ but in actual fact, you got So put in parentheses to say what you really mean. +=item Wide character in %s + +(F) Perl met a wide character (>255) when it wasn't expecting one. + =item write() on closed filehandle %s (W closed) The filehandle you're writing to got itself closed sometime