Just one other thing. In case the module you're requiring does have an import() routine that's doing something meaningful, you might want to call it manually after the require. (Doing require Module; is more like use Module (); (ignoring the difference, the implicit BEGIN, for the moment). This might not always be what you want.) However, in case you do need to call import manually, you'll probably want to devise some mechanism (e.g. checking %INC) to avoid having it execute on every invocation of you sub ... (i.e. exactly the issue you were worried about).

On the other hand, if the module is just inheriting Exporter's import method (as many modules do), this is probably not much of an issue, as you can always call the routines fully qualified (instead of having them imported into your namespace).

In other words, it depends... but it might be something worth thinking about — in particular if things are not behaving as expected :)


In reply to Re: Is it ok to require a module in a sub or method? by almut
in thread Is it ok to require a module in a sub or method? by leocharre

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.