Выпуск 15. Май 2014
← Тестирование интерфейса веб-приложений. Применение WWW::WebKit | Содержание | Интервью с Кристианом Вальде (Christian Walde) →Обзор CPAN за апрель 2014 г.
Рубрика с обзором интересных новинок CPAN за прошедший месяц.
Статистика
- Новых дистрибутивов — 240
- Новых выпусков — 875
Новые модули
Модуль WWW::HKP
— это реализация клиента протокола HTTP Keyserver Protocol (HKP), который может использоваться для получения информации или отправки на сервер OpenPGP-ключей.
MetaCPAN::Client
— это с чистого листа переписанный MetaCPAN::API
, который теперь становится официальным клиентом для API MetaCPAN. В модуле используется объектная система Moo
и Search::Elasticsearch
как бэкенд для сложных поисковых запросов.
Модуль PLON предназначен для сериализации объектов в Perl-код. Для десереализации достаточно использовать eval()
. В отличие от Data::Dumper
модуль PLON
имеет схожий с JSON
интерфейс и по умолчанию не экранирует многобайтовые символы (поддерживается только кодировка UTF-8).
Ещё один легковесный модуль для создания исключений. В $@
помещается объект Throw
, который содержит сообщение об ошибке и дополнительные данные, которые вы передали функции в виде хеша. Throw
содержит функцию classify
для классификации типа ошибки, что может быть удобно при работе совместно с Try::Tiny
и подобными модулями. Это выгодно его отличает от Acme::Throw
, в котором только один тип ошибки:
(╯°□°)╯︵ ┻━┻
Exception::Chain
— это тоже модуль для создания исключений. Особенностью данного модуля является возможность создания вложенных исключений, когда одно исключение вызывает цепочку последующих исключений, каждое из которых содержит какую-либо дополнительную информацию об ошибке. При классификации ошибки модуль может обходить всю цепочку исключений для поиска заданного типа (типов) ошибки.
Ещё один пример того, как в Perl можно сэмулировать любую парадигму программирования. Модуль Homer
реализует объектную систему, основанную на прототипах, которая применяется, например, в JavaScript. Вместо классов используются только объекты, на основе которых можно создавать другие объекты, добавлять атрибуты, изменять прототипы объектов.
Когда требуется выполнить несколько вызовов методов у объекта, бывает очень удобно объединить их в цепочку вызовов. К сожалению, не все API предоставляют такую возможность. Модуль Method::Cascade
позволяет выполнить каскадный вызов методов для произвольного API:
use Method::Cascade;
use IO::Socket::INET;
cascade(IO::Socket::INET->new('google.com:http'))
->timeout(5)
->setsockopt(SOL_SOCKET, SO_KEEPALIVE, pack("l", 1))
->print("GET / HTTP/1.0\r\n\r\n")
->recv(my $response, 4096);
print $response;
Cogit
— это реализация интерфейса к git-репозиториям на чистом Perl. Проект является форком Git::PurePerl
. Автора не устроило, что Git::PurePerl
основан на Moose (который не является чистым Perl) и имеет неудачное API. В новом проекте объектная система базируется на Moo
.
Модуль bare
позволяет вам создавать скаляры в виде простых слов без знака сигила $
. Подобные скаляры могут использоваться также как и обычные скаляры, им даже можно присваивать значения, но никакой практической пользы, кроме косметического эффекта, это не даёт.
Обновлённые модули
- Starman 0.4009
В новой версии веб-сервера Starman исправлена ошибка, когда сервер отправлял тело ответа в chunked-кодировке при получении HEAD-запроса.
- Mouse 2.2.0
Новый релиз ООП-реализации Mouse
исправляет несовместимое с Moose
поведение логического типа Bool
.
- Math::BigInt 1.9993
Версия модуля на CPAN для работы с большими числами была синхронизирована со всеми последними изменениями дистрибутива в perl blead за последние три года.
- Dancer2 0.140000
В новом релизе веб-фреймворка Dancer2 произошёл переход на семантическое версионирование, что заметно по появившимся четырём нулям в конце номера версии. Многим улучшениям новый релиз обязан Dancer2-хакатону, который прошёл в штаб-квартире Booking.com.
- Search::Tools 1.00
Вышел первый мажорный релиз старых добрых Search::Tools
— инструмент для создания приложений для поиска. Новая версия теперь использует объектную систему Moo
и Class::XSAccessor
.
Selenium::Remote::Driver
— это Perl-клиент для Selenium WebDriver, инструмента тестирования интерфейса веб-приложений с использованием браузера с поддержкой JavaScript. В новых апрельских релизах появилась поддержка управления профилями Firefox и завершён перевод модуля на использование Moo
.
- Proclet 0.34
В новой версии супервизора процессов Proclet
появилась экспериментальная поддержка периодического запуска процессов с узнаваемым API crontab.
- BDB 1.91
Новый релиз модуля асинхронный доступа к Berkeley DB включает исправление для работы на windows с Perl 5.18, декларирована поддержка 6-й версии Berkeley DB.
- HTML::FormFu 2.00
Вышел новый мажорный релиз модуля для создания, рендеринга и валидации HTML-форм HTML::FormFu
. Появился метод layout
для задания порядка вывода полей элементов, обновились TT-шаблоны, исправлен вывод предупреждений при работе с perl 5.19.x.
- MetaCPAN::API 0.44
Модуль MetaCPAN::API
объявлен устаревшим в пользу нового официального клиента MetaCPAN::Client
.
← Тестирование интерфейса веб-приложений. Применение WWW::WebKit | Содержание | Интервью с Кристианом Вальде (Christian Walde) →