Rate a distribution
Find a distribution you would like to review:
Recent reviews (RSS feed)
MooX-ClassAttribute
(0.006)
Does what it says. No worries so far using this module for 5 months.
A big thank you to the author, Toby, who created this module only a few days after i asked on PerlMonks if a module existed for this purpose. Impressive reactivity!
mascip - 2013-05-21T12:36:52 (permalink)
Guard
(1.022)
Useful. The Guard used by AnyEvent, so if you are using that family, this is the guard module for you.
James Wright - 2013-05-19T08:04:54 (permalink)
Module-Runtime
(0.013)
Correct and useful runtime module loading tools; works around funkyness in old buggy perls that can bite when doing the classic 'eval..require' routine. Also provides module name validation tools.
`use_module($some_class)->new(%params)` is a frequent idiom I use for dynamic class loading and object construction.
Jon Portnoy - 2013-05-19T05:38:36 (permalink)
Object-Pluggable
(1.29)
A base class providing a solid implementation of a controllable plugin pipeline. Well-tested as it is an integral part of the popular POE::Component::IRC suite (amongst others) via POE::Component::Syndicator.
The ability to easily control pipeline order (via methods) and event lifetime (via return values) are useful features that often lack in other plugin systems. Plugins are passed references to arguments, and therefore have the ability to alter event arguments before they are handed off to the next plugin in the pipeline.
Worth a serious look if implementing any kind of pluggable class -- POE users should probably also look at POE::Component::Syndicator, a subclass of Object::Pluggable.
Jon Portnoy - 2013-05-19T05:21:27 (permalink)
Net-IP-Minimal
(0.06)
A convenient minimalist module for determining whether an IP address is IPv4 or IPv6. Works as-advertised, and I rarely need the rest of Net::IP.
Jon Portnoy - 2013-05-19T05:11:24 (permalink)
Net-DNS
(0.72)
I've used this module for years and years and I don't think much about it. It's just plumbing and it consistently works. The documentation is very sufficient and when I need to do anything even slightly complicated this module handles it very capably.
Matt Simerson - 2013-05-18T14:04:41 (permalink)
SOAP-Lite (0.716)
No Ratings. Just to mention that IO::Session* are missing from the toolkit. XMLRPC::Lite does not install without them.
hth
Stephan titard - 2013-05-18T11:37:33 (permalink)
Net-RabbitFoot (1.03)
No documentation. Appalling. How are people expected to actually use this without digging through the source? What is the point in sharing.
Sam - 2013-05-17T22:12:34 (permalink)
strictures
(1.004004)
strictures is sort of dual-use: in typical usage (on your users' systems, for example), it is effectively the same as "use strict; use warnings FATAL => 'all'" -- but if it appears code is being run from a development repository (or if extra tests are explicitly enabled), you also get indirect object syntax, bareword filehandle, and multidimensional array ("I meant to type @hash{1,2} not $hash{1,2}") checks.
Pros: This has saved me from myself and others more than once.
Cons: Fatal-by-default warnings are a con for some people. You may need to think a little harder about which warnings you care about. Sometimes perl warns for some silly stuff, and that can change from one version to the next.
Jon Portnoy - 2013-05-17T15:45:08 (permalink)
Role-Tiny
(1.002005)
Roles are a sane approach to code reuse with reasonable and predictable behavior, as opposed to doing ugly and unpleasant things to your classes via inheritance.
Role::Tiny brings you the minimal set of useful role-building tools modelled after Moose's implementation of the concept; it is less restrictive than other models (such as Role::Basic), and provides goodies like `around` / `before` / `after` method modifiers.
Roles have solved a lot of design headaches for me; this module appears to be the nicest "just roles, please!" implementation available.
Jon Portnoy - 2013-05-17T06:44:46 (permalink)
Moo
(1.002000)
A slim-line Moose-alike without the costs and features most people don't need (plus Moose compatibility if it turns out you did); easy to sell to folks concerned about the overhead inherent to Moose. Very much simplified my object-heavy code.
Jon Portnoy - 2013-05-17T06:35:05 (permalink)
List-Objects-WithUtils (1.000001)
While I understand Sean (educated_foo) hates anything that smells like an object, and I get that "arrow-infested" syntax like `$hash->sliced('foo', 'bar', 'baz')` is less readable to some folks than writing a classic hash slice with an exists() check, I think that his "send it to Acme!" review is a mischaracterization of what my module does.
Core operators are present -- they also live alongside other bundled tools and toys for working with collections (List::Util, List::MoreUtils, List::UtilsBy, and Syntax::Keyword::Junction) packaged in a way that encourages thinking in functional terms. Most methods that manipulate a list return new objects; avoiding mutable lists is easy/encouraged. I have simplified a fair bit of my in-house code this way -- at the (admittedly relatively heavy) cost of method call overhead -- which is why it is on CPAN ;-)
Jon Portnoy - 2013-05-17T05:49:06 (permalink)
Riak-Light
(0.055)
This is a very small and fast riak interface.
Tiago Peczenyj - 2013-05-17T04:31:39 (permalink)
SimpleXMLParse
(1.5.0)
avoid like the plague. the first clue is the poor choice of module names. then look at the source and see that it uses regular expressions to parse xml.
Justin Case - 2013-05-16T01:03:08 (permalink)
Kelp
(0.219)
Very lean and fast web framework designed as a thin layer on top of Plack. The excellent documentation allows for a quick start and easy reference during development. We have most of our projects developed using Dancer, but Kelp is a great candidate for our next site. We are especially attracted to the Plack integration and the low learning curve.
Richard Schnaste - 2013-05-14T14:39:14 (permalink)
Term-Size
(0.207)
5-year old bug like RT#38594 still present. Use one of the alternate implementations like Term::Size::{Unix,Win32,ReadKey}.
Steven Haryanto - 2013-05-13T19:10:44 (permalink)
Net-SMTPS
(0.03)
It took some digging, as this module doesn't pop up near the top when searching for Net::SMTP, but it's worth finding. This module is EXACTLY what I was looking for. After finding Net::SMTP::TLS (old, broken, poorly implemented, not maintained), and then Net::SMTP::TLS::ButMaintained (maintained, but still poorly implemented), and Net::SMTP::SSL (only supports the deprecated SMTPS on port 465), I finally found this module.
If you are looking for a drop-in replacement for Net::SMTP that adds STARTTLS support, this is it. Works perfectly for me. Thanks so much!
Matt Simerson - 2013-05-11T16:32:30 (permalink)
Net-SMTP-TLS-ButMaintained
(0.22)
First, I offer my hearty thanks to Fayland for providing this fork, which is basically just bug fixes for Net::SMTP::TLS. For that, I offer a hearty 5 stars.
The problem with this module is its legacy of Net::SMTP::TLS, which in many important ways, does not behave at all like Net::SMTP. If you are seeking a robust and mature Net::SMTP implementation that adds STARTTLS, look to Net::SMTPS instead. The author of Net::SMTPS wrote it the right way, as a very thin subclass of Net::SMTP, so that it benefits from the very well maintained, mature, and robust Net::SMTP module.
Matt Simerson - 2013-05-11T16:27:03 (permalink)
Net-SMTP-TLS
(0.12)
You should NOT be use this module. It has not been maintained in 7 years. It is broken in several ways (see the RT bug reports). A successor fork called Net::SMTP::TLS::ButMaintained is available which fixes a number of the bugs in this module. While ButMaintained is better, neither module is very good.
I was hoping this module would be a drop-in replacement for Net::SMTP with TLS support. While testing, I noticed the SMTP behavior was poor (not RFC compliant in several ways) and I fixed a couple of the problems. However, this module is not programmer friendly and in quite a few ways, does not behave like Net::SMTP.
After trying to use this module, I thought to myself, "I would be better of writing myself a thin layer for Net::SMTP that adds STARTTLS support." But before I put paws to keyboard, I searched CPAN again, and found Net::SMTPS, which is exactly what I had envisioned. Consider using it instead.
Matt Simerson - 2013-05-11T16:18:36 (permalink)
Regexp-Grammars
(1.028)
Regexp::Grammars has made my life a lot easier. I basically registered just to say thanks. My most recent use of this is in TPath, which RG made almost trivial to implement. Well, maybe not trivial, but at least an order of magnitude easier.
David F. Houghton - 2013-05-11T16:13:01 (permalink)
Kelp
(0.219)
Simple but very powerful, it takes advantage of plack and has a good performance
Miguel Prz - 2013-05-10T23:42:57 (permalink)
List-Objects-WithUtils
(1.000001)
Modules like this, which let you replace Perl's built-in operators with a bunch of object-y arrow-infested junk, belong in Acme::.
educated_foo - 2013-05-10T11:38:01 (permalink)
Enbugger
(2.013)
Clear doco allowed me to jump right in and debug some hairy global destruction issues in a complex (Moose, AnyEvent, ++) codebase.
Worked exactly as advertised.
I'll also remember this module if I ever need to hook into a running perl process.
N Heinrichs - 2013-05-10T02:24:39 (permalink)
DBIx-Class
(0.08250)
Great Performance improvement
Vasundhar Boddapati - 2013-05-09T03:00:42 (permalink)
DBD-mysql
(4.023)
This module is used by many (surely at least thousands) many users but has only 6 reviews? I guess there isn't much incentive to review this module. Shucks, most users of probably don't know it exists as it gets installed automatically by hundreds of applications and just silently works really well for years and years. I've used it in dozens of applications over the nears with nary a hiccup. Many thanks!
Matt Simerson - 2013-05-08T21:30:24 (permalink)

