История 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-систем.
Проверьте себя
1. Для какой задачи изначально создавался Perl в 1987 году?
AДля разработки мобильных приложений
BДля быстрой обработки текста: чтения файлов, поиска, замены строк
CДля написания операционных систем
DДля 3D-графики и игр
2. Какая ниша НЕ относится к тому, где Perl активно используется сегодня?
AСистемное администрирование и автоматизация
BБиоинформатика (анализ последовательностей ДНК)
CПоддержка старых (legacy) корпоративных систем
DРазработка мобильных приложений для iOS и Android