I've been in that situation before, not so much in Perl, but in C. If you end up using all of them together because they are so tightly coupled, then what you really have is one big module even if it's in several files on disk.

Perhaps what's really needed here is a new concept of what separates the modules. I can go on and on with respect to the fact that low level libraries (like it appears A and D are) shouldn't depend on higher level ones, but without knowing your situation that's really not valuable.

Start with the functions that are atomic and don't depend on anybody else. Then build from that layers, making modules that depend only on those atomic functions. Then add layers above that that build on the 2nd layer modules. Make the distinction between the modules and layers functional where one module does one job and it should become more clear where the lines are.

Above all though, this is an issue of if it ain't broke don't fix it. Unless this is causing you heartache, or you have time to burn, or it's making your application buggy, don't mess with it.

----
My mission: To boldy split infinitives that have never been split before!

In reply to Re: So much interconnectedness - good or bad? by DentArthurDent
in thread So much interconnectedness - good or bad? by kiat

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.