The Perl 6 project, which aimed to radically reinvent the open source programming language, first began to take shape in 2000. A decade later, there are several implementations with varying levels of completeness, but it is still not ready to replace Perl 5 in production environments.

In order to ensure that Perl doesn't completely stagnate during the protracted revamp, a group of developers have decided to pull Perl 5 out of maintenance mode and begin actively enhancing it with new features. The result is Perl 5.12, which was officially released this week. It was preceded by 5.11, an experimental development release that was issued last year.

"Perl 5 core development was in a downward spiral for a couple of years. Releases happened less and less frequently, the number of contributors dropped and the general outlook was getting worse and worse. ... Sure, bug fixes and changes that didn’t break binary compatibility were published as 5.8.x maintenance releases. But any other enhancements to the codebase were effectively unavailable to the public user. ... Nobody knew [when Perl 6 development started] that even 10 years later Perl 6 would be in no position to replace Perl 5 for the vast majority of its users," wrote ActiveState's Jan Dubois, explaining the previous state of Perl 5 in a blog entry. "But with all the focused activities directed at releasing Perl 5.12 people have returned to core Perl development again."

The underlying narrative behind Perl 6 has largely changed, and it is increasingly characterized by its supporters as a parallel project rather than the next iteration of Perl. With that transition came a need to reinvigorate Perl 5 development.

One the most significant enhancements is the new pluggable keywords feature, which allows extension modules to tap into the Perl parser and add new keywords to the language. This could be especially useful for building domain-specific programming languages that can be embedded directly in Perl code. The feature is still considered to be experimental, however, and the developers warn that the API could potentially be changed in the future.

Anticipating what could be a very long wait for Perl 6, the Perl 5 developers have overhauled the date functions in 5.12 so that it can handle dates that are further in the future than 2038. A number of minor features were also added, including the awesomely named Yadda Yadda operator, which doesn't actually do anything—it's a placeholder, sort of like Python's "pass" statement.

In addition to issuing a new release, the developers are also transitioning to a time-based release cycle with new development versions available every month. They are aiming to release the next major stable version, Perl 5.14, in approximately one year. In a message on the developer mailing list, release manager Jesse Vincent announced the 5.12 release and discussed the new development cycle. He says that Perl 5.12 is ready for deployment in production environments.

"Perl 5.12.0 represents approximately two years of development since version 5.10.0 and contains over 750,000 lines of changes across over 3,000 files from over 200 authors and committers," he wrote. "Based on extensive testing over the past 3 months, we believe that Perl 5.12.0 is ready for production deployments."

The new version is available for download from the CPAN website. For a detailed overview of the new functionality, you can refer to the official release notes.