=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 *
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 *
+
+Previous versions of perl and some readings of some sections of Camel III
+implied that the 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> layer (or "discipline", to use the
+Camel book's older terminology) 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 *
-The C<exec LIST> and C<system LIST> will become fatal errors
-under tainting in some future release.
+The C<exec LIST> and C<system LIST> operations will produce fatal
+errors on tainted data in some future release.
=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" :
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 layer
+(see L<open>) are marked as UTF-8. (This feature, like other new
+features that combine Unicode and I/O, work only if you are using
+PerlIO, but that's the default.)
+
+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 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 *
+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
=item *
-C<Attribute::Handlers> allows a class to define attribute handlers.
+C<Attribute::Handlers>, originally by Damian Conway and now maintained
+by Arthur Bergman, allows a class to define attribute handlers.
package MyPack;
use Attribute::Handlers;
NOTE: the C<MD5> backward compatibility module is deliberately not
included since its further use is discouraged.
+See also L<PerlIO::via::QuotedPrint>.
+
=item *
C<Encode>, originally by Nick Ing-Simmons and now maintained by Dan
print $encoded, "\n"; # "Smiley in Unicode: =263A"
-MIME::QuotedPrint has been enhanced to provide the basic methods
-necessary to use it with PerlIO::Via as in :
-
- use MIME::QuotedPrint;
- open($fh,">Via(MIME::QuotedPrint)",$path);
-
-See L<MIME::QuotedPrint>.
+See also L<PerlIO::via::QuotedPrint>.
=item *
=item *
-C<open> is a new pragma for setting the default I/O disciplines
+C<open> is a new pragma for setting the default I/O layers
for open().
=item *
-C<PerlIO::Scalar>, by Nick Ing-Simmons, provides the implementation
+C<PerlIO::scalar>, by Nick Ing-Simmons, provides the implementation
of IO to "in memory" Perl scalars as discussed above. It also serves
as an example of a loadable PerlIO layer. Other future possibilities
-include PerlIO::Array and PerlIO::Code. See L<PerlIO::Scalar>.
+include PerlIO::Array and PerlIO::Code. See L<PerlIO::scalar>.
=item *
-C<PerlIO::Via>, by Nick Ing-Simmons, acts as a PerlIO layer and wraps
+C<PerlIO::via>, by Nick Ing-Simmons, acts as a PerlIO layer and wraps
PerlIO layer functionality provided by a class (typically implemented
-in perl code).
+in Perl code).
- use MIME::QuotedPrint;
- open($fh,">Via(MIME::QuotedPrint)",$path);
+=item *
-This will automatically convert everything output to C<$fh>
-to Quoted-Printable. See L<PerlIO::Via>.
+C<PerlIO::via::QuotedPrint>, by Elizabeth Mattijsen, is an example
+of a C<PerlIO::via> class:
+
+ use PerlIO::via::QuotedPrint;
+ open($fh,">:via(QuotedPrint)",$path);
+
+This will automatically convert everything output to C<$fh> to
+Quoted-Printable. See L<PerlIO::via> and L<PerlIO::via::QuotedPrint>.
=item *
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 *
+C<XS::APItest>, by Tim Jenness, is a test extension that exercises XS
+APIs. Currently only C<printf()> is tested: how to output various
+basic data types from XS.
+
+=item *
+
C<XS::Typemap>, by Tim Jenness, is a test extension that exercises
XS typemaps. Nothing gets installed, but the code is worth studying
for extension writers.
=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.
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
=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 *
=item *
-Several debugger fixes: exit code now reflects the script exit code,
-condition C<"0"> now treated correctly, the C<d> command now checks
-line number, C<$.> no longer gets corrupted, and all debugger output
-now goes correctly to the socket if RemotePort is set. [561]
-
-=item *
-
Perl 5.6.0 could emit spurious warnings about redefinition of
dl_error() when statically building extensions into perl.
This has been corrected. [561]
=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.
File access tests now use current process privileges rather than the
user's default privileges, which could sometimes result in a mismatch
-between reported access and actual access.
+between reported access and actual access. This improvement is only
+available on VMS v6.0 and later.
There is a new C<kill> implementation based on C<sys$sigprc> that allows
older VMS systems (pre-7.0) to use C<kill> to send signals rather than
=item *
-accept() no longer leaks memory. [561]
+Signal handling now works better than it used to. It is now implemented
+using a Windows message loop, and is therefore less prone to random
+crashes.
=item *
-Borland C++ v5.5 is now a supported compiler that can build Perl.
-However, the generated binaries continue to be incompatible with those
-generated by the other supported compilers (GCC and Visual C++). [561]
+fork() emulation is now more robust, but still continues to have a few
+esoteric bugs and caveats. See L<perlfork> for details. [561+]
+
+=item *
+
+A failed (pseudo)fork now returns undef and sets errno to EAGAIN. [561]
+
+=item *
+
+The following modules now work on Windows:
+
+ ExtUtils::Embed [561]
+ IO::Pipe
+ IO::Poll
+ Net::Ping
+
+=item *
+
+IO::File::new_tmpfile() is no longer limited to 32767 invocations
+per-process.
=item *
=item *
-Duping socket handles with open(F, ">&MYSOCK") now works under Windows
-9x. [561]
+Compiling perl using the 64-bit Platform SDK tools is now supported.
=item *
-New %ENV entries now propagate to subprocesses. [561]
+The Win32::SetChildShowWindow() builtin can be used to control the
+visibility of windows created by child processes. See L<Win32> for
+details.
=item *
-Current directory entries in %ENV are now correctly propagated to child
-processes. [561]
+Non-blocking waits for child processes (or pseudo-processes) are
+supported via C<waitpid($pid, &POSIX::WNOHANG)>.
=item *
-$ENV{LIB} now used to search for libs under Visual C.
+The behavior of system() with multiple arguments has been rationalized.
+Each unquoted argument will be automatically quoted to protect whitespace,
+and any existing whitespace in the arguments will be preserved. This
+improves the portability of system(@args) by avoiding the need for
+Windows C<cmd> shell specific quoting in perl programs.
+
+Note that this means that some scripts that may have relied on earlier
+buggy behavior may no longer work correctly. For example,
+C<system("nmake /nologo", @args)> will now attempt to run the file
+C<nmake /nologo> and will fail when such a file isn't found.
+On the other hand, perl will now execute code such as
+C<system("c:/Program Files/MyApp/foo.exe", @args)> correctly.
=item *
-fork() emulation has been improved in various ways, but still continues
-to be experimental. See L<perlfork> for known bugs and caveats. [561+]
+The perl header files no longer suppress common warnings from the
+Microsoft Visual C++ compiler. This means that additional warnings may
+now show up when compiling XS code.
=item *
-A failed (pseudo)fork now returns undef and sets errno to EAGAIN.
+Borland C++ v5.5 is now a supported compiler that can build Perl.
+However, the generated binaries continue to be incompatible with those
+generated by the other supported compilers (GCC and Visual C++). [561]
=item *
-Win32::GetCwd() correctly returns C:\ instead of C: when at the drive root.
-Other bugs in chdir() and Cwd::cwd() have also been fixed. [561]
+Duping socket handles with open(F, ">&MYSOCK") now works under Windows 9x.
+[561]
=item *
-HTML files will be installed in c:\perl\html instead of c:\perl\lib\pod\html
+Current directory entries in %ENV are now correctly propagated to child
+processes. [561]
=item *
-The makefiles now provide a single switch to bulk-enable all the
-features enabled in ActiveState ActivePerl (a popular Win32 binary
-distribution). [561]
+New %ENV entries now propagate to subprocesses. [561]
=item *
-Allow REG_EXPAND_SZ keys in the registry.
+Win32::GetCwd() correctly returns C:\ instead of C: when at the drive root.
+Other bugs in chdir() and Cwd::cwd() have also been fixed. [561]
=item *
-Can now send() from all threads, not just the first one. [561]
+The makefiles now default to the features enabled in ActiveState ActivePerl
+(a popular Win32 binary distribution). [561]
=item *
-ExtUtils::MakeMaker now uses $ENV{LIB} to search for libraries.
+HTML files will now be installed in c:\perl\html instead of
+c:\perl\lib\pod\html
=item *
-Fake signal handling reenabled, bugs and all.
+REG_EXPAND_SZ keys are now allowed in registry settings used by perl. [561]
=item *
-%SIG has been enabled under USE_ITHREADS, but its use is completely
-unsupported under all configurations. [561]
+Can now send() from all threads, not just the first one. [561]
+
+=item *
+
+ExtUtils::MakeMaker now uses $ENV{LIB} to search for libraries. [561]
=item *
Less stack reserved per thread so that more threads can run
-concurrently. (Still 16M per thread.)
+concurrently. (Still 16M per thread.) [561]
=item *
=item *
-Non-blocking waits for child processes (or pseudo-processes) are
-supported via C<waitpid($pid, &POSIX::WNOHANG)>.
-
-=item *
-
-Win64 compilation is now supported.
-
-=item *
-
-winsock handle leak fixed. [561]
+A socket handle leak in accept() has been fixed. [561]
=back
=item *
+Several debugger fixes: exit code now reflects the script exit code,
+condition C<"0"> now treated correctly, the C<d> command now checks
+line number, C<$.> no longer gets corrupted, and all debugger output
+now goes correctly to the socket if RemotePort is set. [561]
+
+=item *
+
The debugger (perl5db.pl) has been modified to present a more
consistent commands interface, via (CommandSet=580). perl5db.t was
also added to test the changes, and as a placeholder for further tests.
=head1 Security Vulnerability Closed [561]
(This change was already made in 5.7.0 but bears repeating here.)
+(5.7.0 came out before 5.6.1: the development branch 5.7 released
+earlier than the maintenance branch 5.6)
A potential security vulnerability in the optional suidperl component
of Perl was identified in August 2000. suidperl is neither built nor
=head1 New Tests
-Several new tests have been added, especially for the F<lib> and F<ext>
-subsections. There are now about 65 000 individual tests (spread over
-about 700 test scripts), in the regression suite (5.6.1 has about
-11700 tests, in 258 test scripts) Many of the new tests are of course
-introduced by the new modules, but still in general Perl is now more
-thoroughly tested.
+Several new tests have been added, especially for the F<lib> and
+F<ext> subsections. There are now about 69 000 individual tests
+(spread over about 700 test scripts), in the regression suite (5.6.1
+has about 11 700 tests, in 258 test scripts) The exact numbers depend
+on the platform and Perl configuration used. Many of the new tests
+are of course introduced by the new modules, but still in general Perl
+is now more thoroughly tested.
Because of the large number of tests, running the regression suite
will take considerably longer time than it used to: expect the suite
t/op/lfs............................FAILED at test 17
t/op/magic..........................FAILED at test 24
+ ext/Fcntl/t/syslfs..................FAILED at test 17
+ ext/File/Glob/t/basic...............FAILED at test 3
ext/POSIX/t/sigaction...............FAILED at test 13
ext/POSIX/t/waitpid.................FAILED at test 1
This is known problem with Cygwin, and a workaround is
detailed in here: http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html
+=head2 Cygwin ndbm tests fail on FAT
+
+One can build but not install (or test the build of) the NDBM_File
+on FAT filesystems. Installation (or build) on NTFS works fine.
+
=head2 ext/threads/t/libc
If this test fails, it indicates that your libc (C library) is not
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
(in this particular test, the localtime() call is found to be
threadunsafe.)
+=head2 OS/2 Test Failures
+
+The following tests are known to fail on OS/2 (for clarity
+only the failures are shown, not the full error messages):
+
+ t/io/utf8............................FAILED at test 19
+ t/op/grent...........................FAILED at test 2
+ t/op/pwent...........................FAILED at test 1
+ t/lib/os2_base.......................FAILED at test 13
+ t/lib/os2_process....................FAILED at test 10
+ t/lib/os2_process_kid................FAILED at test 10
+ t/lib/rx_cmprt.......................FAILED at test 16
+ ext/DB_File/t/db-btree...............FAILED at test 0
+ ext/DB_File/t/db-hash................FAILED at test 0
+ ext/DB_File/t/db-recno...............FAILED at test 0
+ lib/ExtUtils/t/basic.................FAILED at test 14
+ lib/ExtUtils/t/Constant..............FAILED at test 4
+ lib/Memoize/t/errors.................FAILED at test 4
+
=head2 op/sprintf tests 91, 129, and 130
The op/sprintf tests 91, 129, and 130 are known to fail on some platforms.
experience failures (the test core dumping) in lib/locale.t.
The suggested cure is to upgrade your Solaris.
+=head2 Solaris x86 Fails Tests With -Duse64bitint
+
+The following tests are known to fail in Solaris x86 with Perl
+configured to use 64 bit integers:
+
+ ext/Data/Dumper/t/dumper.............FAILED at test 268
+ ext/Devel/Peek/Peek..................FAILED at test 7
+
=head2 SUPER-UX (NEC SX)
The following tests are known to fail on SUPER-UX:
signedness handling of the C compiler, as do the 64bitint, arith, and pow
failures. Most of the rest point at problems with SysV IPC.
+=head2 PDL failing some tests
+
+Use PDL 2.3.4 or later.
+
=head2 Term::ReadKey not working on Win32
Use Term::ReadKey 2.20 or later.
./perl -Ilib ext/Time/HiRes/HiRes.t
-=head2 UNICOS
+=head2 Unicode in package/class and subroutine names does not work
- ../lib/Math/Trig.t 26 1 3.85% 25
- ../lib/warnings.t 470 1 0.21% 429
+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.
-The Trig.t failure is caused by the slighly differing (from IEEE)
-floating point implementation of UNICOS. The warnings.t failure is
-also related: the test assumes a certain floating point output format;
-this assumption fails in UNICOS.
+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
---------------------------------------------------------------------------
../ext/Data/Dumper/t/dumper.t 357 8 2.24% 311 314 325 327
331 333 337 339
+ ../ext/IO/lib/IO/t/io_pipe.t 10 2 20.00% 1 3
../ext/IO/lib/IO/t/io_unix.t 5 4 80.00% 2-5
../ext/Storable/t/downgrade.t 12 3072 169 12 7.10% 14-15 46-47 78-79
110-111 150 161
../lib/ExtUtils/t/Constant.t 121 30976 48 48 100.00% 1-48
../lib/ExtUtils/t/Embed.t 9 9 100.00% 1-9
- op/pat.t 910 7 0.77% 665 776 785 832-
- 834 845
+ ../lib/strict.t 97 67 69.07% 2-10 15-17 20-21
+ ...
+ ../lib/warnings.t 478 404 84.52% 1-11 13-20 22 24-
+ ...
+ op/anonsub.t 5 5 100.00% 1-5
+ op/closure.t 171 150 87.72% 22-171
+ op/fork.t 18 18 100.00% 1-18
+ op/goto.t 22 1 4.55% 3
+ op/magic.t 0 13 46 44 95.65% 3-46
+ op/pat.t 0 11 922 283 30.69% 640-922
+ op/runlevel.t 21 20 95.24% 1-14 16-21
+ op/split.t 46 1 2.17% 11
op/sprintf.t 224 3 1.34% 98 100 136
+ op/stat.t 73 2 2.74% 41-42
+ op/subst.t 122 2 1.64% 91-92
+ op/subst_wamp.t 122 2 1.64% 91-92
+ op/taint.t 203 4 1.97% 1 3 31 37
op/tr.t 97 5 5.15% 63 71-74
+ run/fresh_perl.t 97 1 1.03% 11
+ run/runenv.t 11 11 100.00% 1-11
uni/fold.t 780 6 0.77% 61 169 196 661
710-711
The failures in dumper.t and downgrade.t are problems in the tests,
-those in io_unix and sprintf are problems in the USS (UDP sockets
-and printf formats). The pat, tr, and fold failures are genuine Perl
+those in io_unix and sprintf are problems in the USS (UDP sockets and
+printf formats). The pat, tr, and fold failures are genuine Perl
problems caused by EBCDIC (and in the pat and fold cases, combining
-that with Unicode). The Constant and Embed are probably problems
-in the tests (since they test Perl's ability to build extensions,
-and that seems to be working reasonably well.)
+that with Unicode). The Constant and Embed are probably problems in
+the tests (since they test Perl's ability to build extensions, and
+that seems to be working reasonably well.) The rest of the failures
+are mostly problems in Perl trying to show a warning through STDERR
+but the test harness for some as of yet unknown reason failing to see
+the warning (especially the numerous warnings.t failures are of this
+kind).
=head2 Localising Tied Arrays and Hashes Is Broken
Self-tying of scalars and IO thingies works.
+=head2 Tied/Magical Array/Hash Elements Do Not Autovivify
+
+For normal arrays C<$foo = \$bar[1]> will assign C<undef> to
+C<$bar[1]> (assuming that it didn't exist before), but for
+tied/magical arrays and hashes such autovivification does not happen
+because there is currently no way to catch the reference creation.
+The same problem affects slicing over non-existent indices/keys of
+a tied/magical array/hash.
+
=head2 Building Extensions Can Fail Because Of Largefiles
Some extensions like mod_perl are known to have issues with
for 5.8.0. Perl 5.6.1 still works for AmigaOS (as does the the 5.7.2
development release).
+The C<PerlIO::Scalar> and C<PerlIO::Via> (capitalised) were renamed as
+C<PerlIO::scalar> and C<PerlIO::via> (all lowercase) just before 5.8.0.
+The main rationale was to have all core IO layers to have all
+lowercase names. The "plugins" are named as usual, for example
+C<PerlIO::via::QuotedPrint>.
+
=head1 Reporting Bugs
If you find what you think is a bug, you might check the articles