view release on metacpan or search on metacpan
# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.030.
Changes
LICENSE
MANIFEST
META.json
META.yml
Makefile.PL
README
devdata/stevenharyanto
devscript/update
dist.ini
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm
t/00-compile.t
t/author-critic.t
t/author-pod-coverage.t
t/author-pod-syntax.t
weaver.ini
"HTML::Form::XSS" : "0",
"HTTP::Headers::Patch::DontUseStorable" : "0",
"Hash::Identity" : "0",
"Hash::Ordered" : "0",
"IPC::Cmd" : "0",
"IPC::System::Simple" : "0",
"L" : "0",
"LWP::Curl" : "0",
"LWP::Protocol::Net::Curl" : "0",
"Lingua::ITA::Numbers" : "0",
"Lingua::Metadata" : "0",
"List::Pairwise" : "0",
"Locale::Geocode" : "0",
"Locale::Maketext" : "0",
"Locale::SubCountry" : "0",
"Log::Any" : "0",
"Log::AutoDump" : "0",
"Log::Fast" : "0",
"Log::Fine" : "0",
"Log::Handler" : "0",
"Log::Log4perl" : "0",
"HTML::Form::XSS" : "0",
"HTTP::Headers::Patch::DontUseStorable" : "0",
"Hash::Identity" : "0",
"Hash::Ordered" : "0",
"IPC::Cmd" : "0",
"IPC::System::Simple" : "0",
"L" : "0",
"LWP::Curl" : "0",
"LWP::Protocol::Net::Curl" : "0",
"Lingua::ITA::Numbers" : "0",
"Lingua::Metadata" : "0",
"List::Pairwise" : "0",
"Locale::Geocode" : "0",
"Locale::Maketext" : "0",
"Locale::SubCountry" : "0",
"Log::Any" : "0",
"Log::AutoDump" : "0",
"Log::Fast" : "0",
"Log::Fine" : "0",
"Log::Handler" : "0",
"Log::Log4perl" : "0",
"version" : "0.10"
},
{
"class" : "Dist::Zilla::Plugin::PodnameFromFilename",
"name" : "@Author::PERLANCAR/PodnameFromFilename",
"version" : "0.02"
},
{
"class" : "Dist::Zilla::Plugin::PERLANCAR::EnsurePrereqToSpec",
"config" : {
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000037",
"version" : "0.006"
}
},
"name" : "@Author::PERLANCAR/PERLANCAR::EnsurePrereqToSpec",
"version" : "0.064"
},
{
"class" : "Dist::Zilla::Plugin::PERLANCAR::MetaResources",
"name" : "@Author::PERLANCAR/PERLANCAR::MetaResources",
"version" : "0.043"
"version" : "0.001"
},
{
"class" : "Dist::Zilla::Plugin::CheckSelfDependency",
"config" : {
"Dist::Zilla::Plugin::CheckSelfDependency" : {
"finder" : [
":InstallModules"
]
},
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000037",
"version" : "0.006"
}
},
"name" : "@Author::PERLANCAR/CheckSelfDependency",
"version" : "0.011"
},
{
"class" : "Dist::Zilla::Plugin::Git::Contributors",
"config" : {
"Dist::Zilla::Plugin::Git::Contributors" : {
}
],
"include_underscores" : 0
},
"Dist::Zilla::Role::MetaProvider::Provider" : {
"$Dist::Zilla::Role::MetaProvider::Provider::VERSION" : "2.002004",
"inherit_missing" : 1,
"inherit_version" : 1,
"meta_noindex" : 1
},
"Dist::Zilla::Role::ModuleMetadata" : {
"Module::Metadata" : "1.000037",
"version" : "0.006"
}
},
"name" : "@Author::PERLANCAR/MetaProvides::Package",
"version" : "2.004003"
},
{
"class" : "Dist::Zilla::Plugin::PERLANCAR::Authority",
"name" : "@Author::PERLANCAR/PERLANCAR::Authority",
"version" : "0.001"
class: Dist::Zilla::Plugin::Rinci::AbstractFromMeta
name: '@Author::PERLANCAR/Rinci::AbstractFromMeta'
version: '0.10'
-
class: Dist::Zilla::Plugin::PodnameFromFilename
name: '@Author::PERLANCAR/PodnameFromFilename'
version: '0.02'
-
class: Dist::Zilla::Plugin::PERLANCAR::EnsurePrereqToSpec
config:
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000037'
version: '0.006'
name: '@Author::PERLANCAR/PERLANCAR::EnsurePrereqToSpec'
version: '0.064'
-
class: Dist::Zilla::Plugin::PERLANCAR::MetaResources
name: '@Author::PERLANCAR/PERLANCAR::MetaResources'
version: '0.043'
-
class: Dist::Zilla::Plugin::CheckChangeLog
name: '@Author::PERLANCAR/CheckChangeLog'
-
class: Dist::Zilla::Plugin::CheckMetaResources
name: '@Author::PERLANCAR/CheckMetaResources'
version: '0.001'
-
class: Dist::Zilla::Plugin::CheckSelfDependency
config:
Dist::Zilla::Plugin::CheckSelfDependency:
finder:
- ':InstallModules'
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000037'
version: '0.006'
name: '@Author::PERLANCAR/CheckSelfDependency'
version: '0.011'
-
class: Dist::Zilla::Plugin::Git::Contributors
config:
Dist::Zilla::Plugin::Git::Contributors:
git_version: 2.25.1
include_authors: 0
include_releaser: 1
-
class: Dist::Zilla::Plugin::FinderCode
name: '@Author::PERLANCAR/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
version: '6.030'
include_underscores: 0
Dist::Zilla::Role::MetaProvider::Provider:
$Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004'
inherit_missing: 1
inherit_version: 1
meta_noindex: 1
Dist::Zilla::Role::ModuleMetadata:
Module::Metadata: '1.000037'
version: '0.006'
name: '@Author::PERLANCAR/MetaProvides::Package'
version: '2.004003'
-
class: Dist::Zilla::Plugin::PERLANCAR::Authority
name: '@Author::PERLANCAR/PERLANCAR::Authority'
version: '0.001'
-
class: Dist::Zilla::Plugin::OurDate
name: '@Author::PERLANCAR/OurDate'
Nice idea. Some notes: 1) to be widely used, it really needs to be
very efficient; 2) if the goal is simply to objectify a hash,
perhaps Hash::Objectify or Object::From::Hash or Hash::To::Object
(or Data::Objectify and so on) is a more descriptive name. <br>
Data::Seek
The "extremely fast and efficient" claim currently doesn't
hold, as this module creates a *whole* flattened tree for *every*
search operation. <br><br>A simple benchmark: <br><br>### <br> use
Benchmark qw(timethese); <br> use Data::Seek; <br> use Data::DPath
qw(dpath); <br> use JSON::Path; <br><br>my $data = { map { $_ =>
{map {$*=>[1..4]} 1..20} } "a".."z" };
<br><br>timethese(-0.25, { <br><br>dseek => sub { $ds =
Data::Seek->new(data=>$data);
$ds->search("j.1.\@")->data },
<br><br>dseek*cacheobj=>sub{ state
$ds=Data::Seek->new(data=>$data);
$ds->search("j.1.\@")->data },
<br><br>dpath=>sub{ dpath("/j/1/*")->match($data) },
<br><br>jpath=>sub{
JSON::Path->new(q[$.j.1.[*]])->values($data) }, <br> }); <br>
=head2 #
<br><br>### <br> Benchmark: running dpath, dseek, dseek_cacheobj,
jpath for at least 0.25 CPU seconds... <br><br>dpath: 1 wallclock
secs ( 0.27 usr + 0.00 sys = 0.27 CPU) @ 8292.59/s (n=2239)
<br><br>(warning: too few iterations for a reliable count)
<br><br>dseek: 1 wallclock secs ( 0.29 usr + 0.00 sys = 0.29 CPU) @
37.93/s (n=11) <br><br>(warning: too few iterations for a reliable
count) <br> dseek_cacheobj: 0 wallclock secs ( 0.33 usr + 0.00 sys =
0.33 CPU) @ 42.42/s (n=14) <br><br>(warning: too few iterations for
Author: ALTREUS <https://metacpan.org/author/ALTREUS>
Very nifty for short scripts and some clever design inside (all
options are stored as arrayref, but there is some overloading to
make getting boolean/flag and normal scalar value convenient).
<br><br>For more "proper" scripts though (anything above
say 20-30 lines) I'd recommend using something like Getopt::Long
with a real spec. Some of the features I like in G::L not in
Opt::Imistic: the ability to get --noOPT for free for flag options,
the ability to configure permute/no_permute (mix mashing options
with arguments), some data validation, and of course:
autoabbreviation of long option names, which requires a spec after
all.
Devel::STrace
Author: DARNOLD <https://metacpan.org/author/DARNOLD>
The doc looks promising, it really looks like it could be the
"strace for Perl functions", but the usage is awkward (you
have to open two terminals, one for running your program and
producing trace file, and another for reading this file). And I'm
I would personally pick a non-OO, no-nonsense interface based on
File::Find, like: <br><br>use File::Find::Archive qw(find); # or
find_archive <br> find(sub { ... }, "some.tar.gz");
<br><br>instead of the multiline, tedious setup just to search a
file. <br>
App::DBBrowser
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"
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
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()
=item 1. ..." <br><br>Ordered list with item numbered other
than 1 does not work (see above). This should be supported in POD
because POD allows us to write the bullets/numbers for each item.
<br><br>Inline markup is not smart enough to differentiate
word_with_underscore. So "foo_bar and foo_baz" becomes
"fooI<bar and foo>baz". <br><br>Plus it segfaults
sometimes (might be my perl though).
Rating: 4/10
Lingua::Metadata
Author: MAJLIS <https://metacpan.org/author/MAJLIS>
As previous reviewer noted, this module is actually just a front-end
to the author's web service. Plus license is specifically BSD (which
allows this module to be included in closed source projects), this
is rather ironic to me. <br>
Finance::Currency::Convert::WebserviceX
Author: CLACO <https://metacpan.org/author/CLACO>
Log::Log4perl::Appender::File::RoundRobin to make it clearer that
the backend is File::RoundRobin. <br>
Any::Mo
Why exclude Moo? <br><br>Also the issue with any Any::* (or Any::*)
modules is that there should be a mechanism (preferably a common
one) to adjust the ordering. Sometimes I prefer Moose first, for
full capability or compatibility or whatever. Sometimes I prefer
Mouse or Moo, for quick startup (but don't mind Moose if those are
not available). This also happens to me for YAML::Any: in some cases
I prefer YAML::Syck, in others YAML::XS, this depends on the data
that I'm handling. <br>
PerlX::Perform
Author: TOBYINK <https://metacpan.org/author/TOBYINK>
I personally don't see much value of this syntactic sugar since Perl
already allows us to express clearly. Pick one: <br><br>for ($foo) {
say $_ if defined } <br><br>for (grep {defined} $foo) { say $_ }
<br><br>do { say $_ if defined } for $foo <br><br>say $_ for grep
{defined} $foo <br><br>And save yourself from having to remember
Acme::Damn
Author: IBB <https://metacpan.org/author/IBB>
5 stars for cute metaphor (there's also Acme::Holy by the same
author, but that is just another implementation of Scalar::Util's
blessed()) and for prompt support from the author. <br><br>I'm sure
there exists a real use case to move this out of Acme::, however
obscure that might be. Can't come up with any right now, all I can
think of is reblessing, which can be handled with bless() from the
start. <br><br>UPDATE 2013-09-11: I found a real use-case for it!
Cleaning up data to be sent to JSON. BTW, Data::Structure::Util also
has an unbless() function, but Acme::Damn is smaller and faster.
Data::Structure::Util also currently doesn't build on Windows. <br>
WWW::Parallels::Agent
@Justin Case: The name is unfortunate, but it's already proper
(WWW:: followed by website or company name). HTTP client libraries
are in LWP::. But VM:: is also an apt choice. <br>
Underscore
I don't know why Sawyer X's review is marked as unhelpful (2 out of
8), but I agree with him. This is *not* an Acme module, it's a port
of a JavaScript library of the same name. <br>
Locale::Geocode
Author: DIZ <https://metacpan.org/author/DIZ>
Sorry to have to rate with 1 star. I don't have problem with the
interface/documentation. The 1-star rating is just to warn people
that the data used by this module is not up to date. And that
YEARS-old bugs are not being fixed. <br><br>At the time of this
writing, this module still uses ISO 3166-2:1998 (first edition) +
the newsletters (minor updates) up to 2006. When it should be
updated to ISO 3166-2:2007 (second edition) + all the newsletters.
For example, this module does not report 3 newer provinces in
Indonesia. <br><br>Sadly we live in a world where countries and
subcountries change all the time.
Rating: 2/10
Locale::SubCountry
Author: KIMRYAN <https://metacpan.org/author/KIMRYAN>
UPDATE 2012-08-30: I am not sure if the module is now fully
compliant to the new ISO 2007, but bug reports are certainly being
responded and resolved now. Updating rating from 1-star to 4-star.
Thanks, Kim. <br><br>2012-02-17: Review to version 1.47:
<br><br>Sorry to have to rate with 1 star. I don't have problem with
the interface/documentation. The 1-star rating is just to warn
people that the data used by this module is not up to date. And that
months-old bugs are not being fixed. <br><br>At the time of this
writing, this module still uses ISO 3166-2:1998 (first edition) when
it should be updated to ISO 3166-2:2007 (second edition) + all the
newsletters (minor updates). For example, this module does not
report 3 newer provinces in Indonesia. <br><br>Sadly we live in a
world where countries and subcountries change all the time.
<br><br>EDIT: Ok, so I was not being clear that I was not talking
about my own bug report (posted at about the same time of this
review). And bugs were certainly being resolved up to about 7 months
ago. <br>
Rating: 8/10
Data::Rmap
Author: BOWMANBS <https://metacpan.org/author/BOWMANBS>
A very handy utility, sort of like s/// on your nested data
structure instead of just strings. One nitpick: no coderef support.
I needed to replace all coderefs inside a data structure into a
string, since I want to pass it to JSON encoder. None of the
rmap_*() functions seem to let me get to the coderefs. (RT wishlist
ticket added.) <br><br>UPDATE 2011-12-30: The author (Brad) quickly
responded to my RT ticket and added rmap_code. Upgrading from 4- to
5-star :) Regexp support is not there yet though, and I have
suggested the ability to get all kinds of Perl-specific and weird
objects, because one of the main uses of Data::Rmap for me is to
"clean" a data structure to pass to non-Perl systems. <br>
Data::Properties::JSON
Author: JOHND <https://metacpan.org/author/JOHND>
The abstract for this module is a bit strange. What does this have
to do with 'test fixtures'? Also the documentation doesn't say much,
e.g. What will happen if a hash key contains funny characters (or
arrays, etc)? <br><br>A similar module in spirit is Data::Hive. I
think "providing convenient chained method access to
hierarchical data" should be refactored out. So perhaps
Data::Properties::{JSON,YAML,...} should just be a convenient
shortcut for {JSON,YAML,...} parser + Data::Hive.
Exporter::Auto
Author: NEILB <https://metacpan.org/author/NEILB>
I discourage module authors from exporting like this because it's
simply too impolite/intrusive for module users. If the module author
is lazy, there is already Exporter::NoWork which offers a few
options for module users. This module, on the other hand, gives no
and looks like being the most maintained (although it would be nice
if the author cleans up the RT queue). <br><br>For those stuck
without a C compiler, File::Type or File::Magic can be an
alternative.
Rating: 8/10
File::MMagic::XS
Author: DMAKI <https://metacpan.org/author/DMAKI>
Last time I checked, still can't parse system magic database, e.g.
/usr/share/file/magic (bug first filed in RT 4 years ago).
<br><br>The currently recommended module in this area seems to be
File::LibMagic. Other alternatives include File::MMagic (slow and
buggy, no longer maintained), Media::Type::Simple (only maps MIME
type from/to file extension).
Rating: 4/10
File::MMagic
Author: KNOK <https://metacpan.org/author/KNOK>
Rating: 2/10
Passwd::Unix
Author: STRZELEC <https://metacpan.org/author/STRZELEC>
No tests. No detailed error status, only true/false (yes, there is a
'warnings' parameter on constructor, but this doesn't give out
warnings on all operations, only some). No locking (although there
is backup, but still). <br><br>Also, some weird choices, why use
bzip2 when creating backup? Or, why still require running as root
(checking $() if we are allowing custom database file location?
<br><br>Between this and Unix::ConfigFile, I'm seriously considering
using Unix commands instead (useradd, userdel, gpasswd, et al).
<br><br>UPDATE 2011-04-21: I created a fork of Passwd::Unix 0.52
called Passwd::Unix::Alt instead, which add some tests and
modifications. Try it out if your needs are also not met by
Passwd::Unix. <br><br>UPDATE 2012-08-30: I created a new module
called Unix::Passwd::File. Try it out if your needs are also not met
by Passwd::Unix.
Rating: 2/10
Rating: 8/10
DateTime
Author: DROLSKY <https://metacpan.org/author/DROLSKY>
Amidst all the glowing reviews may I add a reminder that, as with
everything, there's a catch: runtime performance. On my PC, the
speed of creating a DateTime object is just around 6000/sec. If you
use DateTime intensively, it can quickly add up. <br><br>Imagine
serving a web page that fetches 50 rows from database, where for
convenience you convert each date column to a DateTime object, and
you have 120 requests/sec coming in... That's already 6000 objects
(an extra second!). <br><br>Which is unfortunate because DateTime is
so wonderful, convenient, correct, complete and all that. So one
approach you can use might be to delay converting to DateTime object
until necessary.
Date::Manip
Author: SBECK <https://metacpan.org/author/SBECK>
there (yes, newer NTFS does support symlinks; though I don't know
whether this module supports creating symlinks on NTFS). <br><br>A
minor comment would be on the name, maybe lnstree can be considered
instead (since "ln" indicates hardlink, at least for me).
Btw, there's also a free software called "lns" to do the
exact same thing. <br><br>
Data::Clone
Author: GFUJI <https://metacpan.org/author/GFUJI>
I've never encountered difficulty in cloning data structures in
Perl, usually I just use Clone or sometimes Storable's freeze + thaw
(the later does not yet support cloning Regexp objects out of the
box). <br><br>However, I like Data::Clone for its speed! It's
several times faster than Clone or freeze+thaw. So hats up. Planning
to use Data::Clone in future projects. <br><br>Now if we can
convince Goro to write a fast serializer/deserializer with compact
output (essentially, a faster version of Storable), that would be
even nicer :-) <br><br>
Data::Pond
Author: ZEFRAM <https://metacpan.org/author/ZEFRAM>
With due respect to the author, I fail to see the practical point of
Pond. Pond (Perl-based open notation for data) is the Perl
counterpart of JSON, except that implementation is currently only
available in Perl (CMIIW), and "Pond represents fewer data
types directly". <br><br>Pond is pitched against Data::Dumper +
eval, which is dangerous, but Data::Dumper + eval is by far not the
only method available for serialization. Perl can do Storable, JSON,
YAML, even PHP serialization format. <br><br>The documentation does
not show what Pond looks like. <br><br>One cute thing about Pond is
that you can check Pond syntax using a single regex. But apart from
that, there's nothing compelling in using Pond to serialize data.
Rating: 4/10
File::Which
Author: PLICEASE <https://metacpan.org/author/PLICEASE>
You can always count on CPAN to have prewritten modules for various
things, including this one. I've never bothered before about
portability and just rely on the "which" command, but for
one reason there's a time when I just couldn't do that. <br><br>Btw,
devdata/stevenharyanto view on Meta::CPAN
<script type="text/javascript">
var global_auth_token = "";
</script>
</head>
<body class="page-cpanratings section_onion">
<nav class="navbar navbar-inverse" data-height="120">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">
<img src="//cdn.perl.org/perlweb/images/logo_cpanratings.svg" alt="Reviews by Steven Haryanto | Perl, modern programming" class="page-logo">
</a>
</div>
devdata/stevenharyanto view on Meta::CPAN
<p>
<a href="/user/stevenharyanto.rss">RSS</a>
</p>
<div id="reviews">
<div class="review" data-review="9836" data-user="10616">
<a name="9836"></a>
<h3 class="review_header">
<a href="/dist/Log-Any">
Log-Any</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="12372" data-user="10616">
<a name="12372"></a>
<h3 class="review_header">
<a href="/dist/Process-Status">
Process-Status</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="12026" data-user="10616">
<a name="12026"></a>
<h3 class="review_header">
<a href="/dist/Archive-Any">
Archive-Any</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="12024" data-user="10616">
<a name="12024"></a>
<h3 class="review_header">
<a href="/dist/Devel-Confess">
Devel-Confess</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="12002" data-user="10616">
<a name="12002"></a>
<h3 class="review_header">
<a href="/dist/SQL-Statement">
SQL-Statement</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11961" data-user="10616">
<a name="11961"></a>
<h3 class="review_header">
<a href="/dist/PerlMongers-Hannover">
PerlMongers-Hannover</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11878" data-user="10616">
<a name="11878"></a>
<h3 class="review_header">
<a href="/dist/App-multiwhich">
App-multiwhich</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11872" data-user="10616">
<a name="11872"></a>
<h3 class="review_header">
<a href="/dist/Object-Anon">
Object-Anon</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11870" data-user="10616">
<a name="11870"></a>
<h3 class="review_header">
<a href="/dist/Data-Seek">
Data-Seek</a>
devdata/stevenharyanto view on Meta::CPAN
</h3>
<blockquote class="review_text">
The "extremely fast and efficient" claim currently doesn't hold, as this module creates a *whole* flattened tree for *every* search operation.
<br><br>A simple benchmark:
<br><br>###
<br>
use Benchmark qw(timethese);
<br>
use Data::Seek;
<br>
use Data::DPath qw(dpath);
<br>
use JSON::Path;
<br><br>my $data = { map { $_ => {map {$_=>[1..4]} 1..20} } "a".."z" };
<br><br>timethese(-0.25, {
<br><br>dseek => sub { $ds = Data::Seek->new(data=>$data); $ds->search("j.1.\@")->da...
});
<br>
###
<br><br>###
<br>
Benchmark: running dpath, dseek, dseek_cacheobj, jpath for at least 0.25 CPU seconds...
<br><br>dpath: 1 wallclock secs ( 0.27 usr + 0.00 sys = 0.27 CPU) @ 8292.59/s (n=2239)
<br><br>(warning: too few iterations for a reliable count)
<br><br>dseek...
dseek_cacheobj: 0 wallclock secs ( 0.33 usr + 0.00 sys = 0.33 CPU) @ 42.42/s (n=14)
<br><br>(warning: too few iterations for a reliable count)
<br><br>jpath: 0 wallclock secs ( 0.27 usr + 0.00 sys = 0.27 CPU) @ 11711.11/s (n=3162)
<br><br>(warn...
###
<br><br>Also: 1) the syntax is rather inconsistent: ':n' for array index access, but '.@' (instead of ':@') for grabbing all elements. 2) currently cannot select subtree (must always select leaf node).
<br><br>As alternatives, I recommend the muc...
</blockquote>
<div class="review_footer">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11860" data-user="10616">
<a name="11860"></a>
<h3 class="review_header">
<a href="/dist/Games-2048">
Games-2048</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11858" data-user="10616">
<a name="11858"></a>
<h3 class="review_header">
<a href="/dist/App-D">
App-D</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11844" data-user="10616">
<a name="11844"></a>
<h3 class="review_header">
<a href="/dist/Getopt-Long">
Getopt-Long</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11826" data-user="10616">
<a name="11826"></a>
<h3 class="review_header">
<a href="/dist/Text-Table-Tiny">
Text-Table-Tiny</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11824" data-user="10616">
<a name="11824"></a>
<h3 class="review_header">
<a href="/dist/Mo">
Mo</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11820" data-user="10616">
<a name="11820"></a>
<h3 class="review_header">
<a href="/dist/App-ChangeShebang">
App-ChangeShebang</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11818" data-user="10616">
<a name="11818"></a>
<h3 class="review_header">
<a href="/dist/Hash-Ordered">
Hash-Ordered</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11816" data-user="10616">
<a name="11816"></a>
<h3 class="review_header">
<a href="/dist/App-whatthecommit">
App-whatthecommit</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11812" data-user="10616">
<a name="11812"></a>
<h3 class="review_header">
<a href="/dist/Opt-Imistic">
Opt-Imistic</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
Very nifty for short scripts and some clever design inside (all options are stored as arrayref, but there is some overloading to make getting boolean/flag and normal scalar value convenient).
<br><br>For more "proper" scripts though (anythi...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2014-06-25T19:40:44
(<a href="/dist/Opt-Imistic#11812">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11810" data-user="10616">
<a name="11810"></a>
<h3 class="review_header">
<a href="/dist/Devel-STrace">
Devel-STrace</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11808" data-user="10616">
<a name="11808"></a>
<h3 class="review_header">
<a href="/dist/Devel-TraceSubs">
Devel-TraceSubs</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11806" data-user="10616">
<a name="11806"></a>
<h3 class="review_header">
<a href="/dist/Devel-TraceCalls">
Devel-TraceCalls</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11804" data-user="10616">
<a name="11804"></a>
<h3 class="review_header">
<a href="/dist/Debug-LTrace">
Debug-LTrace</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11802" data-user="10616">
<a name="11802"></a>
<h3 class="review_header">
<a href="/dist/Debug-Trace">
Debug-Trace</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11800" data-user="10616">
<a name="11800"></a>
<h3 class="review_header">
<a href="/dist/App-Trace">
App-Trace</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11786" data-user="10616">
<a name="11786"></a>
<h3 class="review_header">
<a href="/dist/Tie-Hash-Identity">
Tie-Hash-Identity</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11784" data-user="10616">
<a name="11784"></a>
<h3 class="review_header">
<a href="/dist/Hash-Identity">
Hash-Identity</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11776" data-user="10616">
<a name="11776"></a>
<h3 class="review_header">
<a href="/dist/Data-Structure-Util">
Data-Structure-Util</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11762" data-user="10616">
<a name="11762"></a>
<h3 class="review_header">
<a href="/dist/Fsdb">
Fsdb</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11742" data-user="10616">
<a name="11742"></a>
<h3 class="review_header">
<a href="/dist/Date-Tie">
Date-Tie</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11740" data-user="10616">
<a name="11740"></a>
<h3 class="review_header">
<a href="/dist/File-Slurp-Tiny">
File-Slurp-Tiny</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11664" data-user="10616">
<a name="11664"></a>
<h3 class="review_header">
<a href="/dist/Clone-PP">
Clone-PP</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11620" data-user="10616">
<a name="11620"></a>
<h3 class="review_header">
<a href="/dist/IPC-System-Simple">
IPC-System-Simple</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11618" data-user="10616">
<a name="11618"></a>
<h3 class="review_header">
<a href="/dist/IPC-Cmd">
IPC-Cmd</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11612" data-user="10616">
<a name="11612"></a>
<h3 class="review_header">
<a href="/dist/Umask-Local">
Umask-Local</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11552" data-user="10616">
<a name="11552"></a>
<h3 class="review_header">
<a href="/dist/Proc-PidUtil">
Proc-PidUtil</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11550" data-user="10616">
<a name="11550"></a>
<h3 class="review_header">
<a href="/dist/Data-Dumper-Sorted">
Data-Dumper-Sorted</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11534" data-user="10616">
<a name="11534"></a>
<h3 class="review_header">
<a href="/dist/Archive-Probe">
Archive-Probe</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11532" data-user="10616">
<a name="11532"></a>
<h3 class="review_header">
<a href="/dist/App-DBBrowser">
App-DBBrowser</a>
(<a href="https://metacpan.org/release/App-DBBrowser/">0.011</a>)
</h3>
<blockquote class="review_text">
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 f...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2014-01-24T12:06:54
(<a href="/dist/App-DBBrowser#11532">permalink</a>)
</p>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11530" data-user="10616">
<a name="11530"></a>
<h3 class="review_header">
<a href="/dist/Locale-Maketext">
Locale-Maketext</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11528" data-user="10616">
<a name="11528"></a>
<h3 class="review_header">
<a href="/dist/Curses-Toolkit">
Curses-Toolkit</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11526" data-user="10616">
<a name="11526"></a>
<h3 class="review_header">
<a href="/dist/Moo-Lax">
Moo-Lax</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11524" data-user="10616">
<a name="11524"></a>
<h3 class="review_header">
<a href="/dist/App-YTDL">
App-YTDL</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11522" data-user="10616">
<a name="11522"></a>
<h3 class="review_header">
<a href="/dist/Data-CompactDump">
Data-CompactDump</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11516" data-user="10616">
<a name="11516"></a>
<h3 class="review_header">
<a href="/dist/P">
P</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11514" data-user="10616">
<a name="11514"></a>
<h3 class="review_header">
<a href="/dist/Xporter">
Xporter</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11406" data-user="10616">
<a name="11406"></a>
<h3 class="review_header">
<a href="/dist/Dist-Zilla-Shell">
Dist-Zilla-Shell</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11386" data-user="10616">
<a name="11386"></a>
<h3 class="review_header">
<a href="/dist/CPANPLUS-Shell-Curses">
CPANPLUS-Shell-Curses</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11384" data-user="10616">
<a name="11384"></a>
<h3 class="review_header">
<a href="/dist/Task-Mechanistic">
Task-Mechanistic</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11350" data-user="10616">
<a name="11350"></a>
<h3 class="review_header">
<a href="/dist/Sereal">
Sereal</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11321" data-user="10616">
<a name="11321"></a>
<h3 class="review_header">
<a href="/dist/Test-Tester">
Test-Tester</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10857" data-user="10616">
<a name="10857"></a>
<h3 class="review_header">
<a href="/dist/Text-CharWidth">
Text-CharWidth</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7770" data-user="10616">
<a name="7770"></a>
<h3 class="review_header">
<a href="/dist/App-Options">
App-Options</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11193" data-user="10616">
<a name="11193"></a>
<h3 class="review_header">
<a href="/dist/Filesys-Notify-Simple">
Filesys-Notify-Simple</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11191" data-user="10616">
<a name="11191"></a>
<h3 class="review_header">
<a href="/dist/experimental">
experimental</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11177" data-user="10616">
<a name="11177"></a>
<h3 class="review_header">
<a href="/dist/MIME-Lite-HTML">
MIME-Lite-HTML</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="11031" data-user="10616">
<a name="11031"></a>
<h3 class="review_header">
<a href="/dist/Term-Size">
Term-Size</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10953" data-user="10616">
<a name="10953"></a>
<h3 class="review_header">
<a href="/dist/DateTime-Format-Flexible">
DateTime-Format-Flexible</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10951" data-user="10616">
<a name="10951"></a>
<h3 class="review_header">
<a href="/dist/DateTime-Format-Natural">
DateTime-Format-Natural</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10881" data-user="10616">
<a name="10881"></a>
<h3 class="review_header">
<a href="/dist/App-sourcepan">
App-sourcepan</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10855" data-user="10616">
<a name="10855"></a>
<h3 class="review_header">
<a href="/dist/Text-ASCIITable-TW">
Text-ASCIITable-TW</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10853" data-user="10616">
<a name="10853"></a>
<h3 class="review_header">
<a href="/dist/Text-VisualWidth">
Text-VisualWidth</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10851" data-user="10616">
<a name="10851"></a>
<h3 class="review_header">
<a href="/dist/Text-VisualWidth-PP">
Text-VisualWidth-PP</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10699" data-user="10616">
<a name="10699"></a>
<h3 class="review_header">
<a href="/dist/Taint-Runtime">
Taint-Runtime</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10693" data-user="10616">
<a name="10693"></a>
<h3 class="review_header">
<a href="/dist/L">
L</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10691" data-user="10616">
<a name="10691"></a>
<h3 class="review_header">
<a href="/dist/UNIVERSAL-moniker">
UNIVERSAL-moniker</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10661" data-user="10616">
<a name="10661"></a>
<h3 class="review_header">
<a href="/dist/Time-Out">
Time-Out</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10659" data-user="10616">
<a name="10659"></a>
<h3 class="review_header">
<a href="/dist/Util-Timeout">
Util-Timeout</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10655" data-user="10616">
<a name="10655"></a>
<h3 class="review_header">
<a href="/dist/System-Timeout">
System-Timeout</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10590" data-user="10616">
<a name="10590"></a>
<h3 class="review_header">
<a href="/dist/Module-Quote">
Module-Quote</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10588" data-user="10616">
<a name="10588"></a>
<h3 class="review_header">
<a href="/dist/Module-Hash">
Module-Hash</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10576" data-user="10616">
<a name="10576"></a>
<h3 class="review_header">
<a href="/dist/Promises">
Promises</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10574" data-user="10616">
<a name="10574"></a>
<h3 class="review_header">
<a href="/dist/Lingua-ITA-Numbers">
Lingua-ITA-Numbers</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10570" data-user="10616">
<a name="10570"></a>
<h3 class="review_header">
<a href="/dist/HTTP-Headers-Patch-DontUseStorable">
HTTP-Headers-Patch-DontUseStorable</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10552" data-user="10616">
<a name="10552"></a>
<h3 class="review_header">
<a href="/dist/Storable">
Storable</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10550" data-user="10616">
<a name="10550"></a>
<h3 class="review_header">
<a href="/dist/WWW-YouTube-Download">
WWW-YouTube-Download</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10546" data-user="10616">
<a name="10546"></a>
<h3 class="review_header">
<a href="/dist/Number-Zero">
Number-Zero</a>
(<a href="https://metacpan.org/release/Number-Zero/">0.02</a>)
</h3>
<blockquote class="review_text">
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&qu...
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.
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-11-15T22:35:42
(<a href="/dist/Number-Zero#10546">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10542" data-user="10616">
<a name="10542"></a>
<h3 class="review_header">
<a href="/dist/Syntax-SourceHighlight">
Syntax-SourceHighlight</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10540" data-user="10616">
<a name="10540"></a>
<h3 class="review_header">
<a href="/dist/Syntax-Highlight-Engine-Kate">
Syntax-Highlight-Engine-Kate</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10538" data-user="10616">
<a name="10538"></a>
<h3 class="review_header">
<a href="/dist/Syntax-Highlight-JSON">
Syntax-Highlight-JSON</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10536" data-user="10616">
<a name="10536"></a>
<h3 class="review_header">
<a href="/dist/Syntax-Highlight-Engine-Simple">
Syntax-Highlight-Engine-Simple</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10534" data-user="10616">
<a name="10534"></a>
<h3 class="review_header">
<a href="/dist/Syntax-Highlight-Universal">
Syntax-Highlight-Universal</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10532" data-user="10616">
<a name="10532"></a>
<h3 class="review_header">
<a href="/dist/text-highlight">
text-highlight</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10524" data-user="10616">
<a name="10524"></a>
<h3 class="review_header">
<a href="/dist/SemVer">
SemVer</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10522" data-user="10616">
<a name="10522"></a>
<h3 class="review_header">
<a href="/dist/Sort-Versions">
Sort-Versions</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10520" data-user="10616">
<a name="10520"></a>
<h3 class="review_header">
<a href="/dist/App-Countdown">
App-Countdown</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10466" data-user="10616">
<a name="10466"></a>
<h3 class="review_header">
<a href="/dist/Data-Compare">
Data-Compare</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10464" data-user="10616">
<a name="10464"></a>
<h3 class="review_header">
<a href="/dist/Array-Compare">
Array-Compare</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10462" data-user="10616">
<a name="10462"></a>
<h3 class="review_header">
<a href="/dist/Mozilla-Mechanize">
Mozilla-Mechanize</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10460" data-user="10616">
<a name="10460"></a>
<h3 class="review_header">
<a href="/dist/LWP-Curl">
LWP-Curl</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10458" data-user="10616">
<a name="10458"></a>
<h3 class="review_header">
<a href="/dist/LWP-Protocol-Net-Curl">
LWP-Protocol-Net-Curl</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10428" data-user="10616">
<a name="10428"></a>
<h3 class="review_header">
<a href="/dist/Devel-SizeMe">
Devel-SizeMe</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10426" data-user="10616">
<a name="10426"></a>
<h3 class="review_header">
<a href="/dist/Oktest">
Oktest</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10422" data-user="10616">
<a name="10422"></a>
<h3 class="review_header">
<a href="/dist/HTML-Escape">
HTML-Escape</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10420" data-user="10616">
<a name="10420"></a>
<h3 class="review_header">
<a href="/dist/Clone-Fast">
Clone-Fast</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10376" data-user="10616">
<a name="10376"></a>
<h3 class="review_header">
<a href="/dist/Perl-Strip">
Perl-Strip</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10374" data-user="10616">
<a name="10374"></a>
<h3 class="review_header">
<a href="/dist/Perl-Squish">
Perl-Squish</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10356" data-user="10616">
<a name="10356"></a>
<h3 class="review_header">
<a href="/dist/perlsecret">
perlsecret</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10346" data-user="10616">
<a name="10346"></a>
<h3 class="review_header">
<a href="/dist/PerlX-ArraySkip">
PerlX-ArraySkip</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10344" data-user="10616">
<a name="10344"></a>
<h3 class="review_header">
<a href="/dist/App-perlfind">
App-perlfind</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10342" data-user="10616">
<a name="10342"></a>
<h3 class="review_header">
<a href="/dist/PerlX-Maybe">
PerlX-Maybe</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10340" data-user="10616">
<a name="10340"></a>
<h3 class="review_header">
<a href="/dist/File-Path-Tiny">
File-Path-Tiny</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9242" data-user="10616">
<a name="9242"></a>
<h3 class="review_header">
<a href="/dist/Exporter-Lite">
Exporter-Lite</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10254" data-user="10616">
<a name="10254"></a>
<h3 class="review_header">
<a href="/dist/YAML-Syck">
YAML-Syck</a>
(<a href="https://metacpan.org/release/YAML-Syck/">1.20</a>)
</h3>
<blockquote class="review_text">
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.
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-08-03T08:29:41
(<a href="/dist/YAML-Syck#10254">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10224" data-user="10616">
<a name="10224"></a>
<h3 class="review_header">
<a href="/dist/Devel-FindPerl">
Devel-FindPerl</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10194" data-user="10616">
<a name="10194"></a>
<h3 class="review_header">
<a href="/dist/Taint-Util">
Taint-Util</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9838" data-user="10616">
<a name="9838"></a>
<h3 class="review_header">
<a href="/dist/Markdown-Pod">
Markdown-Pod</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10094" data-user="10616">
<a name="10094"></a>
<h3 class="review_header">
<a href="/dist/Lingua-Metadata">
Lingua-Metadata</a>
(<a href="https://metacpan.org/release/Lingua-Metadata/">0.002</a>)
</h3>
<blockquote class="review_text">
As previous reviewer noted, this module is actually just a front-end to the author's web service. Plus license is specifically BSD (which allows this module to be included in closed source projects), this is rather ironic to me.
<br>
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-06-15T18:32:35
(<a href="/dist/Lingua-Metadata#10094">permalink</a>)
</p>
<div class="helpfulq">
2 out of 2 found this review helpful.
Was this review helpful to you?
<!-- we should add non-js links to rate stuff helpful/not helpful too... -->
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="10014" data-user="10616">
<a name="10014"></a>
<h3 class="review_header">
<a href="/dist/Finance-Currency-Convert-WebserviceX">
Finance-Currency-Convert-WebserviceX</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9994" data-user="10616">
<a name="9994"></a>
<h3 class="review_header">
<a href="/dist/Carp-Always-Color">
Carp-Always-Color</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9834" data-user="10616">
<a name="9834"></a>
<h3 class="review_header">
<a href="/dist/CHI">
CHI</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9832" data-user="10616">
<a name="9832"></a>
<h3 class="review_header">
<a href="/dist/Monkey-Patch">
Monkey-Patch</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9830" data-user="10616">
<a name="9830"></a>
<h3 class="review_header">
<a href="/dist/Log-AutoDump">
Log-AutoDump</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9782" data-user="10616">
<a name="9782"></a>
<h3 class="review_header">
<a href="/dist/List-Pairwise">
List-Pairwise</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9766" data-user="10616">
<a name="9766"></a>
<h3 class="review_header">
<a href="/dist/Log-Log4perl-Appender-File-FixedSize">
Log-Log4perl-Appender-File-FixedSize</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9736" data-user="10616">
<a name="9736"></a>
<h3 class="review_header">
<a href="/dist/Any-Mo">
Any-Mo</a>
(<a href="https://metacpan.org/release/Any-Mo/">0.30</a>)
</h3>
<blockquote class="review_text">
Why exclude Moo?
<br><br>Also the issue with any Any::* (or Any::*) modules is that there should be a mechanism (preferably a common one) to adjust the ordering. Sometimes I prefer Moose first, for full capability or compatibility or whatever. Someti...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-03-20T17:00:09
(<a href="/dist/Any-Mo#9736">permalink</a>)
</p>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9684" data-user="10616">
<a name="9684"></a>
<h3 class="review_header">
<a href="/dist/PerlX-Perform">
PerlX-Perform</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9648" data-user="10616">
<a name="9648"></a>
<h3 class="review_header">
<a href="/dist/TOBYINK-PerlX-A">
TOBYINK-PerlX-A</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9646" data-user="10616">
<a name="9646"></a>
<h3 class="review_header">
<a href="/dist/WWW-Google-Images">
WWW-Google-Images</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9626" data-user="10616">
<a name="9626"></a>
<h3 class="review_header">
<a href="/dist/Acme-Damn">
Acme-Damn</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
5 stars for cute metaphor (there's also Acme::Holy by the same author, but that is just another implementation of Scalar::Util's blessed()) and for prompt support from the author.
<br><br>I'm sure there exists a real use case to move this out of Acme...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-02-14T10:51:28
(<a href="/dist/Acme-Damn#9626">permalink</a>)
</p>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9606" data-user="10616">
<a name="9606"></a>
<h3 class="review_header">
<a href="/dist/WWW-Parallels-Agent">
WWW-Parallels-Agent</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9592" data-user="10616">
<a name="9592"></a>
<h3 class="review_header">
<a href="/dist/Underscore">
Underscore</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9590" data-user="10616">
<a name="9590"></a>
<h3 class="review_header">
<a href="/dist/Locale-Geocode">
Locale-Geocode</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-1.0.png" alt="*">
</h3>
<blockquote class="review_text">
Sorry to have to rate with 1 star. I don't have problem with the interface/documentation. The 1-star rating is just to warn people that the data used by this module is not up to date. And that YEARS-old bugs are not being fixed.
<br><br>At the time o...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-02-07T17:07:11
(<a href="/dist/Locale-Geocode#9590">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9588" data-user="10616">
<a name="9588"></a>
<h3 class="review_header">
<a href="/dist/Locale-SubCountry">
Locale-SubCountry</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-4.0.png" alt="****">
</h3>
<blockquote class="review_text">
UPDATE 2012-08-30: I am not sure if the module is now fully compliant to the new ISO 2007, but bug reports are certainly being responded and resolved now. Updating rating from 1-star to 4-star. Thanks, Kim.
<br><br>2012-02-17: Review to version 1.47:...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-02-07T17:04:09
(<a href="/dist/Locale-SubCountry#9588">permalink</a>)
</p>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9488" data-user="10616">
<a name="9488"></a>
<h3 class="review_header">
<a href="/dist/Data-Rmap">
Data-Rmap</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
A very handy utility, sort of like s/// on your nested data structure instead of just strings. One nitpick: no coderef support. I needed to replace all coderefs inside a data structure into a string, since I want to pass it to JSON encoder. None of t...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2011-12-29T17:47:24
(<a href="/dist/Data-Rmap#9488">permalink</a>)
</p>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9484" data-user="10616">
<a name="9484"></a>
<h3 class="review_header">
<a href="/dist/Data-Properties-JSON">
Data-Properties-JSON</a>
(<a href="https://metacpan.org/release/Data-Properties-JSON/">0.003</a>)
</h3>
<blockquote class="review_text">
The abstract for this module is a bit strange. What does this have to do with 'test fixtures'? Also the documentation doesn't say much, e.g. What will happen if a hash key contains funny characters (or arrays, etc)?
<br><br>A similar module in spirit...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2011-12-28T18:52:34
(<a href="/dist/Data-Properties-JSON#9484">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9442" data-user="10616">
<a name="9442"></a>
<h3 class="review_header">
<a href="/dist/Exporter-Auto">
Exporter-Auto</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9422" data-user="10616">
<a name="9422"></a>
<h3 class="review_header">
<a href="/dist/Net-Douban">
Net-Douban</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9420" data-user="10616">
<a name="9420"></a>
<h3 class="review_header">
<a href="/dist/HTML-Form-XSS">
HTML-Form-XSS</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9402" data-user="10616">
<a name="9402"></a>
<h3 class="review_header">
<a href="/dist/Thread-IID">
Thread-IID</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9396" data-user="10616">
<a name="9396"></a>
<h3 class="review_header">
<a href="/dist/Test-Lite">
Test-Lite</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9368" data-user="10616">
<a name="9368"></a>
<h3 class="review_header">
<a href="/dist/Sub-Mage">
Sub-Mage</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9340" data-user="10616">
<a name="9340"></a>
<h3 class="review_header">
<a href="/dist/relative_lib">
relative_lib</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9338" data-user="10616">
<a name="9338"></a>
<h3 class="review_header">
<a href="/dist/CPAN-Mini-Webserver">
CPAN-Mini-Webserver</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9320" data-user="10616">
<a name="9320"></a>
<h3 class="review_header">
<a href="/dist/Win32-App-which">
Win32-App-which</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9304" data-user="10616">
<a name="9304"></a>
<h3 class="review_header">
<a href="/dist/Devel-Platform-Info">
Devel-Platform-Info</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="9206" data-user="10616">
<a name="9206"></a>
<h3 class="review_header">
<a href="/dist/Package-Builder">
Package-Builder</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8640" data-user="10616">
<a name="8640"></a>
<h3 class="review_header">
<a href="/dist/File-LibMagic">
File-LibMagic</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8638" data-user="10616">
<a name="8638"></a>
<h3 class="review_header">
<a href="/dist/File-MMagic-XS">
File-MMagic-XS</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-2.0.png" alt="**">
</h3>
<blockquote class="review_text">
Last time I checked, still can't parse system magic database, e.g. /usr/share/file/magic (bug first filed in RT 4 years ago).
<br><br>The currently recommended module in this area seems to be File::LibMagic. Other alternatives include File::MMagic (s...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2011-06-15T02:55:05
(<a href="/dist/File-MMagic-XS#8638">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8636" data-user="10616">
<a name="8636"></a>
<h3 class="review_header">
<a href="/dist/File-MMagic">
File-MMagic</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8634" data-user="10616">
<a name="8634"></a>
<h3 class="review_header">
<a href="/dist/File-Type">
File-Type</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8556" data-user="10616">
<a name="8556"></a>
<h3 class="review_header">
<a href="/dist/Time-Mock">
Time-Mock</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8542" data-user="10616">
<a name="8542"></a>
<h3 class="review_header">
<a href="/dist/Sakai-Stats">
Sakai-Stats</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8540" data-user="10616">
<a name="8540"></a>
<h3 class="review_header">
<a href="/dist/Spreadsheet-Perl">
Spreadsheet-Perl</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8510" data-user="10616">
<a name="8510"></a>
<h3 class="review_header">
<a href="/dist/Unix-PasswdFileOps">
Unix-PasswdFileOps</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8482" data-user="10616">
<a name="8482"></a>
<h3 class="review_header">
<a href="/dist/Array-Diff">
Array-Diff</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8480" data-user="10616">
<a name="8480"></a>
<h3 class="review_header">
<a href="/dist/DZ1">
DZ1</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8474" data-user="10616">
<a name="8474"></a>
<h3 class="review_header">
<a href="/dist/Passwd-Unix">
Passwd-Unix</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-1.0.png" alt="*">
</h3>
<blockquote class="review_text">
No tests. No detailed error status, only true/false (yes, there is a 'warnings' parameter on constructor, but this doesn't give out warnings on all operations, only some). No locking (although there is backup, but still).
<br><br>Also, some weird cho...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2011-04-20T06:02:56
(<a href="/dist/Passwd-Unix#8474">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8472" data-user="10616">
<a name="8472"></a>
<h3 class="review_header">
<a href="/dist/Unix-ConfigFile">
Unix-ConfigFile</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8398" data-user="10616">
<a name="8398"></a>
<h3 class="review_header">
<a href="/dist/lib-xi">
lib-xi</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8396" data-user="10616">
<a name="8396"></a>
<h3 class="review_header">
<a href="/dist/Capture-Tiny-Extended">
Capture-Tiny-Extended</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8350" data-user="10616">
<a name="8350"></a>
<h3 class="review_header">
<a href="/dist/google_talk_bot">
google_talk_bot</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8348" data-user="10616">
<a name="8348"></a>
<h3 class="review_header">
<a href="/dist/Clone-Any">
Clone-Any</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8330" data-user="10616">
<a name="8330"></a>
<h3 class="review_header">
<a href="/dist/Array-OrdHash">
Array-OrdHash</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8246" data-user="10616">
<a name="8246"></a>
<h3 class="review_header">
<a href="/dist/Bash-Completion">
Bash-Completion</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8242" data-user="10616">
<a name="8242"></a>
<h3 class="review_header">
<a href="/dist/Bash-Completion-Plugins-cpanm">
Bash-Completion-Plugins-cpanm</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8226" data-user="10616">
<a name="8226"></a>
<h3 class="review_header">
<a href="/dist/Switch">
Switch</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8222" data-user="10616">
<a name="8222"></a>
<h3 class="review_header">
<a href="/dist/Moo">
Moo</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8194" data-user="10616">
<a name="8194"></a>
<h3 class="review_header">
<a href="/dist/Sub-StopCalls">
Sub-StopCalls</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="8140" data-user="10616">
<a name="8140"></a>
<h3 class="review_header">
<a href="/dist/Log-Log4perl-Tiny">
Log-Log4perl-Tiny</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7988" data-user="10616">
<a name="7988"></a>
<h3 class="review_header">
<a href="/dist/SHARYANTO-YAML-Any">
SHARYANTO-YAML-Any</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7930" data-user="10616">
<a name="7930"></a>
<h3 class="review_header">
<a href="/dist/SQL-Easy">
SQL-Easy</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7928" data-user="10616">
<a name="7928"></a>
<h3 class="review_header">
<a href="/dist/CGI-Struct">
CGI-Struct</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7926" data-user="10616">
<a name="7926"></a>
<h3 class="review_header">
<a href="/dist/DateTime-BusinessHours">
DateTime-BusinessHours</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7906" data-user="10616">
<a name="7906"></a>
<h3 class="review_header">
<a href="/dist/Bundle-Dpchrist">
Bundle-Dpchrist</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7888" data-user="10616">
<a name="7888"></a>
<h3 class="review_header">
<a href="/dist/Net-BitTorrent-File">
Net-BitTorrent-File</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7886" data-user="10616">
<a name="7886"></a>
<h3 class="review_header">
<a href="/dist/Module-CoreList">
Module-CoreList</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7884" data-user="10616">
<a name="7884"></a>
<h3 class="review_header">
<a href="/dist/WWW-Mechanize">
WWW-Mechanize</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7882" data-user="10616">
<a name="7882"></a>
<h3 class="review_header">
<a href="/dist/Mail-Sendmail">
Mail-Sendmail</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7880" data-user="10616">
<a name="7880"></a>
<h3 class="review_header">
<a href="/dist/autodie">
autodie</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7878" data-user="10616">
<a name="7878"></a>
<h3 class="review_header">
<a href="/dist/App-FileTools-BulkRename">
App-FileTools-BulkRename</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7874" data-user="10616">
<a name="7874"></a>
<h3 class="review_header">
<a href="/dist/Script-State">
Script-State</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7872" data-user="10616">
<a name="7872"></a>
<h3 class="review_header">
<a href="/dist/PathTools">
PathTools</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7854" data-user="10616">
<a name="7854"></a>
<h3 class="review_header">
<a href="/dist/File-Slurp">
File-Slurp</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7852" data-user="10616">
<a name="7852"></a>
<h3 class="review_header">
<a href="/dist/Log-Log4perl">
Log-Log4perl</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7850" data-user="10616">
<a name="7850"></a>
<h3 class="review_header">
<a href="/dist/Log-Handler">
Log-Handler</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7848" data-user="10616">
<a name="7848"></a>
<h3 class="review_header">
<a href="/dist/Log-Fast">
Log-Fast</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7846" data-user="10616">
<a name="7846"></a>
<h3 class="review_header">
<a href="/dist/Log-Minimal">
Log-Minimal</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7844" data-user="10616">
<a name="7844"></a>
<h3 class="review_header">
<a href="/dist/Log-Fine">
Log-Fine</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7830" data-user="10616">
<a name="7830"></a>
<h3 class="review_header">
<a href="/dist/Config-IniFiles">
Config-IniFiles</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7804" data-user="10616">
<a name="7804"></a>
<h3 class="review_header">
<a href="/dist/DateTime">
DateTime</a>
(<a href="https://metacpan.org/release/DateTime/">0.65</a>)
</h3>
<blockquote class="review_text">
Amidst all the glowing reviews may I add a reminder that, as with everything, there's a catch: runtime performance. On my PC, the speed of creating a DateTime object is just around 6000/sec. If you use DateTime intensively, it can quickly add up.
<br...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-10-29T01:17:00
(<a href="/dist/DateTime#7804">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7802" data-user="10616">
<a name="7802"></a>
<h3 class="review_header">
<a href="/dist/Date-Manip">
Date-Manip</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7784" data-user="10616">
<a name="7784"></a>
<h3 class="review_header">
<a href="/dist/App-pmuninstall">
App-pmuninstall</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7782" data-user="10616">
<a name="7782"></a>
<h3 class="review_header">
<a href="/dist/App-lntree">
App-lntree</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7718" data-user="10616">
<a name="7718"></a>
<h3 class="review_header">
<a href="/dist/Data-Clone">
Data-Clone</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
I've never encountered difficulty in cloning data structures in Perl, usually I just use Clone or sometimes Storable's freeze + thaw (the later does not yet support cloning Regexp objects out of the box).
<br><br>However, I like Data::Clone for its s...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-09-23T03:10:21
(<a href="/dist/Data-Clone#7718">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7666" data-user="10616">
<a name="7666"></a>
<h3 class="review_header">
<a href="/dist/Data-Pond">
Data-Pond</a>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-2.0.png" alt="**">
</h3>
<blockquote class="review_text">
With due respect to the author, I fail to see the practical point of Pond. Pond (Perl-based open notation for data) is the Perl counterpart of JSON, except that implementation is currently only available in Perl (CMIIW), and "Pond represents few...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-09-02T02:47:18
(<a href="/dist/Data-Pond#7666">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7640" data-user="10616">
<a name="7640"></a>
<h3 class="review_header">
<a href="/dist/File-Which">
File-Which</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7638" data-user="10616">
<a name="7638"></a>
<h3 class="review_header">
<a href="/dist/String-ShellQuote">
String-ShellQuote</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7636" data-user="10616">
<a name="7636"></a>
<h3 class="review_header">
<a href="/dist/Capture-Tiny">
Capture-Tiny</a>
devdata/stevenharyanto view on Meta::CPAN
<span class="helpful helpful_yes">Yes</span>
<span class="helpful helpful_no" >No</span>
<span class="thanks"></span>
</div><!-- helpfulq -->
</div><!-- review_footer -->
</div>
<div class="review" data-review="7634" data-user="10616">
<a name="7634"></a>
<h3 class="review_header">
<a href="/dist/File-chdir">
File-chdir</a>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
package Acme::CPANModules::Import::CPANRatings::User::stevenharyanto;
use strict;
our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-10-29'; # DATE
our $DIST = 'Acme-CPANModules-Import-CPANRatings-User-stevenharyanto'; # DIST
our $VERSION = '0.002'; # VERSION
our $LIST = {description=>"This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.",entries=>[{description=>"\n(REMOVED)\n",module=>"Log::Any",rating=>undef},{description=>"\nProvides a thin/lightweight OO interface for \$?, ...
1;
# ABSTRACT: List of modules mentioned by CPANRatings user stevenharyanto
__END__
=pod
=encoding UTF-8
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
<br><br>A simple benchmark:
<br><br>###
<br>
use Benchmark qw(timethese);
<br>
use Data::Seek;
<br>
use Data::DPath qw(dpath);
<br>
use JSON::Path;
<br><br>my $data = { map { $_ => {map {$I<< =>[1..4]} 1..20} } "a".."z" };
<br><br>timethese(-0.25, {
<br><br>dseek => sub { $ds = Data::Seek->new(data=>$data); $ds->search("j.1.\@")->data },
<br><br>dseek >>cacheobj=>sub{ state $ds=Data::Seek->new(data=>$data); $ds->search("j.1.\@")->data },
<br><br>dpath=>sub{ dpath("/j/1/I<< ")->match($data) },
<br><br>jpath=>sub{ JSON::Path->new(q[$.j.1.[ >>]])->values($data) },
<br>
});
<br>
=head2 #
<br><br>###
<br>
Benchmark: running dpath, dseek, dseek_cacheobj, jpath for at least 0.25 CPU seconds...
<br><br>dpath: 1 wallclock secs ( 0.27 usr + 0.00 sys = 0.27 CPU) @ 8292.59/s (n=2239)
<br><br>(warning: too few iterations for a reliable count)
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
From the description: "App::whatthecommit is just another lazy-to-lazy line command utility." I'd thought the definition of laziness would be something like 'alias gc=git commit --allow-empty-message'. This is more like hubris. Or whatever....
<br>
=item L<Opt::Imistic>
Author: L<ALTREUS|https://metacpan.org/author/ALTREUS>
Very nifty for short scripts and some clever design inside (all options are stored as arrayref, but there is some overloading to make getting boolean/flag and normal scalar value convenient).
<br><br>For more "proper" scripts though (anything above say 20-30 lines) I'd recommend using something like Getopt::Long with a real spec. Some of the features I like in G::L not in Opt::Imistic: the ability to get --noOPT for free for fla...
=item L<Devel::STrace>
Author: L<DARNOLD|https://metacpan.org/author/DARNOLD>
The doc looks promising, it really looks like it could be the "strace for Perl functions", but the usage is awkward (you have to open two terminals, one for running your program and producing trace file, and another for reading this file). ...
<br><br>One alternative if you're looking for a similar module is Debug::LTrace.
<br><br>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
<br>
find(sub { ... }, "some.tar.gz");
<br><br>instead of the multiline, tedious setup just to search a file.
<br>
=item L<App::DBBrowser>
Author: L<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 I<much> more useful if usernames/passwords, queries, and other settings can be saved in a config/session file.
<br>
=item L<Locale::Maketext>
Author: L<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>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
Author: L<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 mod...
=item L<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.
=item L<Syntax::SourceHighlight>
Author: L<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>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
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>
=item L<YAML::Syck>
Author: L<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.
=item L<Devel::FindPerl>
Author: L<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...
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
<br><br>This module does not output proper POD for many (not so) edge cases, like:
<br><br>C<>> and the likes are not yet escaped, producing C<>> when it should have been C<< > >> or C<E<gt>>.
<br><br>Ordered list numbering does not yet work, e.g. "2. ...\n3. ...\n" produces "=item 1. ... =item 1. ..."
<br><br>Ordered list with item numbered other than 1 does not work (see above). This should be supported in POD because POD allows us to write the bullets/numbers for each item.
<br><br>Inline markup is not smart enough to differentiate word_with_underscore. So "foo_bar and foo_baz" becomes "fooI<bar and foo>baz".
<br><br>Plus it segfaults sometimes (might be my perl though).
Rating: 4/10
=item L<Lingua::Metadata>
Author: L<MAJLIS|https://metacpan.org/author/MAJLIS>
As previous reviewer noted, this module is actually just a front-end to the author's web service. Plus license is specifically BSD (which allows this module to be included in closed source projects), this is rather ironic to me.
<br>
=item L<Finance::Currency::Convert::WebserviceX>
Author: L<CLACO|https://metacpan.org/author/CLACO>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
Author: L<HOREA|https://metacpan.org/author/HOREA>
Module name should perhaps be Log::Log4perl::Appender::File::RoundRobin to make it clearer that the backend is File::RoundRobin.
<br>
=item L<Any::Mo>
Why exclude Moo?
<br><br>Also the issue with any Any::* (or Any::*) modules is that there should be a mechanism (preferably a common one) to adjust the ordering. Sometimes I prefer Moose first, for full capability or compatibility or whatever. Sometimes I prefer Mous...
<br>
=item L<PerlX::Perform>
Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>
I personally don't see much value of this syntactic sugar since Perl already allows us to express clearly. Pick one:
<br><br>for ($foo) { say $_ if defined }
<br><br>for (grep {defined} $foo) { say $_ }
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
Just adding a note that this module is unmaintained (as expressed by the author) and has stopped working for some time. If you are looking for alternatives, try REST::Google (which includes REST::Google::Search::Images). The latter has been working O...
=item L<Acme::Damn>
Author: L<IBB|https://metacpan.org/author/IBB>
5 stars for cute metaphor (there's also Acme::Holy by the same author, but that is just another implementation of Scalar::Util's blessed()) and for prompt support from the author.
<br><br>I'm sure there exists a real use case to move this out of Acme::, however obscure that might be. Can't come up with any right now, all I can think of is reblessing, which can be handled with bless() from the start.
<br><br>UPDATE 2013-09-11: I found a real use-case for it! Cleaning up data to be sent to JSON. BTW, Data::Structure::Util also has an unbless() function, but Acme::Damn is smaller and faster. Data::Structure::Util also currently doesn't build on Win...
<br>
=item L<WWW::Parallels::Agent>
@Justin Case: The name is unfortunate, but it's already proper (WWW:: followed by website or company name). HTTP client libraries are in LWP::. But VM:: is also an apt choice.
<br>
=item L<Underscore>
I don't know why Sawyer X's review is marked as unhelpful (2 out of 8), but I agree with him. This is I<not> an Acme module, it's a port of a JavaScript library of the same name.
<br>
=item L<Locale::Geocode>
Author: L<DIZ|https://metacpan.org/author/DIZ>
Sorry to have to rate with 1 star. I don't have problem with the interface/documentation. The 1-star rating is just to warn people that the data used by this module is not up to date. And that YEARS-old bugs are not being fixed.
<br><br>At the time of this writing, this module still uses ISO 3166-2:1998 (first edition) + the newsletters (minor updates) up to 2006. When it should be updated to ISO 3166-2:2007 (second edition) + all the newsletters. For example, this module do...
<br><br>Sadly we live in a world where countries and subcountries change all the time.
Rating: 2/10
=item L<Locale::SubCountry>
Author: L<KIMRYAN|https://metacpan.org/author/KIMRYAN>
UPDATE 2012-08-30: I am not sure if the module is now fully compliant to the new ISO 2007, but bug reports are certainly being responded and resolved now. Updating rating from 1-star to 4-star. Thanks, Kim.
<br><br>2012-02-17: Review to version 1.47:
<br><br>Sorry to have to rate with 1 star. I don't have problem with the interface/documentation. The 1-star rating is just to warn people that the data used by this module is not up to date. And that months-old bugs are not being fixed.
<br><br>At the time of this writing, this module still uses ISO 3166-2:1998 (first edition) when it should be updated to ISO 3166-2:2007 (second edition) + all the newsletters (minor updates). For example, this module does not report 3 newer province...
<br><br>Sadly we live in a world where countries and subcountries change all the time.
<br><br>EDIT: Ok, so I was not being clear that I was not talking about my own bug report (posted at about the same time of this review). And bugs were certainly being resolved up to about 7 months ago.
<br>
Rating: 8/10
=item L<Data::Rmap>
Author: L<BOWMANBS|https://metacpan.org/author/BOWMANBS>
A very handy utility, sort of like s/// on your nested data structure instead of just strings. One nitpick: no coderef support. I needed to replace all coderefs inside a data structure into a string, since I want to pass it to JSON encoder. None of t...
<br><br>UPDATE 2011-12-30: The author (Brad) quickly responded to my RT ticket and added rmap_code. Upgrading from 4- to 5-star :) Regexp support is not there yet though, and I have suggested the ability to get all kinds of Perl-specific and weird ob...
<br>
=item L<Data::Properties::JSON>
Author: L<JOHND|https://metacpan.org/author/JOHND>
The abstract for this module is a bit strange. What does this have to do with 'test fixtures'? Also the documentation doesn't say much, e.g. What will happen if a hash key contains funny characters (or arrays, etc)?
<br><br>A similar module in spirit is Data::Hive. I think "providing convenient chained method access to hierarchical data" should be refactored out. So perhaps Data::Properties::{JSON,YAML,...} should just be a convenient shortcut for {JSO...
=item L<Exporter::Auto>
Author: L<NEILB|https://metacpan.org/author/NEILB>
I discourage module authors from exporting like this because it's simply too impolite/intrusive for module users. If the module author is lazy, there is already Exporter::NoWork which offers a few options for module users. This module, on the other h...
<br><br>Let me remind all again by quoting from Exporter's POD: "Do I<not> export anything else by default without a good reason! Exports pollute the namespace of the module user."
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
After comparing against File::MMagic, File::MMagic::XS, File::Type, I ended up choosing File::LibMagic because it has the least problems and looks like being the most maintained (although it would be nice if the author cleans up the RT queue).
<br><br>For those stuck without a C compiler, File::Type or File::Magic can be an alternative.
Rating: 8/10
=item L<File::MMagic::XS>
Author: L<DMAKI|https://metacpan.org/author/DMAKI>
Last time I checked, still can't parse system magic database, e.g. /usr/share/file/magic (bug first filed in RT 4 years ago).
<br><br>The currently recommended module in this area seems to be File::LibMagic. Other alternatives include File::MMagic (slow and buggy, no longer maintained), Media::Type::Simple (only maps MIME type from/to file extension).
Rating: 4/10
=item L<File::MMagic>
Author: L<KNOK|https://metacpan.org/author/KNOK>
Works for basic usage, but has quite a few problems. Plus it is not very performant. Doesn't seem to be maintained anymore.
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
Why do we need this uploaded to CPAN?
Rating: 2/10
=item L<Passwd::Unix>
Author: L<STRZELEC|https://metacpan.org/author/STRZELEC>
No tests. No detailed error status, only true/false (yes, there is a 'warnings' parameter on constructor, but this doesn't give out warnings on all operations, only some). No locking (although there is backup, but still).
<br><br>Also, some weird choices, why use bzip2 when creating backup? Or, why still require running as root (checking $() if we are allowing custom database file location?
<br><br>Between this and Unix::ConfigFile, I'm seriously considering using Unix commands instead (useradd, userdel, gpasswd, et al).
<br><br>UPDATE 2011-04-21: I created a fork of Passwd::Unix 0.52 called Passwd::Unix::Alt instead, which add some tests and modifications. Try it out if your needs are also not met by Passwd::Unix.
<br><br>UPDATE 2012-08-30: I created a new module called Unix::Passwd::File. Try it out if your needs are also not met by Passwd::Unix.
Rating: 2/10
=item L<Unix::ConfigFile>
Author: L<SSNODGRA|https://metacpan.org/author/SSNODGRA>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
<br><br>There's another nice little INI module that can do read/set/delete/unset (instead of just read/dump): Prima::IniFile, but it is included in a totally unrelated distribution.
Rating: 8/10
=item L<DateTime>
Author: L<DROLSKY|https://metacpan.org/author/DROLSKY>
Amidst all the glowing reviews may I add a reminder that, as with everything, there's a catch: runtime performance. On my PC, the speed of creating a DateTime object is just around 6000/sec. If you use DateTime intensively, it can quickly add up.
<br><br>Imagine serving a web page that fetches 50 rows from database, where for convenience you convert each date column to a DateTime object, and you have 120 requests/sec coming in... That's already 6000 objects (an extra second!).
<br><br>Which is unfortunate because DateTime is so wonderful, convenient, correct, complete and all that. So one approach you can use might be to delay converting to DateTime object until necessary.
=item L<Date::Manip>
Author: L<SBECK|https://metacpan.org/author/SBECK>
Wow, there are surely a lot of negative reviews ...
<br><br>First of all, Date::Manip has a long history. I used this module back in 2001-2002, IIRC. Back then it was I<the> swiss army of date/time manipulation, something you use when you want the most flexible/complete thing in Perl. True, it's slow,...
<br><br>But then things change. DateTime project was started, and now it is somewhat the de facto standard. It's more modern and far more modular than the monolithic Date::Manip (every timezone and language support and parsing/formatting modules ship...
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
I guess this app is still useful, since "cp -sR" still doesn't work as many would expect, and there are Windows users out there (yes, newer NTFS does support symlinks; though I don't know whether this module supports creating symlinks on NT...
<br><br>A minor comment would be on the name, maybe lnstree can be considered instead (since "ln" indicates hardlink, at least for me). Btw, there's also a free software called "lns" to do the exact same thing.
<br><br>
=item L<Data::Clone>
Author: L<GFUJI|https://metacpan.org/author/GFUJI>
I've never encountered difficulty in cloning data structures in Perl, usually I just use Clone or sometimes Storable's freeze + thaw (the later does not yet support cloning Regexp objects out of the box).
<br><br>However, I like Data::Clone for its speed! It's several times faster than Clone or freeze+thaw. So hats up. Planning to use Data::Clone in future projects.
<br><br>Now if we can convince Goro to write a fast serializer/deserializer with compact output (essentially, a faster version of Storable), that would be even nicer :-)
<br><br>
=item L<Data::Pond>
Author: L<ZEFRAM|https://metacpan.org/author/ZEFRAM>
With due respect to the author, I fail to see the practical point of Pond. Pond (Perl-based open notation for data) is the Perl counterpart of JSON, except that implementation is currently only available in Perl (CMIIW), and "Pond represents few...
<br><br>Pond is pitched against Data::Dumper + eval, which is dangerous, but Data::Dumper + eval is by far not the only method available for serialization. Perl can do Storable, JSON, YAML, even PHP serialization format.
<br><br>The documentation does not show what Pond looks like.
<br><br>One cute thing about Pond is that you can check Pond syntax using a single regex. But apart from that, there's nothing compelling in using Pond to serialize data.
Rating: 4/10
=item L<File::Which>
Author: L<PLICEASE|https://metacpan.org/author/PLICEASE>
You can always count on CPAN to have prewritten modules for various things, including this one. I've never bothered before about portability and just rely on the "which" command, but for one reason there's a time when I just couldn't do tha...
<br><br>Btw, there's also File::Which::Cached.