view release on metacpan or search on metacpan
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to humanity, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.
To do so, attach the following notices to the program. It is safest to
attach them to the start of each source file to most effectively convey
the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
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>
1) perl was executed with a relative path and the script has
chdir()ed; 2) because $^X originates in C's argv[0] (in the main()
function) it is possible for the calling program to exec() in such a
way that argv[0] isn't the path to the interpreter; 3) HP/UX can do
weird stuff in scripts that use #!; 4) VMS. (Not clear about #4
though :) ).
Taint::Util
Author: AVAR <https://metacpan.org/author/AVAR>
IMO this is the best module to deal with tainting. BTW there are
several other modules like Taint (only provides taint + tainted, no
untaint), Untaint (only provides untaint with awkward interface,
like $v = untaint(qr/.../, $v)), Scalar::Util (only provides
tainted), Test::Taint (does not provide untaint but provides
taint_deeply and test predicates), and several others.
Markdown::Pod
Author: KEEDI <https://metacpan.org/author/KEEDI>
I use Markdown::Pod for my module Perinci::To::POD. <br><br>This
form processing CGI script. Although the module is named CGI::,
there's nothing CGI-specific about it, and that's good. So this
module is basically a "path-expander" for hash values.
<br><br>Btw, one thing I use rather often in PHP is naming parameter
as "foo[]" which will automatically add elements to the
$_REQUEST['foo'] array. Perhaps this feature can be considered too.
DateTime::BusinessHours
Author: BRICAS <https://metacpan.org/author/BRICAS>
Just tried it. It works, but the module/dist is not in the best
shape: <br><br>* Test fails (pod-coverage, error in POD) <br><br>*
dependency on Class::MethodMaker not yet specified <br><br>*
Documentation: Synopsis contains mistake (class name is
DateTime::BusinessHours not BusinessHours), the name '$testing' is
not very suitable, there are typos. <br><br>* Style-wise, method
naming is "joinedwords", while in DateTime families it's
"separated_words" (not a big deal though). <br><br>
Rating: 6/10
Rating: 6/10
autodie
Author: TODDR <https://metacpan.org/author/TODDR>
I started using autodie in almost all of my applications a few
months ago. It's somewhat of a mixed blessing. For existing
applications, it can break things and making things less robust,
solely because old code are not built with autodie in mind.
<br><br>But the best thing about it is that it's lexically scoped,
so for sections of code that you're not sure about, just sprinkle
'no autodie' to get the old behaviour. <br><br>It should be used on
probably 95% of code out there. For the rest of the cases, where you
need to report the status of each I/O operation, it's obviously more
convenient to check $? instead of trapping exception everytime.
<br><br>+1 for getting it into core. <br>
App::FileTools::BulkRename
Disclaimer: I maintain a "competitor" module, App::perlmv.
Apparently a lot of people, like me, likes to rename files using
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">
</h3>
<blockquote class="review_text">
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 Stor...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2013-10-17T09:42:36
(<a href="/dist/Sereal#11350">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">
IMO this is the best module to deal with tainting. BTW there are several other modules like Taint (only provides taint + tainted, no untaint), Untaint (only provides untaint with awkward interface, like $v = untaint(qr/.../, $v)), Scalar::Util (only ...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-07-19T17:47:19
(<a href="/dist/Taint-Util#10194">permalink</a>)
</p>
<div class="helpfulq">
devdata/stevenharyanto view on Meta::CPAN
<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-3.0.png" alt="***">
</h3>
<blockquote class="review_text">
Just tried it. It works, but the module/dist is not in the best shape:
<br><br>* Test fails (pod-coverage, error in POD)
<br><br>* dependency on Class::MethodMaker not yet specified
<br><br>* Documentation: Synopsis contains mistake (class name is Da...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-12-03T05:49:11
(<a href="/dist/DateTime-BusinessHours#7926">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">
I started using autodie in almost all of my applications a few months ago. It's somewhat of a mixed blessing. For existing applications, it can break things and making things less robust, solely because old code are not built with autodie in mind.
<b...
</blockquote>
<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-11-24T08:55:23
(<a href="/dist/autodie#7880">permalink</a>)
</p>
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
=item L<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>
=item L<Sereal>
Author: L<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!
=item L<Test::Tester>
Author: L<EXODIST|https://metacpan.org/author/EXODIST>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
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...
=item L<Taint::Util>
Author: L<AVAR|https://metacpan.org/author/AVAR>
IMO this is the best module to deal with tainting. BTW there are several other modules like Taint (only provides taint + tainted, no untaint), Untaint (only provides untaint with awkward interface, like $v = untaint(qr/.../, $v)), Scalar::Util (only ...
=item L<Markdown::Pod>
Author: L<KEEDI|https://metacpan.org/author/KEEDI>
I use Markdown::Pod for my module Perinci::To::POD.
<br><br>This module does not output proper POD for many (not so) edge cases, like:
<br><br>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. ..."
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
Author: L<FULLERMD|https://metacpan.org/author/FULLERMD>
Cool, will definitely try this out the next time I write another form processing CGI script. Although the module is named CGI::, there's nothing CGI-specific about it, and that's good. So this module is basically a "path-expander" for hash ...
<br><br>Btw, one thing I use rather often in PHP is naming parameter as "foo[]" which will automatically add elements to the $_REQUEST['foo'] array. Perhaps this feature can be considered too.
=item L<DateTime::BusinessHours>
Author: L<BRICAS|https://metacpan.org/author/BRICAS>
Just tried it. It works, but the module/dist is not in the best shape:
<br><br>* Test fails (pod-coverage, error in POD)
<br><br>* dependency on Class::MethodMaker not yet specified
<br><br>* Documentation: Synopsis contains mistake (class name is DateTime::BusinessHours not BusinessHours), the name '$testing' is not very suitable, there are typos.
<br><br>* Style-wise, method naming is "joinedwords", while in DateTime families it's "separated_words" (not a big deal though).
<br><br>
Rating: 6/10
=item L<Bundle::Dpchrist>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
<br><br>If it's still working for you, great. I personally have moved on to other modules like Email::Sender::Simple, which abstracts sending mechanism (transport) and support SMTP auth, for two. Also, many of the guide/documentation for Mail::Sendma...
Rating: 6/10
=item L<autodie>
Author: L<TODDR|https://metacpan.org/author/TODDR>
I started using autodie in almost all of my applications a few months ago. It's somewhat of a mixed blessing. For existing applications, it can break things and making things less robust, solely because old code are not built with autodie in mind.
<br><br>But the best thing about it is that it's lexically scoped, so for sections of code that you're not sure about, just sprinkle 'no autodie' to get the old behaviour.
<br><br>It should be used on probably 95% of code out there. For the rest of the cases, where you need to report the status of each I/O operation, it's obviously more convenient to check $? instead of trapping exception everytime.
<br><br>+1 for getting it into core.
<br>
=item L<App::FileTools::BulkRename>
Disclaimer: I maintain a "competitor" module, App::perlmv. Apparently a lot of people, like me, likes to rename files using Perl. And the examples in the documentation are about renaming movie files too, something which I do a lot :)
<br><br>I applaud Stirling Westrup for taking a legacy script and improving it. May we have a lot of ideas to borrow from each other.
<br><br>This is an early release, there are quite a few things I find lacking. Most importantly, I suggest adding a test suite as soon as possible. The filesystem differences can be tricky, and CPAN Testers can help providing feedback.