Cos'è un CGI?
-----------------------
CGI significa "Common Gateway Interface" , ed è il metodo con cui un server agisce con database, documenti, e altri programmi inviando o ricevendo dati; questi dati saranno poi visualizzati sul web. In pratica, saper scrivere CGI significa programmare il web per il web. Il linguaggio "principe" per scrivere i CGI è il Perl, anche se è possibile utilizzare altri linguaggi (C su tutti).(Da HTML.it)
Un CGi è uno script che viene interpretato da un apposito intreprete PERL o SH.

Estensione .pl o .cgi?
--------------------------
Dipende dalla configurazione del webserver se supporta file CGI.
l'estensione del file .pl o .cgi non è assolutamente vicolante all'interpretazione dello script.
perl mio_script.pl o perl mio_script.cgi sono la stessa cosa.