Выпуск 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 | Содержание | Интервью с Рене Беккером →