Commit | Line | Data |
6c7deadb |
1 | =head1 NAME |
2 | |
3 | perldelta - what is new for perl v5.9.4 |
4 | |
5 | =head1 DESCRIPTION |
6 | |
7 | This document describes differences between the 5.9.3 and the 5.9.4 |
8 | developement releases. See L<perl590delta>, L<perl591delta>, L<perl592delta> |
9 | and L<perl593delta> for the differences between 5.8.0 and 5.9.3. |
10 | |
11 | =head1 Incompatible Changes |
12 | |
4db748fd |
13 | =head2 chdir FOO |
14 | |
473aa102 |
15 | A bareword argument to chdir() is now recognized as a file handle. |
4db748fd |
16 | Earlier releases interpreted the bareword as a directory name. |
17 | |
ddc61b51 |
18 | =head2 Handling of pmc files |
19 | |
473aa102 |
20 | And old feature of perl is that before C<require> or C<use> look for a |
21 | file with a F<.pm> extension, they will first look for a similar filename |
22 | with a F<.pmc> extension. If this file is found, it will be loaded in |
23 | place of any potentially existing file ending in a F<.pm> extension. |
ddc61b51 |
24 | |
473aa102 |
25 | Previously, F<.pmc> files were loaded only if more recent than the |
26 | matching F<.pm> file. Starting with 5.9.4, they'll be always loaded if |
27 | they exist. (This trick is used by Pugs.) |
ddc61b51 |
28 | |
29 | =head2 @- and @+ in patterns |
30 | |
31 | The special arrays C<@-> and C<@+> are no longer interpolated in regular |
32 | expressions. |
33 | |
5d121f7f |
34 | =head2 $AUTOLOAD can now be tainted |
35 | |
36 | If you call a subroutine by a tainted name, and if it defers to an |
37 | AUTOLOAD function, then $AUTOLOAD will be (correctly) tainted. |
38 | |
6c7deadb |
39 | =head1 Core Enhancements |
40 | |
6c20a8f9 |
41 | =head2 state() variables |
42 | |
ddc61b51 |
43 | =head2 UNIVERSAL:DOES() |
44 | |
6c7deadb |
45 | =head1 Modules and Pragmata |
46 | |
473aa102 |
47 | C<encoding::warnings> is now a lexical pragma. (Although on older perls, |
48 | which don't have support for lexical pragmas, it keeps its global |
49 | behaviour.) |
6c20a8f9 |
50 | |
ddc61b51 |
51 | C<threads> |
52 | |
6c20a8f9 |
53 | =head2 New Core Modules |
54 | |
55 | =over 4 |
56 | |
57 | =item * |
58 | |
473aa102 |
59 | C<Module::Build> has been added. It's an alternative to |
60 | C<ExtUtils::MakeMaker> to build and install perl modules. |
61 | |
62 | =item * |
63 | |
64 | C<Module::Load> has been added. It's used to load indistinctively modules |
65 | and files. |
6c20a8f9 |
66 | |
67 | =item * |
68 | |
ddc61b51 |
69 | C<Hash::Util::FieldHash> has been added. This module provides support for |
70 | I<field hashes>: hashes that maintain an association of a reference with a |
71 | value, in a thread-safe garbage-collected way. |
6c20a8f9 |
72 | |
73 | =item * |
74 | |
ddc61b51 |
75 | C<Win32API::File> has been added (for Windows builds). This module |
76 | provides low-level access to Win32 system API calls for files/dirs. |
6c20a8f9 |
77 | |
78 | =back |
79 | |
6c7deadb |
80 | =head1 Utility Changes |
81 | |
82 | =head1 Documentation |
83 | |
6c20a8f9 |
84 | =head2 New manpage, perlpragma |
85 | |
473aa102 |
86 | The L<perlpragma> manpage documents how to write one's own lexical |
87 | pragmas in pure Perl. |
88 | |
6c20a8f9 |
89 | =head2 New manpage, perlreguts |
90 | |
473aa102 |
91 | The L<perlreguts> manpage, due to Yves Orton, describes internals of the |
92 | Perl regular expression engine. |
93 | |
6c20a8f9 |
94 | =head2 New manpage, perlunitut |
95 | |
473aa102 |
96 | The L<perlunitut> manpage is an tutorial for programming with Unicode and |
97 | string encodings in Perl, due to Juerd Waalboer. |
98 | |
6c7deadb |
99 | =head1 Performance Enhancements |
100 | |
6c20a8f9 |
101 | Constants (Nicholas) |
102 | |
103 | Regular expressions (Yves) |
104 | |
6c7deadb |
105 | =head1 Installation and Configuration Improvements |
106 | |
ddc61b51 |
107 | =head2 Ports |
108 | |
6c20a8f9 |
109 | Perl has been reported to work on DragonFlyBSD. |
110 | |
473aa102 |
111 | Many improvements have been made towards making Perl work correctly on |
112 | z/OS. |
113 | |
ddc61b51 |
114 | =head2 Compilation improvements |
115 | |
116 | All F<ppport.h> files in the XS modules bundled with perl are now |
117 | autogenerated at build time. |
118 | |
119 | =head2 New probes |
120 | |
121 | The configuration process now detects whether strlcat and strlcpy are |
122 | available. When they are not available, perl's own version is used (from |
123 | Russ Allbery's public domain implementation). Various places in the perl |
124 | interpreter now uses them. |
125 | |
6c7deadb |
126 | =head1 Selected Bug Fixes |
127 | |
473aa102 |
128 | =head2 PERL5SHELL and tainting |
129 | |
130 | On Windows, PERL5SHELL is now checked for taintedness. |
131 | |
132 | =head2 Using *FILE{IO} |
133 | |
134 | C<stat()> and C<-X> filetests now treat *FILE{IO} filehandles like *FILE |
135 | filehandles. |
136 | |
6c7deadb |
137 | =head1 New or Changed Diagnostics |
138 | |
139 | =head1 Changed Internals |
140 | |
6c20a8f9 |
141 | Arenas |
142 | |
143 | Mathoms and factorizations (many PP functions are now shared for several ops) |
144 | |
6c7deadb |
145 | =head1 Known Problems |
146 | |
147 | =head2 Platform Specific Problems |
148 | |
149 | =head1 Reporting Bugs |
150 | |
151 | If you find what you think is a bug, you might check the articles |
152 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
153 | bug database at http://bugs.perl.org/ . There may also be |
154 | information at http://www.perl.org/ , the Perl Home Page. |
155 | |
156 | If you believe you have an unreported bug, please run the B<perlbug> |
157 | program included with your release. Be sure to trim your bug down |
158 | to a tiny but sufficient test case. Your bug report, along with the |
159 | output of C<perl -V>, will be sent off to perlbug@perl.org to be |
160 | analysed by the Perl porting team. |
161 | |
162 | =head1 SEE ALSO |
163 | |
164 | The F<Changes> file for exhaustive details on what changed. |
165 | |
166 | The F<INSTALL> file for how to build Perl. |
167 | |
168 | The F<README> file for general stuff. |
169 | |
170 | The F<Artistic> and F<Copying> files for copyright information. |
171 | |
172 | =cut |