Features: Improved Performance and Security
Perl 5.24 has a lot of interesting new features, including improved unicode support, upgrading of post-fix dereferencing from experimental to production, and more aggressive handling of errors on closing the output file during an inplace edit.
There are also performance enhancements in arithmetic operations, which were slowed down by extra code for handling 64-bit values since Perl 5.8. By identifying cases where no special handling will ever be required, the new compiler can emit faster code in most situations. Other performance enhancements include more efficient handling of languages that do not define upper and lower case letters, such as Chinese, and some trimming of unneeded debug structures for XSUBS.
Another interesting feature is promoting some regular expression issues from runtime errors to compilation errors. Why wait for code to fail when it is hit in testing when it can be identified at compile time as broken?
Also, a number of security issues have been addressed, including loss of taint in canonpath, which was probably the most significant security issue for Perl in the past year.
Fairings: Removal of autoderef and lexical $_feature
The biggest fairings are in the removed and deprecated features list, which includes removal of the autoderef feature and the lexical $_ feature. The latter has been deprecated since Perl 5.18, the former never made it out of the experimental phase. It is the mark of a mature language community to be willing to try out interesting ideas and able to drop them when they turn out not be as useful in production as they were imagined to be at the point of conception. Perl’s continued focus on being a practical tool for working programmers shows through here.
Perl 5 continues to be a vibrant and important language, and with regular yearly releases it is maintaining its place as a fast, reliable, and modern tool in any developer’s toolkit.
So download ActivePerl 5.24 today to take advantage of the latest features and fairings in Perl 5.24. (Or you can download ActivePerl 5.22.2 if you’re looking for something a little less bleeding-edge). And don’t forget to join Jason MacIntosh and me in the upcoming webinar “A Long-Time Perl Hacker’s View of the Perl World: Past, Present and Future” on June 15.