3 perldelta - what is new for perl v5.9.4
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.
11 =head1 Incompatible Changes
15 A bareword argument to chdir() is now recognized as a file handle.
16 Earlier releases interpreted the bareword as a directory name.
18 =head2 Handling of pmc files
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.
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.)
29 =head2 @- and @+ in patterns
31 The special arrays C<@-> and C<@+> are no longer interpolated in regular
34 =head2 $AUTOLOAD can now be tainted
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.
39 =head1 Core Enhancements
41 =head2 state() variables
43 =head2 UNIVERSAL:DOES()
45 =head1 Modules and Pragmata
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
53 =head2 New Core Modules
59 C<Module::Build> has been added. It's an alternative to
60 C<ExtUtils::MakeMaker> to build and install perl modules.
64 C<Module::Load> has been added. It's used to load indistinctively modules
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.
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.
80 =head1 Utility Changes
84 =head2 New manpage, perlpragma
86 The L<perlpragma> manpage documents how to write one's own lexical
89 =head2 New manpage, perlreguts
91 The L<perlreguts> manpage, due to Yves Orton, describes internals of the
92 Perl regular expression engine.
94 =head2 New manpage, perlunitut
96 The L<perlunitut> manpage is an tutorial for programming with Unicode and
97 string encodings in Perl, due to Juerd Waalboer.
99 =head1 Performance Enhancements
103 Regular expressions (Yves)
105 =head1 Installation and Configuration Improvements
109 Perl has been reported to work on DragonFlyBSD.
111 Many improvements have been made towards making Perl work correctly on
114 =head2 Compilation improvements
116 All F<ppport.h> files in the XS modules bundled with perl are now
117 autogenerated at build time.
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.
126 =head1 Selected Bug Fixes
128 =head2 PERL5SHELL and tainting
130 On Windows, PERL5SHELL is now checked for taintedness.
132 =head2 Using *FILE{IO}
134 C<stat()> and C<-X> filetests now treat *FILE{IO} filehandles like *FILE
137 =head1 New or Changed Diagnostics
139 =head1 Changed Internals
143 Mathoms and factorizations (many PP functions are now shared for several ops)
145 =head1 Known Problems
147 =head2 Platform Specific Problems
149 =head1 Reporting Bugs
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.
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.
164 The F<Changes> file for exhaustive details on what changed.
166 The F<INSTALL> file for how to build Perl.
168 The F<README> file for general stuff.
170 The F<Artistic> and F<Copying> files for copyright information.