Perl
Perl — универсальный скриптовый язык, в частности использующийся в рамках CGI. Отличительная особенность этого языка: принцип TIMTOWTDI. Благодаря этому, Perl идеально подходит для написания программ в стиле write only — такой код проще выкинуть и написать заново, чем разобраться, что же он всё-таки делает, и почему он делает это неправильно. Если в некоторых языках программирования синтаксис уже изначально дисциплинирует программиста, то с Perl программист должен сам заставлять писать себя так, чтобы позже в его программе можно было разобраться. Тем не менее, можно с уверенностью утверждать: писать крупномасштабные, структурированные и понятные программы на Perl возможно!
Оглавление
Основы
Достоинства языка
- Perl - кроссплатформенный язык программирования, программы написанные на Perl работают на UNIX, Windows, Macintosh, VMS и других платформах.
- Perl имеет встроенные мощные механизмы работы с текстовыми данными, регулярные выражения - неотъемлимая часть языка.
- Можно писать программы как с помощью процедур, так и объектов.
- Интеграция с различными базами данных с помощью единого интерфейса (DBI).
- Поддерживает Unicode (Поддержка Unicode).
- Позволяет использовать внешние библиотеки, написаные на других языках, с помощью XS или SWIG.
- Огромное количество готовых модулей для решения самых разнообразных задач (Модули Perl).
Mатериалы
Модули Perl
Для языка Perl существует огромное кол-во различных модулей. Практически любое приложение имеет Perl API.
Каталог модулей CPAN
Установка модулей
Полезные модули Perl
- DBI — универсальный интерфейс к базам данных
- HTML::Parser — модуль для разбора HTML-кода
- GD — модуль для работы с картинками при помощи библиотеки libgd
- PerlMagic — модуль для работы с графикой на основе пакета ImageMagic
- ...
Технологии
mod_perl
mod_perl — модуль Apache, позволяющий расширять возможности самого web-сервера при помощи языка Perl. mod_perl предоставлят полноценный доступ к Apache API, что позволяет вмешаться в обработку запроса на любом этапе, используя свои обработчики тех или иных событий. На CPAN вы можете найти большой список модулей, имеющих отношение к mod_perl, которые помогут расширить возможности ваших приложений.
Свое знакомство с mod_perl вы можете начать, ускорив выполнение ваших CGI скриптов практически не изменяя их. Этого вы можете добиться используя модуль Apache::PerlRun или Apache::Registry. Производительность скриптов многократно повышается, поскольку интерпретатор Perl не должен больше загружаться при каждом вызове скрипта и компилировать его заново. Многие простые и не очень скрипты переживут переход под управление этими модулями безболезненно. Некоторые пролемы безусловно могут возникнуть, так как чаще всего CGI скрипт при каждом запросе загружается, компилируется и выгружается после, и авторы кода не задумываются, вообще, о том что их код будет постоянно находится в памяти. Все эти проблемы решаемы и подробно описаны здесь. Указанную статью стоит почитать всем, кто хочет изучить технику написания скриптов для сред с постоянно откомпилированым perl кодом (persistent environment), а также понять как работает perl и mod_perl.
В России очень мало хостинг провайдеров, которые позволяют использовать mod_perl и нет бесплатного(?). Чаще всего провайдеры предоставляют такую услугу вместе с хостингом на виртуальных машинах. Проекты размещаются не только у провайдеров, но и на серверах клиента, на которые установить mod_perl не составит труда. Так что, написав скрипты в соответствии с требованиями mod_perl, вы можете увеличить возможности масштабирования ваших приложений, что безусловно только порадует ваших клиентов.
Существуют скептики, которые утверждают, что mod_perl и подобные технологии только снижают масштабируемость, увеличивают расход памяти и имеют ряд других недостатков. Найти ответы на популярные мифы и жалобы можно здесь.
Готовые решения
Решения на все случаи жизни:
Статьи
- Поддержка Unicode
- Свой модуль за пять минут
- Обнаружение и устранение утечек памяти в Perl программах
- TODO: Работа с сессиями?
Зарисовки
- Тестирование скорости выполнения фрагментов кода
- Хитрые приемы
- Ссылки и вырезки из обсуждений на p5p
![[logo]](/site/images/logo.jpg)