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.11 to 1.12.
49 Upgraded from version 1.94_53 to 1.94_56.
51 This resolves RT #72362, in which CPAN was ignoring C<configure_requires>,
52 and RT #72348, in which the command C<o conf init> in the CPAN shell could
53 cause an exception to be thrown.
55 This module is also now built in a less specialized way, which resolves a
56 problem that caused C<make> after C<make clean> to fail, fixing RT #72218.
58 =item C<CPANPLUS::Dist::Build>
60 Upgraded from version 0.44 to 0.46.
62 This makes the prereq resolving fall back to F<_build/> querying if the
63 C<prereq_data> action fails.
67 Upgraded from version 3.15_01 to 3.15_02.
71 Upgraded from version 1.01 to 1.02.
75 Upgraded from version 2.21 to 2.22.
77 This resolves RT #72700, in which an exception thrown from a closure was
82 Upgraded from version 1.85 to 1.86.
84 This makes the new Socket implementation of C<inet_pton> consistent with the
85 existing Socket6 implementation of C<inet_pton>, fixing RT #72884.
89 Upgraded from version 2.2.2 to 2.3.1.
93 =head1 Changes to Existing Documentation
95 The syntax C<unless (EXPR) BLOCK else BLOCK> is now documented as valid, as
96 is the syntax C<unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK>,
97 although actually using the latter may not be the best idea for the
98 readability of your source code.
100 =head1 Installation and Configuration Improvements
102 =head2 Configuration improvements
104 Support for SystemTap's C<dtrace> compatibility layer has been added and an
105 issue with linking C<miniperl> has been fixed in the process.
107 C<less -R> is now used instead of C<less> for C<groff>'s new usage of ANSI
108 escape codes by setting C<$Config{less}> (and thereby C<$Config{pager}>,
109 which fixes RT #72156.
111 USE_PERL_ATOF is now reported in the compile-time options listed by the C<-V>
114 =head1 Selected Bug Fixes
120 Arbitrary whitespace is now allowed between C<NAME> and C<VERSION> in
121 C<package NAME VERSION;> statements. (Fixes RT #72432)
125 A panic caused by trying to load C<charnames> when the parser is already in
126 error (e.g. by a missing C<my> under C<use strict;>) is now averted. This
127 was a regression since Perl 5.10.0. (Fixes RT #72590)
131 Reading C<$!> no longer causes a SEGV for out of range C<errno> values. (Fixes
136 A possible SEGV in C</\N{...}/> has been fixed. This was a regression since
141 A possible SEGV when freeing a scalar that was upgraded to an C<SVt_REGEXP>
142 type from a simple(r) scalar has been fixed.
146 A type conversion bug in C<gmtime64> that caused it to break around C<2**48>
151 Interpolating a regex that makes use of the C<charnames> pragma will no longer
152 cause a run-time error. (Fixes RT #56444)
156 Array references assigned to C<*Foo::ISA> now have the necessary magic added
157 to them to catch any further updates to the new C<@ISA>. (Fixes RT #72866)
161 Filehandles are now always blessed into C<IO::File>, which, together with
162 some suitable manipulation of C<@IO::File::ISA>, fixes a breakage introduced
163 in Perl 5.11.3 by a change that always blessed filehandles into C<IO::Handle>
164 rather than checking for C<FileHandle> first.
168 A change in the behaviour of C<warnings::enabled> and C<warnings::warnif> in
169 Perl 5.10.0 that wasn't documented at the time is now documented in
170 L<perl5100delta>. (Fixes RT #62522)
174 RT #71504 is now fixed by simply skipping the tests that failed on OpenBSD
175 with ithreads and perlio.
179 =head1 New or Changed Diagnostics
185 The fatal error C<Malformed UTF-8 returned by \N> is now produced if the
186 C<charnames> handler returns malformed UTF-8.
190 If an unresolved named character or sequence was encountered when compiling a
191 regex pattern then the fatal error C<\\N{NAME} must be resolved by the lexer>
192 is now produced. This can happen, for example, when using a single-quotish
193 context like C<$re = '\N{SPACE}'; $re;>. See L<perldiag> for more examples of
194 how the lexer can get bypassed.
198 The fatal error C<Invalid hexadecimal number in \\N{U+...}> will be produced
199 if the character constant represented by C<...> is not a valid hexadecimal
204 The new meaning of C<\N> as C<[^\n]> is not valid in a bracketed character
205 class, just like C<.> in a character class loses its special meaning, and will
206 cause the fatal error C<\\N in a character class must be a named character:
211 The rules on what is legal for the C<...> in C<\N{...}> have been tightened
212 up so that unless the C<...> begins with an alphabetic character and continues
213 with a combination of alphanumerics, dashes, spaces, parentheses or colons
214 then the warning C<Deprecated character(s) in \\N{...} starting at '%s'> is
219 The warning C<Using just the first characters returned by \N{}> will be
220 issued if the C<charnames> handler returns a sequence of characters which
221 exceeds the limit of the number of characters that can be used. The message
222 will indicate which characters were used and which were discarded.
226 Currently, all but the first of the several characters that the C<charnames>
227 handler may return are discarded when used in a regular expression pattern
228 bracketed character class. If this happens then the warning C<Using just the
229 first character returned by \N{} in character class> will be issued.
233 The warning C<Missing right brace on \\N{} or unescaped left brace after \\N.
234 Assuming the latter> will be issued if Perl encounters a C<\N{> but doesn't
235 find a matching C<}>. In this case Perl doesn't know if it was mistakenly
236 omitted, or if "match non-newline" followed by "match a C<{>" was desired.
237 It assumes the latter because that is actually a valid interpretation as
238 written, unlike the other case. If you meant the former, you need to add the
239 matching right brace. If you did mean the latter, you can silence this
240 warning by writing instead C<\N\{>.
244 C<gmtime> and C<localtime> called with numbers smaller than they can reliably
245 handle will now issue the warnings C<gmtime(%.0f) too small> and
246 C<localtime(%.0f) too small>.
254 =item F<t/op/filehandle.t>
256 Tests some suitably portable filetest operators to check that they work as
257 expected, particularly in the light of some internal changes made in how
258 filehandles are blessed.
260 =item F<t/op/time_loop.t>
262 Tests that times greater than C<2**63>, which can now be handed to C<gmtime>
263 and C<localtime>, do not cause an internal overflow or an excessively long
268 =head1 Known Problems
270 Perl 5.11.5 is a development release leading up to Perl 5.12.0.
271 Some notable known problems found in 5.11.5 are listed as dependencies
272 of RT #69710, the Perl 5 version 12 meta-ticket.
274 =head1 Acknowledgements
276 Perl 5.11.5 represents approximately one month of development since
277 Perl 5.11.4 and contains 9618 lines of changes across 151 files
278 from 33 authors and committers:
280 E<AElig>var ArnfjE<ouml>rE<eth> Bjarmason, Abigail, brian d foy, Chris
281 Williams, David Golden, David Mitchell, Eric Brine, Frank Wiegand, Gisle
282 Aas, H.Merijn Brand, Jan Dubois, Jesse Vincent, Jim Cromie, John Peacock,
283 Josh ben Jore, Karl Williamson, Marcus Holland-Moritz, Michael G Schwern,
284 Nicholas Clark, Offer Kaye, Philippe Bruhat (BooK), Rafael Garcia-Suarez,
285 Reini Urban, Ricardo Signes, Robin Barker, Slaven Rezic, Steffen Mueller,
286 Steve Hay, Steve Peters, Tim Bunce, Todd Rinaldo, Tony Cook and
289 Many of the changes included in this version originated in the CPAN
290 modules included in Perl's core. We're grateful to the entire CPAN
291 community for helping Perl to flourish.
293 =head1 Reporting Bugs
295 If you find what you think is a bug, you might check the articles
296 recently posted to the comp.lang.perl.misc newsgroup and the perl
297 bug database at http://rt.perl.org/perlbug/ . There may also be
298 information at http://www.perl.org/ , the Perl Home Page.
300 If you believe you have an unreported bug, please run the B<perlbug>
301 program included with your release. Be sure to trim your bug down
302 to a tiny but sufficient test case. Your bug report, along with the
303 output of C<perl -V>, will be sent off to perlbug@perl.org to be
304 analyzed by the Perl porting team.
306 If the bug you are reporting has security implications, which make it
307 inappropriate to send to a publicly archived mailing list, then please send
308 it to perl5-security-report@perl.org. This points to a closed subscription
309 unarchived mailing list, which includes all the core committers, who be able
310 to help assess the impact of issues, figure out a resolution, and help
311 co-ordinate the release of patches to mitigate or fix the problem across all
312 platforms on which Perl is supported. Please only use this address for
313 security issues in the Perl core, not for modules independently
318 The F<Changes> file for an explanation of how to view exhaustive details
321 The F<INSTALL> file for how to build Perl.
323 The F<README> file for general stuff.
325 The F<Artistic> and F<Copying> files for copyright information.