Ratings and Reviews for CPAN


Rate a distribution

Find a distribution you would like to review:

Recent reviews (RSS feed)

Module-Build (0.4220) *****

All tests passed.

Simple-Accessor (1.02) **

To be honest. It became useless as soon I realized you write an own constructor. I think this is not needed to make a setter / getter.

It is nice you provide it, but it must be optional.

Captcha-reCAPTCHA (0.98)


Lingua-EN-AddressParse (1.26) *****

Works as advertised.

HTTP-Tiny (0.064) *****

I replaced Mojo::UserAgent (v5.68) with HTTP::Tiny (v0.46) for a simple XML based web service. I found that is was easier to deploy on different systems due to it lite library requirements.

HTTP-Tiny-UA (0.004)

Requirements are a bit too high to get running on stock EL6 platform.

perl(version) >= 0.9901
perl(Module::Load) >= 0.24

Amazon-SNS (1.3)

Following the previous 2* review, it looks from ChangeLog that the main complaint about GET vs POST was addressed shortly afterwards, and there have been several more recent releases.

We are trialling this module for a spike, will try to remember to update this review with a score if it works/doesn't for us :-)

Archive-Tar-Wrapper (0.23)

Sadly there is not a single perfect Archive::Tar::* module out there. Either a module offers incomplete API, (was) buggy, or it is crippled/limited in some way. Plus, the modules are mostly incompatible with one another. And that's why TIMTOWTDI.

For the task of just listing files in an archive, for example, it seems only Archive::Tar and Archive::Tar::Wrapper are usable. Archive::Tar::Wrapper is fast (because it utilizes external C-based tar utility) and does not load all contents of an archive into memory, but requires writing to temporary files and of course requires a tar utility so portability to non-Unix systems might be an issue.

Archive-Tar (2.10)

Sadly there is not a single perfect Archive::Tar::* module out there. Either a module offers incomplete API, (was) buggy, or it is crippled/limited in some way. Plus, the modules are mostly incompatible with one another. And that's why TIMTOWTDI.

For the task of just listing files in an archive, for example, it seems only Archive::Tar and Archive::Tar::Wrapper are usable. Archive::Tar is a core module, but relatively slow, and extracts all contents of an archive in memory so it's not workable for huge archives.

Template-Plugin-Gravatar (0.09) ****

Worked first time and flawlessly. Might be nice to include an example of how to check if the given e-mail isn't on Gravatar and action to take, but that's simple to work out.

Text-DeLoreanIpsum (0.01) *

Useless; belongs in the Acme namespace.

PerlPowerTools (1.011)

