This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
e926bc429bb5191906271b2f61f604595429d0ad
[perl5.git] / pod / perl594delta.pod
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
13 =head2 chdir FOO
14
15 A bareword argument to chdir() is now recognized as a file handle.
16 Earlier releases interpreted the bareword as a directory name.
17
18 =head2 Handling of pmc files
19
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.
24
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.)
28
29 =head2 @- and @+ in patterns
30
31 The special arrays C<@-> and C<@+> are no longer interpolated in regular
32 expressions.
33
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
39 =head1 Core Enhancements
40
41 =head2 state() variables
42
43 =head2 UNIVERSAL:DOES()
44
45 =head1 Modules and Pragmata
46
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.)
50
51 C<threads>
52
53 =head2 New Core Modules
54
55 =over 4
56
57 =item *
58
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.
66
67 =item *
68
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.
72
73 =item *
74
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.
77
78 =back
79
80 =head1 Utility Changes
81
82 =head1 Documentation
83
84 =head2 New manpage, perlpragma
85
86 The L<perlpragma> manpage documents how to write one's own lexical
87 pragmas in pure Perl.
88
89 =head2 New manpage, perlreguts
90
91 The L<perlreguts> manpage, due to Yves Orton, describes internals of the
92 Perl regular expression engine.
93
94 =head2 New manpage, perlunitut
95
96 The L<perlunitut> manpage is an tutorial for programming with Unicode and
97 string encodings in Perl, due to Juerd Waalboer.
98
99 =head1 Performance Enhancements
100
101 Constants (Nicholas)
102
103 Regular expressions (Yves)
104
105 =head1 Installation and Configuration Improvements
106
107 =head2 Ports
108
109 Perl has been reported to work on DragonFlyBSD.
110
111 Many improvements have been made towards making Perl work correctly on
112 z/OS.
113
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
126 =head1 Selected Bug Fixes
127
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
137 =head1 New or Changed Diagnostics
138
139 =head1 Changed Internals
140
141 Arenas
142
143 Mathoms and factorizations (many PP functions are now shared for several ops)
144
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