Ad alcune domande non so rispondere.
Il Perl lo ho usato qualche anno fa, per costruire dei CGI; poi lo ho usato anche per altri scopi (non CGI). Ma non mi sono mai trovato a far partire un processo che non esce.

Un programma Perl-CGI, deve finire con la "stampa" di una pagina HTML. Poi non deve piu` esistere il programma. Se gira all'infinito e` un errore di programmazione.
Ci possono essere eccezioni a questa logica, tipo quando si tengono in conto variabili di sessione, ma comunque il programma deve morire, lasciando in vita solo le variabili (che verranno cancellate ad un timeout). In questo il PHP e` un gestore migliore (perche` fatto appositamente per gestire queste cose).

lo script non puo` saspere che il client e` ancora in attesa. Ma dato che risponde nel giro di pochi millisecondi (che possno diventare alcuni secondi in caso di rallentamenti del server e/o della linea) deve presumere che il client sia sempre in attesa.
Se stai pensando ad opzioni tipo "push", non sono possibili (che io sappia).

Nella tua descrizione, ci sono alcune coes non chiare (per me).
Praticamente da un menu' su pagina web lancio uno script perl che raccoglie dati di un utente
poi con un form get lancio un'altro script perl che legge i dati in archivio e li visualizza su una pagina web.
Perche` sono due script?
Io avrei scritto una cosa diversa:
Da una pagina Web con un form, chiamo un programma Perl che elabora i dati del form e cerca dei dati in un archivio. Quindi prepara la pagina dei risultati e la manda al client.
Poi il programma Perl deve finire. Se necessario puo` salvare dei dati in un database (lo stesso da cui legge oppure un altro).

Mi servirebbe un self-destruction a tempo affinche' l'ultimo script
per qualsiasi motivo non giri sul server a vuoto in eterno
Puoi realizzare una cosa del genere, ma non credo sia standard o utile. Se il programma si chiude, non ce n'e` bisogno.

Comunque per fare quello che chiedi doversti:
1. all'inizio del programma leggere il timer del server e il numero di processo del programma che sta girando
2. impostare un tempo massimo e sommarlo al timer
3. far partire un crontab con scadenza quel tempo, che fa il kill del programma di cui sopra
(kill NUMERO_PROCESSO)
per 1. e 2. vedi le funzioni timer del Perl (e correlate)
per 3. vedi il crontab di linux (se sei sotto linux - qualcosa di analogo se sei sotto win)
per far patire un programma su sistema operativo vedi system o exec o `` (apice sinistro) del Perl