What's new on CPAN - August 2015
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure. Enjoy!
Module of the month
Crypt::HSXKPasswd is a new module for generating secure, memorable passwords inspired by XKCD. The module is highly configurable, supporting different word dictionaries, generation and padding rules.
Module author Bart Busschots has provided rich documentation which includes the theory behind secure passwords and the methods supported by Crypt::HSXKPasswd. Start using securer passwords today!
APIs & Apps
- Amazon::CloudFront::Thin aims to be a lightweight, request-level Amazon CloudFront
- A non-blocking API for Amazon’s SQS: Amazon::SQS::Simple::AnyEvent
- App::Gre is a grep clone with better file filtering
- Use the latest version of Google’s reCAPTCHA API with Captcha::reCAPTCHA::V2
- Menlo is an early release of the next version of
cpanm
- Net::Google::WebmasterTools is a Perly interface to the Google WebmasterTools Reporting API
Config & Devops
- Log::Emitter is a simple logger based on Mojo::Log
- A Perl mail authentication milter: Mail::Milter::Authentication
- Net::NSCAng::Client can submit host and service monitoring Nagios data
- Find out your public IP address with OpenDNS::MyIP
- Svsh is a process supervision shell for daemontools, perp, s6 and runit
Data
- Apache::Hadoop::Config is a Perl extension for Hadoop node configuration
- Get flexible parameter binding and record fetching with DBIx::FlexibleBinding
- Generate EPUB documents from Pod using EBook::EPUB::Lite
- Validate data against a JSON schema with JSON::Validator
- Net::SMTP::Verify validates SMTP recipient addresses
- Truncate your large strings using String::Snip
- Swagger2::Markdown can convert a Swagger2 spec to various markdown formats
- XMLRPC::Fast is a high performance XML-RPC encoder/decoder
Development & Version Control
- Backbone::Events is a port of the Backbone.js event API
- Detect the caller level of compiling code with Devel::CompileLevel
- MooX::TypeTiny provides optimized type checks for Moo with Type::Tiny
- PPIx::Refactor creates hooks for refactoring Perl, based on PPI
- Role::EventEmitter Event emitter role for Moo(se) classes
- Test::Deep::Filter filter matched elements before doing deep data comparisons
- Specify the time for unit tests Test::Time::At - looks great for testing tricky date times
- Tk::FormUI is a Moo-based object oriented interface for creating Tk forms
Hardware
- AppleII::LibA2 is an Apple II emulator
- Device::PiFace provides a Perly interface to manage PiFace boards
- Device::ProXR is a Moo-based object oriented interface for creating controllers using the National Control Devices ProXR command set
Language & International
- Hyphenate French words with Lingua::FR::Hyphen
- Lingua::NO::Syllable can count the number of syllables in Norwegian words
- Locale::India can be used for state and union territory identification in India
Other
- App::Randf is a random filter for STDIN
- Acme::this prints the Zen of Perl
- Looking for secure, memorable password generator inspired XKCD? You might like Crypt::HSXKPasswd
- Get PHP’s
parse_str
function using PHP::ParseStr - Disable
state
keyword for testing with Test::NoState
Science & Mathematics
- Crypt::ECDH_ES aims to be a fast and small hybrid crypto system
- Get dependency resolution with Dependency::Resolver
- Math::Groups finds “automorphisms of groups and isomorphisms between groups”
- Get some useful Math functions with Math::Utils
- PDLA the Perl Data Language - seems familiar …
- Path::Hilbert::XS is a fast implementation of a Hilbert Path algorithm
Web
- Catalyst::TraitFor::Request::QueryFromJSONY supports JSONY query parameters
- Get even faster HTTP headers using HTTP::Headers::Fast::XS
- Build swat tests from Mojo routes with Mojolicious::Command::swat
This article was originally posted on PerlTricks.com.
Tags
David Farrell
David is a professional programmer who regularly tweets and blogs about code and the art of programming.
Browse their articles
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub