Perl язык программирования примеры кода

Perl — особенный язык программирования

Есть такой язык программирования — Perl. Если вы заинтересовались информационными технологиями в эпоху Python и JavaScript, вы, вероятно, даже не знаете, что он существует — а он есть и его много. Если представить, что наши ИТ-проекты — это красивые квартиры с евроремонтом, то Perl можно представить как старые магистральные трубы, по которым вода приходит в квартиру.

Ещё Perl называют «скотчем для интернета», потому что он может соединять какие угодно проекты, написанные на любых языках:

  • веб-сервер и базы данных,
  • интернет-магазины и службы почтовых рассылок,
  • термодатчики и систему управления шлюзами в гидроэлектростанции,
  • платную подписку на сайте и смс-оповещения,
  • систему видеонаблюдения и городскую службу быстрого реагирования.

Perl хорошо умеет запускать системные команды в операционной системе. Благодаря этому Perl может взять результат работы одной программы, преобразовать их как нужно и отдать в другую.

✅ Суперсила Perl — в работе с регулярными выражениями, полная поддержка которых уже встроена в язык. Perl может взять любые данные, обработать их по нужным правилам и очень быстро выдать результат в удобном для пользователя виде.

❌ Слабое место Perl — его сложность для новичков, если выбрать его своим первым языком для изучения. В нём всё не так просто с ООП, слишком вольная трактовка операторов сравнения и огромные комбинации спецсимволов, в которых сложно разобраться на старте. Поэтому Perl лучше не выбирать как первый язык, а вернуться к нему, когда возникнет практическая необходимость.

Читайте также:  Понятие интерфейсы программирования приложений

Если у вас MacOS или Linux — у вас уже есть Perl

Интерпретатор Perl встроен почти во все UNIX-подобные операционные системы, поэтому его можно использовать в любой момент без установки. Единственное, что нужно проверить — что в системных настройках правильно указан путь к интерпретатору.

Запустить код на Perl в UNIX-среде просто: достаточно в командной строке написать perl или perl .

Если у вас Windows, то всё сложнее — нужно будет использовать отдельный интерпретатор, написанный специально для вашей версии Windows. Дополнительный минус — так как это не родная среда для Perl, часть команд в таком режиме совместимости работать не будет.

Синтаксис

Синтаксис Perl похож одновременно на два языка:

  • C, откуда он взял оператор присваивания, точку с запятой, часть типов данных, общую структуру команд и гибкость при использовании переменных;
  • Bourne Shell — стандартная оболочка для работы с командной строкой в UNIX-системах — Perl взял оттуда способ построения цепочек команд и передачу параметров от одного оператора другому.

Переменные. Начинаются со специальных символов:

$ — число, строка или ссылка на что-то

$thecode = «Привет, это журнал Код!»

& — функция (в Perl это тоже переменная), которая получает аргументы и возвращает значение

Условный оператор. Почти такой же как в C:

$a = shift;
if($a > 10) print «a > 10\n»;
>

Ещё есть unless — то же самое, что ЕСЛИ, только наоборот:

unless($a == 0) # «выполняется, только если a не равно нулю»
>

Циклы. То же самое, как и везде:

# вывести строку ‘0 1 2 3 4’
for($i = 0; $i < 5; $i++) print «$i «;
>

Или можно сделать как в PHP:

@arr = (0, 1, 2, 3, 4);
# вывести строку ‘0 1 2 3 4’
foreach $i (@arr) print «$i «;
>

Циклы с пред- и постусловием. Если вы знаете хотя бы Pascal, то вы знаете и циклы на Perl:

# выводим '1 2 3 4 5' четырьмя разными способами $i = 0; while($i < 5) < # пока $i меньше пяти print ++$i." "; >print "\n"; # новая строка $i = 0; until($i == 5) < # пока $i не станет равно пяти print ++$i." "; >print "\n"; $i = 0; do < print ++$i." "; >while ($i < 5); # проверка в конце цикла print "\n"; $i = 0; do < print ++$i." "; >until ($i == 5); print "\n";

Операторы присваивания и математические операторы. В этом плане Perl очень похож на любой C-подобный язык и использует те же самые команды:

#!/usr/bin/perl $a = 123; $b = -7.496; $c = 0xABC; # можно записывать переменные и в шестнадцатеричной форме $d = ($a + $b) / $c; $d *= $a; # тоже самое, что $d = $d * $a; $str1 = "hello"; $str2 = "$str1, world"; # в $str2 будет записано 'hello, world $str3 = $a."\n".$str2; $str4 = '$str1'; # в $str4 будет записано '$str1', а не 'hello', потому что кавычки

Применение на практике

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

perl -i.bak -p -e «s/\bJava\b/Perl/» resume.txt

заменит все упоминания слова Java на слово Perl в файле resume.txt, и одновременно сделает резервную копию оригинального файла.

А эта — удаляет все повторяющиеся элементы массива:

my %cnt; # здесь будет число повторений элементов
@links = grep < ! $cnt++; > @links;

Если нужно очистить файл от всех 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 Рэндала Шварца и Тома Феникса. Для тех, кто любит основательно подойти к процессу и не любит читать с экрана.

Источник

Оцените статью