Жемчужина 1. Что такое Perl

Изображение пользователя Школяр.



Perl как вещь в себе

Я не буду излагать историю развития языка Perl. Достаточно сказать, что Perl был создан одним человеком, Ларри Уоллом (Larry Wall) то ли в 1986, то ли в 1987 году. Как это часто бывает, создание впитало в себя все черты своего создателя. Ларри, на момент создания Perl, помимо компьютерных технологий увлекался поэзией, музыкой и собирался стать проповедником.
Все эти увлечения нашли свое отражение в созданном им языке программирования. Поэтому, если вы встретите в программах на языке Perl перлы типа bless (англ. "благословить"), do &thiswork or die (англ. "сделай это или умри"), обнаружите в сети Интернет программы на языке Perl, которые будут выглядеть как поэмы или нотные партитуры - не удивляйтесь.

Стихи, написаные на Perl:

#!/usr/bin/perl #Friar Away!
my ($jungle, $retreat); 'wont be a long stay';
if (my $hunch eq 'one hundred percent') {
print time . " in the $jungle very well spent" }

my @new = ('walkie talkies', 'mosquito nets',
'cliff bars', 'cash on hand' and 'passport ID');
'Will prove useful from day well into night' .
'so Nicaragua will be a delight.';

'Algorithm I seek not for the meek.';
'One that surely will take more than a week.';
while (my $PerlFu) { sprintf 'orward this past year' }

my $firstBigProject; 'has yet to get here';
unless ('I find there what I am to make') {
return "$jungle $retreat for Heaven'$sake!" }

Если вы хоть немного разбираете английский, то вы заметите, что это все еще и рифмуется. Рифма, конечно… Ничуть не хуже, чем в современных песнях.

