5 perl5121delta - what is new for perl v5.12.1
9 This document describes differences between the 5.12.0 release and
12 If you are upgrading from an earlier release such as 5.10.1, first read
13 L<perl5120delta>, which describes differences between 5.10.0 and
16 =head1 Incompatible Changes
18 There are no changes intentionally incompatible with 5.12.0. If any
19 incompatibilities with 5.12.0 exist, they are bugs. Please report them.
21 =head1 Core Enhancements
23 Other than the bug fixes listed below, there should be no user-visible
24 changes to the core language in this release.
26 =head1 Modules and Pragmata
28 =head2 Pragmata Changes
34 We fixed exporting of C<is_strict> and C<is_lax> from L<version>.
36 These were being exported with a wrapper that treated them as method
37 calls, which caused them to fail. They are just functions, are
38 documented as such, and should never be subclassed, so this patch
39 just exports them directly as functions without the wrapper.
43 =head2 Updated Modules
49 We upgraded L<CGI> to version 3.49 to incorporate fixes for regressions
50 introduced in the release we shipped with Perl 5.12.0.
54 We upgraded L<Pod::Simple> to version 3.14 to get an improvement to \C\<\< \>\>
59 We made a small fix to the L<CPANPLUS> test suite to fix an occasional spurious test failure.
63 We upgraded L<Safe> to version 2.27 to wrap coderefs returned by C<reval()> and C<rdo()>.
67 =head1 Changes to Existing Documentation
73 We added the new maintenance release policy to L<perlpolicy>
77 We've clarified the multiple-angle-bracket construct in the spec for POD
82 We added a missing explanation for a warning about C<:=> to L<perldiag>
86 We removed a false claim in L<perlunitut> that all text strings are Unicode strings in Perl.
90 We updated the GitHub mirror link in L<perlrepository> to mirrors/perl, not github/perl
94 We fixed a minor error in L<perl5114delta>.
98 We replaced a mention of the now-obsolete L<Switch> with F<given>/F<when>.
102 We improved documentation about F<$sitelibexp/sitecustomize.pl> in L<perlrun>.
106 We corrected L<perlmodlib> which had unintentionally omitted a number of modules.
110 We updated the documentation for 'require' in L<perlfunc> relating to putting Perl code in @INC.
114 We reinstated some erroneously-removed documentation about quotemeta in L<perlfunc>.
118 We fixed an F<a2p> example in L<perlutil>.
122 We filled in a blank in L<perlport> with the release date of Perl 5.12.
126 We fixed broken links in a number of perldelta files.
130 The documentation for L<Carp> incorrectly stated that the $Carp::Verbose
131 variable makes cluck generate stack backtraces.
135 We fixed a number of typos in L<Pod::Functions>
139 We improved documentation of case-changing functions in L<perlfunc>
143 We corrected L<perlgpl> to contain the correct version of the GNU
144 General Public License.
152 =head2 Testing Improvements
158 F<t/op/sselect.t> is now less prone to clock jitter during timing checks
161 sleep() time on Win32 may be rounded down to multiple of
162 the clock tick interval.
166 F<lib/blib.t> and F<lib/locale.t>: Fixes for test failures on Darwin/PPC
170 F<perl5db.t>: Fix for test failures when C<Term::ReadLine::Gnu> is installed.
174 =head1 Installation and Configuration Improvements
176 =head2 Configuration improvements
182 We updated F<INSTALL> with notes about how to deal with broken F<dbm.h>
183 on OpenSUSE (and possibly other platforms)
193 A bug in how we process filetest operations could cause a segfault.
194 Filetests don't always expect an op on the stack, so we now use
195 TOPs only if we're sure that we're not stat'ing the _ filehandle.
196 This is indicated by OPf_KIDS (as checked in ck_ftst).
198 See also: L<https://github.com/Perl/perl5/issues/10335>
202 When deparsing a nextstate op that has both a change of package (relative
203 to the previous nextstate) and a label, the package declaration is now
204 emitted first, because it is syntactically impermissible for a label to
205 prefix a package declaration.
209 XSUB.h now correctly redefines fgets under PERL_IMPLICIT_SYS
211 See also: L<http://rt.cpan.org/Public/Bug/Display.html?id=55049>
215 utf8::is_utf8 now respects GMAGIC (e.g. $1)
219 XS code using C<fputc()> or C<fputs()>: on Windows could cause an error
220 due to their arguments being swapped.
222 See also: L<https://github.com/Perl/perl5/issues/10156>
226 We fixed a small bug in lex_stuff_pvn() that caused spurious syntax errors
227 in an obscure situation. It happened when stuffing was performed on the
228 last line of a file and the line ended with a statement that lacked a
229 terminating semicolon.
231 See also: L<https://github.com/Perl/perl5/issues/10273>
235 We fixed a bug that could cause \N{} constructs followed by a single . to
236 be parsed incorrectly.
238 See also: L<https://github.com/Perl/perl5/issues/10367>
243 We fixed a bug that caused when(scalar) without an argument not to be
244 treated as a syntax error.
246 See also: L<https://github.com/Perl/perl5/issues/10287>
250 We fixed a regression in the handling of labels immediately before string
251 evals that was introduced in Perl 5.12.0.
253 See also: L<https://github.com/Perl/perl5/issues/10301>
257 We fixed a regression in case-insensitive matching of folded characters
258 in regular expressions introduced in Perl 5.10.1.
260 See also: L<https://github.com/Perl/perl5/issues/10193>
264 =head1 Platform Specific Notes
272 Perl now allows -Duse64bitint without promoting to use64bitall on HP-UX
282 Perl now builds on AIX 4.2
284 The changes required work around AIX 4.2s' lack of support for IPv6,
285 and limited support for POSIX C<sigaction()>.
295 FreeBSD 7 no longer contains F</usr/bin/objformat>. At build time,
296 Perl now skips the F<objformat> check for versions 7 and higher and
307 It's now possible to build extensions on older (pre 7.3-2) VMS systems.
309 DCL symbol length was limited to 1K up until about seven years or
310 so ago, but there was no particularly deep reason to prevent those
311 older systems from configuring and building Perl.
315 We fixed the previously-broken C<-Uuseperlio> build on VMS.
317 We were checking a variable that doesn't exist in the non-default
318 case of disabling perlio. Now we only look at it when it exists.
322 We fixed the -Uuseperlio command-line option in configure.com.
324 Formerly it only worked if you went through all the questions
325 interactively and explicitly answered no.
329 =head1 Known Problems
335 C<List::Util::first> misbehaves in the presence of a lexical C<$_>
336 (typically introduced by C<my $_> or implicitly by C<given>). The variable
337 which gets set for each iteration is the package variable C<$_>, not the
340 A similar issue may occur in other modules that provide functions which
341 take a block as their first argument, like
343 foo { ... $_ ...} list
345 See also: L<https://github.com/Perl/perl5/issues/9798>
349 C<Module::Load::Conditional> and C<version> have an unfortunate
350 interaction which can cause C<CPANPLUS> to crash when it encounters
351 an unparseable version string. Upgrading to C<CPANPLUS> 0.9004 or
352 C<Module::Load::Conditional> 0.38 from CPAN will resolve this issue.
357 =head1 Acknowledgements
359 Perl 5.12.1 represents approximately four weeks of development since
360 Perl 5.12.0 and contains approximately 4,000 lines of changes
361 across 142 files from 28 authors.
363 Perl continues to flourish into its third decade thanks to a vibrant
364 community of users and developers. The following people are known to
365 have contributed the improvements that became Perl 5.12.1:
367 Ævar Arnfjörð Bjarmason, Chris Williams, chromatic, Craig A. Berry,
368 David Golden, Father Chrysostomos, Florian Ragwitz, Frank Wiegand,
369 Gene Sullivan, Goro Fuji, H.Merijn Brand, James E Keenan, Jan Dubois,
370 Jesse Vincent, Josh ben Jore, Karl Williamson, Leon Brocard, Michael
371 Schwern, Nga Tang Chan, Nicholas Clark, Niko Tyni, Philippe Bruhat,
372 Rafael Garcia-Suarez, Ricardo Signes, Steffen Mueller, Todd Rinaldo,
373 Vincent Pit and Zefram.
375 =head1 Reporting Bugs
377 If you find what you think is a bug, you might check the articles
378 recently posted to the comp.lang.perl.misc newsgroup and the perl
379 bug database at http://rt.perl.org/perlbug/ . There may also be
380 information at http://www.perl.org/ , the Perl Home Page.
382 If you believe you have an unreported bug, please run the B<perlbug>
383 program included with your release. Be sure to trim your bug down
384 to a tiny but sufficient test case. Your bug report, along with the
385 output of C<perl -V>, will be sent off to perlbug@perl.org to be
386 analysed by the Perl porting team.
388 If the bug you are reporting has security implications, which make it
389 inappropriate to send to a publicly archived mailing list, then please send
390 it to perl5-security-report@perl.org. This points to a closed subscription
391 unarchived mailing list, which includes
392 all the core committers, who will be able
393 to help assess the impact of issues, figure out a resolution, and help
394 co-ordinate the release of patches to mitigate or fix the problem across all
395 platforms on which Perl is supported. Please only use this address for
396 security issues in the Perl core, not for modules independently
401 The F<Changes> file for an explanation of how to view exhaustive details
404 The F<INSTALL> file for how to build Perl.
406 The F<README> file for general stuff.
408 The F<Artistic> and F<Copying> files for copyright information.