README.pod
July 3, 2021 · View on GitHub
=pod
=encoding UTF-8
=head1 NAME
Task::Kensho - A Glimpse at an Enlightened Perl
=head1 VERSION
version 0.41
=head1 SYNOPSIS
> cpanm --interactive Task::Kensho
=head1 DESCRIPTION
=for stopwords Buddhism EPO Kenshō nonduality amongst Organisation installable WebSocket
LTask::Kensho is a list of recommended, widely used and best-in-class modules for Enlightened Perl development. CPAN is wonderful, but there are too many wheels and you have to pick and choose amongst the various competing technologies.
From Lhttp://en.wikipedia.org/wiki/Kensho:
=over 4
Kenshō (見性) (C. Wu) is a Japanese term for enlightenment experiences - most commonly used within the confines of Zen Buddhism - literally meaning "seeing one's nature"[1] or "true self."[2] It generally "refers to the realization of nonduality of subject and object."[3]
=back
The plan is for LTask::Kensho to be a rough testing ground for ideas that go into among other things the Enlightened Perl Organisation Extended Core (EPO-EC).
The modules that are bundled by LTask::Kensho are broken down into
several categories and are still being considered. They are all taken
from various top 100 most used perl modules lists and from discussions
with various subject matter experts in the Perl Community. That said,
this bundle does I
Starting in 2011, LTask::Kensho split its sub-groups of modules into individually-installable tasks. Each LTask::Kensho sub-task is listed at the beginning of its section in this documentation.
When installing LTask::Kensho itself, you will be asked to install each sub-task in turn, or you can install individual tasks separately. These individual tasks will always install all their modules by default. This facilitates the ease and simplicity the distribution aims to achieve.
=head1 RECOMMENDED MODULES
=for stopwords Async Minimalistic
=head2 LTask::Kensho::Async: Async Programming
=over 4
=item L
represent an operation awaiting completion
=item LIO::Async
Asynchronous event-driven programming
=item L
Many-Core Engine for Perl providing parallel processing capabilities
=item LMojo::IOLoop
Minimalistic event loop
=item L
Multitasking and networking framework for Perl
=item LParallel::ForkManager
A simple parallel processing fork manager
=back
=for stopwords pastebin yay
=head2 LTask::Kensho::CLI: Useful Command-line Tools
=over 4
=item LApp::Ack
A grep-like text finder
=item LApp::Nopaste
Easy access to any pastebin
=item LModule::CoreList
What modules shipped with versions of perl
=item L
reply - read, eval, print, loop, yay!
=back
=head2 LTask::Kensho::Config: Config Modules
=over 4
=item LConfig::Any
Load configuration from different file formats, transparently
=item LConfig::General
Generic Config Module
=item LJSON::MaybeXS
wrapper around the most current and fast JSON backends
=back
=head2 LTask::Kensho::DBDev: Database Development
=over 4
=item LDBD::SQLite
Self Contained RDBMS in a DBI Driver
=item L
Database independent interface for Perl
=item LDBIx::Class
Extensible and flexible object <-> relational mapper.
=item LDBIx::Class::Schema::Loader
Dynamic definition of a DBIx::Class::Schema
=item LSQL::Translator
Manipulate structured data definitions (SQL and more)
=back
=head2 LTask::Kensho::Dates: Date Modules
=over 4
=item L
A date and time object
=item LTime::Moment
A fast immutable object representing a date and time
=item LTime::ParseDate
Date parsing both relative and absolute
=item LTime::Piece
A date and time object based on localtime or gmtime
=back
=head2 LTask::Kensho::Email: Email
=over 4
=item LEmail::MIME::Kit
The Swiss army chainsaw of assembling email messages
=item LEmail::Sender
A library for sending email
=item LEmail::Simple
A B
=item LEmail::Stuffer
A more casual approach to creating and sending Email:: emails
=item LEmail::Valid
Check validity of Internet email addresses
=back
=for stopwords CSV XLS XLSX
=head2 LTask::Kensho::ExcelCSV: Excel/CSV
=over 4
=item LExcel::Writer::XLSX
Create spreadsheets in the XLSX format
=item LSpreadsheet::Read
Read the data from a spreadsheet
=item LSpreadsheet::WriteExcel::Simple
Create XLS documents easily
=item LText::CSV_XS
Manipulate comma-separated values (CSV)
=back
=head2 LTask::Kensho::Exceptions: Exception Handling
=over 4
=item LSyntax::Keyword::Try
try/catch/finally with full syntax support for control statements
=item LTry::Tiny
Lightweight exception handling that handles the vagaries of $@.
=item L
Make builtins and other functions die instead of returning undef on failure.
=back
=for stopwords whippitupitude Hackery Mojo
=head2 LTask::Kensho::Hackery: Script Hackery
These packages are included less for production work and more for whippitupitude. They reflect packages that people have found incredibly useful for prototyping and debugging before reducing down to a production script.
=over 4
=item LIO::All
IO::All combines all of the best Perl IO modules into a single nifty object oriented interface to greatly simplify your everyday Perl IO idioms.
=item LSmart::Comments
Comments that do more than just sit there
=item LTerm::ProgressBar::Simple
Simple progress bars
=item L
Fun one-liners with Mojo
=back
=head2 LTask::Kensho::Logging: Logging
=over 4
=item LLog::Any
Bringing loggers and listeners together.
=item LLog::Contextual
Log::Contextual is a simple interface to extensible logging. It is bundled with a really basic logger, Log::Contextual::SimpleLogger.
=item LLog::Dispatch
This module manages a set of Log::Dispatch::* output objects that can be logged to via a unified interface.
=item LLog::Log4perl
Log::Log4perl lets you remote-control and fine-tune the logging behaviour of your system from the outside. It implements the widely popular (Java-based) Log4j logging package in pure Perl.
=back
=for stopwords profiler templated tidyall validator
=head2 LTask::Kensho::ModuleDev: Module Development
=over 4
=item LCPAN::Uploader
Upload things to the CPAN
=item LCode::TidyAll
Engine for tidyall, your all-in-one code tidier and validator
=item LData::Printer
Colored pretty-print of Perl data structures and objects
=item LDevel::Confess
Include stack traces on all warnings and errors
=item LDevel::Dwarn
Combine warns and Data::Dumper::Concise
=item LDevel::NYTProf
Powerful feature-rich perl source code profiler
=item LDist::Zilla
Builds distributions of code to be uploaded to the CPAN.
=item LModern::Perl
enable all of the features of Modern Perl with one command
=item LModule::Build::Tiny
A simple, lightweight, drop-in replacement for ExtUtils::MakeMaker or Module::Build
=item LPerl::Critic
Critique Perl source code for best-practices.
=item LPerl::Tidy
Parses and beautifies perl source
=item LPod::Readme
Convert POD to README file
=item LSoftware::License
Packages that provide templated software licenses
=back
=head2 LTask::Kensho::OOP: Object Oriented Programming
=over 4
=item L
Minimalist Object Orientation (with Moose compatibility)
=item L
a postmodern object system for Perl5 (see also Task::Moose for a larger list of Moose extensions)
=item LMooseX::Aliases
easy aliasing of methods and attributes in Moose
=item LMooseX::Getopt
a Moose role for processing command line options
=item LMooseX::NonMoose
easy subclassing of non-Moose classes
=item LMooseX::Role::Parameterized
Moose roles with composition parameters
=item LMooseX::SimpleConfig
a Moose role for setting attributes from a simple configuration file
=item LMooseX::StrictConstructor
a Moose extension that makes your object constructors blow up on unknown attributes
=item LPackage::Variant
Parameterizable packages
=item LType::Tiny
tiny, yet Moo(se)-compatible type constraints
=item Lnamespace::autoclean
keep imports out of your namespace (Moose-aware)
=back
=for stopwords Redis
=head2 LTask::Kensho::Scalability: Scalability
=over 4
=item L
A unified cache interface, like DBI
=item L
Perl binding for Redis database
=back
=head2 LTask::Kensho::Testing: Testing
=over 4
=item LDevel::Cover
Code coverage metrics for Perl
=item LTest2::Suite
Distribution with a rich set of tools built upon the Test2 framework.
=item LTest::Deep
Test deep data structures
=item LTest::Fatal
Test exception-based code
=item LTest::Memory::Cycle
Check for memory leaks and circular memory references
=item LTest::Pod
Check for POD errors in files
=item LTest::Pod::Coverage
Check for pod coverage in your distribution.
=item LTest::Requires
Make running a test conditional on a particular module being installed
=item LTest::Simple
Basic utilities for writing tests.
=item LTest::Warnings
Test for warnings and the lack of them
=back
=for stopwords Bundler
=head2 LTask::Kensho::Toolchain: Basic Toolchain
=over 4
=item LApp::FatPacker
Pack your dependencies onto your script file
=item LApp::cpanminus
Get, unpack, build and install modules from CPAN
=item LApp::cpm
a fast CPAN module installer
=item LApp::perlbrew
Manage perl installations in your $HOME
=item LCPAN::Mini
Create a minimal mirror of CPAN
=item L
Perl module dependency manager (aka Bundler for Perl)
=item L
Curate a repository of Perl modules
=item Llocal::lib
Create and use a local lib/ for perl modules with PERL5LIB
=item L
Perl extension for Version Objects
=back
=for stopwords WebSocket
=head2 LTask::Kensho::WebCrawling: Web Crawling
=over 4
=item LHTTP::Thin
A Thin Wrapper around HTTP::Tiny to play nice with HTTP::Message
=item LHTTP::Tiny
Lightweight HTTP client implementation
=item LLWP::Simple
Simple procedural interface to LWP
=item LLWP::UserAgent
Full-featured Web client library for Perl
=item LMojo::UserAgent
Non-blocking I/O HTTP and WebSocket user agent
=item LWWW::Mechanize
Handy web browsing in a Perl object
=item LWWW::Mechanize::TreeBuilder
This module combines WWW::Mechanize and HTML::TreeBuilder.
=item LWWW::Selenium
Perl Client for the Selenium Remote Control test tool
=back
=for stopwords configs RSS
=head2 LTask::Kensho::WebDev: Web Development
=over 4
=item L
A Semantic Web Framework
=item LCGI::FormBuilder::Source::Perl
Build CGI::FormBuilder configs from Perl syntax files.
=item L
the new generation of Dancer, a lightweight yet powerful web application framework
=item LHTML::FormHandler
HTML forms using Moose
=item LHTTP::BrowserDetect
Determine Web browser, version, and platform from an HTTP user agent string
=item LMIME::Types
Definition of MIME types
=item L
Real-time web framework
=item L
Flexible superglue between Web Servers and Perl Web Frameworks or code.
=item LTask::Catalyst
Catalyst is The Elegant MVC Web Application Framework. Task::Catalyst is all you need to start with Catalyst.
=item L
(Template::Toolkit) Template Processing System =item LWeb::Simple A quick and easy way to build simple web applications =item LXML::Atom Atom feed and API implementation =item LXML::RSS Creates and updates RSS files =back =for stopwords libxml libxml2 libxslt RDF =head2 LTask::Kensho::XML: XML Development =over 4 =item LXML::Generator::PerlData Perl extension for generating SAX2 events from nested Perl data structures. =item LXML::LibXML Perl Binding for libxml2 =item LXML::LibXSLT Interface to the gnome libxslt library =item LXML::SAX Simple/Streaming API for XML =item LXML::SAX::Writer Output XML from SAX2 Events =back =head1 INSTALLING Since version 0.34, LTask::Kensho has made use of the C<optional_features> field
in distribution metadata. This allows CPAN clients to interact with you
regarding which modules you wish to install. The C =head1 LIMITATIONS This list is by no means comprehensive of the "Good" Modules on CPAN.
Nor is this necessarily the correct path for all developers. Each of
these modules has a perfectly acceptable replacement that may work
better for you. This is however a path to good perl practice, and a
starting place on the road to Enlightened Perl programming. =head1 SEE ALSO Lhttp://www.enlightenedperl.org/,
LPerl::Dist::Strawberry|Perl::Dist::Strawberry =head1 SUPPORT Bugs may be submitted through Lhttps://github.com/EnlightenedPerlOrganisation/task-kensho/issues. There is also an irc channel available for users of this distribution, at
L<C<#epo> on C<irc.perl.org>|irc://irc.perl.org/#epo>. =head1 AUTHOR Chris Prather chris@prather.org =head1 CONTRIBUTORS =for stopwords Karen Etheridge Chris Nehren Leo Lapworth Dan Book Mohammad S Anwar Olaf Alders Rachel Kelly Shawn Sorichetti Andrew Whatson Florian Ragwitz Rick Leir Tina Müller =over 4 =item * Karen Etheridge ether@cpan.org =item * Chris Nehren apeiron@cpan.org =item * Leo Lapworth leo@cuckoo.org =item * Dan Book grinnz@grinnz.com =item * Dan Book grinnz@gmail.com =item * Mohammad S Anwar mohammad.anwar@yahoo.com =item * Olaf Alders olaf@wundersolutions.com =item * Rachel Kelly rkellyalso@gmail.com =item * Shawn Sorichetti shawn@coloredblocks.com =item * Andrew Whatson whatson@gmail.com =item * Florian Ragwitz rafl@debian.org =item * Rick Leir rleir@leirtech.com =item * Tina Müller cpan2@tinita.de =back =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2008 by Chris Prather. This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself. =cutcpanm --interactive Task::Kensho