Reviews by Dave Rolsky



Devel-PerlySense (0.01_16) ****

PerlySense is very cool. If you're an emacs user you'll need to manually move the perly-sense.el file it provides into the appropriate location, but that's a minor nit in a development release. The underlying idea is excellent, and the seemless interaction with my editor of choice makes the whole package very fun to play with.

Math (0.538) *

I agree with all the previous raters. In addition, the author is releasing several versions a day, without any changes file, making the CPAN pollution even more egregious, in my view.

SVN-Notify (2.48) *****

Works exactly as advertised. The included svnnotify script just works when added to an SVN repo's commit hooks.

Module-Build (0.2610) ****

I've used this module to build various custom logic into the build/install process for various Perl modules and applications, and it's been invaluable for that. The docs are fairly complete, but a bit overwhelming. Fortunately, they're getting cleaned up and re-organized for the next (0.27+) releases.

If you've been "subclassing" ExtUtils::MakeMaker run, do not walk, and check out Module::Build. If you have a Perl-based app that you need to write an installer for, then this is the module for you.

OTOH, if you just need to have an installer for a plain vanilla Perl module, then Module::Build is no easier (or harder) than using ExtUtils::MakeMaker.

Util (0.07) *

Wow, a top-level package named "Util". That's really handy. And it includes such related functions as "infinity()", "rtrim()", and "appendfile()".

Please remove this from CPAN.

persist (0.5.0) **

It more or less needlessly duplicates much of Class::DBI, but with a poorer, much more confusing interface. The schema management bits are like a very poor man's Alzabo (yes, I'm biased).

The distro is just called "persist", which makes it look like a pragma, though at least the author called the module itself Persist, though taking a top-level namespace is not such a great thing.

If it ever does a lot of schema management, the author will have managed to replicate Alzabo, except with a different API. Of course, the author was (and still is) free to write "Alzabo::SomeOtherAPI" in the first place!

Finally, it's not using the same license of Perl, but rather some more-or-less-BSDish license of the author's own creation. Good, we can never have too many licenses floating around.

Acme-JAPH (0.03) *****

It's an Acme module, people!

It does what it is documented to do, and it's no worse than many of the other ridiculous Acme modules.

And why are we rating Acme modules anyway? Are we trying to help people browsing CPAN pick the best Acme module for them? WTF?!

Path-Class (0.03) *****

This is a very cool module. File::Spec purports to provide filesystem-agnostic path/filename manipulations, but using it properly is hard, and the interface is just bad, filled with awkward, way too UNIX-y method names (catdir, catfile).

Path::Class hides the hard to use parts of File::Spec and provides a nice, simple, _clean_ interface on top of it.

Date-Calc (5.3) ***

This module is good at what it does, but it might not do everything you need (timezones, for example). The interface is rather awkward, as multiple operations require you to sling around many parameters, because the functions return list of values (like year, month, day) which you have to track.

The docs for the main portion of the code, Date::Calc, are complete and relatively easy to read, but the docs for Date::Calc::Object are somewhat confusing.

Pod-Simple (0.97) ****

The docs could use some work, but it's still in development, so I'd expect them to improve in future releases. Nonetheless, this is still the best set of POD parsing modules available, and I've found them quite handy for many tasks.