chromatic mentioned something in the preface to his book Modern Perl that I had been looking for but hadn’t yet found. He then went on to mention a couple of other things which were just plain neat. I knew about one of them, but not the second and thought they were both great ideas and thought I’d try and get them wider attention.
I’d been looking for a way to manage having multiple Perl installations on my system. Ruby has something called the Ruby Version Manager which makes this really straightforward, and I figured there had to be something like it for Perl. I hadn’t looked much, but what I had didn’t get me anywhere. The Preface for Modern Perl mentioned it in passing. The tool is called App::perlbrew and allows you to easily switch from one Perl to another and can help manage those Perl installations.
Combine that with local::lib so you can have your own installed modules, and you’ve almost got rvm. The ability to have named module sets and turn them on and off at will is missing. If it’s important, the two could be combined into a complete Perl environment management tool… but I don’t know if it is important. A per-project Perl with modules installed might be enough.
One useful tool mentioned in Modern Perl is the Perl module Modern::Perl, also by chromatic. It’s a helper to take some of the boilerplate that a modern Perl program should put in every program and module and condense it to one easy to read, clearer line of code. It isn’t a big deal, but is nice. (CPAN, as usual was full of similar things, but I didn’t think they were as well thought.) I had heard of Modern::Perl because I’d been following chromatic’s blog.
The module I thought was really neat but hadn’t heard of was Task::Kensho. This is part of the work of a group of folks who are trying to build an “Enlightened Perl” and is mostly references to other modules. The module list includes some big stuff I’d run into – Moose, DBIx::Class – but also included a lot of just generally useful stuff that I’m sure will be handy. There was also some things that were not critical but neat, like Smart::Comments. There’s a bunch of stuff on that list I’ve been Meaning To Look At but haven’t gotten around to yet, like Devel::REPL.