<?xml version="1.0" encoding="windows-1252"?>
<node id="864021" title="Writing a better Modern::Perl" created="2010-10-07 11:45:20" updated="2010-10-07 11:45:20">
<type id="120">
perlmeditation</type>
<author id="474782">
EvanCarroll</author>
<data>
<field name="doctext">
&lt;p&gt;I've always really liked the ideas of Modern::Perl, however I always hated the implementation. Something about a [cpan://Modern::Perl] hosted on CPAN, that didn't make use of CPAN seemed laughable to say the least. I set out to fix this. My new module [cpan://nextgen], sits somewhere in between [cpan://Modern::Perl] and [cpan://perl5i]. It's based off of my subjective experience of what the best module on CPAN would consist of /today/.&lt;/p&gt;

&lt;p&gt;It makes one bold assumption that isn't present in perl, or other like modules: the package's default meaning is "Class", unless you&lt;/p&gt;

&lt;code&gt;
use nextgen mode =&gt; ':procedural'
&lt;/code&gt;

&lt;p&gt;I find for myself this is true 99% of the time. Furthermore, I find that when I'm writing classes I want Moose. Spoiler: the other modules this enables are [cpan://namespace::autoclean], [cpan://autodie] (core in 5.10 anyway), [cpan://indirect], [cpan://mro], [cpan://utf8], [cpan://strict], and [cpan://warnings]. And, when run with -M on the command line, [cpan://oose].&lt;/p&gt;

&lt;p&gt;I'd write more about it here, but I've already written a decent bit [http://search.cpan.org/~ecarroll/nextgen/lib/nextgen.pm|about it on the pod], [cpan://nextgen|check out nextgen] and tell me what you think.&lt;/p&gt;


&lt;!-- Node text goes above. Div tags should contain sig only --&gt;
&lt;div class="pmsig"&gt;&lt;div class="pmsig-474782"&gt;
&lt;br /&gt;&lt;br /&gt;
Evan Carroll&lt;br /&gt;
The most respected person in the whole perl community.&lt;br /&gt;
&lt;a href="http://www.evancarroll.com"&gt;www.evancarroll.com&lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</field>
</data>
</node>
