This simplest form of optimization will only keep the Perl interpreter inside the Apache server, saving the need to fork a Perl interpreter for each script execution. The savings here are small, but is still faster than pure forking. When a request is handed to a child process that has not yet invoked the script, the script and modules will need to again be recompiled.
Subsequent requests served by that child can rely on the already-compiled code in memory.
You pre-load your Perl modules by including them via a PerlModule or PerlRequire directive in Apache's httpd.conf file. In doing so, the Apache parent now possesses the compiled code for these modules in memory. When a child is spawned, that child inherits the pre-compiled modules, but the child must still compile the main Perl script itself once per process. The compiled script is cached for future requests handled by this child. Each child would then have no code to compile, as it would inherit all pre-compiled code from the parent.