At the 2000 Perl Conference, Jon Orwant made a case for a major new language
initiative. This led to a decision to begin work on a redesign of the language, to be called Perl 6. Proposals for new language features were solicited from the Perl community at large, and more than 300 RFCs were submitted.
Larry Wall spent the next few years digesting the RFCs and synthesizing them into a coherent framework for Perl 6. He has presented his design for Perl 6 in a series of documents called "apocalypses", which are numbered to correspond to chapters in Programming Perl. As of January 2011, the developing specification of Perl 6 is encapsulated in design documents called Synopses, which are numbered to correspond to
Perl 6 is not intended to be backward compatible, although there will be a compatibility mode. Perl 6 and Perl 5 are distinct languages with a common
Thesis work by Bradley M. Kuhn, overseen by Larry Wall, considered the possible use of the Java virtual machine as a runtime for
Perl. Kuhn's thesis showed this approach to be problematic. In 2001, it was decided that Perl 6 would run on a cross-language virtual machine called Parrot. This will mean that other languages targeting the Parrot will gain native access to CPAN, allowing some level of cross-language development.
In 2005, Audrey Tang created the pugs project, an implementation of Perl 6 in Haskell. This was, and continues to act as, a test platform for the Perl 6 language (separate from the development of the actual implementation) allowing the language designers to explore. The pugs project spawned an active Perl/Haskell cross-language community centered around the freenode #perl6 IRC channel.
A number of features in the Perl 6 language now show similarities to Haskell.
As of early 2009, Perl 6 development is primarily centered around Rakudo Perl 6, an implementation running on top of the Parrot virtual machine. Another implementation, Mildew, is also under active development and does not use Parrot.
Development of Perl 5 is also continuing. Perl 5.12.0 was released in April 2010 with some new features influenced by the design of Perl
6. New maintenance versions are scheduled to be released on a monthly basis. The latest one, 5.12.2, was released on September 7, 2010.