История языка Perl

Основное первоначальное предназначение языка программирования Perl, то, ради чего, собственно, он и был разработан, — облегчить системному администратору UNIX обработку большого числа текстовых файлов при настройке операционной системы и автоматизировать создание отчетов по использованию ее ресурсов на основе специальных системных текстовых файлов. Отсюда и его полное название «Practical Extraction and Report language» («Практический язык извлечений и отчетов»).
Язык Perl родился в среде операционной системы UNIX как реакция одного талантливого программиста на ограниченные возможности существовавших тогда в этой операционной среде стандартных средств системного администрирования. Под администрированием понимается настройка операционной системы через установку значений ее специальных переменных (переменных окружения) таким образом, чтобы она отвечала потребностям отдельного пользователя или группы пользователей. В системах семейства Windows подобная работа выполняется с помощью Реестра, представляющего собой базу двоичных данных, а для изменения параметров используется специальная программа regedit. В системе UNIX настройка осуществляется через специальные конфигурационные файлы, являющиеся обычными текстовыми файлами, и все изменения осуществляются с помощью команд специального командного интерпретатора shell, выполняемых, как правило, из командной строки. (Несколько лет назад на персональных компьютерах была широко распространена операционная система MS-DOS фирмы Microsoft, в которой для ввода команд также использовалась командная строка, поэтому читателю, работавшему в этой операционной системе, командная строка знакома.) В системе UNIX пользователь может создавать собственные команды на основе команд интерпретатора shell, сохранять их в обычных текстовых файлах и впоследствии выполнять через командную строку так же, как обычные стандартные команды операционной системы. Так как оболочка shell операционной системы UNIX является интерпретатором, то команды пользователя имеют еще одно название — их называют сценариями, или скриптами (script). Администратору операционной системы UNIX приходится писать большое количество сценариев, которые обрабатывают другие сценарии — текстовые файлы. Для этих целей кроме командного языка оболочки shell обычно используются специальные программы обработки текстовых файлов:
Обе эти программы являются фильтрами, которые последовательно считывают строки входных файлов и выполняют применимые к строке действия, определенные с помощью команд этих программ. Основными действиями являются выделение цепочек символов по заданным шаблонам, замена их по определенным правилам и генерирование новых файлов.
Язык Perl разрабатывался как средство, соединяющее в себе как возможности интерпретатора shell, так и возможности awk и sed. Однако он, вероятно, так бы и остался известен только программистам, работающим в операционной системе UNIX, если бы в связи со стремительным развитием Интернета и одной из его основных технологий World Wild Web (WWW) язык Perl не оказался едва ли не самым удобным средством для создания на Интернет-серверах CGI-сценариев, реализующих динамическое взаимодействие клиентской программы пользователя просмотра Интернета (Internet Explorer или Netscape Navigator) и web-сервера. Сейчас, когда говорят о CGI-сценариях, по умолчанию считают, что они разработаны на Perl. В чем такой успех этого языка в области не только CGI-сценариев, но и вообще в области сетевого программирования, мы постараемся ответить в следующих разделах этой вводной главы. Однако прежде мы позволим себе краткий экскурс в историю создания и развития языка Perl, который позволит полнее понять его идеологию.

История языка Perl

Perl был разработан Ларри Уоллом (Larry Wall) в 1986 году. Ларри Уолл являлся в то время системным администратором одного проекта UNIX, связанного с созданием многоуровневой безопасной сети, которая объединяла несколько компьютеров, разнесенных на большие расстояния. Работа была выполнена, но потребовалось создание отчетов на основе большого числа файлов с многочисленными перекрестными ссылками между ними.
Первоначально Ларри предполагал использовать для этих целей фильтр awk, но оказалось, что последний не мог управлять открытием и закрытием большого числа файлов на основе содержащейся в них же самих информации об их расположении. Его первой мыслью было написать специальную системную утилиту, решающую поставленную задачу, но, вспомнив, что до этого ему уже пришлось написать несколько утилит для решения задач, не «берущихся» стандартными средствами UNIX, он принял кардинальное решение — разработать язык программирования, который сочетал бы в себе возможности обработки текстовых файлов (sed), генерации отчетов (awk), решения системных задач (shell) и низкоуровневое программирование, доступное на языке С. Результатом этого решения и явился язык Perl, интерпретатор для которого был написан на С.
По утверждению самого Ларри Уолла, при создании языка Perl им двигала лень — в том смысле, что для решения стоявшей перед ним задачи следовало бы написать большое количество программ на разных языках, входящих в состав инструментальных средств UNIX, а это достаточно утомительное занятие.
Новый язык программирования сочетал в себе возможности системного администрирования и обработки файлов — две основные задачи, решаемые обычно при программировании в системе UNIX. Причем следует отметить, что язык Perl появился из практических соображений, а не из-за желания создать еще одно «красивое» средство для работы в UNIX, поэтому-то он и получил широкое распространение среди системных администраторов, когда Ларри Уолл предоставил его широкому кругу пользователей. После создания языка Perl появилась возможность решать задачи с помощью одного инструмента и не тратить время на изучение нескольких языков среды программирования UNIX.
Первая версия языка не содержала многих возможностей, вошедших в последнюю версию Perl, с которой читатель познакомится в нашей книге и которая идентифицируется как версия 5.6.1.626 и считается устойчивой. Первоначально язык включал:
Вся документация умещалась на 15 страницах, но Perl решал задачи быстрее, чем sed или awk, и скоро стал использоваться не только для решения задач системного администрирования.
В дальнейшем сам Ларри Уолл позаимствовал у Генри Спенсера (Henry Spencer) («бога регулярных выражений», как о нем написано в одной из книг) пакет для работы с регулярными выражениями и модифицировал его для использования в языке Perl. Другие функциональные возможности были разработаны не только Ларри Уоллом, но и его друзьями и коллегами, и также включены в состав языка. Опубликование в Интернете привело к появлению сообщества единомышленников, которые не только использовали для решения своих задач язык, но и развивали его. Perl и по настоящее время продолжает интенсивно развиваться за счет разработки пакетов, реализующих новые функциональные возможности языка, отражающие стремительное развитие современных информационных технологий. В табл. 1.1 представлена динамика появления новых версий языка Perl, начиная с самой первой.
Таблица 1.1. Версии языка Perl и даты их выпуска
Версия Дата выпуска
Perl 1 Январь, 1988
Perl 2 Июнь, 1988
Perl 3 Октябрь, 1989
Perl 4 Март, 1991
Perl 5 Октябрь, 1994
Perl 5.6.0 Март, 2000
Perl 5.6.1 Апрель, 2001
В настоящее время, как уже отмечалось ранее, устойчивой версией считается версия Perl 5.6.1. Ее можно загрузить с основного узла Web, поддерживающего язык Perl, по адресу http://www.perl.com/ или найти там ссылки на другие источники, например ActivePerl для Windows фирмы ActiveState Tool Corp.
ПРИМЕЧАНИЕ. Начиная с Perl 5,6.0 нумерация его версий соответствует принятой в сообществе открытых программных продуктов (open source), в которую входит и Perl, — последовательность целых чисел, разделенных точками. Последующие реализации версии v 5,6.0 идентифицируются как v 5.6.1, v 5,6.2 и т. д. Разработки языка после версии v 5.6.0 нумеруются как v 5.7.x, начиная с реализации v 5.7.0, далее v 5.8,х и т. д.

Следующая страница Содержание главы


Реклама