Ratings and Reviews for CPAN


Rate a distribution

Find a distribution you would like to review:

Recent reviews (RSS feed)

Encode-Locale (1.03) ****

thanks for such good module, you are save my day!!
now I could read russian symbol from console!!
#!/usr/bin/env perl
use utf8;
use Modern::Perl;
use Encode::Locale qw(decode_argv $ENCODING_LOCALE $ENCODING_LOCALE_FS


if (-t)

binmode(STDIN, ":encoding(console_in)");

binmode(STDOUT, ":encoding(console_out)");

binmode(STDERR, ":encoding(console_out)");

my $lang = shift or die "Usage: $0 What_is_your_language?\n";

$lang =~ /


(?{print "use Perl or die!!\nИспользуй Перл или умри!!";})


say "



Pod-Checker (1.71) *****

very useful script, thank you!!!
podchecker a2p.pod
a2p.pod pod syntax OK.

Regexp-Debugger (0.001020) ****

good module, thanks Domian
multiline regexp
where I can put path to file

Pod-Simple-Wiki (0.16) *****

Used pod2wiki script to convert to Atlassian Confluence (5.1.5) markup. I had to make minor simplifications to list titles i.e.
=item B<-i> I<dir_path> to =item -i dir_path otherwise it created badly nested markup. Apart from this it just worked and I had the POD for 4 scripts on our confluence in much less than an hour. External links render correctly.

JavaScript-SpiderMonkey (0.21) **

JavaScript::SpiderMonkey used to be a really great module, but it fails to build with any vaguely recent copy of the SpiderMonkey engine. Sad face.

POD2-RU-PSGI (0.003) *****

молодец!! сделал такую большую работу!

DBIx-Class-EncodedColumn (0.00013) *****

Pairs great with Catalyst::Authentication::Credential::Password when working with Catalyst applications.

Makes creating applications with properly encrypted password columns from the get-go easy, and makes adapting existing applications with horrible plaintext password columns much less painful.

WWW-Curl (4.17) ****

Works with no problems across FreeBSD, Solaris, Linux based systems. SystemDataRecorder has been used the module since 2009 with no crashes or core dumps. Documentation can be improved.

YAML-Perl (0.02) *****

good idea,
but in


my $data = {

name => 'Ingy döt Net',

modules => [

'YAML', 'YAML::Old', 'YAML::Perl', YAML::XS'


You miss ‘ befor YAML::XS'

Best regards
Nikolay Mishin

Exception-Class (1.38) *****

Was able to use it with a few dependencies without compiling something. Great to define Exceptions in a single pm file. Good to have fields.

I am missing in the documentation the implemented as_string() method.

Term-Twiddle (2.73)

Cute! I didn't know SIGALRM still works even though you're doing blocking I/O or calling other programs. But unfortunately it doesn't work if you sleep(), making this approach not as attractive.

CHI (0.58)

The move to Moo is very welcome, but I wish there were an alternative of CHI which is even more lightweight (starts in under 0.01s). CHI::Tiny, anyone?

App-YTDL (0.018)

Bit of a shame that we currently don't have a working YouTube download script/module (WWW::YouTube::Download is last updated 2013 and has been broken for a long while). This module actually requires another *Python* script to do its job. I might as well skip this and go straight to the Python script.

WebService-NetSuite (0.04) ***

This seems a lot easier than playing around with SOAP::Lite - I just wish there were more test cases and examples.

Const-Fast (0.014) ****

I am impressed with the speed improvement over Readonly (as reported at neilb.org/reviews/constants.html), but the treatment of hashes has bitten me a few times. The documentation explains that a hash that is made into a constant by this module becomes readonly but that Perl can't distinguish between a readonly hash and a restricted hash, such that an error occurs when testing for the truthiness of $somehash{'no-such-key'} (namely: "Attempt to access disallowed key 'no-such-key' in a restricted hash"), and the documentation suggests using "if (exists $somehash{'no-such-key'})" instead of "if ( $somehash{'no-such-key'})". The problem I've had is when a readonly hash is sent to a CPAN module that uses a truthiness test in checking for a key that's nonexistent in the hash. The error arises, and there seems to be no way to avoid it other than modifying the module and putting it into a local library. In particular, this comes up when I use the DBI module and send over a reference to a readonly hash of DBI connection attributes that has been set as readonly by Const::Fast but that doesn't expressly include a "dbi_connect_method" key. For example: my $dbh = DBI->connect( $DSN, $USERNAME, $DB_PASSWORD, $ATTRIBUTES_REF ) gives rise to this error: "attempt to access disallowed key 'dbi_connect_method' in a restricted hash at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 578." I know that I could write my program to include an empty-value 'dbi_connect_method' key in the attributes hash, but the general concern is that the issue will come up (at runtime) with other modules.

Smolder (1.51) ****

It's good, but this fork is better: github.com/Smolder/smolder

The fork is under active development (September 2014), some bugs are fixed, some features are added.

Dependencies-Searcher (0.064) *****

thanks for the acknowledgment!!
very nice

CHI (0.58)

As of 0.57 CHI is using Moo already which reduces the start up time and memory overhead

App-MultiSsh (0.01)

Looks like clusterssh performs a similar task.

What are the advantages of App::MultySsh compared to clusterssh ?

All the best

XML-Hash-XS (0.26) *****

Невероятно полезный модуль, в первую очередь - из-за его скорости.

List-Intersperse (1.00) *****

I was looking for this capability. So, I went to the thesaurus and finally stumbled across List::Intersperse. The intersperse function works great for an unevenly weighted queuing distribution model. List::Intersperse + List::NSect + Parallel::ForkManager.

Selenium-Remote-Driver (0.2102) *****

Awesome WebDriver bindings module. I have used it for almost 4 years now.

XXX (0.27) *****

The part that makes this module convenient is that the functions return their original arguments. So when debugging (peppering dump statements), you don't have to change this:

return ["some", $expr];

to this (taking an example from another dumping module, Data::Dump):

my $tmp = ["some", $expr]; dd $tmp; return $tmp;

but just this:

return YYY ["some", $expr];

This should be imitated by the other dumper functions.

IO-All (0.78) ***

I like it, but I don't care for the operator overloading.

MCE (1.515) *****

I recently had a task that involved a 500G file. This fixed length file needed to be flipped or pivoted based on the content in certain fields. My first attempt at this was taking from 6 to 7 days, so I decided to give this module a try and got it down to a little over 2 days - amazing results! My only problem was understanding some of the documentation, which was probably because my programming orientation is more procedural than object oriented. But once I got some help from someone more knowledgeable, everything clicked into place. This is a great module!!