В редакцию часто приходят письма с вопросами по поводу Perl. И если по HTML или Java чаще задают конкретные вопросы, как реализовать ту или иную задумку, то про Perl обычно спрашивают, что это такое. Мы решили провести краткий ликбез, чтобы больше таких "простых" вопросов не возникало. Язык Perl был создан в 1986 г. и первоначально предназначался для обработки текстов. Отсюда и его название — Practical Extraction and Report Language (язык извлечения и составления отчетов), хотя иногда его называют Pathologically Eclectic Rubbish Lister (патологически эклектичный мусорный листер). Не стоит спорить о том, какое из этих названий более правильное, потому что авторство и того, и другого принадлежит Ларри Воллу (Larry Wall), создателю и главному архитектору, распространителю и опекуну языка Perl.
Основное применение Perl Наибольшее распространение Perl получил при написании cgi-программ. Вы отлаживаете программу на своем домашнем компьютере (где, к примеру, установлена операционная система Windows), а затем просто копируете ее на сервер (где, скорее всего, установлен один из клонов Unix — FreeBSD, Linux,
Для запуска cgi-скриптов на локальной машине можно использовать OpenSA (http://www.opensa.org). Sun Solaris, HP-UX и т. п.). При смене провайдера проблем с переносом скриптов также не будет. Удобно и практично! Разберемся с понятиями. Cgi-скрипт — это программа, которая выполняется на веб-сервере по запросу клиента (посетителя веб-сайта). Программа принципиально ничем не отличается от обычных приложений, которые установлены на вашем компьютере — будь то MS Word или Quake. CGI — это не язык программирования, на котором написан скрипт, а Common Gateway Interface — специальный интерфейс, с помощью которого происходит запуск скрипта и взаимодействие с ним. Есть один довольно неприятный момент: на сервере, где находится ваш сайт, должно быть разрешено выполнение cgi-скриптов. Скрипт, как и любая другая программа, может выполнять системные команды на сервере, что представляет собой потенциальную угрозу безопасности.
Для получения более подробной информации по Perl можно обратиться к www.perl.ru - самому информативному и популярному ресурсу среди профессионалов и начинающих программистов. Так что если вы разместили свой сайт на бесплатном сервере, например Xoom или Chat.ru, то вы не сможете запускать скрипты. Впрочем, некоторые бесплатные серверы допускают использование CGI, например I-Connect. Ну а если вы платите за размещение веб-сайта, то, как правило, использование cgi-скриптов разрешено.
Функциональность Как работает cgi-скрипт? Можно, конечно, привести какое-нибудь техническое руководство, но пользы от этого будет мало. Поэтому расскажу, как все происходит, своими словами. Итак, посетитель вашей страницы заполняет поля формы, например, для записи в гостевую книгу. После этого он нажимает кнопку Submit, которая и запускает cgi-скрипт. Скрипт выполняет запрограммированные действия — в данном случае считывает данные из формы и пишет их в файл гостевой книги — и посылает в браузер посетителя обычный html-код, например сообщение: "Спасибо, что вы оставили запись в гостевой книге". Преимуществ cgi-скриптов перед JavaScript и Java несколько, и они весьма значительны. 1. Поскольку программа выполняется сервером, не имеет значения, какой у посетителя браузер — Netscape Navigator или Internet Explorer. Нет никаких глюков и сообщений об ошибках. 2. Cgi-скрипты позволяют реализовать гораздо более широкий набор функций. 3. Код cgi-скрипта закрыт для доступа.
Perl как язык программирования Perl — это интерпретируемый язык программирования. Написанные программы анализируются в момент их исполнения и не требуют предварительной компиляции (сборки). Благодаря этому грамотно написанный Perl-скрипт (из-за того,
что Perl является интерпретируемым языком, программы на нем называют скриптами) может работать как в Unix, так и в Windows, как на x86-процессорах, так и на Alpha или Power PC. Этим Perl резко отличается от языка C, где программу перед использованием необходимо откомпилировать, а полученный код зависим от используемой операционной системы и процессора. Perl перед выполнением программы полностью разбирает ее и компилирует в свой внутренний формат. Это значит, что после начала работы вы никогда не получите сообщения о синтаксической ошибке и что пробельные символы и комментарии не замедляют ход выполнения программы. Такой метод обеспечивает быстрое выполнение операций языка Perl и является дополнительным стимулом к отказу от использования С в качестве служебного языка. Но процедура компиляции все же требует времени, и применение большой Perl-программы, которая быстро выполняет одну маленькую задачу (из множества тех, которые она способна выполнить), а затем заканчивает свою работу, не будет эффективным, ибо время ее выполнения окажется ничтожно малым по сравнению со временем компиляции. С одной стороны, Perl — это компилятор, потому что перед выполнением первого оператора программы она полностью считывается и разбирается. С другой стороны, он — интерпретатор, потому что никакого объектного кода, занимающего место на диске в ожидании исполнения, в данном случае нет. Другими словами, он сочетает в себе лучшее из компилятора и интерпретатора. * * * Прошли годы с момента создания Ларри Волом Perl, и теперь этот язык используется для решения гораздо более широкого круга задач. Это один из самых популярных языков для написания cgi-скриптов (программ для WWW), благодаря чему в последние годы его популярность резко возросла. В одном из ближайших номеров "Мании" мы поговорим о Perl более подробно. А заодно ответим на вопросы, которые вы зададите... Ждем писем на адрес virbuk@mailru.com.