coordinated (while 5.8.0 was still called 5.7.something).
Changes that were integrated into the 5.6.1 release are marked C<[561]>.
-Changes that also appear in 5.6.1 but have been improved since are marked
-C<[561+]>.
+Many of these changes have been further developed since 5.6.1 was released,
+those are marked C<[561+]>.
You can see the list of changes in the 5.6.1 release (both from the
5.005_03 release and the 5.6.0 release) by reading L<perl561delta>.
=item *
+In future releases, non-PerlIO aware XS modules may become completely
+unsupported. Since PerlIO is a drop-in replacement for stdio at the
+source code level, this shouldn't be that drastic a change.
+
+=item *
+
The current user-visible implementation of pseudo-hashes (the weird
use of the first array element) is deprecated starting from Perl 5.8.0
and will be removed in Perl 5.10.0, and the feature will be
=item *
+The C<exec LIST> and C<system LIST> operations will produce fatal
+errors on tainted data in some future release.
+
+=item *
+
The existing behaviour when localising tied arrays and hashes is wrong,
and will be changed in a future release, so do not rely on the existing
behaviour. See L<"Localising Tied Arrays and Hashes Is Broken">.
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 *
=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
+subroutine called C<q>). This means that for example instead of
+C<do format()> you must write C<do &format()>.
+
+=item *
+
The builtin dump() now gives an optional warning
C<dump() better written as CORE::dump()>,
meaning that by default C<dump(...)> is resolved as the builtin
=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]
In other taint news, the C<exec LIST> and C<system LIST> have now been
considered too risky (think C<exec @ARGV>: it can start any program
-with any arguments), and now the said forms cause a warning.
-You should carefully launder the arguments to guarantee their
-validity. In future releases of Perl the forms will become fatal
-errors so consider starting laundering now.
+with any arguments), and now the said forms cause a warning under
+lexical warnings. You should carefully launder the arguments to
+guarantee their validity. In future releases of Perl the forms will
+become fatal errors so consider starting laundering now.
=item *
Use of C</g> with C<split> elicits C<Use of /g modifier is meaningless
in split>.
+=item *
+
+Support for the C<CLONE> special subroutine had been added.
+With ithreads, when a new thread is created, all Perl data is cloned,
+however non-Perl data cannot be cloned automatically. In C<CLONE> you
+can do whatever you need to do, like for example handle the cloning of
+non-Perl data, if necessary. C<CLONE> will be executed once for every
+package that has it defined or inherited. It will be called in the
+context of the new thread, so all modifications are made in the new area.
+
+See L<perlmod>
+
=back
=head1 Modules and Pragmata
as perlI<platform>:
perlaix perlamiga perlapollo perlbeos perlbs2000
- perlce perlcygwin perldgux perldos perlepoc perlhpux
- perlhurd perlmachten perlmacos perlmint perlmpeix
+ perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux
+ perlhurd perlirix perlmachten perlmacos perlmint perlmpeix
perlnetware perlos2 perlos390 perlplan9 perlqnx perlsolaris
perltru64 perluts perlvmesa perlvms perlvos perlwin32
+These documents usually detail one or more of the following subjects:
+configuring, building, testing, installing, and sometimes also using
+Perl on the said platform.
+
Eastern Asian Perl users are now welcomed in their own languages:
README.jp (Japanese), README.ko (Korean), README.cn (simplified
Chinese) and README.tw (traditional Chinese), which are written in
=item *
-All but the first argument of the IO syswrite() method are now optional.
-
-=item *
-
$AUTOLOAD, sort(), lock(), and spawning subprocesses
in multiple threads simultaneously are now thread-safe.
VMS
+See L</"Socket Extension Dynamic in VMS"> and L</"IEEE-format Floating Point
+Default on OpenVMS Alpha"> for important changes not otherwise listed here.
+
chdir() now works better despite a CRT bug; now works with MULTIPLICITY
(see INSTALL); now works with Perl's malloc.
POSIX-style signals are now emulated much better on VMS versions prior
to 7.0.
-The Socket extension is now dynamically loaded instead of being
-statically built in.
-
The C<system> function and backticks operator have improved
functionality and better error handling. [561]
threadsafe. This particular test stress tests the localtime() call to
find out whether it is threadsafe. See L<perlthrtut> for more information.
+=head2 FreeBSD built with ithreads coredumps reading large directories
+
+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
The ISO8859-15 locales may fail the locale test 117 in FreeBSD.