Все серверы могут предоставлять только статистические данные. Но бывает необходимость составлять страничку "на лету" или, например, управлять базами данных, посылать почту через web-страницы и т.д., вот как раз для этого и существует CGI. Вернее сам CGI не взаимодействует с базами данных и с почтой, а просто запускает прикладные программы и передаёт им данные. Программы, их ещё называют шлюзами, в свою очередь могут в соответствии полученных данных выполнять абсолютно любые действия, в том числе и вышеперечисленные.
Данные от сервера к программе передаются через командную строку или через переменные окружения, и поэтому программы могут быть написаны на любом языке программирования. Одним из самых популярных языков для создания CGI программ является Perl.
Основное различие скриптов от программы в том, что программа уже скомпилирована в двоичный код, а скрипт компилируется только перед выполнением. Удобство скриптов заключается в том, что они могут выполняться на любом компьютере вне зависимости от его архитектуры и операционной системы.
Perl(Practical Extraction and Report Language) является узкоспециализированным языком для обработки текста и составления отчетов. С помощью него можно открыть несколько файлов одновременно, прочитать оттуда данные, обработать и снова сохранить в файле. Perl является наилучшим и гибким инструментом для работы с текстом.