This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update 'say' docs to better represent reality
[perl5.git] / pod / perl5180delta.pod
index aa244dc..79d2af3 100644 (file)
@@ -41,7 +41,7 @@ Since some features (like C<~~> or C<my $_>) now emit experimental warnings,
 and you may want to disable them in code that is also run on perls that do not
 recognize these warning categories, consider using the C<if> pragma like this:
 
-    no if $] >= 5.018, 'warnings', "experimental::feature_name";
+    no if $] >= 5.018, warnings => "experimental::feature_name";
 
 Existing experimental features may begin emitting these warnings, too.  Please
 consult L<perlexperiment> for information on which features are considered
@@ -219,7 +219,7 @@ empty string.
 Several more built-in functions have been added as subroutines to the
 CORE:: namespace - namely, those non-overridable keywords that can be
 implemented without custom parsers: C<defined>, C<delete>, C<exists>,
-C<glob>, C<pos>, C<protoytpe>, C<scalar>, C<split>, C<study>, and C<undef>.
+C<glob>, C<pos>, C<prototype>, C<scalar>, C<split>, C<study>, and C<undef>.
 
 As some of these have prototypes, C<prototype('CORE::...')> has been
 changed to not make a distinction between overridable and non-overridable
@@ -405,7 +405,7 @@ is not recommended.
 Warnings will now be issued when the parser sees C<~~>, C<given>, or C<when>.
 To disable these warnings, you can add this line to the appropriate scope:
 
-  no if $] >= 5.018, "experimental::smartmatch";
+  no if $] >= 5.018, warnings => "experimental::smartmatch";
 
 Consider, though, replacing the use of these features, as they may change
 behavior again before becoming stable.
@@ -534,12 +534,16 @@ in L<perlsub/Lexical Subroutines>.
 
 =head2 Defined values stored in environment are forced to byte strings
 
-A value stored in an environment variable has always been stringified.  In this
-release, it is converted to be only a byte string.  First, it is forced to be
-only a string.  Then if the string is utf8 and the equivalent of
-C<utf8::downgrade()> works, that result is used; otherwise, the equivalent of
-C<utf8::encode()> is used, and a warning is issued about wide characters
-(L</Diagnostics>).
+A value stored in an environment variable has always been stringified when
+inherited by child processes.
+
+In this release, when assigning to C<%ENV>, values are immediately stringified,
+and converted to be only a byte string.
+
+First, it is forced to be only a string.  Then if the string is utf8 and the
+equivalent of C<utf8::downgrade()> works, that result is used; otherwise, the
+equivalent of C<utf8::encode()> is used, and a warning is issued about wide
+characters (L</Diagnostics>).
 
 =head2 C<require> dies for unreadable files
 
@@ -1015,7 +1019,7 @@ respect the other pragma when in scope.
 =item *
 
 Using any of these three pragmata would cause C<hex> and C<oct> anywhere
-else in the program to evalute their arguments in list context and prevent
+else in the program to evaluate their arguments in list context and prevent
 them from inferring $_ when called without arguments.
 
 =item *
@@ -1420,7 +1424,7 @@ the buffer or gives it a typeglob or shared hash key scalar.
 
 L<PerlIO::scalar> has been upgraded to 0.16.
 
-The buffer scalar supplied may now only contain code pounts 0xFF or
+The buffer scalar supplied may now only contain code points 0xFF or
 lower. [perl #109828]
 
 =item *
@@ -2347,11 +2351,6 @@ called from XS modules [perl #79824].
 
 =item *
 
-C<RXf_SPLIT> and C<RXf_SKIPWHITE> are no longer used.  They are now
-#defined as 0.
-
-=item *
-
 The new C<RXf_MODIFIES_VARS> flag can be set by custom regular expression
 engines to indicate that the execution of the regular expression may cause
 variables to be modified.  This lets C<s///> know to skip certain
@@ -2760,7 +2759,7 @@ The use of C<PL_stashcache>, the stash name lookup cache for method calls, has
 been restored,
 
 Commit da6b625f78f5f133 in August 2011 inadvertently broke the code that looks
-up values in C<PL_stashcache>. As it's a only cache, quite correctly everything
+up values in C<PL_stashcache>. As it's only a cache, quite correctly everything
 carried on working without it.
 
 =item *
@@ -3672,6 +3671,11 @@ set of lexical variables [perl #115742].
 C<*_{ARRAY}> returned from a subroutine no longer spontaneously
 becomes empty.
 
+=item *
+
+When using C<say> to print to a tied filehandle, the value of C<$\> is
+correctly localized, even if it was previously undef.  [perl #119927]
+
 =back
 
 =head1 Known Problems