Perl 5 version history

Last updated

Perl is an open-source programming language whose first version, 1.0, was released in 1987. The following table contains the Perl 5 version history, showing its release versions. Not all versions are covered yet.

Note that additional minor release versions may not be shown in this chart, unless they include notable changes or are the latest supported version. Additional information can be found on the official Perl website.

Version history

Legend:  Current  Toolchain  Legacy

Release numbers use semantic versioning since 5.6, where even-numbered minor versions (e.g. 5.36) are stable releases, and odd numbers are experimental development versions. The patch number is usually omitted in discussions of Perl versions.

The Perl Maintenance and Support Policy is to "support the two most recent stable release series" although important security fixes may be applied to stable releases from the past three years.

Note that this is separate from the Perl Toolchain (utilities for developing, building and installing Perl modules) Support Policies, which will informally support older releases. The current policy is to support Perl v5.16 or earlier until July 2024, and then to support releases than have been available for at least ten years.

VersionRelease dateLinksChanges
5.40.0June 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.2November 29, 2023 Full release notes
  • Security fixes
  • Note: 5.38.1 was withdrawn due to a broken release
5.38.0July 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.3November 29, 2023 Full release notes
  • Security fixes
  • Note: 5.36.2 was withdrawn due to a broken release
5.36.1April 23, 2023 Full release notes
  • Bug fixes
5.36.0May 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.3November 29, 2023 Full release notes
  • Security fixes
  • Note: 5.34.2 was withdrawn due to a broken release
5.34.1March 13, 2022 Full release notes
  • Bug fixes
5.34.0May 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.1January 23, 2021 Full release notes
  • New documentation perlgov and perlsecpolicy
5.32.0June 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.3June 1, 2020 Full release notes
  • Security fixes
5.30.2March 14, 2020 Full release notes
  • Bug fixes and module updates
5.30.1November 10, 2019 Full release notes
  • Bug fixes and module updates
5.30.0May 22, 2019 Full release notes
  • Unicode 12.1 support
  • Variable length lookbehind in regular expression patterns
5.28.0June 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.0May 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.0May 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.0June 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.0May 27, 2014 Full release notes
  • Subroutine signatures (as an experimental feature)
  • Postfix dereferencing (as an experimental feature)
  • Key/value slice syntax
5.18.0May 18, 2013 Full release notes
  • regular expression character set operations (as an experimental feature)
  • lexical subroutines (as an experimental feature)
5.16.0May 20, 2012 Full release notes
  • __SUB__ for currently-executing subroutine
  • encoding-disambiguated eval
  • fc case-folding function
5.14.0May 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.0April 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.1August 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.0December 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.1September 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.0July 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.0March 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.005July 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.004May 15, 1997 perl5004delta - what's new for perl5.004
5.003_1July 31, 1996 Full release notes
5.003June 25, 1996 Full release notes
  • Security fixes
  • Bug fixes
5.002_1March 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.002February 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.001March 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.000October 17, 1994 Full release notes
4.000March 21, 1991
3.000October 18, 1989
2.000June 5, 1988
1.000December 18, 1987

Related Research Articles

<span class="mw-page-title-main">Debian</span> Linux distribution based on free and open-source software

Debian, also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software and optionally non-free firmware or software developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of Debian (0.01) was released on September 15, 1993, and its first stable version (1.1) was released on June 17, 1996. The Debian Stable branch is the most popular edition for personal computers and servers. Debian is also the basis for many other distributions that have different purposes, like Proxmox for servers, Ubuntu or Linux Mint for desktops, Kali for penetration testing, and Pardus and Astra for government use.

<span class="mw-page-title-main">GIMP</span> Open source raster graphics editor

GNU Image Manipulation Program, commonly known by its acronym GIMP, is a free and open-source raster graphics editor used for image manipulation (retouching) and image editing, free-form drawing, transcoding between different image file formats, and more specialized tasks. It is extensible by means of plugins, and scriptable. It is not designed to be used for drawing, though some artists and creators have used it in this way.

<span class="mw-page-title-main">Perl</span> Interpreted programming language first released in 1987

Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language".

<span class="mw-page-title-main">Regular expression</span> Sequence of characters that forms a search pattern

A regular expression, sometimes referred to as rational expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. Regular expression techniques are developed in theoretical computer science and formal language theory.

<span class="mw-page-title-main">Ruby (programming language)</span> General-purpose programming language

Ruby is an interpreted, high-level, general-purpose programming language. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

<span class="mw-page-title-main">GNU Privacy Guard</span> Complete implementation of the OpenPGP and S/MIME standards

