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