>>>>> "iwilliams" == iwilliams <[EMAIL PROTECTED]> writes:
iwilliams> 1. Using the stash entry to see if you need to do the require: iwilliams> if (!defined ${report::}{$objtype}) { iwilliams> eval "require report::$objtype;"; } The amount of time to do the require multiple times is minimal... it checks %INC, and if loaded, aborts quick. Oh, but you're doing the eval... that's where your expense is. Best to avoid the eval entirely... recall that require can take a string, although you have to do the colon-mapping yourself. iwilliams> 2. The methods don't have to be loaded until you need them (via AUTOLOAD). My "autouse" method does that. -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/> Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!