view release on metacpan or search on metacpan
"Moo::Lax" : "0",
"Mozilla::Mechanize" : "0",
"Net::BitTorrent::File" : "0",
"Net::Douban" : "0",
"Number::Zero" : "0",
"Object::Anon" : "0",
"Oktest" : "0",
"Opt::Imistic" : "0",
"P" : "0",
"Package::Builder" : "0",
"Passwd::Unix" : "0",
"PathTools" : "0",
"Perl::Squish" : "0",
"Perl::Strip" : "0",
"PerlMongers::Hannover" : "0",
"PerlX::ArraySkip" : "0",
"PerlX::Maybe" : "0",
"PerlX::Perform" : "0",
"Proc::PidUtil" : "0",
"Process::Status" : "0",
"Promises" : "0",
"Text::Table::Tiny" : "0",
"Text::VisualWidth" : "0",
"Text::VisualWidth::PP" : "0",
"Thread::IID" : "0",
"Tie::Hash::Identity" : "0",
"Time::Mock" : "0",
"Time::Out" : "0",
"UNIVERSAL::moniker" : "0",
"Umask::Local" : "0",
"Underscore" : "0",
"Unix::ConfigFile" : "0",
"Unix::PasswdFileOps" : "0",
"Util::Timeout" : "0",
"WWW::Google::Images" : "0",
"WWW::Mechanize" : "0",
"WWW::Parallels::Agent" : "0",
"WWW::YouTube::Download" : "0",
"Win32::App::which" : "0",
"Xporter" : "0",
"YAML::Syck" : "0",
"autodie" : "0",
"experimental" : "0",
"Moo::Lax" : "0",
"Mozilla::Mechanize" : "0",
"Net::BitTorrent::File" : "0",
"Net::Douban" : "0",
"Number::Zero" : "0",
"Object::Anon" : "0",
"Oktest" : "0",
"Opt::Imistic" : "0",
"P" : "0",
"Package::Builder" : "0",
"Passwd::Unix" : "0",
"PathTools" : "0",
"Perl::Squish" : "0",
"Perl::Strip" : "0",
"PerlMongers::Hannover" : "0",
"PerlX::ArraySkip" : "0",
"PerlX::Maybe" : "0",
"PerlX::Perform" : "0",
"Proc::PidUtil" : "0",
"Process::Status" : "0",
"Promises" : "0",
"Text::Table::Tiny" : "0",
"Text::VisualWidth" : "0",
"Text::VisualWidth::PP" : "0",
"Thread::IID" : "0",
"Tie::Hash::Identity" : "0",
"Time::Mock" : "0",
"Time::Out" : "0",
"UNIVERSAL::moniker" : "0",
"Umask::Local" : "0",
"Underscore" : "0",
"Unix::ConfigFile" : "0",
"Unix::PasswdFileOps" : "0",
"Util::Timeout" : "0",
"WWW::Google::Images" : "0",
"WWW::Mechanize" : "0",
"WWW::Parallels::Agent" : "0",
"WWW::YouTube::Download" : "0",
"Win32::App::which" : "0",
"Xporter" : "0",
"YAML::Syck" : "0",
"autodie" : "0",
"experimental" : "0",
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>
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
my job with only a few lines of Perl in 3-5 minutes (searching for
this module in CPAN takes more than that! searching using "mail
web" or "email url" at first didn't get results).
<br><br>Blackberry is having trouble displaying the resulting email
though. No problem with Gmail or Thunderbird/Icedove.
Term::Size
Author: FERREIRA <https://metacpan.org/author/FERREIRA>
5-year old bug like RT#38594 still present. Use one of the alternate
implementations like Term::Size::{Unix,Win32,ReadKey}. <br>
Rating: 2/10
DateTime::Format::Flexible
Author: THINC <https://metacpan.org/author/THINC>
While it doesn't cover as much phrases as DateTime::Format::Natural,
at least it's simpler to translate (and the dist already includes a
couple of translations). BTW, I think like in the POD of
DateTime::Format::Natural, it needs to list which phrases it
Rating: 2/10
Spreadsheet::Perl
Author: NKH <https://metacpan.org/author/NKH>
Good documentation. All modules' documentation should similarly
strive to contain at least: rationale for existence, pointer to
alternatives, and task-oriented organization.
Unix::PasswdFileOps
Author: BMAYNARD <https://metacpan.org/author/BMAYNARD>
Less-than-descriptive name (module's main function seems to be
sorting entries, can't be guessed from the name). No unit tests.
Doesn't handle /etc/shadow. Also, it might be useful to explain why
one needs to sort entries in passwd file. <br>
Rating: 4/10
Array::Diff
Yes, simple and gets the job done. Though I'm a bit curious with the
implementation. If the interface is only to get number of deleted
and added items (instead of positions of deletion/insertion), why
depend on Algorithm::Diff (or use the name 'diff', for that matter).
<br>
DZ1 Why do we need this uploaded to CPAN?
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
Unix::ConfigFile
Author: SSNODGRA <https://metacpan.org/author/SSNODGRA>
Outdated module that doesn't handle /etc/shadow and /etc/gshadow.
Rating: 2/10
lib::xi
Author: GFUJI <https://metacpan.org/author/GFUJI>
Handy module for installing dependencies. There are previous
Nice idea, straight and simple interface. A better name could
perhaps be chosen? Documentation should be expanded, e.g. to warn
users about security, since Data::Dumper a.k.a. eval() is used to
load variable content. Also, the implementation does not yet
consider file locking.
PathTools
I guess File::Spec's API is sane enough, but I suspect not a lot of
people are using it because there's not enough incentive for it.
When 99% population of the world use Unix/Linux/Windows (even Macs
been technically Unix for a number of years), "/" works
everywhere and using File::Spec does not gain you anything except
lots of typing exercise. <br><br>That's why I think Path::Class
might have a better chance of succeeding. It gives niceties like a
few more convenience methods, a shortcut of getting dir & file
object from each other, etc. It gives users more incentive of using
a proper path manipulation library because it gives extra stuff
along with that. It should also be in core to accompany File::Spec.
Rating: 8/10
devdata/stevenharyanto view on Meta::CPAN
(<a href="https://metacpan.org/release/App-multiwhich/">0.001</a>)
</h3>
<blockquote class="review_text">
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. ...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2014-08-16T22:34:39
(<a href="/dist/App-multiwhich#11878">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
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...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2014-07-26T22:11:10
(<a href="/dist/Getopt-Long#11844">permalink</a>)
</p>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-1.0.png" alt="*">
</h3>
<blockquote class="review_text">
5-year old bug like RT#38594 still present. Use one of the alternate implementations like Term::Size::{Unix,Win32,ReadKey}.
<br>
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2013-05-13T19:10:44
(<a href="/dist/Term-Size#11031">permalink</a>)
</p>
devdata/stevenharyanto view on Meta::CPAN
</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>
(<a href="https://metacpan.org/release/Unix-PasswdFileOps/">0.4</a>)
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-2.0.png" alt="**">
</h3>
<blockquote class="review_text">
Less-than-descriptive name (module's main function seems to be sorting entries, can't be guessed from the name). No unit tests. Doesn't handle /etc/shadow. Also, it might be useful to explain why one needs to sort entries in passwd file.
<br>
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2011-04-27T22:18:13
(<a href="/dist/Unix-PasswdFileOps#8510">permalink</a>)
</p>
<div class="helpfulq">
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>
devdata/stevenharyanto view on Meta::CPAN
</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>
(<a href="https://metacpan.org/release/Passwd-Unix/">0.621</a>)
<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">
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>
devdata/stevenharyanto view on Meta::CPAN
</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>
(<a href="https://metacpan.org/release/Unix-ConfigFile/">0.06</a>)
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-1.0.png" alt="*">
</h3>
<blockquote class="review_text">
Outdated module that doesn't handle /etc/shadow and /etc/gshadow.
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2011-04-20T02:25:42
(<a href="/dist/Unix-ConfigFile#8472">permalink</a>)
</p>
<div class="helpfulq">
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>
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-4.0.png" alt="****">
</h3>
<blockquote class="review_text">
I guess File::Spec's API is sane enough, but I suspect not a lot of people are using it because there's not enough incentive for it. When 99% population of the world use Unix/Linux/Windows (even Macs been technically Unix for a number of years), &quo...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-11-22T08:06:19
(<a href="/dist/PathTools#7872">permalink</a>)
</p>
<div class="helpfulq">
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
Author: L<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>
=item L<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. ...
<br><br>In fact, the Unix 'which' command (or at least its Debian variant) also sports the -a switch.
=item L<Object::Anon>
Author: L<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 na...
<br>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
<br>
'
<br><br>
=item L<Getopt::Long>
Author: L<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...
<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, ...
<br>
=item L<Text::Table::Tiny>
Author: L<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 joi...
<br><br>I did a comparison in: <a href="http://blogs.perl.org/users/steven_haryanto/2014/07/benchmarking-several-ascii-table-generator-modules.html" rel="nofollow">blogs.perl.org/users/steven_haryanto/...</a>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
Author: L<ALIAN|https://metacpan.org/author/ALIAN>
Very straightforward to use (I needed to send a URL/webpage as HTML email with embedded images/objects). With this module I can finish my job with only a few lines of Perl in 3-5 minutes (searching for this module in CPAN takes more than that! search...
<br><br>Blackberry is having trouble displaying the resulting email though. No problem with Gmail or Thunderbird/Icedove.
=item L<Term::Size>
Author: L<FERREIRA|https://metacpan.org/author/FERREIRA>
5-year old bug like RT#38594 still present. Use one of the alternate implementations like Term::Size::{Unix,Win32,ReadKey}.
<br>
Rating: 2/10
=item L<DateTime::Format::Flexible>
Author: L<THINC|https://metacpan.org/author/THINC>
While it doesn't cover as much phrases as DateTime::Format::Natural, at least it's simpler to translate (and the dist already includes a couple of translations). BTW, I think like in the POD of DateTime::Format::Natural, it needs to list which phrase...
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
Rating: 2/10
=item L<Spreadsheet::Perl>
Author: L<NKH|https://metacpan.org/author/NKH>
Good documentation. All modules' documentation should similarly strive to contain at least: rationale for existence, pointer to alternatives, and task-oriented organization.
=item L<Unix::PasswdFileOps>
Author: L<BMAYNARD|https://metacpan.org/author/BMAYNARD>
Less-than-descriptive name (module's main function seems to be sorting entries, can't be guessed from the name). No unit tests. Doesn't handle /etc/shadow. Also, it might be useful to explain why one needs to sort entries in passwd file.
<br>
Rating: 4/10
=item L<Array::Diff>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
<br>
=item L<DZ1>
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>
Outdated module that doesn't handle /etc/shadow and /etc/gshadow.
Rating: 2/10
=item L<lib::xi>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
=item L<Script::State>
Author: L<MOTEMEN|https://metacpan.org/author/MOTEMEN>
Nice idea, straight and simple interface. A better name could perhaps be chosen? Documentation should be expanded, e.g. to warn users about security, since Data::Dumper a.k.a. eval() is used to load variable content. Also, the implementation does not...
=item L<PathTools>
I guess File::Spec's API is sane enough, but I suspect not a lot of people are using it because there's not enough incentive for it. When 99% population of the world use Unix/Linux/Windows (even Macs been technically Unix for a number of years), &quo...
<br><br>That's why I think Path::Class might have a better chance of succeeding. It gives niceties like a few more convenience methods, a shortcut of getting dir & file object from each other, etc. It gives users more incentive of using a proper ...
Rating: 8/10
=item L<File::Slurp>
Author: L<CAPOEIRAB|https://metacpan.org/author/CAPOEIRAB>
I've been using File::Slurp for years and is generally satisfied with it. However reading the negative reviews today and looking at its RT queue, I realize that this module is broken for many and is effectively abandoned by the maintainer (no new rel...