Acme-CPANModules-Import-CPANRatings-User-stevenharyanto
view release on metacpan or search on metacpan
Author: KUERBIS <https://metacpan.org/author/KUERBIS>
A nice, minimalistic, terminal-based user interface for browsing
your database and tables. Might be useful for simple cases.
<br><br>It would be *much* more useful if usernames/passwords,
queries, and other settings can be saved in a config/session file.
<br>
Locale::Maketext
Author: TODDR <https://metacpan.org/author/TODDR>
Users might want to check out this article on why one should perhaps
use Locale::TextDomain instead of Locale::Maketext: <a
href="http://www.perladvent.org/2013/2013-12-09.html"
rel="nofollow">www.perladvent.org/2013/2013-12-09.html</a>
Curses::Toolkit
Nice effort, but one might also want to look at Tickit, which is not
curses-based and looks more promising. Being based on Curses, this
module still suffers from the many bugs and limitations of curses.
The lack of Shift-Tab support, for one. <br><br>See also: <a
href="http://www.perlmonks.org/?node_id=1059926"
rel="nofollow">www.perlmonks.org/?node_id=1059926</a> <br><br>As I
explore doing TUI more, I will update the reviews. <br>
Moo::Lax
Author: DAMS <https://metacpan.org/author/DAMS>
Great idea! I've been bitten and annoyed by strictures on more than
one occasion. It has its uses, but users should have a choice on how
to react to warnings. <br>
App::YTDL
This module is based on WWW::YouTube::Download but its documentation
does not yet explain how it differs from WWW::YouTube::Download.
From what I see at a glance, App::YTDL supports downloading a video
from a playlist and setting download speed limit, but perhaps the
author should do the mode detailed explaining to help users when to
choose between the two. <br>
Data::CompactDump
Author: MILSO <https://metacpan.org/author/MILSO>
At the current form, simply too simplistic to be an alternative to
Data::Dump or Data::Dumper. No support for blessed refs,
filehandle/globs, circular references, and so on. Changes numbers to
stringy numbers or vice versa. <br><br>Currently also contains some
bugs like for -1 (changes it to string), "\" (produces
invalid dump, does not handle backslash yet currently), <br><br>And
Data::Dump's dump of {} and [] are currently more compact ;-)
<br><br>Need to be improved significantly first. But keep up the
effort.
P Author: LAWALSH <https://metacpan.org/author/LAWALSH>
I personally don't mind the namespace choice. There are other
single-letter CPAN modules too like B, L, U, V. If you have a beef
with regard to namespace, don't single out P and perhaps downvote
the other modules too. <br><br>Having said that, I would like to
comment on the design and implementation of this module. <br><br>1)
The choice of Unicode character U+2204 as representation of undef.
Unless one does something like 'binmode STDOUT, ":utf8"',
with 'say P undef' I am just trading one warning ("Use of
uninitialized value") with another ("Wide character in
say/print"). The wide character warning is avoided if you do 'P
"%s", undef' though, which means... <br><br>2) P loads
utf8 by default. For ultra-lightweight cases, this is sometimes not
desirable. There is currently no way to turn this off. <br><br>3)
The arbitrary choice of three levels deep when printing references.
This can be customized but with an unusual syntax. But again, the
arbitrary choice of three. <br><br>4) The "complex" rules
of newline printing. p() is like puts, it can optionally add a
newline. But unlike puts, the doc says it can also remove newlines.
The behavior can also change if the string to be printed ends with
0x83. <br><br>I might use P for a sprintf/printf replacement, but
for debugging values, I'd prefer something "dumber" like
Data::Dump::Color (or Data::Printer, if that's your thing).
Xporter
Author: LAWALSH <https://metacpan.org/author/LAWALSH>
A couple of comments. First, if you want to import the default
exports *as well as* some additional others, you can use Exporter's
feature (the :DEFAULT tag): <br><br>use SomeModule qw(:DEFAULT a b
c); <br><br>or you can also "use" twice: <br><br>use
SomeModule; # imports default exports <br><br>use SomeModule qw(a b
c); # import a, b, c <br><br>Second, if you use Xporter, your module
will behave unlike most CPAN modules out there, because a majority
of modules use Exporter. When people see this Perl code: <br><br>use
SomeModule qw(a b c); <br><br>normally they will expect only a, b,
and c are exported. If SomeModule uses Xporter, it will also by
default export the default exports. <br><br>Basically Xporter is
just Exporter with a different default (not arguably better or more
user-friendly). For the sake of minimizing surprise to my users, I
would avoid the use of Xporter. <br><br>UPDATE 2014-01-24: some
edits. I appreciate the effort of the author to defend her module,
though I am not convinced by her arguments.
Dist::Zilla::Shell
Author: DOLMEN <https://metacpan.org/author/DOLMEN>
Nice tool that lets you type dzil commands like 'build', 'test', etc
while sending all the other unknown commands like 'ls -l', 'man Foo'
to the underlying shell. Also lets you avoid multiple startup
overhead of dzil :-)
CPANPLUS::Shell::Curses
Author: MARCUS <https://metacpan.org/author/MARCUS>
Unmaintained. Installs but no longer runs.
Rating: 2/10
Task::Mechanistic
If you peek into its Makefile.PL, you'll see a seemingly
random/heterogenous collection of modules to install (instead of
just WWW::Mechanize). This is probably a Task::BeLike::$AUTHOR in
disguise. <br><br>
Sereal
Author: YVES <https://metacpan.org/author/YVES>
So far the best of the bunch. <br><br>FAST: much faster than
Storable, roughly the same speed as (sometimes slightly faster than)
Data::Clone for cloning. <br><br>FEATUREFUL: Can handle circular
references, Regexp objects (trips out-of-the-box Storable),
Module::Hash
Author: TOBYINK <https://metacpan.org/author/TOBYINK>
Wouldn't a function like
load_module("Math::Module")->new(42) be more obvious?
Is there a specific goal for using a tied hash (since there is
already %INC)?
Promises
Author: YANICK <https://metacpan.org/author/YANICK>
5-star for its documentation. <br>
Lingua::ITA::Numbers
Author: PETAMEM <https://metacpan.org/author/PETAMEM>
Does the author care to explain the sudden influx of
Lingua::<3-letter-code>:: modules (which look like mostly just
repackaging of their corresponding Lingua::<2-letter-code>::
modules with no mention of purpose in the PODs)? The original
modules are not orphaned either (for example, I still maintain
Lingua::ID::*). <br><br>No Changes file. Versioning synchronized for
all 3-letter modules with no indication of what version of the
2-letter-code module is used. For example, Lingua::ITA::Numbers' doc
still says "decimals don't work properly", while
Lingua::IT::Numbers' doesn't (however, needless use of
Regexp::Common does gets removed).
HTTP::Headers::Patch::DontUseStorable
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
@zaxon: I'm not sure if it's a bug with HTTP::Headers, more like a
workaround for Storable. See the FAQ in the updated v0.03 for more
details. <br>
Storable
Author: NWCLARK <https://metacpan.org/author/NWCLARK>
Balancing previous glowing reviews. Storable has it faults, for
example historically its track record for file format backwards
compatibility is poor, making programs fail when loading Storable
files after the module is upgraded. <br><br>Also, more importantly,
add builtin support for Regexp object already! It's almost 2013,
Regexp object has been around for, what, more than a decade? I can
understand not supporting serializing filehandle or coderef, but
Regexp object?
Rating: 2/10
WWW::YouTube::Download
Author: OALDERS <https://metacpan.org/author/OALDERS>
Works for me too ATM. I've tried several command-line scripts (most
of them Python-based, like youtube-dl, tubenick, etc). Sometimes
they work, sometimes they broke. It's the nature of this kind of
script. The quality comes from persistence. This module has been
maintained since 2009, through several YouTube's changes. I commend
the author, good job, and thanks!
Number::Zero
From the module's POD: "The number zero and undef are difficult
to determine in Perl." <br><br>Are they? <br><br>say
!defined($data) ? "undef" : "not undef";
<br><br>say defined($data) && $data==0 ? "zero" :
"not zero"; # yes, warn if non-numeric <br><br>use
Scalar::Util 'looks_like_number'; <br> say looks_like_number($data)
&& $data==0 ? "zero" : "not zero";
<br><br>Though I understand the need for a convenient
"is_zero" function if you need to test for zero in a
program a lot.
Syntax::SourceHighlight
Author: MATLIB <https://metacpan.org/author/MATLIB>
IMO, currently the only usable (read: non-crap) code syntax
highlighting library on CPAN. Cons: you'll need to install GNU
Source-highlight (and its development library/header) which pulls
over 100MB of packages on my Debian. <br>
Rating: 8/10
Syntax::Highlight::Engine::Kate
Author: MANWAR <https://metacpan.org/author/MANWAR>
Highlighter engine doesn't seem updated (for example, defined-or is
not yet interpreted correctly by this module but already correctly
by Kate itself). Does not provide default theme (must specify all
colors). Seem to be very slow (takes 1.5s for a 18K Perl .pm file
while Pygments only takes 0.2s). <br><br>
Rating: 2/10
Syntax::Highlight::JSON
Author: MART <https://metacpan.org/author/MART>
No documentation. Combines formatting and syntax-highlighting, so
you cannot preserve original formatting. Only outputs to HTML and no
default "theme" (CSS) provided. <br>
Rating: 2/10
Syntax::Highlight::Engine::Simple
Author: AKHUETTEL <https://metacpan.org/author/AKHUETTEL>
Output looks decent. However, it currently only formats to HTML/CSS
(no ANSI, LaTeX, etc). Also, it needs more languages support. <br>
Rating: 6/10
Syntax::Highlight::Universal
Author: PALANT <https://metacpan.org/author/PALANT>
Only targets (X)HTML (i.e. no alternative output like ANSI or
LaTeX). Supposedly slow. But it doesn't matter because code no
longer builds (last updated in 2005).
Rating: 2/10
text::highlight
Outdated (no longer updated), poor capability (even for some simple
Perl code, the output is atrocious), few languages supported. A far
cry from Pygments or coderay.
like(), is_deeply(), etc with just OK()? <br>
Rating: 4/10
HTML::Escape
Author: TOKUHIROM <https://metacpan.org/author/TOKUHIROM>
Still a bit slower than PHP's htmlspecialchars(), but in the same
ballpark. An order of magnitude faster than HTML::Entities. Does not
provide unescaping, but it's okay since escaping is the majority of
use cases.
Clone::Fast
Casual benchmarking on my PC shows that Data::Clone is up to twice
faster than this.
Rating: 6/10
Perl::Strip
Author: MLEHMANN <https://metacpan.org/author/MLEHMANN>
Balancing previous unhelpful review. Slowish (can't complain,
PPI-based) but works and comes with a command-line utility.
<br><br>Beware though that the command-line utility modifies file in
place without backup, without warning, and without option to create
backup. <br>
Rating: 8/10
Perl::Squish
Author: ADAMK <https://metacpan.org/author/ADAMK>
Have failed to build for 1.5 years (reported bug RT#66958 left
untouched, users need to install Module::Install first). No usage
documentation. <br><br>
Rating: 2/10
perlsecret
Author: BOOK <https://metacpan.org/author/BOOK>
Nice collection of perl shortcuts. Today I forgot about the name for
"x!!" and nicely found it in this module.
PerlX::ArraySkip
Author: TOBYINK <https://metacpan.org/author/TOBYINK>
Cute idea as always, though I'd rather use comments rather than
taking multiple sub calls hit.
App::perlfind
Author: MARCEL <https://metacpan.org/author/MARCEL>
A timesaver. Using it on a daily basis (aliased to "pod").
Thanks, Marcel!
PerlX::Maybe
Author: TOBYINK <https://metacpan.org/author/TOBYINK>
A nice syntax addition for avoiding passing or writing a bunch of
undefs. More convenient to write than using ternary operator or
grep. I'm beginning to adore syntax modules like this (as long as it
adds negligible overhead). <br><br>
File::Path::Tiny
Author: DMUEY <https://metacpan.org/author/DMUEY>
I like the concept, but do not like the overly short names mk() and
rm(). Instead of mk(), how about mkdir_p() or mkpath() like in
File::Path. Instead of rm(), how about rm_r() or rmtree() like in
File::Path. <br>
Rating: 6/10
Exporter::Lite
Author: NEILB <https://metacpan.org/author/NEILB>
2011-10-04: I am now using Exporter::Lite exclusively instead of
Exporter. Got bit once by Exporter when using for an OO module due
to clash of assigning to @ISA vs 'use base'. +1 for putting it into
core. <br><br>EDIT 2012-08-08: Nowadays I revert back to Exporter
most of the time because Exporter is core. To avoid @ISA issue, one
simply needs to import import() instead setting @ISA: <br><br>use
Exporter qw(import); <br>
YAML::Syck
Author: TODDR <https://metacpan.org/author/TODDR>
To be fair, in my experience YAML::Syck is not "much more
buggy" than ::XS. It even sometimes works with my YAML data
while ::XS crashes. Go figure.
Devel::FindPerl
Author: LEONT <https://metacpan.org/author/LEONT>
IMO the module should explain in the POD, in what cases using $^X is
not enough or how it is different from Probe::Perl. <br><br>Anyway,
quoting CPAN Testers' CPAN Authors FAQ, $^X is not enough when: <br>
1) perl was executed with a relative path and the script has
chdir()ed; 2) because $^X originates in C's argv[0] (in the main()
function) it is possible for the calling program to exec() in such a
way that argv[0] isn't the path to the interpreter; 3) HP/UX can do
weird stuff in scripts that use #!; 4) VMS. (Not clear about #4
though :) ).
Taint::Util
Author: AVAR <https://metacpan.org/author/AVAR>
IMO this is the best module to deal with tainting. BTW there are
several other modules like Taint (only provides taint + tainted, no
untaint), Untaint (only provides untaint with awkward interface,
like $v = untaint(qr/.../, $v)), Scalar::Util (only provides
tainted), Test::Taint (does not provide untaint but provides
taint_deeply and test predicates), and several others.
Markdown::Pod
Author: KEEDI <https://metacpan.org/author/KEEDI>
I use Markdown::Pod for my module Perinci::To::POD. <br><br>This
module does not output proper POD for many (not so) edge cases,
like: <br><br>">" and the likes are not yet escaped, producing
( run in 1.457 second using v1.01-cache-2.11-cpan-d80b1682f3f )