Reviews by Dan Book


Crypt-SSLeay (0.72) *

This distribution (Crypt::SSLeay and Net::SSL) should no longer be used. LWP::Protocol::https, IO::Socket::SSL, or Net::SSLeay should be used as appropriate. See

JSON (2.97001) ***

This module was, at one time, a good way to transparently use either pure-perl or XS JSON decoding (though the modules it delegates to are somewhat bloated for most use cases, but that is another discussion). But now, it has two crucial flaws: it does not support and prefer Cpanel::JSON::XS which is a fork of JSON::XS that has fixed a large amount of bugs, and its wrappers slow down the functions it wraps. Consider using JSON::MaybeXS that corrects both of these issues and is nearly a drop-in replacement -- you only need to change JSON::true/false to JSON->true/false. (this module) is not core, and JSON::MaybeXS is usually available anywhere is these days, so there shouldn't be significant hurdles to switch.

FindBin-libs (2.017002) ***

Extensively well documented, and I'm sure it works great, but it's an incredibly overcomplicated and magical solution that still relies on the awkward implementation of FindBin, so I cannot recommend this approach. In my opinion you should always declare exactly what directories you wish to include rather than leaving it up to magic libraries - this is how you get vulnerabilities. See lib::relative for a straightforward method that relies only on the location of the file it's used in, and use Carton for installing project-local modules.

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.

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: