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 | | |