From Fedora Project Wiki
Perl 5.24
- New features:
- Unicode 8.0 is now supported.
- An exception will be raised when closing an in-place output file fails.
- (?[ ]) will successfully compile when use locale is in effect.
- Integer shift (<< and >>) now more explicitly defined. Negative shifts are reverse shifts.
- printf and sprintf now allow reordered precision arguments.
- When passing the SA_SIGINFO flag to sigaction, the errno, status, uid, pid, addr and band fields are included in the hash passed to the handler, if supported by the platform.
- Hashbang redirection was extended also to Perl 6.
- Changes:
- Postfix dereferencing is no longer experimental.
- Remove duplicate environment variables from environ.
- More regular expression patterns are now checked for validity at compilation time, and invalid ones will cause the program to not compile.
- Using \N{} is a fatal error under experimental feature "'strict' mode" in re.
- A my, our, or state declaration is no longer allowed inside of another my, our, or state declaration.
- The /\C/ character class has been removed.
- Using chdir(\'\') or chdir(undef) to change working directory to a home directory fails now. Use chdir() instead.
- ASCII characters in variable names must now be all visible.
- $Carp::MaxArgNums is supposed to be the number of arguments to display.
- Only blanks and tabs are now allowed within [...] within (?[...]).
- Matching fixed string regular expression is now faster in most cases.
- Removed features:
- The autoderef feature has been removed.
- Lexical $_ has been removed.
- PPPort.so no longer get installed, as they are not used by PPPort.pm.
- Using code points above the platform's IV_MAX is now deprecated.
- Bitwise operations on strings containing code points above 0xFF is deprecated. Instead, encode these strings to byte strings first.
- sysread(), syswrite(), recv() and send() are deprecated on :utf8 handles.