<rant>

Sometimes I just want to try out a module; sometimes I just want to help somebody facing trouble using it. So I fire up cpan and install it, automatic dependency installs turned on. WHOA! follow, follow, follow installing dependencies, and after an hour or so and several fails resolved, I have the top level module ready to use.

Four dozens of intertwined dependency modules installed, another 10 megs of disk space gone. After all, disk space is cheap, no? And those modules are really needed by the top level one, aren't they? (But then there are all those Test::Tester, Test::Tester::Bestertester, Test::Tester::Bestertester::Helper modules and their dependencies as well.)

Then I install the otherwise fine CGI::Ajax module and note it uses Class::Accessor to generate setters/getters for a list of seven object attributes, trading 29 lines of trivial hand-written code against 874 lines or 48 kBytes. That can easily be shrugged off, because other fine modules use Class::Accessor as well - and 900 lines of code don't really count. But it sums up.

This kind of laziness places the burden of installing and updating dependencies, which are not crucial for the functionality of the module in question, on the module user.

And on the long run, we might end up with CPAN modules being blobs that pull in a multitude of modules of which only a minuscle part will ever be used at runtime.

IMHO, hubris beats laziness for module authors, and modules should not depend on other modules if the latter only bring small benefits.

</rant>

So here is the challenge (draft :-)

Rules:

So you can't just make up a module that uses all CPAN modules and upload that to CPAN; likewise, building a meta-package (e.g. perl-CPAN-all.deb) and installing that doesn't count.

Have fun!

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}

In reply to Challenge: CPAN Golf by shmem

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.