This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
tick off release 5.27.6
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
e6a2e5ca 5perldelta - what is new for perl v5.27.6
89853d76 6
b5cbfe35 7=head1 DESCRIPTION
89853d76 8
e6a2e5ca 9This document describes differences between the 5.27.5 release and the 5.27.6
b5cbfe35 10release.
89853d76 11
e6a2e5ca
SH
12If you are upgrading from an earlier release such as 5.27.4, first read
13L<perl5275delta>, which describes differences between 5.27.4 and 5.27.5.
14
e6a2e5ca
SH
15=head1 Core Enhancements
16
f99042c8
Z
17=head2 Initialisation of aggregate state variables
18
19A persistent lexical array or hash variable can now be initialized,
20by an expression such as C<state @a = qw(x y z)>. Initialization of a
21list of persistent lexical variables is still not possible.
22
2e8ea15a
Z
23=head2 Full-size inode numbers
24
25On platforms where inode numbers are of a type larger than perl's native
26integer numerical types, L<stat|perlfunc/stat> will preserve the full
27content of large inode numbers by returning them in the form of strings of
28decimal digits. Exact comparison of inode numbers can thus be achieved by
29comparing with C<eq> rather than C<==>. Comparison with C<==>, and other
30numerical operations (which are usually meaningless on inode numbers),
31work as well as they did before, which is to say they fall back to
32floating point, and ultimately operate on a fairly useless rounded inode
33number if the real inode number is too big for the floating point format.
34
e6a2e5ca
SH
35=head1 Incompatible Changes
36
29d69c3c
Z
37=head2 Yada-yada is now strictly a statement
38
39By the time of its initial stable release in Perl 5.12, the C<...>
40(yada-yada) operator was explicitly intended to serve as a statement,
41not an expression. However, the original implementation was confused
42on this point, leading to inconsistent parsing. The operator was
43accidentally accepted in a few situations where it did not serve as a
44complete statement, such as
45
46 ... . "foo";
47 ... if $a < $b;
48
49The parsing has now been made consistent, permitting yada-yada only as
50a statement. Affected code can use C<do{...}> to put a yada-yada into
51an arbitrary expression context.
52
7d65f652
FC
53=head2 Subroutines no longer need typeglobs
54
55Perl 5.22.0 introduced an optimization allowing subroutines to be stored in
56packages as simple sub refs, not requiring a full typeglob (thus
57potentially saving large amounts of memeory). However, the optimization
58was flawed: it only applied to the main package.
59
60This optimization has now been extended to all packages. This may break
61compatibility with introspection code that looks inside stashes and expects
62everything in them to be a typeglob.
63
64When this optimization happens, the typeglob still notionally exists, so
65accessing it will cause the stash entry to be upgraded to a typeglob. The
66optimization does not apply to XSUBs or exported subroutines, and calling a
67method will undo it, since method calls cache things in typeglobs.
68
4c46c124
KE
69(This change actually happened in perl 5.27.5 but was omitted from its perldelta.)
70
7d65f652
FC
71[perl #129916] [perl #132252]
72
e2091bb6
Z
73=head2 Sort algorithm can no longer be specified
74
75Since Perl 5.8, the L<sort> pragma has had subpragmata C<_mergesort>,
76C<_quicksort>, and C<_qsort> that can be used to specify which algorithm
77perl should use to implement the L<sort|perlfunc/sort> builtin.
78This was always considered a dubious feature that might not last,
79hence the underscore spellings, and they were documented as not being
80portable beyond Perl 5.8. These subpragmata have now been deleted,
81and any attempt to use them is an error. The L<sort> pragma otherwise
82remains, and the algorithm-neutral C<stable> subpragma can be used to
83control sorting behaviour.
4c46c124 84[perl #119635]
a8ba758d 85
cf663f87
AC
86=head1 Performance Enhancements
87
1b510166
S
88=over 4
89
90=item *
91
8ed1839e
DM
92Many string concatenation expressions are now considerably faster, due
93to the introduction internally of a C<multiconcat> opcode which combines
94multiple concatenations, and optionally a C<=> or C<.=>, into a single
95action. For example, apart from retrieving C<$s>, C<$a> and C<$b>, this
96whole expression is now handled as a single op:
97
98 $s .= "a=$a b=$b\n"
99
4c46c124 100As a special case, if the LHS of an assignment is a lexical variable or
8ed1839e
DM
101C<my $s>, the op itself handles retrieving the lexical variable, which
102is faster.
103
104In general, the more the expression includes a mix of constant strings and
105variable expressions, the longer the expression, and the more it mixes
106together non-utf8 and utf8 strings, the more marked the performance
107improvement. For example on a C<x86_64> system, this code has been
108benchmarked running four times faster:
109
110 my $s;
111 my $a = "ab\x{100}cde";
112 my $b = "fghij";
113 my $c = "\x{101}klmn";
114
115 for my $i (1..10_000_000) {
116 $s = "\x{100}wxyz";
117 $s .= "foo=$a bar=$b baz=$c";
118 }
119
120In addition, C<sprintf> expressions which have a constant format
121containing only C<%s> and C<%%> format elements, and which have a fixed
122number of arguments, are now also optimised into a C<multiconcat> op.
d912eab8 123
7d65f652
FC
124=item *
125
126Subroutines in packages no longer need to be stored in typeglobs, saving
127large amounts of memory. See L</Subroutines no longer need typeglobs>
128under L</Incompatible Changes>, above.
129
c83a3d01 130=back
d912eab8 131
c83a3d01 132=head1 Modules and Pragmata
af94b3ac 133
4c46c124 134Key highlights in this release across several modules:
e6a2e5ca 135
9b78f210
TR
136=head2 Removal of use vars
137
4c46c124 138The usage of C<use vars> has been discouraged since the introduction of C<our> in
9b78f210
TR
139Perl 5.6.0. Where possible the usage of this pragma has now been removed from
140the Perl source code.
141
1218f5ba
TR
142This had a slight effect (for the better) on the output of WARNING_BITS in B::Deparse.
143
4c46c124 144=head2 Use of DynaLoader changed to XSLoader in many modules
9b78f210 145
4c46c124
KE
146XSLoader is more modern, and most modules already require perl 5.6 or greater, so
147no functionality is lost by switching. In some cases, we have also made changes to
148the local implementation that may not be reflected in the version on CPAN due
149to a desire to maintain more backwards compatibility.
64b9a139 150
e6a2e5ca
SH
151=head2 Updated Modules and Pragmata
152
153=over 4
64b9a139
SH
154
155=item *
156
b2a6778b
KE
157L<Attribute::Handlers> has been upgraded from version 1.00 to 1.01.
158
159=item *
160
161L<attributes> has been upgraded from version 0.31 to 0.32.
162
163=item *
164
165L<B> has been upgraded from version 1.70 to 1.72.
166
167=item *
168
169L<B::Concise> has been upgraded from version 1.002 to 1.003.
170
171=item *
172
173L<B::Deparse> has been upgraded from version 1.43 to 1.45.
174
175=item *
176
177L<base> has been upgraded from version 2.26 to 2.27.
178
179=item *
180
181L<blib> has been upgraded from version 1.06 to 1.07.
182
183=item *
184
b5af74de
FC
185L<Carp> has been upgraded from version 1.43 to 1.44.
186
187If a package on the call stack contains a constant named C<ISA>, Carp no
188longer throws a "Not a GLOB reference" error.
64b9a139 189
d7408e7a
JK
190=item *
191
b2a6778b
KE
192L<Compress::Raw::Zlib> has been upgraded from version 2.074 to 2.075.
193
194This addresses a security vulnerability in older versions of the 'zlib' library
195(which is bundled with Compress-Raw-Zlib).
196
197=item *
198
199L<Config::Extensions> has been upgraded from version 0.01 to 0.02.
200
201=item *
202
4c46c124
KE
203L<Devel::PPPort> has moved from cpan-first to perl-first maintenance
204
205Primary responsibility for the code in Devel::PPPort has moved into core perl.
206In a practical sense there should be no change except that hopefully it will
207stay more up to date with changes made to symbols in perl, rather than needing
208to be updated after the fact.
209
210=item *
211
b2a6778b
KE
212L<DynaLoader> has been upgraded from version 1.42 to 1.44.
213
214=item *
215
216L<experimental> has been upgraded from version 0.016 to 0.017.
217
218=item *
219
220L<ExtUtils::CBuilder> has been upgraded from version 0.280228 to 0.280229.
221
222=item *
223
224L<ExtUtils::Embed> has been upgraded from version 1.34 to 1.35.
225
226=item *
227
228L<ExtUtils::Miniperl> has been upgraded from version 1.06 to 1.07.
229
230=item *
231
232L<ExtUtils::ParseXS> has been upgraded from version 3.35 to 3.36.
233
234=item *
235
236L<ExtUtils::Typemaps> has been upgraded from version 3.35 to 3.36.
237
238=item *
239
240L<ExtUtils::XSSymSet> has been upgraded from version 1.3 to 1.4.
241
242=item *
243
244L<fields> has been upgraded from version 2.23 to 2.24.
245
246=item *
247
d7408e7a 248L<File::Copy> has been upgraded from version 2.32 to 2.33. It will now use
4c46c124 249Time::HiRes utime where available (perl #132401).
d7408e7a 250
ad3f654c
JK
251=item *
252
b2a6778b
KE
253L<File::Spec> has been upgraded from version 3.68 to 3.70.
254
255=item *
256
257L<File::stat> has been upgraded from version 1.07 to 1.08.
258
259=item *
260
261L<FileCache> has been upgraded from version 1.09 to 1.10.
262
263=item *
264
265L<Filter::Simple> has been upgraded from version 0.94 to 0.95.
266
267=item *
268
269L<Hash::Util::FieldHash> has been upgraded from version 1.19 to 1.20.
270
271=item *
272
273L<I18N::Langinfo> has been upgraded from version 0.14 to 0.15.
274
275=item *
276
277L<I18N::LangTags> has been upgraded from version 0.42 to 0.43.
278
279=item *
280
281The libnet distribution has been upgraded from version 3.10 to 3.11.
282
283=item *
284
285L<Locale::Maketext> has been upgraded from version 1.28 to 1.29.
286
287=item *
288
289L<Module::CoreList> has been upgraded from version 5.20171020 to 5.20171120.
290
291=item *
292
293L<Net::Ping> has been upgraded from version 2.55 to 2.62.
294
295=item *
296
297L<ODBM_File> has been upgraded from version 1.14 to 1.15.
298
299=item *
300
301L<Opcode> has been upgraded from version 1.40 to 1.41.
302
303=item *
304
305L<Pod::Html> has been upgraded from version 1.2202 to 1.2203.
306
307=item *
308
309L<POSIX> has been upgraded from version 1.78 to 1.80.
310
311=item *
312
313L<re> has been upgraded from version 0.35 to 0.36.
314
315=item *
316
317L<SelfLoader> has been upgraded from version 1.24 to 1.25.
318
319=item *
320
321L<Socket> has been upgraded from version 2.020_03 to 2.020_04.
322
323=item *
324
325L<sort> has been upgraded from version 2.03 to 2.04.
326
327=item *
328
329L<Storable> has been upgraded from version 2.64 to 2.65.
330
331=item *
332
333L<Test> has been upgraded from version 1.30 to 1.31.
ad3f654c 334
7358a033
JK
335=item *
336
337L<Test::Simple> has been upgraded from version 1.302103 to 1.302111.
338
b2a6778b 339=item *
64b9a139 340
b2a6778b 341L<threads> has been upgraded from version 2.18 to 2.19.
e6a2e5ca 342
b2a6778b
KE
343=item *
344
345L<Tie::Array> has been upgraded from version 1.06 to 1.07.
346
347=item *
348
349L<Tie::StdHandle> has been upgraded from version 4.4 to 4.5.
350
351=item *
352
353L<Time::gmtime> has been upgraded from version 1.03 to 1.04.
354
355=item *
356
357L<Time::HiRes> has been upgraded from version 1.9746 to 1.9747.
358
359=item *
360
361L<Time::localtime> has been upgraded from version 1.02 to 1.03.
362
363=item *
364
365L<Unicode::Collate> has been upgraded from version 1.19 to 1.23.
366
367=item *
368
369L<Unicode::Normalize> has been upgraded from version 1.25 to 1.26.
370
371=item *
372
373L<User::grent> has been upgraded from version 1.01 to 1.02.
374
375=item *
376
377L<User::pwent> has been upgraded from version 1.00 to 1.01.
378
379=item *
380
381L<VMS::DCLsym> has been upgraded from version 1.08 to 1.09.
382
383=item *
384
385L<VMS::Stdio> has been upgraded from version 2.42 to 2.44.
386
387=item *
388
389L<warnings> has been upgraded from version 1.37 to 1.38.
390
391=item *
392
393L<XS::Typemap> has been upgraded from version 0.15 to 0.16.
64b9a139
SH
394
395=item *
396
b2a6778b 397L<XSLoader> has been upgraded from version 0.27 to 0.28.
64b9a139 398
e6a2e5ca 399=back
64b9a139 400
e6a2e5ca 401=head1 Documentation
64b9a139 402
e6a2e5ca 403=head2 Changes to Existing Documentation
64b9a139 404
e6a2e5ca
SH
405We have attempted to update the documentation to reflect the changes
406listed in this document. If you find any we have missed, send email
407to L<perlbug@perl.org|mailto:perlbug@perl.org>.
64b9a139 408
e6a2e5ca
SH
409Additionally, the following selected changes have been made:
410
04f89ea7
Z
411=over 4
412
413=item * L<perldiag/Variable length lookbehind not implemented in regex m/%s/>
754dd754
KW
414
415This now gives more ideas as to workarounds to the issue that was
416introduced in Perl 5.18 (but not documented explicitly in its perldelta)
417for the fact that some Unicode C</i> rules cause a few sequences such as
418
419 (?<!st)
420
421to be considered variable length, and hence disallowed.
64b9a139 422
4c46c124
KE
423=item * "Use of state $_ is experimental" in L<perldiag>
424
425This entry has been removed, as the experimental support of this construct was
426removed in perl 5.24.0.
427
64b9a139
SH
428=item *
429
2b8b74b0
Z
430The section on reference counting in L<perlguts> has been heavily revised,
431to describe references in the way a programmer needs to think about them
432rather than in terms of the physical data structures.
433
434=item *
435
77fae439
Z
436The section "Truth and Falsehood" in L<perlsyn> has been removed from
437that document, where it didn't belong, and merged into the existing
438paragraph on the same topic in L<perldata>.
439
440=item *
441
4c46c124 442The description of the C<x> operator in L<perlop> has been clarified. [perl #132460]
e509fc38
Z
443
444=item *
445
6ce1ac11
KW
446L<perluniprops> has been updated to note that C<\p{Word}> now includes
447code points matching the C<\p{Join_Control}> property. The change to
448the property was made in Perl 5.18, but not documented until now. There
449are currently only two code points that match this property U+200C (ZERO
450WIDTH NON-JOINER) and U+200D (ZERO WIDTH JOINER).
64b9a139 451
4c46c124 452=item *
64b9a139 453
4c46c124
KE
454The entry for C<$+> in perlvar has been expanded upon to describe handling of
455multiply-named capturing groups.
64b9a139 456
4c46c124 457=item *
64b9a139 458
4c46c124
KE
459L<perlop> has been updated to note that C<qw>'s whitespace rules differ from that of
460C<split>'s in that only ASCII whitespace is used.
64b9a139
SH
461
462=item *
463
4c46c124
KE
464L<POSIX> has been updated with some more cautions about using locale-specific
465functions in threaded applications.
64b9a139 466
e6a2e5ca
SH
467=back
468
4c46c124 469=head1 Diagnostics
64b9a139 470
4c46c124
KE
471The following additions or changes have been made to diagnostic output,
472including warnings and fatal error messages. For the complete list of
473diagnostic messages, see L<perldiag>.
e6a2e5ca
SH
474
475=head2 Changes to Existing Diagnostics
64b9a139 476
e6a2e5ca 477=over 4
64b9a139
SH
478
479=item *
480
f99042c8
Z
481The diagnostic C<Initialization of state variables in list context
482currently forbidden> has changed to C<Initialization of state variables
483in list currently forbidden>, because list-context initialization of
484single aggregate state variables is now permitted.
485
e6a2e5ca
SH
486=back
487
488=head1 Utility Changes
489
4c46c124 490=head2 L<perlbug>
e6a2e5ca
SH
491
492=over 4
64b9a139
SH
493
494=item *
495
4c46c124 496C<--help> and C<--version> options have been added.
e6a2e5ca
SH
497
498=back
499
500=head1 Configuration and Compilation
501
e6a2e5ca 502=over 4
64b9a139 503
5952a840
AC
504=item C89 requirement
505
506Perl has been documented as requiring a C89 compiler to build since October
515c1ce3 5071998. A variety of simplifications have now been made to Perl's internals to
5952a840
AC
508rely on the features specified by the C89 standard. We believe that this
509internal change hasn't altered the set of platforms that Perl builds on, but
510please report a bug if Perl now has new problems building on your platform.
511
dea26044 512=item New probes
64b9a139 513
dea26044
MB
514=over 2
515
516=item HAS_BUILTIN_ADD_OVERFLOW
517
518=item HAS_BUILTIN_MUL_OVERFLOW
519
520=item HAS_BUILTIN_SUB_OVERFLOW
521
522=item HAS_THREAD_SAFE_NL_LANGINFO_L
523
524=item HAS_LOCALECONV_L
525
526=item HAS_MBRLEN
527
528=item HAS_MBRTOWC
529
530=item HAS_MEMRCHR
531
532=item HAS_NANOSLEEP
533
534=item HAS_STRNLEN
535
536=item HAS_STRTOLD_L
537
538=item I_WCHAR
539
540=back
e6a2e5ca
SH
541
542=back
543
e94f172c
KE
544=head1 Packaging
545
546For the past few years we have released perl using three different archive
547formats: bzip (C<.bz2>), LZMA2 (C<.xz>) and gzip (C<.gz>). Since xz compresses
548better and decompresses faster, and gzip is more compatible and uses less memory,
549we have dropped the C<.bz2> archive format with this release.
550(If this poses a problem, do let us know; see L</Reporting Bugs>, below.)
551
a8ba758d 552=head1 Platform Support
cf663f87 553
e6a2e5ca
SH
554=head2 Discontinued Platforms
555
e6a2e5ca
SH
556=over 4
557
4c46c124 558=item PowerUX / Power MAX OS
e6a2e5ca 559
4c46c124 560Compiler hints and other support for these apparently long-defunct platforms has been removed.
e6a2e5ca
SH
561
562=back
563
a8ba758d
JSA
564=head2 Platform-Specific Notes
565
a8ba758d 566=over 4
9ef07b78 567
40ed7988 568=item Windows
a8ba758d 569
40ed7988
SH
570Visual C++ compiler version detection has been improved to work on non-English
571language systems.
a8ba758d
JSA
572
573=back
574
e6a2e5ca
SH
575=head1 Internal Changes
576
a8ba758d 577=over 4
cf663f87 578
21741043 579=item *
c83a3d01 580
8ed1839e
DM
581A new optimisation phase has been added to the compiler,
582C<optimize_optree()>, which does a top-down scan of a complete optree
583just before the peephole optimiser is run. This phase is not currently
584hookable.
585
586=item *
587
588An C<OP_MULTICONCAT> op has been added. At C<optimize_optree()> time, a
589chain of C<OP_CONCAT> and C<OP_CONST> ops, together optionally with an
590C<OP_STRINGIFY> and/or C<OP_SASSIGN>, are combined into a single
591C<OP_MULTICONCAT> op. The op is of type C<UNOP_AUX>, and the aux array
592contains the argument count, plus a pointer to a constant string and a set
593of segment lengths. For example with
594
595 my $x = "foo=$foo, bar=$bar\n";
596
597the constant string would be C<"foo=, bar=\n"> and the segment lengths
598would be (4,6,1). If the string contains characters such as C<\x80>, whose
599representation changes under utf8, two sets of strings plus lengths are
600precomputed and stored.
a8ba758d 601
ee5287f6
LM
602=item *
603
604Direct access to L<C<PL_keyword_plugin>|perlapi/PL_keyword_plugin> is not
605safe in the presence of multithreading. A new
606L<C<wrap_keyword_plugin>|perlapi/wrap_keyword_plugin> function has been
607added to allow XS modules to safely define custom keywords even when
4c46c124 608loaded from a thread, analogous to L<C<PL_check>|perlapi/PL_check> /
ee5287f6
LM
609L<C<wrap_op_checker>|perlapi/wrap_op_checker>.
610
e6a2e5ca
SH
611=back
612
613=head1 Selected Bug Fixes
614
e6a2e5ca 615=over 4
77baf8eb
SH
616
617=item *
618
a155eb05
TC
619C<stat()>, C<lstat()>, and file test operators now fail if given a
620filename containing a nul character, in the same way that C<open()>
621already fails.
622
623=item *
624
c2bb91f9
Z
625C<stat()>, C<lstat()>, and file test operators now reliably set C<$!> when
626failing due to being applied to a closed or otherwise invalid file handle.
627
628=item *
629
a6c31837
Z
630File test operators for Unix permission bits that don't exist on a
631particular platform, such as C<-k> (sticky bit) on Windows, now check that
632the file being tested exists before returning the blanket false result,
633and yield the appropriate errors if the argument doesn't refer to a file.
634
635=item *
636
5bad3c4f
DIM
637The in-place reverse optimisation now correctly strengthens weak
638references using the L<C<sv_rvunweaken()>|perlapi/sv_rvunweaken>
639API function.
e6a2e5ca 640
4faa3060
TC
641=item *
642
643Fixed a read before buffer when parsing a range starting with C<\N{}>
644at the beginning of the character set for the transliteration
645operator. [perl #132245]
646
647=item *
648
649Fixed a leaked SV when parsing an empty C<\N{}> at compile-time.
650[perl #132245]
651
d1ac83c4
DD
652=item *
653
654Calling C<do $path> on a directory or block device now yields a meaningful
655error code in C<$!>. [perl #125774]
656
02d43d4f
FC
657=item *
658
c4f4b223
Z
659Regexp substitution using an overloaded replacement value that provides
660a tainted stringification now correctly taints the resulting string.
661[perl #115266]
662
663=item *
664
02d43d4f
FC
665Lexical sub declarations in C<do> blocks such as C<do { my sub lex; 123 }>
666could corrupt the stack, erasing items already on the stack in the
667enclosing statement. This has been fixed. [perl #132442]
668
e6a2e5ca
SH
669=back
670
e6a2e5ca
SH
671=head1 Errata From Previous Releases
672
673=over 4
8abafd33 674
e6a2e5ca
SH
675=item *
676
4c46c124
KE
677L</Subroutines no longer need typeglobs> under L</Incompatible Changes>, above,
678was made for perl 5.27.5 but was mistakenly omitted from its perldelta.
8abafd33 679
e6a2e5ca 680=back
b2e49ab9 681
e6a2e5ca 682=head1 Acknowledgements
b2e49ab9 683
060724e5
KE
684Perl 5.27.6 represents approximately 4 weeks of development since Perl 5.27.5
685and contains approximately 110,000 lines of changes across 1,100 files from 30
686authors.
687
688Excluding auto-generated files, documentation and release tools, there were
689approximately 20,000 lines of changes to 430 .pm, .t, .c and .h files.
690
691Perl continues to flourish into its third decade thanks to a vibrant community
692of users and developers. The following people are known to have contributed the
693improvements that became Perl 5.27.6:
694
695Aaron Crane, Andrew Fresh, Ask Bjöern Hansen, Chris 'BinGOs' Williams, Craig
696A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, David Cantrell, David
697Mitchell, Dominic Hargreaves, Father Chrysostomos, Harald Jörg, H.Merijn
698Brand, James E Keenan, Jarkko Hietaniemi, J. Nick Koston, John Lightsey, Karen
699Etheridge, Karl Williamson, Lukas Mai, Matthew Horsfall, Nicolas R., Paul
700Marquess, Sawyer X, Slaven Rezic, Steve Hay, Todd Rinaldo, Tony Cook, Yves
701Orton, Zefram.
702
703The list above is almost certainly incomplete as it is automatically generated
704from version control history. In particular, it does not include the names of
705the (very much appreciated) contributors who reported issues to the Perl bug
706tracker.
707
708Many of the changes included in this version originated in the CPAN modules
709included in Perl's core. We're grateful to the entire CPAN community for
710helping Perl to flourish.
711
712For a more complete list of all of Perl's historical contributors, please see
713the F<AUTHORS> file in the Perl source distribution.
f5b73711 714
44691e6f
AB
715=head1 Reporting Bugs
716
b5cbfe35
S
717If you find what you think is a bug, you might check the perl bug database
718at L<https://rt.perl.org/> . There may also be information at
719L<http://www.perl.org/> , the Perl Home Page.
44691e6f 720
e08634c5
SH
721If you believe you have an unreported bug, please run the L<perlbug> program
722included with your release. Be sure to trim your bug down to a tiny but
723sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 724will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 725
87c118b9
DM
726If the bug you are reporting has security implications which make it
727inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
728L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
729for details of how to report the issue.
44691e6f 730
390ae6f9
S
731=head1 Give Thanks
732
733If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
734you can do so by running the C<perlthanks> program:
735
736 perlthanks
737
738This will send an email to the Perl 5 Porters list with your show of thanks.
739
44691e6f
AB
740=head1 SEE ALSO
741
e08634c5
SH
742The F<Changes> file for an explanation of how to view exhaustive details on
743what changed.
44691e6f
AB
744
745The F<INSTALL> file for how to build Perl.
746
747The F<README> file for general stuff.
748
749The F<Artistic> and F<Copying> files for copyright information.
750
751=cut