Acme-CPANModulesBundle-PERLANCAR

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/PERLANCAR/Avoided.pm  view on Meta::CPAN

package Acme::CPANModules::PERLANCAR::Avoided;

use strict;
use warnings;

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-11-01'; # DATE
our $DIST = 'Acme-CPANModulesBundle-PERLANCAR'; # DIST
our $VERSION = '0.014'; # VERSION

our $LIST = {
    summary => "List of modules I'm currently avoiding",
    description => <<'_',

This is a list of modules I'm currently avoiding to use in my code, for some
reason. Most of the modules wered used in my code in the past.

Using a <pm:Dist::Zilla> plugin
<pm:Dist::Zilla::Plugin::Acme::CPANModules::Blacklist>, you can make sure that
during building, your distribution does not specify a prerequisite to any of the
modules listed here. (You should make your own blacklist though).

_
    entries => [
        {
            module => 'Log::Any',
            summary => 'Startup overhead',
            description => <<'_',

After the 1.x version, I no longer prefer <pm:Log::Any> and have developed an
alternative called <pm:Log::ger>.

_
            alternate_modules => ['Log::ger'],
        },
        {
            'x.date' => '2017-09-08',
            module => 'List::MoreUtils',
            summary => 'License confusion',
            description => <<'_',

For more information, see
<https://www.reddit.com/r/perl/comments/6ymdez/what_are_the_background_details_pertaining_to_the/>.

Recent versions of <pm:List::Util> have implemented many functions from
<pm:List::MoreUtils>.

_
            alternate_modules => ['List::Util', 'List::SomeUtils', 'List::AllUtils'],
        },
        {
            module => 'Log::Any::IfLOG',
            summary => 'Retired workaround',
            alternate_modules => ['Log::ger'],
        },
        {
            module => 'File::Flock',
            summary => 'Too many deps',
            description => <<'_',

I used to use <pm:File::Flock> due to its simple interface. However, this module
depends on things like <pm:AnyEvent>, <pm:Data::Structure::Util>,
<pm:File::Slurp>, et al, all of which seem unnecessary. Nowadays I'm opting to
use <pm:File::Flock::Retry>, or just plain `flock()`.

_
            alternate_modules => ['File::Flock::Retry'],
        },
        {
            module => 'File::Slurp',
            summary => 'Not encoding-friendly',
            description => <<'_',

File::Slurp was created (1996) before Perl IO layers (5.8, 2002) and its API
does not handle encoding properly. See:
<http://blogs.perl.org/users/leon_timmermans/2015/08/fileslurp-is-broken-and-wrong.html>
or discussion on RT.

_
            alternate_modules => ['File::Slurper'],
        },
        {
            module => 'File::Slurp::Tiny',
            summary => 'Discouraged by the author',
            description => <<'_',

The author of File::Slurp::Tiny has discouraged its use and recommends his newer
module <pm:File::Slurper>.

_
            alternate_modules => ['File::Slurper'],
        },
        {
            module => 'Exporter::Lite',
            summary => 'Unnecessary, use Exporter instead',
            description => <<'_',

I used to use this module because I didn't know that <pm:Exporter> (since perl
5.8.3, 2004) can also be used without subclassing, i.e. instead of:

    use Exporter;
    our @ISA = qw(Exporter);
    our @EXPORT = (...);

lib/Acme/CPANModules/PERLANCAR/Avoided.pm  view on Meta::CPAN

Contains remote exploit. Ref:
<https://news.perlfoundation.org/post/malicious-code-found-in-cpan-package> (Jul
28, 2020).

_
            alternate_modules => ['lib::xi', 'CPAN::AutoINC', 'Module::AutoINC'],
        },
    ],
};

1;
# ABSTRACT: List of modules I'm currently avoiding

__END__

=pod

=encoding UTF-8

=head1 NAME

Acme::CPANModules::PERLANCAR::Avoided - List of modules I'm currently avoiding

=head1 VERSION

This document describes version 0.014 of Acme::CPANModules::PERLANCAR::Avoided (from Perl distribution Acme-CPANModulesBundle-PERLANCAR), released on 2023-11-01.

=head1 DESCRIPTION

This is a list of modules I'm currently avoiding to use in my code, for some
reason. Most of the modules wered used in my code in the past.

Using a L<Dist::Zilla> plugin
L<Dist::Zilla::Plugin::Acme::CPANModules::Blacklist>, you can make sure that
during building, your distribution does not specify a prerequisite to any of the
modules listed here. (You should make your own blacklist though).

=head1 ACME::CPANMODULES ENTRIES

=over

=item L<Log::Any>

Startup overhead.

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

After the 1.x version, I no longer prefer L<Log::Any> and have developed an
alternative called L<Log::ger>.


Alternate modules: L<Log::ger>

=item L<List::MoreUtils>

License confusion.

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

For more information, see
L<https://www.reddit.com/r/perl/comments/6ymdez/what_are_the_background_details_pertaining_to_the/>.

Recent versions of L<List::Util> have implemented many functions from
L<List::MoreUtils>.


Alternate modules: L<List::Util>, L<List::SomeUtils>, L<List::AllUtils>

=item L<Log::Any::IfLOG>

Retired workaround.

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

Alternate modules: L<Log::ger>

=item L<File::Flock>

Too many deps.

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

I used to use L<File::Flock> due to its simple interface. However, this module
depends on things like L<AnyEvent>, L<Data::Structure::Util>,
L<File::Slurp>, et al, all of which seem unnecessary. Nowadays I'm opting to
use L<File::Flock::Retry>, or just plain C<flock()>.


Alternate modules: L<File::Flock::Retry>

=item L<File::Slurp>

Not encoding-friendly.

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

File::Slurp was created (1996) before Perl IO layers (5.8, 2002) and its API
does not handle encoding properly. See:
L<http://blogs.perl.org/users/leon_timmermans/2015/08/fileslurp-is-broken-and-wrong.html>
or discussion on RT.


Alternate modules: L<File::Slurper>

=item L<File::Slurp::Tiny>

Discouraged by the author.

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

The author of File::Slurp::Tiny has discouraged its use and recommends his newer
module L<File::Slurper>.


Alternate modules: L<File::Slurper>

=item L<Exporter::Lite>

Unnecessary, use Exporter instead.

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



( run in 1.469 second using v1.01-cache-2.11-cpan-d8267643d1d )