NAME
Acme::CPANModules::PERLANCAR::Avoided - Modules I'm currently avoiding
VERSION
This document describes version 0.006 of Acme::CPANModules::PERLANCAR::Avoided (from Perl distribution Acme-CPANModulesBundle-PERLANCAR), released on 2020-07-21.
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 Dist::Zilla plugin 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).
INCLUDED MODULES
Log::Any - Startup overhead
After the 1.x version, I no longer prefer Log::Any and have developed an alternative called Log::ger.
Alternate modules: Log::ger
List::MoreUtils - License confusion and
For more information, see https://www.reddit.com/r/perl/comments/6ymdez/what_are_the_background_details_pertaining_to_the/.
Recent versions of List::Util have implemented many functions from List::MoreUtils.
Alternate modules: List::Util, List::SomeUtils, List::AllUtils
Log::Any::IfLOG - Retired workaround
Alternate modules: Log::ger
File::Flock - Too many deps
I used to use File::Flock due to its simple interface. However, this module depends on things like AnyEvent, Data::Structure::Util, File::Slurp, et al, all of which seem unnecessary. Nowadays I'm opting to use File::Flock::Retry, or just plain
flock()
.Alternate modules: File::Flock::Retry
File::Slurp - Buggy
Alternate modules: File::Slurper
File::Slurp::Tiny - Use the newer File::Slurper instead
Alternate modules: File::Slurper
Exporter::Lite - Unnecessary, use Exporter instead
I used to use this module because I didn't know that 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 = (...);
you can also use it like this:
use Exporter qw(import); our @EXPORT = (...);
Hence, this module (first released in 2001) is no longer necessary. Besides, this module has a worse startup overhead than Exporter and has less features. So there is absolutely no reason to use it.
Alternate modules: Exporter
JSON - Somewhat broken
JSON.pm is a discouraged module now, due to its somewhat broken backend handling and lack of support for Cpanel::JSON::XS. consider switching to JSON::MaybeXS or perhaps just JSON::PP.
Alternate modules: JSON::MaybeXS, JSON::PP, Cpanel::JSON::XS
-
Cpanel::JSON::XS is the fork of JSON::XS that fixes some bugs and adds some features, mainly so it's more compatible with JSON::PP. See the documentation of Cpanel::JSON::XS for more details on those.
Alternate modules: Cpanel::JSON::XS
-
It's a nice little concept and module, and often useful. But the decision like defaulting to doing abs_path() (https://rt.cpan.org/Public/Bug/Display.html?id=100979), which complicates the module, makes its behavior different than Perl's require(), as well as opens the can of worms of ugly filesytem details, has prompted me to release an alternative. Module::Path::More also has the options to find .pod and/or .pmc file, and find all matches instead of the first.
Alternate modules: Module::Path::More
-
Has non-core dependencies to Sub::Exporter and Sub::Install.
Alternate modules: String::Elide::Tiny
FAQ
What are ways to use this module?
Aside from reading it, you can install all the listed modules using cpanmodules:
% cpanmodules ls-entries PERLANCAR::Avoided | cpanm -n
or Acme::CM::Get:
% perl -MAcme::CM::Get=PERLANCAR::Avoided -E'say $_->{module} for @{ $LIST->{entries} }' | cpanm -n
This module also helps lcpan produce a more meaningful result for lcpan related-mods
when it comes to finding related modules for the modules listed in this Acme::CPANModules module.
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Acme-CPANModulesBundle-PERLANCAR.
SOURCE
Source repository is at https://github.com/perlancar/perl-Acme-CPANModulesBundle-PERLANCAR.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModulesBundle-PERLANCAR
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
Acme::CPANModules - about the Acme::CPANModules namespace
cpanmodules - CLI tool to let you browse/view the lists
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020, 2019, 2018 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.