To clarify – a “trampoline” is the initial CGI script that is actually invoked by the web server. (It might not be in Perl, but simply be a shell-script.) Its purpose is to set up the environment expected by the “actual” script, then pass control to it via exec, which replaces the trampoline with the application as though the web-server had actually started it. (The application-start module should be an executable Unix/Linux file which begins with “shebang” – say: #!/usr/bin/perl)
Many variations exist, including trampolines that take the name of the script as their (only) command-line parameter. Naturally, the trampoline will need to set the value of filename-referencing environment variables to point to the target not the trampoline.
This is a very effective trick if you are dealing with an old application – or, many applications – which have a large number of environmental dependencies. Sometimes, it is less-invasive to create the environment that they expect, by means of a short trampoline, than to re-tool the application(s) to no longer expect them. The overhead contributed by the trampoline step is negligible.