Today represents exactly twenty years since the very first release of the Perl programming language! On 18th December 1987, Larry Wall released Perl 1.0. Twenty years on there has been another release of Perl:
Perl 5.10. Five years in development, Perl 5.10 makes some significant advances on the Perl 5.8 series both in terms of performance and features, while maintaining backwards compatibility with Perl 5.8.
The regex engine, always a strength of Perl, has seen a whole raft of improvements. Some of these include performance enhancements, and others are new features; if is now, for example, much easier to write recursive regexes for matching nested structures. You can also name captures rather than just referring to them by number, which will bring readability enhancements.
There are also some new features borrowed from the forthcoming Perl 6. This includes the // operator (like || but testing definedness rather than truth), the "say" keyword (like print, but automatically putting a newline character on the end), the state keyword for variables that you initialize once, then remember their value even when they go out of scope and the "given" statement, which is a bit like a switch block on steroids.
Today also saw the release of
Parrot 0.5.1. Parrot is a virtual machine being developed to run Perl 6, and the Perl 6 compiler included in this release is still at a very early stage, though moving very fast. Most significant is that the Perl 6 compiler itself is now partly written in NQP (or Not Quite Perl 6), a subset of the Perl 6 language that was implemented for bootstrapping purposes. The developers hope that within the next couple of months, the Perl 6 implementation will take some huge steps forward; we'll keep you posted.
So, Happy Birthday to Perl, and here's to the next 20 years!