The 5.9.5 release of Perl was announced today and may be downloaded at your nearest CPAN mirror. This is a release from the development branch of the Perl interpreter, also known as “perl-current, bleading edge perl, bleedperl or bleadperl”.
This release is meant to be an anticipation of the upcoming 5.10.0 release which will succeed 5.8 as the major stable version. After months of development, the goal now is to stabilize the code and the focus will be on regression testing and documentation improvements, towards a rock-solid stable version to be deployed in production everywhere.
This distribution has a huge accumulated set of long waited-for features, some of them backported from Perl 6. I blogged about it before. One of these niceties is the incremented list of core modules, which brings to the core modules like:
- Module::Build - a pure Perl alternative to ExtUtils::MakeMaker
- CPANPLUS - yet another CPAN shell
- Module::CoreList - to help you determine what modules shipped with versions of perl
- Archive::Tar - handling .tar files without an external utility (handy for Win32)
and much much more to make it easier to program Perl out of the box.
The latest development release, 5.9.4, was made available in 15 Aug 2006. A lot has passed since then. Now there is a lot of movement in the Perl community to improve the available tools, sites and visibility of Perl. I think 5.9.5 announces the start of a process with a lot of promises to keep Perl relevant and on the bleading edge of the IT world.
Contributed patches, suggestions, advice and bug reports are most welcome via the perlbug utility. If you want more involvement, the perl5-porters@perl.org mailing list is the right channel.


Thanks!
@John Drago:
I could not provide a better example than one given by Ricardo Signes at the ABE.pm mailing list. His message is well worthy reading, explaining why Perl never got a dumb switch and why this new construction is a switch on steroids.
given ($variable) { when (1) { # $variable == 1 do_something_one; } when (@edge_cases) { # if $variable in @edge_cases do_edge_case_handler; } when ($_ > 10e6) { # if $variable is over a million do_huge_handler; } when (\&test) { # if test($_) is true say "the test was true!"; continue; } when (/^\Q$somepattern\E$/) { say "seen $somepattern"; continue; } default { default_handler; } }The example is augmented by a clause suggested in a reply from the same thread as the original message.
I for one will be very excited when 5.10 finally hits the streets. I have a project coming up for a re-write that I would love to use 5.10 for.