This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta tweaks on the shift.
[perl5.git] / pod / perldelta.pod
index 06e638f..6be1dcc 100644 (file)
@@ -27,7 +27,7 @@ here, but most should go in the L</Performance Enhancements> section.
 
 [ List each enhancement as a =head2 entry ]
 
-=head2 Integer shift (C<< << >> and C<< >> >>) now explicitly defined
+=head2 Integer shift (C<< << >> and C<< >> >>) now more explicitly defined
 
 Negative shifts are reverse shifts: left shift becomes right shift,
 and right shift becomes left shift.
@@ -38,7 +38,7 @@ C<use integer>, in which case the result is -1 (arithmetic shift).
 
 Until now negative shifting and overshifting have been undefined
 because they have relied on whatever the C implementation happens
-to do.  For example, for the "overshift" a common behavior C is
+to do.  For example, for the overshift a common C behavior is
 "modulo shift":
 
   1 >> 64 == 1 >> (64 % 64) == 1 >> 0 == 1  # Common C behavior.
@@ -47,8 +47,14 @@ to do.  For example, for the "overshift" a common behavior C is
 
 Now these behaviors are well-defined under Perl, regardless of what
 the underlying C implementation does.  Note, however, that you cannot
-escape the native integer width.  If you need more bits on the left shift,
-you could use the C<bigint> pragma.
+escape the native integer width, you need to know how far left you
+can go.  You can use for example:
+
+  use Config;
+  my $wordbits = $Config{uvsize} * 8;  # Or $Config{uvsize} << 3.
+
+If you need a more bits on the left shift, you can use for example
+the C<bigint> pragma, or the C<Bit::Vector> module from CPAN.
 
 =head2 Postfix dereferencing is no longer experimental