Acme-CPANModules-Import-CPANRatings-User-perlancar

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN


    This list is generated by scraping CPANRatings (cpanratings.perl.org)
    user page.

ACME::CPANMODULES ENTRIES
    LWP::JSON::Tiny
        Author: SKINGTON <https://metacpan.org/author/SKINGTON>

        I'm not sure this really &quot;befits a ::Tiny distribution&quot;
        just because it's a thin wrapper of something. Please read: <a
        href="http://blogs.perl.org/users/dan_muey/2014/08/please-dont-use-t
        iny-unless-it-meets-the-tiny-criteria-thanks.html"
        rel="nofollow">blogs.perl.org/users/dan_muey/2014/08...</a> or the
        Tiny mandate e.g. in <a
        href="https://metacpan.org/pod/Time::Tiny#The-Tiny-Mandate"
        rel="nofollow">metacpan.org/pod/Time::Tiny#The-Tiny-...</a>

    Acme::CPANRatings
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>

        After the last template change of the website which is one year ago,
        &quot;Was this review helpful&quot; links no longer works. <a
        href="https://github.com/perlorg/perlweb/issues/232"

README  view on Meta::CPAN

        Author: JJSCHUTZ <https://metacpan.org/author/JJSCHUTZ>

        Interesting features, but mooseware.

        Rating: 6/10

    Algorithm::Dependency
        Author: ETHER <https://metacpan.org/author/ETHER>

        Happily returns result when graph is cyclic (and thus proper
        topological sorting cannot be done). See also Data::Graph::Util for
        a simpler alternative. <br>

        Rating: 6/10

    Data::Match
        Author: KSTEPHENS <https://metacpan.org/author/KSTEPHENS>

        (Reviewing Sort::Topological, which is included in Data-Match
        distribution at the time of this review). <br><br>Hangs when given a
        dependency like: a =&gt; [&quot;a&quot;]. Happily returns result
        when graph is cyclic (and thus proper topological sorting cannot be
        done). See also Data::Graph::Util for alternative. <br>

        Rating: 4/10

    File::Find::Wanted
        Author: PETDANCE <https://metacpan.org/author/PETDANCE>

        File::Find lacks the &quot;making easy things easy&quot; part, so
        modules like this are great. A further step would be an option to
        omit $wanted for even simpler cases, but that would probably break

README  view on Meta::CPAN

        Author: KNORR <https://metacpan.org/author/KNORR>

        The &quot;checksum&quot; (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. <br>

    WordPress::XMLRPC
        Author: IGIBBS <https://metacpan.org/author/IGIBBS>

        Still works, partially, but in general out of date. For example, to
        get post the deprecated metaWeblog.getPost API method is still used
        instead of the newer wp.getPost call (which understandably is only
        introduced in WordPress 3.4, while this module is last updated with
        WordPress 2.8.4). And apparently wordpress.com doesn't return
        post_content anymore when you use metaWeblog.getPost.
        <br><br>Luckily, performing XMLRPC request directly is easy enough.
        Just use XMLRPC::Lite and peruse the Wordpress documentation here:
        <a href="https://codex.wordpress.org/XML-RPC_WordPress_API"
        rel="nofollow">codex.wordpress.org/XML-RPC_WordPress...</a>

    Text::Levenshtein::Flexible
        Author: MBETHKE <https://metacpan.org/author/MBETHKE>

        My new favorite Levenshtein distance module. It's as fast (if not
        faster) than Text::Levenshtein::XS and can provide a speed boost if

README  view on Meta::CPAN

        created HTTP::Tinyish.

    File::Util
        Author: TOMMY <https://metacpan.org/author/TOMMY>

        Point for documentation (lots of examples and cookbook). But the
        recipes in the cookbook currently don't really entice me to use the
        module. Let's see: <br><br>1) batch file rename: it's much simpler
        to use 'rename' or 'perlmv' utility. Or, it's much shorter to just
        use plain perl like 'for (grep {-f} &lt;*&gt;) { rename $*,
        s/.log$/.txt/r }'. <br><br>2) recursively remove a directory tree:
        it's much shorter to just use 'File::Path::remove*tree()'.
        <br><br>3) increment a counter file: no locking (it's classic 1990's
        counter.cgi race condition all over again). Take a look at, for
        example, The Perl Cookbook chapter 7.11. Or I think one of Randal
        Schwartz's articles. <br><br>As an alternative, one can also take a
        look at Path::Tiny.

    Common::Routine
        Author: PEKINGSAM <https://metacpan.org/author/PEKINGSAM>

