CPAN modules for getting module dependency information

I've written a review of CPAN modules for getting module dependency information. There are 8 modules on CPAN covered, plus I've included a module I've just written, as none of the ones I reviewed did quite what I wanted.

I've taken a slightly different approach to this review: previously I've spent a lot of time learning about each module, trying to fix any bugs I come across etc, so the first version published is fairly polished. As an experiment, this time I've done a much quicker first pass, and essentially published a first draft. I started off with 6 modules, but two more were pointed out by readers.

I wanted one of these modules for another review I'm working on, where I was curious what all the modules were getting pulled in by some of the modules under review.

Any comments on the review, and identifying missing modules, appreciated as ever.

15 Comments

Hi Neil

Well done - again.

And, how come you didn't include Perl::PrereqScanner?

Cheers
Ron

Hi Neil

While I think of it, I have a home-grown script which uses Perl::PrereqScanner and compares it's output with what's listed in Makefile.PL and the optional Build.PL, so as to report what you've forgotten to specify as a pre-req.

Ron

Hi Neil

Also, as a name for your new module, how about Module::PrereqReport? I think this is better than your temp name because it's shorter...

Ron

It's a bit depressing there are all these modules which all do the same thing, and none of them seems to be perfect.

I imagine that 95% of people who read that kind of review would just want to get to "which module is best", so I would put that information at the top of the article.

Holy crap, I forgot about Module::Depends::Tree. The CPAN remembers all!

Because perfection, like beauty, is in the eye of the beholder. Depressing, perhaps. :)

Because perfection, like beauty, is in the eye of the beholder.
I'm not sure what you mean.

You said: "It's a bit depressing there are all these modules which all do the same thing, and none of them seems to be perfect." I'm pointing out that the notion of perfect differs from person to person. Some of those modules are maybe already perfect to some people. How do you define perfect objectively anyway?

Oh, and Ben, just skip the next review I post, that'll really depress you! Twenty modules for making HTTP requests.
Fabulous.

Module::ExtractUse can also report dependencies, though it mainly cares for stuff you use (so it does no mapping of module name to distribution).
It's used by CPANTS, and is, as the whole CPANTS, a bit outdated with regards to more modern ways to use stuff (i.e. Moose et.al.).

Giddily looking forward for the grand shootout.

Leave a comment

About Neil Bowers

user-pic Perl hacker since 1992.