# phpman > man > PERL586DELTA(1)

[PERL586DELTA(1)](https://www.chedong.com/phpMan.php/man/PERL586DELTA/1/markdown)                   Perl Programmers Reference Guide                   [PERL586DELTA(1)](https://www.chedong.com/phpMan.php/man/PERL586DELTA/1/markdown)



## NAME
       perl586delta - what is new for perl v5.8.6

## DESCRIPTION
       This document describes differences between the 5.8.5 release and the 5.8.6 release.

### Incompatible Changes
       There are no changes incompatible with 5.8.5.

### Core Enhancements
       The perl interpreter is now more tolerant of UTF-16-encoded scripts.

       On Win32, Perl can now use non-IFS compatible LSPs, which allows Perl to work in conjunction
       with firewalls such as McAfee Guardian. For full details see the file _README.win32_,
       particularly if you're running Win95.

### Modules and Pragmata
       •   With the "base" pragma, an intermediate class with no fields used to messes up private
           fields in the base class. This has been fixed.

       •   Cwd upgraded to version 3.01 (as part of the new PathTools distribution)

       •   [Devel::PPPort](https://www.chedong.com/phpMan.php/perldoc/Devel%3A%3APPPort/markdown) upgraded to version 3.03

       •   [File::Spec](https://www.chedong.com/phpMan.php/perldoc/File%3A%3ASpec/markdown) upgraded to version 3.01 (as part of the new PathTools distribution)

       •   Encode upgraded to version 2.08

       •   [ExtUtils::MakeMaker](https://www.chedong.com/phpMan.php/perldoc/ExtUtils%3A%3AMakeMaker/markdown) remains at version 6.17, as later stable releases currently available
           on CPAN have some issues with core modules on some core platforms.

       •   [I18N::LangTags](https://www.chedong.com/phpMan.php/perldoc/I18N%3A%3ALangTags/markdown) upgraded to version 0.35

       •   [Math::BigInt](https://www.chedong.com/phpMan.php/perldoc/Math%3A%3ABigInt/markdown) upgraded to version 1.73

       •   [Math::BigRat](https://www.chedong.com/phpMan.php/perldoc/Math%3A%3ABigRat/markdown) upgraded to version 0.13

       •   [MIME::Base64](https://www.chedong.com/phpMan.php/perldoc/MIME%3A%3ABase64/markdown) upgraded to version 3.05

       •   [POSIX::sigprocmask](https://www.chedong.com/phpMan.php/perldoc/POSIX%3A%3Asigprocmask/markdown) function can now retrieve the current signal mask without also setting
           it.

       •   [Time::HiRes](https://www.chedong.com/phpMan.php/perldoc/Time%3A%3AHiRes/markdown) upgraded to version 1.65

### Utility Changes
       Perl has a new -dt command-line flag, which enables threads support in the debugger.

### Performance Enhancements
       "reverse sort ..." is now optimized to sort in reverse, avoiding the generation of a
       temporary intermediate list.

       "for (reverse @foo)" now iterates in reverse, avoiding the generation of a temporary reversed
       list.

### Selected Bug Fixes
       The regexp engine is now more robust when given invalid utf8 input, as is sometimes generated
       by buggy XS modules.

       "foreach" on [threads::shared](https://www.chedong.com/phpMan.php/perldoc/threads%3A%3Ashared/markdown) array used to be able to crash Perl. This bug has now been
       fixed.

       A regexp in "STDOUT"'s destructor used to coredump, because the regexp pad was already freed.
       This has been fixed.

       "goto &" is now more robust - bugs in deep recursion and chained "goto &" have been fixed.

       Using "delete" on an array no longer leaks memory. A "pop" of an item from a shared array
       reference no longer causes a leak.

       "eval_sv()" failing a taint test could corrupt the stack - this has been fixed.

       On platforms with 64 bit pointers numeric comparison operators used to erroneously compare
       the addresses of references that are overloaded, rather than using the overloaded values.
       This has been fixed.

       "read" into a UTF8-encoded buffer with an offset off the end of the buffer no longer mis-
       calculates buffer lengths.

       Although Perl has promised since version 5.8 that "sort()" would be stable, the two cases
       "sort {$b cmp $a}" and "sort {$b <=> $a}" could produce non-stable sorts.   This is corrected
       in perl5.8.6.

       Localising $^D no longer generates a diagnostic message about valid -D flags.

### New or Changed Diagnostics
       For -t and -T,
          Too late for "-T" option has been changed to the more informative
          "-T" is on the #! line, it must also be used on the command line

### Changed Internals
       From now on all applications embedding perl will behave as if perl were compiled with
       -DPERL_USE_SAFE_PUTENV.  See "Environment access" in the _INSTALL_ file for details.

       Most "C" source files now have comments at the top explaining their purpose, which should
       help anyone wishing to get an overview of the implementation.

### New Tests
       There are significantly more tests for the "B" suite of modules.

### 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://bugs.perl.org>.  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 **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 "perl -V", will be sent off to <perlbug@perl.org> to be analysed by
       the Perl porting team.  You can browse and search the Perl 5 bugs at <http://bugs.perl.org/>

## SEE ALSO
       The _Changes_ file for exhaustive details on what changed.

       The _INSTALL_ file for how to build Perl.

       The _README_ file for general stuff.

       The _Artistic_ and _Copying_ files for copyright information.



perl v5.34.0                                 2025-07-25                              [PERL586DELTA(1)](https://www.chedong.com/phpMan.php/man/PERL586DELTA/1/markdown)
