Perl 5.24.0 Released
Written by Nikos Vaggalis   
Tuesday, 17 May 2016

While stepping down as Perl 5 Pumpking, in charge of the Perl release cycles, Ricardo Signes still managed to deliver Perl's latest stable release, 5.24, together with the development release, 5.25, that will evolve into  5.26.0 over the course of the next year.

Make sure you catch GeekUni's interview with Ricardo for more details on the Pumpking's activities.

Version 5.24.0 had approximately 360,000 lines of changes since last version 5.22 (excluding the changes in 5.22.1 and 5.22.2 maintenance versions), with Perl 5.22 containing approximately 590,000 lines of changes from its predecessor, all of that in a 23-month period. So a lot of work over the past two years has gone into this milestone release. According to perlhist Perl's first release was on December 18, 1987 making next year, 2017, a landmark year for Perl with its 30th anniversary. 

Perl is of the few projects that enjoy such strong foundations which not only kept it alive and going for that many years, but at the same time let it evolve and rejuvenate, not only keeping up to date with the latest industry developments but also setting the pace, still driving innovation forward.

An example of that spearheading is the early adoption of Unicode 8.0, just released last June. Perl 5.24 also heralds more features that are focused on working with text such as the introduction of the new class \b{lb} that matches  Unicode linebreaks, a feature till now plugged into through a module but now finding its way into the Core.

The new version includes notable deprecations and removals:

  • Nested declarations are now disallowed, for example, these are now fatal:

my ($x, my($y));

our (my $x);

  • The /\C/ character class has been removed and sysread(), syswrite(), recv() and send() on :utf8 handles are deprecated.

These changes might not cause a fuss but bear in mind that the autoderef feature with which you could write, for example, keys($ref) instead of keys(%$ref), useful for calling functions push, pop, shift and so on on a scalar argument, might had found more use, therefore its deprecation might  have some ripple effects.

But that removal is probably related to the fact that postfix dereferencing is no longer considered experimental and has found its way into the Core, something that makes autoderef irrelevant.

Some implementations of Perl's guts have been reworked, but care has been taken not to affect their public interface, while many core modules have also been upgraded to their newest version, for example the Win32 one from version 0.51 to 0.52, Win32API::File from 0.1202 to 0.1203, utf8 from version 1.17 to 1.19 and Socket from version 2.018 to 2.020_03.

Some Common Vulnerabilities and Exposures (CVE), such as "out of boundary access in Win32 path handling", CVE-2015-8608, and "loss of taint in canonpath", CVE-2015-8607, have been fixed.

Other changes are to documentation and in platform specific configurations. Performance has attracted a lot of attention in the past couple of years, with RPerl, a trimmed down version of Perl, making huge improvements, but unfortunately RPerl is not affiliated with official Perl.

Nonetheless, official Perl has also seen performance improvements by speeding up some constructs; for example in platforms supporting the libc memchr() implementation which makes good use of underlying hardware support. Patterns which include fixed substrings will now often be much faster.  Arithmetic operations like addition, subtraction and multiplication have also become faster, while the core itself when benchmarked, resulted in a +20% over Python in this particular experiment.   

More Information

Perl 5.24 delta

Perl programs versus Python 3

Interview - Perl’s Pumpking Ricardo Signes

Related Articles

RPerl running Perl 5 faster

To be informed about new articles on I Programmer, sign up for our weekly newsletter,subscribe to the RSS feed and follow us on, Twitter, FacebookGoogle+ or Linkedin

 

Banner


Pico 2W Announced But There Is A Surprise!
25/11/2024

Raspberry Pi released the Pico 2 a few months ago and we have been waiting for the Pico 2W since then. But Pimoroni beat them to the draw with the Pico Plus 2W based on the RM2 radio module and hinted [ ... ]



Kotlin Ktor Improves Client-Server Support
04/11/2024

Kotlin Ktor 3 is now available with better performance and improvements including support for server-sent events and CSRF (Cross-Site Request Forgery) protection.


More News

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

 

Last Updated ( Thursday, 28 June 2018 )