=item *
-New Thread Implementation
+New IO Implementation
=item *
-Many New Modules
+New Thread Implementation
=item *
=item *
+Many New Modules
+
+=item *
+
More Extensive Regression Testing
=back
=item *
-The PerlIO C<:raw> discipline (as described in Camel III) is deprecated
-because its definition (as either the discipline version of C<binmode(FH)>
-or as the opposite of C<:crlf>) didn't really work: most importantly
-because turning off "clrfness" is not enough to make a stream truly
-binary. Instead of C<:raw> use one of the following: C<open(..., ':bytes')>,
-C<binmode(FH)>, C<sysopen()> + C<sysread()>.
+Previous versions of perl and some readings of some sections of Camel III
+implied that C<:raw> "discipline" was the inverse of C<:crlf>.
+Turning off "clrfness" is no longer enough to make a stream truly
+binary. So the PerlIO C<:raw> discipline is now formally defined as being
+equivalent to binmode(FH) - which is in turn defined as doing whatever
+is necessary to pass each byte as-is without any translation.
+In particular binmode(FH) - and hence C<:raw> - will now turn off both CRLF
+and UTF-8 translation and remove other "layers" (e.g. :encoding()) which
+would modify byte stream.
=item *
ugly, but the current implementation slows down normal array and hash
use quite noticeably. The C<fields> pragma interface will remain
available. The I<restricted hashes> interface is expected to
-be the replacement interface (see L<Hash::Util>).
+be the replacement interface (see L<Hash::Util>). If your existing
+programs depends on the underlying implementation, consider using
+L<Class::PseudoHash> from CPAN.
=item *
=item *
+If your platform supports fork(), you can use the list form of C<open>
+for pipes. For example:
+
+ open KID_PS, "-|", "ps", "aux" or die $!;
+
+forks the ps(1) command (without spawning a shell, as there are more
+than three arguments to open()), and reads its standard output via the
+C<KID_PS> filehandle. See L<perlipc>.
+
+=item *
+
File handles can be marked as accepting Perl's internal encoding of Unicode
(UTF-8 or UTF-EBCDIC depending on platform) by a pseudo layer ":utf8" :
C<Storable> gives persistence to Perl data structures by allowing the
storage and retrieval of Perl data to and from files in a fast and
compact binary format. Because in effect Storable does serialisation
-of Perl data structues, with it you can also clone deep, hierarchical
+of Perl data structures, with it you can also clone deep, hierarchical
datastructures. Storable was originally created by Raphael Manfredi,
but it is now maintained by Abhijit Menon-Sen. Storable has been
enhanced to understand the two new hash features, Unicode keys and
=item *
+ExtUtils::MakeMaker has been significantly cleaned up and fixed.
+The enhanced version has also been backported to earlier releases
+of Perl and submitted to CPAN so that the earlier releases can
+enjoy the fixes.
+
+=item *
+
+The arguments of WriteMakefile() in Makefile.PL are now checked
+for sanity much more carefully than before. This may cause new
+warnings when modules are being installed. See L<ExtUtils::MakeMaker>
+for more details.
+
+=item *
+
ExtUtils::MakeMaker now uses File::Spec internally, which hopefully
leads to better portability.
=item *
-The DYNIX/ptx platform (a.k.a. dynixptx) is supported at or near
-osvers 4.5.2.
+The DYNIX/ptx platform (also known as dynixptx) is supported at or
+near osvers 4.5.2.
=item *
This is a known bug in FreeBSD's readdir_r() (see L<perlfreebsd>
(README.freebsd)), which hopefully will be fixed in FreeBSD 4.6.
-=head2 FreeBSD Failing locale Test 117 For ISO8859-15 Locales
+=head2 FreeBSD Failing locale Test 117 For ISO 8859-15 Locales
-The ISO8859-15 locales may fail the locale test 117 in FreeBSD.
+The ISO 8859-15 locales may fail the locale test 117 in FreeBSD.
This is caused by the characters \xFF (y with diaeresis) and \xBE
(Y with diaeresis) not behaving correctly when being matched
-case-insensitively.
+case-insensitively. Apparently this problem has been fixed in
+the latest FreeBSD releases.
+( http://www.freebsd.org/cgi/query-pr.cgi?pr=34308 )
=head2 IRIX fails ext/List/Util/t/shuffle.t
./perl -Ilib ext/Time/HiRes/HiRes.t
+=head2 Unicode in package/class and subroutine names does not work
+
+One can have Unicode in identifier names, but not in package/class or
+subroutine names. While some limited functionality towards this does
+exist as of Perl 5.8.0, that is more accidental than designed; use of
+Unicode for the said purposes is unsupported.
+
+One reason of this unfinishedness is its (currently) inherent
+unportability: since both package names and subroutine names may
+need to be mapped to file and directory names, the Unicode capability
+of the filesystem becomes important-- and there unfortunately aren't
+portable answers.
+
=head2 UNICOS/mk
=over 4