Acme-CPANModules-Import-CPANRatings-User-perlancar

 view release on metacpan or  search on metacpan

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 "befits a ::Tiny distribution" 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

=head1 NAME

Acme::CPANModules::Import::CPANRatings::User::perlancar - List of modules mentioned by CPANRatings user perlancar

=head1 VERSION

This document describes version 0.002 of Acme::CPANModules::Import::CPANRatings::User::perlancar (from Perl distribution Acme-CPANModules-Import-CPANRatings-User-perlancar), released on 2023-10-29.

=head1 DESCRIPTION

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

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>


Rating: 2/10

=item L<Finance::Currency::Convert::WebserviceX>

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

No longer works. Sigh, looks like there is currently NO working generic currency converter module on CPAN anymore. Every converter module is either: 1) dead; 2) specific for some currencies only.
<br>


Rating: 2/10

=item L<Finance::Currency::Convert>

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

Uses hard-coded rates in the source code. Does not seem to work anymore: convert() returns zero even after updateRates().

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

<br><br>


=item L<DBIx::Compare>

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

Use MySQL-specific SQL dialect &quot;SHOW TABLES&quot; so comparing e.g. two SQLite database is an instant fail, even though there is DBIx::Compare::SQLite. Instead of the common convention like DBIx::Compare-&gt;new(...), uses db_comparison-&gt;new(...


Rating: 4/10

=item L<Perl::Critic>

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

Hey, Perl::Critic has not been reviewed for quite a while...
<br><br>Finally take the plunge (again) to include Perl::Critic in my development work, this time adding critic test in the Dist::Zilla release process. Already caught a couple of stupid bugs otherwise uncaught by perl's -w. Aside from that, will hel...


=item L<Config::Perl>

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

Rating Data::Undump::PPI, which currently lives inside Config-Perl:
<br><br>Of course this is a nice proof of concept, but for &quot;real world&quot; usage, look at Data::Undump which is about 2000x faster :)


=item L<Array::Contains>

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

Requires perl 5.20 for no particular reason. Claims to be replacement of smart match but only covers string comparison. Just use List::Util's first() which is more flexible and part of the core Perl distribution, or match::smart which covers more cas...


Rating: 2/10

=item L<Array::Unique>

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

Mostly unnecessary because this is just a glorified form of a widely known Perl idiom. Requires perl 5.20 for no particular reason. Re-sorts the list which is 99% not what user wants. Just use List::Util's uniq() which is faster and part of core dist...


Rating: 2/10

=item L<Dist::Zilla::Plugin::ReadmeFromPod>

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

Has some problems, e.g. it uses InstallTool phase so it conflicts with DZP:StaticInstall when wanting to produce a static install distro. Use alternatives like the simpler DZP:Pod2Readme or the more complex DZP:ReadmeAnyFromPod.
<br>


Rating: 2/10

=item L<Dist::Zilla::Plugin::Hook>

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

Great for debugging. Just whip up some code in dist.ini to e.g. dump &amp; print some stuffs, etc.


=item L<File::Tail::Dir>

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

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


Rating: 8/10

=item L<Hash::MD5>

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

Since this is essentially md5(dump($data)), why restrict yourself to hash? This works also for any kind of Perl data structure.


=item L<DateTime::Format::Docker>

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

Isn't this basically ISO8601 (see DateTime::Format::ISO8601)?


=item L<WWW::CPANRatings>

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

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



=item L<Tie::Scalar::Callback>

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

There is a prior art Tie::Simple (created in 2004) which works for scalar as well as the other types of ties that perl supports (array, hash, handle).
<br>


=item L<JSON::Create>

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

Review for 0.02: Performance-wise, still has some catching up to do against JSON::XS &amp; Cpanel::JSON::XS with regards to encoding arrays &amp; hashes.
<br><br>UPDATE review for 0.19: Giving it 4 stars now. Speed has been improving and on-par/slightly better than the other JSON XS modules in some areas, while a bit worse in some other areas. Faster modules are always welcome.


