CPAN Ratings

Ratings and Reviews for CPAN

Rate a distribution

Find a distribution you would like to review:

Recent reviews (RSS feed)

Module-Build (0.4224) *

Absolutely horrible. Intended as a replacement for the ExtUtils::MakeMaker, but does not replicate EU::MM's install options, nor fully document its differences. After ten years of using it, I am sick of modules which use Build.PL failing to install, or build into Debian packages due to permissions errors.

After a decade, you've had long enough to prove perl can do everything make can seamlessly. It can't, or at least your implementation can't. Make works. This module feels as though it exists out of an ideological purity, rather than any technical superiority to EU::MM.

If you are a module author, using this module is trading the users of your module's ease of use for your own. I would discourage any module authors from using Module::Build in the strongest possible terms.

Shannon-Entropy (0.04)

It's not very clear what this calculates, since it isn't documented, and the module is written almost as obfuscated Perl, and the output results of the module given in the documentation don't really make sense. There is not really any such thing as the Shannon entropy of a string, unless one defines the probabilities of the alphabet beforehand, which this doesn't do.

YAML (1.23)

To erikb495: the tarball of this version (and subsequent devel versions) unpacks correctly for me, as well as for metacpan and ( ), this is not a problem in the module. Please use the issue tracker or a module's listed support channels to discuss issues rather than a review site.

Pod-ProjectDocs (0.48) *****

Bhai gand fad hai. Awesome!

YAML (1.23) *

This YAML won't install. It unpacks in the current directory in a flat hierarchy.
ns2 .../home/bennett/tmp 554# ll YAML-1.23.tar.gz
-rwxr-xr-x 1 bennett tsysadm 83566 Aug 19 09:20 YAML-1.23.tar.gz*
ns2 .../home/bennett/tmp 555# tar tzf YAML-1.23.tar.gz
... you get the idea ...

PPR (0.000011) *****

The coolest thing since PPI. Now every time someone still says that one can't parse HTML or balanced parentheses using regex, you can just point him to this module to shut him up (although, if he had said that one *shouldn't*...).

Also now you can say that Perl is a simple language that is easy to learn. Why? Well, it's so simple you can parse the whole syntax with a single regex.

Compress-Zstd (0.05)

This module offers an interface to Facebook's new Zstandard compression library based on the new asymmetric numeral compression algorithms of Jarek Duda. It incorporates the Zstandard libraries into the module, which means that you don't have to download any third-party libraries to install this. It should be a great contribution, but I have to say I'm frustrated by this module.

If you look at the tests here:

it's fairly clear that there is a problem. The problem can be solved with a very minor change:

The bug was reported twice:

The author went on to release another version to CPAN after the bug reports.

While I think this module could be a big contribution to CPAN, I'm not really sure why the module owner won't fix trivial bugs like that, but leaves the module in a state of disarray.

All of the Windows compilations report errors too:

I don't know how these problems could be rectified, but presumably it is just a question of using the right compilation options.

DBIx-Compare (1.7) **

Use MySQL-specific SQL dialect "SHOW TABLES" so comparing e.g. two SQLite database is an instant fail, even though there is DBIx::Compare::SQLite. Instead of the common convention like DBIx::Compare->new(...), uses db_comparison->new(...), sqlite_comparison->new(...), etc.

ExtUtils-ParseXS (3.35)

Doesn't accept bugreports.
Broken visibility for -flto=thin (link time optimization) and solaris,
fixed in cperl since Nov 2016.
The CPAN release misses the 3 xs pods.
do_open() broken under C++, fixed in cperl since Nov 2016.

Perl-Critic (1.130) *****

Hey, Perl::Critic has not been reviewed for quite a while...

Finally take the plunge (again) to include Perl::Critic in my development work, this time adding critic test in the Dist::Zilla release process. Already caught a couple of stupid bugs otherwise uncaught by perl's -w. Aside from that, will help you become more consistent and a better (Perl) programmer. Invaluable!

Config-Perl (0.06)

Rating Data::Undump::PPI, which currently lives inside Config-Perl:

Of course this is a nice proof of concept, but for "real world" usage, look at Data::Undump which is about 2000x faster :)

URI-Title (1.901) *****

Works like a charm to get the titles of web pages.

I recently made my own bookmarking application using Perl. Copying and pasting the URL is ok, but I am just too lazy to type in the title of each page I want to bookmark. How to get the title? I looked on metacpan and found this, and after adding about two lines of code to my bookmarking application I now get the titles just like that. Even better the main function is called "title" and you just call it like this: my $title = title ($url), without any nonsense.

Like it!

