What's new on CPAN - July 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
There have been many inside-out object implementations, but none like this. Dios is a “Declarative Inside-Out Syntax” object system by Damian Conway. It’s a Perl 6-style object system that supports functions, methods, signatures, public/private/readonly attributes, types and structured exceptions.
Dios comes with comprehensive documentation and a decent test suite. Implemented using Keyword::Declare (another new module from Damian), it even garnered praise from Reini Urban who identified one thing you may miss - no support for roles. Time will tell if they’re added, but for now I can only say “WOW!”.
APIs
- CMS::Drupal provides a Perl interface to Drupal, the CMS
- Marketplace::Ebay make API calls to eBay (with XSD validation)
- Protocol::Matrix helper functions for the Matrix protocol
- Al Newkirk released APIs for Twitter and Facebook
- WebService::PayPal::PaymentsAdvanced is a simple wrapper around the PayPal Payments Advanced web service
- Shorten links using OneShortLink with WWW::Shorten::OneShortLink
- Interface with Amazon Marketplace Web Services using Amazon::MWS
- Analyze the configuration of any SSL web server on the using ssllabs.com with WebService::SSLLabs
Apps
- App::podispell is an interactive Pod spell checker
- Prefix linedata with their arrival timestamp using App::Timestamper
- App::perlsh is a tiny Perl REPL, nice!
- Keep an eye on network port changes with App::Monport
Config & Devops
- NetHack::NAOdash extracts statistics from NetHack xlogfiles
- Two C library installers: Alien::Libbz2 and Alien::TinyCCx
- Run an SNTP Server with Net::SNTP::Server
- File::Dedup can dedupe files across directories
- Run the same command via SSH on many remote servers at the same time using App::SSH::Cluster
Data
- Starch is an implementation-independent persistent state class with interfaces for CHI, DBI and DBIx::Class
- A JSON Merge Patch implementation: JSON::MergePatch
- Asset::Pack packs assets into Perl modules that can be fat-packed
- Interface with the InfluxDB time series database using InfluxDB::LineProtocol and AnyEvent::InfluxDB
- DBD::Crate is a new DBI driver for the Crate database
- A data selection parser and applicator with simple DSL, take a look at Data::Selector
- A Simple Financial Information eXchange (FIX) protocol implementation: FIX::Lite
Development & Version Control
- Wield lexical control of warnings with warnings::lock
- An early release, Meta::Grapher::Moose can produce a GraphViz graph showing meta-information about classes and roles
- Manage Perl’s experimental features more easily using experimentals
- Keyword::Declare let’s you declare new keywords, comprehensively documented. Wow!
- Simple-but-useful Devel::Caller::Util can return the entire caller stack on demand. Useful for printing deep stack traces.
- Declare exception classes in a single file and import them with Throwable::SugarFactory. Very nice!
- Test::Core is a Perl testing bundle
Language & International
- Perl::Tokenizer is a tiny Perl code tokenizer built from regexes. But is it any good …
Science & Mathematics
- A wrapper for the ‘tsort’ (topological sort) command line utility Sort::TSort
- PDLDM::Rank calculates and finds tied ranks of a PDL data matrix
- PDLDM::Common provides a few PDL utilities for data mining
- See the differences of a file as a HTML table with Algorithm::Diff::HTMLTable
Web
- Use Google’s v2 CAPTCHA service in Mojolicious apps with Mojolicious::Plugin::ReCAPTCHAv2
- Mojo::SQLite is a tiny Mojo wrapper for SQLite
- Mojolicious::Plugin::Pingen makes it easy to integrate your Mojo app with the cool Pingen service.
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