* multi-methods - There are two implementations on CPAN, Class::Multimethods (old) and MooseX::MultiMethods
* rules - Ditto. Perl6::Rules (old) and Regexp::Grammars
* macros - Have a look at Devel::Declare. Not Perl6 macros but still powerful stuff!
* and a whole bunch of other good stuff - Lots have been backported to Perl5 (direct and into CPAN). For eg. smart match, given/when, Perl6::Junction, Perl6::Gather and also things like Moose & Class::MOP which are heavily influenced by Perl6
* multi-methods: MooseX::MultiMethods and MooseX::Method::Signatures add a lot of overhead to subroutine calls (blogged in http://blogs.perl.org/users/aevar_arnfjor_bjarmason/2010/02/...). Sometimes this doesn't matter, but they're certainly not a replacement for having a native type system. All the magic is done at runtime.
* rules: Perl6::Rules and Regexp::Grammars are both depended on by a grand total of 0 CPAN modules. They're interesting experiments but not something in use, and not a replacement of rules with its "your regex opcodes are a normal method" model.
* macros: Devel::Declare and the B::* modules are usable but they're a long way away from the Lisp model of being able to easily write macros. TryCatch is 800 lines of Perl and C to implement try { ... } catch { ...}. In any Lisp this would be trivially done with a macro in under 50 lines.
As for the other stuff pretty much anything except smart match (which is now in Perl 5 core), Class::MOP and Moose falls under the "neat but some combination of: underused, slow, unstable, epic hack nobody wants to use".
...list of modules are neat but some combination of: underused, slow, unstable, epic hack nobody wants to use
Thats a sweeping statement. Lets have a look...
* My opinion is only just that. The list is informative to what prior art there is. Always go and test and come to ones own measured conclusion.
* I postfixed old to modules that may have issues.
* Everything else I use and have no issues with (as listed elsewhere in thread)
* Haven't used MooseX::MultiMethods much recently but I do use MooseX::Declare regularly and find this and whole Moose type system a godsend that I couldn't live without now.
* re: Regexp::Grammars is new because its dependant upon 5.10 (replaceable RE engines). So it will have no other modules dependant on it yet but it looks like a worthy successor to the venerable Parse::RecDescent to me.
* re: Devel::Declare - I've already said its no "Perl6 macro" so comparing to a Lisp macro is a tad unfair :)
Huh, Moose is underused? There a lot of modules on CPAN using Moose, and a lot of modules extending Moose.
Also, in what way is Moose unstable? Moose, and modules which use Moose, are used in production at a lot of places (if you use a recent Catalyst, you're using Moose).
It's not. I was talking about Perl6::Gather, Perl6::Junction etc.: "pretty much anything except smart match [...], Class::MOP and Moose falls under the ... underused".
So Moose is not underused. But some of the other modules that draegtun cited are. It's disingenuous to cite some crazy module Damian wrote that nobody uses as an example of Perl 6 features in Perl 5.
I use MooseX::Declare, Perl6::Gather, Perl6::Junction and Regexp::Grammars in production regularly so on that basis my listing them is totally sincere.
However stating that I'm disingenuous to list them at all... is well a very disingenuous slant directed at me :(
* multi-methods - There are two implementations on CPAN, Class::Multimethods (old) and MooseX::MultiMethods
* rules - Ditto. Perl6::Rules (old) and Regexp::Grammars
* macros - Have a look at Devel::Declare. Not Perl6 macros but still powerful stuff!
* and a whole bunch of other good stuff - Lots have been backported to Perl5 (direct and into CPAN). For eg. smart match, given/when, Perl6::Junction, Perl6::Gather and also things like Moose & Class::MOP which are heavily influenced by Perl6