X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperldelta.pod;h=aa08dce7de3c546038df7496aacb4a72aa1f778a;hb=9497474043a29ae84d941e84594160f022e3f31c;hp=f560ef9ec800f192e70505ac73e08f4a958403ac;hpb=d1ab05165b2c1c96a17271bba428eb31867a1cae;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perldelta.pod b/pod/perldelta.pod index f560ef9..aa08dce 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -28,11 +28,11 @@ Better Unicode support =item * -New Thread Implementation +New IO Implementation =item * -Many New Modules +New Thread Implementation =item * @@ -44,6 +44,10 @@ Safe Signals =item * +Many New Modules + +=item * + More Extensive Regression Testing =back @@ -228,8 +232,21 @@ 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 * + +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 * @@ -240,7 +257,9 @@ implemented differently. Not only is the current interface rather ugly, but the current implementation slows down normal array and hash use quite noticeably. The C pragma interface will remain available. The I interface is expected to -be the replacement interface (see L). +be the replacement interface (see L). If your existing +programs depends on the underlying implementation, consider using +L from CPAN. =item * @@ -280,8 +299,8 @@ release. =item * -The C and C will become fatal errors -under tainting in some future release. +The C and C operations will produce fatal +errors on tainted data in some future release. =item * @@ -323,6 +342,17 @@ of PerlIO on your architecture name. =item * +If your platform supports fork(), you can use the list form of C +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 filehandle. See L. + +=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" : @@ -332,7 +362,28 @@ 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, L, 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 +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), +your STDIN, STDOUT, STDERR handles and the default open layer +(see L) 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 and L), or you +can just use C (nice for pre-5.8.0 backward compatibility). =item * @@ -505,7 +556,7 @@ in multiple arguments.) =item * C followed by a bareword now ensures that this bareword isn't -a keyword (to avoid a bug where C tried to call +a keyword (to avoid a bug where C tried to call a subroutine called C). This means that for example instead of C you must write C. @@ -566,6 +617,12 @@ is a NaN. Previously the behaviour was unspecified. =item * +C can now have an experimental optional attribute C that +affects how global variables are shared among multiple interpreters, +see L. + +=item * + The following builtin functions are now overridable: each(), keys(), pop(), push(), shift(), splice(), unshift(). [561] @@ -626,10 +683,10 @@ This is not a substitute for -T.> In other taint news, the C and C have now been considered too risky (think C: 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 * @@ -688,6 +745,18 @@ C. Use of C with C elicits C. +=item * + +Support for the C 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 you +can do whatever you need to do, like for example handle the cloning of +non-Perl data, if necessary. C 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 + =back =head1 Modules and Pragmata @@ -698,7 +767,8 @@ in split>. =item * -C allows a class to define attribute handlers. +C, originally by Damian Conway and now maintained +by Arthur Bergman, allows a class to define attribute handlers. package MyPack; use Attribute::Handlers; @@ -762,6 +832,8 @@ RFC 1321, from Gisle Aas, has been added. See L. NOTE: the C backward compatibility module is deliberately not included since its further use is discouraged. +See also L. + =item * C, originally by Nick Ing-Simmons and now maintained by Dan @@ -920,13 +992,7 @@ in quoted-printable encoding, as defined in RFC 2045 - IVia(MIME::QuotedPrint)",$path); - -See L. +See also L. =item * @@ -935,27 +1001,32 @@ See L. =item * -C is a new pragma for setting the default I/O disciplines +C is a new pragma for setting the default I/O layers for open(). =item * -C, by Nick Ing-Simmons, provides the implementation +C, 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. +include PerlIO::Array and PerlIO::Code. See L. =item * -C, by Nick Ing-Simmons, acts as a PerlIO layer and wraps +C, 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. +C, by Elizabeth Mattijsen, is an example +of a C class: + + use PerlIO::via::QuotedPrint; + open($fh,">:via(QuotedPrint)",$path); + +This will automatically convert everything output to C<$fh> to +Quoted-Printable. See L and L. =item * @@ -983,7 +1054,7 @@ C is a new pragma for controlling the behaviour of sort(). C 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 @@ -1096,6 +1167,12 @@ Unicode normalization forms. See L. =item * +C, by Tim Jenness, is a test extension that exercises XS +APIs. Currently only C is tested: how to output various +basic data types from XS. + +=item * + C, by Tim Jenness, is a test extension that exercises XS typemaps. Nothing gets installed, but the code is worth studying for extension writers. @@ -1181,6 +1258,20 @@ C<@LAST_MATCH_END> English aliases for C<@-> and C<@+>. =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 +for more details. + +=item * + ExtUtils::MakeMaker now uses File::Spec internally, which hopefully leads to better portability. @@ -1526,8 +1617,8 @@ the installation as README.I, and after the installation as perlI: 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 @@ -1893,8 +1984,8 @@ See L. =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 * @@ -2026,13 +2117,6 @@ The order of DESTROYs has been made more predictable. =item * -Several debugger fixes: exit code now reflects the script exit code, -condition C<"0"> now treated correctly, the C 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] @@ -2287,10 +2371,6 @@ Sys::Syslog ignored the C constant. =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. @@ -2539,7 +2619,8 @@ functionality and better error handling. [561] 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 implementation based on C that allows older VMS systems (pre-7.0) to use C to send signals rather than @@ -2557,13 +2638,32 @@ Windows =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 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 * @@ -2571,71 +2671,91 @@ Better chdir() return value for a non-existent directory. =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 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. =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 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 will now attempt to run the file +C and will fail when such a file isn't found. +On the other hand, perl will now execute code such as +C correctly. =item * -fork() emulation has been improved in various ways, but still continues -to be experimental. See L 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 * @@ -2653,16 +2773,7 @@ under Windows 9x. [561] =item * -Non-blocking waits for child processes (or pseudo-processes) are -supported via C. - -=item * - -Win64 compilation is now supported. - -=item * - -winsock handle leak fixed. [561] +A socket handle leak in accept() has been fixed. [561] =back @@ -2705,6 +2816,13 @@ respectively. =item * +Several debugger fixes: exit code now reflects the script exit code, +condition C<"0"> now treated correctly, the C 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. @@ -2840,6 +2958,8 @@ There are now several profiling make targets. =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 @@ -2869,12 +2989,13 @@ such as sudo ( see http://www.courtesan.com/sudo/ ). =head1 New Tests -Several new tests have been added, especially for the F and F -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 and +F 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 @@ -2953,6 +3074,8 @@ The following tests fail on 5.8.0 Perl in BeOS Personal 5.03: 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 @@ -2965,6 +3088,11 @@ you may get an error message saying "unable to remap". 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 @@ -2976,12 +3104,14 @@ find out whether it is threadsafe. See L for more information. This is a known bug in FreeBSD's readdir_r() (see L (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 @@ -3053,6 +3183,25 @@ this is not Perl's fault-- the libc of Mac OS X is not threadsafe (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. @@ -3073,6 +3222,14 @@ In case you are still using Solaris 2.5 (aka SunOS 5.5), you may 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: @@ -3094,6 +3251,10 @@ is serious but as of yet unsolved. It points at some problems with the 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. @@ -3138,15 +3299,18 @@ In case of failure please try running them manually, for example ./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 @@ -3222,25 +3386,46 @@ tests have been added. --------------------------------------------------------------------------- ../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 @@ -3266,6 +3451,15 @@ behaviour may be fixed at a later date. 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 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 @@ -3319,6 +3513,12 @@ developers available, we could not get this fixed and tested in time for 5.8.0. Perl 5.6.1 still works for AmigaOS (as does the the 5.7.2 development release). +The C and C (capitalised) were renamed as +C and C (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. + =head1 Reporting Bugs If you find what you think is a bug, you might check the articles