Reviews by Evan Carroll

cpanratings
 

RSS

Time-Local (1.1901) **

I don't like this module simply because it makes some bold assumption and some stupid requirements which makes it ill suited for many use cases -- and there are no easy ways to disable the assumptions or stupid requirements.

It simply requires there be a "day", an argument list that only specifies Hours, Minutes and Seconds will not work with this module. This makes it often a bad choice of glue, as you can not expect it to fit in-between something that outputs a ts struct and DateTime. (Such as POSIX::strftime).

This module assumes undef is 0: a year of undef, will return an epoch that represents the lowest year in the current century. So set a year to undef, and get same amount of ticks as if you set the year to 2000. It is literally adding information where it wasn't previously and it doesn't warn you. I've got a test on rt for this.

The author has stated an intent to deprecate in favor of Time::y2038
21:10 <@autarch> I'd like to deprecate it, but apparently Time::y2038 isn't stable enough yet

And, as for the guy who gave it 5 stars: (Dear rjbs, no offense to you, my goal is simply to discredit your archaic review, and not to discredit you, or attack you personally -- I still <3 you like a father and want to bear your babies -- accept my apology love..)
<@rjbs> Everybody know Time::Local sucks.
<@rjbs> Time::y2038 has the same API, except without the nonsense.

This might still work for simply perl gmtime and localtime -- use it for *nothing* else though.

logs from irc.perl.org/#moose feb 16, 2009

HTML-Template (2.9) *

I really hate this module: use Template Toolkit. SGML based template languages are stupid. Just put take a look at the example from HTML::Template::Expr

<TMPL_IF EXPR="banana_count > 10">

Imagine if that was burried in HTML:
a) it wouldn't stand out
b) when you found it you would have to mentually parse out the tokens in order to realise one of those greater-thans is literal, the other closes the token.

What a nightmarishly bad idea. Look at the overly complex TMPL_* garbage where TT just uses clean syntax.

TT is cleaner, easier to read, and has more functions. Look at WRAPPER in TT -- html::template just can't do that type of stuff.

This is really an archaic template system that is showing age in all kinds of very bad ways.

YAML (0.68) *****

This module is a total success in my eyes. I use it everwhere. Way better than Config::* at configuration, and way better than Dumper, or JSON at simple serializing. If you need a simple method of serialization, that doesn't require Storable speed, use YAML! If you need a simple configuration file: use YAML! If you need to replace Dumper with something that isn't so ugly and doesn't suck, use XXX.pm.

Great module. And, the negative reviewers, come on... If you don't want the more sophisticated nested structures... don't use them. Compare how they look in other markups and you'll come back to the conclusion YAML is the only way to go.

XXX (0.12) *****

I've been using this module for months now and I love it. It has completely replaced Data::Dumper. Niceness. I wish it would install in cpanp without copying url though..

App-Asciio (0.95_01) ***

doesn't build cleanly for me on 5.8 or 5.10. No rt for this project.

my latest errors with 5.10:
Creating new 'Build' script for 'App-Asciio' version '0.95_01'
Unknown 'build_class', defaulting to 'Module::Build'
[MSG] No '/home/ecarroll/.cpanplus/custom-sources' dir, skipping custom sources
[MSG] No '/home/ecarroll/.cpanplus/custom-sources' dir, skipping custom sources
[MSG] No '/home/ecarroll/.cpanplus/custom-sources' dir, skipping custom sources
[ERROR] No such module 'Gtk2::Gdk::Keysyms' found on CPAN

Running [/usr/bin/make test ]...
/usr/local/bin/perl Build --makefile_env_macros 1 test
t/001_load.....................
# Failed test 'warning from GTK'
# at t/001_load.t line 17.
# didn't found a warning
# expected to find warning: (?-xism:)
# Looks like you failed 1 test of 3.

Dubious, test returned 1 (wstat 256, 0x100)

Failed 1/3 subtests
t/002_multi_wirl_connection....ok

Test Summary Report
-------------------
t/001_load (Wstat: 256 Tests: 3 Failed: 1)

Failed test: 2

Non-zero exit status: 1
Files=2, Tests=51, 1 wallclock secs ( 0.01 usr 0.01 sys + 0.57 cusr 0.03 csys = 0.62 CPU)
Result: FAIL
Failed 1/2 test programs. 1/51 subtests failed.
make: *** [test] Error 255
[ERROR] MAKE TEST failed: Illegal seek /usr/local/bin/perl Build --makefile_env_macros 1 test
t/001_load.....................
# Failed test 'warning from GTK'
# at t/001_load.t line 17.
# didn't found a warning
# expected to find warning: (?-xism:)
# Looks like you failed 1 test of 3.

Dubious, test returned 1 (wstat 256, 0x100)

Failed 1/3 subtests
t/002_multi_wirl_connection....ok

Test Summary Report
-------------------
t/001_load (Wstat: 256 Tests: 3 Failed: 1)

Failed test: 2

Non-zero exit status: 1
Files=2, Tests=51, 1 wallclock secs ( 0.01 usr 0.01 sys + 0.57 cusr 0.03 csys = 0.62 CPU)
Result: FAIL
Failed 1/2 test programs. 1/51 subtests failed.
make: *** [test] Error 255

---

After forcing the install I have a few problems I get the occasional
Can't save file '/home/ecarroll/output.txt':
Wide character in syswrite at /usr/local/lib/perl5/site_perl/5.10.0/File/Slurp.pm line 330.

Though I have no idea of what it is talking about. --UPDATE this is when you try to right align something using Input->insert unicode control character->right to left...

DataExtract-FixedWidth (0.02) *****

oh my god. this is the best module on all of cpan. I use it in at least three places and it works like a shanker cuttin' through butta -- smooth operating.

HTML-TreeBuilder-XPath (0.09) **

I was kind of disappointed because I thought this module would help eliminate some of the cruft and needless looping and checking for defined parent elements that the traditional HTML::TreeBuilder requires. It does not. It is fairly limited in its ability to just wrap a ->look_down call. You'll still have to map over lists returned and call $_->getValue() . I don't _think_ XPath differentiates between finding a node and finding a value, this module does, and that hurts usability.

This in my eyes should return a list of src attributes for all img elements that have class="mainPhoto"
$root->findvalue( '//img[@class="mainPhoto"]/@src' );

Instead you're left to do:
map $_->getValue('src')

, $root->findnodes( '//img[@class="mainVehiclePhoto"]/@src' )
;

PSQL-Query (0.01_02) *****

zomfg I LOVE IT!!!

Moose (0.24) *****

I totally revoke my last (negative) review. This is the best module ever.

The only thing lacking is the documentation which leaves the connections about the utility of the module to made by the reader. The bottom line is Moose is more than syntactic sugar, making everything lazy => 1, default => sub {}, leads to a whole new way to program. OOP without constructors (sub new{}) or destructors, a most elegant solution.

Catalyst-View-Email (0.04) **

Didn't work for me. Kept getting:
[error] Caught exception in Dealermade::V::Email->process "Not an ARRAY reference at /usr/share/perl/5.8/Net/SMTP.pm line 39."

DBD-CSV (0.22)

has thus far worked for all of my needs.