Non ho guardato il tuo codice, ma credo di poterti rispondere ugualmente.

è possibile integrare una funzione PHP già esistente con una funzione CGI?
Messa cosi` non ha senso. Per l'interfaccia client-server puoi usare il PHP o un CGI (== Common Gateway Interface).

Quello che puoi fare e` usare PHP per l'interfaccia e una serie di operazioni e da PHP chiamare un programma esterno (scritto in Perl, o qualsiasi altro linguaggio) per quello che non puoi fare tramite PHP.

Io non conosco la sintassi PHP, ma c'e` sicuro un sistema per chiamare un file esterno. In Perl ci sono tre modi diversi (system(), exec(), `backquotes`) che ritornano in modo diverso; immagino che in PHP ci sia qualcosa di simile.

Il problema che sorge a questo punto e` come passare i parametri (in avanti ed in indietro): prima scegli la tecnica da usare, chiarisci se i parametri sono pochi o tanti e di che tipo; e dopo si puo` valutare quale sia la tecnica migliore.

Nota:
Perl e` un linguaggio interpretato: di conseguenza e` piuttosto lento: vedi se e` la soluzione migliore o se qualche altro linguaggio puo` essere piu` performante.