As others have pointed out, the two prominent methods of reducing start-up time are using require()+import() to load modules on-demand and Autoloader/Selfloader-like techniques. (Autoloader usually being faster than Selfloader, see Autoloader docs.)

My addition to this is mostly a remark about replacing use() with require()+import(): If run in a context where several instances of the same program are run in parallel and which can share memory, this reduces the amount of memory that can be shared. The most prominent case where this matters is if you have a CGI application which you later port to mod_perl. There is a solution to this, however. Please have a look at Adam Kennedy's "prefork" module on CPAN. The documentation explains things in detail.

Furthermore, you may reduce the time it takes to load a module by making sure the modules you load are found in the first directory in the list of search paths (@INC). As you probably know, perl will search for the .pm modules source files in several directories by default. If many of the modules are found in paths that are at the end of the @INC array, this may take some time depending on the speed of your file system. (Perhaps there is some caching involved to speed things up, but I'm not aware of that.)

Cheers,
Steffen


In reply to Re: Avoiding loading modules by tsee
in thread Avoiding loading modules by jfrm

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.