NAME

Task::Kensho - A Glimpse at an Enlightened Perl

VERSION

This document describes Task::Kensho version 0.31

SYNOPSIS

> cpan Task::Kensho

DESCRIPTION,

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]

Task::Kensho is a first cut at building a list of recommended 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.

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. These individual tasks will always install all their modules by default. This facilitates the ease and simplicity the distribution aims to achieve. Each Task::Kensho sub-task is listed at the beginning of its section in this documentation.

Basic Toolchain: Task::Kensho::Toolchain

App::cpanminus

Get, unpack, build and install modules from CPAN

local::lib

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

version

Perl extension for Version Objects

Testing: Task::Kensho::Testing

Test::Simple

Basic utilities for writing tests.

Test::Most

Most commonly needed test functions and features.

Test::Exception

Test exception based code

Test::Pod

Check for POD errors in files

Test::Pod::Coverage

Check for pod coverage in your distribution.

Test::Memory::Cycle

Check for memory leaks and circular memory references

Devel::Cover

Code coverage metrics for Perl

Logging: Task::Kensho::Logging

Log::Dispatch

Dispatches messages to one or more outputs

Log::Log4perl

Log4j implementation for Perl

Log::Contextual

Simple logging interface with a contextual log

Exception Handling: Task::Kensho::Exceptions

Try::Tiny

Lightweight exception handling that handles the vagaries of $@.

TryCatch

Flexible exception handling without source filters, handles $@ properly.

autodie

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

Object Oriented Programming: Task::Kensho::OOP

Task::Moose

Moose is a postmodern object system for Perl5. Task::Moose installs Moose and optionally a list of recommended modules that extend Moose.

Asynchronous Programming: Task::Kensho::Async

POE

Multitasking and networking framework for Perl

XML Development: Task::Kensho::XML

XML::LibXML

Perl Binding for libxml2

XML::LibXSLT

Interface to the gnome libxslt library

XML::SAX

Simple/Streaming API for XML

XML::Generator::PerlData

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

XML::SAX::Writer

Output XML from SAX2 Events

Web Development: Task::Kensho::WebDev

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::Toolkit

Template Processing System

CGI::FormBuilder::Source::Perl

Build CGI::FormBuilder configs from Perl syntax files.

XML::RSS

Creates and updates RSS files

XML::Atom

Atom feed and API implementation

MIME::Types

Definition of MIME types

Web Crawling: Task::Kensho::WebCrawling

HTTP::Lite

Lightweight HTTP client implementation

LWP::UserAgent

Web user agent class

LWP::Simple

Simple procedural interface to LWP

WWW::Mechanize

Handy web browsing in a Perl object

WWW::Mechanize::TreeBuilder

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

Database Development: Task::Kensho::DBDev

DBI

Database independent interface for Perl

DBD::SQLite

Self Contained RDBMS in a DBI Driver

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)

Excel / CSV: Task::Kensho::ExcelCSV

Text::CSV_XS

Manipulate comma-separated values (CSV)

Spreadsheet::ParseExcel::Simple

A simple interface to Excel data

Spreadsheet::WriteExcel::Simple

Create Excel documents easily

Module Development: Task::Kensho::ModuleDev

Dist::Zilla

Builds distributions of code to be uploaded to the CPAN.

Module::Install

Standalone, extensible Perl module installer

Devel::NYTProf

Powerful feature-rich perl source code profiler

Perl::Tidy

Parses and beautifies perl source

Perl::Critic

Critique Perl source code for best-practices.

Carp::Always

Warns and dies noisily with stack backtraces

Modern::Perl

enable all of the features of Modern Perl with one command

Perl::Version

Parse and manipulate Perl version strings

Software::License

Packages that provide templated software licenses

Pod::Readme

Convert POD to README file

CPAN::Uploader

Upload things to the CPAN

Email: Task::Kensho::Email

Email::Simple

A simple email object. No, really!

Email::Valid

Check validity of Internet email addresses

Email::Sender

A library for sending email

Email::MIME::Kit

The Swiss army chainsaw of assembling email messages

Date Modules: Task::Kensho::Dates

DateTime

A date and time object

Date::Tiny

A date object with as little code as possible

Time::Tiny

A time object with as little code as possible

DateTime::Tiny

A date object with as little code as possible

Time::ParseDate

Date parsing both relative and absolute

Scalability: Task::Kensho::Scalability

CHI

A unified cache interface, like DBI

Config Modules: Task::Kensho::Config

Config::Any

Load configuration from different file formats, transparently

Config::General

Generic Config Module

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

App::Ack

A grep-like text finder

App::Nopaste

Easy access to any pastebin

Devel::REPL

A modern perl interactive shell

Module::CoreList

What modules shipped with versions of perl

App::perlbrew

Manage perl installations in your $HOME

Script Hackery: Task::Kensho::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.

Smart::Comments

Comments that do more than just sit there

Term::ProgressBar::Simple

Simple progress bars

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.

RELEASE SCHEDULE

Starting with release 0.18 Task::Kensho was moved to a monthly release cycle. This will facilitate a consistent schedule for upstream vendors to track the changes in Task::Kensho.

BUGS AND LIMITATIONS

This list is by no means comprehensive of the "Good" Modules on CPAN. Nor is this neccessarily 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 practics, and a starting place on the road to Enlightened Perl programming.

Please report any bugs or feature requests to bug-task-kensho@rt.cpan.org, or through the web interface at http://rt.cpan.org.

SEE ALSO

http://www.enlightenedperl.org/, Perl::Dist::Strawberry

AUTHOR

Chris Prather <chris@prather.org>

LICENCE AND COPYRIGHT

Copyright (c) 2008, 2009, Chris Prather <chris@prather.org>. Some rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.