Выпуск 28. Июнь 2015
← Полный список изменений в Perl 5.22.0 | Содержание | Интервью с Рене Беккером →Обзор CPAN за май 2015 г.
Рубрика с обзором интересных новинок CPAN за прошедший месяц
Статистика
- Новых дистрибутивов — 179
- Новых выпусков — 730
Новые модули
Yandex::Metrika
Yandex::Metrika — это модуль для доступа к одноимённому API Яндекса с использованием OAuth-авторизации. API-вызовы соответствуют методам объекта Yandex::Metrika, полный их список есть в документации Яндекс.Метрики.
Cache::Reddit
Cache::Reddit — это довольно забавная идея использовать в качестве кеша новостной сайт reddit. Данные сериализуются с помощью Storable и постятся как текстовый пост на субреддите, задаваемого в переменной окружения reddit_subreddit. Извлекаются данные путём поиска, поэтому сложность метода O(n), зато удаление происходит за постоянное время O(1).
pluskeys
Прагма pluskeys — это ещё один подход к созданию атрибутов для объектов, по подобию fields.
package Some::Package;
use pluskeys qw(
NAME
SURNAME
AGE
);
...
if ( $self->{+NAME} =~ /Larry/ ) { ... }
В данном примере прагма pluskeys просто создаёт константы NAME, SURNAME и AGE, которые можно использовать как ключи атрибутов объекта. По специальному соглашению используется знак +, чтобы парсер Perl понял, что это константа, а не строка. Такой подход позволяет избежать опечаток.
HTTP::Tinyish
HTTP::Tinyish — это обёртка для модулей HTTP-клиентов LWP, HTTP::Tiny, а также программ curl и wget. Модуль основан на коде из App::cpanminus и может быть полезен в ограниченных окружениях, когда поддержка https отсутствует во встроенной HTTP-библиотеке.
Crypt::NaCl::Sodium
Crypt::NaCl::Sodium — это обёртка к современной криптографической библиотеке libsodium для (де)шифрования, создания и проверок подписи, хеширования и прочих операций. API совместимо с библиотекой NaCl.
Sub::Disable
Модуль Sub::Disable позволяет удалять методы и подпрограммы из скомпилированного кода. Например:
use Sub::Disable 'debug';
sub debug { warn "DEBUG INFO: @_" }
__PACKAGE__->debug(some_heavy_debug()); # no-op
debug(even_more(), heavier_debug()); # no-op
В процессе работы вызов метода/подпрограммы debug() превращается в пустую операцию вместе со всеми возможно тяжёлыми вычислениями в её аргументах. Это бывает полезно, чтобы отладочный код не замедлял работу приложения в рабочем окружении.
JSV
JSV — это реализация валидатора JSON-схемы, позволяющая проверять структуры данных, пересылаемых в формате JSON.
Disque
Disque — это Perl-клиент для Disque, распределённой системы очереди заданий. Модуль использует Redis.
Обновлённые модули
Hash::Ordered 0.09
Обновлён модуль Hash::Ordered, который позволяет создавать упорядоченные хеши. В новых релизах улучшена производительность при удалении из хеша с большим числом элементов, а также при извлечении элементов.
Marpa::R2 3.000000
Вышел новый мажорный релиз парсера Marpa::R2. Единственное изменение в релизе — это исправление проблемы со странным поведением вызова метода $recce->value() в случае, если передавался blessed аргумент. Поскольку чей-то код мог использовать подобную особенность, то изменение ломало обратную совместимость. По этой причине и состоялся мажорный релиз.
Clustericious 1.00
Состоялся первый мажорный релиз Clustericious — веб-фреймворка для создания RESTful-сервисов, работающих в составе кластера, где каждый сервис выполняет только одну задачу и делает это идеально. Релиз содержит небольшое обновление документации и очевидно был предназначен только для того, чтобы зафиксировать стабильное состояния фреймворка.
Mail::GPG 1.0.9
После длительного перерыва обновился модуль Mail::GPG для работы с зашифрованными или заверенными цифровой подписью письмами. В новой версии появилась поддержка GnuPG 2.x.
Protocol::HTTP2 1.00
Вышла первая мажорная версия реализации новой версии протокола интернета HTTP2 Protocol::HTTP2. Выпуск приурочен к выходу официальной спецификации протокола RFC 7540.
XML::WBXML 0.09
Обновился модуль XML::WBXML, предназначенный для конвертации между форматами XML и WBXML. Модуль поменял майнтейнера, теперь это Михаил Иванов, который написал интересный пост о том, как это произошло.
Data::Printer 0.36
Вышел новый релиз модуля Data::Printer, который позволяет легко и быстро получить красивый вывод с подсветкой на терминал различных переменных, объектов и других структур данных. В новой версии появилась функция np(), которая вместо печати вывода на экран возвращает строку. В свою очередь, p() теперь всегда печатает свой вывод и возвращает параметр, который был передан функции. Это несовместимое изменение, будьте внимательны при обновлении.
← Полный список изменений в Perl 5.22.0 | Содержание | Интервью с Рене Беккером →
