RSS | Module Info | Add a review of

0 out of 9 found this review helpful:

Task-BeLike-RJBS (1.001) *

This is quite probably the most pointless distribution on the CPAN.

David Cantrell - 2008-04-10 09:01:22
Was this review helpful to you?  Yes No


(more reviews of Task-BeLike-RJBS)

5 out of 7 found this review helpful:

Acme-Tiny (0.1) *****

An excellent example of Tinyness

David Cantrell - 2008-04-03 10:33:32
Was this review helpful to you?  Yes No


(more reviews of Acme-Tiny)

4 out of 5 found this review helpful:

Test-Mock-LWP (0.04) *

The documentation neglects to explain how to use the module.

David Cantrell - 2007-03-15 09:18:34
Was this review helpful to you?  Yes No


(more reviews of Test-Mock-LWP)

4 out of 9 found this review helpful:

Chest (0.082) *

Unnecesary, and the code is utter shit.

David Cantrell - 2006-07-25 06:20:24
Was this review helpful to you?  Yes No


(more reviews of Chest)

8 out of 8 found this review helpful:

Devel-Trace (0.10) *****

This module does one thing and does it well. It's effectively a tiny wrapper around the little-known DB interface to the debugger which makes using it a trivial one-liner.

It's great. It invariably takes mere seconds for Devel::Trace to show me just where it is that I'm being stupid

David Cantrell - 2006-06-15 07:04:02
Was this review helpful to you?  Yes No


(more reviews of Devel-Trace)

6 out of 6 found this review helpful:

DBM-Deep (0.96) *****

This very useful module makes an excellent replacement for DBM files and for MLDBM. The author responds quickly to suggestions for enhancements and to bug reports - the bug was in the packaging, not in the module.

The source code is also instructive and well worth reading.

David Cantrell - 2005-10-15 16:10:30
Was this review helpful to you?  Yes No


(more reviews of DBM-Deep)

4 out of 5 found this review helpful:

SOAP-Lite (0.60a) **

SOAP::Lite may or may not be a great module. I just can't tell, because it is so poorly documented.

David Cantrell - 2004-09-09 06:15:28
Was this review helpful to you?  Yes No


(more reviews of SOAP-Lite)

1 out of 3 found this review helpful:

POE (0.28) ***

Poe does a very good job. It's a pity that the documentation sucks so hard. Learning how to use POE from the documentation is like trying to learn C from the ANSI standard.

David Cantrell - 2004-01-28 06:20:46
Was this review helpful to you?  Yes No


(more reviews of POE)

1 out of 2 found this review helpful:

CGI-Application (3.1) ***

This module claims to do a job, which it goes on to do competently. It has copious documentation and good examples. While the docs are a little wordy, we can forgive that. So why the low score?

Quite simply, I don't see the point.

CGI::Application makes it no easier to write large multi-form web-based applications as far as I can tell. It's really just a fancy way of writing:

<CODE>
setup app ...
parse cgi params ...
...
and then a gigantic if ... elsif ... elsif ... else
block calling various subroutines depending on the state
of the app, as encoded in a cgi parameter
...
clean up after ourselves
</CODE>

If using CGI::Application, you have to do just as much work as when doing things the simple way, while adding yet another dependency and making things just a little bit harder for whoever it is that has to maintain your code in the future by making them read the docs for yet another module.

David Cantrell - 2004-01-14 03:08:11
Was this review helpful to you?  Yes No


(more reviews of CGI-Application)

3 out of 4 found this review helpful:

Data-Compare (0.02) ***

This is a very useful module indeed and I have no qualms whatsoever about using and recommending it despite the low rating I've given. That's the beauty of CPAN - software can have implementation "issues" but provided it's packaged and documented properly it's nice n' easy to use. But on to those niggling faults.

First, the interface. As is common practice, both a procedural interface and an OO-ish interface are provided. I don't really see *why* people like providing these OO-a-like interfaces (despite me having done this in the past too), because the objects they create don't really represent anything at all. In this case, there is just one method (if we ignore the constructor) which does *exactly* the same job as in the procedural interface. So why bother? It's not as if it's encapsulating any data, inheriting any voodoo, or hiding anything complex.

The procedural interface is nice and simple, but commits what I consider to be one of the cardinal sins - it blindly EXPORTs. This behaviour is fine for modules which are meant to be language extensions, but this isn't. Using EXPORT_OK is fine, but EXPORT should not be used.

And finally, looking at its internals, there are some inconsistencies and stylistic issues I don't like. Sometimes the module accesses data in references to hashes like '$foo->{wibble}' but in other places like '$$foo{wibble}'. And I find 'unless ... elsif' extremely hard to read. Perl has 'unless' because in some situations saying 'unless' is more natural than saying 'if not', but saying 'unless foo else bar' is unnatural and hard to parse.

David Cantrell - 2003-09-01 02:36:13
Was this review helpful to you?  Yes No


(more reviews of Data-Compare)


the camel