I think it is important to make an informed choice about which of use and require are needed, precicely because which you choose (and where you place requires) has an impact on the percieved performance of your application.

My goal is generally to use modules that will be called early and commonly, but require those called only occasionally. By "commonly" and "occasionally" I mean the answer to the question "in any given run of my app, how likely is it that this particular thing will be called?".

I do this by using require for needed modules at the top of subs that are only occasionally called. As you can imagine, this often gets hard to track. So, as I develop I use modules in each sub, taking advantage of the fact that this will always cause compile-time loads, and won't double-load modules. When I am ready to release a version, I replace certain uses with requires (and calles to import when appropriate), and others I comment out and move to the top of the script. (In fact, I have a commented list of all the requires at the top as well, with an explanation, to help maintainers.)

Now that I've been exposed to autouse, though, I might just autouse modules I'd previously have required, and save the old require for times when I want to avoid calling an import.

<-radiant.matrix->
A collection of thoughts and links from the minds of geeks
The Code that can be seen is not the true Code
I haven't found a problem yet that can't be solved by a well-placed trebuchet

In reply to Re: Use and Require - making an informed choice. by radiantmatrix
in thread Use and Require - making an informed choice. by g0n

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.