This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Test out-of-bounds warning with lv substr
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
541cb22c 3=for comment
66008486 4This has been completed up to a74fb2cdc8f, except for
61f966e7 5e032854 khw [perl #32080] is_utf8_string() reads too far
541cb22c 6
44691e6f
AB
7=head1 NAME
8
0aaeb177
SH
9[ this is a template for a new perldelta file. Any text flagged as
10XXX needs to be processed before release. ]
760696b8 11
0aaeb177 12perldelta - what is new for perl v5.15.6
062678b2 13
0aaeb177 14=head1 DESCRIPTION
ad32999b 15
0aaeb177
SH
16This document describes differences between the 5.15.5 release and
17the 5.15.6 release.
ad32999b 18
0aaeb177
SH
19If you are upgrading from an earlier release such as 5.15.4, first read
20L<perl5155delta>, which describes differences between 5.15.4 and
215.15.5.
ad32999b 22
0aaeb177 23=head1 Notice
ad32999b 24
0aaeb177 25XXX Any important notices here
ad32999b 26
0aaeb177 27=head1 Core Enhancements
a3f52e2e 28
0aaeb177
SH
29XXX New core language features go here. Summarise user-visible core language
30enhancements. Particularly prominent performance optimisations could go
31here, but most should go in the L</Performance Enhancements> section.
a3f52e2e 32
0aaeb177 33[ List each enhancement as a =head2 entry ]
6d110ad0 34
61f966e7
FC
35=head2 C<__SUB__>
36
37The new C<__SUB__> token, available under the "current_sub" feature (see
38L<feature>) or C<use v5.15>, returns a reference to the current subroutine,
39making it easier to write recursive closures.
40
d1fb015b
FC
41=head2 New option for the debugger's B<t> command
42
43The B<t> command in the debugger, which toggles tracing mode, now accepts a
44numerical argument that determines how many levels of subroutine calls to
45trace.
46
e3c71926 47=head1 Security
6d110ad0 48
0aaeb177
SH
49XXX Any security-related notices go here. In particular, any security
50vulnerabilities closed should be noted here rather than in the
51L</Selected Bug Fixes> section.
6d110ad0 52
0aaeb177 53[ List each security issue as a =head2 entry ]
6d110ad0 54
e3c71926 55=head1 Incompatible Changes
6d110ad0 56
0aaeb177 57XXX For a release on a stable branch, this section aspires to be:
ad32999b 58
0aaeb177
SH
59 There are no changes intentionally incompatible with 5.XXX.XXX
60 If any exist, they are bugs and reports are welcome.
ad32999b 61
0aaeb177 62[ List each incompatible change as a =head2 entry ]
ad32999b 63
66008486
FC
64=head2 C<substr> lvalue revamp
65
66When C<substr> is called in lvalue or potential lvalue context with two or
67three arguments, a special lvalue scalar is returned that modifies the
68original string (the first argument) when assigned to.
69
70Previously, the offsets (the second and third arguments) passed to
71C<substr> would be converted immediately to match the string, negative
72offsets being translated to positive and offsets beyond the end of the
73string being truncated.
74
75Now, the offsets are recorded without modification in the special lvalue
76scalar that is returned, and the original string is not even looked at by
77C<substr> itself, but only when the returned lvalue is read or modified.
78
79These changes result in several incompatible changes and bug fixes:
80
81=over
82
83=item *
84
85If the original string changes length after the call to C<substr> but
86before assignment to its return value, negative offsets will remember
87their position from the end of the string, affecting code like this:
88
89 my $string = "string";
90 my $lvalue = \substr $string, -4, 2;
91 print $lvalue, "\n"; # prints "ri"
92 $string = "bailing twine";
93 print $lvalue, "\n"; # prints "wi"; used to print "il"
94
95The same thing happens with an omitted third argument. The returned lvalue
96will always extend to the end of the string, even if the string becomes
97longer.
98
99=item *
100
101Tied (and otherwise magical) variables are no longer exempt from the
102"Attempt ot use reference as lvalue in substr" warning.
103
104=item *
105
106That warning now occurs when the returned lvalue is assigned to, not when
107C<substr> itself is called. This only makes a difference if the return
108value of C<substr> is referenced and assigned to later.
109
110=item *
111
112The order in which "uninitialized" warnings occur for arguments to
113C<substr> has changed.
114
115=item *
116
117Passing a substring of a read-only value or a typeglob to a function (potential lvalue context) no longer causes an immediate "Can't coerce" or "Modification of a read-only value" error. That error only occurs if and
118when the value passed is assigned to.
119
120The same thing happens with the "substr outside of string" error.
121
122=item *
123
124C<substr> assignments no longer call FETCH twice if the first argument is a
125tied variable, but just once.
126
127=back
128
129It was impossible to fix all the bugs without an incompatible change, and
130the behaviour of negative offsets was never specified, so the change was
131deemed acceptable.
132
541cb22c
FC
133=head2 XS API tweak
134
135The C<newCONSTSUB_flags> C-level function, added in 5.15.4, now has a
136C<len> parameter.
137
e3c71926 138=head1 Deprecations
6d110ad0 139
0aaeb177
SH
140XXX Any deprecated features, syntax, modules etc. should be listed here.
141In particular, deprecated modules should be listed here even if they are
142listed as an updated module in the L</Modules and Pragmata> section.
ae92a9ae 143
0aaeb177 144[ List each deprecation as a =head2 entry ]
ae92a9ae 145
e3c71926 146=head1 Performance Enhancements
6d110ad0 147
0aaeb177
SH
148XXX Changes which enhance performance without changing behaviour go here. There
149may well be none in a stable release.
150
151[ List each enhancement as a =item entry ]
152
e3c71926 153=over 4
6d110ad0
FC
154
155=item *
156
679b54e7
FC
157Perl 5.12.0 sped up the destruction of objects whose classes define empty
158C<DESTROY> methods (to prevent autoloading), simply by not calling such
159empty methods. This release takes this optimisation a step further, by not
160calling any C<DESTROY> method that begins with an C<return> statement.
161This can be useful for destructors that are only used for debugging:
162
163 use constant DEBUG => 1;
164 sub DESTROY { return unless DEBUG; ... }
165
166Constant-folding will reduce the first statement to C<return;> if DEBUG is
167set to 0, triggering this optimisation.
6d110ad0 168
d1fb015b
FC
169=item *
170
171Assign to a variable that holds a typeglob or copy-on-write scalar is now
172much faster. Previously the typeglob would be stringified or the
173copy-on-write scalar would be copied before being clobbered.
174
e3c71926 175=back
6d110ad0 176
e3c71926 177=head1 Modules and Pragmata
6d110ad0 178
0aaeb177
SH
179XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
180go here. If Module::CoreList is updated, generate an initial draft of the
181following sections using F<Porting/corelist-perldelta.pl>, which prints stub
182entries to STDOUT. Results can be pasted in place of the '=head2' entries
183below. A paragraph summary for important changes should then be added by hand.
184In an ideal world, dual-life modules would have a F<Changes> file that could be
185cribbed.
186
187[ Within each section, list entries as a =item entry ]
188
e3c71926 189=head2 New Modules and Pragmata
6d110ad0 190
e3c71926 191=over 4
6d110ad0
FC
192
193=item *
194
0aaeb177 195XXX
6d110ad0
FC
196
197=back
198
e3c71926 199=head2 Updated Modules and Pragmata
6d110ad0 200
e3c71926 201=over 4
6d110ad0
FC
202
203=item *
204
f8c9502f
CBW
205L<Archive::Tar> has been upgraded from version 1.80 to version 1.82.
206
207Adjustments to handle files >8gb (>0777777777777 octal) and a feature to
208return the MD5SUM of files in the archive.
a3f52e2e 209
87b9431e
CBW
210=item *
211
74c26f06
CBW
212L<AutoLoader> has been upgraded from version 5.71 to version 5.72.
213
214=item *
215
8cea0f87
CBW
216L<B::Debug> has been upgraded from version 1.16 to version 1.17.
217
218=item *
219
679b54e7
FC
220L<B::Deparse> has been upgraded from version 1.09 to 1.10.
221
222C<sort(foo(bar))> is now deparsed correctly. (C<sort foo(bar)>, how it used
223to deparse, makes foo the sort routine, rather than a regular function
224call.)
225
226=item *
227
9505dd85 228L<Compress::Raw::Zlib> has been upgraded from version 2.042 to version 2.045.
87b9431e 229
7e700369
CBW
230=item *
231
6475ddc2 232L<Compress::Raw::Bzip2> has been upgraded from version 2.042 to version 2.045.
7e700369 233
dc7edc5c
CBW
234=item *
235
61f966e7
FC
236L<Data::Dumper> has been upgraded from version 2.134 to 2.135.
237
238The XS implementation has been updated to account for the Unicode symbol
239changes in Perl 5.15.4. It also knows how to output typeglobs with nulls
240in their names.
241
242=item *
243
ac616993
CBW
244L<ExtUtils::ParseXS> has been upgraded from version 3.05 to version 3.07.
245
246=item *
247
090349ce 248L<IO::Compress::Base> has been upgraded from version 2.042 to version 2.045.
08ad9465
CBW
249
250Added zipdetails utility.
dc7edc5c 251
7788a270
CBW
252=item *
253
4345d05b
CBW
254L<Locale::Codes> has been upgraded from version 3.18 to version 3.20.
255
256The code2XXX, XXX2code, all_XXX_codes, and all_XXX_names functions now support retired codes.
257All codesets may be specified by a constant or by their name now. Previously,
258they were specified only by a constant.
259The alias_code function exists for backward compatibility. It has been replaced by rename_country_code.
260The alias_code function will be removed sometime after September, 2013.
261All work is now done in the central module (Locale::Codes). Previously, some was still done in the
262wrapper modules (Locale::Codes::*) but that is gone now.
263Added Language Family codes (langfam) as defined in ISO 639-5.
264
265=item *
266
b42ff875
CBW
267L<Module::Loaded> has been uprgaded from version 0.06 to version 0.08.
268
269=item *
270
a71d67b1
CBW
271L<Pod::LaTeX> has been upgraded from version 0.59 to version 0.60.
272
273Added another LaTeX escape: --- => -{}-{}-
274
275Pod::LaTeX doesn't handle -- in PODs specially, passing it directly to
276LaTeX, which then proceeds to replace it with a single -. This patch
277replaces ----- with -{}-{}-{}-{}-
278
279=item *
280
65ae8d99 281L<Unicode::Collate> has been upgraded from version 0.85 to version 0.87.
7788a270
CBW
282
283Tailored compatibility ideographs as well as unified ideographs for
284the locales: ja, ko, zh__big5han, zh__gb2312han, zh__pinyin, zh__stroke.
285
65ae8d99
CBW
286Now Locale/*.pl files are searched in @INC.
287
0aaeb177 288=back
6138a722 289
0aaeb177 290=head2 Removed Modules and Pragmata
6138a722 291
0aaeb177 292=over 4
be539103 293
a47fb3fe
CBW
294=item *
295
0aaeb177 296XXX
a3f52e2e 297
0aaeb177 298=back
a3f52e2e 299
0aaeb177 300=head1 Documentation
a3f52e2e 301
0aaeb177
SH
302XXX Changes to files in F<pod/> go here. Consider grouping entries by
303file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a3f52e2e 304
0aaeb177 305=head2 New Documentation
ad32999b 306
0aaeb177 307XXX Changes which create B<new> files in F<pod/> go here.
ad32999b 308
0aaeb177 309=head3 L<XXX>
ad32999b 310
0aaeb177 311XXX Description of the purpose of the new file here
6138a722 312
0aaeb177 313=head2 Changes to Existing Documentation
6138a722 314
0aaeb177
SH
315XXX Changes which significantly change existing files in F<pod/> go here.
316However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
317section.
a47fb3fe 318
0aaeb177 319=head3 L<XXX>
a47fb3fe 320
0aaeb177 321=over 4
7ef25837 322
6d110ad0
FC
323=item *
324
0aaeb177 325XXX Description of the change here
6d110ad0
FC
326
327=back
328
e3c71926
FR
329=head1 Diagnostics
330
331The following additions or changes have been made to diagnostic output,
332including warnings and fatal error messages. For the complete list of
333diagnostic messages, see L<perldiag>.
6d110ad0 334
0aaeb177
SH
335XXX New or changed warnings emitted by the core's C<C> code go here. Also
336include any changes in L<perldiag> that reconcile it to the C<C> code.
6138a722 337
0aaeb177
SH
338[ Within each section, list entries as a =item entry that links to perldiag,
339 e.g.
6138a722 340
0aaeb177 341 =item *
6138a722 342
0aaeb177
SH
343 L<Invalid version object|perldiag/"Invalid version object">
344]
6138a722 345
0aaeb177 346=head2 New Diagnostics
828d6195 347
0aaeb177 348XXX Newly added diagnostic messages go here
83307084 349
0aaeb177 350=head3 New Errors
d39de893 351
3432e5a1 352=over 4
39afdc5a
CBW
353
354=item *
355
0aaeb177 356XXX L<message|perldiag/"message">
6138a722 357
e3c71926 358=back
7b8e5ef0 359
0aaeb177 360=head3 New Warnings
91710846 361
e3c71926 362=over 4
91710846
DG
363
364=item *
365
0aaeb177 366XXX L<message|perldiag/"message">
f81e39ef 367
e3c71926 368=back
a2fa999d 369
0aaeb177
SH
370=head2 Changes to Existing Diagnostics
371
372XXX Changes (i.e. rewording) of diagnostic messages go here
bd65daab 373
e3c71926 374=over 4
bd65daab 375
3f2cb5bf
SM
376=item *
377
18fbfe8d
FC
378Redefinition warnings for constant subroutines used to be mandatory, even
379occurring under C<no warnings>. Now they respect the L<warnings> pragma.
b420b12a 380
61f966e7
FC
381=item *
382
383The "Attempt to free non-existent shared string" has had the spelling of
384"non-existent" corrected to "nonexistent". It was already listed with the
385correct spelling in L<perldiag>.
386
66008486
FC
387=item *
388
389The 'Use of "foo" without parentheses is ambiguous' warning has been
390extended to apply also to user-defined subroutines with a (;$) prototype,
391and not just to built-in functions.
392
3432e5a1 393=back
b420b12a 394
0aaeb177 395=head1 Utility Changes
9cfd094e 396
0aaeb177
SH
397XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
398here. Most of these are built within the directories F<utils> and F<x2p>.
95f7e41f 399
0aaeb177
SH
400[ List utility changes as a =head3 entry for each utility and =item
401entries for each change
402Use L<XXX> with program names to get proper documentation linking. ]
95f7e41f 403
08ad9465 404=head3 L<zipdetails>
d6cf2367 405
e3c71926 406=over 4
b53e16ae
FC
407
408=item *
409
08ad9465
CBW
410L<zipdetails> displays information about the internal record structure of the zip file.
411It is not concerned with displaying any details of the compressed data stored in the zip file.
b53e16ae 412
3432e5a1 413=back
60092ce4 414
0aaeb177
SH
415=head1 Configuration and Compilation
416
417XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
418go here. Any other changes to the Perl build process should be listed here.
419However, any platform-specific changes should be listed in the
420L</Platform Support> section, instead.
421
422[ List changes as a =item entry ].
309aab3a 423
e3c71926 424=over 4
b53e16ae
FC
425
426=item *
427
60f0ee9d
NC
428F<pod/roffitall> is now build by F<pod/buildtoc>, instead of being shipped
429with the distribution. Its list of manpages is now generated (and therefore
430current). See also RT #103202 for an unresolved related issue.
a3f52e2e 431
61f966e7
FC
432=item *
433
434Perl 5.15.5 had a bug in its installation script, which did not install
435F<unicore/Name.pm>. This has been corrected [perl #104226].
436
437XXX Is that Perl version correct? Is the file path correct?
438
0aaeb177 439=back
a3f52e2e 440
0aaeb177 441=head1 Testing
a3f52e2e 442
0aaeb177
SH
443XXX Any significant changes to the testing of a freshly built perl should be
444listed here. Changes which create B<new> files in F<t/> go here as do any
445large changes to the testing harness (e.g. when parallel testing was added).
446Changes to existing files in F<t/> aren't worth summarising, although the bugs
447that they represent may be covered elsewhere.
a3f52e2e 448
0aaeb177 449[ List each test improvement as a =item entry ]
a3f52e2e 450
0aaeb177 451=over 4
a3f52e2e
FC
452
453=item *
454
d1fb015b
FC
455The F<substr.t> and F<substr_thr.t> scripts for testing C<substr> have been
456moved under F<t/op/>, where they were originally. They had been moved
457under F<t/re/> along with the substitution tests when that directory was
458created.
a3f52e2e 459
0aaeb177 460=back
a3f52e2e 461
0aaeb177 462=head1 Platform Support
a3f52e2e 463
0aaeb177 464XXX Any changes to platform support should be listed in the sections below.
a3f52e2e 465
0aaeb177
SH
466[ Within the sections, list each platform as a =item entry with specific
467changes as paragraphs below it. ]
a3f52e2e 468
0aaeb177 469=head2 New Platforms
a3f52e2e 470
0aaeb177
SH
471XXX List any platforms that this version of perl compiles on, that previous
472versions did not. These will either be enabled by new files in the F<hints/>
473directories, or new subdirectories and F<README> files at the top level of the
474source tree.
a3f52e2e 475
0aaeb177 476=over 4
a3f52e2e 477
0aaeb177 478=item XXX-some-platform
a3f52e2e 479
0aaeb177 480XXX
a3f52e2e 481
0aaeb177 482=back
a3f52e2e 483
0aaeb177 484=head2 Discontinued Platforms
ca955add 485
0aaeb177 486XXX List any platforms that this version of perl no longer compiles on.
bbdd8bad 487
0aaeb177 488=over 4
bbdd8bad 489
0aaeb177 490=item XXX-some-platform
ad32999b 491
0aaeb177 492XXX
ad32999b 493
0aaeb177 494=back
ad32999b 495
0aaeb177 496=head2 Platform-Specific Notes
ad32999b 497
0aaeb177
SH
498XXX List any changes for specific platforms. This could include configuration
499and compilation changes or changes in portability/compatibility. However,
500changes within modules for platforms should generally be listed in the
501L</Modules and Pragmata> section.
ad32999b 502
0aaeb177 503=over 4
ad32999b 504
0aaeb177 505=item XXX-some-platform
ad32999b 506
0aaeb177 507XXX
ad32999b 508
0aaeb177 509=back
ad32999b 510
0aaeb177 511=head1 Internal Changes
ad32999b 512
0aaeb177
SH
513XXX Changes which affect the interface available to C<XS> code go here.
514Other significant internal changes for future core maintainers should
515be noted as well.
ad32999b 516
0aaeb177 517[ List each change as a =item entry ]
ad32999b 518
0aaeb177 519=over 4
ad32999b 520
3973654e
FC
521=item *
522
0aaeb177 523XXX
3973654e 524
0aaeb177 525=back
cca38fda 526
0aaeb177 527=head1 Selected Bug Fixes
9c7c1651 528
0aaeb177
SH
529XXX Important bug fixes in the core language are summarised here.
530Bug fixes in files in F<ext/> and F<lib/> are best summarised in
531L</Modules and Pragmata>.
9c7c1651 532
0aaeb177 533[ List each fix as a =item entry ]
fce59cd4 534
0aaeb177 535=over 4
fce59cd4 536
b9e83cd1
FC
537=item *
538
541cb22c
FC
539A constant subroutine assigned to a glob whose name contains a null will no
540longer cause extra globs to pop into existence when the constant is
541referenced under its new name.
b9e83cd1 542
679b54e7
FC
543=item *
544
545C<sort> was not treating C<sub {}> and C<sub {()}> as equivalent when such
546a sub was provided as the comparison routine. It used to croak on
547C<sub {()}>.
548
549=item *
550
551Subroutines from the C<autouse> namespace are once more exempt from
552redefinition warnings. This used to work in 5.005, but was broken in 5.6
553for most subroutines. For subs created via XS that redefine subroutines
554from the C<autouse> package, this stopped working in 5.10.
555
556=item *
557
558New XSUBs now produce redefinition warnings if they overwrite existing
559subs, as they did in 5.8.x. (The C<autouse> logic was reversed in 5.10-14.
560Only subroutines from the C<autouse> namespace would warn when clobbered.)
561
562=item *
563
564Redefinition warnings triggered by the creation of XSUBs now respect
565Unicode glob names, instead of using the internal representation. This was
566missed in 5.15.4, partly because this warning was so hard to trigger. (See
567the previous item.)
568
569=item *
570
571C<newCONSTSUB> used to use compile-time warning hints, instead of run-time
572hints. The following code should never produce a redefinition warning, but
573it used to, if C<newCONSTSUB> redefine and existing subroutine:
574
575 use warnings;
576 BEGIN {
577 no warnings;
578 some_XS_function_that_calls_new_CONSTSUB();
579 }
580
61f966e7
FC
581=item *
582
583Redefinition warnings for constant subroutines are on by default (what are
584known as severe warnings in L<perldiag>). This was only the case when it
585was a glob assignment or declaration of a Perl subroutine that caused the
586warning. If the creation of XSUBs triggered the warning, it was not a
587default warning. This has been corrected.
588
589=item *
590
591The internal check to see whether a redefinition warning should occur used
592to emit "uninitialized" warnings in cases like this:
593
594 use warnings "uninitialized";
595 use constant {u=>undef,v=>undef};
596 sub foo(){u} sub foo(){v}
597
598=item *
599
600A bug fix in Perl 5.14 introduced a new bug, causing "uninitialized"
601warnings to report the wrong variable if the operator in question has
602two operands and one is C<%{...}> or C<@{...}>. This has been fixed
603[perl #103766].
604
605=item *
606
607C<< version->new("version") >> and C<printf "%vd", "version"> no longer
608crash [perl #102586].
609
d1fb015b
FC
610=item *
611
612C<$tied =~ y/a/b/>, C<chop $tied> and C<chomp $tied> now call FETCH just
613once when $tied holds a reference.
614
615=item *
616
617Four-argument C<select> now always calls FETCH on tied arguments. It used
618to skip the call if the tied argument happened to hold C<undef> or a
619typeglob.
620
621=item *
622
623Four-argument C<select> no longer produces its "Non-string passed as
624bitmask" warning on tied or tainted variables that are strings.
625
626=item *
627
628C<sysread> now always calls FETCH on the buffer passed to it if it is tied.
629It used to skip the call if the tied variable happened to hold a typeglob.
630
631=item *
632
633C<< $tied .= <> >> now calls FETCH once on C<$tied>. It used to call it
634multiple times if the last value assigned to or returned from the tied
635variable was anything other than a string or typeglob.
636
66008486
FC
637=item *
638
639The C<evalbytes> keyword added in 5.15.5 was respecting C<use utf8>
640declarations from the outer scope, when it should have been ignoring them.
641
0aaeb177 642=back
bf19b80e 643
0aaeb177 644=head1 Known Problems
bf19b80e 645
0aaeb177
SH
646XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
647tests that had to be C<TODO>ed for the release would be noted here, unless
648they were specific to a particular platform (see below).
65b66aa9 649
0aaeb177
SH
650This is a list of some significant unfixed bugs, which are regressions
651from either 5.XXX.XXX or 5.XXX.XXX.
65b66aa9 652
0aaeb177 653[ List each fix as a =item entry ]
b53e16ae 654
0aaeb177 655=over 4
b53e16ae 656
7c864bb3
VP
657=item *
658
0aaeb177 659XXX
7c864bb3 660
63ac71b9 661=back
bbc28bfc 662
0aaeb177 663=head1 Obituary
8fe05716 664
0aaeb177
SH
665XXX If any significant core contributor has died, we've added a short obituary
666here.
8fe05716 667
0aaeb177 668=head1 Acknowledgements
8fe05716 669
0aaeb177 670XXX Generate this with:
8fe05716 671
0aaeb177 672 perl Porting/acknowledgements.pl v5.15.5..HEAD
29cf780c 673
44691e6f
AB
674=head1 Reporting Bugs
675
676If you find what you think is a bug, you might check the articles
34dc2ec0 677recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
678bug database at http://rt.perl.org/perlbug/ . There may also be
679information at http://www.perl.org/ , the Perl Home Page.
680
681If you believe you have an unreported bug, please run the L<perlbug>
682program included with your release. Be sure to trim your bug down
683to a tiny but sufficient test case. Your bug report, along with the
684output of C<perl -V>, will be sent off to perlbug@perl.org to be
685analysed by the Perl porting team.
686
687If the bug you are reporting has security implications, which make it
688inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 689it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
690unarchived mailing list, which includes
691all the core committers, who will be able
44691e6f
AB
692to help assess the impact of issues, figure out a resolution, and help
693co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
694platforms on which Perl is supported. Please only use this address for
695security issues in the Perl core, not for modules independently
44691e6f
AB
696distributed on CPAN.
697
698=head1 SEE ALSO
699
700The F<Changes> file for an explanation of how to view exhaustive details
701on what changed.
702
703The F<INSTALL> file for how to build Perl.
704
705The F<README> file for general stuff.
706
707The F<Artistic> and F<Copying> files for copyright information.
708
709=cut