Авторизируйтесь,
чтобы продолжить
Некоторые функции доступны только зарегистрированным пользователям
Неправильный логин или пароль
Добавить софт
Мой софт

Perl в студии

Автор: Илья Данилов
Опубликовано: 06.08.2008
Источник: SoftKey.info

Часто наблюдаю следующее: неплохо овладевший C/C++ программист при виде синтаксических конструкций Perl приходит в ужас и возмущенно заявляет, что ничего более нелепого он не видел, что язык очень сложен и на нем трудно писать программы. Однако, получив возможность немного его освоить (например, выполнив упражнения в книге Шварца и Кристиансена "Изучаем Perl") , обнаруживает, что нет ничего проще и логичнее, и с тех пор пытается применить его всюду, где только можно.

Родной "средой обитания" для Perl является Unix-окружение, где он, как правило, установлен с самого начала. Если вы твердо решили использовать Perl в Windows – установите один из существующих "портов" для этой операционной системы. Конечно, исходный код Perl всегда под рукой, но стоит ли компилировать велосипед, если все уже и так сделано до нас?

В состав ActivePerl PRO Studio входят три основных компонента:

ActivePerl – это самая базовая часть, она же - содержимое бесплатного ActivePerl Standard Edition, состоит из интерпретатора Perl и менеджера пакетов Perl Package Manager (PPM):

ActiveState Perl Package Manager

В чем сила Perl? Конечно, в CPAN – крупнейшем архиве кода Perl. Модульный механизм расширения программ призван обеспечить максимальную простоту использования наработок других программистов. Например, если надо осуществлять подсчет MD5 в программе, необязательно писать это самостоятельно, а достаточно вставить в начале программы строку 'use Digest::MD5;' и установить соответствующий модуль из CPAN. Программисты так привыкают к CPAN, что иногда начинают разработку только после основательного изучения архива: а не решил ли уже эту задачу кто-то другой?

К сожалению, не всегда можно обойтись простым скачиванием и копированием понравившегося модуля на свою рабочую машину. Perl – язык высокого уровня, и для ускорения работы модуля, он может быть частично написан на C. А это означает, что надо заниматься компиляцией для своей платформы. Тут главное не упасть духом: при желании и наличии компилятора все это можно сделать ( другое дело, сколько времени вы на это потратите ). Спокойно, ActiveState об этом уже позаботилась: из CPAN отобраны наиболее полезные модули, которые откомпилированы и помещены в репозиторий.

PPM подключается к репозиториям и помогает автоматизировать задачу манипулирования модулями Perl. Репозиторий ActiveState - не единственный в своем роде, и вы можете легко расширить "кругозор" PPM, добавив другие репозитории в список возможных источников пакетов:

ActiveState Perl Package Manager - добавление репозитория

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

PPM – это только часть стандартного бесплатного дистрибутива, поэтому идем дальше. Что доступно для разработки Perl-программы после установки ActivePerl Standard Edition? Редактируйте свой код в любимом текстовом редакторе, а если требуется отладка, используйте ключ "-d": perl –d myprogram.pl. После такого запуска вы попадаете в режим консольного отладчика и можете исполнять программу в пошаговом режиме, анализировать переменные, устанавливать точки останова. По умолчанию отладчик и интерпретатор Perl неделимы, и можно быть спокойным: если на машине есть Perl, то и отладчик – тоже. Удобно пользоваться таким отладчиком на удаленной машине, если вы зашли на нее через текстовый терминал.

Но что, если программа достаточно сложна и вам хочется рационально использовать свой графический рабочий стол для отладки? Для этого можно воспользоваться Komodo IDE:

Komodo IDE v4.4

По большому счету, Komodo – это "всего лишь" редактор и отладчик. Но удобство, как известно, складывается из мелочей.

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

Komodo IDE v4.4: редактирование программы на Perl

Тем не менее обвинять редактор Komodo в слепом подражании MS Word нельзя. Большинство пользователей Perl познакомились с ним в среде UNIX, что делает исключительно актуальной опцию привязки клавиш к текстовым редакторам Vi и Emacs (на ваш "религиозный" выбор):

Komodo IDE v4.4: настройки комбинаций клавиш

Процесс пошагового исполнения и отладки довольно стереотипен. Внизу можно наблюдать значения локальных переменных, по щелчку мыши хеши и массивы разворачиваются и показывают свои элементы (забудьте про Data::Dumper):

Komodo IDE v4.4: сессия отладчика

