Un CGI in Perl e` uno strumento che crea una pagina Web "al volo", cioe` la crea e la manda al server immediatamente.

Quello che chiedi sono due pagine: una di attesa ed una completa, che necessitano quindi di due script (il CGI non puo` autonomamente inviare una nuova pagina, se non richiesto dal client). E questo rende la cosa molto piu` complessa (dovresti tener conto dei codici di sessione, ...).

Si puo` ovviare ai problemi creando una pagina fatta di due livelli (layer o <div> ), il primo molto semplice che poi sparisce e lascia il posto all'altro, che nel frattempo e` stato generato.

Quindi devi:
1. inviare i codici di apertura pagina;
2. generare il primo <div> largo e lungo come la finestra del client che contiene solo "attendere prego ...";
3. aprire il secondo <div>;
4. generare la pagina con tutte le parti ricavate da database;
5. chiudere il secondo <div>;
6. chiudere la pagina e fare in modo che il primo div sparisca.

Nel CGI e` importante l'ordine con cui esegui le varie operazioni, mentre il punto 6 lo puoi far fare dal client con l'evento onload.

Se ti e` chiaro questo schema, ti posso dare una mano sui punti 1, 2 e 6, che comportano un lavoro lato client (CSS e Javascript), mentre i punti 3-5 dovresti essere in grado di farli con il Perl (e immagino che gia` li fai).

Ci risentiamo.
Ciao
Michele