Fellow Monks,
I have a module that I’d like to split into smaller parts. The organisation of the software currently is (using generic names): frontend.cgi (an FCGI app actually, could be anything else), AcmeAPI.pm (the module I want to split), and a few other pms unrelated to this module but used by the front end. The modules are not OO, there’s no need for objects right now.
So, frontend.cgi is basically just a router, it works with the received data, calls AcmeAPI’s functions as appropriate, and returns the results in the requested format. AcmeAPI has many facets and a few utility functions common to these facets. As I expect these functions to grow, I want to split things up into AcmeAPI::This, AcmeAPI::That etc. — that part is simple, just throw the appropriately named pm files in the appropriate subdir, and all is done.
My problems are the following:
- What to do with the common utility functions? Put an AcmeAPICommon.pm somewhere which can be used by the submodules? Where do I put it for the least amount of pain?
- How would you import the submodules? I think the cleanest would be to retain AcmeAPI.pm as a wrapper around the submodules and only use that one from the frontend app. But you might have other opinions, such as have all the modules imported one by one in the frontend directly. (By importing I do not actually mean Exporter etc. littering my symbol table in main::)
- … nothing more, but if you have anything to add about this, please do share.
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.