Remember, Perl 6 is an all volunteer effort and very few people (if any) are actually getting paid to hack on it. It will take as long as it takes, no more no less. In the meantime it is inspiring lots of activity in the Perl 5 world to help further modernize everyones favorite post-modern programming language.
You can start using any number of Perl 6 features in Perl 5 today if you want. Some of these things are more production ready than others, but here is a list to start with.
- Production Ready
- Moose - Perl 6-ish objects in Perl 5
- Perl6::Junctions - A sane and stable implementation of Perl 6 Junctions
- Class::C3 - Use the C3 mro (method resolution order) (which is the canonical mro in Perl 6)
- Scalar::Defer - Lazy values (a feature of Perl 6)
- Not Quite Production Ready
- Smart Matching in Perl 5.9.5
- given/when construct in Perl 5.9.5
- Devel::BeginLift - finer grained control over when subs get executed (Perl 6 will have similar type features, though not exactly)
- autobox - the ability to call methods on core type like ARRAY, SCALAR, HASH, CODE, etc
- Moose::Autobox - Roles designed for use with autobox that provide the built-in methods (modeled heavily after the ones defined in the Perl 6 synopsis)
- Perl6:: - there are a number of Perl 6 modules, some more finished than others, some more abandoned than others.
I am sure I missed some too, these are just the ones I know about and use.