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
=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 a 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