view release on metacpan or search on metacpan
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
Dist::Zilla::Plugin::Hook
Author: VDB <https://metacpan.org/author/VDB>
Great for debugging. Just whip up some code in dist.ini to e.g. dump
& print some stuffs, etc.
File::Tail::Dir
Author: JJSCHUTZ <https://metacpan.org/author/JJSCHUTZ>
Interesting features, but mooseware.
Rating: 6/10
Algorithm::Dependency
Rating: 2/10
JSON::MultiValueOrdered
Author: 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 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
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
go straight to the Python script. <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 times a full time job. Nothing else comes remotely
close.
XXX Author: 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
["some", $expr]; <br><br>to this (taking an example from
another dumping module, Data::Dump): <br><br>my $tmp =
["some", $expr]; dd $tmp; return $tmp; <br><br>but just
this: <br><br>return YYY ["some", $expr]; <br><br>This
should be imitated by the other dumper functions.
FAQ
What is an Acme::CPANModules::* module?
An Acme::CPANModules::* module, like this module, contains just a list
devdata/perlancar view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
Great for debugging. Just whip up some code in dist.ini to e.g. dump & print some stuffs, etc.
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2017-07-06T19:26:55
(<a href="/dist/Dist-Zilla-Plugin-Hook#13110">permalink</a>)
</p>
<div class="helpfulq">
devdata/perlancar view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
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...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2015-09-30T03:31:32
(<a href="/dist/JSON-MultiValueOrdered#12266">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
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
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 ["some", $expr];
<br><br>to this (taking an examp...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/perlancar">perlancar</a> - 2014-08-29T02:09:47
(<a href="/dist/XXX#11890">permalink</a>)
</p>
<div class="helpfulq">
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
lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm view on Meta::CPAN
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 & print some stuffs, etc.
=item L<File::Tail::Dir>
Author: L<JJSCHUTZ|https://metacpan.org/author/JJSCHUTZ>
Interesting features, but mooseware.
Rating: 6/10
lib/Acme/CPANModules/Import/CPANRatings/User/perlancar.pm view on Meta::CPAN
From the doc: "This module generates one's Chinese zodiac. However, for those born in late January to early February, it may be wrong." 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>
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 "slurping a file into a string" 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
=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 ["some", $expr];
<br><br>to this (taking an example from another dumping module, Data::Dump):
<br><br>my $tmp = ["some", $expr]; dd $tmp; return $tmp;
<br><br>but just this:
<br><br>return YYY ["some", $expr];
<br><br>This should be imitated by the other dumper functions.
=back