Create a personal bundle of your favorite modules.
It never fails. I'm working on a new computer, a friend's computer, or a work computer and I've installed my favorite modules and written some code.
use My::Favorite::Module; My::Favorite::Module->washes_the_dishes(â);
Then I run the program.
Can't locate My/Favorite/Module.pm in @INC (@INC contains ...
I did it again. I forgot to install the one module I really needed. Hopefully it's the last one. Of course, even if you never forget to install your favorites, it's still a pain to laboriously install a bunch of modules every time you have a new Perl installation.
That's where personal bundles come in.
A personal bundle is very easy to make. Just create a normal CPAN distribution. You don't even need to write tests for it: the modules you list will (hopefully) test themselves.
Instead, create an empty package with the modules you want listed in your POD contents section [Hack #32]. For example, suppose that you're a testing fanatic. You want to install your favorite testing modules, so you decide to call your bundle Bundle::Personal::
Mine
(where Mine is your PAUSE ID).
package Bundle::Personal::Mine; $VERSION = '0.42'; 1; __END__ =head1 NAME Bundle::Personal::Mine - My favorite testing modules =head1 SYNOPSIS perl -MCPAN -e 'install Bundle::Personal::Mine' =head1 CONTENTS Test::Class Test::Differences Test::Exception Test::MockModule Test::Pod Test::Pod::Coverage Test::WWW::Mechanize =head1 DESCRIPTION My favorite modules. ... rest of POD, if any ...
Then just package up your tarball and stow it in a safe place (or even upload it to the CPAN).
From then on, to install all of your favorite modules, just type cpanp i Bundle::Personal::Mine
for CPANPLUS, perl -MCPAN -e 'install Bundle::Personal::Mine'
for CPAN
, or whatever your favorite module installation incantation is.
When preparing a personal bundle, be selective about what you include. If you include a module that routinely fails tests, the entire bundle installation might fail. If that happens, try to install the errant module manually and return to installing the bundle. It's generally a bad idea to force the installation of a module with failing tests until you understand why they fail. This is especially true when working on a new machine.
Other uses for such bundles include software development kits, corporate bundles, and application support modules. The CPAN already has bundles for Bundle::Test
, Bundle::BioPerl
, Bundle::MiniVend
, and so on. Go to your favorite CPAN mirror and search for bundles. The bundle you want to create may already
exist.
Tip
Should you really upload your own bundle to the CPAN? It depends. If you maintain a redistributable application that requires several CPAN modules, creating an installation bundle can help users install it and packagers package it. If you're the only person using your bundle, it probably won't do anyone else much good.
Get Perl Hacks now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.