[DOC PATCH] perldebtut
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
index d14e208..4d704f5 100644 (file)
@@ -228,8 +228,8 @@ since it, in a way, falsely promised that the features could be used.
 =item *
 
 In future releases, non-PerlIO aware XS modules may become completely
-unsupported.  Since PerlIO is a drop-in replacement for stdio, this
-shouldn't be that drastic a change.
+unsupported.  Since PerlIO is a drop-in replacement for stdio at the
+source code level, this shouldn't be that drastic a change.
 
 =item *
 
@@ -332,7 +332,26 @@ Note for EBCDIC users: the pseudo layer ":utf8" is erroneously named
 for you since it's not UTF-8 what you will be getting but instead
 UTF-EBCDIC.  See L<perlunicode>, L<utf8>, and
 http://www.unicode.org/unicode/reports/tr16/ for more information.
-In future releases this naming may change.
+In future releases this naming may change.  See L<perluniintro>
+for more information about UTF-8.
+
+=item *
+
+If your environment variables (LC_ALL, LC_CTYPE, LANG, LANGUAGE) look
+like you want to use UTF-8 (any of the the variables match C</utf-?8/i>),
+your STDIN, STDOUT, STDERR handles and the default open discipline
+(see L<open>) are marked as UTF-8.
+
+Note that after this Perl really does assume that everything is UTF-8:
+for example if some input handle is not, Perl will probably very soon
+complain about the input data like this "Malformed UTF-8 ..." since
+any old eight-bit data is not legal UTF-8.
+
+Note for code authors: if you want to enable your users to use UTF-8
+as their default encoding  but in your code still have eight-bit I/O streams
+(such as images or zip files), you need to explicitly open() or binmode()
+with C<:bytes> (see L<perlfunc/open> and L<perlfunc/binmode>), or you
+can just use C<binmode(FH)> (nice for pre-5.8.0 backward compatibility).
 
 =item *
 
@@ -505,7 +524,7 @@ in multiple arguments.)
 =item *
 
 C<do> followed by a bareword now ensures that this bareword isn't
-a keyword (to avoid a bug where C<do q(foo.pl)> tried to call
+a keyword (to avoid a bug where C<do q(foo.pl)> tried to call a
 subroutine called C<q>).  This means that for example instead of
 C<do format()> you must write C<do &format()>.
 
@@ -566,6 +585,12 @@ is a NaN.  Previously the behaviour was unspecified.
 
 =item *
 
+C<our> can now have an experimental optional attribute C<unique> that
+affects how global variables are shared among multiple interpreters,
+see L<perlfunc/our>.
+
+=item *
+
 The following builtin functions are now overridable: each(), keys(),
 pop(), push(), shift(), splice(), unshift(). [561]