What's new on CPAN - May 2014
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure.
Alien
- Install a local ImageMagic with Alien::ImageMagick. No more hacks!
- Alien::SamTools will install the SamTools C libs and headers
APIs
- Activiti::Rest::Client provides an API for Activit, the open source workflow and BPM platform
- Use the decNumber C library with Math::decNumber
- Sensu::API::Client is an API client for Sensu, an open source monitoring framework
- Sentry is an exceptions tracking service and Sentry::Raven provides an API for it
- WWW::Liquidweb::Lite provides an API for Liquidweb hosting
- Access the OANDA exchange rates API with WebService::OANDA::ExchangeRates
Apps
- App::CSE implements the Code Search Engine as an app
- Run multiple apps in command with App::Munner
- App::Table2YAML will convert tables to YAML
- App::revealup is an awesome app that converts markdown documents into an HTTP served slideshow with revealup.js - check it out.
- Perl’s compile-only mode doesn’t always load modules in the correct order or location. App::perlminlint aims to fix that (current version 0.1 needs a minor patch)
Bots
Capulcu::Bot is a highly customizable and modular IRC bot
Several new Bot::Cobalt plugins for:
- Bitly
- Figlet
- Urban Dictionary
- RandomQuote
- SeenURL (URLs already linked)
Data
- Debug Perl data structures with Data::Debug
- Data::Validate::Perl will validate Perl data structures using a Parse::Yapp grammar
- Data::EDI::X12 will process EDI x12 documents
- Safely slurp files again with File::Slurp::Sane
- Render SVG as a Cairo surface with Image::CairoSVG
- MARC::Parser::RAW parses MARC records in a fault-tolerant way
- Easily generate Marpa parsers using MarpaX::Simple
- MemcacheDBI implements a memcache queue for DBI commands
- Given an input, SQL::Type::Guess attempts to derive the correct SQL column datatype
- Parse TOML with TOML::Parser
Development & System Administration
Command::Interactive provides a command line interface for process invocation, e.g. capture a password and launch a process with the captured password.
Curses! New widgets Curses::UI::Number and Curses::UI::Time
New Dist::Zilla plugins:
- Prevent an accidental release with BlockRelease
- Get a count of RT and Github issues with CheckIssues
- ContributorsFromPod updates your META file with contributors from your module’s POD
- Dynamically inject Makefile pre-reqs during installation with DynamicPrereqs (useful for platform specific reqs).
- ModuleBuildTiny::Fallback creates a Build.PL file using Module::Build::Tiny if it’s available
Zilla::Dist creates Perl distributions from an acmeist (language agnostic) source structure
Log::Minimal::Object provides an OO interface for Log::Minimal
Add roles to Moo objects at runtime with MooX::Traits
MooseX::Enumeration adds enumerated types for Moose classes, woohoo!
Create configurable stack traces with Stacktrace::Configurable
Maths, Science & Language
- Easily translate compass points with Compass::Points
- Date::QuarterOfYear parses dates and returns the year quarter, without using the heavy DateTime module
- Parse words into known and unknown parts with Lingua::Word::Parser
- Manipulate text case with String::CamelSnakeKebab (ported from Clojure)
- Draw braille characters at the terminal with Term::Drawille
Security
- Crypt::Polybius implements the Polybius Square cipher
- Passwords is a simple API for hashing and validating passwords
Web
Catalyst::Model::Net::Stripe provides a Catalyst model using Net::Stripe (the payments service)
Implement a stronger Dancer session id with Dancer::Plugin::SecureSessionID
HTTP::Request::AsCurl converts an HTTP::Request object into a curl command
New Mojolicious toys!:
- Support offline web applications with AppCacheManifest
- Clear an upsteam cache with CachePurge
- RenderSteps helps you create async controllers with minimal code
- Easily manage thumbnails using Thumbnail
- TimeAgo elegantly convert dates to human-readable dates
Plack::App::HostMap can dispatch requests to applications based on host names, in constant time
This article was originally posted on PerlTricks.com.
Tags
David Farrell
David is the editor of Perl.com. An organizer of the New York Perl Meetup, he works for ZipRecruiter as a software developer, and sometimes tweets about Perl and Open Source.
Browse their articles
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub