---
name: "Task::Kensho"
section: "3pm"
platform: "linux"
package: "libtask-kensho-perl"
version: "0.41-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Task::Kensho"
---

# Task::Kensho(3pm)

A Glimpse at an Enlightened Perl

## NAME

Task::Kensho - A Glimpse at an Enlightened Perl

## VERSION

version 0.41

## SYNOPSIS

```
    # apt-get install libtask-kensho-all-perl
```

## DESCRIPTION

Task::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 \<http://en.wikipedia.org/wiki/Kensho\>:

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\]

The plan is for Task::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 Task::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 *not* follow the guidelines established for the EPO-EC for peer review via industry advisers.

Starting in 2011, Task::Kensho split its sub-groups of modules into individually-installable tasks.  Each Task::Kensho sub-task is listed at the beginning of its section in this documentation.

When installing Task::Kensho in Debian GNU/Linux, you can install each sub-task metapackage separately (e.g. libtask-kensho-async-perl), or you can install all tasks at once by installing the libtask-kensho-all-perl metapackage. These metapackages facilitate the ease and simplicity the distribution aims to achieve whilst utilising the power of the Debian GNU/Linux package system.

## RECOMMENDED MODULES

### Task::Kensho::Async: Async Programming

- Future

  represent an operation awaiting completion

- IO::Async

  Asynchronous event-driven programming

- MCE

  Many-Core Engine for Perl providing parallel processing capabilities

- Mojo::IOLoop

  Minimalistic event loop

- POE

  Multitasking and networking framework for Perl

- Parallel::ForkManager

  A simple parallel processing fork manager

### Task::Kensho::CLI: Useful Command-line Tools

- App::Ack

  A grep-like text finder

- App::Nopaste

  Easy access to any pastebin

- Module::CoreList

  What modules shipped with versions of perl

- Reply

  reply - read, eval, print, loop, yay!

### Task::Kensho::Config: Config Modules

- Config::Any

  Load configuration from different file formats, transparently

- Config::General

  Generic Config Module

- JSON::MaybeXS

  wrapper around the most current and fast JSON backends

### Task::Kensho::DBDev: Database Development

- DBD::SQLite

  Self Contained RDBMS in a DBI Driver

- DBI

  Database independent interface for Perl

- DBIx::Class

  Extensible and flexible object \<-\> relational mapper.

- DBIx::Class::Schema::Loader

  Dynamic definition of a DBIx::Class::Schema

- SQL::Translator

  Manipulate structured data definitions (SQL and more)

### Task::Kensho::Dates: Date Modules

- DateTime

  A date and time object

- Time::Moment

  A fast immutable object representing a date and time

- Time::ParseDate

  Date parsing both relative and absolute

- Time::Piece

  A date and time object based on localtime or gmtime

### Task::Kensho::Email: Email

- Email::MIME::Kit

  The Swiss army chainsaw of assembling email messages

- Email::Sender

  A library for sending email

- Email::Simple

  A **simple** email object. No, really!

- Email::Stuffer

  A more casual approach to creating and sending Email:: emails

- Email::Valid

  Check validity of Internet email addresses

### Task::Kensho::ExcelCSV: Excel/CSV

- Excel::Writer::XLSX

  Create spreadsheets in the XLSX format

- Spreadsheet::Read

  Read the data from a spreadsheet

- Spreadsheet::WriteExcel::Simple

  Create XLS documents easily

- Text::CSV\_XS

  Manipulate comma-separated values (CSV)

### Task::Kensho::Exceptions: Exception Handling

- Syntax::Keyword::Try

  try/catch/finally with full syntax support for control statements

- Try::Tiny

  Lightweight exception handling that handles the vagaries of $@.

- autodie

  Make builtins and other functions die instead of returning undef on failure.

### Task::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.

- IO::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.

- Smart::Comments

  Comments that do more than just sit there

- Term::ProgressBar::Simple

  Simple progress bars

- ojo

  Fun one-liners with Mojo

### Task::Kensho::Logging: Logging

- Log::Any

  Bringing loggers and listeners together.

- Log::Contextual

  Log::Contextual is a simple interface to extensible logging.  It is bundled with a really basic logger, Log::Contextual::SimpleLogger.

- Log::Dispatch

  This module manages a set of Log::Dispatch::\* output objects that can be logged to via a unified interface.

- Log::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.

### Task::Kensho::ModuleDev: Module Development

- CPAN::Uploader

  Upload things to the CPAN

- Code::TidyAll

  Engine for tidyall, your all-in-one code tidier and validator

- Data::Printer

  Colored pretty-print of Perl data structures and objects

- Devel::Confess

  Include stack traces on all warnings and errors

- Devel::Dwarn

  Combine warns and Data::Dumper::Concise

- Devel::NYTProf

  Powerful feature-rich perl source code profiler

- Dist::Zilla

  Builds distributions of code to be uploaded to the CPAN.

- Modern::Perl

  enable all of the features of Modern Perl with one command

- Module::Build::Tiny

  A simple, lightweight, drop-in replacement for ExtUtils::MakeMaker or Module::Build

- Perl::Critic

  Critique Perl source code for best-practices.

- Perl::Tidy

  Parses and beautifies perl source

- Pod::Readme

  Convert POD to README file

- Software::License

  Packages that provide templated software licenses

### Task::Kensho::OOP: Object Oriented Programming

- Moo

  Minimalist Object Orientation (with Moose compatibility)

- Moose

  a postmodern object system for Perl5 (see also Task::Moose for a larger list of Moose extensions)

- MooseX::Aliases

  easy aliasing of methods and attributes in Moose

- MooseX::Getopt

  a Moose role for processing command line options

- MooseX::NonMoose

  easy subclassing of non-Moose classes