Very useful on Windows (if you don't have the WinBash stuff).

Lingua-EN-ABC (0.06) *****

Does what it says on the tin.

Hash-Util-Pick (0.03)

One can easily use this idiom instead:

$picked = { map {(exists $hash{$_} ? ($_=>$hash{$_}):())} @keys };


$picked = { map {$_=>$hash{$_}} grep {exists $hash{$_}} @keys };

or (if you want non-existing picked keys to be created instead):

$picked = { map {$_ => $hash{$_}} @keys };

but Hash::Util::Pick is implemented in XS and can be a few times faster than the above when the number of keys has reached thousands. So I guess this module has its uses.

RT-Client-REST (0.50) **

Works as advertised, but the design of the module requires an extreme amount of API requests to fetch ticket information, making its use both slow and producing too much load on the servers of the API provider.

For example, if I want a list of tickets created after some date or all tickets in the queue, the API provides the '/search/ticket' endpoint that returns a list of found ticket IDs together with their subject lines. Pretty useful as the basis to find a ticket you want.

This module, however, discards the subjects and returns only IDs. If you do want those subjects, you have to call another method that makes another API request, *for each ticket.*

The same issue exists with individual tickets too. If I want to read the ticket and all of the replies to it, the API provides the '/ticket/###/history' endpoint that returns all of that information.

The module, however, requires you get_transaction_ids() for IDs of all the individual items on the ticket, which along with comments includes status changes, for example. And once you have those IDs, you have to request each individual transaction using get_transaction().

Consider a single ticket with 5 comments, status change from `new` to `open`, `bug` tag added, and then status changed from `open` to `resolved`. Using the API with `curl`, I can obtain all of that information in a single API request (login credentials can be part of the URL).

But if I use this module, I have to make 1 request to get transaction IDs, then 8 additional requests to get each individual "transaction."

If all I want is a list of all RT tickets with subject lines for perl6 queue, I can't even reasonably use the module, as instead of 1 API request I can do with `curl`, I will have to make one per ticket I want, resulting in over 1300 requests for the full queue.

Despite promising to be the API client, this module is entirely unusable for my simple and non-exotic task.

Net-FullAuto (1.0000224)

This is a response from the author to the two reviews posted below. For a very long time, Net::FullAuto was experimental software, and for years there were warnings in the sparse documentation that this software was not ready for general use. That said, at the time the reviews below were posted, many of the points raised in these reviews were genuine issues, most of which have since been remediated or explained. The POD documentation is now complete and up to date. It bears little resemblance to the sparse documentation these reviewers encountered more than a year ago. That said, the accusation of malicious intent without and any evidence to support this assertion other than complexity the reviewer had no wish to navigate, is irresponsible - and that is being kind. His very words "I suspect" demonstrate his lack of true inquiry, and his eagerness to denigrate and even slander the author without adequate foundation, is something the author hopes is transparent to others. That said, I will address these concerns because some of them are valid, and are concerns that others will share.

Again, documentation is NOW complete, up to date, and accurate.

"Marketing" style language has been mostly removed, and any that remains is informational and more of what one would expect to find in "documentation".

It's true that the installation of this module is highly customized. Net::FullAuto has over 100 dependencies on other modules, and many of those modules have long chains of their own dependencies. To get all these to install successfully in a 100% automated fashion literally took years to achieve. Conventional Perl distribution tools were largely abandoned because they simply couldn't do the job without requiring significant manual intervention and expertise from the user. Many of these tools have since evolved, but there are still multiple reasons that they cannot yet provide a complete solution for installing Net::FullAuto. Net::FullAuto is workload automation software designed to compete with packages like Chef, Ansible, Puppet and others. Anyone familiar with those frameworks know how complex and challenging they are to install and work with. The goal of the FullAuto project was to come up with a framework that was not only easier to work with than these others, but significantly easier. That goal is met only with a fully automated installation of the tool and all its dependencies. It's hard to promote "workload automation software" as ground breaking if it fails to fully automate its first genuine workload - its own installation.

It's true that the CPAN TESTERS service has been disabled. Because of the large number of dependencies, The Net::FullAuto install uses "continuous integration". In other words, dependencies will always be updated to the latest version. The CPAN Tester community use hosts with very sensitive configurations, and encountered problems with modules being updated automatically. To conform to the needs of the CPAN Testers would mean putting an incredible burden on ordinary users requiring them to perform dozens (even hundreds) of manual installation tasks they have neither the time, patience nor expertise for. Users are warned of this behavior when first endeavoring to install Net::FullAuto, and are advised to use a host, or alternate secondary Perl installation where automated updates of modules is not an issue.

'sudo' is used only with Amazon EC2 hosts as of this writing. Net::FullAuto needs administrative privileges to be installed on EC2 hosts, and users have to go through elaborate setup steps to enable an Amazon account with the necessary privileges. Their consent is assumed for these reasons.

There are a number of small utilities bundled with the distribution. They are all open source and free of any restrictions. They may be removed and stored elsewhere (like sourceforge or github) in the future. The use of Figlet fonts is explained in the POD documentation.

It is true that a number of accepted CPAN standards have been abandoned or significantly altered. There are good reasons the standards exist, but also good reasons for having to avoid them. The decision was made that a FULLY automated installation of Net::FullAuto and ALL of its hundreds of dependencies justified the decisions made. All are subject to change as both Net::FullAuto and the CPAN evolve.

Net::FullAuto is unique as it uses a PERSISTENT connection to communicate with remote nodes. This functionality took 16 long years to perfect, but is now ready to do the kind of robust workload automation only dreamed about - until now.

I hope you will give it a chance to impress you, and I hope you will choose to open tickets and work with me and my team to improve Net::FullAuto, rather than post a permanent negative review over a temporary concern.

If safety and security are concerns - as they should be, please experiment with Net::FullAuto on a public cloud or other disposable machine image before installing on a more sensitive host. This video will walk you through the entire setup process on Amazon EC2:

Brian Kelly

Dancer-Plugin-SimpleCRUD (0.99) ****

Really useful.

SQL-Abstract-More (1.28) *****

I switched to this module because I needed to use UNION [ALL] in my queries and it was a nice drop-in replacement for SQL::Abstract and SQL::Abstract::Limit.

NetObj-IPv4Address (1.0)

Cons: more heavyweight (requires Moo), limited operations/methods, can only handle IPv4 and not IPv6. Pros: some operations are faster than competing modules, e.g. validation. See also: NetAddr::IP, Net::CIDR.

NetObj-MacAddress (1.0) **

Aside from being Moo-based (which, makes it a bit more heavyweight and with more dependencies), doesn't yet offer anything extra or more methods compared to previously existing modules like NetAddr::MAC.

EBook-EPUB (0.6) ****

great tool, i love it.
would be great if below change is implemented:

EBook/EPUB.pm (line380)
from: return $self->add_image_entry("$filename");
to: return $self->add_image_entry("$filename", $type);

Geo-Location-TimeZone (0.1) **

A well-intentioned module with honest documentation, but not really appropriate for use in any serious production context. I found it rife with errors (such as identifying locations in the U.S. east coast as existing in Central Time) and the output was often expressed in non-standard terms that would make DateTime::TimeZone choke.

Time Zones are the worst, and I appreciate the effort to write a self-contained module like this, but at this time the only universal options I can find for turning geolocational coordinates into usably standard time-zone strings involve using public service APIs, such as Google Maps Time Zone API.

HTTP-Headers-UserAgent (3.09)

In case you didn't know, neilb ( at search.cpan.org/~neilb/ ) uses this module as an example of a deprecated module. Furthermore, he uses it as an example of how a distribution maintainer can set the x_deprecated flag ( as explained at neilb.org/2015/01/17/deprecated-metad... ).

Mojolicious (7.01) *****

More powerfull framework in the Perl!

Acme-AsciiArtinator (0.04) *****

Cool. Now you can create your own Camel Code with ease!