README  view on Meta::CPAN


    Carp::Always
        Author: FERREIRA <https://metacpan.org/author/FERREIRA>

        This module works well for string exceptions (e.g. die &quot;some
        message&quot;), but for ref/object exceptions (e.g. die
        [404,&quot;Not found&quot;] 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>

README  view on Meta::CPAN

        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-&gt;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 &amp;&amp; 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

README  view on Meta::CPAN

        arguments and supplying default value. In which case you might as
        well use Params::Validate directly as it's several times (e.g. 3-4x)
        faster. <br><br>If you want to use the more featured xgetargs, there
        is currently no compiled version. <br><br>All in all, I think users
        should take a look at Params::Validate first.

    Debug::Easy
        Author: RKELSCH <https://metacpan.org/author/RKELSCH>

        Not as easy as the name might claim. First of all, why do users need
        to pass LINE explicitly for every call??? Other logging modules will
        get this information automatically via caller(). <br><br>Levels are
        a bit confusing: why is debug split to 2 (or 3)? <br><br>Not as
        flexible as it should be because the design conflates some things
        together. For example, most levels output to STDERR but some level
        (VERBOSE) outputs to STDOUT instead. The output concern and levels
        should've been separated. Another example would be the DEBUGWAIT
        level, where level is DEBUG *and* execution is halted (wait on a
        keypress) on log. What if users want a lower level setting *but*
        want execution to be halted on log? The halt/keypress setting
        should've been separated from the level.

        Rating: 4/10

    File::Slurper
        Author: LEONT <https://metacpan.org/author/LEONT>

        Who'da thought that something as seemingly simple as &quot;slurping
        a file into a string&quot; would need several modules and false
        starts? Well, if you add encodings, Perl I/O layers, scalar/list

README  view on Meta::CPAN


    Signal::StackTrace::CarpLike
        Author: SARTAK <https://metacpan.org/author/SARTAK>

        Nice, but Signal::StackTrace should've output something carp-like in
        the first place.

    Devel::Messenger
        Author: KOLIBRIE <https://metacpan.org/author/KOLIBRIE>

        I think this is basically logging under a fancy name and with a more
        cumbersome interface. Look at Log::Any instead.

    Term::Twiddle
        Author: SCOTTW <https://metacpan.org/author/SCOTTW>

        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. <br>

    CHI Author: ASB <https://metacpan.org/author/ASB>

devdata/perlancar  view on Meta::CPAN

      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/">
            
            <img src="//cdn.perl.org/perlweb/images/logo_cpanratings.svg" alt="Reviews by perlancar | Perl, modern programming" class="page-logo">
          </a>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
          
<ul class="list-inline text-center nav navbar-nav navbar-right">
    <li class="sub">
        <a href="/search">Search</a>
    </li>
    <li class="sub">
        <a href="/about.html">About</a>
    </li>
    <li class="sub">
        <a href="https://log.perl.org/2018/06/cpan-ratings-read-only.html">
          <b>Read-Only</b>
        </a>
    </li>
</ul>


        </div><!--/.nav-collapse -->
      </div>
    </nav>

devdata/perlancar  view on Meta::CPAN


   (<a href="https://metacpan.org/release/LWP-JSON-Tiny/">0.014</a>)



</h3>



<blockquote class="review_text">
I'm not sure this really &quot;befits a ::Tiny distribution&quot; just because it's a thin wrapper of something. Please read: <a href="http://blogs.perl.org/users/dan_muey/2014/08/please-dont-use-tiny-unless-it-meets-the-tiny-criteria-thanks.html" re...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2018-05-15T07:36:16
(<a href="/dist/LWP-JSON-Tiny#13242">permalink</a>)
</p>

<div class="helpfulq">

devdata/perlancar  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-3.0.png" alt="***">

</h3>



<blockquote class="review_text">
Happily returns result when graph is cyclic (and thus proper topological sorting cannot be done). See also Data::Graph::Util for a simpler alternative.
<br>

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2017-04-03T04:25:43
(<a href="/dist/Algorithm-Dependency#13052">permalink</a>)
</p>

devdata/perlancar  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-2.0.png" alt="**">

</h3>



<blockquote class="review_text">
(Reviewing Sort::Topological, which is included in Data-Match distribution at the time of this review).
<br><br>Hangs when given a dependency like: a =&gt; [&quot;a&quot;]. Happily returns result when graph is cyclic (and thus proper topological sort...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2017-04-03T04:23:55
(<a href="/dist/Data-Match#13050">permalink</a>)
</p>

devdata/perlancar  view on Meta::CPAN


   (<a href="https://metacpan.org/release/WordPress-XMLRPC/">1.23</a>)



</h3>



<blockquote class="review_text">
Still works, partially, but in general out of date. For example, to get post the deprecated metaWeblog.getPost API method is still used instead of the newer wp.getPost call (which understandably is only introduced in WordPress 3.4, while this module ...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2016-11-04T17:07:47
(<a href="/dist/WordPress-XMLRPC#12904">permalink</a>)
</p>

<div class="helpfulq">

devdata/perlancar  view on Meta::CPAN


   (<a href="https://metacpan.org/release/File-Util/">4.161200</a>)



</h3>



<blockquote class="review_text">
Point for documentation (lots of examples and cookbook). But the recipes in the cookbook currently don't really entice me to use the module. Let's see:
<br><br>1) batch file rename: it's much simpler to use 'rename' or 'perlmv' utility. Or, it's much...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2016-04-30T06:25:52
(<a href="/dist/File-Util#12782">permalink</a>)
</p>

<div class="helpfulq">

devdata/perlancar  view on Meta::CPAN

   (<a href="https://metacpan.org/release/Carp-Always/">0.13</a>)



</h3>



<blockquote class="review_text">
This module works well for string exceptions (e.g. die &quot;some message&quot;), but for ref/object exceptions (e.g. die [404,&quot;Not found&quot;] or die $some_object) it will simply print/return the ref/object and thus no stack trace information ...
<a href="http://blogs.perl.org/users/graham_knop/2013/09/carp-always-evenobjects.html" rel="nofollow">blogs.perl.org/users/graham_knop/2013...</a>
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2015-06-18T21:30:23
(<a href="/dist/Carp-Always#12196">permalink</a>)
</p>

<div class="helpfulq">

devdata/perlancar  view on Meta::CPAN


   (<a href="https://metacpan.org/release/Log-Declare/">0.10</a>)



</h3>



<blockquote class="review_text">
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-&gt;info(blah);
<br><br>then this module clearly demonstrates it...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2015-03-24T04:17:14
(<a href="/dist/Log-Declare#12110">permalink</a>)
</p>

<div class="helpfulq">

devdata/perlancar  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-2.0.png" alt="**">

</h3>



<blockquote class="review_text">
Not as easy as the name might claim. First of all, why do users need to pass __LINE__ explicitly for every call??? Other logging modules will get this information automatically via caller(). 
<br><br>Levels are a bit confusing: why is debug split to ...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2015-03-22T23:15:12
(<a href="/dist/Debug-Easy#12104">permalink</a>)
</p>

<div class="helpfulq">

devdata/perlancar  view on Meta::CPAN


   (<a href="https://metacpan.org/release/Devel-Messenger/">0.02</a>)



</h3>



<blockquote class="review_text">
I think this is basically logging under a fancy name and with a more cumbersome interface. Look at Log::Any instead.
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2014-10-11T18:34:35
(<a href="/dist/Devel-Messenger#11963">permalink</a>)
</p>

<div class="helpfulq">

devdata/perlancar  view on Meta::CPAN


    <div class="container-fluid space-top-xl">
      <footer class="row">
        
        <div class="footer">

        
          <ul class="col-xs-12 col-sm-2 list-unstyled">
            <li><h4>Perl.org</h4></li>
            <li><a href="http://www.perl.org/">www</a></li>
            <li><a href="http://blogs.perl.org/">blogs</a></li>
            <li><a href="http://jobs.perl.org/">jobs</a></li>
            <li><a href="http://learn.perl.org/">learn</a></li>
            <li><a href="http://dev.perl.org/">dev</a></li>
          </ul>
          <ul class="col-xs-12 col-sm-2 list-unstyled">
            <li><h4>Connect</h4></li>
            <li><a href="/siteinfo.html">Site Info</a></li>
            <!--li><a href="#" class="links">Facebook</a></li>
            <li><a href="#" class="links">Twitter</a></li-->
          </ul>

devscript/update  view on Meta::CPAN

    {
        users => ['perlancar'],
        user_agent => 'Mozilla/5.0',
        dist_dir => "$Bin/..",
    },
    'app',
);

Perinci::CmdLine::Any->new(
    url => '/main/app',
    log => 1,
)->run;

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN

package Acme::CPANModules::Import::CPANRatings::User::perlancar;

use strict;

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-10-29'; # DATE
our $DIST = 'Acme-CPANModules-Import-CPANRatings-User-perlancar'; # DIST
our $VERSION = '0.002'; # VERSION

our $LIST = {description=>"This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.",entries=>[{description=>"\nI'm not sure this really &quot;befits a ::Tiny distribution&quot; just because it's a thin wrapper of something. P...

1;
# ABSTRACT: List of modules mentioned by CPANRatings user perlancar

__END__

=pod

=encoding UTF-8

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN

This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.

=head1 ACME::CPANMODULES ENTRIES

=over

=item L<LWP::JSON::Tiny>

Author: L<SKINGTON|https://metacpan.org/author/SKINGTON>

I'm not sure this really &quot;befits a ::Tiny distribution&quot; just because it's a thin wrapper of something. Please read: <a href="http://blogs.perl.org/users/dan_muey/2014/08/please-dont-use-tiny-unless-it-meets-the-tiny-criteria-thanks.html" re...


=item L<Acme::CPANRatings>

Author: L<PERLANCAR|https://metacpan.org/author/PERLANCAR>

After the last template change of the website which is one year ago, &quot;Was this review helpful&quot; links no longer works. <a href="https://github.com/perlorg/perlweb/issues/232" rel="nofollow">github.com/perlorg/perlweb/issues/232</a>
<br>


lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN


Interesting features, but mooseware.


Rating: 6/10

=item L<Algorithm::Dependency>

Author: L<ETHER|https://metacpan.org/author/ETHER>

Happily returns result when graph is cyclic (and thus proper topological sorting cannot be done). See also Data::Graph::Util for a simpler alternative.
<br>


Rating: 6/10

=item L<Data::Match>

Author: L<KSTEPHENS|https://metacpan.org/author/KSTEPHENS>

(Reviewing Sort::Topological, which is included in Data-Match distribution at the time of this review).
<br><br>Hangs when given a dependency like: a =&gt; [&quot;a&quot;]. Happily returns result when graph is cyclic (and thus proper topological sorting cannot be done). See also Data::Graph::Util for alternative.
<br>


Rating: 4/10

=item L<File::Find::Wanted>

Author: L<PETDANCE|https://metacpan.org/author/PETDANCE>

File::Find lacks the &quot;making easy things easy&quot; part, so modules like this are great. A further step would be an option to omit $wanted for even simpler cases, but that would probably break the interface. Another alternative is File::Finder,...

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN

Author: L<KNORR|https://metacpan.org/author/KNORR>

The &quot;checksum&quot; (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.
<br>


=item L<WordPress::XMLRPC>

Author: L<IGIBBS|https://metacpan.org/author/IGIBBS>

Still works, partially, but in general out of date. For example, to get post the deprecated metaWeblog.getPost API method is still used instead of the newer wp.getPost call (which understandably is only introduced in WordPress 3.4, while this module ...
<br><br>Luckily, performing XMLRPC request directly is easy enough. Just use XMLRPC::Lite and peruse the Wordpress documentation here: <a href="https://codex.wordpress.org/XML-RPC_WordPress_API" rel="nofollow">codex.wordpress.org/XML-RPC_WordPress......


=item L<Text::Levenshtein::Flexible>

Author: L<MBETHKE|https://metacpan.org/author/MBETHKE>

My new favorite Levenshtein distance module. It's as fast (if not faster) than Text::Levenshtein::XS and can provide a speed boost if you don't care about distances above a certain limit. Which I think in many cases is true.


lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN

Author: L<PINE|https://metacpan.org/author/PINE>

There are a few use-cases where this would be useful (mostly, to access https websites in the absence of required perl library like LWP::Protocol::https), but it would be more useful to provide an API that is already familiar to Perl programmers. Tha...


=item L<File::Util>

Author: L<TOMMY|https://metacpan.org/author/TOMMY>

Point for documentation (lots of examples and cookbook). But the recipes in the cookbook currently don't really entice me to use the module. Let's see:
<br><br>1) batch file rename: it's much simpler to use 'rename' or 'perlmv' utility. Or, it's much shorter to just use plain perl like 'for (grep {-f} &lt;*&gt;) { rename $I<< , s/.log$/.txt/r }'.
<br><br>2) recursively remove a directory tree: it's much shorter to just use 'File::Path::remove >>tree()'.
<br><br>3) increment a counter file: no locking (it's classic 1990's counter.cgi race condition all over again). Take a look at, for example, The Perl Cookbook chapter 7.11. Or I think one of Randal Schwartz's articles.
<br><br>As an alternative, one can also take a look at Path::Tiny.


=item L<Common::Routine>

Author: L<PEKINGSAM|https://metacpan.org/author/PEKINGSAM>

A couple of comments:

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN



=item L<Carp::Always>

Author: L<FERREIRA|https://metacpan.org/author/FERREIRA>

This module works well for string exceptions (e.g. die &quot;some message&quot;), but for ref/object exceptions (e.g. die [404,&quot;Not found&quot;] or die $some_object) it will simply print/return the ref/object and thus no stack trace information ...
<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-evenobjects.html" rel="nofollow">blogs.perl.org/users/graham_knop/2013...</a>


=item L<experimental>

Author: L<LEONT|https://metacpan.org/author/LEONT>

Our prayer has been answered. experimental was added to perl core in 5.19.11


=item L<Exporter::Lite>

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN

<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.


=item L<Log::Declare>

Author: L<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-&gt;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 &amp;&amp; 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).


=item L<Benchmark::Timer>

Author: L<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.

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN


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 arguments and supplying default value. In which case you mi...
<br><br>If you want to use the more featured xgetargs, there is currently no compiled version.
<br><br>All in all, I think users should take a look at Params::Validate first. 


=item L<Debug::Easy>

Author: L<RKELSCH|https://metacpan.org/author/RKELSCH>

Not as easy as the name might claim. First of all, why do users need to pass B<LINE> explicitly for every call??? Other logging modules will get this information automatically via caller(). 
<br><br>Levels are a bit confusing: why is debug split to 2 (or 3)? 
<br><br>Not as flexible as it should be because the design conflates some things together. For example, most levels output to STDERR but some level (VERBOSE) outputs to STDOUT instead. The output concern and levels should've been separated. Another e...


Rating: 4/10

=item L<File::Slurper>

Author: L<LEONT|https://metacpan.org/author/LEONT>

Who'da thought that something as seemingly simple as &quot;slurping a file into a string&quot; would need several modules and false starts? Well, if you add encodings, Perl I/O layers, scalar/list context, DWIM-ness, ... it can get complex and buggy....

lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm  view on Meta::CPAN


Author: L<SARTAK|https://metacpan.org/author/SARTAK>

Nice, but Signal::StackTrace should've output something carp-like in the first place.


=item L<Devel::Messenger>

Author: L<KOLIBRIE|https://metacpan.org/author/KOLIBRIE>

I think this is basically logging under a fancy name and with a more cumbersome interface. Look at Log::Any instead.


=item L<Term::Twiddle>

Author: L<SCOTTW|https://metacpan.org/author/SCOTTW>

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.
<br>




( run in 0.236 second using v1.01-cache-2.11-cpan-a5abf4f5562 )