NAME
Task::Kensho - A Glimpse at an Enlightened Perl
VERSION
This document describes Task::Kensho version 0.11
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 reccomended 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 Enlightned 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.
Basic Toolchain
- Bundle::CPAN
-
Bundle to optimize the behaviour of CPAN.pm
- local::lib
-
Create and use a local lib/ for perl modules with PERL5LIB
- version
-
Perl extension for Version Objects
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
Object Oriented Programming
- Moose
-
A postmodern object system for Perl 5
- MooseX::Types
-
Organise your Moose types in libraries
- Moose::Autobox
-
Autoboxed wrappers for Native Perl datatypes
- MooseX::Aliases
-
Easy aliasing of methods and attributes in Moose
- MooseX::Storage
-
An serialization framework for Moose classes
- MooseX::Getopt
-
A Moose role for processing command line options
- MooseX::SimpleConfig
-
A Moose role for setting attributes from a simple configfile
- MooseX::StrictConstructor
-
Make your object constructors blow up on unknown attributes
- namespace::autoclean
-
Keep imports and functions out of your namespace
Asynchronous Programming
- POE
-
Multitasking and networking framework for Perl
XML Development
- XML::LibXML
-
Perl Binding for libxml2
- 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
- Catalyst
-
The Elegant MVC Web Application Framework
- Catalyst::View::TT
-
Template View Class
- Catalyst::Model::DBIC::Schema
-
DBIx::Class::Schema Model Class
- Catalyst::Devel
-
Catalyst Development Tools
- Catalyst::Plugin::Session
-
Generic Session plugin - ties together server side storage and client side state required to maintain session data.
- Catalyst::Plugin::Authentication
-
Infrastructure plugin for the Catalyst authentication framework
- Catalyst::Plugin::StackTrace
-
Display a stack trace on the debug screen
- Catalyst::Plugin::FillInForm
-
Fill forms automatically, based on data from a previous HTML form.
- Catalyst::Controller::FormBuilder
-
Create and validate forms in Catalyst
- Catalyst::Plugin::Session::State::Cookie
-
Maintain session IDs using cookies.
- Catalyst::Plugin::Session::Store::DBIC
-
Store your sessions via DBIx::Class
- Catalyst::Plugin::Static::Simple
-
Make serving static pages painless.
- Catalyst::View::JSON
-
Serve JSON through Catalyst
Web Crawling
- Bundle::LWP
-
Install all libwww-perl related modules
- LWP::Simple
-
Simple procedural interface to LWP
- WWW::Mechanize
-
Handy web browsing in a Perl object
Database Development
- 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
- 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
- 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
Date Modules
- 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
Config Modules
- Config::Any
-
Load configuration from different file formats, transparently
- Config::General
-
Generic Config Module
Useful Command-line Tools
- 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
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.
- 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 practicies, 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.