-MO=C falls over on package <none>
[p5sagit/p5-mst-13.2.git] / pod / perldiag.pod
index 11580f7..480ab84 100644 (file)
@@ -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<perlre>.
 
 =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<perlre>.
 
 =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<perlvms/"exec LIST">).  Somehow, this count has become scrambled, so
 Perl is making a guess and treating this C<exec> 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 <<<HERE
 shows in the regular expression about where the problem was discovered.
 
 
@@ -1708,6 +1713,16 @@ silently ignored.
 (F) Your machine apparently doesn't implement ioctl(), which is pretty
 strange for a machine that supports C.
 
+=item `%s' is not a code reference
+
+(W) The second (fourth, sixth, ...) argument of overload::constant needs
+to be a code reference. Either an anonymous subroutine, or a reference
+to a subroutine.
+
+=item `%s' is not an overloadable type
+
+(W) You tried to overload a constant type the overload package is unaware of.
+
 =item junk on end of regexp
 
 (P) The regular expression parser is confused.
@@ -1753,12 +1768,12 @@ instead on the filehandle.)
 values cannot be returned in subroutines used in lvalue context.  See
 L<perlsub/"Lvalue subroutines">.
 
-=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<foreach> loop I<VAR> when I<VAR>
+is aliased to a constant in the look I<LIST>:
+
+        $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<perlport> for more on portability concerns.
 
 See also L<perlport> 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<perlos2>.
 (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<perlre>.
 
-=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 <<<HERE
 shows in the regular expression about where the problem was discovered. See
 L<perlre>.
 
@@ -2901,16 +2933,16 @@ L<perlre>.
 (F) If the contents of a (?{...}) clause contains braces, they must balance
 for Perl to properly detect the end of the clause. See L<perlre>.
 
-=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<perlre>.
 
-=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<perlre>.
 
@@ -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<perlre>.
 
-=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<perlre>.
 
 =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<perlre>.
 
 =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<perlre>. The ===HERE=== shows in the regular expression about
+first. See L<perlre>. 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<sub {}> 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