NAME
Perl::Critic::Policy::Freenode::DiscouragedModules - Various modules discouraged from use
DESCRIPTION
Various modules are discouraged by the denizens of #perl on Freenode IRC, for various reasons which may include: buggy behavior, cruft, maintainer issues, or simply better modern replacements.
MODULES
AnyEvent
AnyEvent's author refuses to use public bugtracking and actively breaks interoperability. POE, IO::Async, and Mojo::IOLoop are widely used and interoperable async event loops.
Any::Moose
Any::Moose is deprecated. Use Moo instead.
CGI
CGI.pm is an ancient module for communicating via the CGI protocol, with tons of bad practices and cruft. Use a modern framework such as those based on Plack (Web::Simple, Dancer2, Catalyst) or Mojolicious, they can still be served via CGI if you choose.
Coro
Coro no longer works on perl 5.22, you need to use the author's forked version of Perl. Avoid at all costs.
File::Slurp
File::Slurp gets file encodings all wrong, line endings on win32 are messed up, and it was written before layers were properly added. Use File::Slurp::Tiny, File::Slurper, "slurp" in Path::Tiny, "slurp" in Data::Munge, or "slurp" in Mojo::Util.
HTML::Template
HTML::Template is an old and buggy module, try Template::Toolkit or HTML::Zoom instead, or HTML::Template::Pro if you must use the same syntax.
JSON
JSON.pm is old and full of slow logic. Use JSON::MaybeXS instead, it is a drop-in replacement in most cases.
JSON::Any
JSON::Any is deprecated. Use JSON::MaybeXS instead.
JSON::XS
JSON::XS's author refuses to use public bugtracking and actively breaks interoperability. Cpanel::JSON::XS is a fork with several bugfixes and a more collaborative maintainer. See also JSON::MaybeXS.
List::MoreUtils
List::MoreUtils is a far more complex distribution than it needs to be. See List::Util or List::UtilsBy for better options.
Mouse
Mouse was created to be a faster version of Moose, a niche that has since been better filled by Moo. Use Moo instead.
Net::IRC
Net::IRC is an ancient module implementing the IRC protocol. Use a modern event-loop-based module instead. Choices are POE::Component::IRC (used for Bot::BasicBot), Net::Async::IRC, and Mojo::IRC.
XML::Simple
XML::Simple tries to coerce complex XML documents into perl data structures. This leads to overcomplicated structures and unexpected behavior. Use a proper DOM parser instead like XML::LibXML, XML::TreeBuilder, XML::Twig, or Mojo::DOM.
AFFILIATION
This policy is part of Perl::Critic::Freenode.
CONFIGURATION
This policy is not configurable except for the standard options.
AUTHOR
Dan Book, dbook@cpan.org
COPYRIGHT AND LICENSE
Copyright 2015, Dan Book.
This library is free software; you may redistribute it and/or modify it under the terms of the Artistic License version 2.0.