Reviews by Benjamin Smith


Async (0.10) **

I'll give a slightly more constructive review:

It's been made obsolete by the 'forks' module and 'threads'. Both offer a similar interface to Async with Async->new becoming async{} and ->ready() becoming ->join().

JE (0.008) ***

Yet another badly named module that even admits it at the top of its documentation: '"JE" is short for "JavaScript::Engine"'.

That aside, it's an interesting idea, with a good interface, and is a good quality module.

base-ball (v0.0.1) *

Another unnecessarily silly module: The name lacks any clue about what the module actually does, saying "ball" rather than "all". It's also rather too magic to actually use, since adding any module suddenly means your code is inheriting from it. Module::Pluggable is much more practical.

Path-Class (0.15) *****

An excellent module that's much easier to use than File::Spec for manipulating paths. For example, you can do things like C<< $file->relative($src)->absolute($htdocs)->relative >> which aren't as trivial with other modules.

It's also well documented, and provides some extra handy methods such as recurse and mkpath.

Memoize (1.01) *****

An excellent and very useful module. It saves a lot of hassle to just call a function to add memoisation than to add one's own implementation to each function that needs it.

Template-Simple (0.01) ***

Yet another template module? Despite that it's well documented, is easy to use, and reasonably fast.

Module-Inspector (0.01) *

The module is lacking any documentation whatsoever of how to actually use it.

PadWalker (1.0) ****

Throughly useful for a variety of introspection tasks with closures.
The interface isn't wonderful though.

Util-SelfDestruct (1.20) **

Interesting idea, which may have some proper use in one off scripting jobs coupled with some kind of remote execution system.

But the toplevel Util:: namespace seems wrong for this. IMO the author needs to seriously consider Acme::.

Net-MySQL (0.08) *

"Since this module's final goal is to completely replace DBD::mysql, API is made similar to that of DBI."

This is totally wrong. If it is to replace a database driver (with a pure-perl version, which certainly has its uses) it should itself be a database driver! There is no need to replicate DBI's interface.

Of course, it doesn't actually replicate DBI's interface. It misses the ever useful placeholders for example. (3.15) **

The module's ubiquity makes it a very useful tool, but it's let down by it's many modes of operation for backwards compatibility, and poor documentation of the other modules in the distribution.

Search-Xapian ( ***

A very good indexing system, but let down by poor documentation, and an author who is unresponsive to bug reports.

Term-ANSIScreen (1.42) **

The interface of the module is slightly frustrating, having both functions and an object interface, when the former is quite sufficient, with any compatibility put in another module out of the way.

While trying to claim that it allows you to control an "ANSI" terminal (the standard appears to have ended up with ECMA) it seems to lack support for most control sequences.

Acme-Current-Forever (1.00) *****

Amazingly easy to use for a date/time handling module!