This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - Fill in one more item and add currently remaining possible TODOs
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
7a29aa48
FC
3=for comment
4To do:
b65db4bb
FC
5df8c7dee Fix segfault in filehandle duplication
6b66f3475 Fix PerlIO_get_cnt and friends
942cddc4
SH
79cefd268 [perl #118747] Allow in-place s///g when !!PL_sawampersand
8e94bb470 install useful Regexp::CARP_TRACE from Carp
988e3936f Fix processing of PERL_ENV_TABLES
109d32676e [perl #117265] fix various problems with safesyscalls
119c7618be regcomp.c: Use Perl_form() instead of buggy sprintf
12c04e4151 op.c:leave_scope: use mg_free before sv_force_normal [#119295]
13650b1534 Make B::OP::slabbed, folded, etc. actually work
14531d75b0 [perl #89502]: Add support for Atari FreeMiNT platform
15acb34050 [perl #119501] \(1+2) always referencing the same sv
7a29aa48 16
44691e6f
AB
17=head1 NAME
18
ba03bc34
SH
19[ this is a template for a new perldelta file. Any text flagged as XXX needs
20to be processed before release. ]
21
22perldelta - what is new for perl v5.19.4
e128ab2c 23
4eabcf70 24=head1 DESCRIPTION
6db9054f 25
ba03bc34 26This document describes differences between the 5.19.3 release and the 5.19.4
e08634c5 27release.
6db9054f 28
ba03bc34
SH
29If you are upgrading from an earlier release such as 5.19.2, first read
30L<perl5193delta>, which describes differences between 5.19.2 and 5.19.3.
a3fb66a4 31
ba03bc34 32=head1 Notice
a3fb66a4 33
ba03bc34 34XXX Any important notices here
a3fb66a4 35
ba03bc34 36=head1 Core Enhancements
a3fb66a4 37
ba03bc34
SH
38XXX New core language features go here. Summarize user-visible core language
39enhancements. Particularly prominent performance optimisations could go
40here, but most should go in the L</Performance Enhancements> section.
a3fb66a4 41
ba03bc34 42[ List each enhancement as a =head2 entry ]
a3fb66a4 43
99366d6d 44=head2 C<rand> now uses a consistent random number generator
f1591529 45
99366d6d
SH
46Previously perl would use a platform specific random number generator, varying
47between the libc rand(), random() or drand48().
f1591529 48
99366d6d
SH
49This meant that the quality of perl's random numbers would vary from platform
50to platform, from the 15 bits of rand() on Windows to 48-bits on POSIX
51platforms such as Linux with drand48().
f1591529 52
2d8e8368
SH
53Perl now uses its own internal drand48() implementation on all platforms. This
54does not make perl's C<rand> cryptographically secure. [perl #115928]
f1591529 55
f2ab313d 56=head2 Better 64-bit support
18ae6bbc
FC
57
58On 64-bit platforms, the internal array functions now use 64-bit offsets,
99366d6d
SH
59allowing Perl arrays to hold more than 2**31 elements, if you have the memory
60available.
18ae6bbc 61
99366d6d 62The regular expression engine now supports strings longer than 2**31
f2ab313d
FC
63characters. [perl #112790, #116907]
64
f53b57fd
FC
65=head2 New slice syntax
66
99366d6d
SH
67The new C<%hash{...}> and C<@array[...]> syntax returns a list of key/value (or
68index/value) pairs.
f53b57fd 69
972690a1
KW
70=head2 EBCDIC support
71
72Core Perl now mostly works on EBCDIC platforms. This is not true of
73many modules, including some which are shipped with this release. If
74you have resources to help continue this process, including test
75machines, send email to L<mailto:perl-mvs@perl.org>.
76
77As a result of this, certain C<XS> functions are now deprecated; see
78L</Internal Changes>.
79
ba03bc34 80=head1 Security
a3fb66a4 81
ba03bc34
SH
82XXX Any security-related notices go here. In particular, any security
83vulnerabilities closed should be noted here rather than in the
84L</Selected Bug Fixes> section.
4725e868 85
ba03bc34 86[ List each security issue as a =head2 entry ]
a3fb66a4 87
ba03bc34 88=head1 Incompatible Changes
a3fb66a4 89
e1c60bf3 90=head2 Locale decimal point character no longer leaks outside of
99366d6d 91S<C<use locale>> scope (with the exception of $!)
e46375fa 92
e1c60bf3
SH
93This is actually a bug fix, but some code has come to rely on the bug being
94present, so this change is listed here. The current locale that the program is
95running under is not supposed to be visible to Perl code except within the
96scope of a S<C<use locale>>. However, until now under certain circumstances,
97the character used for a decimal point (often a comma) leaked outside the
98scope.
e46375fa 99
e1c60bf3
SH
100This continues the work released in Perl 5.19.1. It turns out that that did
101not catch all the leaks, including C<printf> and C<sprintf> not respecting
102S<C<use locale>>. If your code is affected by this change, simply add a
103S<C<use locale>>.
e46375fa 104
99366d6d 105Now, the only known place where S<C<use locale>> is not respected is in the
e1c60bf3 106stringification of L<$!|perlvar/$!>.
a3fb66a4 107
820689a1
SH
108=head2 Assignments of Windows sockets error codes to $! now prefer F<errno.h> values over WSAGetLastError() values
109
110In previous versions of Perl, Windows sockets error codes as returned by
111WSAGetLastError() were assigned to $!, and some constants such as ECONNABORTED,
112not in F<errno.h> in VC++ (or the various Windows ports of gcc) were defined to
113corresponding WSAE* values to allow $! to be tested against the E* constants
114exported by L<Errno> and L<POSIX>.
115
116This worked well until VC++ 2010 and later, which introduced new E* constants
117with values E<gt> 100 into F<errno.h>, including some being (re)defined by perl
118to WSAE* values. That caused problems when linking XS code against other
119libraries which used the original definitions of F<errno.h> constants.
120
121To avoid this incompatibility, perl now maps WSAE* error codes to E* values
122where possible, and assigns those values to $!. The E* constants exported by
123L<Errno> and L<POSIX> are updated to match so that testing $! against them,
124wherever previously possible, will continue to work as expected, and all E*
125constants found in F<errno.h> are now exported from those modules with their
126original F<errno.h> values
127
128In order to avoid breakage in existing Perl code which assigns WSAE* values to
129$!, perl now intercepts the assignment and performs the same mapping to E*
130values as it uses internally when assigning to $! itself.
131
132However, one backwards-incompatibility remains: existing Perl code which
133compares $! against the numeric values of the WSAE* error codes that were
134previously assigned to $! will now be broken in those cases where a
135corresponding E* value has been assigned instead. This is only an issue for
136those E* values E<lt> 100, which were always exported from L<Errno> and
137L<POSIX> with their original F<errno.h> values, and therefore could not be used
138for WSAE* error code tests (e.g. WSAEINVAL is 10022, but the corresponding
139EINVAL is 22). (E* values E<gt> 100, if present, were redefined to WSAE*
140values anyway, so compatibility can be achieved by using the E* constants,
141which will work both before and after this change, albeit using different
142numeric values under the hood.)
143
ba03bc34 144=head1 Deprecations
a3fb66a4 145
ba03bc34 146XXX Any deprecated features, syntax, modules etc. should be listed here.
a3fb66a4 147
ba03bc34 148=head2 Module removals
4725e868 149
ba03bc34 150XXX Remove this section if inapplicable.
669d990b 151
ba03bc34
SH
152The following modules will be removed from the core distribution in a
153future release, and will at that time need to be installed from CPAN.
154Distributions on CPAN which require these modules will need to list them as
155prerequisites.
669d990b 156
ba03bc34
SH
157The core versions of these modules will now issue C<"deprecated">-category
158warnings to alert you to this fact. To silence these deprecation warnings,
159install the modules in question from CPAN.
669d990b 160
ba03bc34
SH
161Note that these are (with rare exceptions) fine modules that you are encouraged
162to continue to use. Their disinclusion from core primarily hinges on their
163necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
164not usually on concerns over their design.
2cf99697 165
ba03bc34 166=over
2cf99697 167
ba03bc34
SH
168XXX Note that deprecated modules should be listed here even if they are listed
169as an updated module in the L</Modules and Pragmata> section.
21d55435 170
ba03bc34 171=back
0f0eae2c 172
ba03bc34 173[ List each other deprecation as a =head2 entry ]
21d55435 174
ba03bc34 175=head1 Performance Enhancements
a3fb66a4 176
ba03bc34 177=over 4
a3fb66a4 178
2c99af42
SH
179=item *
180
e1c60bf3
SH
181The trie performance enhancement for regular expressions has now been extended
182to those compiled under C</iaa>.
2c99af42 183
c0ca71c9 184=back
42bff0d9 185
ba03bc34 186=head1 Modules and Pragmata
195e3ea0 187
ba03bc34
SH
188XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
189go here. If Module::CoreList is updated, generate an initial draft of the
190following sections using F<Porting/corelist-perldelta.pl>, which prints stub
191entries to STDOUT. Results can be pasted in place of the '=head2' entries
192below. A paragraph summary for important changes should then be added by hand.
193In an ideal world, dual-life modules would have a F<Changes> file that could be
194cribbed.
195e3ea0 195
ba03bc34 196[ Within each section, list entries as a =item entry ]
195e3ea0 197
ba03bc34 198=head2 New Modules and Pragmata
195e3ea0
SH
199
200=over 4
201
202=item *
203
ba03bc34 204XXX
195e3ea0
SH
205
206=back
207
ba03bc34 208=head2 Updated Modules and Pragmata
42bff0d9 209
38663f11 210=over 4
42bff0d9
DG
211
212=item *
213
082a4c42
SH
214L<autodie> has been upgraded from version 2.20 to 2.21.
215
216Numerous improvements have been made, many speed-related. See the F<Changes>
217file in the CPAN distribution for full details.
218
219=item *
220
8c24c1f7 221L<B> has been upgraded from version 1.45 to 1.46.
00c5962f
TC
222
223The fix for [perl #118525] introduced a regression in the behaviour of
e1c60bf3 224C<B::CV::GV>, changing the return value from a C<B::SPECIAL> object on a
99366d6d
SH
225C<NULL> C<CvGV> to C<undef>. C<B::CV::GV> again returns a C<B::SPECIAL> object
226in this case. [perl #119351]
00c5962f
TC
227
228=item *
229
8c24c1f7
SH
230L<B::Concise> has been upgraded from version 0.98 to 0.99.
231
479090d3
SH
232The handling of the C<glob> operator, broken since Perl 5.17.6, has been fixed
233and handling of the new kvaslice and kvhslice operators have been added.
234
235=item *
236
237L<B::Deparse> has been upgraded from version 1.22 to 1.23.
238
239The new kvaslice and kvhslice operators have been added.
8c24c1f7
SH
240
241=item *
242
d5dcec3a
Z
243L<Carp> has been upgraded from version 1.31 to 1.32.
244
6ffbec2c
Z
245=over 4
246
247=item *
248
e1c60bf3
SH
249In stack traces, subroutine arguments that are strings are now quoted in a
250consistent manner, regardless of what characters they contain and how they're
251internally represented.
6ffbec2c
Z
252
253=item *
254
99366d6d 255C<Carp> now takes care not to clobber the status variables $! and $^E.
0a9b5e6e
FC
256
257=item *
258
bf4588d0 259C<Carp> now won't vivify the C<overload::StrVal> glob or subroutine or the
bd098b9a 260C<overload> stash.
6ffbec2c
Z
261
262=item *
263
e1c60bf3 264C<Carp> now avoids some unwanted Unicode warnings on older Perls. This doesn't
99366d6d 265affect behaviour with current Perls.
6ffbec2c
Z
266
267=item *
268
e1c60bf3
SH
269C<Carp::Heavy> detects version mismatch with C<Carp>, to give a good error
270message if a current (stub) C<Carp::Heavy> gets loaded by an old C<Carp> that
271expects C<Carp::Heavy> to provide subroutines.
d5dcec3a 272
6ffbec2c
Z
273=back
274
c963f488
SH
275=item *
276
3a76eb28
SH
277L<charnames> has been upgraded from version 1.38 to 1.39.
278
279This module now works on EBCDIC platforms.
280
281=item *
282
bfae5bde
SH
283L<CPAN> has been upgraded from version 2.00 to 2.03-TRIAL.
284
285Numerous updates and bug fixes are incorporated. See the F<Changes> file for
286full details.
287
288=item *
289
53bb269a
SH
290L<CPAN::Meta> has been upgraded from version 2.132140 to 2.132510.
291
292No changes have been made to the installed code other than the version bump to
293keep in sync with the latest CPAN release.
294
295=item *
296
202c41cb
SH
297L<CPAN::Meta::Requirements> has been upgraded from version 2.122 to 2.123.
298
e1c60bf3
SH
299No changes have been made to the installed code other than the version bump to
300keep in sync with the latest CPAN release.
202c41cb
SH
301
302=item *
303
8c24c1f7
SH
304L<Data::Dumper> has been upgraded from version 2.148 to 2.149.
305
5b903226
SH
306This upgrade is part of a larger change to make the array interface 64-bit safe
307by using SSize_t instead of I32 for array indices.
8c24c1f7 308
2f92fb87
SH
309In addition, an EBCDIC fix has been applied.
310
8c24c1f7
SH
311=item *
312
313L<Devel::Peek> has been upgraded from version 1.13 to 1.14.
314
5b903226
SH
315This upgrade is part of a larger change to preserve referential identity when
316passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for
317nonexistent array elements.
8c24c1f7 318
2f92fb87
SH
319In addition, C<Dump> with no args was broken in Perl 5.19.3, but has now been
320fixed.
321
8c24c1f7
SH
322=item *
323
324L<DynaLoader> has been upgraded from version 1.19 to 1.20.
325
5b903226
SH
326The documentation now makes it clear, as has always been the case, that
327C<dl_unload_file> is only called automatically to unload all loaded shared
328objects if the perl interpreter was built with the C macro
b228daaa 329DL_UNLOAD_ALL_AT_EXIT defined. Support for GNU DLD has also been removed.
5b903226
SH
330
331=item *
332
369b9ffe 333L<Encode> has been upgraded from version 2.52 to 2.55.
f2c09143
SH
334
335An erroneous early return in C<decode_utf8> has been removed, and a bug in
369b9ffe
SH
336C<_utf8_on> under COW has been fixed. Encode also now uses L<parent> rather
337than L<base> throughout.
f2c09143
SH
338
339=item *
340
820689a1
SH
341L<Errno> has been upgraded from version 1.19 to 1.20.
342
343The list of E* constants exported on Windows has been updated to reflect the
344changes made in the assignment of sockets error codes to $! (see
345L</Incompatible Changes>).
346
347=item *
348
33826e50
SH
349L<Exporter> has been upgraded from version 5.69 to 5.70.
350
351A number of typos have been corrected in the documentation.
352
353=item *
354
a0e78e9f 355L<ExtUtils::CBuilder> has been upgraded from version 0.280205 to 0.280212.
2f92fb87 356
a0e78e9f
SH
357No changes have been made to the installed code other than the version bump to
358keep in sync with the latest CPAN release.
2f92fb87
SH
359
360=item *
361
33826e50
SH
362L<ExtUtils::Command> has been upgraded from version 1.17 to 1.18.
363
364No changes have been made to the installed code other than the version bump to
365keep in sync with the latest CPAN release.
366
367=item *
368
3a76eb28 369L<ExtUtils::MakeMaker> has been upgraded from version 6.72 to 6.76.
5b903226
SH
370
371Numerous updates and bug fixes are incorporated. See the F<Changes> file for
372full details.
8c24c1f7
SH
373
374=item *
375
1d0e852c 376L<ExtUtils::ParseXS> has been upgraded from version 3.21 to 3.23.
f2c09143 377
99366d6d
SH
378Unquoted "here-doc" markers for typemaps can now be optionally followed by a
379semicolon, just like quoted markers. [perl #119761]
f2c09143
SH
380
381=item *
382
77f1e6e4
SH
383L<File::Find> has been upgraded from version 1.24 to 1.25.
384
385Better diagnostics are now provided in the case of a failed C<chdir>.
386
387=item *
388
610ee5e3
TC
389L<File::Glob> has been upgraded from version 1.20 to 1.21.
390
99366d6d
SH
391C<glob> now warns in the context of C<use warnings "syscalls";> if the supplied
392pattern has an internal NUL (C<"\0">) character.
610ee5e3 393
d5dcec3a
Z
394=item *
395
479090d3
SH
396L<FileCache> has been upgraded from version 1.08 to 1.09.
397
398This upgrade is part of a larger change to use L<parent> rather than L<base>.
399
400=item *
401
402L<Hash::Util::FieldHash> has been upgraded from version 1.12 to 1.13.
403
404This upgrade is part of a larger change to use L<parent> rather than L<base>.
405
406=item *
407
0f07ea36 408L<HTTP::Tiny> has been upgraded from version 0.034 to 0.035.
4403b774
SH
409
410Encoded data from C<post_form> now preserves term order if data is provided as
411an array reference. (They are still sorted for consistency if provided as a
412hash reference.)
413
414=item *
415
3a76eb28
SH
416L<I18N::LangTags> has been upgraded from version 0.39 to 0.40.
417
418Bosnian has now joined Croatian and Serbian in the lists of mutually
99366d6d 419intelligible Slavic languages. [perl #72594]
3a76eb28
SH
420
421=item *
422
77f1e6e4
SH
423L<IO> has been upgraded from version 1.28 to 1.29.
424
425A minor internals-only change has been made to the XS code.
426
427=item *
428
e1c60bf3 429L<IPC::Open3> has been upgraded from version 1.15 to 1.16.
8c24c1f7 430
5b903226
SH
431This upgrade is part of a larger change to preserve referential identity when
432passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for
433nonexistent array elements.
8c24c1f7
SH
434
435=item *
436
a0109759
SH
437L<Locale::Codes> has been upgraded from version 3.26 to 3.27.
438
439New codes have been added and the (deprecated) set of FIPS-10 country codes has
440been removed.
441
442=item *
443
a8479f0e
TC
444L<Math::BigInt> has been upgraded from version 1.9992 to 1.9993.
445
e1c60bf3 446Cleaned up the L<Math::BigInt> and L<Math::BigFloat> documentation to be more
99366d6d 447consistent with other Perl documentation. [perl #86686]
a8479f0e 448
99366d6d 449Added a C<bint> method for rounding towards zero. [perl #85296]
a8479f0e
TC
450
451=item *
452
8c24c1f7
SH
453L<Math::BigInt::FastCalc> has been upgraded from version 0.30 to 0.31.
454
5b903226
SH
455This upgrade is part of a larger change to make the array interface 64-bit safe
456by using SSize_t instead of I32 for array indices.
8c24c1f7
SH
457
458=item *
459
37287258
SH
460L<Module::CoreList> has been upgraded from version 2.97 to 2.98.
461
462The list of Perl versions covered has been updated.
1fdd5e53 463
68cdd4b5
SH
464=item *
465
6c52f6c9 466L<Module::Load::Conditional> has been upgraded from version 0.54 to 0.58.
0022aab5 467
99366d6d 468C<requires> has been made more robust. [cpan #83728]
0022aab5
SH
469
470=item *
471
979f1f2b 472L<Module::Metadata> has been upgraded from version 1.000014 to 1.000018.
68cdd4b5
SH
473
474The module's DESCRIPTION has been re-worded regarding safety/security to
99366d6d 475satisfy CVE-2013-1437. Also, versions are now detainted if needed. [cpan
bff978fa 476#88576]
68cdd4b5 477
93f72154
SH
478=item *
479
e1c60bf3 480L<mro> has been upgraded from version 1.13 to 1.14.
8c24c1f7 481
5b903226
SH
482This upgrade is part of a larger change to make the array interface 64-bit safe
483by using SSize_t instead of I32 for array indices.
8c24c1f7
SH
484
485=item *
486
479090d3
SH
487L<Opcode> has been upgraded from version 1.25 to 1.26.
488
489The new kvaslice and kvhslice operators have been added.
490
491=item *
492
e1c60bf3
SH
493L<parent> has been upgraded from version 0.226 to 0.227.
494
495No changes have been made to the installed code other than the version bump to
496keep in sync with the latest CPAN release.
497
498=item *
499
545c8cda
SH
500L<Parse::CPAN::Meta> has been upgraded from version 1.4405 to 1.4407.
501
502No changes have been made to the installed code other than the version bump to
503keep in sync with the latest CPAN release.
504
505=item *
506
ba58de91 507L<Perl::OSType> has been upgraded from version 1.003 to 1.005.
93f72154
SH
508
509The Unix OSType 'bitrig' has been added.
510
8c24c1f7
SH
511=item *
512
dd741cc9
SH
513L<perlfaq> has been upgraded from version 5.0150043 to 5.0150044.
514
515The use of C<gensym> in a number of examples has been removed, the use of C<&>
516in subroutine calls is now clarified and several new questions have been
517answered.
518
519=item *
520
479090d3
SH
521L<Pod::Html> has been upgraded from version 1.20 to 1.21.
522
523This upgrade is part of a larger change to use L<parent> rather than L<base>.
524
525=item *
526
820689a1
SH
527L<POSIX> has been upgraded from version 1.34 to 1.35.
528
529The list of E* constants exported on Windows has been updated to reflect the
530changes made in the assignment of sockets error codes to $! (see
531L</Incompatible Changes>).
532
533=item *
534
8c24c1f7
SH
535L<re> has been upgraded from version 0.25 to 0.26.
536
94902151
SH
537This upgrade is part of a larger change to support 64-bit string lengths in the
538regular expression engine.
8c24c1f7
SH
539
540=item *
541
e1c60bf3
SH
542L<Scalar::Util> has been upgraded from version 1.31 to 1.32.
543
544The documentation of C<blessed> has been improved to mention the fact that
545package "0" is defined but false.
546
547=item *
548
406cccc2
SH
549L<Socket> has been upgraded from version 2.011 to 2.012.
550
99366d6d
SH
551Syntax errors when building on the WinCE platform have been fixed. [cpan
552#87389]
406cccc2
SH
553
554=item *
555
8c24c1f7
SH
556L<Storable> has been upgraded from version 2.46 to 2.47.
557
5b903226
SH
558This upgrade is part of a larger change to preserve referential identity when
559passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for
560nonexistent array elements.
8c24c1f7
SH
561
562=item *
563
2f92fb87
SH
564L<Term::ReadLine> has been upgraded from version 1.10 to 1.14.
565
566Term::ReadLine::EditLine support has been added.
567
568=item *
569
3a76eb28
SH
570L<Time::Piece> has been upgraded from version 1.22 to 1.23.
571
572Day of year parsing (like "%y%j") has been fixed.
573
574=item *
575
60f577e0
SH
576L<Unicode::Collate> has been upgraded from version 0.98 to 0.99.
577
e1c60bf3
SH
578By default, out-of-range values are replaced with C<U+FFFD> (REPLACEMENT
579CHARACTER) when C<UCA_Version> E<gt>= 22, or ignored when C<UCA_Version> E<lt>=
58020. When C<UCA_Version> E<gt>= 22, the weights of out-of-range values can be
581overridden.
60f577e0
SH
582
583=item *
584
3a76eb28
SH
585L<Unicode::UCD> has been upgraded from version 0.53 to 0.54.
586
587This module now works on EBCDIC platforms.
588
589=item *
590
5565c738
SH
591L<version> has been upgraded from version 0.9903 to 0.9904.
592
593No changes have been made to the installed code other than the version bump to
594keep in sync with the latest CPAN release.
595
596=item *
597
8c24c1f7
SH
598L<warnings> has been upgraded from version 1.18 to 1.19.
599
5b903226 600The C<syscalls> warnings category has been added to check for embedded NUL
b8f07b9f 601(C<"\0">) characters in pathnames and string arguments to other system calls.
8c24c1f7
SH
602
603=item *
604
605L<XS::Typemap> has been upgraded from version 0.10 to 0.11.
606
6d53e62b
SH
607This upgrade is part of the change to remove the uninitialized warnings
608exemption for uninitialized values returned by XSUBs (see the L</Selected Bug
609Fixes> section).
99366d6d 610
583aa5c2
RS
611=back
612
ba03bc34 613=head2 Removed Modules and Pragmata
a3fb66a4
SH
614
615=over 4
616
617=item *
618
ba03bc34 619XXX
a3fb66a4
SH
620
621=back
622
ba03bc34 623=head1 Documentation
8fecfff0 624
ba03bc34
SH
625XXX Changes to files in F<pod/> go here. Consider grouping entries by
626file and be sure to link to the appropriate page, e.g. L<perlfunc>.
8fecfff0 627
ba03bc34 628=head2 New Documentation
8fecfff0 629
1944fb52 630=head3 L<perlrepository>
195e3ea0 631
1944fb52
SH
632This document was removed (actually, renamed L<perlgit> and given a major
633overhaul) in Perl 5.13.10, causing Perl documentation websites to show the now
634out of date version in Perl 5.12 as the latest version. It has now been
635restored in stub form, directing readers to current information.
195e3ea0 636
ba03bc34 637=head2 Changes to Existing Documentation
195e3ea0 638
1944fb52
SH
639=head3 L<perldata>
640
641=over 4
642
643=item *
644
645New sections have been added to document the new index/value array slice and
646key/value hash slice syntax.
647
2d8e8368
SH
648=back
649
650=head3 L<perldebguts>
a71a93a7 651
2d8e8368 652=over 4
a71a93a7
TC
653
654=item *
655
2d8e8368
SH
656The C<&DB::goto> and C<&DB::lsub> debugger subroutines are now documented.
657[perl #77680]
a71a93a7 658
1944fb52
SH
659=back
660
661=head3 L<perlguts>
662
663=over 4
664
665=item *
666
667Numerous minor changes have been made to reflect changes made to the perl
668internals in this release.
669
670=back
195e3ea0 671
1944fb52 672=head3 L<perlhack>
a3fb66a4
SH
673
674=over 4
675
676=item *
677
1944fb52
SH
678The L<SUPER QUICK PATCH GUIDE|perlhack/SUPER QUICK PATCH GUIDE> section has
679been updated.
a3fb66a4
SH
680
681=back
682
2d8e8368
SH
683=head3 L<perlsub>
684
685=over 4
686
687=item *
688
689A list of subroutine names used by the perl implementation is now included.
690[perl #77680]
691
692=back
693
c0ca71c9
AP
694=head1 Diagnostics
695
696The following additions or changes have been made to diagnostic output,
697including warnings and fatal error messages. For the complete list of
698diagnostic messages, see L<perldiag>.
699
ba03bc34
SH
700XXX New or changed warnings emitted by the core's C<C> code go here. Also
701include any changes in L<perldiag> that reconcile it to the C<C> code.
702
c0ca71c9
AP
703=head2 New Diagnostics
704
ba03bc34
SH
705XXX Newly added diagnostic messages go under here, separated into New Errors
706and New Warnings
707
12dcbffb 708=head3 New Errors
583aa5c2 709
38663f11 710=over 4
583aa5c2 711
b8a02ff1 712=item *
583aa5c2 713
35d27e9c 714L<delete argument is indexE<sol>value array slice, use array slice|perldiag/"delete argument is index/value array slice, use array slice">
4a0af295
SH
715
716(F) You used index/value array slice syntax (C<%array[...]>) as the argument to
717C<delete>. You probably meant C<@array[...]> with an @ symbol instead.
718
719=item *
720
35d27e9c 721L<delete argument is keyE<sol>value hash slice, use hash slice|perldiag/"delete argument is key/value hash slice, use hash slice">
4a0af295
SH
722
723(F) You used key/value hash slice syntax (C<%hash{...}>) as the argument to
724C<delete>. You probably meant C<@hash{...}> with an @ symbol instead.
725
b8a02ff1 726=back
583aa5c2 727
12dcbffb 728=head3 New Warnings
96d496e4 729
38663f11 730=over 4
b8a02ff1
DG
731
732=item *
733
610ee5e3
TC
734L<Invalid \0 character in %s for %s: %s\0%s|perldiag/"Invalid \0 character in %s for %s: %s\0%s">
735
b8f07b9f 736(W syscalls) Embedded \0 characters in pathnames or other system call arguments
99366d6d 737produce a warning as of 5.20. The parts after the \0 were formerly ignored by
b8f07b9f 738system calls.
487a71ff 739
4a0af295
SH
740=item *
741
742L<Possible precedence issue with control flow operator|perldiag/"Possible precedence issue with control flow operator">
743
744(W syntax) There is a possible problem with the mixing of a control flow
745operator (e.g. C<return>) and a low-precedence operator like C<or>. Consider:
746
747 sub { return $a or $b; }
748
749This is parsed as:
750
751 sub { (return $a) or $b; }
752
753Which is effectively just:
754
755 sub { return $a; }
756
757Either use parentheses or the high-precedence variant of the operator.
758
759Note this may be also triggered for constructs like:
760
761 sub { 1 if die; }
762
763=item *
764
765L<Scalar value %%s[%s] better written as $%s[%s]|perldiag/"Scalar value %%s[%s] better written as $%s[%s]">
766
767(W syntax) In scalar context, you've used an array index/value slice (indicated
768by %) to select a single element of an array. Generally it's better to ask for
769a scalar value (indicated by $). The difference is that C<$foo[&bar]> always
770behaves like a scalar, both in the value it returns and when evaluating its
771argument, while C<%foo[&bar]> provides a list context to its subscript, which
772can do weird things if you're expecting only one subscript. When called in
773list context, it also returns the index (what C<&bar> returns) in addition to
774the value.
775
776=item *
777
778L<Scalar value %%s{%s} better written as $%s{%s}|perldiag/"Scalar value %%s{%s} better written as $%s{%s}">
779
780(W syntax) In scalar context, you've used a hash key/value slice (indicated by
781%) to select a single element of a hash. Generally it's better to ask for a
782scalar value (indicated by $). The difference is that C<$foo{&bar}> always
783behaves like a scalar, both in the value it returns and when evaluating its
784argument, while C<@foo{&bar}> and provides a list context to its subscript,
785which can do weird things if you're expecting only one subscript. When called
786in list context, it also returns the key in addition to the value.
787
12dcbffb 788=back
1310e590 789
ba03bc34
SH
790=head2 Changes to Existing Diagnostics
791
792XXX Changes (i.e. rewording) of diagnostic messages go here
e727f86a 793
12dcbffb 794=over 4
e727f86a 795
81ca6d44
FC
796=item *
797
c1d900c3
BF
798Warnings and errors from the regexp engine are now UTF-8 clean
799
800=item *
801
99366d6d
SH
802The "Unknown switch condition" error message has some slight changes. This
803error triggers when there is an unknown condition in a C<(?(foo))> conditional.
804The error message used to read:
c1d900c3
BF
805
806 Unknown switch condition (?(%s in regex;
807
99366d6d
SH
808But what %s could be was mostly up to luck. For C<(?(foobar))>, you might have
809seen "fo" or "f". For Unicode characters, you would generally get a corrupted
810string. The message has been changed to read:
c1d900c3
BF
811
812 Unknown switch condition (?(...)) in regex;
813
99366d6d
SH
814Additionally, the C<'E<lt>-- HERE'> marker in the error will now point to the
815correct spot in the regex.
e38fc308 816
4a0af295
SH
817=item *
818
819The "%s "\x%X" does not map to Unicode" warning is now correctly listed as a
820severe warning rather than as a fatal error.
821
ba03bc34 822=back
a34da6c4 823
ba03bc34 824=head1 Utility Changes
a34da6c4 825
ba03bc34
SH
826XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
827Most of these are built within the directories F<utils> and F<x2p>.
558673e6 828
ba03bc34
SH
829[ List utility changes as a =head3 entry for each utility and =item
830entries for each change
831Use L<XXX> with program names to get proper documentation linking. ]
558673e6 832
b2d74da6 833=head3 L<find2perl>
47a7c93d 834
12dcbffb 835=over 4
b5a80c26 836
7f1d4316
FC
837=item *
838
99366d6d 839L<find2perl> now handles C<?> wildcards correctly. [perl #113054]
7f1d4316 840
ba03bc34 841=back
ef947715 842
ba03bc34 843=head1 Configuration and Compilation
ef947715 844
ba03bc34
SH
845XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
846go here. Any other changes to the Perl build process should be listed here.
847However, any platform-specific changes should be listed in the
848L</Platform Support> section, instead.
02bef66e 849
ba03bc34 850[ List changes as a =item entry ].
d30fb844 851
12dcbffb 852=over 4
21c01741 853
467582e8
FC
854=item *
855
e1c60bf3
SH
856The F<Makefile.PL> for C<SDBM_File> now generates a better F<Makefile>, which
857avoids a race condition during parallel makes, which could cause the build to
858fail. This is the last known parallel make problem (on *nix platforms), and
859therefore we believe that a parallel make should now always be error free.
4d106cc5
NC
860
861=for comment
862
863Strictly only for a build where build files such as F<Makefile.SH> have not
864been updated by C<git> in an already configured and built tree.
467582e8 865
ba03bc34 866=back
64da853d 867
ba03bc34 868=head1 Testing
8847717e 869
ba03bc34
SH
870XXX Any significant changes to the testing of a freshly built perl should be
871listed here. Changes which create B<new> files in F<t/> go here as do any
872large changes to the testing harness (e.g. when parallel testing was added).
873Changes to existing files in F<t/> aren't worth summarizing, although the bugs
874that they represent may be covered elsewhere.
8847717e 875
ba03bc34 876[ List each test improvement as a =item entry ]
f1b856da 877
ba03bc34 878=over 4
f1b856da 879
eaed284b
FC
880=item *
881
5b903226 882The test script F<t/bigmem/regexp.t> has been added to test that regular
28f52e64 883expression matches on very large strings now succeed as expected.
8c24c1f7
SH
884
885=item *
886
215588ba
SH
887A bug that was fixed in Perl 5.15.4 is now tested by the new test script
888F<t/io/eintr_print.t>. [perl #119097]
889
890=item *
891
b895ac6f
SH
892The new test scripts F<t/op/kvaslice.t> and F<t/op/kvhslice.t> test the new
893index/value array slice and key/value hash slice syntax respectively.
894
895=item *
896
5b903226
SH
897Various cases of C<die>, C<last>, C<goto> and C<exit> triggering C<DESTROY> are
898now tested by the new test script F<t/op/rt119311.t>.
8c24c1f7
SH
899
900=item *
901
215588ba
SH
902The new test script F<t/op/waitpid.t> tests the fix for [perl #85228] (see
903L</Selected Bug Fixes>).
904
905=item *
906
b895ac6f
SH
907The latest copyright years in the top-level F<README> file and the B<perl -v>
908output are now tested as matching each other by the new test script
909F<t/porting/copyright.t>
910
911=item *
912
99366d6d
SH
913The new test script F<t/win32/signal.t> tests that $! and $^E are now preserved
914across signal handlers by the Win32 signal emulation code.
8c24c1f7
SH
915
916=item *
917
5b903226
SH
918The test script F<t/x2p/find2perl.t> has been added to test the F<find2perl>
919program on platforms where it is practical to do so.
eaed284b 920
ba03bc34 921=back
0335212c 922
ba03bc34 923=head1 Platform Support
0335212c 924
ba03bc34 925XXX Any changes to platform support should be listed in the sections below.
c3e455cf 926
ba03bc34
SH
927[ Within the sections, list each platform as a =item entry with specific
928changes as paragraphs below it. ]
c3e455cf 929
ba03bc34 930=head2 New Platforms
019705bc 931
ba03bc34
SH
932XXX List any platforms that this version of perl compiles on, that previous
933versions did not. These will either be enabled by new files in the F<hints/>
934directories, or new subdirectories and F<README> files at the top level of the
935source tree.
019705bc 936
ba03bc34 937=over 4
25921d77 938
44d412d1 939=item Bitrig
25921d77 940
489ee6b6 941Compile support has been added for Bitrig, a fork of OpenBSD.
28ea507e 942
ba03bc34 943=back
28ea507e 944
ba03bc34 945=head2 Discontinued Platforms
28ea507e 946
99366d6d
SH
947Configure hints and conditional code for several very old platforms has been
948removed. We have not received reports for these in many years, typically not
949since Perl 5.6.0.
7b0e9f13 950
ba03bc34 951=over 4
074d6753 952
7b0e9f13 953=item AT&T 3b1
074d6753 954
99366d6d
SH
955Configure support for the 3b1, also known as the AT&T Unix PC (and the similar
956AT&T 7300), has been removed.
4e5b563d 957
ba03bc34 958=back
4e5b563d 959
ba03bc34 960=head2 Platform-Specific Notes
ee818f56 961
ba03bc34
SH
962XXX List any changes for specific platforms. This could include configuration
963and compilation changes or changes in portability/compatibility. However,
964changes within modules for platforms should generally be listed in the
965L</Modules and Pragmata> section.
ee818f56 966
ba03bc34 967=over 4
c054cc81 968
37b0da2e 969=item Win32
ff3b1402
CM
970
971C<rename> and C<link> on Win32 now set C<$!> to ENOSPC and EDQUOT when appropriate. [perl #119857]
972
8c24c1f7 973=item WinCE
c054cc81 974
942cddc4
SH
975Perl now builds again on WinCE, following locale-related breakage (WinCE has
976non-existent locale support) introduced around 5.19.1. [perl #119443]
977
99366d6d 978The building of XS modules has largely been restored. Several still cannot
5b903226
SH
979(yet) be built but it is now possible to build Perl on WinCE with only a couple
980of further patches (to L<Socket> and L<ExtUtils::MakeMaker>), hopefully to be
981incorporated soon.
efcbb8b2 982
846aaad8
CBW
983=item GNU/Hurd
984
985The BSD compatibility library C<libbsd> is no longer required for builds.
986
ba03bc34 987=back
efcbb8b2 988
ba03bc34 989=head1 Internal Changes
36813eeb 990
ba03bc34
SH
991XXX Changes which affect the interface available to C<XS> code go here. Other
992significant internal changes for future core maintainers should be noted as
993well.
36813eeb 994
ba03bc34 995[ List each change as a =item entry ]
52937067 996
ba03bc34 997=over 4
52937067 998
6760cac5
FC
999=item *
1000
99366d6d
SH
1001The internal representation has changed for the match variables $1, $2 etc.,
1002$`, $&, $', ${^PREMATCH}, ${^MATCH} and ${^POSTMATCH}. It uses slightly less
1003memory, avoids string comparisons and numeric conversions during lookup, and
1004uses 23 fewer lines of C. This change should not affect any external code.
671f9ff7 1005
c2ee494e
FC
1006=item *
1007
1008Arrays now use NULL internally to represent unused slots, instead of
99366d6d
SH
1009&PL_sv_undef. &PL_sv_undef is no longer treated as a special value, so
1010av_store(av, 0, &PL_sv_undef) will cause element 0 of that array to hold a
1011read-only undefined scalar. C<$array[0] = anything> will croak and
c2ee494e
FC
1012C<\$array[0]> will compare equal to C<\undef>.
1013
6a67a797
TC
1014=item *
1015
1016The SV returned by HeSVKEY_force() now correctly reflects the UTF8ness
1017of the underlying hash key when that key is not stored as a SV. [perl
1018#79074]
1019
972690a1
KW
1020=item *
1021
1022Certain rarely used functions and macros available to C<XS> code are
1023now, or are planned to be deprecated. These are:
1024C<utf8n_to_uvuni> (use C<utf8_to_uvchr_buf> instead),
1025C<utf8_to_uni_buf> (use C<utf8_to_uvchr_buf> instead),
1026C<valid_utf8_to_uvuni> (use C<utf8_to_uvchr_buf> instead),
1027C<uvuni_to_utf8> (use C<uvchr_to_utf8> instead),
1028C<NATIVE_TO_NEED> (this did not work properly anyway),
1029and C<ASCII_TO_NEED> (this did not work properly anyway).
1030
1031Starting in this release, almost never does application code need to
1032distinguish between the platform's character set and Latin1, on which the
1033lowest 256 characters of Unicode are based.
1034
ba03bc34 1035=back
671f9ff7 1036
ba03bc34 1037=head1 Selected Bug Fixes
912a9a8f 1038
ba03bc34
SH
1039XXX Important bug fixes in the core language are summarized here. Bug fixes in
1040files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
912a9a8f 1041
ba03bc34 1042[ List each fix as a =item entry ]
0d25b9d4 1043
ba03bc34 1044=over 4
0d25b9d4 1045
a82207ba
FC
1046=item *
1047
99366d6d 1048The value of $^E is now saved across signal handlers on Windows. [perl #85104]
18e2e6cd 1049
85037c5c
FC
1050=item *
1051
99366d6d
SH
1052A lexical filehandle (as in C<open my $fh...>) is usually given a name based on
1053the current package and the name of the variable, e.g. "main::$fh". Under
1054recursion, the filehandle was losing the "$fh" part of the name. This has been
1055fixed.
85037c5c 1056
0664879b
FC
1057=item *
1058
99366d6d
SH
1059Perl 5.19.3 accidentally extended the previous bug to all closures, even when
1060not called recursively, i.e. lexical handles in closure would always be called
1061"main::" or "MyPackage::" etc. This has been fixed.
0664879b 1062
343e7167
FC
1063=item *
1064
99366d6d
SH
1065Uninitialized values returned by XSUBs are no longer exempt from uninitialized
1066warnings. [perl #118693]
343e7167 1067
1261f9a2
FC
1068=item *
1069
99366d6d 1070C<elsif ("")> no longer erroneously produces a warning about void context.
1261f9a2
FC
1071[perl #118753]
1072
c2ee494e
FC
1073=item *
1074
99366d6d
SH
1075Passing C<undef> to a subroutine now causes @_ to contain the same read-only
1076undefined scalar that C<undef> returns. Furthermore, C<exists $_[0]> will now
1077return true if C<undef> was the first argument. [perl #7508, #109726]
c2ee494e 1078
21c314ca
FC
1079=item *
1080
99366d6d
SH
1081Passing a nonexistent array element to a subroutine does not usually autovivify
1082it unless the subroutine modifies its argument. This did not work correctly
1083with negative indices and with nonexistent elements within the array. The
1084element would be vivified immediately. The delayed vivification has been
1085extended to work with those. [perl #118691]
21c314ca 1086
7a7c28da
FC
1087=item *
1088
99366d6d
SH
1089Assigning references or globs to the scalar returned by $#foo after the @foo
1090array has been freed no longer causes assertion failures on debugging builds
1091and memory leaks on regular builds.
7a7c28da 1092
8bdbe216
FC
1093=item *
1094
99366d6d
SH
1095Perl 5.19.2 threw line numbers off after some cases of line breaks following
1096keywords, such as
8bdbe216
FC
1097
1098 1 unless
1099 1;
1100
1101This has been fixed. [perl #118931]
1102
96c0ab99
FC
1103=item *
1104
99366d6d
SH
1105On 64-bit platforms, large ranges like 1..1000000000000 no longer crash, but
1106eat up all your memory instead. [perl #119161]
96c0ab99 1107
c2823449
FC
1108=item *
1109
1110C<__DATA__> now puts the C<DATA> handle in the right package, even if the
1111current package has been renamed through glob assignment.
1112
ab82aa51
FC
1113=item *
1114
1115The string position set by C<pos> could shift if the string changed
1116representation internally to or from utf8. This could happen, e.g., with
1117references to objects with string overloading.
1118
c4403db5
FC
1119=item *
1120
cabe2f6f
FC
1121Taking references to the return values of two C<pos> calls with the same
1122argument, and then assigning a reference to one and C<undef> to the other,
1123could result in assertion failures or memory leaks.
1124
1125=item *
1126
99366d6d
SH
1127Elements of @- and @+ now update correctly when they refer to nonexistent
1128captures. Previously, a referenced element (C<$ref = \$-[1]>) could refer to
1129the wrong match after subsequent matches.
c4403db5 1130
e7f2d651
FC
1131=item *
1132
99366d6d
SH
1133When C<die>, C<last>, C<next>, C<redo>, C<goto> and C<exit> unwind the scope,
1134it is possible for C<DESTROY> recursively to call a subroutine or format that
1135is currently being exited. It that case, sometimes the lexical variables
1136inside the sub would start out having values from the outer call, instead of
1137being undefined as they should. This has been fixed. [perl #119311]
e7f2d651 1138
d66ad208
FC
1139=item *
1140
99366d6d 1141${^MPEN} is no longer treated as a synonym for ${^MATCH}.
d66ad208 1142
ab70e266
FC
1143=item *
1144
1145Perl now tries a little harder to return the correct line number in
1146C<(caller)[2]>. [perl #115768]
1147
ae66f305
FC
1148=item *
1149
99366d6d
SH
1150Line numbers inside multiline quote-like operators are now reported correctly.
1151[perl #3643]
ae66f305
FC
1152
1153=item *
1154
99366d6d
SH
1155C<#line> directives inside code embedded in quote-like operators are now
1156respected.
ae66f305 1157
f8f2d1ac
FC
1158=item *
1159
bc86bb16
FC
1160Line numbers are now correct inside the second here-doc when two here-doc
1161markers occur on the same line.
1162
1163=item *
1164
99366d6d
SH
1165Starting with Perl 5.12, line numbers were off by one if the B<-d> switch was
1166used on the #! line. Now they are correct.
b3c26d51
FC
1167
1168=item *
1169
99366d6d
SH
1170Perl 5.19.2 inadvertently stopped some lines of code from being available to
1171the debugger if C<=E<gt>> occurred at the beginning of a line and the previous
1172line ended with a keyword. This is now fixed.
f8f2d1ac 1173
ac29d451
FC
1174=item *
1175
99366d6d
SH
1176Perl 5.19.2 allowed the PERL5DB environment variable to contain multiple lines
1177of code, but those lines were not made available to the debugger. Now they are
1178all stuffed into line number 0, accessible via C<$dbline[0]> in the debugger.
b3c26d51
FC
1179
1180=item *
1181
ac29d451
FC
1182An optimisation in Perl 5.18 made incorrect assumptions causing a bad
1183interaction with the L<Devel::CallParser> CPAN module. If the module was
99366d6d
SH
1184loaded then lexical variables declared in separate statements following a
1185C<my(...)> list might fail to be cleared on scope exit.
ac29d451 1186
f34cd7c8
FC
1187=item *
1188
99366d6d
SH
1189C<&xsub> and C<goto &xsub> calls now allow the called subroutine to autovivify
1190elements of @_.
f34cd7c8 1191
6f9296e1
FC
1192=item *
1193
99366d6d
SH
1194C<&xsub> and C<goto &xsub> no longer crash if *_ has been undefined and has no
1195ARRAY entry (i.e. @_ does not exist).
6f9296e1 1196
82d5eae5
FC
1197=item *
1198
1144b44d
FC
1199C<&xsub> and C<goto &xsub> now work with tied @_.
1200
1201=item *
1202
82d5eae5
FC
1203Overlong identifiers no longer cause a buffer overflow (and a crash). They
1204started doing so in Perl 5.18.
1205
cfbe45f9
FC
1206=item *
1207
99366d6d
SH
1208The warning "Scalar value @hash{foo} better written as $hash{foo}" now produces
1209far fewer false positives. In particular, C<@hash{+function_returning_a_list}>
1210and C<@hash{ qw "foo bar baz" }> no longer warn. The same applies to array
1211slices. [perl #28380, #114024]
cfbe45f9 1212
853f2d20
TC
1213=item *
1214
215588ba
SH
1215C< $! = EINVAL; waitpid(0, WNOHANG); > no longer goes into an internal infinite
1216loop. [perl #85228]
853f2d20 1217
ba03bc34 1218=back
18e2e6cd 1219
ba03bc34 1220=head1 Known Problems
a82207ba 1221
ba03bc34
SH
1222XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
1223tests that had to be C<TODO>ed for the release would be noted here. Unfixed
1224platform specific bugs also go here.
31d5dc65 1225
ba03bc34 1226[ List each fix as a =item entry ]
31d5dc65 1227
ba03bc34 1228=over 4
31d5dc65 1229
74dac2b5
FC
1230=item *
1231
ba03bc34 1232XXX
74dac2b5 1233
ba03bc34 1234=back
8fecfff0 1235
ba03bc34 1236=head1 Obituary
8fecfff0 1237
ba03bc34
SH
1238XXX If any significant core contributor has died, we've added a short obituary
1239here.
d7bfa554 1240
583aa5c2 1241=head1 Acknowledgements
a75569c0 1242
ba03bc34
SH
1243XXX Generate this with:
1244
1245 perl Porting/acknowledgements.pl v5.19.3..HEAD
f5b73711 1246
44691e6f
AB
1247=head1 Reporting Bugs
1248
e08634c5
SH
1249If you find what you think is a bug, you might check the articles recently
1250posted to the comp.lang.perl.misc newsgroup and the perl bug database at
1251http://rt.perl.org/perlbug/ . There may also be information at
1252http://www.perl.org/ , the Perl Home Page.
44691e6f 1253
e08634c5
SH
1254If you believe you have an unreported bug, please run the L<perlbug> program
1255included with your release. Be sure to trim your bug down to a tiny but
1256sufficient test case. Your bug report, along with the output of C<perl -V>,
1257will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
1258
1259If the bug you are reporting has security implications, which make it
e08634c5
SH
1260inappropriate to send to a publicly archived mailing list, then please send it
1261to perl5-security-report@perl.org. This points to a closed subscription
1262unarchived mailing list, which includes all the core committers, who will be
1263able to help assess the impact of issues, figure out a resolution, and help
f9001595 1264co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
1265platforms on which Perl is supported. Please only use this address for
1266security issues in the Perl core, not for modules independently distributed on
1267CPAN.
44691e6f
AB
1268
1269=head1 SEE ALSO
1270
e08634c5
SH
1271The F<Changes> file for an explanation of how to view exhaustive details on
1272what changed.
44691e6f
AB
1273
1274The F<INSTALL> file for how to build Perl.
1275
1276The F<README> file for general stuff.
1277
1278The F<Artistic> and F<Copying> files for copyright information.
1279
1280=cut