What's New on CPAN - March 2015
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure. Spring is upon us, and has brought us not only warmer weather, but a bumper cache of new Perl modules. Enjoy!
Module of the month
The Rapi::FS distribution does many things well: it performs a useful purpose, it’s convenient to install and use, has excellent documentation including its own stylish webpage with a slick demo. Check it out!
APIs & Apps
- App::GitWorkspaceScanner looks useful, it detects and reports on Git repositories with local changes.
- Looking for a command line JSON converter? Check out json-to
- App::PureProxy is a simple proxy server written in Perl
- Retrieve US Census Bureau geo data using Geo::USCensus::Geocoding
- App::VirtPerl lets you use multiple versions of Perl modules with a single Perl install
- Execute shell commands triggered by watched files with App::watchdo
- Interact with Liquid Web’s API using LiquidWeb::Storm::CLI
- Net::OpenStack::Swift provides Perl Bindings for the OpenStack Object Storage API, (aka Swift)
- Net::Presto provides an API for Presto, the distributed SQL query engine
- WebService::Speechmatics implements an API for Speechmatics, an audio-to-text translator
Config & DevOps
- Read multiline INI files with Config::INI::Reader::Multiline
- File::Hotfolder monitors a directory for file changes and executes a sub
- Useful for release docs, Git::Mailmap is a Perl implementation of Git mailmap and can read/write mailmap files
- HADaemon::Control makes it easy to create high availability, fault tolerant daemons.
- Monitor Apache Tomcat instances with Net::Tomcat
- Log::LTSV::Instance is an LTSV logger
- DBIx::Class::Report looks interesting - it returns DBIx::Class resultsets from raw SQL strings
- Bit::Fast aims to provide superfast bit manipulation routines
- Like a production line, DBIx::Class::Factory can efficiently create data
- DBIx::RetryConnect will auto-retry to connect to a database upon failure, with a growing delay between each re-connection attempt.
- Convert ICal files into RDF graphs with Data::ICal::RDF
- Imager::Barcode128 creates GS1 compliant barcodes!
- Hash::Storage is a persistent hash storage framework, which already has a DBI implementation.
- List::Prefixed implements a compressed list of string prefixes, looks useful
- Merge sereal files with Sereal::Merger
Development and Version Control
- Generate Perl version badges for your docs with Badge::Depot::Plugin::Perl. Yay!
- Devel::GoFaster makes Perl go faster
- Code::TidyAll::Plugin::PgFormatter will tidy Postgres SQL code
- Create a “human readable, computer executable” resumé with Acme::Resume, which generates a Perl package for each resumé
- Test::Lives checks that code doesn’t throw an exception
- Operate a virtual terminal with Term::VTerm
- Attach::Stuff makes it easier to design board component architectures
- Send telnet-enabling packets to Netgear routers using Net::Telnet::Netgear
Science and International
- Crypt::Ed25519 implements the Ed25519 public key signing/verification system
- Use the Tiny Implementation Algorithm with Crypt::TEA_PP
- Math::Calc::Parser can parse and evaluate mathematical expressions
- Math::InterpolationCompiler compiles mathematical interpolations into coderefs, for fast querying
- RestrictionDigest is: “a simulation tool for reducing the genome with one DNA endonuclease or a pair DNA endonucleases”
- Add Google Plus authentication to your Catalyst app with Catalyst::Plugin::Authentication::Credential::GooglePlus
- Send thousands of emails with Email::MIME::Kit::Bulk - a parallel-processing bulk emailer!
- Easy inspect Chrome’s HTTP Strict Transport Security preload list with HSTS::Preloaded
- MIME::Lite::Generator is a memory efficient implementation of MIME::Lite, for generating emails
- Use futures with Mojolicious using MojoX::IOLoop::Future
- Plack::Util::Load loads PSGI-compatible web applications from a file, URL or class
This article was originally posted on PerlTricks.com.
Something wrong with this article? Help us out by opening an issue or pull request on GitHub