Jump to content

Perl 5 version history

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 79.186.4.84 (talk) at 21:36, 24 December 2020 (added 5.30 changes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 are not shown in this chart. Additional information can be found on the official Perl website.

Version history

Legend:   Current   Legacy
Version Release date Links Changes
5.32.0 June 20, 2020 Full release notes
  • isa operator
  • chained comparisons (e.g. 1 <= $x <= 10)
  • Unicode 13.0 is supported
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
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
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)
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
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)
  • Re-entrant regular expressions
  • Automagical dereference by built-ins (later removed)
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.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)
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
  • Improved numeric accuracy for string-number conversion via built-in routine
  • Finalized 64-bit support
  • 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
  • Security fixes
  • Bug fixes
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

References

  1. ^ a b c d perlhist