This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: note passing of Randy Kobes
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =for comment
4 This has been completed up to 7fd683ff3c3, except for:
5 04777d295957ad270188e4debf51b523e07cc5b0
6 c565ab54dc649bb62cd4d57149d7b2abb21df5f3
7 1c8d11ca3d0ce8bc11562f159b94c2c7e62dea6c
8 51698cb360d5bba06e12496ef9c7bf82e3352b71
9 0c4d3b5ea916cf640ea163c5a6bcffefade55a1b
10
11 =head1 NAME
12
13 [ this is a template for a new perldelta file. Any text flagged as
14 XXX needs to be processed before release. ]
15
16 perldelta - what is new for perl v5.13.7
17
18 =head1 DESCRIPTION
19
20 This document describes differences between the 5.13.6 release and
21 the 5.13.7 release.
22
23 If you are upgrading from an earlier release such as 5.13.5, first read
24 L<perl5136delta>, which describes differences between 5.13.5 and
25 5.13.6.
26
27 =head1 Notice
28
29 XXX Any important notices here
30
31 =head1 Core Enhancements
32
33 XXX New core language features go here. Summarise user-visible core language
34 enhancements. Particularly prominent performance optimisations could go
35 here, but most should go in the L</Performance Enhancements> section.
36
37 [ List each enhancement as a =head2 entry ]
38
39 =head2 Single term prototype
40
41 The C<+> prototype is a special alternative to C<$> that will act like
42 C<\[@%]> when given a literal array or hash variable, but will otherwise
43 force scalar context on the argument.  This is useful for functions which
44 should accept either a literal array or an array reference as the argument:
45
46     sub smartpush (+@) {
47         my $aref = shift;
48         die "Not an array or arrayref" unless ref $aref eq 'ARRAY';
49         push @$aref, @_;
50     }
51
52 When using the C<+> prototype, your function must check that the argument
53 is of an acceptable type.
54
55 =head2 C<use re '/flags';>
56
57 The C<re> pragma now has the ability to turn on regular expression flags
58 till the end of the lexical scope:
59
60     use re '/x';
61     "foo" =~ / (.+) /;  # /x implied
62
63 See L<re/'/flags' mode> for details.
64
65 =head2 Statement labels can appear in more places
66
67 Statement labels can now occur before any type of statement or declaration,
68 such as C<package>.
69
70 =head2 C<use feature "unicode_strings"> now applies to more regex matching
71
72 Another chunk of the L<perlunicode/The "Unicode Bug"> is fixed in this
73 release.  Now, regular expressions compiled within the scope of the
74 "unicode_strings" feature (or under the "u" regex modifier (specifiable
75 currently only with infix notation C<(?u:...)> or via C<use re '/u'>)
76 will match the same whether or not the target string is encoded in utf8,
77 with regard to C<[[:posix:]]> character classes
78
79 Work is underway to add the case sensitive matching to the control of
80 this feature, but was not complete in time for this dot release.
81
82 =head2 Array and hash container functions accept references
83
84 All built-in functions that operate directly on array or hash
85 containers now also accept hard references to arrays or hashes:
86
87   |----------------------------+---------------------------|
88   | Traditional syntax         | Terse syntax              |
89   |----------------------------+---------------------------|
90   | push @$arrayref, @stuff    | push $arrayref, @stuff    |
91   | unshift @$arrayref, @stuff | unshift $arrayref, @stuff |
92   | pop @$arrayref             | pop $arrayref             |
93   | shift @$arrayref           | shift $arrayref           |
94   | splice @$arrayref, 0, 2    | splice $arrayref, 0, 2    |
95   | keys %$hashref             | keys $hashref             |
96   | keys @$arrayref            | keys $arrayref            |
97   | values %$hashref           | values $hashref           |
98   | values @$arrayref          | values $arrayref          |
99   | ($k,$v) = each %$hashref   | ($k,$v) = each $hashref   |
100   | ($k,$v) = each @$arrayref  | ($k,$v) = each $arrayref  |
101   |----------------------------+---------------------------|
102
103 This allows these built-in functions to act on long dereferencing chains
104 or on the return value of subroutines without needing to wrap them in
105 C<@{}> or C<%{}>:
106
107   push @{$obj->tags}, $new_tag;  # old way
108   push $obj->tags,    $new_tag;  # new way
109
110   for ( keys %{$hoh->{genres}{artists}} ) {...} # old way 
111   for ( keys $hoh->{genres}{artists}    ) {...} # new way 
112
113 For C<push>, C<unshift> and C<splice>, the reference will auto-vivify
114 if it is not defined, just as if it were wrapped with C<@{}>.
115
116 Calling C<keys> or C<values> directly on a reference gives a substantial
117 performance improvement over explicit dereferencing.
118
119 For C<keys>, C<values>, C<each>, when overloaded dereferencing is
120 present, the overloaded dereference is used instead of dereferencing the
121 underlying reftype.  Warnings are issued about assumptions made in the
122 following three ambiguous cases:
123
124   (a) If both %{} and @{} overloading exists, %{} is used
125   (b) If %{} overloading exists on a blessed arrayref, %{} is used
126   (c) If @{} overloading exists on a blessed hashref, @{} is used
127
128 =head1 Security
129
130 XXX Any security-related notices go here.  In particular, any security
131 vulnerabilities closed should be noted here rather than in the
132 L</Selected Bug Fixes> section.
133
134 [ List each security issue as a =head2 entry ]
135
136 =head1 Incompatible Changes
137
138 XXX For a release on a stable branch, this section aspires to be:
139
140     There are no changes intentionally incompatible with 5.XXX.XXX. If any
141     exist, they are bugs and reports are welcome.
142
143 [ List each incompatible change as a =head2 entry ]
144
145 =head2 Dereferencing typeglobs
146
147 If you assign a typeglob to a scalar variable:
148
149     $glob = *foo;
150
151 the glob that is copied to C<$glob> is marked with a special flag
152 indicating that the glob is just a copy. This allows subsequent assignments
153 to C<$glob> to overwrite the glob. The original glob, however, is
154 immutable.
155
156 Many Perl operators did not distinguish between these two types of globs.
157 This would result in strange behaviour in edge cases: C<untie $scalar>
158 would do nothing if the last thing assigned to the scalar was a glob
159 (because it treated it as C<untie *$scalar>, which unties a handle).
160 Assignment to a glob slot (e.g., C<(*$glob) = \@some_array>) would simply
161 assign C<\@some_array> to C<$glob>.
162
163 To fix this, the C<*{}> operator (including the C<*foo> and C<*$foo> forms)
164 has been modified to make a new immutable glob if its operand is a glob
165 copy. Various operators that make a distinction between globs and scalars
166 have been modified to treat only immutable globs as globs.
167
168 This causes an incompatible change in code that assigns a glob to the
169 return value of C<*{}> when that operator was passed a glob copy. Take the
170 following code, for instance:
171
172     $glob = *foo;
173     *$glob = *bar;
174
175 The C<*$glob> on the second line returns a new immutable glob. That new
176 glob is made an alias to C<*bar>. Then it is discarded.
177
178 The upside to this incompatible change is that bugs
179 L<[perl #77496]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77496>,
180 L<[perl #77502]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77502>,
181 L<[perl #77508]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77508>,
182 L<[perl #77688]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77688>,
183 and
184 L<[perl #77812]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77812>,
185 and maybe others, too, have been fixed.
186
187 See L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=77810> for even
188 more detail.
189
190 =head1 Deprecations
191
192 XXX Any deprecated features, syntax, modules etc. should be listed here.
193 In particular, deprecated modules should be listed here even if they are
194 listed as an updated module in the L</Modules and Pragmata> section.
195
196 [ List each deprecation as a =head2 entry ]
197
198 =head1 Performance Enhancements
199
200 XXX Changes which enhance performance without changing behaviour go here. There
201 may well be none in a stable release.
202
203 [ List each enhancement as a =item entry ]
204
205 =over 4
206
207 =item *
208
209 XXX
210
211 =back
212
213 =head1 Modules and Pragmata
214
215 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
216 go here.  If Module::CoreList is updated, generate an initial draft of the
217 following sections using F<Porting/corelist-perldelta.pl>, which prints stub
218 entries to STDOUT.  Results can be pasted in place of the '=head2' entries
219 below.  A paragraph summary for important changes should then be added by hand.
220 In an ideal world, dual-life modules would have a F<Changes> file that could be
221 cribbed.
222
223 [ Within each section, list entries as a =item entry ]
224
225 =head2 New Modules and Pragmata
226
227 =over 4
228
229 =item *
230
231 The following modules were added by the C<Unicode::Collate> 
232 upgrade from 0.63 to 0.65. See below for details.
233
234 C<Unicode::Collate::CJK::Big5>
235
236 C<Unicode::Collate::CJK::GB2312>
237
238 C<Unicode::Collate::CJK::JISX0208>
239
240 C<Unicode::Collate::CJK::Korean>
241
242 C<Unicode::Collate::CJK::Pinyin>
243
244 C<Unicode::Collate::CJK::Stroke>
245
246 =back
247
248 =head2 Updated Modules and Pragmata
249
250 =over 4
251
252 =item *
253
254 C<Archive::Extract> has been upgraded from 0.44 to 0.46
255
256 Resolves an issue with NetBSD-current and its new unzip 
257 executable.
258
259 =item *
260
261 C<B> has been upgraded from 1.24 to 1.25.
262
263 =item *
264
265 C<B::Deparse> has been upgraded from 0.99 to 1.01.
266
267 It fixes deparsing of C<our> followed by a variable with funny characters
268 (as permitted under the C<utf8> pragma)
269 L<[perl #33752]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=33752>.
270
271 =item *
272
273 C<CGI> has been upgraded from 3.49 to 3.50
274
275 This provides the following security fixes: the MIME boundary in 
276 multipart_init is now random and improvements to the handling of 
277 newlines embedded in header values.
278
279 The documentation for param_fetch() has been corrected and clarified.
280
281 =item *
282
283 C<CPAN> has been upgraded from 1.94_61 to 1.94_62
284
285 =item *
286
287 C<CPANPLUS> has been upgraded from 0.9007 to 0.9010
288
289 Fixes for the SQLite source engine and resolving of issues with the
290 testsuite when run under local::lib and/or cpanminus
291
292 =item *
293
294 C<CPANPLUS::Dist::Build> has been upgraded from 0.48 to 0.50
295
296 =item *
297
298 C<DynaLoader> has been upgraded from 1.10 to 1.11.
299
300 It fixes a buffer overflow when passed a very long file name.
301
302 =item *
303
304 C<ExtUtils::Constant> has been upgraded from 0.22 to 0.23.
305
306 =item *
307
308 C<Fcntl> has been upgraded from 1.09 to 1.10.
309
310 =item *
311
312 C<File::Fetch> has been upgraded from 0.24 to 0.28
313
314 C<HTTP::Lite> is now supported for 'http' scheme.
315
316 The C<fetch> utility is supported on FreeBSD, NetBSD and
317 Dragonfly BSD for the C<http> and C<ftp> schemes.
318
319 =item *
320
321 C<File::Glob> has been upgraded from 1.09 to 1.10.
322
323 =item *
324
325 C<GDBM_File> has been upgraded from 1.11 to 1.12.
326
327 This fixes a memory leak when DBM filters are used.
328
329 =item *
330
331 C<Hash::Util> has been upgraded from 0.09 to 0.10.
332
333 =item *
334
335 C<Hash::Util::FieldHash> has been upgraded from 1.05 to 1.06.
336
337 =item *
338
339 C<I18N::Langinfo> has been upgraded from 0.06 to 0.07.
340
341 =item *
342
343 C<Locale::Maketext> has been upgraded from 1.16 to 1.17.
344
345 =item *
346
347 C<Math::BigInt> has been upgraded from 1.97 to 1.98.
348
349 =item *
350
351 C<Math::BigInt::FastCalc> has been upgraded from 0.22 to 0.24.
352
353 =item *
354
355 C<mro> has been upgraded from 1.04 to 1.05.
356
357 =item *
358
359 C<NDBM_File> has been upgraded from 1.09 to 1.10.
360
361 This fixes a memory leak when DBM filters are used.
362
363 =item *
364
365 C<ODBM_File> has been upgraded from 1.08 to 1.09.
366
367 This fixes a memory leak when DBM filters are used.
368
369 =item *
370
371 C<parent> has been upgraded from 0.223 to 0.224
372
373 =item *
374
375 C<POSIX> has been upgraded from 1.21 to 1.22.
376
377 =item *
378
379 C<re> has been upgraded from 0.13 to 0.14, for the sake of the new
380 C<use re "/flags"> pragma.
381
382 =item *
383
384 C<Safe> has been upgraded from 2.28 to 2.29.
385
386 It adds C<&version::vxs::VCMP> to the default share.
387
388 =item *
389
390 C<SDBM_File> has been upgraded from 1.07 to 1.08.
391
392 =item *
393
394 C<SelfLoader> has been upgraded from 1.17 to 1.18.
395
396 It now works in taint mode
397 L<[perl #72062]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=72062>.
398
399 =item *
400
401 C<Socket> has been upgraded from 1.90 to 1.91.
402
403 =item *
404
405 C<Sys::Hostname> has been upgraded from 1.13 to 1.14.
406
407 =item *
408
409 C<Unicode::Collate> has been upgraded from 0.63 to 0.66
410
411 This release newly adds locales C<ja> C<ko> and C<zh> and its variants 
412 ( C<zh__big5han>, C<zh__gb2312han>, C<zh__pinyin>, C<zh__stroke> ).
413
414 The following modules have been added:
415
416 C<Unicode::Collate::CJK::Big5> for C<zh__big5han> which makes 
417 tailoring of CJK Unified Ideographs in the order of CLDR's big5han ordering.
418
419 C<Unicode::Collate::CJK::GB2312> for C<zh__gb2312han> which makes
420 tailoring of CJK Unified Ideographs in the order of CLDR's gb2312han ordering.
421
422 C<Unicode::Collate::CJK::JISX0208> which makes tailoring of 6355 kanji 
423 (CJK Unified Ideographs) in the JIS X 0208 order.
424
425 C<Unicode::Collate::CJK::Korean> which makes tailoring of CJK Unified Ideographs 
426 in the order of CLDR's Korean ordering.
427
428 C<Unicode::Collate::CJK::Pinyin> for C<zh__pinyin> which makes
429 tailoring of CJK Unified Ideographs in the order of CLDR's pinyin ordering.
430
431 C<Unicode::Collate::CJK::Stroke> for C<zh__stroke> which makes
432 tailoring of CJK Unified Ideographs in the order of CLDR's stroke ordering.
433
434 =back
435
436 =head2 Removed Modules and Pragmata
437
438 =over 4
439
440 =item *
441
442 XXX
443
444 =back
445
446 =head1 Documentation
447
448 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
449 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
450
451 L<perlvar> reorders the variables and groups them by topic. Each variable
452 introduced after Perl 5.000 notes the first version in which it is 
453 available. L<perlvar> also has a new section for deprecated variables to
454 note when they were removed.
455
456 =head2 New Documentation
457
458 XXX Changes which create B<new> files in F<pod/> go here.
459
460 =head3 L<XXX>
461
462 XXX Description of the purpose of the new file here
463
464 =head2 Changes to Existing Documentation
465
466 XXX Changes which significantly change existing files in F<pod/> go here.
467 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
468 section.
469
470 =over
471
472 =item *
473
474 Array and hash slices in scalar context are now documented in L<perldata>.
475
476 =item *
477
478 L<perlform> and L<perllocale> have been corrected to state that
479 C<use locale> affects formats.
480
481 =back
482
483 =head3 L<XXX>
484
485 =over 4
486
487 =item *
488
489 XXX Description of the change here
490
491 =back
492
493 =head1 Diagnostics
494
495 The following additions or changes have been made to diagnostic output,
496 including warnings and fatal error messages.  For the complete list of
497 diagnostic messages, see L<perldiag>.
498
499 XXX New or changed warnings emitted by the core's C<C> code go here. Also
500 include any changes in L<perldiag> that reconcile it to the C<C> code.
501
502 [ Within each section, list entries as a =item entry ]
503
504 =head2 New Diagnostics
505
506 XXX Newly added diagnostic messages go here
507
508 =over 4
509
510 =item *
511
512 XXX
513
514 =back
515
516 =head2 Changes to Existing Diagnostics
517
518 XXX Changes (i.e. rewording) of diagnostic messages go here
519
520 =over 4
521
522 =item *
523
524 XXX
525
526 =back
527
528 =head1 Utility Changes
529
530 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
531 here. Most of these are built within the directories F<utils> and F<x2p>.
532
533 [ List utility changes as a =head3 entry for each utility and =item
534 entries for each change
535 Use L<XXX> with program names to get proper documentation linking. ]
536
537 =head3 L<XXX>
538
539 =over 4
540
541 =item *
542
543 XXX
544
545 =back
546
547 =head1 Configuration and Compilation
548
549 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
550 go here.  Any other changes to the Perl build process should be listed here.
551 However, any platform-specific changes should be listed in the
552 L</Platform Support> section, instead.
553
554 [ List changes as a =item entry ].
555
556 =over 4
557
558 =item *
559
560 XXX
561
562 =back
563
564 =head1 Testing
565
566 XXX Any significant changes to the testing of a freshly built perl should be
567 listed here.  Changes which create B<new> files in F<t/> go here as do any
568 large changes to the testing harness (e.g. when parallel testing was added).
569 Changes to existing files in F<t/> aren't worth summarising, although the bugs
570 that they represent may be covered elsewhere.
571
572 [ List each test improvement as a =item entry ]
573
574 =over 4
575
576 =item *
577
578 XXX
579
580 =back
581
582 =head1 Platform Support
583
584 XXX Any changes to platform support should be listed in the sections below.
585
586 [ Within the sections, list each platform as a =item entry with specific
587 changes as paragraphs below it. ]
588
589 =head2 New Platforms
590
591 XXX List any platforms that this version of perl compiles on, that previous
592 versions did not. These will either be enabled by new files in the F<hints/>
593 directories, or new subdirectories and F<README> files at the top level of the
594 source tree.
595
596 =over 4
597
598 =item XXX-some-platform
599
600 XXX
601
602 =back
603
604 =head2 Discontinued Platforms
605
606 XXX List any platforms that this version of perl no longer compiles on.
607
608 =over 4
609
610 =item XXX-some-platform
611
612 XXX
613
614 =back
615
616 =head2 Platform-Specific Notes
617
618 XXX List any changes for specific platforms. This could include configuration
619 and compilation changes or changes in portability/compatibility.  However,
620 changes within modules for platforms should generally be listed in the
621 L</Modules and Pragmata> section.
622
623 =over 4
624
625 =item Windows
626
627 Directory handles are now properly cloned when threads are created. In perl
628 5.13.6, child threads simply stopped inheriting directory handles. In
629 previous versions, threads would share handles, resulting in crashes.
630
631 =back
632
633 =head1 Internal Changes
634
635 XXX Changes which affect the interface available to C<XS> code go here.
636 Other significant internal changes for future core maintainers should
637 be noted as well.
638
639 [ List each test improvement as a =item entry ]
640
641 =over 4
642
643 =item *
644
645 C<lex_start> has been added to the API, but is considered experimental.
646
647 =item *
648
649 A new C<parse_block> function has been added to the API
650 L<[perl #78222]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78222>.
651
652 =item *
653
654 A new, experimental API has been added for accessing the internal
655 structure that Perl uses for C<%^H>. See the functions beginning with
656 C<cophh_> in L<perlapi>.
657
658 =item *
659
660 A stash can now have a list of effective names in addition to its usual
661 name. The first effective name can be accessed via the C<HvENAME> macro,
662 which is now the recommended name to use in MRO linearisations (C<HvNAME>
663 being a fallback if there is no C<HvENAME>).
664
665 These names are added and deleted via C<hv_ename_add> and
666 C<hv_ename_delete>. These two functions are I<not> part of the API.
667
668 =item *
669
670 The way the parser handles labels has been cleaned up and refactored. As a
671 result, the C<newFOROP()> constructor function no longer takes a parameter
672 stating what label is to go in the state op.
673
674 =item *
675
676 The C<newWHILEOP()> and C<newFOROP()> functions no longer accept a line
677 number as a parameter.
678
679 =item *
680
681 A new C<parse_barestmt()> function has been added, for parsing a statement
682 without a label.
683
684 =item *
685
686 A new C<parse_label()> function has been added, that parses a statement
687 labels, separate from statements.
688
689 =item *
690
691 The C<CvSTASH()> macro can now only be used as an rvalue. C<CvSTASH_set()>
692 has been added to replace assignment to C<CvSTASH()>. This is to ensure
693 that backreferences are handled properly. These macros are not part of the
694 API.
695
696 =item *
697
698 The C<op_scope()> and C<op_lvalue()> functions have been added to the API,
699 but are considered experimental.
700
701 =back
702
703 =head1 Selected Bug Fixes
704
705 XXX Important bug fixes in the core language are summarised here.
706 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
707 L</Modules and Pragmata>.
708
709 [ List each fix as a =item entry ]
710
711 =over 4
712
713 =item *
714
715 The C<parse_stmt> C function added in earlier in the 5.13.x series has been
716 fixed to work with statements ending with C<}>
717 L<[perl #78222]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78222>.
718
719 =item *
720
721 The C<parse_fullstmt> C function added in 5.13.5 has been fixed to work
722 when called while an expression is being parsed.
723
724 =item *
725
726 Characters in the Latin-1 non-ASCII range (0x80 to 0xFF) used not to match
727 themselves if the string happened to be UTF8-encoded internally, the
728 regular expression was not, and the character in the regular expression was
729 inside a repeated group (e.g.,
730 C<Encode::decode_utf8("\303\200") =~ /(\xc0)+/>)
731 L<[perl #78464]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78464>.
732
733 =item *
734
735 The C<(?d)> regular expression construct now overrides a previous C<(?u)>
736 or C<use feature "unicode_string">
737 L<[perl #78508]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78508>.
738
739 =item *
740
741 A memory leak in C<do "file">, introduced in perl 5.13.6, has been fixed
742 L<[perl #78488]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78488>.
743
744 =item *
745
746 Various bugs related to typeglob dereferencing have been fixed. See
747 L</Dereferencing typeglobs>, above.
748
749 =item *
750
751 The C<SvPVbyte> function available to XS modules now calls magic before
752 downgrading the SV, to avoid warnings about wide characters
753 L<[perl #72398]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=72398>.
754
755 =item *
756
757 The C<=> operator used to ignore magic (e.g., tie methods) on its
758 right-hand side if the scalar happened to hold a typeglob. This could
759 happen if a typeglob was the last thing returned from or assigned to a tied
760 scalar
761 L<[perl #77498]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77498>.
762
763 =item *
764
765 C<sprintf> was ignoring locales when called with constant arguments
766 L<[perl #78632]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78632>.
767
768 =item *
769
770 A non-ASCII character in the Latin-1 range could match both a Posix
771 class, such as C<[[:alnum:]]>, and its inverse C<[[:^alnum:]]>.  This is
772 now fixed for regular expressions compiled under the C<"u"> modifier.
773 See L</C<use feature "unicode_strings"> now applies to more regex matching>.
774 L<[perl #18281]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=18281>.
775
776 =item *
777
778 Concatenating long strings under C<use encoding> no longer causes perl to
779 crash
780 L<[perl #78674]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78674>.
781
782 =item *
783
784 Typeglob assignments would crash if the glob's stash no longer existed, if
785 the glob assigned to was named 'ISA' or the glob on either side of the
786 assignment contained a subroutine.
787
788 =item *
789
790 Calling C<< ->import >> on a class lacking an import method could corrupt the stack result in strange behaviour. For instance,
791
792   push @a, "foo", $b = bar->import;
793
794 would assign 'foo' to C<$b>
795 L<[perl #63790]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=63790>.
796
797 =item *
798
799 Creating an alias to a package when that package had been detached from the
800 symbol table would result in corrupted isa caches
801 L<[perl #77358]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77358>.
802
803 =item *
804
805 C<.=> followed by C<< <> >> or C<readline> would leak memory if C<$/>
806 contained characters beyond the octet range and the scalar assigned to
807 happened to be encoded as UTF8 internally
808 L<[perl #72246]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=72246>.
809
810 =item *
811
812 The C<recv> function could crash when called with the MSG_TRUNC flag
813 L<[perl #75082]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75082>.
814
815 =item *
816
817 Evaluating a simple glob (like C<*a>) was calling get-magic on the glob,
818 even when its contents were not being used
819 L<[perl #78580]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78580>.
820
821 This bug was introduced in 5.13.2 and did not affect earlier perl versions.
822
823 =back
824
825 =head1 Known Problems
826
827 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
828 tests that had to be C<TODO>ed for the release would be noted here, unless
829 they were specific to a particular platform (see below).
830
831 This is a list of some significant unfixed bugs, which are regressions
832 from either 5.XXX.XXX or 5.XXX.XXX.
833
834 [ List each fix as a =item entry ]
835
836 =over 4
837
838 =item *
839
840 XXX
841
842 =back
843
844 =head1 Obituary
845
846 XXX If any significant core contributor has died, we've added a short obituary
847 here.
848
849 Randy Kobes, creator of the kobesearch alternative to search.cpan.org and
850 contributor/maintainer to several core Perl toolchain modules, passed away
851 on September 19, 2010 after a battle with lung cancer.  His contributions
852 to the Perl community will be missed.
853
854 =head1 Acknowledgements
855
856 XXX The list of people to thank goes here.
857
858 =head1 Reporting Bugs
859
860 If you find what you think is a bug, you might check the articles
861 recently posted to the comp.lang.perl.misc newsgroup and the perl
862 bug database at http://rt.perl.org/perlbug/ .  There may also be
863 information at http://www.perl.org/ , the Perl Home Page.
864
865 If you believe you have an unreported bug, please run the B<perlbug>
866 program included with your release.  Be sure to trim your bug down
867 to a tiny but sufficient test case.  Your bug report, along with the
868 output of C<perl -V>, will be sent off to perlbug@perl.org to be
869 analysed by the Perl porting team.
870
871 If the bug you are reporting has security implications, which make it
872 inappropriate to send to a publicly archived mailing list, then please send
873 it to perl5-security-report@perl.org. This points to a closed subscription
874 unarchived mailing list, which includes all the core committers, who be able
875 to help assess the impact of issues, figure out a resolution, and help
876 co-ordinate the release of patches to mitigate or fix the problem across all
877 platforms on which Perl is supported. Please only use this address for
878 security issues in the Perl core, not for modules independently
879 distributed on CPAN.
880
881 =head1 SEE ALSO
882
883 The F<Changes> file for an explanation of how to view exhaustive details
884 on what changed.
885
886 The F<INSTALL> file for how to build Perl.
887
888 The F<README> file for general stuff.
889
890 The F<Artistic> and F<Copying> files for copyright information.
891
892 =cut