Что такое Perl? Прежде всего, Perl - это высокоуровневый интерпретируемый и динамический язык программирования.
- Высокоуровневый - означает, что язык близкий к языку математики и разговорному. Разрабатывать программы на таком языке программисту быстро и удобно. В нем используются инструкции, описывающие структуры данных и все операции над этими данными.
- Интерпретируемый - язык Perl переводит исходный программный код в машинный язык и затем создает исполняемый программный файл.
- Динамический - тип для переменной определяется в момент присваивания для нее значения, а не в тот момент, когда переменная объявляется.
Perl разработал американский программист и лингвист по образованию, Ларри Уолл.
Кстати, название Perl у языка было не всегда. Когда-то он назывался Pearl. Но потом букву «a» из названия было решено убрать, так как на тот момент уже существовал язык с похожим названием. Персонажем-талисманом языка Perl является верблюд: выносливое животное, способное выполнять очень тяжелую работу.
По праву Perl считается мощным языком для работы с текстовыми данными. Недаром ведь, Ларри лингвист по образованию. В Perl также очень мощные возможности для работы с регулярными выражениями, что является чуть ли не самой главной из его особенностей.
Изначально Perl создавался только для работы с текстом, но потом его подхватили и стали применять для многих задач: системное администрирование и сетевое программирование, веб-разработка и разработка графических интерфейсов, биоинформатика и т.п.
Perl очень давний язык. Он появился в 1987 году. За это время вокруг Perl образовалась очень большая экосистема, со множеством библиотек, дополнений, готовых решений и сообществом разработчиков. Но с того момента успело появиться огромное количество разнообразных языков программирования. Perl начал сдавать свои позиции в разработке проектов под давлением других, стремительно развивающихся, языков программирования. Какие-то языки завоевали большую популярность и со временем, программисты стали переходить на них. Разработчики постепенно стали относиться к Perl, как к некоторому устаревшему языку программирования, изжившему свое время.
Вслед за разработчиками, такое мнение стало появляться и у заказчиков. Оно и понятное дело. Не разбирающиеся в технологиях и наслышавшись об устаревшем Perl, они стали обходить его стороной. С этого момента появились разговоры о том, что язык программирования Perl устарел и умер.
Итак, умер ли Perl?
Нет, Perl не умер. Он сумел преодолеть барьер и не впасть в стагнацию. Язык по прежнему развивают разработчики, о чем свидетельствуют новые релизы. Появилось множество фреймворков для быстрой разработки веб-приложений на Perl - Catalyst, Mojolicious, Dancer.
Если ли работа для Perl программистов?
Есть. Но новые компании сейчас не разрабатывают свои проекты на Perl. Как правило, теперь это работа в крупных компаниях над уже существующими проектами и поддержка старых проектов.
У многих накопилось огромное количество кода, который необходимо улучшать и дополнять для решения как старых, так и новых задач. Перейти на новый язык или платформу нельзя, потому что процесс этот небыстрый и финансово очень дорогой. Потребуется большое количество программистов для написания нового кода и переноса на него старой логики и всех данных. Придется продолжать поддерживать существующий проект и одновременно делать новый, либо приостанавливать существующий и заниматься исключительно переписыванием на новый язык. Безусловно, эта затея невыгодна, даже для очень состоятельных компаний.
Поэтому Perl программисты могут не волноваться и быть спокойными. Работы им хватит до самой пенсии, ведь проектов требующих поддержки большое количество. К тому же, найти действительно хорошего Perl программиста очень сложно.
Perl очень сложный язык программирования?
Не сложный, а с богатыми возможностями. По крайней мере, не сложней того же Си.
Взять к примеру регулярные выражения. Как помните, язык изначально создавался для работы с текстом, поэтому в Perl они являются очень важной составляющей. Они ничуть не сложней тех же регулярных выражений, что присутствуют в других языка, например, PHP или JavaScript.
Хеш-таблица, он же простой ассоциативный массив, состоящий из пар ключ-значение, не содержит в себе ничего сверхсложного и необычного.
Оператор unless, которые многие не понимают, а некоторые не используют, производит логическое отрицание (!) булевой величины.
Функции во многих языках принято начинать с ключевого слова function после которого задается название функции, передаваемые параметры в круглых скобках и наконец само тело функции в фигурных скобках. В Perl все то же самое, кроме того, что вместо ключевого слова function используется слово sub. Для программистов не пробовавших Perl вероятно может показаться слегка непривычным. Но не более.
Готовые модули и библиотеки
У Perl очень много примеров кода, в том числе кода различных готовых проектов, в открытом для всех пользовании на CPAN. Он содержит множество модулей и библиотек, которые можно брать и использовать в любом своем проекте для быстрой разработки. Но безусловно, там тоже есть старый и некачественный код, непригодный к использованию. Впрочем, плохой код есть везде, даже на том же GitHub.
Войдя в мир программирования, Perl безусловно, повлиял на окружающие его вещи.
Осталось очень много легаси проектов где перл еще актуален. В новых стартапах конечно же рулит питон или go.
Perl крутой, полнофункциональный скриптовый язык с крутой реализацией регэкспов. На прошлой работе и на текущей многие используют его для автоматизации на серверах. Новые компании не пишут проекты на перле? В основном пишут на том языке, который лучше знают, перл просто менее популярный. На попсовом питоне легче штат набрать и больше всего готового есть. А так перл красивый скриптовый язык и для своих целей он очень хорош.
Привет! У меня странная проблема. Мой сайт написан на perl и один скрипт должен передавать данные другому скрипту. Если вводишь картинку <INPUT TYPE=\'file\' NAME=\'image\' VALUE=\'crop_mirror.jpg\' STYLE=\'width: 300pt; font-size: 8pt;\'> и проставляешь ее размеры в форме, то все данные отправляются и принимаются скриптом-адресатом. Но если файл не вводить и не проставлять размеры, то ни одна переменная не отправляется. Что это может быть?
Без кода самого скрипта трудно понять. Возможно, что какое-то условие неправильно выполняется.