One thing that my drunk friend failed to mention, is that you have to write your code such that the require doesn't get run unless you need the module. For example, this code:

require Magic::SuperAndSpiffy::ButSlow; sub neatTrick { # ... }
isn't going to help your problem. But, this code:
sub neatTrick { require Magic::SuperAndSpiffy::ButSlow; # ... }
will only load the ButSlow.pm code the first time neatTrick is called.

Now, if you are currently useing the big module, then things get a bit trickier. First, try chaning your code from: use Magic::SuperAndSpiffy::ButSlow qw( Stuff Junk ); to:

require Magic::SuperAndSpiffy::ButSlow; Magic::SuperAndSpiffy::ButSlow->import( qw( Stuff Junk ) );
and see what breaks. Anything that breaks was code that depended on things that were happening at compile time because of your use statement. I think those should mostly be pretty easy to fix. Then you can move the require and import code so that it only gets called when you need it.

Note, however, that import should only be called once (calling require multiple times doesn't hurt by design). You can also just try leaving out the import and see what breaks and whether you'd just rather fix that instead of figuring out a slick way to call import only once the first time you need it.

        - tye (but my friends call me "Tye")

In reply to (tye)Re: Load only if needed by tye
in thread Load only if needed by Anonymous Monk

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.