1PERL5115DELTA(1)       Perl Programmers Reference Guide       PERL5115DELTA(1)
2
3
4

NAME

6       perl5115delta - what is new for perl v5.11.5
7

DESCRIPTION

9       This document describes differences between the 5.11.4 release and the
10       5.11.5 release.
11
12       If you are upgrading from an earlier release such as 5.11.3, first read
13       perl5114delta, which describes differences between 5.11.3 and 5.11.4.
14

Core Enhancements

16   32-bit limit on substr arguments removed
17       The 32-bit limit on "substr" arguments has now been removed. The full
18       range of the system's signed and unsigned integers is now available for
19       the "pos" and "len" arguments.
20

Modules and Pragmata

22   Pragmata Changes
23       "version"
24           Upgraded from version 0.81 to 0.82.
25
26           The "is_lax" and "is_strict" functions can now be optionally
27           exported to the caller's namespace and are also now documented.
28
29           Undefined version objects are now uninitialized with zero rather
30           than "undef".
31
32   Updated Modules
33       "B::Debug"
34           Upgraded from version 1.11 to 1.12.
35
36       "CPAN"
37           Upgraded from version 1.94_53 to 1.94_56.
38
39           This resolves RT #72362, in which CPAN was ignoring
40           "configure_requires", and RT #72348, in which the command "o conf
41           init" in the CPAN shell could cause an exception to be thrown.
42
43           This module is also now built in a less specialized way, which
44           resolves a problem that caused "make" after "make clean" to fail,
45           fixing RT #72218.
46
47       "CPANPLUS::Dist::Build"
48           Upgraded from version 0.44 to 0.46.
49
50           This makes the prereq resolving fall back to _build/ querying if
51           the "prereq_data" action fails.
52
53       "Pod::Perldoc"
54           Upgraded from version 3.15_01 to 3.15_02.
55
56       "Pod::Plainer"
57           Upgraded from version 1.01 to 1.02.
58
59       "Safe"
60           Upgraded from version 2.21 to 2.22.
61
62           This resolves RT #72700, in which an exception thrown from a
63           closure was getting lost.
64
65       "Socket"
66           Upgraded from version 1.85 to 1.86.
67
68           This makes the new Socket implementation of "inet_pton" consistent
69           with the existing Socket6 implementation of "inet_pton", fixing RT
70           #72884.
71
72       "podlators"
73           Upgraded from version 2.2.2 to 2.3.1.
74

Changes to Existing Documentation

76       The syntax "unless (EXPR) BLOCK else BLOCK" is now documented as valid,
77       as is the syntax "unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else
78       BLOCK", although actually using the latter may not be the best idea for
79       the readability of your source code.
80

Installation and Configuration Improvements

82   Configuration improvements
83       Support for SystemTap's "dtrace" compatibility layer has been added and
84       an issue with linking "miniperl" has been fixed in the process.
85
86       "less -R" is now used instead of "less" for "groff"'s new usage of ANSI
87       escape codes by setting $Config{less} (and thereby $Config{pager},
88       which fixes RT #72156.
89
90       USE_PERL_ATOF is now reported in the compile-time options listed by the
91       "-V" switch.
92

Selected Bug Fixes

94       ·   Arbitrary whitespace is now allowed between "NAME" and "VERSION" in
95           "package NAME VERSION;" statements. (Fixes RT #72432)
96
97       ·   A panic caused by trying to load "charnames" when the parser is
98           already in error (e.g. by a missing "my" under "use strict;") is
99           now averted. This was a regression since Perl 5.10.0. (Fixes RT
100           #72590)
101
102       ·   Reading $! no longer causes a SEGV for out of range "errno" values.
103           (Fixes RT #72850)
104
105       ·   A possible SEGV in "/\N{...}/" has been fixed. This was a
106           regression since Perl 5.10.
107
108       ·   A possible SEGV when freeing a scalar that was upgraded to an
109           "SVt_REGEXP" type from a simple(r) scalar has been fixed.
110
111       ·   A type conversion bug in "gmtime64" that caused it to break around
112           "2**48" has been fixed.
113
114       ·   Interpolating a regex that makes use of the "charnames" pragma will
115           no longer cause a run-time error. (Fixes RT #56444)
116
117       ·   Array references assigned to *Foo::ISA now have the necessary magic
118           added to them to catch any further updates to the new @ISA. (Fixes
119           RT #72866)
120
121       ·   Filehandles are now always blessed into "IO::File", which, together
122           with some suitable manipulation of @IO::File::ISA, fixes a breakage
123           introduced in Perl 5.11.3 by a change that always blessed
124           filehandles into "IO::Handle" rather than checking for "FileHandle"
125           first.
126
127       ·   A change in the behaviour of "warnings::enabled" and
128           "warnings::warnif" in Perl 5.10.0 that wasn't documented at the
129           time is now documented in perl5100delta. (Fixes RT #62522)
130
131       ·   RT #71504 is now fixed by simply skipping the tests that failed on
132           OpenBSD with ithreads and perlio.
133

New or Changed Diagnostics

135       ·   The fatal error "Malformed UTF-8 returned by \N" is now produced if
136           the "charnames" handler returns malformed UTF-8.
137
138       ·   If an unresolved named character or sequence was encountered when
139           compiling a regex pattern then the fatal error "\\N{NAME} must be
140           resolved by the lexer" is now produced. This can happen, for
141           example, when using a single-quotish context like "$re =
142           '\N{SPACE}'; $re;". See perldiag for more examples of how the lexer
143           can get bypassed.
144
145       ·   The fatal error "Invalid hexadecimal number in \\N{U+...}" will be
146           produced if the character constant represented by "..." is not a
147           valid hexadecimal number.
148
149       ·   The new meaning of "\N" as "[^\n]" is not valid in a bracketed
150           character class, just like "." in a character class loses its
151           special meaning, and will cause the fatal error "\\N in a character
152           class must be a named character: \\N{...}".
153
154       ·   The rules on what is legal for the "..." in "\N{...}" have been
155           tightened up so that unless the "..." begins with an alphabetic
156           character and continues with a combination of alphanumerics,
157           dashes, spaces, parentheses or colons then the warning "Deprecated
158           character(s) in \\N{...} starting at '%s'" is now issued.
159
160       ·   The warning "Using just the first characters returned by \N{}" will
161           be issued if the "charnames" handler returns a sequence of
162           characters which exceeds the limit of the number of characters that
163           can be used. The message will indicate which characters were used
164           and which were discarded.
165
166       ·   Currently, all but the first of the several characters that the
167           "charnames" handler may return are discarded when used in a regular
168           expression pattern bracketed character class. If this happens then
169           the warning "Using just the first character returned by \N{} in
170           character class" will be issued.
171
172       ·   The warning "Missing right brace on \\N{} or unescaped left brace
173           after \\N.  Assuming the latter" will be issued if Perl encounters
174           a "\N{" but doesn't find a matching "}". In this case Perl doesn't
175           know if it was mistakenly omitted, or if "match non-newline"
176           followed by "match a "{"" was desired.  It assumes the latter
177           because that is actually a valid interpretation as written, unlike
178           the other case.  If you meant the former, you need to add the
179           matching right brace.  If you did mean the latter, you can silence
180           this warning by writing instead "\N\{".
181
182       ·   "gmtime" and "localtime" called with numbers smaller than they can
183           reliably handle will now issue the warnings "gmtime(%.0f) too
184           small" and "localtime(%.0f) too small".
185

New Tests

187       t/op/filehandle.t
188           Tests some suitably portable filetest operators to check that they
189           work as expected, particularly in the light of some internal
190           changes made in how filehandles are blessed.
191
192       t/op/time_loop.t
193           Tests that times greater than "2**63", which can now be handed to
194           "gmtime" and "localtime", do not cause an internal overflow or an
195           excessively long loop.
196

Known Problems

198       Perl 5.11.5 is a development release leading up to Perl 5.12.0.  Some
199       notable known problems found in 5.11.5 are listed as dependencies of RT
200       #69710, the Perl 5 version 12 meta-ticket.
201

Acknowledgements

203       Perl 5.11.5 represents approximately one month of development since
204       Perl 5.11.4 and contains 9618 lines of changes across 151 files from 33
205       authors and committers:
206
207       var Arnfjoerd` Bjarmason, Abigail, brian d foy, Chris Williams, David
208       Golden, David Mitchell, Eric Brine, Frank Wiegand, Gisle Aas, H.Merijn
209       Brand, Jan Dubois, Jesse Vincent, Jim Cromie, John Peacock, Josh ben
210       Jore, Karl Williamson, Marcus Holland-Moritz, Michael G Schwern,
211       Nicholas Clark, Offer Kaye, Philippe Bruhat (BooK), Rafael Garcia-
212       Suarez, Reini Urban, Ricardo Signes, Robin Barker, Slaven Rezic,
213       Steffen Mueller, Steve Hay, Steve Peters, Tim Bunce, Todd Rinaldo, Tony
214       Cook and Vincent Pit.
215
216       Many of the changes included in this version originated in the CPAN
217       modules included in Perl's core. We're grateful to the entire CPAN
218       community for helping Perl to flourish.
219

Reporting Bugs

221       If you find what you think is a bug, you might check the articles
222       recently posted to the comp.lang.perl.misc newsgroup and the perl bug
223       database at http://rt.perl.org/perlbug/ .  There may also be
224       information at http://www.perl.org/ , the Perl Home Page.
225
226       If you believe you have an unreported bug, please run the perlbug
227       program included with your release.  Be sure to trim your bug down to a
228       tiny but sufficient test case.  Your bug report, along with the output
229       of "perl -V", will be sent off to perlbug@perl.org to be analyzed by
230       the Perl porting team.
231
232       If the bug you are reporting has security implications, which make it
233       inappropriate to send to a publicly archived mailing list, then please
234       send it to perl5-security-report@perl.org. This points to a closed
235       subscription unarchived mailing list, which includes all the core
236       committers, who be able to help assess the impact of issues, figure out
237       a resolution, and help co-ordinate the release of patches to mitigate
238       or fix the problem across all platforms on which Perl is supported.
239       Please only use this address for security issues in the Perl core, not
240       for modules independently distributed on CPAN.
241

SEE ALSO

243       The Changes file for an explanation of how to view exhaustive details
244       on what changed.
245
246       The INSTALL file for how to build Perl.
247
248       The README file for general stuff.
249
250       The Artistic and Copying files for copyright information.
251
252
253
254perl v5.12.4                      2011-06-01                  PERL5115DELTA(1)
Impressum