Для чего нужен perl
Perl умер? Есть ли смысл изучать Perl?
Perl разработал американский программист и лингвист по образованию, Ларри Уолл.
Кстати, название Perl у языка было не всегда. Когда-то он назывался Pearl. Но потом букву «a» из названия было решено убрать, так как на тот момент уже существовал язык с похожим названием. Персонажем-талисманом языка Perl является верблюд: выносливое животное, способное выполнять очень тяжелую работу.
По праву Perl считается мощным языком для работы с текстовыми данными. Недаром ведь, Ларри лингвист по образованию. В Perl также очень мощные возможности для работы с регулярными выражениями, что является чуть ли не самой главной из его особенностей.
Изначально Perl создавался только для работы с текстом, но потом его подхватили и стали применять для многих задач: системное администрирование и сетевое программирование, веб-разработка и разработка графических интерфейсов, биоинформатика и т.п.
Perl очень давний язык. Он появился в 1987 году. За это время вокруг Perl образовалась очень большая экосистема, со множеством библиотек, дополнений, готовых решений и сообществом разработчиков. Но с того момента успело появиться огромное количество разнообразных языков программирования. Perl начал сдавать свои позиции в разработке проектов под давлением других, стремительно развивающихся, языков программирования. Какие-то языки завоевали большую популярность и со временем, программисты стали переходить на них. Разработчики постепенно стали относиться к Perl, как к некоторому устаревшему языку программирования, изжившему свое время.
Вслед за разработчиками, такое мнение стало появляться и у заказчиков. Оно и понятное дело. Не разбирающиеся в технологиях и наслышавшись об устаревшем Perl, они стали обходить его стороной. С этого момента появились разговоры о том, что язык программирования Perl устарел и умер.
Итак, умер ли Perl?
Если ли работа для Perl программистов?
Есть. Но новые компании сейчас не разрабатывают свои проекты на Perl. Как правило, теперь это работа в крупных компаниях над уже существующими проектами и поддержка старых проектов.
У многих накопилось огромное количество кода, который необходимо улучшать и дополнять для решения как старых, так и новых задач. Перейти на новый язык или платформу нельзя, потому что процесс этот небыстрый и финансово очень дорогой. Потребуется большое количество программистов для написания нового кода и переноса на него старой логики и всех данных. Придется продолжать поддерживать существующий проект и одновременно делать новый, либо приостанавливать существующий и заниматься исключительно переписыванием на новый язык. Безусловно, эта затея невыгодна, даже для очень состоятельных компаний.
Поэтому Perl программисты могут не волноваться и быть спокойными. Работы им хватит до самой пенсии, ведь проектов требующих поддержки большое количество. К тому же, найти действительно хорошего Perl программиста очень сложно.
Perl очень сложный язык программирования?
Не сложный, а с богатыми возможностями. По крайней мере, не сложней того же Си.
Взять к примеру регулярные выражения. Как помните, язык изначально создавался для работы с текстом, поэтому в Perl они являются очень важной составляющей. Они ничуть не сложней тех же регулярных выражений, что присутствуют в других языка, например, PHP или JavaScript.
Хеш-таблица, он же простой ассоциативный массив, состоящий из пар ключ-значение, не содержит в себе ничего сверхсложного и необычного.
Оператор unless, которые многие не понимают, а некоторые не используют, производит логическое отрицание (!) булевой величины.
Функции во многих языках принято начинать с ключевого слова function после которого задается название функции, передаваемые параметры в круглых скобках и наконец само тело функции в фигурных скобках. В Perl все то же самое, кроме того, что вместо ключевого слова function используется слово sub. Для программистов не пробовавших Perl вероятно может показаться слегка непривычным. Но не более.
Готовые модули и библиотеки
У Perl очень много примеров кода, в том числе кода различных готовых проектов, в открытом для всех пользовании на CPAN. Он содержит множество модулей и библиотек, которые можно брать и использовать в любом своем проекте для быстрой разработки. Но безусловно, там тоже есть старый и некачественный код, непригодный к использованию. Впрочем, плохой код есть везде, даже на том же GitHub.
Войдя в мир программирования, Perl безусловно, повлиял на окружающие его вещи.
Perl. История появления, области использования
История создания, Perl — что это?
Язык Perl был создан в 1987 году американским программистом с лингвистическим образованием — Ларри Уоллом. Спустя год после создания, в 1988 году у языка появилась поддержка регулярных выражений, а в 1989 — обработка потока данных, представленных в двоичной форме. Работа над языком Perl не прекращается. В последних версиях Perl появилась поддержка сложных типов данных и объектная модель.
Особенности языка Perl
Структура Perl схожа с языком Си. Некоторые свойства языка Perl заимствованы из языков командных оболочек UNIX – систем.
Отличительная черта языка – возможность написания программ из одной строки. Они используются непосредственно в строке вызова командного интерпретатора.
Преимущества
Преимущества языка Perl:
Недостатки
Для решения некоторых задач часть преимуществ языка Perl превращаются в недостатки. Большое количество модулей затрудняет их поиск, что не нравится программистам, которым из всего многообразия нужны лишь пара конкретных.
В языке сохраняются ранее популярные, но сейчас уже устаревшие подходы. Тем не менее, часть из них может хорошо подойти для специфических программных задач.
Для чего используется?
Системная поддержка Windows и UNIX
Язык Perl популярен среди системных администраторов UNIX и Windows. Его особенности позволяют не привлекать другие программные средства к решению административных задач. С помощью Perl реализуется управление компьютерами из командной строки, контроль одной программы над другой и другие функции.
Электронная почта
Perl – подходящее средство автоматизации обработки электронной почты. С его помощью настраивают фильтрацию сообщений по заданным параметрам, организуют рассылку, и решают множество других задач.
CGU – сценарии
Применение CGU – сценариев обусловлено необходимостью обработки данных, введенных пользователем на html–странице. На сервере запускается специальная программа, которая формирует ответ пользователю после ввода данных. Язык Perl получил распространение в этой сфере из-за простоты реализации требуемых функций.
Поддержка Web-узлов
Web-узел представляет собой хранилище текстовой информации в формате html-страниц. Язык Perl разработан с учетом необходимости обработки больших объемов текстовых данных, поэтому широко применяется в этой сфере.
iPipe – надёжный хостинг-провайдер с опытом работы более 15 лет.
Perl — особенный язык программирования
Он может связать два любых проекта в одно целое.
Есть такой язык программирования — Perl. Если вы заинтересовались информационными технологиями в эпоху Python и JavaScript, вы, вероятно, даже не знаете, что он существует — а он есть и его много. Если представить, что наши ИТ-проекты — это красивые квартиры с евроремонтом, то Perl можно представить как старые магистральные трубы, по которым вода приходит в квартиру.
Ещё Perl называют «скотчем для интернета», потому что он может соединять какие угодно проекты, написанные на любых языках:
Perl хорошо умеет запускать системные команды в операционной системе. Благодаря этому Perl может взять результат работы одной программы, преобразовать их как нужно и отдать в другую.
✅ Суперсила Perl — в работе с регулярными выражениями, полная поддержка которых уже встроена в язык. Perl может взять любые данные, обработать их по нужным правилам и очень быстро выдать результат в удобном для пользователя виде.
❌ Слабое место Perl — его сложность для новичков, если выбрать его своим первым языком для изучения. В нём всё не так просто с ООП, слишком вольная трактовка операторов сравнения и огромные комбинации спецсимволов, в которых сложно разобраться на старте. Поэтому Perl лучше не выбирать как первый язык, а вернуться к нему, когда возникнет практическая необходимость.
Если у вас MacOS или Linux — у вас уже есть Perl
Интерпретатор Perl встроен почти во все UNIX-подобные операционные системы, поэтому его можно использовать в любой момент без установки. Единственное, что нужно проверить — что в системных настройках правильно указан путь к интерпретатору.
Если у вас Windows, то всё сложнее — нужно будет использовать отдельный интерпретатор, написанный специально для вашей версии Windows. Дополнительный минус — так как это не родная среда для Perl, часть команд в таком режиме совместимости работать не будет.
Синтаксис
Синтаксис Perl похож одновременно на два языка:
Переменные. Начинаются со специальных символов:
$ — число, строка или ссылка на что-то
$thecode = «Привет, это журнал Код!»
& — функция (в Perl это тоже переменная), которая получает аргументы и возвращает значение
Условный оператор. Почти такой же как в C:
$a = shift;
if($a > 10) <
print «a > 10\n»;
>
Ещё есть unless — то же самое, что ЕСЛИ, только наоборот:
unless($a == 0) <
# «выполняется, только если a не равно нулю»
>
Циклы. То же самое, как и везде:
Или можно сделать как в PHP:
Циклы с пред- и постусловием. Если вы знаете хотя бы Pascal, то вы знаете и циклы на Perl:
Операторы присваивания и математические операторы. В этом плане Perl очень похож на любой C-подобный язык и использует те же самые команды:
Применение на практике
Perl — мощный язык для работы с текстом и любыми символьными данными. На нём легко писать программы, которые автоматизируют работу с компьютером, выполняют рутинные операции или преобразуют одни данные в другие.
Например, эта команда
заменит все упоминания слова Java на слово Perl в файле resume.txt, и одновременно сделает резервную копию оригинального файла.
А эта — удаляет все повторяющиеся элементы массива:
Если нужно очистить файл от всех HTML-команд, можно использовать такой код:
use strict;
use utf8;
use HTML::Entities;
# исходим из того, что мы уже получили содержимое HTML-файла и можем с ним работать
utf8::decode($_);
s/ ]*>//g;
decode_entities($_);
utf8::encode($_);
Иногда это всё-таки сложно
Иногда готовый код на Perl сложно понять и прочитать. Это из-за того, что Perl — очень гибкий язык программирования с полной поддержкой регулярных выражений. Чтобы понять, что делают некоторые программы и функции, недостаточно просто посмотреть на них — нужно понимать правила преобразования регулярных выражений и знать, как одни команды в регулярках влияют на другие.
Самый популярный пример такого кода:
❌❌❌ Не запускайте этот код на своём компьютере, мы предупредили.
Кажется, что на экране должно появиться несколько раз слово test, а дальше perl обрабатывает набор каких-то бессмысленных символов. Но на самом деле после выполнения и обработки всех регулярных выражений этот код превращается в такой:
❌❌❌ И этот код тоже не запускайте — можно легко стереть все свои данные и повредить файловую систему.
Не все программы на Perl выглядят как эта, но без понимания того, как работают регулярные выражения, понять код бывает очень сложно.
Вывод: регулярные выражения — это сила. Убедились в этом в очередной раз. Если ещё не убедились — почитайте, как с их помощью можно настроить автозамену нецензурной лексики на благопристойные выражения.
Что пишут на Perl
Если коротко: всё, где нужно автоматизировать работу компьютера или преобразование данных, можно написать на Perl.
Системное программирование. Сюда можно отнести работу с учётными записями пользователей в сетях любой сложности и конфигурации, администрирование сетей и пользователей в организации. Ещё Perl используют для автоматизации рутины — наладить резервное копирование по расписанию, отправку писем с ежедневными отчётами, сбор, обработку и анализ разных данных.
CGI-скрипты — любые скрипты для обмена данными между сервером и клиентом. Для Perl неважно, в каком виде данные выходят и поступают обратно, — он переведёт их в нужный вид и отправит из одного сервиса в другой.
Объединение сервисов или программ. Если у вас есть две программы, одна из которых выдаёт готовый результат в одном формате, а другой он требуется в другом формате, то Perl поможет вам их соединить. Работает это так: вы пишете скрипт, который запускает первую программу, получает оттуда данные, преобразует их в нужный вид и отправляет во вторую программу. В итоге всё это работает как одно целое.
Востребован ли Perl сейчас
Perl востребован, потому что в мире накопилось много старого кода, который нужно поддерживать. Дело в том, что программы на Perl работают стабильно, предсказуемо и без сбоёв, а с 1987 года их написано очень много.
Но порог входа в этот язык довольно высок — нужно обладать навыками хотя бы на уровне мидла, чтобы быть востребованным специалистом.
С чего начать
Почитать: учебник по Perl для новичков. Перевод иногда хромает, но это лучший вариант для тех, кто только начинает изучение языка.
Если знаете английский — начните с официальной страницы языка.
Посмотреть: Perl Tutorial или Great Perl Tutorial For Begginers. Тут уже всё на английском, зато более наглядно.
Бумажная книга: Изучаем Perl Рэндала Шварца и Тома Феникса. Для тех, кто любит основательно подойти к процессу и не любит читать с экрана.
Учебник Perl
Что такое Perl?
Perl заменяет « Практический язык извлечения и отчетности », хотя для Perl нет авторизованной аббревиатуры. Вы можете создать свою собственную аббревиатуру, и никто не будет возражать. Perl был создан Ларри Уоллом в 1987 году, когда он работал в системе сообщений об ошибках и «AWK» — язык программирования, который он использовал для этой цели, мало ему помогал. Он по-прежнему главный архитектор и разработчик Perl. Если мы хотим определить Perl в одном предложении: Perl — это высокоуровневый интерпретируемый динамический язык программирования. Вам все это казалось по-гречески? (Если вы на самом деле не знаете греческий).
Perl — это язык программирования, специально разработанный для редактирования текста. В настоящее время он широко используется для различных целей, включая системное администрирование Linux, сетевое программирование, веб-разработку и т. Д.
Где используется Perl?
Мощь Perl может быть реализована во многих областях. Наиболее популярное использование Perl в веб-разработке. Perl также используется для автоматизации многих задач на веб-серверах и других задач администрирования, он может автоматически генерировать электронную почту и очищать системы. Perl по-прежнему используется для своей первоначальной цели — извлечения данных и генерации отчетов. Он может создавать отчеты об использовании ресурсов и проверять наличие проблем безопасности в сети. По этой причине Perl стал популярным языком, используемым в веб-разработке, сетях и биоинформатике. Помимо всего этого Perl также может быть использован для программирования CGI.
Perl также может быть использован для создания и управления изображениями. Помимо этой сети через telnet, FTP и т. Д., Создание графического пользовательского интерфейса, электроники VLSI и создание почтовых фильтров для уменьшения практики рассылки спама — это некоторые примеры использования Perl
Perl также известен реализацией практик ООП (объектно-ориентированного программирования) и поддерживает все формы наследования (простое, множественное и алмазное), полиморфизм и инкапсуляцию. Perl достаточно гибок для одновременной поддержки процедурных и ООП-практик. Perl также имеет дополнительные модули, которые позволяют вам писать или использовать / повторно использовать код, написанный на Python, PHP, PDL, TCL, Octave, Java, C, C ++, Basic, Ruby и Lua, в вашем скрипте Perl. Это означает, что вы можете комбинировать Perl с этими дополнительными языками программирования, а не переписывать существующий код.
Зачем использовать Perl?
Пример: Perl Hello World
Приведенные выше две строки кода выведут Hello, world! Разве это не было слишком просто и быстро? Студенты со знанием C, C ++ будут знать, что для получения одинакового вывода на этих языках требуется гораздо больше строк кода.
Одним из лучших преимуществ Perl является то, что он бесплатен
Сообщество Perl твердо убеждено, что программное обеспечение должно быть свободно доступным, свободно модифицируемым и свободно распространяемым. Несколько волонтеров из сообщества Perl стремятся сделать язык программирования как можно лучше.