Integrate from maint-5.8 : changes 18290-1, 18293-5, 18297
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
CommitLineData
d4432bb5 1=head1 NAME
cc0fca54 2
55e8fca7 3perldelta - what is new for perl v5.9.0
cc0fca54 4
5=head1 DESCRIPTION
6
55e8fca7 7This document describes differences between the 5.8.0 release and
8the 5.9.0 release.
f39f21d8 9
55e8fca7 10=head1 Incompatible Changes
87880fe6 11
55e8fca7 12=head1 Core Enhancements
87880fe6 13
13cf4046 14=head2 Tied Arrays with Negative Array Indices
15
16Formerly, the indices passed to C<FETCH>, C<STORE>, C<EXISTS>, and
17C<DELETE> methods in tied array class were always non-negative. If
18the actual argument was negative, Perl would call FETCHSIZE implicitly
19and add the result to the index before passing the result to the tied
20array method. This behavior is now optional. If the tied array class
21contains a package variable named C<$NEGATIVE_INDICES> which is set to
22a true value, negative values will be passed to C<FETCH>, C<STORE>,
23C<EXISTS>, and C<DELETE> unchanged.
24
caec1979 25=head2 Fewer parentheses needed with C<? :>
26
27The grammar of the conditional operator (C<$x ? $y : $z>) has been
28broadened so that any operator may appear between the C<?> and the
29C<:> without parentheses. Previously, the comma operator and the
30low-precedence logical operators had required parentheses in this
31context. For instance, you may now write
32
33 $x ? $a and $b : $c
34
35as a shorter version of the more explicit
36
37 $x ? ($a and $b) : $c
38
39Perl is now compatible with C in this regard. However, writing the
40parentheses is still recommended as a matter of style.
41
55e8fca7 42=head1 Modules and Pragmata
87880fe6 43
55e8fca7 44=head1 Utility Changes
87880fe6 45
55e8fca7 46=head1 New Documentation
87880fe6 47
55e8fca7 48=head1 Performance Enhancements
87880fe6 49
55e8fca7 50=head1 Installation and Configuration Improvements
87880fe6 51
55e8fca7 52=head1 Selected Bug Fixes
87880fe6 53
55e8fca7 54=head1 New or Changed Diagnostics
f39f21d8 55
77c8cf41 56=head1 Changed Internals
f39f21d8 57
ebc20e9a 58=head1 New Tests
77c8cf41 59
f39f21d8 60=head1 Known Problems
61
51bcf69b 62=head1 Platform Specific Problems
63
cc0fca54 64=head1 Reporting Bugs
65
d4ad863d 66If you find what you think is a bug, you might check the articles
67recently posted to the comp.lang.perl.misc newsgroup and the perl
e6dc8c81 68bug database at http://bugs.perl.org/ . There may also be
f224927c 69information at http://www.perl.com/ , the Perl Home Page.
cc0fca54 70
71If you believe you have an unreported bug, please run the B<perlbug>
72program included with your release. Be sure to trim your bug down
73to a tiny but sufficient test case. Your bug report, along with the
d4ad863d 74output of C<perl -V>, will be sent off to perlbug@perl.org to be
cc0fca54 75analysed by the Perl porting team.
76
77=head1 SEE ALSO
78
79The F<Changes> file for exhaustive details on what changed.
80
81The F<INSTALL> file for how to build Perl.
82
83The F<README> file for general stuff.
84
85The F<Artistic> and F<Copying> files for copyright information.
86
cc0fca54 87=cut