If you have a Perl-related news item you'd like to share, you may post it in the Perl Newssection.
Please try to avoid duplicating news; but pointers (with summaries) to important stories on other sites are acceptable here.
Subs and constants: deprecated sub, unresolvable sub, multiple subs definitions, fancy method call (new Foo::Bar), unused subs, constants and globs.
Extension point to implement package processors, allowing to describe package behavior (like Mojo::Base acts like strict, warnings, features and base at once)
All features are not perfect and may be improved. I've implemented my view of required minimum. More detailed information may be found in our wiki
I'd like to thank all Monks who helped me on my 4 month adventure with advices and answers.
Well, it's hard to say about future. I've got tons of different ideas, usually I've implemented one thing and got ideas about two more. But we'll see. Anyway what I really want to do:
Improve parser (especially errors-recovery)
Improve already implemented features
Integrate with popular Perl5 frameworks and template engines.
Integration with libs like PerlTidy, PerlCritic, CPAN
Perl6. Well, I wanted to start with it to train a bit, because it has some formalized grammar. But I dont know language at all, it was not yet released, it's not performs well as I've read. But everything is possible.
The current code is on github under: https://github.com/drforr/Perl-Mogrify but will change names upon release.
It's a configurable Perl5-Perl6 translator tool based heavily on Perl::Critic. You can use your own .perlmogrifyrc file to configure which translators you want to run, and eventually add and configure your own translators.
While I won't say that it compiles Perl5 to syntactically correct Perl6 100% of the time, I've tested it on DamianWare(tm), and with minimal intervention (changing 'package' declarations, rewriting 'local *OUT' mostly) 99% of Parse::RecDescent passed its compile-time check.
While most of the changes it does are trivial, they can be hard to get right. For instance, '=~' is now '~~', '~' is now '^?', '.' is now '~' and '->' is now '.' Go ahead and figure out the right order to do those changes in vim or emacs, I'll wait for you :)
In the mean time, it also changes your for() loops around, tidies map and grep, cleans up your filehandles and changes your sigils from '$x' to '@x' like you've always secretly wanted to do.