XML::Simple

XML for Perl developers, Part 1: XML plus Perl — simply magic.
Первая из трех статей, посвященным Perl и XML. В этой статье описывается работа с XML::Simple, как самый простой способ работы с XML в Perl.

XML::Atom

Краткий обзор модуля XML::Atom.

Синтаксис Perl 6

ЖЖ пользователь avva опубликовал довольно интересную статью о том, как устроен парсинг исходного кода в Perl 6.

Синтаксис Perl6 устроен очень интересным образом. С одной стороны, он сохраняет множество удобных и интуитивных черт предыдущих перлов. С другой стороны, он весьма регулярен и формализован, в отличие от предыдущих перлов (например, парсирование исходников в Perl5 – страшный кошмар, переплетение десятков специальных случаев, хаков и вывертов).

Ознакомиться с заметкой целиком можно в ЖЖ-сообществе ru_perl по этой ссылке.

Веб-разработка на Perl

Веб-разработка на PerlPerl Training Australia опубликовали на своем сайте заметки к учебному курсу Web Development with Perl (ссылка Course Notes вверху страницы).

Это PDF-документ на 140 страниц, в котором кратко изложены следующие темы:

  • Как использовать модуль CGI для обработки форм
  • Как с помощью HTML::Template разделить код и представление
  • Как использовать Data::FormValidator для проверки данных, пришедших из формы
  • Как использовать CGI::Cookie и CGI::Session для работы с куками и сессиями
  • Введение в Масон
  • и многое другое…

Скачать документ можно также и с нашего сайта: webdev.pdf.

Введение в Mason

Introduction o MasonКоротенькая презентация Introduction to Mason by Dave Rolsky.
По-моему, даёт хорошее представление о Масоне для тех, кто не в курсе дела.

Perl Design Patterns

Хороший интересный материал – Perl Design Patterns.

Please Stop Using Perl 3

Хорошая публикация про слабые и сильные стороны Perl: Please Stop Using Perl 3. Автор – Curtis “Ovid” Poe, соавтор книги Perl Hacks, автор некоторго количества молудей на CPAN.

Perl::Critic

Если взять Perl::Critic и выдернуть из него все дескрипшины, то получится конспект книги “Perl Best Practicies“.

Итак, 76 коротеньких рецептов.

Счастье есть: Proc::PID::File

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

Сегодня мне снова потребовалось обеспечить работу единственной копии скрипта (ну точнее трех разных скриптов, но это не важно), потому что решение программиста, который вроде бы сделал эту проверку через pid-файлы и Proc::ProcessTable, почему-то оказалось нерабочим.

Порылся в CPAN’е – и нашел: Proc::PID::File.

Использовать предельно просто:
use Proc::PID::File;
if ( my $pid = Proc::PID::File->running({dir=>'/opt/project/temp', verify=>1}) ) {
die 'Already running, pid='.$pid;
}

How to sneak testing into your development team

Хороший материал на use.perl.org: How to sneak testing into your development team. Автор описывает три метода, как ненавязчиво ввести тестирование в процесс разработки приложений.

  1. Boiling a Frog. Начните писать тесты сами. Если работаете с каким-то модулем или методом и для него ещё нет теста – напишите его. Остальные члены команды постепенно тоже начнут делать тесты.
  2. Ping-Pong Method. Пробуйте использовать новую функциональность, создаваемую другими участниками команды. Создайте тесты для новых методов в соответствии с документацией (счастливые люди – у них есть документация), и если тесты не сработали – пишите разработчику, чтобы привел код и документацию в соответствие друг с другом.
  3. The Ratcher Method. Задайте планку, ниже которой качество нового кода не может опускаться в плане покрытия кода документацией и соответствия выбранному уровню severity Perl::Critic.