Все это было когда-то заложено в Perl Ларри Уоллом, и ныне прилежно развивается и раздувается его фанатами. Фан-группа Perl огромна, возможно, это самое большое программистское сообщество со времени появления языков программирования. А сам язык Perl является наиболее проработанным с точки зрения функциональности языком в мире. В сетевой библиотеке модулей Perl (http://www.cpan.org) на сегодняшний день собрано 97506 готовых модулей, покрывающих практически всю мыслимые функции и возможности взаимодействия с компьютерными технологиями.

Функционально Perl – универсальное средство создания программ, объединившее в себе черты как скриптовых языков (с их свободной нотацией, весьма вольным обращением с типами данных и ориентированностью на работу с текстом), так и современных компилируемых языков, с их объектной ориентированностью и высокой скоростью выполнения. Perl – свободно распространяемый язык программирования, и стоит в одном ряду с таким свободным программным обеспечением как Linux, Apache или Python. Но возможности Perl, компактность написанных на этом языке программ, универсальность и межплатформенность отвечают самым строгим коммерческим проприетарным стандартам. Видимо, именно поэтому в дистрибутивах таких "монстров" компьютерного мира, как Oracle, IBM или SAP вы обязательно обнаружите Perl: в качестве средства установки, развертывания, настройки и конфигурирования или тестирования.

Таким образом, начав изучать Perl, вы прикасаетесь практически ко всему интересному, что есть в мире компьютерных технологий.

Среда для изучения

Поскольку Perl – многоплатформенный язык, его реализации существуют практически для всех известных операционных систем, а в состав как коммерческих, так и свободно распространяемых версий Linux и UNIX Perl входит уже как неотъемлемая часть дистрибутивов. Так уж повелось на нашем сайте, что мы в качестве учебной базы рассматриваем ОС Alt Linux в ее исполнении для школ. Для изучения Perl эта операционная система очень удобна: и сам Perl со множеством пакетов, и веб-сервер Apache, и сервер баз данных MySQL в Alt Linux есть. Этого инструментария нам хватит надолго.

Как увидеть Perl в Alt Linux

Чтобы убедиться, что Perl в системе есть, необходимо в окне консоли набрать
perl –v:






Консольное окно можно вывести на экран, выполнив команду Приложения>Системные>XTerm :






Полна ли перлами шкатулка?

Для того, чтобы использовать функциональность Perl в полном объеме, неплохо убедиться, что все нужные модули установлены. А заодно и узнать, как установить отсутствующий модуль, если в этом возникла необходимость. В случае, когда вы используете любой более или менее известный дистрибутив Linux, Perl обычно является частью дистрибутива. Не является исключением и Alt Linux. Подавляющее большинство модулей Perl можно установить, используя средство управления пакетами Synaptic.

Запустить Synaptic можно выполнив команду Система>Администрирование> Программа управления пакетами Synaptic:







Сначала на экран будет выведено окно запроса пароля для суперпользователя. Да, для того, чтобы запустить программу Synaptic, необходимо действовать от имени администратора операционной системы. Введите пароль администратора, и программа Synaptic будет запущена:





В окне Synaptic нужно последовательно щелкнуть вначале на кнопке Разделы, затем выше этой кнопки в списке выбрать раздел Разработка/Perl. Теперь в правой части окна вы увидите список пакетов, относящихся к выбранному разделу. Пакеты, помеченные закрашенным квадратиком — это уже установленные в систему пакеты. Если пакет помечен белым, то он есть в репозитории, но не установлен. Чтобы установить нужный пакет, нужно двойным щелчком выделить его для установки. В этом случае в белом квадратике возникает кривая желтая стрелка. После того, как вы пометили все необходимые для установки пакеты, щелкните на кнопке Применить (на рисунке она обведена овалом), и дождитесь конца процесса. После того, как процесс установки завершится, можно закрыть программу Synaptic.
В зависимости от ваших предпочтений, возможны два сценария установки пакетов Perl:

  1. Вы устанавливаете только те пакеты, в которых возникла необходимость (например, вы попытались повторить какой-то код из книги, пособия или из сети Интернет, а Perl вам сообщил, что нет соответствующего модуля). Этот сценарий приятен тем, что один-два модуля устанавливаются быстро, за секудны, и почти не занимают места в системе.
  2. Вы пытаетесь установить ВСЕ доступные пакеты Perl. Этот сценарий хорош тем, что после его выполнения вам уже не придется обращаться к программе Synaptic. Но его минусы в том, что установка может занять очень много времени (больше часа), во время установки возможны конфликты (после которых надо будет искать конфликтные модули, и решать, что делать дальше), места в системе будет занято много. А пользы от такого решения может оказаться мало. Пакетов в Perl так много, что даже выделение поочередно каждого пакета может занять уйму времени и утомить, что уж тут говорить об изучении. Все пакеты Perl вам наверняка не понадобятся.

Ресурсы Perl, сетевые и встроенные

Perl существует так долго, и поддерживается таким количеством энтузиастов, что количество готовых модулей и решений с трудом поддается учету. Тем не менее - каждый модуль Perl на CPAN отлично документирован. И по каждому модулю Perl, а так же по самому языку имеется очень хорошая, подробная встроенная справка. Кроме этого, существует множество как англоязычных, так и русских источников по теме Perl, книг в бумажном и электронном виде, пособий, справочников, учебников, примеров кода, сайтов и web-страниц в сети Интернет.
Начнем со встроенных ресурсов Perl, которые несет с собой сам дистрибутив языка. Самым важным ресурсом является встроенная система документации Perl. В консольном окне наберите команду perldoc perl. На экран будет выведено описание синтаксиста вызова интерпретатора языка Perl, а вслед за этим синтаксисом — краткое описание всех разделов встроенной документации:






Документация разбита на несколько разделов, темы в каждом из которых можно просмотреть выполнив соответствующую команду, например perldoc perlintro выведет на экран краткий вводный курс языка Perl, а perldoc perltoc выведет этот же перечень разделов, но уже с подробным описанием и оглавлением каждой темы.
Не менее интересные сведения содержит в себе команда perldoc perldoc, позволяющая в полной мере оценить возможности системы документирования языка Perl. Мы не будем рассматривать все ключи и способы вызова команды perldoc, остановимся только на наиболее полезных ее применениях.
perldoc ИМЯ_МОДУЛЯ — покажет справочную информацию по указанному модулю. Например, perldoc Test;
perldoc -m ИМЯ_МОДУЛЯ — выведет на экран код модуля, вместе со встроенной в модуль справочной информацией. Например, perldoc -m Test::More;
perldoc -f ИМЯ_ВСТРОЕННОЙ_ФУНКЦИИ — выведет на экран справочную информацию о встроенной функции perl. Например, perldoc -f sprintf;
perldoc -oФОРМАТ -dИМЯ_ФАЙЛА ИМЯ_МОДУЛЯ — документация для указанного модуля или раздела будет преобразована в указанный формат и записана в файл с указанным именем. Например, команда perldoc -ohtml -dperldoc.html perldoc в результате выполнения приведет к тому, что документация по команде perldoc будет преобразована в формат html и записана в файл perldoc.html. Такого рода преобразование документации может быть весьма полезным: открыв получившийся html-файл в браузере, вы сможете легко копировать оттуда примеры кода в ваши программы для изучения и экспериментов.
Хотя встроенная документация Perl исчерпывающе описывает язык, и может послужить хорошим учебным пособием, у нее есть один «недостаток»: вся она на английском языке. Конечно, для крутых компьютерных асов, вооруженных переводчиком Google, это помеха не большая, но все же помеха. Памятуя, что не все любят читать документацию на иностранных языках, я решил привести список русскоязычных источников, которые можно найти в сети Интернет:

http://www.intuit.ru/department/pl/perl/
http://www.intuit.ru/department/se/regperl/
http://perl.far.ru/
http://citforum.ru/internet/perl.shtml
http://habrahabr.ru/blogs/perl/
http://www.opennet.ru/docs/141.shtml
http://perldoc.narod.ru/
http://hotwebpro.narod.ru/info.htm#perl
http://openwiki.ru/wiki/Perl

Этот список не претендует на полноту, но зато он очень полезный и, главное, доступный в сети Интернет.

Упражнения Жемчужины 1

Упражнение 1.

Откройте консольное окно. В консольном окне наберите perl -v, убедитесь, что Perl установлен в вашей системе.

Упражнение 2.

Запустите Synaptic. Выведите на экран раздел Разработка/Perl. Найдите любой неустановленный пакет. Установите его. Закройте Synaptic.

Упражнение 3.

В консольном окне наберите примеры использования perldoc, которые были приведены выше в соответствующем разделе. Создайте html-копию документации для модуля DBI (не забудьте, язык perl регистрочувствительный, и если вы наберете perldoc dbi, то документация обнаружена не будет). Выполните команду Переход>Домашняя папка и двойным щелчком откройте получившийся файл dbi.html в браузере.

Обратная связь

Замечания, вопросы и предложения приветствуются.

Изображение пользователя derugu.

Жемчуга повсюду.

В консоли своего мака набрал
perl -v
и увидел ответ, что Перл установлен:
This is perl, v5.10.0 built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)

Чувствую, что это мне нужно, но пока не понимаю, для чего. Вот бы работу Perl с mySQL в AltLinux вы показали... И чем Перл лучше ПХП?

Изображение пользователя Школяр.

Будет, просто не сразу

Конечно, будет большой раздел работы с данными, и в особенности с MySQL.
Просто мой стиль таков - давать медленно, подробно, проходимо. Так, чтобы не тормозил даже полностью новый в теме человек. Конечно для тех, кто уже знает Perl, интересны будут только фрагменты из этого пособия.