In general the preferred way to handle loading in any persistent environment like mod_perl is to load all modules up front before forking to maximize sharing via copy-on-write. If you have a situation where many classes may never get used during the lifetime of an apache child process, loading on demand may be better. It really depends on how likely you are to use these classes in any given child process and how much they increase your memory useage. See the mod_perl docs for more discussion on this topic.