diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perl5137delta.pod')
-rw-r--r-- | Master/tlpkg/tlperl/lib/pods/perl5137delta.pod | 945 |
1 files changed, 0 insertions, 945 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perl5137delta.pod b/Master/tlpkg/tlperl/lib/pods/perl5137delta.pod deleted file mode 100644 index 0a65b4365a9..00000000000 --- a/Master/tlpkg/tlperl/lib/pods/perl5137delta.pod +++ /dev/null @@ -1,945 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5137delta - what is new for perl v5.13.7 - -=head1 DESCRIPTION - -This document describes differences between the 5.13.6 release and -the 5.13.7 release. - -If you are upgrading from an earlier release such as 5.13.5, first read -L<perl5136delta>, which describes differences between 5.13.5 and -5.13.6. - -=head1 Core Enhancements - -=head2 Single term prototype - -The C<+> prototype is a special alternative to C<$> that will act like -C<\[@%]> when given a literal array or hash variable, but will otherwise -force scalar context on the argument. This is useful for functions which -should accept either a literal array or an array reference as the argument: - - sub smartpush (+@) { - my $aref = shift; - die "Not an array or arrayref" unless ref $aref eq 'ARRAY'; - push @$aref, @_; - } - -When using the C<+> prototype, your function must check that the argument -is of an acceptable type. - -=head2 C<use re '/flags';> - -The C<re> pragma now has the ability to turn on regular expression flags -till the end of the lexical scope: - - use re '/x'; - "foo" =~ / (.+) /; # /x implied - -See L<re/"'/flags' mode"> for details. - -=head2 Statement labels can appear in more places - -Statement labels can now occur before any type of statement or declaration, -such as C<package>. - -=head2 C<use feature "unicode_strings"> now applies to more regex matching - -Another chunk of the L<perlunicode/The "Unicode Bug"> is fixed in this -release. Now, regular expressions compiled within the scope of the -"unicode_strings" feature (or under the "u" regex modifier (specifiable -currently only with infix notation C<(?u:...)> or via C<use re '/u'>) -will match the same whether or not the target string is encoded in utf8, -with regard to C<[[:posix:]]> character classes - -Work is underway to add the case sensitive matching to the control of -this feature, but was not complete in time for this dot release. - -=head2 Array and hash container functions accept references - -All built-in functions that operate directly on array or hash -containers now also accept hard references to arrays or hashes: - - |----------------------------+---------------------------| - | Traditional syntax | Terse syntax | - |----------------------------+---------------------------| - | push @$arrayref, @stuff | push $arrayref, @stuff | - | unshift @$arrayref, @stuff | unshift $arrayref, @stuff | - | pop @$arrayref | pop $arrayref | - | shift @$arrayref | shift $arrayref | - | splice @$arrayref, 0, 2 | splice $arrayref, 0, 2 | - | keys %$hashref | keys $hashref | - | keys @$arrayref | keys $arrayref | - | values %$hashref | values $hashref | - | values @$arrayref | values $arrayref | - | ($k,$v) = each %$hashref | ($k,$v) = each $hashref | - | ($k,$v) = each @$arrayref | ($k,$v) = each $arrayref | - |----------------------------+---------------------------| - -This allows these built-in functions to act on long dereferencing chains -or on the return value of subroutines without needing to wrap them in -C<@{}> or C<%{}>: - - push @{$obj->tags}, $new_tag; # old way - push $obj->tags, $new_tag; # new way - - for ( keys %{$hoh->{genres}{artists}} ) {...} # old way - for ( keys $hoh->{genres}{artists} ) {...} # new way - -For C<push>, C<unshift> and C<splice>, the reference will auto-vivify -if it is not defined, just as if it were wrapped with C<@{}>. - -Calling C<keys> or C<values> directly on a reference gives a substantial -performance improvement over explicit dereferencing. - -For C<keys>, C<values>, C<each>, when overloaded dereferencing is -present, the overloaded dereference is used instead of dereferencing the -underlying reftype. Warnings are issued about assumptions made in the -following three ambiguous cases: - - (a) If both %{} and @{} overloading exists, %{} is used - (b) If %{} overloading exists on a blessed arrayref, %{} is used - (c) If @{} overloading exists on a blessed hashref, @{} is used - -=head2 y///r - -The C</r> flag, which was added to C<s///> in 5.13.2, has been extended to -the C<y///> operator. - -It causes it to perform the substitution on a I<copy> of its operand, -returning that copy instead of a character count. - -=head2 New global variable C<${^GLOBAL_PHASE}> - -A new global variable, C<${^GLOBAL_PHASE}>, has been added to allow -introspection of the current phase of the perl interpreter. It's explained in -detail in L<perlvar/"${^GLOBAL_PHASE}"> and -L<perlmod/"BEGIN, UNITCHECK, CHECK, INIT and END">. - -=head2 Unicode Version 6.0 is now supported (mostly) - -Perl comes with the Unicode 6.0 data base updated with -L<Corrigendum #8|http://www.unicode.org/versions/corrigendum8.html>, -with one exception noted below. -See L<http://unicode.org/versions/Unicode6.0.0> for details on the new -release. Perl does not support any Unicode provisional properties, -including the new ones for this release, but their database files are -packaged with Perl. - -Unicode 6.0 has chosen to use the name C<BELL> for the character at U+1F514, -which is a symbol that looks like a bell, and used in Japanese cell -phones. This conflicts with the long-standing Perl usage of having -C<BELL> mean the ASCII C<BEL> character, U+0007. In Perl 5.14, -C<\N{BELL}> will continue to mean U+0007, but its use will generate a -deprecated warning message, unless such warnings are turned off. The -new name for U+0007 in Perl will be C<ALERT>, which corresponds nicely -with the existing shorthand sequence for it, C<"\a">. C<\N{BEL}> will -mean U+0007, with no warning given. The character at U+1F514 will not -have a name in 5.14, but can be referred to by C<\N{U+1F514}>. The plan -is that in Perl 5.16, C<\N{BELL}> will refer to U+1F514, and so all code -that uses C<\N{BELL}> should convert by then to using C<\N{ALERT}>, -C<\N{BEL}>, or C<"\a"> instead. - -=head2 Improved support for custom OPs - -Custom ops can now be registered with the new C<custom_op_register> C -function and the C<XOP> structure. This will make it easier to add new -properties of custom ops in the future. Two new properties have been added -already, C<xop_class> and C<xop_peep>. - -C<xop_class> is one of the OA_*OP constants, and allows L<B> and other -introspection mechanisms to work with custom ops that aren't BASEOPs. -C<xop_peep> is a pointer to a function that will be called for ops of this -type from C<Perl_rpeep>. - -See L<perlguts/Custom Operators> and L<perlapi/Custom Operators> for more -detail. - -The old C<PL_custom_op_names>/C<PL_custom_op_descs> interface is still -supported but discouraged. - -=head1 Incompatible Changes - -=head2 Dereferencing typeglobs - -If you assign a typeglob to a scalar variable: - - $glob = *foo; - -the glob that is copied to C<$glob> is marked with a special flag -indicating that the glob is just a copy. This allows subsequent assignments -to C<$glob> to overwrite the glob. The original glob, however, is -immutable. - -Many Perl operators did not distinguish between these two types of globs. -This would result in strange behaviour in edge cases: C<untie $scalar> -would do nothing if the last thing assigned to the scalar was a glob -(because it treated it as C<untie *$scalar>, which unties a handle). -Assignment to a glob slot (e.g., C<(*$glob) = \@some_array>) would simply -assign C<\@some_array> to C<$glob>. - -To fix this, the C<*{}> operator (including the C<*foo> and C<*$foo> forms) -has been modified to make a new immutable glob if its operand is a glob -copy. Various operators that make a distinction between globs and scalars -have been modified to treat only immutable globs as globs. - -This causes an incompatible change in code that assigns a glob to the -return value of C<*{}> when that operator was passed a glob copy. Take the -following code, for instance: - - $glob = *foo; - *$glob = *bar; - -The C<*$glob> on the second line returns a new immutable glob. That new -glob is made an alias to C<*bar>. Then it is discarded. So the second -assignment has no effect. - -It also means that C<tie $handle> will now tie C<$handle> as a scalar, even -if it has had a glob assigned to it. - -The upside to this incompatible change is that bugs -L<[perl #77496]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77496>, -L<[perl #77502]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77502>, -L<[perl #77508]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77508>, -L<[perl #77688]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77688>, -and -L<[perl #77812]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77812>, -and maybe others, too, have been fixed. - -See L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=77810> for even -more detail. - -=head2 Clearing stashes - -Stash list assignment C<%foo:: = ()> used to make the stash anonymous -temporarily while it was being emptied. Consequently, any of its -subroutines referenced elsewhere would become anonymous (showing up as -"(unknown)" in C<caller>). Now they retain their package names, such that -C<caller> will return the original sub name if there is still a reference -to its typeglob, or "foo::__ANON__" otherwise -L<[perl #79208]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79208>. - -=head1 Deprecations - -=head2 C<\N{BELL}> is deprecated - -This is because Unicode is using that name for a different character. -See L</Unicode Version 6.0 is now supported (mostly)> for more -explanation. - -=head1 Performance Enhancements - -=over 4 - -=item * - -When an object has many weak references to it, freeing that object -can under some some circumstances take O(N^2) time to free (where N is the -number of references). The number of circumstances has been reduced. -L<[perl #75254]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75254>. - -=back - -=head1 Modules and Pragmata - -=head2 New Modules and Pragmata - -=over 4 - -=item * - -The following modules were added by the C<Unicode::Collate> -upgrade from 0.63 to 0.67. See below for details. - -C<Unicode::Collate::CJK::Big5> - -C<Unicode::Collate::CJK::GB2312> - -C<Unicode::Collate::CJK::JISX0208> - -C<Unicode::Collate::CJK::Korean> - -C<Unicode::Collate::CJK::Pinyin> - -C<Unicode::Collate::CJK::Stroke> - -=back - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -C<Archive::Extract> has been upgraded from 0.44 to 0.46 - -Resolves an issue with NetBSD-current and its new unzip -executable. - -=item * - -C<Archive::Tar> has been upgraded from 1.68 to 1.72 - -This adds the ptargrep utility for using regular expressions against -the contents of files in a tar archive. - -=item * - -C<B> has been upgraded from 1.24 to 1.26. - -It no longer crashes when taking apart a C<y///> containing characters -outside the octet range or compiled in a C<use utf8> scope. - -The size of the shared object has been reduced by about 40%, with no -reduction in functionality. - -=item * - -C<B::Deparse> has been upgraded from 0.99 to 1.01. - -It fixes deparsing of C<our> followed by a variable with funny characters -(as permitted under the C<utf8> pragma) -L<[perl #33752]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=33752>. - -=item * - -C<CGI> has been upgraded from 3.49 to 3.50 - -This provides the following security fixes: the MIME boundary in -multipart_init is now random and improvements to the handling of -newlines embedded in header values. - -The documentation for param_fetch() has been corrected and clarified. - -=item * - -C<CPAN> has been upgraded from 1.94_61 to 1.94_62 - -=item * - -C<CPANPLUS> has been upgraded from 0.9007 to 0.9010 - -Fixes for the SQLite source engine and resolving of issues with the -testsuite when run under local::lib and/or cpanminus - -=item * - -C<CPANPLUS::Dist::Build> has been upgraded from 0.48 to 0.50 - -=item * - -C<Data::Dumper> has been upgraded from 2.129 to 2.130_01. - -=item * - -C<DynaLoader> has been upgraded from 1.10 to 1.11. - -It fixes a buffer overflow when passed a very long file name. - -=item * - -C<ExtUtils::Constant> has been upgraded from 0.22 to 0.23. - -The C<AUTOLOAD> helper code generated by C<ExtUtils::Constant::ProxySubs> -can now C<croak> for missing constants, or generate a complete C<AUTOLOAD> -subroutine in XS, allowing simplification of many modules that use it. -(C<Fcntl>, C<File::Glob>, C<GDBM_File>, C<I18N::Langinfo>, C<POSIX>, C<Socket>) - -C<ExtUtils::Constant::ProxySubs> can now optionally push the names of all -constants onto the package's C{@EXPORT_OK}. This has been used to replace -less space-efficient code in C<B>, helping considerably shrink the size of its -shared object. - -=item * - -C<Fcntl> has been upgraded from 1.09 to 1.10. - -=item * - -C<File::Fetch> has been upgraded from 0.24 to 0.28 - -C<HTTP::Lite> is now supported for 'http' scheme. - -The C<fetch> utility is supported on FreeBSD, NetBSD and -Dragonfly BSD for the C<http> and C<ftp> schemes. - -=item * - -C<File::Glob> has been upgraded from 1.09 to 1.10. - -=item * - -C<File::stat> has been upgraded from 1.03 to 1.04. - -The C<-x> and C<-X> file test operators now work correctly under the root -user. - -=item * - -C<GDBM_File> has been upgraded from 1.11 to 1.12. - -This fixes a memory leak when DBM filters are used. - -=item * - -C<Hash::Util> has been upgraded from 0.09 to 0.10. - -=item * - -C<Hash::Util::FieldHash> has been upgraded from 1.05 to 1.06. - -=item * - -C<I18N::Langinfo> has been upgraded from 0.06 to 0.07. - -=item * - -C<Locale::Maketext> has been upgraded from 1.16 to 1.17. - -=item * - -C<Math::BigInt> has been upgraded from 1.97 to 1.99_01. - -=item * - -C<Math::BigRat> has been upgraded from 0.26 to 0.26_01 - -=item * - -C<Math::BigInt::FastCalc> has been upgraded from 0.22 to 0.24_01. - -=item * - -C<MIME::Base64> has been upgraded from 3.09 to 3.10 - -Includes new functions to calculate the length of encoded and decoded -base64 strings. - -=item * - -C<mro> has been upgraded from 1.04 to 1.05. - -=item * - -C<NDBM_File> has been upgraded from 1.09 to 1.10. - -This fixes a memory leak when DBM filters are used. - -=item * - -C<ODBM_File> has been upgraded from 1.08 to 1.09. - -This fixes a memory leak when DBM filters are used. - -=item * - -C<Opcode> has been upgraded from 1.16 to 1.17. - -=item * - -C<parent> has been upgraded from 0.223 to 0.224 - -=item * - -C<Pod::Simple> has been upgraded from 3.14 to 3.15 - -Includes various fixes to C<HTML> and C<XHTML> handling. - -=item * - -C<POSIX> has been upgraded from 1.21 to 1.22. - -=item * - -C<re> has been upgraded from 0.13 to 0.14, for the sake of the new -C<use re "/flags"> pragma. - -=item * - -C<Safe> has been upgraded from 2.28 to 2.29. - -It adds C<&version::vxs::VCMP> to the default share. - -=item * - -C<SDBM_File> has been upgraded from 1.07 to 1.08. - -=item * - -C<SelfLoader> has been upgraded from 1.17 to 1.18. - -It now works in taint mode -L<[perl #72062]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=72062>. - -=item * - -C<Socket> has been upgraded from 1.90 to 1.91. - -=item * - -C<Storable> has been upgraded from 2.22 to 2.24 - -Includes performance improvement for overloaded classes. - -=item * - -C<Sys::Hostname> has been upgraded from 1.13 to 1.14. - -=item * - -C<Unicode::Collate> has been upgraded from 0.63 to 0.67 - -This release newly adds locales C<ja> C<ko> and C<zh> and its variants -( C<zh__big5han>, C<zh__gb2312han>, C<zh__pinyin>, C<zh__stroke> ). - -Supported UCA_Version 22 for Unicode 6.0.0. - -The following modules have been added: - -C<Unicode::Collate::CJK::Big5> for C<zh__big5han> which makes -tailoring of CJK Unified Ideographs in the order of CLDR's big5han ordering. - -C<Unicode::Collate::CJK::GB2312> for C<zh__gb2312han> which makes -tailoring of CJK Unified Ideographs in the order of CLDR's gb2312han ordering. - -C<Unicode::Collate::CJK::JISX0208> which makes tailoring of 6355 kanji -(CJK Unified Ideographs) in the JIS X 0208 order. - -C<Unicode::Collate::CJK::Korean> which makes tailoring of CJK Unified Ideographs -in the order of CLDR's Korean ordering. - -C<Unicode::Collate::CJK::Pinyin> for C<zh__pinyin> which makes -tailoring of CJK Unified Ideographs in the order of CLDR's pinyin ordering. - -C<Unicode::Collate::CJK::Stroke> for C<zh__stroke> which makes -tailoring of CJK Unified Ideographs in the order of CLDR's stroke ordering. - -=back - -=head1 Documentation - -L<perlvar> reorders the variables and groups them by topic. Each variable -introduced after Perl 5.000 notes the first version in which it is -available. L<perlvar> also has a new section for deprecated variables to -note when they were removed. - -=head2 New Documentation - -=head3 L<perlpodstyle> - -New style guide for POD documentation, -split mostly from the NOTES section of the pod2man man page. - -( This was added to C<v5.13.6> but was not documented with that release ). - -=head2 Changes to Existing Documentation - -=over - -=item * - -Array and hash slices in scalar context are now documented in L<perldata>. - -=item * - -L<perlform> and L<perllocale> have been corrected to state that -C<use locale> affects formats. - -=back - -=head1 Diagnostics - -=head2 New Diagnostics - -=over 4 - -=item * - -"Using !~ with %s doesn't make sense": This message was actually added in -5.13.2, but was omitted from perldelta. It now applies also to the C<y///> -operator, and has been documented. - -=back - -=head1 Utility Changes - -=head3 L<ptargrep> - -=over 4 - -=item * - -L<ptargrep> is a utility to apply pattern matching to the contents of files -in a tar archive. It comes with C<Archive::Tar>. - -=back - -=head1 Testing - -=over 4 - -=item * - -The new F<t/mro/isa_aliases.t> has been added, which tests that -C<*Foo::ISA = *Bar::ISA> works properly. - -=item * - -F<t/mro/isarev.t> has been added, which tests that C<PL_isarev> (accessible -at the Perl level via C<mro::get_isarev>) is updated properly. - -=item * - -F<t/run/switchd-78586.t> has been added, which tests that -L<[perl #78586]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78586> -has been fixed (related to line numbers in the debugger). - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Windows - -Directory handles are now properly cloned when threads are created. In perl -5.13.6, child threads simply stopped inheriting directory handles. In -previous versions, threads would share handles, resulting in crashes. - -Support for building with Visual C++ 2010 is now underway, but is not yet -complete. See F<README.win32> for more details. - -=item VMS - -Record-oriented files (record format variable or variable with fixed control) -opened for write by the perlio layer will now be line buffered to prevent the -introduction of spurious line breaks whenever the perlio buffer fills up. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -C<lex_start> has been added to the API, but is considered experimental. - -=item * - -A new C<parse_block> function has been added to the API -L<[perl #78222]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78222>. - -=item * - -A new, experimental API has been added for accessing the internal -structure that Perl uses for C<%^H>. See the functions beginning with -C<cophh_> in L<perlapi>. - -=item * - -A stash can now have a list of effective names in addition to its usual -name. The first effective name can be accessed via the C<HvENAME> macro, -which is now the recommended name to use in MRO linearisations (C<HvNAME> -being a fallback if there is no C<HvENAME>). - -These names are added and deleted via C<hv_ename_add> and -C<hv_ename_delete>. These two functions are I<not> part of the API. - -=item * - -The way the parser handles labels has been cleaned up and refactored. As a -result, the C<newFOROP()> constructor function no longer takes a parameter -stating what label is to go in the state op. - -=item * - -The C<newWHILEOP()> and C<newFOROP()> functions no longer accept a line -number as a parameter. - -=item * - -A new C<parse_barestmt()> function has been added, for parsing a statement -without a label. - -=item * - -A new C<parse_label()> function has been added, that parses a statement -label, separate from statements. - -=item * - -The C<CvSTASH()> macro can now only be used as an rvalue. C<CvSTASH_set()> -has been added to replace assignment to C<CvSTASH()>. This is to ensure -that backreferences are handled properly. These macros are not part of the -API. - -=item * - -The C<op_scope()> and C<op_lvalue()> functions have been added to the API, -but are considered experimental. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -The C<parse_stmt> C function added in earlier in the 5.13.x series has been -fixed to work with statements ending with C<}> -L<[perl #78222]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78222>. - -=item * - -The C<parse_fullstmt> C function added in 5.13.5 has been fixed to work -when called while an expression is being parsed. - -=item * - -Characters in the Latin-1 non-ASCII range (0x80 to 0xFF) used not to match -themselves if the string happened to be UTF8-encoded internally, the -regular expression was not, and the character in the regular expression was -inside a repeated group (e.g., -C<Encode::decode_utf8("\303\200") =~ /(\xc0)+/>) -L<[perl #78464]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78464>. - -=item * - -The C<(?d)> regular expression construct now overrides a previous C<(?u)> -or C<use feature "unicode_string"> -L<[perl #78508]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78508>. - -=item * - -A memory leak in C<do "file">, introduced in perl 5.13.6, has been fixed -L<[perl #78488]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78488>. - -=item * - -Various bugs related to typeglob dereferencing have been fixed. See -L</Dereferencing typeglobs>, above. - -=item * - -The C<SvPVbyte> function available to XS modules now calls magic before -downgrading the SV, to avoid warnings about wide characters -L<[perl #72398]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=72398>. - -=item * - -The C<=> operator used to ignore magic (e.g., tie methods) on its -right-hand side if the scalar happened to hold a typeglob. This could -happen if a typeglob was the last thing returned from or assigned to a tied -scalar -L<[perl #77498]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77498>. - -=item * - -C<sprintf> was ignoring locales when called with constant arguments -L<[perl #78632]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78632>. - -=item * - -A non-ASCII character in the Latin-1 range could match both a Posix -class, such as C<[[:alnum:]]>, and its inverse C<[[:^alnum:]]>. This is -now fixed for regular expressions compiled under the C<"u"> modifier. -See L</C<use feature "unicode_strings"> now applies to more regex matching>. -L<[perl #18281]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=18281>. - -=item * - -Concatenating long strings under C<use encoding> no longer causes perl to -crash -L<[perl #78674]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78674>. - -=item * - -Typeglob assignments would crash if the glob's stash no longer existed, so -long as the glob assigned to was named 'ISA' or the glob on either side of -the assignment contained a subroutine. - -=item * - -Calling C<< ->import >> on a class lacking an import method could corrupt -the stack, resulting in strange behaviour. For instance, - - push @a, "foo", $b = bar->import; - -would assign 'foo' to C<$b> -L<[perl #63790]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=63790>. - -=item * - -Creating an alias to a package when that package had been detached from the -symbol table would result in corrupted isa caches -L<[perl #77358]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77358>. - -=item * - -C<.=> followed by C<< <> >> or C<readline> would leak memory if C<$/> -contained characters beyond the octet range and the scalar assigned to -happened to be encoded as UTF8 internally -L<[perl #72246]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=72246>. - -=item * - -The C<recv> function could crash when called with the MSG_TRUNC flag -L<[perl #75082]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75082>. - -=item * - -Evaluating a simple glob (like C<*a>) was calling get-magic on the glob, -even when its contents were not being used -L<[perl #78580]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78580>. - -This bug was introduced in 5.13.2 and did not affect earlier perl versions. - -=item * - -Matching a Unicode character against an alternation containing characters -that happened to match continuation bytes in the former's UTF8 -representation (C<qq{\x{30ab}} =~ /\xab|\xa9/>) would cause erroneous -warnings -L<[perl #70998]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=70998>. - -=item * - -C<s///r> (added in 5.13.2) no longer leaks. - -=item * - -The trie optimisation was not taking empty groups into account, preventing -'foo' from matching C</\A(?:(?:)foo|bar|zot)\z/> -L<[perl #78356]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78356>. - -=item * - -A pattern containing a C<+> inside a lookahead would sometimes cause an -incorrect match failure in a global match (e.g., C</(?=(\S+))/g>) -L<[perl #68564]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=68564>. - -=item * - -Iterating with C<foreach> over an array returned by an lvalue sub now works -L<[perl #23790]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=23790>. - -=item * - -C<$@> is now localised during calls to C<binmode> to prevent action at a -distance -L<[perl #78844]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78844>. - -=item * - -C<PL_isarev>, which is accessible to Perl via C<mro::get_isarev> is now -updated properly when packages are deleted or removed from the C<@ISA> of -other classes. This allows many packages to be created and deleted without -causing a memory leak -L<[perl #75176]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75176>. - -=item * - -C<undef *Foo::> and C<undef *Foo::ISA> and C<delete $package::{ISA}> -used not to update the internal isa caches if the -stash or C<@ISA> array had a reference elsewhere. In -fact, C<undef *Foo::ISA> would stop a new C<@Foo::ISA> array from updating -caches. - -=item * - -C<@ISA> arrays can now be shared between classes via -C<*Foo::ISA = \@Bar::ISA> or C<*Foo::ISA = *Bar::ISA> -L<[perl #77238]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77238>. - -=item * - -The parser no longer hangs when encountering certain Unicode characters, -such as U+387 -L<[perl #74022]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=74022>. - -=item * - -C<formline> no longer crashes when passed a tainted format picture. It also -taints C<$^A> now if its arguments are tainted -L<[perl #79138]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79138>. - -=item * - -A signal handler called within a signal handler could cause leaks or -double-frees. Now fixed. -L<[perl #76248]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=76248>. - -=item * - -When trying to report C<Use of uninitialized value $Foo::BAR>, crashes could -occur if the GLOB of the global variable causing the warning has been detached -from its original stash by, for example C<delete $::{'Foo::'}>. This has been -fixed by disabling the reporting of variable names in the warning in those -cases. - -=back - -=head1 Obituary - -Randy Kobes, creator of the kobesearch alternative to search.cpan.org and -contributor/maintainer to several core Perl toolchain modules, passed away -on September 18, 2010 after a battle with lung cancer. His contributions -to the Perl community will be missed. - -=head1 Acknowledgements - -Perl 5.13.7 represents approximately one month of development since Perl 5.13.6 -and contains 73100 lines of changes across 518 files from 39 authors and committers: - -Abhijit Menon-Sen, Abigail, Ben Morrow, Chas. J. Owens IV, Chris 'BinGOs' Williams, Craig A. Berry, -David Golden, David Mitchell, Father Chrysostomos, Fingle Nark, Florian Ragwitz, George Greer, -Grant McLean, H.Merijn Brand, Ian Goodacre, Jan Dubois, Jerry D. Hedden, Jesse Vincent, Karl Williamson, -Lubomir Rintel, Marty Pauley, Moritz Lenz, Nicholas Clark, Nicolas Kaiser, Niko Tyni, Peter John Acklam, -Rafael Garcia-Suarez, Shlomi Fish, Steffen Mueller, Steve Hay, Tatsuhiko Miyagawa, Tim Bunce, Todd Rinaldo, -Tom Christiansen, Tom Hukins, Tony Cook, Yves Orton, Zefram and brian d foy - -Many of the changes included in this version originated in the CPAN modules included in -Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish. - -=head1 Reporting Bugs - -If you find what you think is a bug, you might check the articles -recently posted to the comp.lang.perl.misc newsgroup and the perl -bug database at http://rt.perl.org/perlbug/ . There may also be -information at http://www.perl.org/ , the Perl Home Page. - -If you believe you have an unreported bug, please run the B<perlbug> -program included with your release. Be sure to trim your bug down -to a tiny but sufficient test case. Your bug report, along with the -output of C<perl -V>, will be sent off to perlbug@perl.org to be -analysed by the Perl porting team. - -If the bug you are reporting has security implications, which make it -inappropriate to send to a publicly archived mailing list, then please send -it to perl5-security-report@perl.org. This points to a closed subscription -unarchived mailing list, which includes all the core committers, who be able -to help assess the impact of issues, figure out a resolution, and help -co-ordinate the release of patches to mitigate or fix the problem across all -platforms on which Perl is supported. Please only use this address for -security issues in the Perl core, not for modules independently -distributed on CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details -on what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut |