I CGI servono per svolgere operazioni tramite il webserver. Operazione che possono essere validazione di campi, memorizzazione dei dati in un database, controlli di sicurezza, accessi a programmi residenti sul server e molto altro. I CGI, di norma si realizzano con il Perl, ma puoi farli anche in C, se preferisci. Farli in php mi sembra inutile e dispendioso, dato che il PHP è già un linguaggio che permette di svolgere molti tipi di operazioni in modo egregio.
SE vuoi avere un'idea di come si sviluppino i CGI, oppure vuoi una panoramica sul Perl, che comunque non è così difficile come sembra, consulta le guide che trovi su html.it.
Ciao