О, регулярные выражения – "как много в этом звуке"! Недаром сам автор языка, Ларри Уолл, называет их в своей книге не иначе как "бестиарий регулярных выражений". Нельзя сказать, чтобы регулярные выражения представляли собой загадку, но иногда приходится писать небольшую тестовую программу, чтобы убедиться в правильности той или иной конструкции. Rx Toolkit заменяет собой такую программу, потому что одновременно вы можете редактировать само регулярное выражение и входные данные и видеть полученные результаты. Добавим сюда автоматическую проверку синтаксиса и подсказки – и получим практически инструмент мечты:

Rx Toolkit: инспектор регулярных выражений

Другой немаловажный аспект жизни программиста Perl – это программирование CGI-скриптов. Для того чтобы отладить такую программу, надо как минимум установить переменную окружения REQUEST_METHOD и позаботиться о перечислении аргументов CGI-сценария в переменной QUERY_STRING. Встроенный отладчик Komodo IDE предлагает сохранить отдельный профиль настроек, в котором можно варьировать любые переменные окружения, добавлять и редактировать параметры и выбирать способ передачи данных в скрипт:

Komodo IDE: отладка в окружении CGI

Кроме того, вам доступен еще один инструмент: HTTP Inspector, применяется для отслеживания обмена между браузером и сервером. Утилита позволяет делать достаточно сложные манипуляции: она работает как локальный прокси и запоминает весь обмен между сервером и клиентом, который потом можно подробно изучить:

HTTP Inspector

Также можно установить триггеры: условия, которые при совпадении с входными данными порождают определенные действия. Это может быть перестановка содержимого заголовков, задержка, тайм-аут или останов для ручного анализа и модификации транзакций:

HTTP Inspector: правила обработки

Хотите отлаживать программу не у себя на рабочем столе, а на другой машине? И это тоже можно устроить! Для этого программа на удаленной машине должна быть связана с Komodo по сети. Решается это установкой Komodo Debugger Extensions и прописыванием переменных окружения PERLDB_OPTS. Далее, необходимо установить Komodo в режим ожидания удаленной сессии отладки, после чего запустить на удаленной машине скрипт с ключом активации отладчика perl –d myremoteprogram.pl. Если все настроено правильно, вы получите приглашение к отладке в графическом режиме.

Третий, последний, компонент ActivePerl Studio PRO – это Perl Dev Kit (PDK), набор утилит, который должен приблизить вашу программу на Perl максимально близко к специфике операционной системы. Например: вы написали для клиента программу на Perl и хотите поставлять ее в составе своего программного пакета под Windows. Поскольку Perl не является составной частью Windows и может отсутствовать, вам придется приложить к этой программе и дистрибутив ActiveState Perl. Но тут вступает в игру лицензионное соглашение: бесплатно включать ActiveState в свой дистрибутив (или, другими словами, распространять его) нельзя. У вас два легальных выхода: либо купить лицензию ActiveState OEM, либо воспользоваться PDK для преобразования вашей программы... в исполняемый .exe-файл. Для этого служит приложение perlapp, к которому в PDK есть вполне нормальный графический интерфейс:

PerlApp: просмотр информации о зависимостях

Слева можно изучить, какие модули будут добавлены в вашу программу по причине зависимостей в древовидном режиме. Для генерации приложения достаточно нажать одну кнопку Make executable, после чего perlapp проведет конвертацию и даже предложит запустить результат, чтобы убедиться в правильности:

PerlApp: компиляция приложения

Сходным образом работает и утилита perltray, которая компилирует программу подобно perlapp, но специально для работы в системном трее. Чтобы использовать все преимущества такого подхода, надо использовать класс PerlTray, который описан в документации. Но это совсем не сложно, зато вы получаете полноценное приложение для Windows, написанное на Perl, но по сути не уступающее продуктам компиляции С/С++.

Подведем итог: конечно, в ActivePerl PRO Studio нет ничего такого, без чего нельзя было бы обойтись. Чтобы получить исполняемый файл из скрипта perl, можно воспользоваться утилитой pp из пакета PAR, а отлаживать можно и в командной строке или с бесплатным графическим отладчиком ptkdb. Если вы все-таки хотите упростить себе жизнь и повысить эффективность работы, стоит рассмотреть применение продуктов ActiveState, где все необходимые инструменты собраны в одном месте. Кстати, что Komodo IDE поможет и с PHP, и c Ruby, и с HTML. Конечно, он не напишет за вас программу, но сделает все возможное, чтобы эта кропотливая работа стала приятным творческим занятием.



Статистика
Всего программ 28589
Скачиваний сегодня 44
Скачиваний вчера 1936