There is lots of talk in the module documentation and the bug list about how to get titles of things like PDF documents or even PNG images, but realistically how many people actually need that, compared to the number of people who just want the title of a web page? This already does 99% of the jobs that actually need to be done, and most PNG images don't even include a title field anyway.

Array-Contains (2.7) *

Requires perl 5.20 for no particular reason. Claims to be replacement of smart match but only covers string comparison. Just use List::Util's first() which is more flexible and part of the core Perl distribution, or match::smart which covers more cases.

Array-Unique (0.08) *

Mostly unnecessary because this is just a glorified form of a widely known Perl idiom. Requires perl 5.20 for no particular reason. Re-sorts the list which is 99% not what user wants. Just use List::Util's uniq() which is faster and part of core distribution.

JSON-Path (0.411) *****

Well written module, does exactly what I need it to do. Documentation is clear, and provides a link to the JSONPath specification. Author is receptive and responsive to issues, and has been able to turn around the few problems I've encountered very quickly. I appreciate the time and energy you've put into maintaining this.

Finance-QuoteHist (1.27) *****

Excellent module. Thanks for keeping up with changes to the services.

Data-GUID (0.049) *****

Update 2017: Due to library issues in CentOS 6 I am no longer using Data::GUID but writing against the supported rpm packaged version of Data::UUID in uuid-perl-1.6.1-10.el6.x86_64

my $uuid=Data::UUID->new;
my $guid=lc($uuid->create_str);

Text-Prefix-XS (0.15)

It uses a very fast algorithm to match an array of possible prefixes to an array of strings.

On the other hand, having examined the source code, it is very messy with lots of dangling unused items like the completely unused structure txs_vtbl or the unevaluated "len" in loops like "for (len;", there is a C function without a declared return value, there are misused Perl internal functions like misuse of "die" or "Newxz", and there are many failed tests due to simple causes like not including necessary files such as

#include <stdint.h>:

The documentation is very patchy, so I would probably rather not use this, regardless of whether it is very fast or not.

Term-ProgressBar-Simple (0.03) *****

By far the easiest-to-use progress bar module. Does the right thing by default, and can be added to any script in just 3 lines of code.

Test-NoWarnings (1.04) *

Works great until some (even external) common dependency starts to output warnings, then all the tests starts to "fail". That's the point it gets really annoying instead of helpful. Warnings are there to warn that there *may* be something wrong and should not be test fails.

Dist-Zilla-Plugin-ReadmeFromPod (0.35) *

Has some problems, e.g. it uses InstallTool phase so it conflicts with DZP:StaticInstall when wanting to produce a static install distro. Use alternatives like the simpler DZP:Pod2Readme or the more complex DZP:ReadmeAnyFromPod.

Dist-Zilla-Plugin-Hook (v0.8.3) *****

Great for debugging. Just whip up some code in dist.ini to e.g. dump & print some stuffs, etc.

ExtUtils-TBone (1.124)

This might have been the bee's knees at one point but it's not been updated since 2001 and it has a tendency to break on modern versions of Perl. I suggest trying out Test::More rather than this.

Data-Validate-URI (0.07) *****

This seems to work well. Users should note that the "is_uri" function given in the synopsis is probably not really what you want, use the "is_web_uri" function instead.

The failed tests at CPAN testers are due to the use of a very old module from 2001 called ExtUtils::TBone to do the testing. If the author has time it would be great if this could be upgraded to use Test::More.

Search-WuManber (0.25)

In my tests, this is about the same speed as using a regular expression generated by list2re from Data::Munge or make_regex from my own module Convert::Moji, sometimes faster and sometimes slower. Here are a few typical results:

Data::Munge::list2re time: 0.188953876495361 #matches: 3365
Algorithm::AhoCorasick::XS time: 0.0855789184570312 #matches: 3365
Search::WuManber time: 0.353510141372681 #matches: 3365

Data::Munge::list2re time: 0.191490888595581 #matches: 3734
Algorithm::AhoCorasick::XS time: 0.0873630046844482 #matches: 3751
Search::WuManber time: 0.339526176452637 #matches: 3751

Data::Munge::list2re time: 2.37025308609009 #matches: 303173
Algorithm::AhoCorasick::XS time: 0.353744029998779 #matches: 308464
Search::WuManber time: 1.25165987014771 #matches: 308464

The script is available here:

The output search results are the same as those of Algorithm::AhoCorasick::XS, but that module is much faster than this one.

So far I've reported four bugs in the module and got no response so it may not be being maintained any more.

Given that it doesn't beat regexes, it has memory-related bugs, and has not been updated for years, I can't endorse this module.