This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #90594] PATCH for 5.14.1 perlop.pod
authorTom Christiansen <tchrist@perl.com>
Thu, 19 May 2011 05:06:54 +0000 (22:06 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 19 May 2011 13:18:27 +0000 (06:18 -0700)
pod/perlop.pod

index 593a46a..469d9ae 100644 (file)
@@ -212,9 +212,15 @@ example, C<0666 & ~027> is 0640.  (See also L<Integer Arithmetic> and
 L<Bitwise String Operators>.)  Note that the width of the result is
 platform-dependent: ~0 is 32 bits wide on a 32-bit platform, but 64
 bits wide on a 64-bit platform, so if you are expecting a certain bit
-width, remember to use the & operator to mask off the excess bits.
+width, remember to use the "&" operator to mask off the excess bits.
 X<~> X<negation, binary>
 
+When complementing strings, if all characters have ordinal values under
+256, then their complements will, also.  But if they do not, all
+characters will be in either 32- or 64-bit complements, depending on your
+architecture.  So for example, C<~"\x{3B1}"> is C<"\x{FFFF_FC4E}"> on
+32-bit machines and C<"\x{FFFF_FFFF_FFFF_FC4E}"> on 64-bit machines.
+
 Unary "+" has no effect whatsoever, even on strings.  It is useful
 syntactically for separating a function name from a parenthesized expression
 that would otherwise be interpreted as the complete list of function