Перейти к содержимому

Perl

Perl — интерпретируемый язык программирования общего назначения, известный своей мощной работой с текстом и регулярными выражениями. В девяностые и нулевые на нём держалась большая часть динамического веба.

Что даёт

Perl разрабатывался в конце восьмидесятых для обработки текстовых файлов и генерации отчётов, но с расцветом веба стал главным языком для написания CGI-скриптов. В нём из коробки есть регулярные выражения на уровне синтаксиса, нативная работа с файловыми дескрипторами и огромный архив модулей CPAN.

Главная фича Perl — гибкость синтаксиса и принцип TMTOWTDI (There's More Than One Way To Do It). Одну и ту же задачу можно решить десятком разных способов. Однако эта же гибкость сыграла с языком злую шутку: код на Perl легко превращается в «unmaintainable» спагетти, из-за чего его часто шутливо называют языком, предназначенным только для записи, но не для чтения (write-only language).

В современной инфраструктуре Perl держит позиции по нескольким причинам:

  • Совместимость с legacy. Тысячи старых корпоративных систем, билингвов, самописных мониторингов и панелей управления до сих пор работают на Perl.
  • Мощный парсинг. В задачах регулярной обработки гигабайтных логов или текстовых дампов Perl до сих пор отрабатывает шустро и без жуткого расхода памяти.
  • Системные утилиты. Многие дефолтные инструменты в Linux (например, rename, компоненты Git или утилиты сборки пакетов в Debian/Ubuntu) под капотом используют Perl.

Как использовать

В новых проектах Perl выбирают редко — веб ушёл на Python, Go, Node.js и PHP. Но на хостинге и в серверной инфраструктуре с ним сталкиваются регулярно.

  1. Поддержка старых CGI-скриптов. Если на сервере крутится legacy-проект, его запускают через Apache (mod_perl) или настраивают обёртку FastCGI (FCGI, Plack/PSGI), чтобы не плодить CGI-процессы на каждый запрос.
  2. Парсинг логов и автоматизация. Скрипты на Perl отлично подходят для крон-задач: вытащить данные из текстового лога, профильтровать через preg-выражение и сформировать отчёт.
  3. Плавная миграция. Переписывать 200 тысяч строк Perl-кода на Go или Python за один спринт никто не станет. Проект обвешивают интеграционными тестами, закрывают его API-слоем и вытаскивают логику по частям в микросервисы.
  • Хостинг для сайта

    Хостинг для сайта

    Мощный и надежный виртуальный хостинг для сайта с поддержкой 24/7
    Подробнее
  • Почта на домене

    Почта на домене

    Позволяет создавать и использовать адреса электронной почты, привязанные к вашему доменному имени, улучшая профессиональный имидж.
    Подробнее
  • Конструктор сайтов

    Конструктор сайтов

    Генерация сайта за считанные минуты
    Подробнее