Acme-CPANModules-Import-CPANRatings-User-stevenharyanto

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

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

        Also look at Text::CharWidth for an alternative that can be used
        with text in other languages (Chinese, etc). <br>

    Taint::Runtime
        Author: RHANDOM <https://metacpan.org/author/RHANDOM>

        Nice idea. Perl should really have included something like this
        (analogous to warnings.pm for -w). <br><br>However, for something as
        security-related as tainting, I personally think the interface is a
        bit too complex and not robust enough. There are too many pitfalls
        where one can fail to turn on tainting properly. <br><br>* First,
        user must remember to import $TAINT, or doing '$TAINT = 1' has no
        effect. There's no error/warning for this mistake. <br><br>* Then,
        if one also forgets to import taint_start or taint_start, then doing
        'taint_start' or 'taint_env' (without parentheses) will do nothing.
        Also does not produce an error/warning except under strict mode.
        <br><br>* One must remember to 'taint_env' *after* 'taint_start'.
        There's no warning/error if one does the opposite. <br><br>I'd
        rather have something like this: <br><br>{ <br><br>use tainting;
        <br><br>... code is running in taint mode ... <br> } <br><br>use
        tainting; <br> { <br><br>no tainting; <br><br>... code is running
        without taint mode ... <br> } <br><br>No functions, no variables to
        set, no exports. Tainting of %ENV etc should be done automatically
        just like -T. <br><br>EDIT: I wrote tainting and uploaded it to CPAN
        as proof of concept.

        Rating: 8/10

    L   Author: SONGMU <https://metacpan.org/author/SONGMU>

        Reinvents Class::Autouse (written 12 years ago). But at least L is
        much simpler and shorter to type (the equivalent of -ML is
        -MClass::Autouse=:superloader). <br><br>BTW, there's also
        Module::AutoLoad, Module::AutoINC, and lib::xi which can

README  view on Meta::CPAN

        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
        module does not output proper POD for many (not so) edge cases,
        like: <br><br>"&gt;" and the likes are not yet escaped, producing
        C&lt;&gt;&gt; when it should have been C&lt;&lt; &gt; &gt;&gt; or
        C&lt;E&lt;gt&gt;&gt;. <br><br>Ordered list numbering does not yet
        work, e.g. &quot;2. ...\n3. ...\n&quot; produces &quot;=item 1. ...

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-4.0.png" alt="****">

</h3>



<blockquote class="review_text">
Nice idea. Perl should really have included something like this (analogous to warnings.pm for -w).
<br><br>However, for something as security-related as tainting, I personally think the interface is a bit too complex and not robust enough. There are ...
}
<br><br>use tainting;
<br>
{
<br><br>no tainting;
<br><br>... code is running without taint mode ...
<br>
}
<br><br>No functions, no variables to set, no exports. Tainting of %ENV etc should be done automatically just like -T.
<br><br>EDIT: I wrote tainting and uploaded it to CPAN as proof of concept.
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-12-28T00:11:34
(<a href="/dist/Taint-Runtime#10699">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">

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


Also look at Text::CharWidth for an alternative that can be used with text in other languages (Chinese, etc).
<br>


=item L<Taint::Runtime>

Author: L<RHANDOM|https://metacpan.org/author/RHANDOM>

Nice idea. Perl should really have included something like this (analogous to warnings.pm for -w).
<br><br>However, for something as security-related as tainting, I personally think the interface is a bit too complex and not robust enough. There are too many pitfalls where one can fail to turn on tainting properly.
<br><br>* First, user must remember to import $TAINT, or doing '$TAINT = 1' has no effect. There's no error/warning for this mistake.
<br><br>* Then, if one also forgets to import taint_start or taint_start, then doing 'taint_start' or 'taint_env' (without parentheses) will do nothing. Also does not produce an error/warning except under strict mode.
<br><br>* One must remember to 'taint_env' I<after> 'taint_start'. There's no warning/error if one does the opposite.
<br><br>I'd rather have something like this:
<br><br>{
<br><br>use tainting;
<br><br>... code is running in taint mode ...
<br>
}
<br><br>use tainting;
<br>
{
<br><br>no tainting;
<br><br>... code is running without taint mode ...
<br>
}
<br><br>No functions, no variables to set, no exports. Tainting of %ENV etc should be done automatically just like -T.
<br><br>EDIT: I wrote tainting and uploaded it to CPAN as proof of concept.


Rating: 8/10

=item L<L>

Author: L<SONGMU|https://metacpan.org/author/SONGMU>

Reinvents Class::Autouse (written 12 years ago). But at least L is much simpler and shorter to type (the equivalent of -ML is -MClass::Autouse=:superloader).
<br><br>BTW, there's also Module::AutoLoad, Module::AutoINC, and lib::xi which can automatically install modules from CPAN and load them upon first use. 

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<&gt;> and the likes are not yet escaped, producing C&lt;&gt;&gt; when it should have been C&lt;&lt; &gt; &gt;&gt; or C&lt;E&lt;gt&gt;&gt;.
<br><br>Ordered list numbering does not yet work, e.g. &quot;2. ...\n3. ...\n&quot; produces &quot;=item 1. ... =item 1. ...&quot;



( run in 0.243 second using v1.01-cache-2.11-cpan-d6f9594c0a5 )