Ratings and Reviews for CPAN

cpanratings
 

Rate a distribution

Find a distribution you would like to review:

Recent reviews (RSS feed)

PAR-Packer (1.036) *

just installed the new version of ActivePerl 5.24.1.2402 64 bit
and i installed PAR::Packer module and when run i got this error

C:\perlcode>pp -o print.exe print.pl
C:\Users\jon\AppData\Local\Temp\parlzcPb.exe: Perl lib version (5.24.1) doesn't match executable 'perl.exe' version (5.24.0) at C:/Perl64/lib/Config.pm line 62.
Compilation failed in require at C:/Perl64/lib/Errno.pm line 10.
BEGIN failed--compilation aborted at C:/Perl64/lib/Errno.pm line 10.
Compilation failed in require at C:/Perl64/lib/File/Temp.pm line 17.
BEGIN failed--compilation aborted at C:/Perl64/lib/File/Temp.pm line 17.
Compilation failed in require at C:/Perl64/lib/Archive/Zip.pm line 11.
BEGIN failed--compilation aborted at C:/Perl64/lib/Archive/Zip.pm line 11.
Compilation failed in require at -e line 240.
C:\Perl64\site\bin/pp: Failed to extract a parl from 'PAR::StrippedPARL::Static' to file 'C:\Users\jon\AppData\Local\Temp\parl3swwQJc.exe' at C:/Perl64/site/lib/PAR/Packer.pm line 1184, <DATA> line 1.

C:\perlcode>perl -v

This is perl 5, version 24, subversion 1 (v5.24.1) built for MSWin32-x64-multi-thread
(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2017, Larry Wall

Binary build 2402 [401627] provided by ActiveState www.ActiveState.com
Built Jan 5 2017 02:08:02

DBD-Sybase (1.15) *****

Great module if you OS/Environment does not meet the vendor provider SybaseASE.pm/so requirements.

Documentation was great and the installation was straightforward. Thanks!

Data-Pivot (0.05) ****

This module is simple and very easy to use module.

If possible, I think that it is better for this author to publish this module to GitHub.

App-cpanminus (1.7042) *****

Everybody has said it already, but anyway, this is a huge improvement over the default CPAN client which comes with Perl.

The merit of this module is that App::cpanminus only tries to do one simple job, install a module for you, which is the only thing you really a cpan client to do, 99.999% of the time.

CPAN (2.14)

I think this module is very problematic. It is not really documented clearly, and it tries to do too many things, and is generally far too clever for its own good. Just now, as a test to see if a problem had occurred, I tried to use this to install a module which had not been installed via cpanm.[1] The cpan shell started lots of background processes, tried to locate some kind of mirror in Singapore at "choon.net", kept on trying to download again and again after repeated failures, messed up my terminal, could not be stopped from downloading via interrupts, but kept on and on spawning background processes after one presses the interrupt. Despite all the help and the options on the screen if I press h, it won't tell me the simple way to do things like how to stop it connecting to the unavailable mirror at choon.net and connect to another CPAN mirror. Looking at google for help there are threads from 1994 and 2004 full of "weird old tricks" on how to configure this thing. [2][3]

The only thing that 99.9% of the people using this 99.99% of the time ever needed was a way to download modules and install them. What seems to have happened is that the author started adding all the bells and whistles for fun or something, and ended up making it unable to do the simple job that people actually need it to do.

Nowadays I only use cpanm (App::cpanminus).

[1] Please refer to this bug report: rt.cpan.org/Ticket/Display.html?id=11...
[2] www.perlmonks.org/?node_id=394501
[3] apthorpe.cynistar.net/code/configurin...

AnyEvent (7.13)

I cannot speak to the functionality of AnyEvent when used by itself, so I am not leaving a rating. Please be aware however that despite its claims, it is the *least* compatible of the 4 major event loop ecosystems in Perl currently (POE, IO::Async, Mojo::IOLoop, and AnyEvent). The other three have many reactor backends as well, even including for EV, there is nothing special about AnyEvent in this regard. On top of that, it continues to throw a fatal error if used with the IO::Async adapter, with a quite ironic explanation: metacpan.org/source/MLEHMANN/AnyEvent...

WWW-CPANRatings (0.03) ****

To get the ratings for a single distribution, this client library needs to download /csv/all_ratings.csv (~80KB at the time of this writing) first. This is not the fault of the client because the website indeed does not provide the necessary ratings data on the /dist/:DISTNAME page. The client library should perhaps cache the CSV response though. The implementation could also be simplified by using slimmer libraries for this simple scraping task. But other than that, does what it says on the tin.

Parse-CPAN-Ratings (0.33) ***

Not as useful as the name implies. It requires you to download the CSV of all ratings first, which BTW does not seem to be advertised on the CPAN Ratings website. The CSV file only contains numeric ratings and does not include any reviews. So basically what this module does is just filter the CSV rows for a distribution's rating.

One might want to look at WWW::CPANRatings instead.

Net-Google-Spreadsheets (0.1501) *

broken and unusable.

Mojolicious-Plugin-RenderFile (0.10) *****

Good code and documentation!
Thank you!

CPAN-Mini-LatestDistVersion (0.01) ****

For years I have used an absolutely stock CPAN::Mini setup to create and update a minicpan repository on a succession of laptops. That worked quite well, particularly with respect to development and testing of search.cpan.org/dist/CPAN-Mini-Visit-....

Now I'm in a position where, on behalf of Perl 5 Porters, I am examining the relationship between Perl 5 blead and the latest versions of CPAN distributions. For that purpose, CPAN-Mini's default setting of "retain the last version of a distro for each author doing a release" results in many different versions of distros such as DBIx-Class which have had different releasors over the years.

So I'm now going to try CPAN-Mini-LatestDistVersion and have added that as the value for 'class' in my .minicpanrc file. As I type, I'm populating a new minicpan repository. The acid test will come when I type 'minicpan' to update the repository and some distro has had a new release from a different releasor.

Acme-Curse (0.0.1)

This pure-perl module creates a shallow copy of the object instead of directly removing blessing from the same object (which requires XS). Acme::Damn is the more direct counterpart of bless().

SOAP-WSDL (2.00.10) ****

The way to actually use this Module is given in the SOAP::WSDL::Manual.

Without that, good luck figuring it out. With that, it is much less difficult figuring this out. I was sending SOAP requests and getting responses about 2 hours after I read SOAP::WSDL::Manual.

perldoc SOAP::WSDL::Manual

This is true for modern versions, and 2.00.10, which is what's on my RHEL5 boxen.

IO-Socket-IP (0.38)

Sys-RunAlone (0.12) **

2016-12-14 - I no longer use this package since it does not work across upgrades. When you update the script the lock goes with the inode not the script. I now use Lazy::Lockfile. I plan to switch to systemd when we move to el7.

2011-10-29 - I think this package is great. Adding just one line gets you up and running. If you run crons against a database, there is no easier way to ensure that you never walk on yourself.

File-FindLib (0.001004) *****

Very handy module that saves messing around with file paths, which is often error prone e.g. handling symlinks and different OSes such as VMS.
Clear documentation, easy to use, and works well for me updating a legacy codebase.

The only slight niggle I had was on old code doing "use File::FindLib 'VERSION.pl';" and finding the variable it set ended up in the File::FindLib:: namespace rather than main::.

Nice job!

Locale-PO (0.27) ***

The module does its job in a basic way but doing serious work with it is frustrating. I have made heavy use of the module in Locale::XGettext and that really made me dream of a modern alternative to Locale::PO.

The class method "load_file_ashash" (yes, "ashash" is not a typo!) predates message contexts in PO files. Do not use it! You will lose data! This cannot be fixed. You should just be aware of it.

The central methods "msgid()", "msgstr()", etc. receive an unquoted string argument when invoked as a setter but return the quoted argument, when invoked as a getter. This surprising behavior makes working with the module cumbersome and inefficient.

Prepending the named arguments in the constructor with hyphens is so much 1995! The hyphens should at least be optional.

There is almost no consistency checking. The module lets you happily create PO entries without a msgid. There are no high-level methods for manipulating the PO header of a file. There are no methods for merging two PO entries (crucial for the creation of a PO file).

Last but not least, the interface for creating a PO entry with plural forms is really awkward and not well documented.

As I said in the beginning, the module does its job (when used the right way). A lot of people have improved the module over the years, so that it now also supports newer PO features like message contexts or plural forms. But the design problems of Locale::PO cannot be fixed.

App-Netdisco (2.034001) *****

Excellent !

Never found a better way to view/manage network devices …

Array-Utils (0.5) *

It takes arrays as subroutine arguments which will result in slowness when the data is huge. I strongly advise metacpan.org/pod/List::MoreUtils as an alternative.

Digest-SHA1 (2.13)

Use Digest::SHA instead. In general, there is no reason in using Digest::SHA1 over Digest::SHA. The latter is a core Perl module, more updated, and implements the other algorithms while the former only implements SHA-1 which is now deprecated.

File-Checksum (0.01)

The "checksum" (basically just adding 16-bit words) is too simplistic to be a real checksum or to be practically useful. Even MD5 or CRC32 is infinitely better.

Net-Azure-BlobService (0.35) ****

Big dependency tree having to install Moose. Otherwise, it just works. Good (complete) example file helps a lot. Thank you!

Meerkat (0.014) *****

Excellent approach. This module as simplified the code I use to access MongoDB tremendously.

App-perlbrew (0.77) *****

I've been trying to debug an issue with a CPAN module which was shown up by CPAN testers. At the moment, the testers' reports are not available on the web. The problem seemed to be with older versions of Perl, but despite much effort I was unable to install them to find out what was wrong. I have never installed or even tried perlbrew before today, but in desperation I tried it out.

Thanks to perlbrew I was able to install a Perl 5.12.5 and find the errors in my CPAN module very quickly. I'm very impressed with how easy it was and how it managed to install the old version of Perl on my system where I wasn't able to. The whole system of shell replacements is just ideal for this kind of work.

Very good job! Thanks.

JSON-RPC (1.06)

Before this package was adopted by a new author, I believe it was a good option for dealing with JSONRPC APIs. As it stands now, people writing Perl client software for JSONRPC are not as well served as they used to be. The module has deprecated JSON::RPC::Client, renamed that to JSON::RPC::Legacy::Client and pegged it to JSONRPC v1. I would guess that more people write client code than set up servers, so this is an odd direction to go. Such is life, however.

I recently needed to write some code to communicate with a production service that offers a JSONRPC v2 interface. Looking around, the best option I could find was LWP::UserAgent + JSON::RPC2. Based on prior experience with JSON::RPC I had not expected to roll my own client, and I was not particularly happy about it. I have not rated this package since I did not use it, and just leaving this as a comment.