What's new on CPAN - April 2016
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure. Several new build and config related modules were released last month, off the back of the Perl QA Hackathon. Enjoy!
APIs & Apps
- Use the Pinterest API with WebService::Pinterest
- Use the Google Maps V3 API with HTML::GoogleMaps::V3
- WebService::UINames generates realistic names using uinames.com
- Backblaze::B2 is an interface to the B2 cloud storage service
- Fl has bindings for the Fast Light Toolkit - a lightweight x11 GUI library
- Use Perl for license plate recognition(!) with Image::OpenALPR
- TeamCity::Message generates TeamCity build messages
Config & Devops
- Cool idea, this CPAN.pm plugin installs external dependencies:CPAN::Plugin::Sysdeps
- Edit and validate Systemd configuration files with Config::Model::Systemd
- Config::Processor processes cascading configuration files
- Get some extra typemaps for STL types with ExtUtils::Typemaps::STL::Extra
- Include a systemd priority column in your Log::Any output with Log::Any::Adapter::Journal
Data
- Archive::Merged can virtually merge two archives
- Misnamed database columns? No problem, DBIx::Class::ResultSet::AccessorsEverywhere allows declaration of accessor names and use in queries
- DBIx::Class::Schema::Loader::Dynamic looks like a faster, “dynamicker” DBIx::Class schema loader. Always welcome!
- Get file slurping, locking, and finding using File::Valet which wraps some of my favorite modules
- PlantUML class diagram syntax parser - PlantUML::ClassDiagram::Parse
- Test::JSON::More provides convenience functions for testing JSON
- Parse binary tzfiles using Time::Tzfile (disclosure - I am the module author)
Development & Version Control
- Dist::Zilla::Plugin::Beam::Connector provides a new way to activate dzil plugins
- Filter::signatures - use Experimental::Signatures in versions of Perl predating their release!
- Easily setup an OAuth2 server with Net::OAuth2::AuthorizationServer
- Rewrite your code to use Ref::Util with Ref::Util::Rewriter. I had no idea
ref
has issues - System::Info gets basic system information at runtime
- Test that your PAUSE permissions are consistent in your distribution using Test::PAUSE::ConsistentPermissions
- Test::RunValgrind tests that an external program is valgrind-clean
Language & International
- Find the time at which a day starts - it’s not always midnight! DateTimeX::Start
- Lido::XML an XML parser and writer for LIDO, the schema for contributing to Cultural Heritage Repositories
- Get quick comparisons, plagiarism checks and common parts detection with Text::Distill
Other
- LeftPad - Perl implementation of LeftPad, the notorious Node.js library
- Music::VoiceGen does musical voice generation!
Science & Mathematics
- Crypt::OpenBSD::Blowfish is a Perl extension for the OpenBSD Blowfish cipher implementation
- Use the OpenSSH Chacha20 and Poly1305 crypto functions with Crypt::OpenSSH::ChachaPoly
- Atom selections in molecules using HackaMol::Roles::SelectionRole
Web
- Get a useragent over Tor, and rotate servers at will with LWP::UserAgent::Tor
- Get some Dancer2-specific panels on top of Plack::Debugger using Dancer2::Debugger
- Mojo::RoleTiny - a simple role system for Mojo; curious why Role::Tiny wouldn’t suffice, must be a reason
- Display a stack trace when your Plack app dies with Plack::Middleware::ExtractedStackTrace
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