Acme-CPANModules-Import-CPANRatings-User-stevenharyanto
view release on metacpan or search on metacpan
App::Trace
Author: SPADKINS <https://metacpan.org/author/SPADKINS>
The name and abstract is slightly inaccurate/misleading. This module
is supposed to be a general logging framework instead of just
subroutine entry/exit tracer. For alternative subroutine tracer, I'd
recommend Devel::TraceSubs or Devel::TraceCalls (or even
Devel::Trace + variants). <br><br>Not very convenient to use. It
still requires you to put 'if $App::Trace' clause everytime. For
general logging that can be switched on/off upon runtime, I'd
recommend using Log::Any instead. <br><br>Lastly, this module is
tied to App::Options and thus only really usable if you use both.
Tie::Hash::Identity
Author: CINDY <https://metacpan.org/author/CINDY>
Hash::Identity has a use case of convenience when embedding
expression in double-quote strings. I fail to see the point of
Tie::Hash::Identity though. Can't you just say: <br><br>'abc' eq
'abc'; # true <br><br>(1+2+3) eq '6'; # true <br>
Hash::Identity
Author: CINDY <https://metacpan.org/author/CINDY>
At first I thought, hey, cute trick. But then Perl already has:
<br><br>print "You could use expr like this:
${(2**3)}.\n"; <br><br>print "Or you could use ident ${(
'a' . 'b' )} as well.\n"; <br><br>So you're trading a backslash
and a couple of parentheses against having to depend on a non-core
module and making your code reader raise her eyebrow when she first
sees your code. Pick your poison :-) <br><br>I wonder if this
belongs in Acme:: <br><br>On the other hand and slightly off-topic,
a module that can do Perl6-style interpolation (lexically) would be
cool, I think: <br><br>$s = "perl${(6-1)}-style
interpolation"; <br> { <br><br>use v6str; <br><br>$s =
"perl{ 5+1 }-style interpolation"; <br> } <br>
Data::Structure::Util
Author: ANDYA <https://metacpan.org/author/ANDYA>
@Tom Browder: If you just need unblessing, there's also another
module Acme::Damn which is more minimalist. You can also create a
shallow copy to unbless a reference, if you want to do it without
the help of any module (Both Acme::Damn and Data::Structure::Util
are XS modules, JFYI). <br><br>Re Data::Structure::Util: nifty
module that provides speedy alternative for several things like
checking for circular references, weaken them, unblessing a
reference, etc. You can do many of the routines in pure Perl. This
module lets you do them in C. <br>
Fsdb
Author: JOHNH <https://metacpan.org/author/JOHNH>
An interesting tool that has been developed since 1991 (which is
roughly around the time the WWW and Linux was born, whew). Kudos to
the author for the dedication and consistency. <br><br>Since
nowadays SQL is pretty much ubiquitous, users might also want to
check out an alternative tool, App::fsql. For example (taking a
similar example from the module's doc), to select entries in
/etc/passwd where UID is between 1000 and 2000: <br><br>$ ( echo -e
"login\tpassword\tuid\tgid\tgecos\thome\tshell"; sed
's/:/\t/g' /etc/passwd ) | fsql --add-tsv - 'SELECT * FROM stdin
WHERE uid >= 1000 AND uid <= 2000' --format text --aoh
Date::Tie
Author: FGLOCK <https://metacpan.org/author/FGLOCK>
Cool, but personally I'd rather have something like JavaScript's
properties (since Perl does have lvalue subroutine support):
<br><br>$date->year = 2014; <br>
File::Slurp::Tiny
Author: LEONT <https://metacpan.org/author/LEONT>
More effort needs to be made with regards to documentation,
especially for File::Slurp users looking for alternatives. Why is
this module needed? What are the differences with File::Slurp? How
do the functions behave on I/O errors (since err_mode option is not
supported)? <br>
Clone::PP
Author: NEILB <https://metacpan.org/author/NEILB>
Thanks for providing a pure-Perl alternative for deep cloning.
Otherwise we are stuck with core module Storable's dclone, which
cannot handle Regexp objects out of the box, must use deparse to
handle coderefs, and not to mention is not as fast as it should be
because it's a marshall+unmarshall algrorithm (ab)used for deep
cloning. <br><br>Of course, there are faster XS-based cloning
modules on CPAN (all currently non-core, believe it or not there are
no core modules for cloning except Storable). I'd recommend
Data::Clone. But it's nice to have a pure-Perl implementation, e.g.
for creating a dependency-free script using App::FatPacker.
IPC::System::Simple
Author: JKEENAN <https://metacpan.org/author/JKEENAN>
This is a well-designed module with a good interface. The core
system()'s behavior of whether to invoke shell or not depending on
the number of arguments is ... unfortunate. This module fixes that.
<br><br>However, the previous review's comparing of
IPC::System::Simple with IPC::Run or IPC::Simple is rather
misguided. They focus on different things: IPC::System::Simple
focuses on providing shell/no-shell versions of invoking commands
and making a command's result easier to parse. It does not support
feeding text to STDIN, handlers for STDOUT/STDERR, timeouts, or the
other features that IPC::{Run,Cmd} support.
IPC::Cmd
Author: BINGOS <https://metacpan.org/author/BINGOS>
IPC::Cmd does its job, but the interface is inconsistent, probably
because a different author wrote run_forked() (and didn't follow the
same convention). run() accepts a hash of arguments, but
run_forked() accepts a scalar + hashref. run() returns a list, but
run_forked() returns a hashref. Command in run_forked() cannot be an
arrayref, but in run() it can be.
Umask::Local
Author: ROUZIER <https://metacpan.org/author/ROUZIER>
( run in 2.479 seconds using v1.01-cache-2.11-cpan-302cb4679cc )