X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperl593delta.pod;h=04ad625411bb954adf5eecc8246a24b2f0aa5214;hb=8269e00da02a2e0f107fbb8b4a78f0c4058f3587;hp=1c0a8fb756234406ee31a95f85d4a49dc2bc27eb;hpb=86bd3ff0f72010ac13cd4d60dd1f2acb3f324f47;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perl593delta.pod b/pod/perl593delta.pod index 1c0a8fb..04ad625 100644 --- a/pod/perl593delta.pod +++ b/pod/perl593delta.pod @@ -15,34 +15,172 @@ L for the differences between 5.8.0 and 5.9.2. C<_> is now forced to be a bareword after a filetest operator. This solves a number of misparsing issues when a global C<_> subroutine is defined. -=head2 C +=head2 C -This used to report whether the C package was created. Now it's -always true, as a side-effect of a change to shrink the internal size of -hash structures. Note that using C on hashes was deprecated -anyway. To achieve the same result, you can use a symbolic reference -instead (and this is backwards-compatible): +C without arguments now defaults to C<$_>. - defined %{"foo::bar::"} +=head2 Magic goto and eval + +The construct C is now disallowed. (Note that the +similar construct, but with C instead, was already forbidden.) + +=head2 C<$#> has been removed + +The deprecated C<$#> variable (output format for numbers) has been +removed. A new warning, C<$# is no longer supported>, has been added. + +=head2 C<:unique> + +The C<:unique> attribute has been made a now-op, since its current +implementation was fundamentally flawed and not threadsafe. =head1 Core Enhancements +=head2 Switch and Smart Match operator + +=head2 C + +=head2 C + +Perl has now support for the C special subroutine. Like +C, C is called once per package; however, it is called +just before cloning starts, and in the context of the parent thread. If it +returns a true value, then no objects of that class will be cloned. See +L for details. + +=head2 C<${^CHILD_ERROR_NATIVE}> + +A new internal variable, C<${^CHILD_ERROR_NATIVE}>, gives the native +status returned by the last pipe close, backtick command, successful call +to wait() or waitpid(), or from the system() operator. See L for +details. + +=head2 Assertions + +The support for assertions, introduced in perl 5.9.0, has been improved. +The syntax for the C<-A> command-line switch has changed; it now accepts +an optional module name, defaulting to C. See +L and L. + +=head2 Unicode Character Database 4.1.0 + +The copy of the Unicode Character Database included in Perl 5.9 has +been updated to 4.1.0. + =head1 Modules and Pragmata +=head2 C + +=head2 C + +=head2 C + +=head2 C + +=head2 C + +=head2 C + =head1 Utility Changes +=head2 C + =head1 Documentation =head1 Performance Enhancements =head1 Installation and Configuration Improvements +=head2 New Or Improved Platforms + +Perl is being ported to Symbian OS. See L for more +information. + +=head2 Module auxiliary files + +README files and changelogs for CPAN modules bundled with perl are no +longer installed. + =head1 Selected Bug Fixes +=head2 C + +C was ignoring taking a hard reference in an argument +to defined(), as in : + + use strict "refs"; + my $x = "foo"; + if (defined $$x) {...} + +This now correctly produces the run-time error C. (However, C and +C are still allowed. Those constructs are discouraged +anyway.) + +=head2 Smaller fixes + +=over 4 + +=item * + +C now works better with directories where access rights are more +restrictive than usual. + +=item * + +Several memory leaks in ithreads were closed. + +=item * + +C now works better with non-default C<$/> settings. + +=item * + +You can now use the C operator to demultiply a C list. This used +to raise a syntax error. + +=back + +=head2 More Unicode Fixes + +=over 4 + +=item * + +chr() on a negative value now gives C<\x{FFFD}>, the Unicode replacement +character, unless when the C pragma is in effect, where the low +eight bytes of the value are used. + +=back + =head1 New or Changed Diagnostics +=head2 Attempt to set length of freed array + +This is a new warning, produced in situations like the following one: + + $r = do {my @a; \$#a}; + $$r = 503; + +=head2 Search pattern not terminated or ternary operator parsed as search pattern + +This syntax error indicates that the lexer couldn't find the final +delimiter of a C construct. Mentioning the ternary operator in +this error message makes syntax diagnostic easier. + =head1 Changed Internals +XXX consting + +XXX mathoms + +The C macro has been removed. + +=head2 B:: modules inheritance changed + +The inheritance hierarchy of C modules has changed; C now +inherits from C (it used to inherit from C). + =head1 Known Problems =head2 Platform Specific Problems