Version
|
Release date
|
Links
|
Changes
|
5.40.0
|
June 9, 2024
|
Full release notes
|
- New `__CLASS__` keyword
- Added the `:reader` attribute for field variables
- Added builtin `inf` and `nan` functions (experimental)
- New logical `^^` xor medium-precedence operator
- The `try/catch` feature is no longer experimental
- Security fixes
|
5.38.2
|
November 29, 2023
|
Full release notes
|
- Security fixes
- Note: 5.38.1 was withdrawn due to a broken release
|
5.38.0
|
July 3, 2023
|
Full release notes
|
- New class feature
- Unicode 15
- Deprecation warnings now have specific subcategories
- API hooks
- Ability to set a consistent random seed
- Defined-or and logical-or assignment default expressions in subroutine signatures
- Regex quantifiers limit increased to I32_MAX
- Use of single-quote as a package separator deprecated
- Performance enhancements
- Flow-control improvements to
defer and finally blocks
- The Switch and Smart Match added in v5.10 are deprecated
|
5.36.3
|
November 29, 2023
|
Full release notes
|
- Security fixes
- Note: 5.36.2 was withdrawn due to a broken release
|
5.36.1
|
April 23, 2023
|
Full release notes
|
|
5.36.0
|
May 28, 2022
|
Full release notes
|
isa operator no longer considered experimental
- Unicode 14
- Regex sets no longer considered experimental
- Variable length lookbehind in regexes no longer considered experimental
- Boolean tracking
- New builtin functions
- Subroutine signatures no longer considered experimental
- Added `defer` blocks
- Experimental
try/catch with finally blocks
- Experimental n-at-a-time
for iterators
|
5.34.3
|
November 29, 2023
|
Full release notes
|
- Security fixes
- Note: 5.34.2 was withdrawn due to a broken release
|
5.34.1
|
March 13, 2022
|
Full release notes
|
|
5.34.0
|
May 20, 2021
|
Full release notes
|
- Experimental
try/catch syntax
- Empty lower bound in regular expression quantifiers (
qr/{,n}/ )
- New octal syntax with
0o prefixes (e.g., 0o123_456 )
|
5.32.1
|
January 23, 2021
|
Full release notes
|
- New documentation perlgov and perlsecpolicy
|
5.32.0
|
June 20, 2020
|
Full release notes
|
- Experimental
isa operator
- Chained comparisons (e.g.
1 <= $x <= 10 )
- Unicode 13.0 is supported
- Numeric variables cannot be prefixed with 0.
|
5.30.3
|
June 1, 2020
|
Full release notes
|
|
5.30.2
|
March 14, 2020
|
Full release notes
|
- Bug fixes and module updates
|
5.30.1
|
November 10, 2019
|
Full release notes
|
- Bug fixes and module updates
|
5.30.0
|
May 22, 2019
|
Full release notes
|
- Unicode 12.1 support
- Variable length lookbehind in regular expression patterns
|
5.28.0
|
June 22, 2018
|
Full release notes
|
- Unicode 10.0 is supported
- delete on key/value hash slices
- alphabetic synonyms for some regular expression assertions (experimental)
- Mixed Unicode scripts are now detectable
- In-place editing with perl -i is now safer
- Initialisation of aggregate state variables
- Full-size inode numbers
- The
sprintf %j format size modifier is now available with pre-C99 compilers
- Close-on-exec flag set atomically
- String- and number-specific bitwise ops are no longer experimental
- Locales are now thread-safe on systems that support them
- New read-only predefined variable
${^SAFE_LOCALES}
- Security fixes
- Subroutine attribute and signature order was flipped to the original order from v5.20
- The sort algorithm can no longer be changed. The
sort pragma is a no-op.
|
5.26.0
|
May 30, 2017
|
Full release notes
|
- For security reasons, the current directory (".") is no longer included by default at the end of the module search path (@INC)
- Lexical subroutines are no longer experimental
- Indented Here-documents
- New regular expression modifiers and capture groups
- Unicode 9.0 is now supported
- Perl can now do default collation in UTF-8 locales on platforms that support it
|
5.24.0
|
May 8, 2016
|
Full release notes
|
- Unicode 8.0 is now supported.
- New line break boundary in regular expressions
- Extended Bracketed Character Classes work in UTF-8 locales
- More explicit definitions for integer shifting
- Reordered precision arguments for printf and sprintf
- More fields provided to sigaction callback
- The experimental autoderef feature was removed.
- Postfix dereferencing is no longer experimental.
|
5.22.0
|
June 1, 2015
|
Full release notes
|
- Unicode 7.0 is now supported.
- The historical modules CGI.pm and Module::Build were removed from the core distribution.
- The double diamond operator
- Disambiguated bitwise operators (as an experimental feature)
- Variable aliasing (as an experimental feature)
- Subroutine attribute and signature order was flipped, but this was flipped back in v5.28
|
5.20.0
|
May 27, 2014
|
Full release notes
|
- Subroutine signatures (as an experimental feature)
- Postfix dereferencing (as an experimental feature)
- Key/value slice syntax
|
5.18.0
|
May 18, 2013
|
Full release notes
|
- regular expression character set operations (as an experimental feature)
- lexical subroutines (as an experimental feature)
|
5.16.0
|
May 20, 2012
|
Full release notes
|
__SUB__ for currently-executing subroutine
- encoding-disambiguated eval
fc case-folding function
|
5.14.0
|
May 14, 2011
|
Full release notes
|
- Unicode 6.0 is supported
- Unicode semantics applied to all strings
- Non-destructive substitution (s///r)
- Added /d, /l, /u and /a regular expression modifiers
- Re-entrant regular expressions
- Automatic dereference (autoderef) by built-ins (experimental feature, removed in v5.24)
|
5.12.0
|
April 12, 2010
|
Full release notes
|
- Unicode 5.2 is supported
- New
package NAME VERSION syntax
- The
... operator added
- Implicit strictures with
use 5.12.0 (or later version)
- Year 2038 compliance
|
5.10.1
|
August 23, 2009[1] |
Full release notes
|
- Incompatible changes to the range operators and defined-or in boolean context, which affects the new
switch feature
- Incompatible changes to the smart match operator
- Unicode 5.1.0 is supported
- A new interface for pluggable Method Resolution Orders
- A new
overloading pragma
- Parallel tests
- DTrace support
- Bug fixes and module updates
setuidperl deprecated
|
5.10.0
|
December 18, 2007[1] |
Full release notes
|
- Unicode 5.0 is supported
- New
feature pragma
- New defined-or operator (
// )
- New
switch feature and related smart match operator[clarification needed] (~~ )
- Numerous new regular expression features
- New
say built-in (via feature say )
- Ability to declare static variables with
state
|
5.8.1
|
September 25, 2003[1] |
Perl 5.8.1 Release Notes
|
- Improved randomization of hash order, for security reasons.
- Unicode is not enabled by default based on locale settings.
- Version strings on the left of a fat comma are treated as string literals.
- Unsafe signals were re-added.
- Improved tied arrays with negative indexes
- Supports Unicode 4.0.0
- Pseudo-hashes are deprecated
- Old-style threads are deprecated.
- Various module upgrades.
- The `strict` pragma checks parameters.
- Documentation improvements.
- Bug fixes.
|
5.8.0
|
July 18, 2002[1] |
Perl 5.8.0 Release Announcement
|
- Supports Unicode 3.2.0
- Regular expressions now work with Unicode
- Support for non-Latin encodings via Encode module
- Introduction of interpreter threads
- New PerlIO implementation
- Scalars can be used as file handles
- Improved numeric accuracy for string-number conversion via built-in routine
- Finalized 64-bit support
- New
sort pragma to change the sort algorithm. (This was disabled in v5.28.)
- New modules: Digest::MD5, File::Temp, Filter::Simple, libnet, List::Util, Memoize, MIME::Base64, Scalar::Util, Storable, Switch, Test::More, Test::Simple, Text::Balanced, Tie::File, etc.
- Incompatibilities:
- Perl 5.8 is not binary compatible with any earlier Perl release
- 64-bit versions no longer use Perl malloc.
- hash order changed
- dump() command becomes obsolete.
- 5.005 threads are deprecated.
- user-visible implementation of pseudohashes is deprecated and scheduled for removal
- Use of tainted data in exec LIST and system LIST issues warning, and will become fatal error in a future release
- For tr///C, tr///U, pack("C0", ...) and pack("U0", ...) can be used instead
|
5.6.0
|
March 22, 2000[1] |
Perl v5.6.0 released
|
- Version numbering changed to 'revision.version.subversion' format
- Internal representation for strings is changed to UTF-8, with EBCDIC support discontinued.
- Better support for interpreter concurrency.
- String literals can be written using character ordinals.
- New syntax for subroutine attributes. (The attrs pragma is now deprecated.)
- Support for large files, where available.
- Support for binary numbers.
- JPL ("Java Perl Lingo") distribution comes bundled with Perl.
- Much new documentation in the form of tutorials and reference information has been added.
- Experimental features:
- Support for Unicode
- Support for threading, and the fork() emulation on Windows.
- 64-bit support.
- Lvalue subroutines.
- Weak references.
- Pseudo-hash data type.
|
5.005
|
July 22, 1998[1] |
5.005 released (with maintenance update 01)
|
- 5.005 is not binary compatible with previous releases.
- Source code now in ANSI C.
- New supported platforms include BeOS, DOS, MPE/ix.
- EXPR foreach EXPR syntax is supported.
- Experimental features:
- C++ Perl Object abstraction supported on Win32.
- Precompiled regular expressions.
- Enhanced 64-bit support.
- Reliable signals, when threading is enabled.
- Extended support for exception handling.
- EGCS/GCC compilers are now supported on Win32.
|
5.004
|
May 15, 1997
|
perl5004delta - what's new for perl5.004
|
|
5.003_1
|
July 31, 1996
|
Full release notes
|
|
5.003
|
June 25, 1996
|
Full release notes
|
|
5.002_1
|
March 25, 1996
|
Full release notes
|
- EMBED namespace changes are now used by default
- Fixed several bugs in the core
- Added two new magic variables: $^E and $^O
- A mechanism was added to allow listing of locally applied patches in the
perl -v output
- Miscellaneous minor corrections and updates were made to the documentation
- Extensive updates made to the OS/2 and VMS ports
- Other miscellaneous changes and bug fixes
|
5.002
|
February 29, 1996
|
Full release notes
|
- Added a new feature: Prototypes
- Extensive upgrades to nearly all of Perl's modules
- Massive changes to both the configure and build systems
- Bug fixes
|
5.001
|
March 13, 1995
|
Full release notes
|
- Added two new hooks: $SIG{__WARN__} and $SIG{__DIE__}
- Added closures
- Now counts imported routines as "defined" for redef warnings
- Bug fixes
|
5.000
|
October 17, 1994
|
Full release notes
|
|
4.000
|
March 21, 1991
|
|
|
3.000
|
October 18, 1989
|
|
|
2.000
|
June 5, 1988
|
|
|
1.000
|
December 18, 1987
|
|
|