История Perl и где он применяется сегодня
Разбираемся, откуда взялся Perl, почему он выглядит так непривычно — и почему администраторы серверов и биологи до сих пор пишут на нём код каждый день.
Perl — это язык программирования, придуманный в 1987 году для быстрой обработки текста: чтения файлов, поиска по шаблонам, склеивания строк. Он не пытается быть языком «на все случаи жизни» вроде Python — он заточен под одну задачу и делает её очень хорошо.
Зачем это нужно
Прежде чем писать код, полезно понять, зачем язык вообще появился — это объясняет практически всё в его синтаксисе, даже то, что на первый взгляд кажется странным. Perl родился не в лаборатории и не в компании, а из конкретной практической нужды одного человека, и это сильно повлияло на то, каким он стал.
Автор Perl — лингвист и программист Ларри Уолл. В 1987 году он работал системным администратором в NASA и занимался тем, что сегодня назвали бы DevOps: следил за серверами, разбирал логи, писал отчёты. Существовавшие тогда инструменты — язык awk для обработки текста и sed для замены строк — были мощными, но узкими: каждый умел только своё, и как только задача выходила за рамки одной строчки-команды, приходилось городить костыли. Уоллу нужен был инструмент, который сочетал бы силу awk и sed с возможностями полноценного языка программирования — с переменными, циклами, функциями. Так появился Perl (сокращение от Practical Extraction and Report Language — «практический язык извлечения данных и составления отчётов»).
Швейцарский нож для текста
Главная суперспособность Perl — работа с текстом через регулярные выражения (шаблоны для поиска и замены кусков текста), встроенные прямо в синтаксис языка, а не в отдельную библиотеку, которую нужно подключать. Это не единственная причина популярности языка, но исторически — главная: пока в других языках работа с текстом требовала многословного кода, в Perl она умещалась в одну строку.
my $log_line = "2024-03-15 ERROR: connection timeout";
if ($log_line =~ /ERROR/) {
print "Найдена ошибка в логе!\n";
}Здесь $log_line — переменная со строкой лога, а =~ /ERROR/ — проверка «содержит ли строка слово ERROR» через регулярное выражение. Это самая обычная, будничная задача для системного администратора: просмотреть тысячи строк лога и найти те, что содержат ошибку. Именно на таких задачах Perl экономил людям часы работы ещё в 1990-х — и продолжает экономить сегодня.
Из этой особенности выросло и прозвище языка — «швейцарский нож программиста» (the Swiss Army chainsaw, как в шутку называют его сами перловисты): один инструмент, который умеет резать текст под любым углом, и делает это быстро.
Взлёт 1990-х: язык, на котором работал ранний веб
В середине 1990-х, когда интернет только становился массовым, сайтам требовалось как-то обрабатывать данные из форм — например, когда пользователь отправлял сообщение через веб-страницу. Технология для этого называлась CGI (Common Gateway Interface — общий шлюзовой интерфейс): скрипт на сервере принимал данные от браузера, обрабатывал их и отдавал HTML-страницу в ответ. Perl подходил для CGI-скриптов идеально — он был именно про обработку текста, а веб-страница это, по сути, и есть текст.
Так Perl стал одним из главных языков раннего веба. На нём были написаны первые версии многих известных сервисов той эпохи — в частности, ранняя Amazon.com в 1990-х годах активно использовала Perl для серверной логики. Это было время расцвета языка: он обгонял по популярности многие языки, которые сегодня кажутся куда более привычными.
Где Perl работает сегодня
Сегодня для новых веб-сайтов Perl выбирают редко — его во многом заменили другие языки. Но это не значит, что Perl «умер»: он просто ушёл туда, где его сильные стороны по-прежнему решают задачи лучше конкурентов. Разберём три ниши, где Perl жив и востребован в 2020-х.
Системное администрирование. Perl предустановлен почти на всех Linux- и Unix-системах — точно так же, как Python. Администраторы и сегодня пишут на нём скрипты для автоматизации: разбор логов, массовое переименование файлов, генерация отчётов, склейка данных из разных источников. Задача та же, что была у Ларри Уолла в 1987 году, — и Perl всё ещё решает её без лишних усилий.
Биоинформатика. Это, пожалуй, самая неожиданная для новичков ниша. Биоинформатика — это наука о работе с данными в биологии: например, с последовательностями ДНК, которые представляют собой длиннющие текстовые строки из букв A, T, G, C. Обработка таких последовательностей — это опять же обработка текста: поиск паттернов, сравнение фрагментов, статистика. В 1990-х и 2000-х, когда расшифровывался геном человека, огромная часть инструментов для анализа ДНК была написана именно на Perl, и многие из этих инструментов используются до сих пор — переписывать миллионы строк рабочего кода никто не спешит.
Поддержка legacy-систем. Много компаний — банки, телеком-операторы, крупные интернет-магазины — до сих пор используют системы, написанные на Perl десять-двадцать лет назад и прекрасно работающие. Такой код называют legacy (наследие) — не потому, что он плохой, а потому, что он старый и продолжает выполнять свою работу. Кто-то должен его поддерживать, дорабатывать, чинить баги — и это устойчивый источник работы для программистов, знающих Perl.
Частые заблуждения о Perl
- «Perl мёртв». Неточно: у языка нет взрывного роста новых проектов, но десятки тысяч работающих систем поддерживаются на нём ежедневно, и это не собирается меняться в ближайшие годы.
- «Код на Perl всегда нечитаемый». Отчасти справедливо для плохо написанного кода — Perl действительно позволяет писать очень плотный, сжатый синтаксис, и в 1990-х это было модно. Но это стиль автора, а не свойство языка: хорошо написанный Perl читается ничуть не хуже кода на других языках.
- «Учить Perl бессмысленно, раз есть Python». Для новых проектов «с нуля» это часто верно. Но если задача — устроиться в компанию, поддерживающую существующие Perl-системы, или заниматься биоинформатикой, — Perl остаётся востребованным и хорошо оплачиваемым навыком именно потому, что специалистов, готовых его учить, становится меньше.
Итоги
- Perl создан Ларри Уоллом в 1987 году как инструмент для обработки текста — мощнее awk и sed, но с полноценным синтаксисом языка программирования.
- Название расшифровывается как Practical Extraction and Report Language — «практический язык извлечения данных и отчётов».
- Главная сила языка — регулярные выражения, встроенные прямо в синтаксис, что делает работу с текстом очень компактной.
- В 1990-х Perl был одним из главных языков веба (технология CGI); сегодня его основные ниши — системное администрирование, биоинформатика и поддержка legacy-систем.