GNU Privacy Guard is a free-software replacement for Symantec's cryptographic software suite PGP. The software is compliant with RFC 4880, the IETF standards-track specification of OpenPGP. Modern versions of PGP are interoperable with GnuPG and other OpenPGP-compliant systems. GnuPG is however expected, as of April 2024, to break compliance with the upcoming revision of OpenPGP and thus with other implementations that will continue to comply.

Parrot is a discontinued register-based process virtual machine designed to run dynamic languages efficiently. It is possible to compile Parrot assembly language and Parrot intermediate representation to Parrot bytecode and execute it. Parrot is free and open-source software.

<span class="mw-page-title-main">Gnus</span>

Gnus, or Gnus Network User Services, is a message reader which is part of GNU Emacs. It supports reading and composing both e-mail and news and can also act as an RSS reader, web processor, and directory browser for both local and remote filesystems.

Linux From Scratch (LFS) is a type of a Linux installation and the name of a book written by Gerard Beekmans, and as of May 2021, mainly maintained by Bruce Dubbs. The book gives readers instructions on how to build a Linux system from source. The book is available freely from the Linux From Scratch site.

<span class="mw-page-title-main">Windows Script Host</span> Automation technology for Windows

The Microsoft Windows Script Host (WSH) is an automation technology for Microsoft Windows operating systems that provides scripting abilities comparable to batch files, but with a wider range of supported features. This tool was first provided on Windows 95 after Build 950a on the installation discs as an optional installation configurable and installable by means of the Control Panel, and then a standard component of Windows 98 and subsequent and Windows NT 4.0 Build 1381 and by means of Service Pack 4. The WSH is also a means of automation for Internet Explorer via the installed WSH engines from IE Version 3.0 onwards; at this time VBScript became means of automation for Microsoft Outlook 97. The WSH is also an optional install provided with a VBScript and JScript engine for Windows CE 3.0 and following and some third-party engines including Rexx and other forms of Basic are also available.

<span class="mw-page-title-main">Red Hat Enterprise Linux</span> Linux distribution developed by Red Hat

Red Hat Enterprise Linux (RHEL) is a commercial open-source Linux distribution developed by Red Hat for the commercial market. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop version for x86-64. Fedora Linux and CentOS Stream serve as its upstream sources. All of Red Hat's official support and training, together with the Red Hat Certification Program, focuses on the Red Hat Enterprise Linux platform.

<span class="mw-page-title-main">Zabbix</span> Computer system and network monitoring application software

Zabbix is an open-source software tool to monitor IT infrastructure such as networks, servers, virtual machines, and cloud services. Zabbix collects and displays basic metrics.

<span class="mw-page-title-main">WebGUI</span> Open-source content management system

WebGUI is an open-source content management system written in Perl and released under the GNU General Public License.

Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category, these numbers are generally assigned in increasing order and correspond to new developments in the software. At a fine-grained level, revision control is used for keeping track of incrementally-different versions of information, whether or not this information is computer software, in order to be able to roll any changes back.

<span class="mw-page-title-main">BBEdit</span> Third-party text editor for Apple Macintosh computers

BBEdit is a proprietary text editor made by Bare Bones Software, originally developed for Macintosh System Software 6, and currently supporting macOS.

Perl Compatible Regular Expressions (PCRE) is a library written in C, which implements a regular expression engine, inspired by the capabilities of the Perl programming language. Philip Hazel started writing PCRE in summer 1997. PCRE's syntax is much more powerful and flexible than either of the POSIX regular expression flavors and than that of many other regular-expression libraries.

<span class="mw-page-title-main">LAMP (software bundle)</span> Acronym for a common web hosting solution

A LAMP is one of the most common software stacks for the web's most popular applications. Its generic software stack model has largely interchangeable components.

openSUSE Community-supported Linux distribution

openSUSE is a free and open-source Linux distribution developed by the openSUSE project. It is offered in two main variations: Tumbleweed, an upstream rolling release distribution, and Leap, a stable release distribution which is sourced from SUSE Linux Enterprise.

<span class="mw-page-title-main">ImageMagick</span> Free and open-source image manipulation software

ImageMagick, invoked from the command line as magick, is a free and open-source cross-platform software suite for displaying, creating, converting, modifying, and editing raster images. ImageMagick was created by John Cristy in 1987, it can read and write over 200 image file formats. It is widely used in open-source applications.

Ikonboard was a free online forum or Bulletin Board System developed in Perl, PHP for use on MySQL, PostgreSQL, Oracle, as well as flat file databases.

References