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


Rating: 2/10

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

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

Of limited use because of the site's restrictive license. UPDATE: And it no longer works.


Rating: 2/10

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

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

No longer works (not a surprise since this module has not been updated since almost 13 years ago).


Rating: 2/10

=item L<App::used>

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

Uses simple regex instead of properly parses Perl source code (PPI, Compiler::Lexer) so potentially lots of false positives. Better use existing solutions like Perl::PrereqScanner or Perl::PrereqScanner::Lite, which already come with their own CLI's.


=item L<Net::FTPServer>

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

Currently the only &quot;real&quot; module to create FTP servers in Perl. My suggestion would be to separate the Perl API documentation vs using the ftpd*.pl script, as the Net::FTPServer documentation currently mixes the two.


=item L<Games::Sudoku::CLI>

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

Early release, so not polished yet, but... cool! Thanks, Gabor. We need more CLI games!
<br>


=item L<PPR>

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

The coolest thing since PPI. Now every time someone still says that one can't parse HTML or balanced parentheses using regex, you can just point him to this module to shut him up (although, if he had said that one I<shouldn't>...).
<br><br>Also now you can say that Perl is a simple language that is easy to learn. Why? Well, it's so simple you can parse the whole syntax with a single regex.
<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>

To get the ratings for a single distribution, this client library needs to download /csv/all_ratings.csv (~80KB at the time of this writing) first. This is not the fault of the client because the website indeed does not provide the necessary ratings ...


Rating: 8/10

=item L<Parse::CPAN::Ratings>

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

Not as useful as the name implies. It requires you to download the CSV of all ratings first, which BTW does not seem to be advertised on the CPAN Ratings website. The CSV file only contains numeric ratings and does not include any reviews. So basical...
<br><br>One might want to look at WWW::CPANRatings instead.


Rating: 6/10

=item L<Acme::Curse>

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

This pure-perl module creates a shallow copy of the object instead of directly removing blessing from the same object (which requires XS). Acme::Damn is the more direct counterpart of bless().
<br>


=item L<Digest::SHA1>

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

Use Digest::SHA instead. In general, there is no reason in using Digest::SHA1 over Digest::SHA. The latter is a core Perl module, more updated, and implements the other algorithms while the former only implements SHA-1 which is now deprecated.
<br><br>


=item L<File::Checksum>

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.


=item L<CPAN::Changes>

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

Great and all, but one drawback is that it currently destroys original file's formatting in serialize().


=item L<Module::Changes::ADAMK>

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

Any module from ADAMK should be interesting, including this one. But please take a look at CPAN::Changes for the de facto standard nowadays.


=item L<Module::Metadata::Changes>

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

Like Module::Changes, this module also tries to use a more defined format for Changes. Sadly, it has not caught on. Please also take a look at CPAN::Changes which seems to be the de facto standard nowadays.


=item L<Module::Changes>

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

In general I'm not opposed to the idea of this module. The included 'changes' script is also pretty cool (which I'm trying to recreate, for CPAN::Changes).
<br><br>Just pointing out that I believe this module has not really &quot;caught on&quot; among the CPAN community. What has, is, CPAN::Changes which is followed by many authors and even employed on MetaCPAN.
<br>


=item L<Archive::Tar::Wrapper>

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

Sadly there is not a single perfect Archive::Tar::* module out there. Either a module offers incomplete API, (was) buggy, or it is crippled/limited in some way. Plus, the modules are mostly incompatible with one another. And that's why TIMTOWTDI.
<br><br>For the task of just listing files in an archive, for example, it seems only Archive::Tar and Archive::Tar::Wrapper are usable. Archive::Tar::Wrapper is fast (because it utilizes external C-based tar utility) and does not load all contents of...


=item L<Archive::Tar>

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

Sadly there is not a single perfect Archive::Tar::* module out there. Either a module offers incomplete API, (was) buggy, or it is crippled/limited in some way. Plus, the modules are mostly incompatible with one another. And that's why TIMTOWTDI.
<br><br>For the task of just listing files in an archive, for example, it seems only Archive::Tar and Archive::Tar::Wrapper are usable. Archive::Tar is a core module, but relatively slow, and extracts all contents of an archive in memory so it's not ...
<br>


=item L<Hash::Util::Pick>

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

One can easily use this idiom instead:
<br><br>$picked = { map {(exists $hash{$I<} ? ($>=&gt;$hash{$I<< }):())} @keys };
<br><br>or:
<br><br>$picked = { map {$ >>=&gt;$hash{$I<}} grep {exists $hash{$>}} @keys };
<br><br>or (if you want non-existing picked keys to be created instead):
<br><br>$picked = { map {$_ =&gt; $hash{$_}} @keys };
<br><br>but Hash::Util::Pick is implemented in XS and can be a few times faster than the above when the number of keys has reached thousands. So I guess this module has its uses.


=item L<NetObj::IPv4Address>

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

Cons: more heavyweight (requires Moo), limited operations/methods, can only handle IPv4 and not IPv6. Pros: some operations are faster than competing modules, e.g. validation. See also: NetAddr::IP, Net::CIDR.
<br>


=item L<NetObj::MacAddress>

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

Aside from being Moo-based (which, makes it a bit more heavyweight and with more dependencies), doesn't yet offer anything extra or more methods compared to previously existing modules like NetAddr::MAC.


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

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

I'd say in terms of footprint and runtime performance, this module is average (it's not the most lightweight nor the fastest pure-perl object system, not to mention against XS ones). See my Bencher::Scenarios::Accessors for a comparison, e.g. <a href...
<br><br>One drawback of using Mojo::Base and Object::Simple is its similar but slightly different and incompatible syntax with the Moo* family, so your code is not &quot;upgradable&quot; to Moo or Moose once you need more features. And often you'll e...
<br><br>I'd recommend instead Mo. It's more lightweight than Object::Simple and you can do default value, builder, ro/rw, required, even coercion. But the features are modular and you only pay for what you use. And once you need more features later, ...
<br><br>Of course, this point is moot if you don't care about compatibility/upgradability to Moo*.


Rating: 6/10

=item L<Test::Needs>

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

Nice. API is more convenient to use than Test::Requires, especially if you use subtests.
<br>


=item L<HTTP::Command::Wrapper>

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:
<br><br>* Some functions like min(), max(), etc need not be reinvented because they are already in core module List::Util. But I guess the author wants to be able to say min([1,2,3]) in addition to min(1,2,3).
<br><br>* round() uses Number::Format, note that rounding number using this module is hundreds of times slower than using sprintf().
<br><br>


=item L<Submodules>

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

A couple of prior arts:
<br><br>* all, <a href="https://metacpan.org/pod/all" rel="nofollow">metacpan.org/pod/all</a> (since 2003), nicer interface and offers &quot;use&quot;/compile-time interface, so it's more equivalent to the statements it wants to replace. The Submodul...
<br><br>* Module::Require, <a href="https://metacpan.org/pod/Module::Require" rel="nofollow">metacpan.org/pod/Module::Require</a> (since 2001), also nicer interface, more flexible, and more lightweight implementation.
<br><br>I don't like Submodules' interface, it's too verbose and clunky. IMO, the interface should be a one-liner and without manual looping. 


=item L<Regexp::Assemble>

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

I guess it depends on your data, but for random shortish strings (hundreds to thousands of them), I find that using raw joining is much faster to assemble the regex. And the resulting regex is also (much) faster to match. Please see Bencher::Scenario...


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



( run in 0.673 second using v1.01-cache-2.11-cpan-c966e8aa7e8 )