Make a dummy OPpPAD_STATE and a dummy PL_unitcheck_save available to
[p5sagit/p5-mst-13.2.git] / pod / perlop.pod
index 4030ed6..7b84a68 100644 (file)
@@ -266,8 +266,16 @@ C<$a> minus the largest multiple of C<$b> that is not greater than
 C<$a>.  If C<$b> is negative, then C<$a % $b> is C<$a> minus the
 smallest multiple of C<$b> that is not less than C<$a> (i.e. the
 result will be less than or equal to zero).  If the operands
-C<$a> and C<$b> are floting point values, only the integer portion
-of C<$a> and C<$b> will be used in the operation.
+C<$a> and C<$b> are floating point values and the absolute value of
+C<$b> (that is C<abs($b)>) is less than C<(UV_MAX + 1)>, only
+the integer portion of C<$a> and C<$b> will be used in the operation
+(Note: here C<UV_MAX> means the maximum of the unsigned integer type).
+If the absolute value of the right operand (C<abs($b)>) is greater than
+or equal to C<(UV_MAX + 1)>, "%" computes the floating-point remainder
+C<$r> in the equation C<($r = $a - $i*$b)> where C<$i> is a certain
+integer that makes C<$r> should have the same sign as the right operand
+C<$b> (B<not> as the left operand C<$a> like C function C<fmod()>)
+and the absolute value less than that of C<$b>.
 Note that when C<use integer> is in scope, "%" gives you direct access
 to the modulus operator as implemented by your C compiler.  This
 operator is not as well defined for negative operands, but it will
@@ -438,7 +446,7 @@ argument.
 X<cmp>
 
 Binary "~~" does a smart match between its arguments. Smart matching
-is described in L<perlsyn/"Smart Matching in Detail">.
+is described in L<perlsyn/"Smart matching in detail">.
 This operator is only available if you enable the "~~" feature:
 see L<feature> for more information.
 X<~~>
@@ -1059,7 +1067,7 @@ X<m> X<operator, match>
 X<regexp, options> X<regexp> X<regex, options> X<regex>
 X</c> X</i> X</m> X</o> X</s> X</x>
 
-=item /PATTERN/cgimosx
+=item /PATTERN/cgimosxk
 
 Searches a string for a pattern match, and in scalar context returns
 true if it succeeds, false if it fails.  If no string is specified
@@ -1072,13 +1080,15 @@ is in effect.
 
 Options are:
 
-    c  Do not reset search position on a failed match when /g is in effect.
-    g  Match globally, i.e., find all occurrences.
     i  Do case-insensitive pattern matching.
     m  Treat string as multiple lines.
-    o  Compile pattern only once.
     s  Treat string as single line.
     x  Use extended regular expressions.
+    g  Match globally, i.e., find all occurrences.
+    c  Do not reset search position on a failed match when /g is in effect.
+    o  Compile pattern only once.
+    k  Keep a copy of the matched string so that ${^MATCH} and friends
+       will be defined.
 
 If "/" is the delimiter then the initial C<m> is optional.  With the C<m>
 you can use any pair of non-alphanumeric, non-whitespace characters
@@ -1441,7 +1451,7 @@ put comments into a multi-line C<qw>-string.  For this reason, the
 C<use warnings> pragma and the B<-w> switch (that is, the C<$^W> variable)
 produces warnings if the STRING contains the "," or the "#" character.
 
-=item s/PATTERN/REPLACEMENT/egimosx
+=item s/PATTERN/REPLACEMENT/egimosxk
 X<substitute> X<substitution> X<replace> X<regexp, replace>
 X<regexp, substitute> X</e> X</g> X</i> X</m> X</o> X</s> X</x>
 
@@ -1467,13 +1477,16 @@ when C<use locale> is in effect.
 
 Options are:
 
-    e  Evaluate the right side as an expression.
-    g  Replace globally, i.e., all occurrences.
     i  Do case-insensitive pattern matching.
     m  Treat string as multiple lines.
-    o  Compile pattern only once.
     s  Treat string as single line.
     x  Use extended regular expressions.
+    g  Replace globally, i.e., all occurrences.
+    o  Compile pattern only once.
+    k  Keep a copy of the original string so ${^MATCH} and friends
+       will be defined.
+    e  Evaluate the right side as an expression.
+
 
 Any non-alphanumeric, non-whitespace delimiter may replace the
 slashes.  If single quotes are used, no interpretation is done on the