What's new on CPAN - February 2015
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure. February’s uploads were a goldmine of new toys. Enjoy!
Module of the month
File::Serialize will read from and write to from yaml, json and toml files, seamlessly converting from native Perl data structures into the required format. It just does the right thing, leaving the developer to focus on their code.
Module author Yanick Champoux also wrote an article about it. With so many great new CPAN uploads, it’s not easy choosing the module of the month. What I like about File::Serialize is that it solves a common problem conveniently, and I know I’ll use it in my code. Check it out!
APIs & Apps
Wow. Finance::Nadex is a full featured API for the North American Derivatives Exchange. Make sure you do your unit testing before selling options on Anacott Steel!
Automatically spin up surveys with Net::Surveymonkey
Net::Google::SafeBrowsing3 provides an interface for the latest version of Google’s safe browsing API
This is interesting: WebService::Prismatic::InterestGraph
Several Amazon AWS goodies:
- AWS::IP provides Amazon AWS ip ranges in a searchable, cache-able way (disclosure, I am the module author)
- Verify SNS messages with AWS::SNS::Verify
- Amazon::S3::Thin is a lightweight, transparent interface for S3
Config & DevOps
- Easily parse callgrind output in Perl with Callgrind::Parser
- Distribution::Metadata assembles distribution metadata
- Chef::Knife::Cmd is a convenience wrapper for the Chef knife command
- File::BOM::Utils lets you manipulate byte order marks in files
- Panda::Time purports to be a super fast time module, looks good.. See also Panda::Date
- Handle JSON web requests more conveniently with LWP::JSON::Tiny
Development and Version Control
- Call::Haskell provides a foreign function interface for the functional programming language. See also Functional::Types which implements a Haskell-like type system in Perl
- Git::Crypt will encrypt and decrypt files for storing sensitive data in repos. Cleverly the encryption is done line-by-line to reduce version control noise
- GitHub::MergeVelocity produces a neat report on GitHub repos showing how quickly they merge (and close) pull requests. Use it if you’re in doubt of whether to contribute to a repo!
- Device::Hypnocube lets you control a hypnocube with Perl code - flashing lights!
Science and International
- Algorithm::BitVector is a port of the popular Python library BitVector, by the original author
- FAST provides Unix-like tools for analyzing bioinformatic sequence records
- LWPx::UserAgent::Cached caches HTTP get requests and is polite enough to let you use your own cache, with sane defaults
- Articulate is a lightweight CMS plugin for Dancer
- Lithium::WebDriver is an awesome, full featured library that can create and control webdriver instances in both Selenium and Phantomjs sessions. Module seems more up to date on GitHub. Also see Test::Lithium
- Pulp provides syntactic sugar for the Kelp web framework