Reviews by Dan Harbin


Module-Build (0.32) ****

If you read some of the reviews from years past, it seems like many of these issues are solved.

"install_base" is now supported by EU::MM and Module::Build, which solved that complaint. Figuring out every gyration to get PREFIX and INSTALL*DIR just right is now obsolete, thankfully.

Module::Build::Compat can also spit out a Makefile.PL for backwards compatibility.

IO-Zlib (1.09) ***

Don't expect this module to do everything you want it to.

This module is not a literal subclass of IO::Handle so don't expect to do any type-checking like $fh->isa('IO::Handle').

Also, -r doesn't work on a IO::Zlib object like it does on an IO::Handle object.

Otherwise, it works pretty well.

Rose-DB-Object (0.758) *****

Before I knew about the sundry Object-Relational Mapping (ORM) packages on CPAN, I wrote my own simple module that does a very small subset of what RDBO is capable of.

After some searching, I discovered RDBO and DBIx::Class, and I preferred RDBO because its interface was the most intuitive to me (or really, it most closely matched the one I wrote). After using it for a while, I have to say that RDBO exceeded my expectations. It saved me loads of development time because the documentation was crystal-clear (especially the tutorial), and the interface was clean and intuitive.

I agree with the previous reviewer that RDBO doesn't have the mindshare of some of the other ORMs, but I hope that changes in the future. I would feel more comfortable with more users to test the code, and I would like to see it integrated into some other web-app suites (CGI::Application, etc).

I'm looking forward to more Rose::* packages in the future.

Perl-Critic (0.21) *****

Perl::Critic analyzes perl code and offers suggestions how best to conform to your/PBP's policies. It simply worked as advertised, and it was easy enough to add my own policies.

The only quibbles I have with it are the numerous dependencies required to install, and the fact that you also have to read up on PPI documentation to write policies.

This is a near-perfect module.

Spreadsheet-WriteExcelXML (0.10) *****

This module enabled me to embed an interactive Excel spreadsheet into a web page with Microsoft Internet Explorer and Microsoft Office Web Components., in the examples directory, is an excellent, easy to understand example of this.

Class-InsideOut (1.02) *****

Of all the inside-out class modules, I consider this one to be the best. It provides everything an inside-out class needs (accessors, pseudo-encapsulation, thread-safety), and nothing you don't want (cumulative methods, perl6-ish syntax, [string|num|*]ification). Using other modules like Class::Std is like hammering a nail with a chainsaw. Sure, I can cut down trees with it, but all I want to do is hammer the nail!

XML-LibXSLT (1.57) *****

The fastest and most compliant XSLT library I could find for Perl.

Algorithm-Diff (1.1902) *****

Excellent native-perl implementation of the diff algorithm. It has a bit of a learning curve, but it works exactly as advertised in the POD.