Add $VERSION to Module::Build::Version
[p5sagit/p5-mst-13.2.git] / lib / overload.pm
index 35c090b..1ca22b4 100644 (file)
@@ -2,8 +2,6 @@ package overload;
 
 our $VERSION = '1.04';
 
-$overload::hint_bits = 0x20000; # HINT_LOCALIZE_HH
-
 sub nil {}
 
 sub OVERLOAD {
@@ -119,7 +117,7 @@ sub mycan {                         # Real can would leave stubs.
         num_comparison   => "< <= >  >= == !=",
         '3way_comparison'=> "<=> cmp",
         str_comparison   => "lt le gt ge eq ne",
-        binary           => "& | ^",
+        binary           => '& &= | |= ^ ^=',
         unary            => "neg ! ~",
         mutators         => '++ --',
         func             => "atan2 cos sin exp abs log sqrt int",
@@ -149,7 +147,7 @@ sub constant {
     }
     else {
         $^H{$_[0]} = $_[1];
-        $^H |= $constants{$_[0]} | $overload::hint_bits;
+        $^H |= $constants{$_[0]};
     }
     shift, shift;
   }
@@ -352,13 +350,17 @@ arrays, C<cmp> is used to compare values subject to C<use overload>.
 
 =item * I<Bit operations>
 
-    "&", "^", "|", "neg", "!", "~",
+    "&", "&=", "^", "^=", "|", "|=", "neg", "!", "~",
 
 C<neg> stands for unary minus.  If the method for C<neg> is not
 specified, it can be autogenerated using the method for
 subtraction. If the method for C<!> is not specified, it can be
 autogenerated using the methods for C<bool>, or C<"">, or C<0+>.
 
+The same remarks in L<"Arithmetic operations"> about
+assignment-variants and autogeneration apply for
+bit operations C<"&">, C<"^">, and C<"|"> as well.
+
 =item * I<Increment and decrement>
 
     "++", "--",
@@ -439,7 +441,7 @@ A computer-readable form of the above table is available in the hash
  num_comparison          => '< <= > >= == !=',
  '3way_comparison'=> '<=> cmp',
  str_comparison          => 'lt le gt ge eq ne',
- binary                  => '& | ^',
+ binary                  => '& &= | |= ^ ^=',
  unary           => 'neg ! ~',
  mutators        => '++ --',
  func            => 'atan2 cos sin exp abs log sqrt',
@@ -1105,7 +1107,7 @@ The value of $side is
 
 Note that while we obtained this value using a nice little script,
 there is no simple way to I<use> this value.  In fact this value may
-be inspected in debugger (see L<perldebug>), but ony if
+be inspected in debugger (see L<perldebug>), but only if
 C<bareStringify> B<O>ption is set, and not via C<p> command.
 
 If one attempts to print this value, then the overloaded operator