Кратко о Perl
Perl – динамический язык программирования высокого уровня. Был задуман и начал создаваться как язык для удобной работы с текстовой информацией, отсюда вытекает основная особенность языка – строковой тип данных (строка представляет собой единый объект, а не массив отдельных символов, эту же особенность унаследовал от Perl язык PHP).
Язык знаменит своими мощными возможностями по обработке текстовых данных, что делает его весьма привлекательным для создания web-ориентированных cgi-скриптов и различных парсеров, использующих возможности регулярных выражений.
Интерпретатор Perl открытый, существуют сборки под многие популярные платформы. Также язык славится огромны количеством дополнительных модулей-библиотек, ускоряющих и упрощающих разработку приложений для решения типовых задач.
Не секрет, что perl часто используется на VPS-серверах и хостингах, в таком случае обслуживание серверов – достаточно востребованная работа. Если самостоятельно обслуживать сервер нет возможности – лучше использовать готовый сервер на хостинге, оставив решение задач по его обслуживанию техподдержке.
Интересные особенности Perl
Конструкция Switch/Case
Штатно возможность использовать конструкцию switch/case предусмотрена не была, однако это ограничение может быть обойдено достаточно простым и элегантным способом:
my %case = (
'action1' => \&action1,
'action2' => \&action2,
'actionN' => \&actionN,
);
my $action = 'action1';
$case{$action};
Помимо этого, можно использовать дополнительный модуль Switch, включив директиву use Switch;
. В Perl6 конструкция switch/case встроена в интерпретатор.
Регулярные выражения в Perl
Мощная встроенная в язык поддержка регулярных выражений – это то, чем силён Perl. Основные операторы, используемые при работе с регулярными выражениями в Perl, это s///
, m//
, =~
и split
(да, это тоже оператор).
Важной особенностью регулярных выражений, появившейся в последных версиях Perl, является поддержка исполнения встроенного Perl-кода и динамичности, что позволяет, например, описать и найти при помощи регулярного выражения конструкцию с любым количеством уровней вложенности без знания этого количества.
Тема регулярных выражений отлично раскрыта в имеющейся в разделе “Библиотека” книге Mastering Regular Expressions (Регулярные выражения), издание второе.
Примеры программ на Perl
Парсер тИЦ
Простейший парсер значений тИЦ, написанный на Perl, может выглядеть так:
#!/usr/bin/perl
use warnings;
use strict;
use utf8;
use LWP::Simple;
my $base_url = 'http://bar-navig.yandex.ru/u?ver=2&show=32&url=';
my $target_url = 'https://dimio.org';
my $content = get($base_url.$target_url);
die "Can't load tCY page!\n" if !$content;
if ( $content =~ m/^<tcy\srang="(\d{1,4})"\svalue="(\d{1,6})"\/>$/imsxo ) {
print 'Yandex Rang = '.$1.', Yandex tCY = '.$2,"\n";
}
exit 0;
Более продвинутый парсер ТИЦ – с параллельной загрузкой значений ТИЦ для переданного в скрипт списка сайтов – можно найти в разделе Софт.
Скрипт для автоматической смены IP-адреса в TOR
Для сети TOR (бесплатные рабочие SOCKS-прокси) можно сделелать Perl скрипт для автоматической смены НИМа / получения новго IP-адреса с использованием модуля Expect или при помощи модуля Net::Telnet.