Reviews by Evan Haas

cpanratings
 

RSS

Try-Tiny (0.09) ***

Warning: if you are considering this module now that the "Error" module has been decommissioned, of if you are used to try/catch in the C++/Java/.NET worlds, the semantics here are quite different. In most other realms, all exceptions propagate out of a try block, unless you explicitly catch them. Here, the reverse is true - everything is swallowed by the try block, unless you explicitly propagate it in the catch block as follows:

try { # do stuff }
catch { die $_; }
finally { # cleanup };

Why take a known syntax and give it different semantics? That can only lead to confusion. It would be better to use different keywords for this, methinks.

Evan Haas - 2011-05-23T13:04:52 (permalink)

7 out of 12 found this review helpful. Was this review helpful to you?  Yes No

Devel-StackTrace (1.27) *****

We had a need for some of our shared libraries to behave differently if the caller was mod_perl (vs. a batch job). This module allowed us to solve the problem neatly.

Evan Haas - 2011-05-23T11:53:20 (permalink)

2 out of 2 found this review helpful. Was this review helpful to you?  Yes No

XML-SemanticDiff (1.0000) *****

Does what it says, another great tool for the toolbox.

Evan Haas - 2011-05-23T11:49:05 (permalink)

1 out of 1 found this review helpful. Was this review helpful to you?  Yes No

XML-LibXML (1.70) *****

As others have mentioned, it has a bit of a learning curve, but it's worth it. If you start with another XML parser, you'll just outgrow it.

Supports both tree- and stream-based parsing, so you can make the performance vs. convenience decision on a case-by-case basis.

Evan Haas - 2011-05-23T11:47:37 (permalink)

2 out of 2 found this review helpful. Was this review helpful to you?  Yes No

Test-Deep (0.108) *****

This module is delicious. We use it heavily in our test scripts, for comparing expected vs. actual output.

Evan Haas - 2011-05-23T11:43:28 (permalink)

2 out of 2 found this review helpful. Was this review helpful to you?  Yes No

Pod-Simple (3.16) *****

Echoing adam's review, we use only the command-line interface and it works great. For CPAN look/feel, just overwrite the provided stylesheet with CPAN's after generation:

wget -O /my/pod/dir/_blkbluw.css search.cpan.org/s/style.css

Evan Haas - 2011-05-23T11:39:55 (permalink)

3 out of 3 found this review helpful. Was this review helpful to you?  Yes No

Test-Class (0.36) *****

As a converted Java developer, this module is a very nice creature comfort.

Evan Haas - 2011-05-23T11:33:46 (permalink)

3 out of 3 found this review helpful. Was this review helpful to you?  Yes No

Test-Most (0.23) *****

Does what it says, very useful.

Evan Haas - 2011-05-23T11:29:52 (permalink)

0 out of 3 found this review helpful. Was this review helpful to you?  Yes No

Test-Simple (0.96) *****

If you're looking to start writing automated tests, look no further, this is the de facto standard and deservedly so.

Installing this module via Test::Most will get you other goodies that you'll probably want soon, if not immediately.

If you prefer xUnit/OO style tests, you can use Test::Class on top of Test::More.

Evan Haas - 2011-05-23T11:25:52 (permalink)

1 out of 1 found this review helpful. Was this review helpful to you?  Yes No

perl-ldap (0.37) *****

We have used this module to extract info from Active Directory for several years now, never had any problems.

Evan Haas - 2011-05-23T11:12:13 (permalink)

1 out of 1 found this review helpful. Was this review helpful to you?  Yes No

Class-Singleton (1.4) ***

Love the idea. It seems, though, that all but the most trivial of classes would have to override _new_instance (if only to call their own constructor). At that point, ease-of-use begins to slip and I may as well manage the singleton member myself. I suggest having Class::Singleton call the constructor directly ($class->new) when creating a new instance.

Evan Haas - 2011-03-25T06:59:54 (permalink)

2 out of 2 found this review helpful. Was this review helpful to you?  Yes No

Params-Validate (0.94) *****

1) Rich features. It handles common validations out-of-the-box, and with the ability to specify a regex/callback it's easily extensible.

2) The error messages generated when validation fails are very user-friendly.

3) The documentation is also stellar; every question I've had has been answered there.

Use it without hesitation.

Evan Haas - 2010-11-24T15:44:37 (permalink)

4 out of 4 found this review helpful. Was this review helpful to you?  Yes No