What's new on CPAN - June 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

Class::Storage is a module for serializing blessed references (objects). Once serialized, an object can be transmitted via JSON, XML, YAML or saved in a data store. Serializing objects can also make IPC easier: coroutines, threads and other processes can pass text but blessed references are often an issue.

Module author Peter Valdemar Mørch has pulled together excellent documentation. A welcome addition to CPAN, check out the acknowledgements section for some interesting background on the module. For an alternative approach, you might be interested in Object::Serializer. For non-readable serializers, checkout Storable and the newer and faster Sereal.

Important - when working with object serializers like Class::Storage, only deserialize trusted data, as malicious code can be injected into the data, and when the data is deserialized, the code will be executed automatically. See for example this bug report (Thanks to Reini Urban for the reminder).

APIs & Apps

Config & DevOps

  • Config::App implements “cascading configurations” - looks like a convenient way to have context-specific configurations without resorting to Perl code
  • Quickly rind files on your Mac using Mac::FindFile
  • Perl::Critic::Freenode is a compilation of policies recommended by the folks on the #perl channel on freenode IRC
  • Include ditaa diagrams in pod with Pod::Weaver::Plugin::Ditaa

Data

Development and Version Control

  • When stuck in Git merge conflict hell, sometimes it’s easier to say “I’m right”. App::Git::Workflow::Command::Take let’s you tell Git to merge your changes. You win!
  • If you have a load of Git repos that you’d like to execute a command against, you might like App::Multigit
  • Assert::Conditional from Tom Christiansen let’s you conditionally compile assertions into your Perl programs, ala C’s assert.h. Wow
  • Daemonize anything with JIP::Daemon

Text & Language

Science and Mathematics

  • Algorithm::BloomFilter is a simple, superfast bloom filter implementation written in XS
  • Not a new module, but it is new to CPAN, App::Chart the visual charting library is useful
  • BioX::Workflow is an “opinionated template based workflow writer”, hailing from the Bioinformatics World, but not just for BioX
  • The Longest Common Subsequence algorithm is used for diffing text, among other uses. LCS::XS is a supercharged version, written in XS

Web

Updated to include other example serializer modules and deserialization warning - 2015-07-09

Tags

David Farrell

David is the founder and editor of PerlTricks.com. An organizer of the New York Perl Meetup, he works as a technology consultant in New York City.

Browse their articles