3 perldelta - what is new for perl v5.11.5
7 This document describes differences between the 5.11.4 release and
10 If you are upgrading from an earlier release such as 5.11.3, first read
11 L<perl5114delta>, which describes differences between 5.11.3 and
14 =head1 Core Enhancements
16 =head2 32-bit limit on substr arguments removed
18 The 32-bit limit on C<substr> arguments has now been removed. The full range
19 of the system's signed and unsigned integers is now available for the C<pos>
22 =head1 Modules and Pragmata
24 =head2 Pragmata Changes
30 Upgraded from version 0.81 to 0.82.
32 The C<is_lax> and C<is_strict> functions can now be optionally exported to the
33 caller's namespace and are also now documented.
35 Undefined version objects are now uninitialized with zero rather than C<undef>.
39 =head2 Updated Modules
45 Upgraded from version 1.94_53 to 1.94_56.
47 This module is also now built in a less specialized way, which resolves a
48 problem that caused C<make> after C<make clean> to fail, fixing RT #72218.
50 =item C<CPANPLUS::Dist::Build>
52 Upgraded from version 0.44 to 0.46.
56 Upgraded from version 2.21 to 2.22.
58 This resolves RT #72700, in which an exception thrown from a closure was
63 Upgraded from version 1.85 to 1.86.
65 This makes the new Socket implementation of C<inet_pton> consistent with the
66 existing Socket6 implementation of C<inet_pton>, fixing RT #72884.
70 Upgraded from version 2.2.2 to 2.3.1.
74 =head1 Changes to Existing Documentation
76 The syntax C<unless (EXPR) BLOCK else BLOCK> is now documented as valid, as
77 is the syntax C<unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK>,
78 although actually using the latter may not be the best idea for the
79 readability of your source code.
81 =head1 Installation and Configuration Improvements
83 =head2 Configuration improvements
85 Support for SystemTap's C<dtrace> compatibility layer has been added and an
86 issue with linking C<miniperl> has been fixed in the process.
88 C<less -R> is now used instead of C<less> for C<groff>'s new usage of ANSI
89 escape codes by setting C<$Config{less}> (and thereby C<$Config{pager}>,
90 which fixes RT #72156.
92 USE_PERL_ATOF is now reported in the compile-time options listed by the C<-V>
95 =head1 Selected Bug Fixes
101 Arbitrary whitespace is now allowed between C<NAME> and C<VERSION> in
102 C<package NAME VERSION;> statements. (Fixes RT #72432)
106 A panic caused by trying to load C<charnames> when the parser is already in
107 error (e.g. by a missing C<my> under C<use strict;>) is now averted. This
108 was a regression since Perl 5.10.0. (Fixes RT #72590)
112 Reading C<$!> no longer causes a SEGV for out of range C<errno> values. (Fixes
117 A possible SEGV in C</\N{...}/> has been fixed. This was a regression since
122 A possible SEGV when freeing a scalar that was upgraded to an C<SVt_REGEXP>
123 type from a simple(r) scalar has been fixed.
127 A type conversion bug in C<gmtime64> that caused it to break around C<2**48>
132 Interpolating a regex that makes use of the C<charnames> pragma will no longer
133 cause a run-time error. (Fixes RT #56444)
137 Array references assigned to C<*Foo::ISA> now have the necessary magic added
138 to them to catch any further updates to the new C<@ISA>. (Fixes RT #72866)
142 Filehandles are now always blessed into C<IO::File>, which, together with
143 some suitable manipulation of C<@IO::File::ISA>, fixes a breakage introduced
144 in Perl 5.11.3 by a change that always blessed filehandles into C<IO::Handle>
145 rather than checking for C<FileHandle> first.
149 A change in the behaviour of C<warnings::enabled> and C<warnings::warnif> in
150 Perl 5.10.0 that wasn't documented at the time is now documented in
151 L<perl5100delta>. (Fixes RT #62522)
155 RT #71504 is now fixed by simply skipping the tests that failed on OpenBSD
156 with ithreads and perlio.
160 =head1 New or Changed Diagnostics
166 The fatal error C<Malformed UTF-8 returned by \N> is now produced if the
167 C<charnames> handler returns malformed UTF-8.
171 If an unresolved named character or sequence was encountered when compiling a
172 regex pattern then the fatal error C<\\N{NAME} must be resolved by the lexer>
173 is now produced. This can happen, for example, when using a single-quotish
174 context like C<$re = '\N{SPACE}'; $re;>. See L<perldiag> for more examples of
175 how the lexer can get bypassed.
179 The fatal error C<Invalid hexadecimal number in \\N{U+...}> will be produced
180 if the character constant represented by C<...> is not a valid hexadecimal
185 The new meaning of C<\N> as C<[^\n]> is not valid in a bracketed character
186 class, just like C<.> in a character class loses its special meaning, and will
187 cause the fatal error C<\\N in a character class must be a named character:
192 The warning C<Using just the first characters returned by \N{}> will be
193 issued if the C<charnames> handler returns a sequence of characters which
194 exceeds the limit of the number of characters that can be used. The message
195 will indicate which characters were used and which were discarded.
199 Currently, all but the first of the several characters that the C<charnames>
200 handler may return are discarded when used in a regular expression pattern
201 bracketed character class. If this happens then the warning C<Using just the
202 first character returned by \N{} in character class> will be issued.
206 The warning C<Missing right brace on \\N{} or unescaped left brace after \\N.
207 Assuming the latter> will be issued if Perl encounters a C<\N{> but doesn't
208 find a matching C<}>. In this case Perl doesn't know if it was mistakenly
209 omitted, or if "match non-newline" followed by "match a C<{>" was desired.
210 It assumes the latter because that is actually a valid interpretation as
211 written, unlike the other case. If you meant the former, you need to add the
212 matching right brace. If you did mean the latter, you can silence this
213 warning by writing instead C<\N\{>.
217 C<gmtime> and C<localtime> called with numbers smaller than they can reliably
218 handle will now issue the warnings C<gmtime(%.0f) too small> and
219 C<localtime(%.0f) too small>.
227 =item F<t/op/filehandle.t>
229 Tests some suitably portable filetest operators to check that they work as
230 expected, particularly in the light of some internal changes made in how
231 filehandles are blessed.
233 =item F<t/op/time_loop.t>
235 Tests that times greater than C<2**63>, which can now be handed to C<gmtime>
236 and C<localtime>, do not cause an internal overflow or an excessively long
241 =head1 Known Problems
243 Perl 5.11.5 is a development release leading up to Perl 5.12.0.
244 Some notable known problems found in 5.11.5 are listed as dependencies
245 of RT #69710, the Perl 5 version 12 meta-ticket.
247 =head1 Acknowledgements
249 Perl 5.11.5 represents approximately one month of development since
250 Perl 5.11.4 and contains XXX lines of changes across XXX files
251 from XXX authors and committers:
253 XXX The list of people to thank goes here.
255 Many of the changes included in this version originated in the CPAN
256 modules included in Perl's core. We're grateful to the entire CPAN
257 community for helping Perl to flourish.
259 =head1 Reporting Bugs
261 If you find what you think is a bug, you might check the articles
262 recently posted to the comp.lang.perl.misc newsgroup and the perl
263 bug database at http://rt.perl.org/perlbug/ . There may also be
264 information at http://www.perl.org/ , the Perl Home Page.
266 If you believe you have an unreported bug, please run the B<perlbug>
267 program included with your release. Be sure to trim your bug down
268 to a tiny but sufficient test case. Your bug report, along with the
269 output of C<perl -V>, will be sent off to perlbug@perl.org to be
270 analyzed by the Perl porting team.
272 If the bug you are reporting has security implications, which make it
273 inappropriate to send to a publicly archived mailing list, then please send
274 it to perl5-security-report@perl.org. This points to a closed subscription
275 unarchived mailing list, which includes all the core committers, who be able
276 to help assess the impact of issues, figure out a resolution, and help
277 co-ordinate the release of patches to mitigate or fix the problem across all
278 platforms on which Perl is supported. Please only use this address for
279 security issues in the Perl core, not for modules independently
284 The F<Changes> file for an explanation of how to view exhaustive details
287 The F<INSTALL> file for how to build Perl.
289 The F<README> file for general stuff.
291 The F<Artistic> and F<Copying> files for copyright information.