diff options
author | Father Chrysostomos <sprout@cpan.org> | 2013-05-26 23:17:29 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2013-05-26 23:21:47 -0700 |
commit | 5a25739d1abe18a1e5510aae4a5000ad4e344b47 (patch) | |
tree | 99521ab574f41eacea0e5858d30a95463d115aa0 /pod/perldiag.pod | |
parent | d4fe7078a76a840219d82abc177ab89fd234b154 (diff) | |
download | perl-5a25739d1abe18a1e5510aae4a5000ad4e344b47.tar.gz |
perldiag: more alphabetisation
Diffstat (limited to 'pod/perldiag.pod')
-rw-r--r-- | pod/perldiag.pod | 268 |
1 files changed, 134 insertions, 134 deletions
diff --git a/pod/perldiag.pod b/pod/perldiag.pod index e4c4704053..2edb2158a0 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -555,17 +555,17 @@ if the pattern delimiters are C<{}>. (P) Perl detected an attempt to copy an internal value that is not copiable. +=item Bizarre SvTYPE [%d] + +(P) When starting a new thread or return values from a thread, Perl +encountered an invalid data type. + =item Buffer overflow in prime_env_iter: %s (W internal) A warning peculiar to VMS. While Perl was preparing to iterate over %ENV, it encountered a logical name or symbol definition which was too long, so it was truncated to the string shown. -=item Bizarre SvTYPE [%d] - -(P) When starting a new thread or return values from a thread, Perl -encountered an invalid data type. - =item Callback called exit (F) A subroutine invoked from an external package via call_sv() @@ -882,17 +882,17 @@ a block, except that it isn't a proper block. This usually occurs if you tried to jump out of a sort() block or subroutine, which is a no-no. See L<perlfunc/goto>. +=item Can't goto subroutine from an eval-%s + +(F) The "goto subroutine" call can't be used to jump out of an eval +"string" or block. + =item Can't goto subroutine from a sort sub (or similar callback) (F) The "goto subroutine" call can't be used to jump out of the comparison sub for a sort(), or from a similar callback (such as the reduce() function in List::Util). -=item Can't goto subroutine from an eval-%s - -(F) The "goto subroutine" call can't be used to jump out of an eval -"string" or block. - =item Can't goto subroutine outside a subroutine (F) The deeply magical "goto subroutine" call can only replace one @@ -1333,18 +1333,6 @@ and so on) and not for Unicode characters, so Perl behaved as if you meant If you actually want to pack Unicode codepoints, use the C<"U"> format instead. -=item Character in 'W' format wrapped in pack - -(W pack) You said - - pack("U0W", $x) - -where $x is either less than 0 or more than 255. However, C<U0>-mode -expects all values to fall in the interval [0, 255], so Perl behaved -as if you meant: - - pack("U0W", $x & 255) - =item Character in 'c' format wrapped in pack (W pack) You said @@ -1372,6 +1360,18 @@ value modulus 256 instead, as if you had provided: unpack("H", "\x{a1}") +=item Character in 'W' format wrapped in pack + +(W pack) You said + + pack("U0W", $x) + +where $x is either less than 0 or more than 255. However, C<U0>-mode +expects all values to fall in the interval [0, 255], so Perl behaved +as if you meant: + + pack("U0W", $x & 255) + =item Character(s) in '%c' format wrapped in pack (W pack) You tried something like @@ -1415,15 +1415,15 @@ characters. (F) Creating a new thread inside the C<s///> operator is not supported. -=item close() on unopened filehandle %s - -(W unopened) You tried to close a filehandle that was never opened. - =item closedir() attempted on invalid dirhandle %s (W io) The dirhandle you tried to close is either closed or not really a dirhandle. Check your control flow. +=item close() on unopened filehandle %s + +(W unopened) You tried to close a filehandle that was never opened. + =item Closure prototype called (F) If a closure has attributes, the subroutine passed to an attribute @@ -1435,11 +1435,11 @@ This subroutine cannot be called. (F) You had a (sub-)template that ends with a '/'. There must be another template code following the slash. See L<perlfunc/pack>. -=item Code point 0x%X is not Unicode, may not be portable - =item Code point 0x%X is not Unicode, all \p{} matches fail; all \P{} matches succeed +=item Code point 0x%X is not Unicode, may not be portable + (S utf8, non_unicode) You had a code point above the Unicode maximum of U+10FFFF. @@ -1537,13 +1537,6 @@ L<charnames/CUSTOM TRANSLATORS>) returned an undefined value. overloaded constant. Perhaps you forgot to load the corresponding L<overload> pragma?. -=item Constant(%s) unknown - -(F) The parser found inconsistencies either while attempting to define -an overloaded constant, or when trying to find the character name -specified in the C<\N{...}> escape. Perhaps you forgot to load the -corresponding L<overload> pragma?. - =item Constant is not %s reference (F) A constant value (perhaps declared using the C<use constant> pragma) @@ -1564,6 +1557,13 @@ for commentary and workarounds. for inlining. See L<perlsub/"Constant Functions"> for commentary and workarounds. +=item Constant(%s) unknown + +(F) The parser found inconsistencies either while attempting +to define an overloaded constant, or when trying to find the +character name specified in the C<\N{...}> escape. Perhaps you +forgot to load the corresponding L<overload> pragma?. + =item Copy method did not return a reference (F) The method which overloads "=" is buggy. See @@ -2136,11 +2136,6 @@ unspecified destination. See L<perlfunc/goto>. the indicated subroutine hasn't been defined, or if it was, it has since been undefined. -=item ()-group starts with a count - -(F) A ()-group started with a count. A count is supposed to follow -something: a template character or a ()-group. See L<perlfunc/pack>. - =item Group name must start with a non-digit word character in regex; marked by <-- HERE in m/%s/ @@ -2148,6 +2143,11 @@ something: a template character or a ()-group. See L<perlfunc/pack>. they must start with a non-digit word character. A common cause of this error is using (?&0) instead of (?0). See L<perlre>. +=item ()-group starts with a count + +(F) A ()-group started with a count. A count is supposed to follow +something: a template character or a ()-group. See L<perlfunc/pack>. + =item %s had compilation errors. (F) The final summary message when a C<perl -c> fails. @@ -2174,16 +2174,6 @@ Further error messages would likely be uninformative. (4294967295) and therefore non-portable between systems. See L<perlport> for more on portability concerns. -=item -i used with no filenames on the command line, reading from STDIN - -(S inplace) The C<-i> option was passed on the command line, indicating -that the script is intended to edit files inplace, but no files were -given. This is usually a mistake, since editing STDIN inplace doesn't -make sense, and can be confusing because it can make perl look like -it is hanging when it is really just trying to read from STDIN. You -should either pass a filename to edit, or remove C<-i> from the command -line. See L<perlrun> for more details. - =item Identifier too long (F) Perl limits identifiers (names for variables, functions, etc.) to @@ -2459,17 +2449,17 @@ by Perl or by a user-supplied handler. See L<attributes>. (F) The indicated attributes for a subroutine or variable were not recognized by Perl or by a user-supplied handler. See L<attributes>. -=item Invalid character in \N{...}; marked by <-- HERE in \N{%s} - -(F) Only certain characters are valid for character names. The -indicated one isn't. See L<charnames/CUSTOM ALIASES>. - =item Invalid character in charnames alias definition; marked by <-- HERE in '%s (F) You tried to create a custom alias for a character name, with the C<:alias> option to C<use charnames> and the specified character in the indicated name isn't valid. See L<charnames/CUSTOM ALIASES>. +=item Invalid character in \N{...}; marked by <-- HERE in \N{%s} + +(F) Only certain characters are valid for character names. The +indicated one isn't. See L<charnames/CUSTOM ALIASES>. + =item Invalid conversion in %s: "%s" (W printf) Perl does not understand the given format conversion. See @@ -2643,6 +2633,16 @@ an anonymous subroutine, or a reference to a subroutine. (W overload) You tried to overload a constant type the overload package is unaware of. +=item -i used with no filenames on the command line, reading from STDIN + +(S inplace) The C<-i> option was passed on the command line, indicating +that the script is intended to edit files in place, but no files were +given. This is usually a mistake, since editing STDIN in place doesn't +make sense, and can be confusing because it can make perl look like +it is hanging when it is really just trying to read from STDIN. You +should either pass a filename to edit, or remove C<-i> from the command +line. See L<perlrun> for more details. + =item Junk on end of regexp in regex m/%s/ (P) The regular expression parser is confused. @@ -3057,6 +3057,14 @@ See L<perlfunc/pack>. (F) Lexically scoped subroutines are not yet implemented. Don't try that yet. +=item "my %s" used in sort comparison + +(W syntax) The package variables $a and $b are used for sort comparisons. +You used $a or $b in as an operand to the C<< <=> >> or C<cmp> operator inside a +sort comparison block, and the variable had earlier been declared as a +lexical variable. Either qualify the sort variable with the package +name, or rename the lexical variable. + =item "my" variable %s can't be in a package (F) Lexically scoped variables aren't in a package, so it doesn't make @@ -3075,45 +3083,6 @@ NOTE: This warning detects symbols that have been used only once so $c, @c, the same; if a program uses $c only once but also uses any of the others it will not trigger this warning. -=item \N in a character class must be a named character: \N{...} in regex; -marked by <-- HERE in m/%s/ - -(F) The new (5.12) meaning of C<\N> as C<[^\n]> is not valid in a bracketed -character class, for the same reason that C<.> in a character class loses -its specialness: it matches almost everything, which is probably not -what you want. - -=item \N{NAME} must be resolved by the lexer in regex; marked by <-- HERE in m/%s/ - -(F) When compiling a regex pattern, an unresolved named character or -sequence was encountered. This can happen in any of several ways that -bypass the lexer, such as using single-quotish context, or an extra -backslash in double-quotish: - - $re = '\N{SPACE}'; # Wrong! - $re = "\\N{SPACE}"; # Wrong! - /$re/; - -Instead, use double-quotes with a single backslash: - - $re = "\N{SPACE}"; # ok - /$re/; - -The lexer can be bypassed as well by creating the pattern from smaller -components: - - $re = '\N'; - /${re}{SPACE}/; # Wrong! - -It's not a good idea to split a construct in the middle like this, and it -doesn't work here. Instead use the solution above. - -Finally, the message also can happen under the C</x> regex modifier when the -C<\N> is separated by spaces from the C<{>, in which case, remove the spaces. - - /\N {SPACE}/x; # Wrong! - /\N{SPACE}/x; # ok - =item Need exactly 3 octal digits in regex; marked by <-- HERE in m/%s/ (F) Within S<C<(?[ ])>>, all constants interpreted as octal need to be @@ -3168,6 +3137,45 @@ scope before it could possibly have been used. real method in a real package, and it could not find such a context. See L<mro>. +=item \N in a character class must be a named character: \N{...} in regex; +marked by <-- HERE in m/%s/ + +(F) The new (5.12) meaning of C<\N> as C<[^\n]> is not valid in +a bracketed character class, for the same reason that C<.> in +a character class loses its specialness: it matches almost +everything, which is probably not what you want. + +=item \N{NAME} must be resolved by the lexer in regex; marked by <-- HERE in m/%s/ + +(F) When compiling a regex pattern, an unresolved named character or +sequence was encountered. This can happen in any of several ways that +bypass the lexer, such as using single-quotish context, or an extra +backslash in double-quotish: + + $re = '\N{SPACE}'; # Wrong! + $re = "\\N{SPACE}"; # Wrong! + /$re/; + +Instead, use double-quotes with a single backslash: + + $re = "\N{SPACE}"; # ok + /$re/; + +The lexer can be bypassed as well by creating the pattern from smaller +components: + + $re = '\N'; + /${re}{SPACE}/; # Wrong! + +It's not a good idea to split a construct in the middle like this, and +it doesn't work here. Instead use the solution above. + +Finally, the message also can happen under the C</x> regex modifier when the +C<\N> is separated by spaces from the C<{>, in which case, remove the spaces. + + /\N {SPACE}/x; # Wrong! + /\N{SPACE}/x; # ok + =item No %s allowed while running setuid (F) Certain operations are deemed to be too insecure for a setuid or @@ -3322,6 +3330,11 @@ your system. (F) Configure didn't find anything resembling the setreuid() call for your system. +=item No such class %s + +(F) You provided a class qualifier in a "my", "our" or "state" +declaration, but this class doesn't exist at this point in your program. + =item No such class field "%s" in variable %s of type %s (F) You tried to access a key from a hash through the indicated typed @@ -3329,11 +3342,6 @@ variable but that key is not allowed by the package of the same type. The indicated package has restricted the set of allowed keys using the L<fields> pragma. -=item No such class %s - -(F) You provided a class qualifier in a "my", "our" or "state" -declaration, but this class doesn't exist at this point in your program. - =item No such hook: %s (F) You specified a signal hook that was not recognized by Perl. @@ -3473,14 +3481,6 @@ the meantime, try using scientific notation (e.g. "1e6" instead of a number. This happens, for example with C<\o{}>, with no number between the braces. -=item "my %s" used in sort comparison - -(W syntax) The package variables $a and $b are used for sort comparisons. -You used $a or $b in as an operand to the C<< <=> >> or C<cmp> operator inside a -sort comparison block, and the variable had earlier been declared as a -lexical variable. Either qualify the sort variable with the package -name, or rename the lexical variable. - =item Octal number > 037777777777 non-portable (W portable) The octal number you specified is larger than 2**32-1 @@ -3523,12 +3523,6 @@ call, or call a constructor from the FileHandle package. (W unopened) You tried to invoke a file test operator on a filehandle that isn't open. Check your control flow. See also L<perlfunc/-X>. -=item Strings with code points over 0xFF may not be mapped into in-memory file handles - -(W utf8) You tried to open a reference to a scalar for read or append -where the scalar contained code points over 0xFF. In-memory files -model on-disk files and can only contain bytes. - =item oops: oopsAV (S internal) An internal warning that the grammar is screwed up. @@ -3890,6 +3884,12 @@ then discovered it wasn't a subroutine or eval context. blocks, perl couldn't locate the code block that should have already been seen and compiled by perl before control passed to the regex compiler. +=item panic: strxfrm() gets absurd - a => %u, ab => %u + +(P) The interpreter's sanity check of the C function strxfrm() failed. +In your current locale the returned transformation of the string "ab" +is shorter than that of the string "a", which makes no sense. + =item panic: sv_chop %s (P) The sv_chop() routine was passed a position that is not within the @@ -3900,12 +3900,6 @@ scalar's string buffer. (P) The sv_insert() routine was told to remove more string than there was string. -=item panic: strxfrm() gets absurd - a => %u, ab => %u - -(P) The interpreter's sanity check of the C function strxfrm() failed. -In your current locale the returned transformation of the string "ab" is -shorter than that of the string "a", which makes no sense. - =item panic: top_env (P) The compiler attempted to do a goto, or something weird like that. @@ -4621,17 +4615,17 @@ Perl to use the default regular expression modifiers, and you redundantly specify a default modifier. For other causes, see L<perlre>. -=item Sequence \%s... not terminated in regex; marked by <-- HERE in m/%s/ - -(F) The regular expression expects a mandatory argument following the escape -sequence and this has been omitted or incorrectly written. - =item Sequence (?#... not terminated in regex m/%s/ (F) A regular expression comment must be terminated by a closing parenthesis. Embedded parentheses aren't allowed. See L<perlre>. +=item Sequence \%s... not terminated in regex; marked by <-- HERE in m/%s/ + +(F) The regular expression expects a mandatory argument following the escape +sequence and this has been omitted or incorrectly written. + =item Sequence (?{...}) not terminated with ')' (F) The end of the perl code contained within the {...} must be @@ -4795,12 +4789,6 @@ unless there was a failure. You probably wanted to use system() instead, which does return. To suppress this warning, put the exec() in a block by itself. -=item "state" variable %s can't be in a package - -(F) Lexically scoped variables aren't in a package, so it doesn't make -sense to try to declare one with a package qualifier on the front. Use -local() if you want to localize a package variable. - =item "state %s" used in sort comparison (W syntax) The package variables $a and $b are used for sort comparisons. @@ -4809,11 +4797,23 @@ sort comparison block, and the variable had earlier been declared as a lexical variable. Either qualify the sort variable with the package name, or rename the lexical variable. +=item "state" variable %s can't be in a package + +(F) Lexically scoped variables aren't in a package, so it doesn't make +sense to try to declare one with a package qualifier on the front. Use +local() if you want to localize a package variable. + =item stat() on unopened filehandle %s (W unopened) You tried to use the stat() function on a filehandle that was either never opened or has since been closed. +=item Strings with code points over 0xFF may not be mapped into in-memory file handles + +(W utf8) You tried to open a reference to a scalar for read or append +where the scalar contained code points over 0xFF. In-memory files +model on-disk files and can only contain bytes. + =item Stub found while resolving method "%s" overloading "%s" in package "%s" (P) Overloading resolution over @ISA tree may be broken by importation @@ -5414,10 +5414,6 @@ 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 Unknown "re" subpragma '%s' (known ones are: %s) - -(W) You tried to use an unknown subpragma of the "re" pragma. - =item Unknown regex modifier "%s" (F) Alphanumerics immediately following the closing delimiter @@ -5433,6 +5429,10 @@ this error. Likely what was meant instead was: if ($a =~ /foo/ and $bar == 3) { ... } +=item Unknown "re" subpragma '%s' (known ones are: %s) + +(W) You tried to use an unknown subpragma of the "re" pragma. + =item Unknown switch condition (?(%s in regex; marked by <-- HERE in m/%s/ (F) The condition part of a (?(condition)if-clause|else-clause) construct |