I don't know if dependency hell from CPAN has a straightforward technical solution.

I've seen various attempts at addressing it, like the Tiny modules and the P5EE project. The Tiny modules seem like the best step so far.

It is easy to imagine building an app that relies on several CPAN distributions that in turn load 4 different date/time handling libraries. One module I need uses DateTime, another uses Time::Local, yet another component uses Date::Manip and yet another uses Date::Tiny

All of these modules are worthy modules, and it reasonable to use any single one of them. I have used libraries that depend on each of them, except Date::Tiny. But, since the Tiny modules seem to be catching on, I expect to come across something that uses Date::Tiny sometime soon.

I'm not sure what the technical fix for this is.

It seems to me that the fix is social rather than technical. Just like community consensus is that the use of the strict pragma is recommended. We need a set of best practices for module authors.

Here are a couple ideas that come to mind as a way to address the dependency hell problem. Module authors should:

Maybe someone can write CPAN Best Practices. Perhaps, PBP 2: Electric Boogaloo could include a section on writing modules for CPAN.


TGI says moo


In reply to Re^2: Perceptions of Perl - views from the edge by TGI
in thread Perceptions of Perl - views from the edge by tim.bunce

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.