Acme-CPANModules-Import-CPANRatings-User-perlancar
view release on metacpan or search on metacpan
exactly the same. JT:Subclassable also supports pretty() which is
often used when debugging. In short, I found
JSON::Tiny::Subclassable is a better "Tiny JSON" module
than JSON::Tiny.
JSON::Tiny
Author: DAVIDO <https://metacpan.org/author/DAVIDO>
Ah, the many JSON implementation modules out there... <br><br>I
guess if you want to switch JSON implementation more easily with
JSON, JSON::PP, and JSON::XS, it's better to use
JSON::Tiny::Subclassable instead of JSON::Tiny, because the
interface is more similar to JSON{::XS,::PP}, although it's not
exactly the same. <br><br>
Devel::Confess
Author: HAARG <https://metacpan.org/author/HAARG>
Provides some more features compared to Carp::Always, like producing
stack trace even when exception is ref/object, color & dump
function arguments (so you don't need a separate Carp::Always::Dump
and Carp::Always::Color). Recommended. <br>
Carp::Always
Author: FERREIRA <https://metacpan.org/author/FERREIRA>
This module works well for string exceptions (e.g. die "some
message"), but for ref/object exceptions (e.g. die
[404,"Not found"] or die $some_object) it will simply
print/return the ref/object and thus no stack trace information is
produced. <br><br>See also Devel::Confess, which can handle
ref/object. <br><br>References: <br> <a
href="http://blogs.perl.org/users/graham_knop/2013/09/carp-always-ev
enobjects.html"
rel="nofollow">blogs.perl.org/users/graham_knop/2013...</a>
experimental
Author: LEONT <https://metacpan.org/author/LEONT>
Our prayer has been answered. experimental was added to perl core in
5.19.11
Exporter::Lite
Author: NEILB <https://metacpan.org/author/NEILB>
Mostly unnecessary. The main premise of this module is that you
don't need to inherit to use it. But you also can use Exporter (a
core module, BTW) without inherinting it: <br><br>use Exporter
qw(import); <br>
Date::Holidays
Author: JONASBN <https://metacpan.org/author/JONASBN>
The idea is good, but a couple of things prevents me from using this
interface. <br><br>First, the use of TryCatch (which brings the
Moose ecosystem) makes the startup overhead too high for my taste
(about 0.5s on my PC). Which is rather unfortunate because
Date::Holidays itself does not use Moose. <br><br>Second, the
interface assumes that a country has a single set of holidays, which
is too restrictive in some cases. A more flexible/general interface
would allow adding more calendars based not only on country but also
religion, special community, organization, etc. And allow adding
custom calendars. <br>
Furl
Author: SYOHEX <https://metacpan.org/author/SYOHEX>
@Kira S (I wish cpanratings adds a feature to comment on a review):
<br><br>Comparing WWW::Mechanize with Furl is not really
apples-to-apples, since Furl does not support parsing/following
links or form processing. As the Furl POD itself suggests, Furl is
positioned as a faster alternative to LWP, not WWW::Mechanize.
Lingua::EN::Inflect
Author: DCONWAY <https://metacpan.org/author/DCONWAY>
Just add this review to link to Ben Bullock's
Lingua::EN::PluralToSingular if you need to go the other way
(converting English noun from plural to singular). <br><br>BTW, I
don't like the interface either, and wonder why the Env module needs
to be involved. <br>
Lingua::EN::PluralToSingular
Author: BKB <https://metacpan.org/author/BKB>
Not perfect or exhaustive, but good enough and lightweight. With a
dead-simple interface. Just the sort of libraries that are reusable
almost everywhere. Thanks for this. <br><br>Also, this might not be
immediately obvious since there's no mention on the See Also
section: to go the other way (converting English noun from singular
to plural) you can use Lingua::EN::Inflect.
Log::Declare
Author: CHGOVUK <https://metacpan.org/author/CHGOVUK>
I haven't used or evaluated this module in detail, but if there is
one advantage to using procedural/command syntax: <br><br>info blah;
<br><br>as opposed to object syntax: <br><br>$log->info(blah);
<br><br>then this module clearly demonstrates it. Using
Devel::Declare (or the Perl 5.14+ keyword API), the former can be
easily rewritten as something like: <br><br>info && blah;
<br><br>or: <br><br>if (CONST_LOG_INFO) { info blah } <br><br>and
during compilation, Perl can optimize the line away and we get zero
run-time penalty when logging (level) is disabled.
<br><br>(Actually, it's also possible for the object syntax to get
rewritten, e.g. using source filter, but it's more cumbersome).
Benchmark::Timer
Author: DCOPPIT <https://metacpan.org/author/DCOPPIT>
Nice alternative module for benchmarking with a different interface
than Benchmark (marking portion of code to be benchmarked with start
and stop). <br><br>For most Perl programmers familiar to the core
module Benchmark, I recommend looking at Benchmark::Dumb first
though. It has an interface like Benchmark (cmpthese() et all) but
with some statistical confidence.
Getargs::Long
Author: DCOPPIT <https://metacpan.org/author/DCOPPIT>
Nice idea, but some performance concerns. If you want to use
cgetargs (the compiled, faster version), you are restricted to the
getargs() interface, which only features checking for required
( run in 1.578 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )