Brethern,

Is having circular dependencies amongst packages and modules:

I'm cleaning up a set of projects of mine that grew like topsy (roughly 50 files, avg of 250+ lines of code each.) Nothing was put in packages or modules. In many places, file A calls functions in file B and vice versa.

E.g., one file (Manip.pl) has functions that manipulate and order the data; a second (Display.pl) has functions that display the results. But there was a quicky function that manipulated the data as part of displaying it. It started out in Display.pl. Then later it was useful for other things, and got called from a function in Manip.pl ...

At a first pass, I'd like to impose packages on the existing files. I'd have Manip.pl use Display and Display.pl would use Manip. I realize that moving the functions between the files would be a better solution, but I'm trying to keep a large problem from becoming a monster one.

By creating these circular dependencies, would I be commiting a mortal sin, or just a venal one?

Thanks
throop

p.s. Any pointers to general advice about bringing old crufty code up to snuff would be appreciated too...


In reply to Advisability of circular dependencies in packages by throop

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.