Perl [Practical Extraction and Report Language]

Кратко о 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *