I really wanted to give this module high marks... But I had to be honest when rating the documentation, interface, and ease of use, all of which are below average. However overall I give 5 stars. The capabilities this module brings are awesome. Used to write Fennec::Declare. -edit: did not realize 'overall' took priority over other categories.
Devel::Declare is no-doubt extremely useful, but in its current state it is not quite possible to make good use of it unless you're already privy to a lot of deep compiler-magic knowledge. The main problem is the documentation, which is written as a tutorial rather than a reference. It is not clear which methods in the tutorial are actually part of the Devel::Declare interface and which are part of the hypothetical parser being developed. Further, things in the tutorial appear to behave differently than they do in real life. Once the documentation is updated to provide a description of the actual interface, I'm sure this project will be of much greater use to the community at large. Unfortunately, I don't have the necessary knowledge to be of much use, but I look forward to when persons much smarter than I can make this module digestible to mortals.
This module earns the most respect for being the base for some other new and hot CPAN modules like TryCatch, MooseX::Method::Signatures, MooseX::Declare, MooseX::MultiMethods, etc., which marry Perl6 like functionality with Perl6 like syntax and by that bring us a modern and aesthetic way of programming, all in Perl5.
This module is not necessarily meant for the "end user". Look at
This module looks like it might achieve sliced-bread levels of cool, but for now it's pale and half baked. It looks like this mechanism hooks into the Perl parser to give some of the advantages of macros, but you'll have to study the C code (and know some perlguts) to figure out exactly what can be done.
For next release, would you mind adding a "motivation" section and/or some pointers into perlguts?
I'm not rating this package, but just wanted to point out, in response to a previous comment, that Matt did carefully note this package was not for general consumption, but was placed here to make it easier for some people using it who already know what it does, to download it into their projects. So I believe the low score is unfair, particularly so since the author has contributed a LOT of valuable stuff to the perl community. Where ever he is taking this package, I am sure in the end it will be some very helpful. Just let's be a little patient. Or if not, read the source and tests to figure out what it is and submit a patch :)