Ist cgi nicht das binäre Gegenstück zu pl?
Dann wäre es womöglich umgekehrt, ascii Übertragung statt binär...
".cgi" ist lediglich die vordefinierte Endung für CGI-Skripts in bestimmten Webservern (beispielsweise Apache) - wer dort die Definition des CGI-Verzeichnisses nicht beeinflussen darf, der muß seine Programme (egal ob Perl oder was auch immer) eben entsprechend umbenennen.
Daraus kann man nicht schließen, in welcher Sprache oder Form die Anwendung vorliegt - genau deshalb gibt es in UNIX ja den Mechanismus, "#!<interpreter>" aus Zeile 1 der Datei zu lesen, weil der Dateiname dort - anders als in Windows - eben nichts über den "Dateityp" aussagt.