- MooseX::Role::Parameterized

  Moose roles with composition parameters

- MooseX::SimpleConfig

  a Moose role for setting attributes from a simple configuration file

- MooseX::StrictConstructor

  a Moose extension that makes your object constructors blow up on unknown attributes

- Package::Variant

  Parameterizable packages

- Type::Tiny

  tiny, yet Moo(se)-compatible type constraints

- namespace::autoclean

  keep imports out of your namespace (Moose-aware)

### Task::Kensho::Scalability: Scalability

- CHI

  A unified cache interface, like DBI

- Redis

  Perl binding for Redis database

### Task::Kensho::Testing: Testing

- Devel::Cover

  Code coverage metrics for Perl

- Test2::Suite

  Distribution with a rich set of tools built upon the Test2 framework.

- Test::Deep

  Test deep data structures

- Test::Fatal

  Test exception-based code

- Test::Memory::Cycle

  Check for memory leaks and circular memory references

- Test::Pod

  Check for POD errors in files

- Test::Pod::Coverage

  Check for pod coverage in your distribution.

- Test::Requires

  Make running a test conditional on a particular module being installed

- Test::Simple

  Basic utilities for writing tests.

- Test::Warnings

  Test for warnings and the lack of them

### Task::Kensho::Toolchain: Basic Toolchain

- App::FatPacker

  Pack your dependencies onto your script file

- App::cpanminus

  Get, unpack, build and install modules from CPAN

- App::cpm

  a fast CPAN module installer

- App::perlbrew

  Manage perl installations in your `$HOME`

- CPAN::Mini

  Create a minimal mirror of CPAN

- Carton

  Perl module dependency manager (aka Bundler for Perl)

- Pinto

  Curate a repository of Perl modules

- local::lib

  Create and use a local lib/ for perl modules with PERL5LIB

- version

  Perl extension for Version Objects

### Task::Kensho::WebCrawling: Web Crawling

- HTTP::Thin

  A Thin Wrapper around HTTP::Tiny to play nice with HTTP::Message

- HTTP::Tiny

  Lightweight HTTP client implementation

- LWP::Simple

  Simple procedural interface to LWP

- LWP::UserAgent

  Full-featured Web client library for Perl

- Mojo::UserAgent

  Non-blocking I/O HTTP and WebSocket user agent

- WWW::Mechanize

  Handy web browsing in a Perl object

- WWW::Mechanize::TreeBuilder

  This module combines WWW::Mechanize and HTML::TreeBuilder.

- WWW::Selenium

  Perl Client for the Selenium Remote Control test tool

### Task::Kensho::WebDev: Web Development

- Attean

  A Semantic Web Framework

- CGI::FormBuilder::Source::Perl

  Build CGI::FormBuilder configs from Perl syntax files.

- Dancer2

  the new generation of Dancer, a lightweight yet powerful web application framework

- HTML::FormHandler

  HTML forms using Moose

- HTTP::BrowserDetect

  Determine Web browser, version, and platform from an HTTP user agent string

- MIME::Types

  Definition of MIME types

- Mojolicious

  Real-time web framework

- Plack

  Flexible superglue between Web Servers and Perl Web Frameworks or code.

- Task::Catalyst

  Catalyst is The Elegant MVC Web Application Framework. Task::Catalyst is all you need to start with Catalyst.

- Template

  (Template::Toolkit) Template Processing System

- Web::Simple

  A quick and easy way to build simple web applications

- XML::Atom

  Atom feed and API implementation

- XML::RSS

  Creates and updates RSS files

### Task::Kensho::XML: XML Development

- XML::Generator::PerlData

  Perl extension for generating SAX2 events from nested Perl data structures.

- XML::LibXML

  Perl Binding for libxml2

- XML::LibXSLT

  Interface to the gnome libxslt library

- XML::SAX

  Simple/Streaming API for XML

- XML::SAX::Writer

  Output XML from SAX2 Events

## INSTALLING

To install all Task::Kensho tasks and their recommended modules on Debian GNU/Linux, install the libtask-kensho-all-perl metapackage:

```
    # apt-get install libtask-kensho-all-perl
```

Each Kensho task is itself a metapackage. To install a specific task, install the relevant metapackage. E.g. for Task::Kensho::Async:

```
    # apt-get install libtask-kensho-async-perl
```

## 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.

## SEE ALSO

\<http://www.enlightenedperl.org/\>, Perl::Dist::Strawberry

## SUPPORT

Bugs may be submitted through \<https://github.com/EnlightenedPerlOrganisation/task-kensho/issues\>.

There is also an irc channel available for users of this distribution, at `"#epo"` on `"irc.perl.org"` \<irc://irc.perl.org/#epo\>.

## AUTHOR

Chris Prather \<chris@prather.org\>

## CONTRIBUTORS

- •

  Karen Etheridge \<ether@cpan.org\>

- •

  Chris Nehren \<apeiron@cpan.org\>

- •

  Leo Lapworth \<leo@cuckoo.org\>

- •

  Dan Book \<grinnz@grinnz.com\>

- •

  Dan Book \<grinnz@gmail.com\>

- •

  Mohammad S Anwar \<mohammad.anwar@yahoo.com\>

- •

  Olaf Alders \<olaf@wundersolutions.com\>

- •

  Rachel Kelly \<rkellyalso@gmail.com\>

- •

  Shawn Sorichetti \<shawn@coloredblocks.com\>

- •

  Andrew Whatson \<whatson@gmail.com\>

- •

  Florian Ragwitz \<rafl@debian.org\>

- •

  Rick Leir \<rleir@leirtech.com\>

- •

  Tina Müller \<cpan2@tinita.de\>

## 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.
