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 )