Rating: 8/10

=item L<Set::Scalar>

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

Confirming previous reviewer, the module is a lot slower (~ 20-40x) than other alternatives like Array::Utils or List::MoreUtils when you want to perform basic set operations like union/intersect/diff/symmetric diff.


=item L<Exporter::Easy>

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

I can see the value of Exporter::Easy (although these days the saving in typing is not as big, with plain Exporter one can just say: use Exporter 'import'; our @EXPORT = qw(a b c)).
<br><br>However I fail to see the value of Exporter::Easiest. I'd rather use plain Perl than some DDL which cannot be checked statically or cannot be syntax-highlighted, just to save some []'s and ()'s (which I can get my editor to help me type them)...
<br><br>In short, I'd rather use plain Exporter than save a few keystrokes but add a non-core dependency.


Rating: 6/10

=item L<App::cpm>

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

Due to parallel processes and defaulting on no_test, can be several times faster than cpanminus (tried installing a module on a vanilla perlbrew instance with local CPAN mirror, which pulled +- 200 distributions, &quot;cpanm -n&quot; took 2m9s, while...
<br>


=item L<Zodiac::Chinese>

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

From the doc: &quot;This module generates one's Chinese zodiac. However, for those born in late January to early February, it may be wrong.&quot; Well, a module that might return wrong results is not very useful.
<br>


Rating: 2/10

=item L<JSON::MultiValueOrdered>

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

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


=item L<JSON::Tiny>

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


=item L<Devel::Confess>

Author: L<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 &amp; dump function arguments (so you don't need a separate Carp::Always::Dump and Carp::Always::Color). Recommended.
<br>


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

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


=item L<Date::Holidays>

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


=item L<Furl>

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


=item L<Lingua::EN::Inflect>

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


=item L<Lingua::EN::PluralToSingular>

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


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


=item L<Getargs::Long>

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


=item L<File::Slurp>

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

Use the newer File::Slurper instead, which has a clearer API (e.g. text vs binary, array/lines vs string) and encoding default. It's arguably &quot;saner&quot; than File::Slurp and File::Slurp::Tiny.
<br>


=item L<File::Slurp::Tiny>

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

Use the newer File::Slurper instead, which has a clearer API (e.g. text vs binary, array/lines vs string) and encoding default. It's arguably &quot;saner&quot; than File::Slurp and File::Slurp::Tiny.
<br>


=item L<Perl::PrereqScanner::Lite>

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

A significantly faster alternative to Perl::PrereqScanner. It's I<almost> a drop-in replacement, there might still be some bugs in missing detecting some modules, and you still have to do several add_extra_scanner() calls like $scanner-&gt;add_extra_...
<br><br>


=item L<Logfile::Rotate>

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

First file rotating module I found and tried. Works, but needs to be modernized a bit. Indirect object notation in doc should be replaced. Bool option takes &quot;yes&quot; or &quot;no&quot;, should perhaps be 1 or 0. Capitalization adjustment, perha...
<br><br>


Rating: 6/10

=item L<File::ReadBackwards>

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

At the time of this review, I find two modules for reading a file backwards: File::Bidirectional (FBidi) and File::ReadBackwards (FRB).
<br><br>Both modules have roughly the same footprint and minimal dependencies. Both provide OO as well as tie interface. Both respect the $/ setting.
<br><br>FRB pro's:
<br>
- FRB is 15-20% faster than FBidi when reading backwards;
<br><br>FRB con's:
<br>
- does not offer the feature of reading forward as well, but of course this is not the goal of the module.
<br><br>FBidi's POD contains information on benchmarks (it's roughly an order of magnitude slower than raw Perl's open+read/diamond operator, still the case in 2014). While FRB's POD contains information on how the thing works behind the scenes.
<br><br>In summary, both modules are roughly the same. I'd prefer FRB unless in the rarer cases where I need bidirectional reading.

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

=item L<File::Bidirectional>

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

At the time of this review, I find two modules for reading a file backwards: File::Bidirectional (FBidi) and File::ReadBackwards (FRB).
<br><br>Both modules have roughly the same footprint and minimal dependencies. Both provide OO as well as tie interface. Both respect the $/ setting.
<br><br>FBidi pro's:
<br>
- has the unique feature of reading backward/forward and switch direction in the middle;
<br><br>FBidi con's:
<br>
- FBidi is 15-20% slower than FBidi when reading backwards;
<br>
- reading forward is just as slow as backward, so if you only need to read forward, obviously there's no need to use this module;
<br><br>FBidi's POD contains information on benchmarks (it's roughly an order of magnitude slower than raw Perl's open+read/diamond operator, still the case in 2014). While FRB's POD contains information on how the thing works behind the scenes.
<br><br>In summary, both modules are roughly the same. I'd prefer FRB unless in the rarer cases where I need bidirectional reading.
<br>


Rating: 8/10

=item L<Signal::StackTrace::CarpLike>

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>


=item L<CHI>

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

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?


=item L<App::YTDL>

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 I<Python> script to do its job. I might as ...
<br><br>UPDATE 2016-03-04: I guess it's been so for a few years, but this still needs to be said: For downloading YouTube videos, use youtube-dl (a far more popular Python project) and just forget the rest. Keeping up with YouTube changes is many tim...


=item L<XXX>

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

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:
<br><br>return [&quot;some&quot;, $expr];
<br><br>to this (taking an example from another dumping module, Data::Dump):
<br><br>my $tmp = [&quot;some&quot;, $expr]; dd $tmp; return $tmp;
<br><br>but just this:
<br><br>return YYY [&quot;some&quot;, $expr];
<br><br>This should be imitated by the other dumper functions.


=back

=head1 FAQ

=head2 What is an Acme::CPANModules::* module?

An Acme::CPANModules::* module, like this module, contains just a list of module
names that share a common characteristics. It is a way to categorize modules and
document CPAN. See L<Acme::CPANModules> for more details.

=head2 What are ways to use this Acme::CPANModules module?

Aside from reading this Acme::CPANModules module's POD documentation, you can
install all the listed modules (entries) using L<cpanm-cpanmodules> script (from
L<App::cpanm::cpanmodules> distribution):

 % cpanm-cpanmodules -n Import::CPANRatings::User::perlancar

Alternatively you can use the L<cpanmodules> CLI (from L<App::cpanmodules>
distribution):

    % cpanmodules ls-entries Import::CPANRatings::User::perlancar | cpanm -n

or L<Acme::CM::Get>:

    % perl -MAcme::CM::Get=Import::CPANRatings::User::perlancar -E'say $_->{module} for @{ $LIST->{entries} }' | cpanm -n

or directly:

    % perl -MAcme::CPANModules::Import::CPANRatings::User::perlancar -E'say $_->{module} for @{ $Acme::CPANModules::Import::CPANRatings::User::perlancar::LIST->{entries} }' | cpanm -n

This Acme::CPANModules module also helps L<lcpan> produce a more meaningful
result for C<lcpan related-mods> command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module.
See L<App::lcpan::Cmd::related_mods> for more details on how "related modules"
are found.

=head1 HOMEPAGE

Please visit the project's homepage at L<https://metacpan.org/release/Acme-CPANModules-Import-CPANRatings-User-perlancar>.

=head1 SOURCE

Source repository is at L<https://github.com/perlancar/perl-Acme-CPANModules-Import-CPANRatings-User-perlancar>.

=head1 SEE ALSO

L<Acme::CPANModules> - about the Acme::CPANModules namespace

L<cpanmodules> - CLI tool to let you browse/view the lists

=head1 AUTHOR



( run in 1.078 second using v1.01-cache-2.11-cpan-99c4e6809bf )