Acme-CPANModules-Import-CPANRatings-User-stevenharyanto

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

        Of course, Real(TM) programmers shift and fiddle bits by themselves,
        but for the rest of us this module is a nice convenience.

    Archive::Any
        Author: OALDERS <https://metacpan.org/author/OALDERS>

        Nice idea, but the API needs to richer to be more useful (otherwise
        one will still need to go to individual Archive::Tar, Archive::Zip,
        etc). Currently the API provided are: listing files and extracting
        all files. We can't: create archive, add more files, extract some
        files only, find files, and so on.

        Rating: 8/10

    Devel::Confess
        Author: HAARG <https://metacpan.org/author/HAARG>

        Very nifty, it's like Carp::Always but with much more
        options/features (so you don't need a separate Carp::Always::Color,
        Carp::Always::Dump, and so on).

    SQL::Statement
        Author: REHSACK <https://metacpan.org/author/REHSACK>

        The concept is truly cool, unfortunately the parser is currently
        flaky/buggy: one SQL query might work but another valid and
        seemingly simple SQL would fail with weird error message. See
        distribution's RT queue. <br>

        Rating: 6/10

    PerlMongers::Hannover
        Author: PTC <https://metacpan.org/author/PTC>

        Instead of just printing some info, why not make it an Acme::PM or
        Acme::PerlMongers like Acme::CPANAuthors? Various stats can then be
        produced about the various Perl Mongers. <br>

    App::multiwhich
        Note that File::Which can also search for all matches too if you use
        it in a list context, e.g. @paths = which('foo'). File::Which also
        comes with a pwhich CLI utility which also accepts multiple
        arguments and has the -a switch to print all matches. The output
        format is slightly different than 'multiwhich' though. <br><br>In
        fact, the Unix 'which' command (or at least its Debian variant) also
        sports the -a switch.

    Object::Anon
        Author: ROBN <https://metacpan.org/author/ROBN>

        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 &quot;extremely fast and efficient&quot; 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 { $_ =&gt;
        {map {$*=&gt;[1..4]} 1..20} } &quot;a&quot;..&quot;z&quot; };
        <br><br>timethese(-0.25, { <br><br>dseek =&gt; sub { $ds =
        Data::Seek-&gt;new(data=&gt;$data);
        $ds-&gt;search(&quot;j.1.\@&quot;)-&gt;data },
        <br><br>dseek*cacheobj=&gt;sub{ state
        $ds=Data::Seek-&gt;new(data=&gt;$data);
        $ds-&gt;search(&quot;j.1.\@&quot;)-&gt;data },
        <br><br>dpath=&gt;sub{ dpath(&quot;/j/1/*&quot;)-&gt;match($data) },
        <br><br>jpath=&gt;sub{
        JSON::Path-&gt;new(q[$.j.1.[*]])-&gt;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
        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>(warning: too few
        iterations for a reliable count) <br> =head2 #

        <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 much simpler JSON::Path, or
        the more powerful Data::DPath. <br>

    Games::2048
        Author: BLAIZER <https://metacpan.org/author/BLAIZER>

        My favorite 2048 implementation (it's text-mode, written in Perl,
        uses my module Color::ANSI::Util, and what else... oh yeah, it's the
        only implementation where I've reached 2048 :-) ). <br><br>One tip:
        enlarge the fonts of your terminal emulator (e.g. Ctrl-+ on Konsole)
        until it's big and convenient enough.

    App::D
        Author: BESSARABV <https://metacpan.org/author/BESSARABV>

        As an alternative, one can also do: <br><br>alias d=' <br><br>TZ=UTC
        date; # show date in UTC <br><br>date ; # show date in local
        timezone <br><br>cal -3 ; # show monthly calendar for curmon-1,
        curmon, curmon+1 <br> ' <br><br>

    Getopt::Long
        Author: JV <https://metacpan.org/author/JV>

        Having worked for quite some time with option processing and several
        other similar modules, I have to say that most of the time you
        probably want to use Getopt::Long instead of the other alternatives.
        Or at least pick the alternatives which are based on Getopt::Long,
        instead of those that reinvent the wheel and do their own option
        parsing. <br><br>Most other modules that reinvent option parsing
        either don't bother to do short option bundling (-abc instead of -a
        -b -c), or abbreviation (--long-o instead --long-option-name), or
        the choice to (dis)allow mix-mashing options and arguments, or
        support '--' to end option processing, or respect ordering, or
        support multiple options (--verbose --verbose), or support
        '--foo=val' *as well as* '--foo val', and so on. These are features
        and conveniences that are taken for granted by people working daily
        in Unix command-line. <br>

    Text::Table::Tiny
        Author: NEILB <https://metacpan.org/author/NEILB>

        Very fast, several times faster than Text::TabularDisplay or
        Text::Table (and many times faster than the other slower
        table-generator modules). It uses sprintf() to format a whole row
        instead of formatting each cell separately using sprintf() and
        joining cells together with join(). <br><br>I did a comparison in:
        <a
        href="http://blogs.perl.org/users/steven_haryanto/2014/07/benchmarki
        ng-several-ascii-table-generator-modules.html"
        rel="nofollow">blogs.perl.org/users/steven_haryanto/...</a>

    Mo  Author: TINITA <https://metacpan.org/author/TINITA>

        A great alternative when Moo is a bit too much for you. Useful for
        scripts that must start really fast. Mind you, Moo loads about 5K
        lines of code and more than a dozen files, all of which takes +-
        10ms on my computer. Mo on the other hand is only a single line of
        +-500 characters, and it's inlinable. It loads in under 1ms. If a
        script must be executed thousands of times a day, that 9ms
        difference will matter more. <br><br>I use this for a very
        lightweight parent class. A richer subclass then uses Moo.

README  view on Meta::CPAN

        utf8 by default. For ultra-lightweight cases, this is sometimes not
        desirable. There is currently no way to turn this off. <br><br>3)
        The arbitrary choice of three levels deep when printing references.
        This can be customized but with an unusual syntax. But again, the
        arbitrary choice of three. <br><br>4) The &quot;complex&quot; rules
        of newline printing. p() is like puts, it can optionally add a
        newline. But unlike puts, the doc says it can also remove newlines.
        The behavior can also change if the string to be printed ends with
        0x83. <br><br>I might use P for a sprintf/printf replacement, but
        for debugging values, I'd prefer something &quot;dumber&quot; like
        Data::Dump::Color (or Data::Printer, if that's your thing).

    Xporter
        Author: LAWALSH <https://metacpan.org/author/LAWALSH>

        A couple of comments. First, if you want to import the default
        exports *as well as* some additional others, you can use Exporter's
        feature (the :DEFAULT tag): <br><br>use SomeModule qw(:DEFAULT a b
        c); <br><br>or you can also &quot;use&quot; twice: <br><br>use
        SomeModule; # imports default exports <br><br>use SomeModule qw(a b
        c); # import a, b, c <br><br>Second, if you use Xporter, your module
        will behave unlike most CPAN modules out there, because a majority
        of modules use Exporter. When people see this Perl code: <br><br>use
        SomeModule qw(a b c); <br><br>normally they will expect only a, b,
        and c are exported. If SomeModule uses Xporter, it will also by
        default export the default exports. <br><br>Basically Xporter is
        just Exporter with a different default (not arguably better or more
        user-friendly). For the sake of minimizing surprise to my users, I
        would avoid the use of Xporter. <br><br>UPDATE 2014-01-24: some
        edits. I appreciate the effort of the author to defend her module,
        though I am not convinced by her arguments.

    Dist::Zilla::Shell
        Author: DOLMEN <https://metacpan.org/author/DOLMEN>

        Nice tool that lets you type dzil commands like 'build', 'test', etc
        while sending all the other unknown commands like 'ls -l', 'man Foo'
        to the underlying shell. Also lets you avoid multiple startup
        overhead of dzil :-)

    CPANPLUS::Shell::Curses
        Author: MARCUS <https://metacpan.org/author/MARCUS>

        Unmaintained. Installs but no longer runs.

        Rating: 2/10

    Task::Mechanistic
        If you peek into its Makefile.PL, you'll see a seemingly
        random/heterogenous collection of modules to install (instead of
        just WWW::Mechanize). This is probably a Task::BeLike::$AUTHOR in
        disguise. <br><br>

    Sereal
        Author: YVES <https://metacpan.org/author/YVES>

        So far the best of the bunch. <br><br>FAST: much faster than
        Storable, roughly the same speed as (sometimes slightly faster than)
        Data::Clone for cloning. <br><br>FEATUREFUL: Can handle circular
        references, Regexp objects (trips out-of-the-box Storable),
        JSON::{PP,XS}::Boolean objects (trips Data::Clone). <br><br>COMPACT:
        definitely more compact (up to several times) than Storable.
        <br><br>I'm sold. What more do you want? Le Storable est mort, vive
        le Sereal!

    Test::Tester
        Author: EXODIST <https://metacpan.org/author/EXODIST>

        If you write test functions, you need this. It's like the
        &quot;Test::More&quot; for &quot;Test::More&quot;. However, it
        currently does not work out of the box with subtests (submitted as
        wishlist to RT). <br><br>PS: Thanks to Toby Inkster for pointing
        this module out. <br><br>

    Text::CharWidth
        Author: KUBOTA <https://metacpan.org/author/KUBOTA>

        It's faster than Unicode::GCString-&gt;new($str)-&gt;columns, but it
        gives wrong answers to lots of characters, e.g. control characters
        like &quot;\n&quot;, &quot;\t&quot;, etc are currently assumed to
        have width of -1 character. You're better off with
        Unicode::GCString.

        Rating: 2/10

    App::Options
        Author: SPADKINS <https://metacpan.org/author/SPADKINS>

        2010-10-13: <br><br>I admit, this is not the most flexible
        configuration framework out there as it enforces some convention.
        And I don't/can't use it on every project. But it's certainly one of
        the easiest. You can slap a few lines of options declaration in your
        code and voila, your script suddenly can accept command line
        arguments, has --help message et al, read from config files (in
        several preset locations). <br><br>There are still a few annoyances
        (I submitted them in the RT), but in general, this is a very handy
        module to use for lazy coders who just want to accept
        configuration/options from outside the code. <br><br>&lt;shameless
        plug&gt;I'm trying to do somewhat the same with Config::Tree, but as
        of now the module is not really done yet.&lt;/shameless plug&gt;
        <br><br>UPDATE 2013-08-15: <br><br>I'm reducing the ratings from 5
        to 2. I've now avoided using this module due to two lingering issue
        since 2010: 1) App::Options does not accept '--opt val', only
        '--opt=val' which is incompatible with how most command-line
        programs work, causing confusion for some of my users. 2) 'perl -c'
        doesn't work under this module, it will still trigger command-line
        processing. <br><br>I'm now using Perinci::CmdLine as replacement,
        but I cannot recommend it in general, as the two modules are not
        equivalent.

        Rating: 4/10

    Filesys::Notify::Simple
        Author: MIYAGAWA <https://metacpan.org/author/MIYAGAWA>

        It's rather unfortunate that currently the choice for general
        purpose cross-platform filesystem notification modules on CPAN falls
        between this module (FNS) or File::ChangeNotify (F::CN). The other
        CPAN modules are either OS-/framework-specific. <br><br>FNS has a
        simple API but is perhaps too simple for some uses, while F::CN uses
        Moose and has a big startup overhead. <br><br>If you simply want to

README  view on Meta::CPAN

        workaround for Storable. See the FAQ in the updated v0.03 for more
        details. <br>

    Storable
        Author: NWCLARK <https://metacpan.org/author/NWCLARK>

        Balancing previous glowing reviews. Storable has it faults, for
        example historically its track record for file format backwards
        compatibility is poor, making programs fail when loading Storable
        files after the module is upgraded. <br><br>Also, more importantly,
        add builtin support for Regexp object already! It's almost 2013,
        Regexp object has been around for, what, more than a decade? I can
        understand not supporting serializing filehandle or coderef, but
        Regexp object?

        Rating: 2/10

    WWW::YouTube::Download
        Author: OALDERS <https://metacpan.org/author/OALDERS>

        Works for me too ATM. I've tried several command-line scripts (most
        of them Python-based, like youtube-dl, tubenick, etc). Sometimes
        they work, sometimes they broke. It's the nature of this kind of
        script. The quality comes from persistence. This module has been
        maintained since 2009, through several YouTube's changes. I commend
        the author, good job, and thanks!

    Number::Zero
        From the module's POD: &quot;The number zero and undef are difficult
        to determine in Perl.&quot; <br><br>Are they? <br><br>say
        !defined($data) ? &quot;undef&quot; : &quot;not undef&quot;;
        <br><br>say defined($data) &amp;&amp; $data==0 ? &quot;zero&quot; :
        &quot;not zero&quot;; # yes, warn if non-numeric <br><br>use
        Scalar::Util 'looks_like_number'; <br> say looks_like_number($data)
        &amp;&amp; $data==0 ? &quot;zero&quot; : &quot;not zero&quot;;
        <br><br>Though I understand the need for a convenient
        &quot;is_zero&quot; function if you need to test for zero in a
        program a lot.

    Syntax::SourceHighlight
        Author: MATLIB <https://metacpan.org/author/MATLIB>

        IMO, currently the only usable (read: non-crap) code syntax
        highlighting library on CPAN. Cons: you'll need to install GNU
        Source-highlight (and its development library/header) which pulls
        over 100MB of packages on my Debian. <br>

        Rating: 8/10

    Syntax::Highlight::Engine::Kate
        Author: MANWAR <https://metacpan.org/author/MANWAR>

        Highlighter engine doesn't seem updated (for example, defined-or is
        not yet interpreted correctly by this module but already correctly
        by Kate itself). Does not provide default theme (must specify all
        colors). Seem to be very slow (takes 1.5s for a 18K Perl .pm file
        while Pygments only takes 0.2s). <br><br>

        Rating: 2/10

    Syntax::Highlight::JSON
        Author: MART <https://metacpan.org/author/MART>

        No documentation. Combines formatting and syntax-highlighting, so
        you cannot preserve original formatting. Only outputs to HTML and no
        default &quot;theme&quot; (CSS) provided. <br>

        Rating: 2/10

    Syntax::Highlight::Engine::Simple
        Author: AKHUETTEL <https://metacpan.org/author/AKHUETTEL>

        Output looks decent. However, it currently only formats to HTML/CSS
        (no ANSI, LaTeX, etc). Also, it needs more languages support. <br>

        Rating: 6/10

    Syntax::Highlight::Universal
        Author: PALANT <https://metacpan.org/author/PALANT>

        Only targets (X)HTML (i.e. no alternative output like ANSI or
        LaTeX). Supposedly slow. But it doesn't matter because code no
        longer builds (last updated in 2005).

        Rating: 2/10

    text::highlight
        Outdated (no longer updated), poor capability (even for some simple
        Perl code, the output is atrocious), few languages supported. A far
        cry from Pygments or coderay.

        Rating: 2/10

    SemVer
        Author: DWHEELER <https://metacpan.org/author/DWHEELER>

        Good for semantic versioning scheme like 1.2.3 vs 1.2.3alpha vs
        1.2.3rc (1.2.3 should be the latest, not the alpha or rc). However,
        does not accept e.g. 1.0beta (at least three components are needed).
        Perhaps relax this requirement? <br><br>Also take a look at
        Debian::Dpkg::Version. <br>

    Sort::Versions
        Author: NEILB <https://metacpan.org/author/NEILB>

        Good for Perl-style versioning scheme (1.2.3) but does not work as
        people expect for semantic versioning scheme like 1.2.3 vs
        1.2.3alpha vs 1.2.3rc (1.2.3 should be the latest, not the alpha or
        rc). For handling the latter case, use SemVer. Also take a look at
        Debian::Dpkg::Version.

    App::Countdown
        Author: SHLOMIF <https://metacpan.org/author/SHLOMIF>

        Nice idea, though I'd probably just write a shell function for this.
        <br>

        Rating: 8/10

    Data::Compare
        Author: DCANTRELL <https://metacpan.org/author/DCANTRELL>

        Pros: handle hashes as well as arrays, handle nested and cyclic
        structure, plugins. <br><br>Cons: No cmp-like functionality
        (returning -1, 0, 1), slow (even slower than Array::Compare).
        <br><br>See also: Array::Compare, JSON/YAML/Storable. <br>

        Rating: 6/10

    Array::Compare
        Author: DAVECROSS <https://metacpan.org/author/DAVECROSS>

        Pros: has a perm() function to check whether the two arrays contain
        the same things but in different order (although you can simply just
        run sort() over the arrays first). Allow skipping some elements from
        comparison. <br><br>Cons: no cmp-like functionality (returning -1,
        0, 1), slow (for equality test, you might as well compare the
        json_encode() result of the arrays, which is way faster), no nested
        comparison. No procedural interface. <br><br>See also:
        Data::Compare, JSON/YAML/Storable.

        Rating: 4/10

    Mozilla::Mechanize
        Author: SLANNING <https://metacpan.org/author/SLANNING>

        No longer builds (tested on a current Debian). A pity, since drop-in
        replacements for WWW::Mechanize (using different backend like curl,
        IE, Mozilla, Chrome, etc) might be handy. <br><br>

    LWP::Curl
        Author: LORN <https://metacpan.org/author/LORN>

        Those looking for LWP drop-in replacement might want to take a look
        at the recently released LWP::Protocol::Net::Curl instead, which
        supports WWW::Mechanize. <br><br>

    LWP::Protocol::Net::Curl
        Author: SYP <https://metacpan.org/author/SYP>

        Shows great promise. I personally need this for HTTPS proxy support.
        After testing, the module still doesn't work to login to my internet
        banking sites. But I'll still check in from time to time. <br>

    Devel::SizeMe
        Author: TIMB <https://metacpan.org/author/TIMB>

        Wow, just wow. Hopefully now that we can use this tool to know how
        big things are, we are encouraged to create leaner, faster, more
        efficient Perl modules.

    Oktest
        Author: KWATCH <https://metacpan.org/author/KWATCH>

        A reinvention of Perl testing modules (it even comes with an
        equivalent for 'prove' command), with probably no added features and
        some added quirks. (Nested) topic can already be done using
        Test::More's subtests. Filtering and setup/teardown can be done with
        Test::Class. And I am supposed to replace specific assertion
        functions (with specific, helpful error messages) like is(), isnt(),
        like(), is_deeply(), etc with just OK()? <br>

        Rating: 4/10

    HTML::Escape
        Author: TOKUHIROM <https://metacpan.org/author/TOKUHIROM>

        Still a bit slower than PHP's htmlspecialchars(), but in the same
        ballpark. An order of magnitude faster than HTML::Entities. Does not
        provide unescaping, but it's okay since escaping is the majority of
        use cases.

    Clone::Fast
        Casual benchmarking on my PC shows that Data::Clone is up to twice
        faster than this.

        Rating: 6/10

    Perl::Strip
        Author: MLEHMANN <https://metacpan.org/author/MLEHMANN>

README  view on Meta::CPAN

        frameworks supported by Log::Any. <br><br>

    List::Pairwise
        Author: TDRUGEON <https://metacpan.org/author/TDRUGEON>

        Two nice and possibly very useful functions. But IMO the names
        'mapp' and 'grepp' are two similar to 'map' and 'grep', making it
        prone to typos and misreading. Perhaps consider 'map2' and 'grep2'?

    Log::Log4perl::Appender::File::FixedSize
        Author: 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>

    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
        whether we should add a comma or not before &quot;wherever&quot;.
        <br>

    TOBYINK::PerlX::A
        I have nothing against bundles like this, but beware that adding
        'use TOBYINK::PerlX::A' will cause Perl to load 460 files and
        compile +- 160k lines (takes 1s on my Core i5 machine and 8s on my
        Atom netbook).

    WWW::Google::Images
        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 OK for
        me.

    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
        &quot;clean&quot; 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 &quot;providing convenient chained method access to
        hierarchical data&quot; 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
        control at all for users (so they'll have to resort to 'use Module
        ();'). <br><br>Let me remind all again by quoting from Exporter's
        POD: &quot;Do *not* export anything else by default without a good
        reason! Exports pollute the namespace of the module user.&quot;

    Net::Douban
        Interface to web services should be put under WWW::*, not Net::*

    HTML::Form::XSS
        Author: DUMB <https://metacpan.org/author/DUMB>

        Should probably be put under Test::*?

    Thread::IID
        Author: WROG <https://metacpan.org/author/WROG>

        When I saw the perlmonks thread yesterday, I thought &quot;well,
        someone should package it and put it on CPAN&quot;. And then someone
        did :) Thanks. <br>

    Test::Lite
        Author: BRADH <https://metacpan.org/author/BRADH>

        This is just a reimplementation of Test::More. But I thank the
        author for writing a short description of why this module is
        written, how it is different from others, and suggestion of what
        modules users should use. There are a lot of wheels being reinvented
        on CPAN, and that's okay, I just wish more people would document the
        reason.

    Sub::Mage
        Author: BRADH <https://metacpan.org/author/BRADH>

        Since the first release, there are 13 subsequent releases in total.
        What are the changes between releases? No idea, the author doesn't
        bother to update Changes (and no public repo is listed). Apparently
        all his other modules are also like this. Not very user-friendly.
        <br><br>UPDATE 2011-11-22: I see that this has been rectified by the
        author, there is now Changes entry for each new release. Cool,
        thanks. <br>

    relative_lib
        Documentation is placed in README.md, so it's inaccessible from
        perldoc et al. Why? This is not a Python library.

    CPAN::Mini::Webserver
        Author: MITHALDU <https://metacpan.org/author/MITHALDU>

        Just found out about it, despite having used CPAN::Mini for over a
        year. Helps *a lot*. More people should know this (e.g. mention from
        CPAN::Mini POD).

README  view on Meta::CPAN

        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 *the* swiss army of date/time
        manipulation, something you use when you want the most
        flexible/complete thing in Perl. True, it's slow, but it works.
        <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 shipped in one
        single distribution). <br><br>And then there's the 5.x -&gt; 6.x
        debacle. As someone who also sprinkle Perl 5.10 requirements to his
        CPAN modules, I can feel for the author. But the difference is, most
        of my modules are not that widely used/known, and also many start
        its life already requiring 5.10 right from its first released
        version. While in Date::Manip's case, this happens to a very widely
        used module. Surely backwards compatibility should be considered
        more. <br><br>All in all, you are free to use or not use
        Date::Manip. There are other alternatives. Pick wisely. <br>

        Rating: 6/10

    App::pmuninstall
        Author: XAICRON <https://metacpan.org/author/XAICRON>

        One would wonder why CPAN clients still don't have this crucial
        feature Though you see Miyagawa listed in the Credits so maybe
        cpanminus or its sister will end up having this functionality? One
        can only hope. At 0.06, some things are not working flawlessly
        (submitted in RT). Keep up the good work! <br><br>

    App::lntree
        Author: ROKR <https://metacpan.org/author/ROKR>

        I guess this app is still useful, since &quot;cp -sR&quot; 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 NTFS). <br><br>A
        minor comment would be on the name, maybe lnstree can be considered
        instead (since &quot;ln&quot; indicates hardlink, at least for me).
        Btw, there's also a free software called &quot;lns&quot; 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 &quot;Pond represents fewer data
        types directly&quot;. <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 &quot;which&quot; command, but for
        one reason there's a time when I just couldn't do that. <br><br>Btw,
        there's also File::Which::Cached.

    String::ShellQuote
        Author: ROSCH <https://metacpan.org/author/ROSCH>

        I admit it. Ever since I know about escapeshellarg() and
        escapeshellcmd() in PHP, I've been reimplementing this function in
        Perl literally a million of times (mostly because of laziness and
        because it only takes a couple of lines in Perl). Only a few months
        ago after the millionth time I said enough is enough and started to
        look around in CPAN, and found this module. <br><br>The only problem
        for this module is lack of visibility. Before I've never read
        articles or blog posts mentioning this module, ever. Yes, we have
        system() that can bypass the shell, but qx() can't. So yes, this
        module needs to be marketed more! <br>

    Capture::Tiny
        Author: DAGOLDEN <https://metacpan.org/author/DAGOLDEN>

        Another very handy little module that takes the hassle out of
        figuring the various mechanisms of capturing output. <br><br>Nice
        interface, great documentation, very easy to use. But....
        <br><br>Currently it cannot just capture stdout *ONLY* or stderr
        *ONLY* (while leaving the other alone). I believe this is one of the
        most commonly requested feature (already in RT). If that feature is
        implemented, this module deservers a 7-star rating.

        Rating: 8/10

    File::chdir
        Author: DAGOLDEN <https://metacpan.org/author/DAGOLDEN>

        This is a handy little module, with a simple and nice interface. One
        of the more common bugs encountered in my scripts is forgetting to
        track the current working directory after doing chdir() in
        subroutines. By localizing $CWD, I don't have to worry that
        subroutines mess up current working directory anymore.

FAQ
  What is an Acme::CPANModules::* module?
    An Acme::CPANModules::* module, like this module, contains just a list
    of module names that share a common characteristics. It is a way to
    categorize modules and document CPAN. See Acme::CPANModules for more
    details.

  What are ways to use this Acme::CPANModules module?



( run in 0.979 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )