Commit | Line | Data |
496c75d0 |
1 | =head1 NAME |
2 | |
3 | perldelta - what is new for perl v5.9.3 |
4 | |
5 | =head1 DESCRIPTION |
6 | |
7 | This document describes differences between the 5.9.2 and the 5.9.3 |
d7f8936a |
8 | development releases. See L<perl590delta>, L<perl591delta> and |
496c75d0 |
9 | L<perl592delta> for the differences between 5.8.0 and 5.9.2. |
10 | |
11 | =head1 Incompatible Changes |
12 | |
2770530f |
13 | =head2 Parsing of C<-f _> |
14 | |
15 | C<_> is now forced to be a bareword after a filetest operator. This solves |
16 | a number of misparsing issues when a global C<_> subroutine is defined. |
17 | |
78ef48ad |
18 | =head2 C<mkdir()> |
19 | |
20 | C<mkdir()> without arguments now defaults to C<$_>. |
21 | |
22 | =head2 Magic goto and eval |
23 | |
24 | The construct C<eval { goto &foo }> is now disallowed. (Note that the |
25 | similar construct, but with C<eval("")> instead, was already forbidden.) |
26 | |
27 | =head2 C<$#> has been removed |
28 | |
29 | The deprecated C<$#> variable (output format for numbers) has been |
30 | removed. A new warning, C<$# is no longer supported>, has been added. |
31 | |
32 | =head2 C<:unique> |
33 | |
34 | The C<:unique> attribute has been made a now-op, since its current |
35 | implementation was fundamentally flawed and not threadsafe. |
36 | |
496c75d0 |
37 | =head1 Core Enhancements |
38 | |
78ef48ad |
39 | =head2 Switch and Smart Match operator |
40 | |
41 | =head2 C<say()> |
42 | |
43 | =head2 C<CLONE_SKIP()> |
44 | |
45 | Perl has now support for the C<CLONE_SKIP> special subroutine. Like |
46 | C<CLONE>, C<CLONE_SKIP> is called once per package; however, it is called |
47 | just before cloning starts, and in the context of the parent thread. If it |
48 | returns a true value, then no objects of that class will be cloned. See |
49 | L<perlmod> for details. |
50 | |
51 | =head2 C<${^CHILD_ERROR_NATIVE}> |
52 | |
53 | A new internal variable, C<${^CHILD_ERROR_NATIVE}>, gives the native |
54 | status returned by the last pipe close, backtick command, successful call |
55 | to wait() or waitpid(), or from the system() operator. See L<perlrun> for |
56 | details. |
57 | |
58 | =head2 Assertions |
59 | |
60 | The support for assertions, introduced in perl 5.9.0, has been improved. |
61 | The syntax for the C<-A> command-line switch has changed; it now accepts |
62 | an optional module name, defaulting to C<assertions::activate>. See |
63 | L<assertions> and L<perlrun>. |
64 | |
65 | =head2 Unicode Character Database 4.1.0 |
66 | |
67 | The copy of the Unicode Character Database included in Perl 5.9 has |
68 | been updated to 4.1.0. |
69 | |
496c75d0 |
70 | =head1 Modules and Pragmata |
71 | |
78ef48ad |
72 | =head2 C<feature> |
73 | |
74 | =head2 C<assertions::compat> |
75 | |
76 | =head2 C<Math::BigInt::FastCalc> |
77 | |
78 | =head2 C<Compress::Zlib> |
79 | |
80 | =head2 C<IO::Zlib> |
81 | |
82 | =head2 C<Archive::Tar> |
83 | |
496c75d0 |
84 | =head1 Utility Changes |
85 | |
78ef48ad |
86 | =head2 C<ptar> |
87 | |
496c75d0 |
88 | =head1 Documentation |
89 | |
90 | =head1 Performance Enhancements |
91 | |
92 | =head1 Installation and Configuration Improvements |
93 | |
78ef48ad |
94 | =head2 New Or Improved Platforms |
95 | |
96 | Perl is being ported to Symbian OS. See L<perlsymbian> for more |
97 | information. |
98 | |
99 | =head2 Module auxiliary files |
100 | |
101 | README files and changelogs for CPAN modules bundled with perl are no |
102 | longer installed. |
103 | |
496c75d0 |
104 | =head1 Selected Bug Fixes |
105 | |
2e6a7e23 |
106 | =head2 C<defined $$x> |
107 | |
108 | C<use strict "refs"> was ignoring taking a hard reference in an argument |
109 | to defined(), as in : |
110 | |
111 | use strict "refs"; |
112 | my $x = "foo"; |
113 | if (defined $$x) {...} |
114 | |
115 | This now correctly produces the run-time error C<Can't use string as a |
116 | SCALAR ref while "strict refs" in use>. (However, C<defined @$foo> and |
117 | C<defined %$foo> are still allowed. Those constructs are discouraged |
118 | anyway.) |
119 | |
78ef48ad |
120 | =head2 Smaller fixes |
121 | |
122 | =over 4 |
123 | |
124 | =item * |
125 | |
126 | C<FindBin> now works better with directories where access rights are more |
127 | restrictive than usual. |
128 | |
129 | =item * |
130 | |
131 | Several memory leaks in ithreads were closed. |
132 | |
133 | =item * |
134 | |
135 | C<PerlIO::scalar> now works better with non-default C<$/> settings. |
136 | |
137 | =item * |
138 | |
139 | You can now use the C<x> operator to demultiply a C<qw//> list. This used |
140 | to raise a syntax error. |
141 | |
142 | =back |
143 | |
144 | =head2 More Unicode Fixes |
145 | |
146 | =over 4 |
147 | |
148 | =item * |
149 | |
150 | chr() on a negative value now gives C<\x{FFFD}>, the Unicode replacement |
151 | character, unless when the C<bytes> pragma is in effect, where the low |
152 | eight bytes of the value are used. |
153 | |
154 | =back |
155 | |
496c75d0 |
156 | =head1 New or Changed Diagnostics |
157 | |
78ef48ad |
158 | =head2 Attempt to set length of freed array |
159 | |
160 | This is a new warning, produced in situations like the following one: |
161 | |
162 | $r = do {my @a; \$#a}; |
163 | $$r = 503; |
164 | |
165 | =head2 Search pattern not terminated or ternary operator parsed as search pattern |
166 | |
167 | This syntax error indicates that the lexer couldn't find the final |
168 | delimiter of a C<?PATTERN?> construct. Mentioning the ternary operator in |
169 | this error message makes syntax diagnostic easier. |
170 | |
496c75d0 |
171 | =head1 Changed Internals |
172 | |
78ef48ad |
173 | XXX consting |
174 | |
175 | XXX mathoms |
176 | |
177 | The C<AvFLAGS> macro has been removed. |
178 | |
179 | =head2 B:: modules inheritance changed |
180 | |
181 | The inheritance hierarchy of C<B::> modules has changed; C<B::NV> now |
182 | inherits from C<B::SV> (it used to inherit from C<B::IV>). |
183 | |
496c75d0 |
184 | =head1 Known Problems |
185 | |
186 | =head2 Platform Specific Problems |
187 | |
188 | =head1 Reporting Bugs |
189 | |
190 | If you find what you think is a bug, you might check the articles |
191 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
192 | bug database at http://bugs.perl.org/ . There may also be |
193 | information at http://www.perl.org/ , the Perl Home Page. |
194 | |
195 | If you believe you have an unreported bug, please run the B<perlbug> |
196 | program included with your release. Be sure to trim your bug down |
197 | to a tiny but sufficient test case. Your bug report, along with the |
198 | output of C<perl -V>, will be sent off to perlbug@perl.org to be |
199 | analysed by the Perl porting team. |
200 | |
201 | =head1 SEE ALSO |
202 | |
203 | The F<Changes> file for exhaustive details on what changed. |
204 | |
205 | The F<INSTALL> file for how to build Perl. |
206 | |
207 | The F<README> file for general stuff. |
208 | |
209 | The F<Artistic> and F<Copying> files for copyright information. |
210 | |
211 | =cut |