.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Task::Kensho 3pm" .TH Task::Kensho 3pm "2016-05-31" "perl v5.22.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Task::Kensho \- A Glimpse at an Enlightened Perl .SH "VERSION" .IX Header "VERSION" version 0.39 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& # apt\-get install libtask\-kensho\-all\-perl .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" From : .Sp .RS 4 Kenshō (見性) (C. Wu) is a Japanese term for enlightenment experiences \- most commonly used within the confines of Zen Buddhism \- literally meaning \*(L"seeing one's nature\*(R"[1] or \*(L"true self.\*(R"[2] It generally \*(L"refers to the realization of nonduality of subject and object.\*(R"[3] .RE .PP Task::Kensho is a list of recommended modules for Enlightened Perl development. \s-1CPAN\s0 is wonderful, but there are too many wheels and you have to pick and choose amongst the various competing technologies. .PP 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). .PP 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 \fInot\fR follow the guidelines established for the EPO-EC for peer review via industry advisers. .PP 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. .PP 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. .SH "RECOMMENDED MODULES" .IX Header "RECOMMENDED MODULES" .SS "Task::Kensho::Async: Async Programming" .IX Subsection "Task::Kensho::Async: Async Programming" \fIIO::Async\fR .IX Subsection "IO::Async" .PP Asynchronous event-driven programming .PP \fI\s-1POE\s0\fR .IX Subsection "POE" .PP Multitasking and networking framework for Perl .SS "Task::Kensho::CLI: Useful Command-line Tools" .IX Subsection "Task::Kensho::CLI: Useful Command-line Tools" \fIApp::Ack\fR .IX Subsection "App::Ack" .PP A grep-like text finder .PP \fIApp::Nopaste\fR .IX Subsection "App::Nopaste" .PP Easy access to any pastebin .PP \fIDevel::REPL\fR .IX Subsection "Devel::REPL" .PP a modern perl interactive shell .PP \fIModule::CoreList\fR .IX Subsection "Module::CoreList" .PP What modules shipped with versions of perl .SS "Task::Kensho::Config: Config Modules" .IX Subsection "Task::Kensho::Config: Config Modules" \fIConfig::Any\fR .IX Subsection "Config::Any" .PP Load configuration from different file formats, transparently .PP \fIConfig::General\fR .IX Subsection "Config::General" .PP Generic Config Module .PP \fIJSON::MaybeXS\fR .IX Subsection "JSON::MaybeXS" .PP wrapper around the most current and fast \s-1JSON\s0 backends .SS "Task::Kensho::DBDev: Database Development" .IX Subsection "Task::Kensho::DBDev: Database Development" \fIDBD::SQLite\fR .IX Subsection "DBD::SQLite" .PP Self Contained \s-1RDBMS\s0 in a \s-1DBI\s0 Driver .PP \fI\s-1DBI\s0\fR .IX Subsection "DBI" .PP Database independent interface for Perl .PP \fIDBIx::Class\fR .IX Subsection "DBIx::Class" .PP Extensible and flexible object <\-> relational mapper. .PP \fIDBIx::Class::Schema::Loader\fR .IX Subsection "DBIx::Class::Schema::Loader" .PP Dynamic definition of a DBIx::Class::Schema .PP \fISQL::Translator\fR .IX Subsection "SQL::Translator" .PP Manipulate structured data definitions (\s-1SQL\s0 and more) .SS "Task::Kensho::Dates: Date Modules" .IX Subsection "Task::Kensho::Dates: Date Modules" \fIDate::Tiny\fR .IX Subsection "Date::Tiny" .PP A date object with as little code as possible .PP \fIDateTime\fR .IX Subsection "DateTime" .PP A date and time object .PP \fIDateTime::Tiny\fR .IX Subsection "DateTime::Tiny" .PP A date time object with as little code as possible .PP \fITime::ParseDate\fR .IX Subsection "Time::ParseDate" .PP Date parsing both relative and absolute .PP \fITime::Tiny\fR .IX Subsection "Time::Tiny" .PP A time object with as little code as possible .SS "Task::Kensho::Email: Email" .IX Subsection "Task::Kensho::Email: Email" \fIEmail::MIME::Kit\fR .IX Subsection "Email::MIME::Kit" .PP The Swiss army chainsaw of assembling email messages .PP \fIEmail::Sender\fR .IX Subsection "Email::Sender" .PP A library for sending email .PP \fIEmail::Simple\fR .IX Subsection "Email::Simple" .PP A \fBsimple\fR email object. No, really! .PP \fIEmail::Valid\fR .IX Subsection "Email::Valid" .PP Check validity of Internet email addresses .SS "Task::Kensho::ExcelCSV: Excel/CSV" .IX Subsection "Task::Kensho::ExcelCSV: Excel/CSV" \fISpreadsheet::ParseExcel::Simple\fR .IX Subsection "Spreadsheet::ParseExcel::Simple" .PP A simple interface to Excel data .PP \fISpreadsheet::WriteExcel::Simple\fR .IX Subsection "Spreadsheet::WriteExcel::Simple" .PP Create Excel documents easily .PP \fIText::CSV_XS\fR .IX Subsection "Text::CSV_XS" .PP Manipulate comma-separated values (\s-1CSV\s0) .SS "Task::Kensho::Exceptions: Exception Handling" .IX Subsection "Task::Kensho::Exceptions: Exception Handling" \fITry::Tiny\fR .IX Subsection "Try::Tiny" .PP Lightweight exception handling that handles the vagaries of $@. .PP \fIautodie\fR .IX Subsection "autodie" .PP Make builtins and other functions die instead of returning undef on failure. .SS "Task::Kensho::Hackery: Script Hackery" .IX Subsection "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. .PP \fIIO::All\fR .IX Subsection "IO::All" .PP IO::All combines all of the best Perl \s-1IO\s0 modules into a single nifty object oriented interface to greatly simplify your everyday Perl \s-1IO\s0 idioms. .PP \fISmart::Comments\fR .IX Subsection "Smart::Comments" .PP Comments that do more than just sit there .PP \fITerm::ProgressBar::Simple\fR .IX Subsection "Term::ProgressBar::Simple" .PP Simple progress bars .SS "Task::Kensho::Logging: Logging" .IX Subsection "Task::Kensho::Logging: Logging" \fILog::Contextual\fR .IX Subsection "Log::Contextual" .PP Log::Contextual is a simple interface to extensible logging. It is bundled with a really basic logger, Log::Contextual::SimpleLogger. .PP \fILog::Dispatch\fR .IX Subsection "Log::Dispatch" .PP This module manages a set of Log::Dispatch::* output objects that can be logged to via a unified interface. .PP \fILog::Log4perl\fR .IX Subsection "Log::Log4perl" .PP 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. .SS "Task::Kensho::ModuleDev: Module Development" .IX Subsection "Task::Kensho::ModuleDev: Module Development" \fICPAN::Uploader\fR .IX Subsection "CPAN::Uploader" .PP Upload things to the \s-1CPAN\s0 .PP \fIData::Printer\fR .IX Subsection "Data::Printer" .PP Colored pretty-print of Perl data structures and objects .PP \fIDevel::Confess\fR .IX Subsection "Devel::Confess" .PP Include stack traces on all warnings and errors .PP \fIDevel::Dwarn\fR .IX Subsection "Devel::Dwarn" .PP Combine warns and Data::Dumper::Concise .PP \fIDevel::NYTProf\fR .IX Subsection "Devel::NYTProf" .PP Powerful feature-rich perl source code profiler .PP \fIDist::Zilla\fR .IX Subsection "Dist::Zilla" .PP Builds distributions of code to be uploaded to the \s-1CPAN.\s0 .PP \fIModern::Perl\fR .IX Subsection "Modern::Perl" .PP enable all of the features of Modern Perl with one command .PP \fIModule::Build::Tiny\fR .IX Subsection "Module::Build::Tiny" .PP A simple, lightweight, drop-in replacement for ExtUtils::MakeMaker or Module::Build .PP \fIPerl::Critic\fR .IX Subsection "Perl::Critic" .PP Critique Perl source code for best-practices. .PP \fIPerl::Tidy\fR .IX Subsection "Perl::Tidy" .PP Parses and beautifies perl source .PP \fIPerl::Version\fR .IX Subsection "Perl::Version" .PP Parse and manipulate Perl version strings .PP \fIPod::Readme\fR .IX Subsection "Pod::Readme" .PP Convert \s-1POD\s0 to \s-1README\s0 file .PP \fISoftware::License\fR .IX Subsection "Software::License" .PP Packages that provide templated software licenses .SS "Task::Kensho::OOP: Object Oriented Programming" .IX Subsection "Task::Kensho::OOP: Object Oriented Programming" \fIMoo\fR .IX Subsection "Moo" .PP Minimalist Object Orientation (with Moose compatibility) .PP \fIMoose\fR .IX Subsection "Moose" .PP a postmodern object system for Perl5 .PP \fIMooseX::Aliases\fR .IX Subsection "MooseX::Aliases" .PP easy aliasing of methods and attributes in Moose .PP \fIMooseX::Getopt\fR .IX Subsection "MooseX::Getopt" .PP a Moose role for processing command line options .PP \fIMooseX::NonMoose\fR .IX Subsection "MooseX::NonMoose" .PP easy subclassing of non-Moose classes .PP \fIMooseX::Role::Parameterized\fR .IX Subsection "MooseX::Role::Parameterized" .PP Moose roles with composition parameters .PP \fIMooseX::SimpleConfig\fR .IX Subsection "MooseX::SimpleConfig" .PP a Moose role for setting attributes from a simple configuration file .PP \fIMooseX::StrictConstructor\fR .IX Subsection "MooseX::StrictConstructor" .PP a Moose extension that makes your object constructors blow up on unknown attributes .PP \fIPackage::Variant\fR .IX Subsection "Package::Variant" .PP Parameterizable packages .PP \fITask::Moose\fR .IX Subsection "Task::Moose" .PP Task::Moose installs Moose and optionally a list of recommended modules that extend Moose. .PP \fIType::Tiny\fR .IX Subsection "Type::Tiny" .PP tiny, yet Moo(se)\-compatible type constraints .PP \fInamespace::autoclean\fR .IX Subsection "namespace::autoclean" .PP keep imports out of your namespace (Moose-aware) .SS "Task::Kensho::Scalability: Scalability" .IX Subsection "Task::Kensho::Scalability: Scalability" \fI\s-1CHI\s0\fR .IX Subsection "CHI" .PP A unified cache interface, like \s-1DBI\s0 .PP \fIRedis\fR .IX Subsection "Redis" .PP Perl binding for Redis database .SS "Task::Kensho::Testing: Testing" .IX Subsection "Task::Kensho::Testing: Testing" \fIDevel::Cover\fR .IX Subsection "Devel::Cover" .PP Code coverage metrics for Perl .PP \fITest::Deep\fR .IX Subsection "Test::Deep" .PP Test deep data structures .PP \fITest::Fatal\fR .IX Subsection "Test::Fatal" .PP Test exception-based code .PP \fITest::Memory::Cycle\fR .IX Subsection "Test::Memory::Cycle" .PP Check for memory leaks and circular memory references .PP \fITest::Pod\fR .IX Subsection "Test::Pod" .PP Check for \s-1POD\s0 errors in files .PP \fITest::Pod::Coverage\fR .IX Subsection "Test::Pod::Coverage" .PP Check for pod coverage in your distribution. .PP \fITest::Requires\fR .IX Subsection "Test::Requires" .PP Make running a test conditional on a particular module being installed .PP \fITest::Simple\fR .IX Subsection "Test::Simple" .PP Basic utilities for writing tests. .PP \fITest::Warnings\fR .IX Subsection "Test::Warnings" .PP Test for warnings and the lack of them .SS "Task::Kensho::Toolchain: Basic Toolchain" .IX Subsection "Task::Kensho::Toolchain: Basic Toolchain" \fIApp::FatPacker\fR .IX Subsection "App::FatPacker" .PP Pack your dependencies onto your script file .PP \fIApp::cpanminus\fR .IX Subsection "App::cpanminus" .PP Get, unpack, build and install modules from \s-1CPAN\s0 .PP \fIApp::perlbrew\fR .IX Subsection "App::perlbrew" .PP Manage perl installations in your \f(CW$HOME\fR .PP \fICPAN::Mini\fR .IX Subsection "CPAN::Mini" .PP Create a minimal mirror of \s-1CPAN\s0 .PP \fICarton\fR .IX Subsection "Carton" .PP Perl module dependency manager (aka Bundler for Perl) .PP \fIPinto\fR .IX Subsection "Pinto" .PP Curate a repository of Perl modules .PP \fIlocal::lib\fR .IX Subsection "local::lib" .PP Create and use a local lib/ for perl modules with \s-1PERL5LIB\s0 .PP \fIversion\fR .IX Subsection "version" .PP Perl extension for Version Objects .SS "Task::Kensho::WebCrawling: Web Crawling" .IX Subsection "Task::Kensho::WebCrawling: Web Crawling" \fIHTTP::Thin\fR .IX Subsection "HTTP::Thin" .PP A Thin Wrapper around HTTP::Tiny to play nice with HTTP::Message .PP \fIHTTP::Tiny\fR .IX Subsection "HTTP::Tiny" .PP Lightweight \s-1HTTP\s0 client implementation .PP \fILWP::Simple\fR .IX Subsection "LWP::Simple" .PP Simple procedural interface to \s-1LWP\s0 .PP \fILWP::UserAgent\fR .IX Subsection "LWP::UserAgent" .PP Full-featured Web client library for Perl .PP \fIWWW::Mechanize\fR .IX Subsection "WWW::Mechanize" .PP Handy web browsing in a Perl object .PP \fIWWW::Mechanize::TreeBuilder\fR .IX Subsection "WWW::Mechanize::TreeBuilder" .PP This module combines WWW::Mechanize and HTML::TreeBuilder. .PP \fIWWW::Selenium\fR .IX Subsection "WWW::Selenium" .PP Perl Client for the Selenium Remote Control test tool .SS "Task::Kensho::WebDev: Web Development" .IX Subsection "Task::Kensho::WebDev: Web Development" \fICGI::FormBuilder::Source::Perl\fR .IX Subsection "CGI::FormBuilder::Source::Perl" .PP Build CGI::FormBuilder configs from Perl syntax files. .PP \fIDancer2\fR .IX Subsection "Dancer2" .PP the new generation of Dancer, a lightweight yet powerful web application framework .PP \fIHTML::FormHandler\fR .IX Subsection "HTML::FormHandler" .PP \&\s-1HTML\s0 forms using Moose .PP \fIMIME::Types\fR .IX Subsection "MIME::Types" .PP Definition of \s-1MIME\s0 types .PP \fIMojolicious\fR .IX Subsection "Mojolicious" .PP Real-time web framework .PP \fIPlack\fR .IX Subsection "Plack" .PP Flexible superglue between Web Servers and Perl Web Frameworks or code. .PP \fITask::Catalyst\fR .IX Subsection "Task::Catalyst" .PP Catalyst is The Elegant \s-1MVC\s0 Web Application Framework. Task::Catalyst is all you need to start with Catalyst. .PP \fITemplate\fR .IX Subsection "Template" .PP (Template::Toolkit) Template Processing System .PP \fIXML::Atom\fR .IX Subsection "XML::Atom" .PP Atom feed and \s-1API\s0 implementation .PP \fI\s-1XML::RSS\s0\fR .IX Subsection "XML::RSS" .PP Creates and updates \s-1RSS\s0 files .SS "Task::Kensho::XML: \s-1XML\s0 Development" .IX Subsection "Task::Kensho::XML: XML Development" \fIRDF::Trine\fR .IX Subsection "RDF::Trine" .PP An \s-1RDF\s0 Framework for Perl .PP \fIXML::Generator::PerlData\fR .IX Subsection "XML::Generator::PerlData" .PP Perl extension for generating \s-1SAX2\s0 events from nested Perl data structures. .PP \fIXML::LibXML\fR .IX Subsection "XML::LibXML" .PP Perl Binding for libxml2 .PP \fIXML::LibXSLT\fR .IX Subsection "XML::LibXSLT" .PP Interface to the gnome libxslt library .PP \fI\s-1XML::SAX\s0\fR .IX Subsection "XML::SAX" .PP Simple/Streaming \s-1API\s0 for \s-1XML\s0 .PP \fIXML::SAX::Writer\fR .IX Subsection "XML::SAX::Writer" .PP Output \s-1XML\s0 from \s-1SAX2\s0 Events .SH "INSTALLING" .IX Header "INSTALLING" To install all Task::Kensho tasks and their recommended modules on Debian GNU/Linux, install the libtask-kensho-all-perl metapackage: .PP .Vb 1 \& # apt\-get install libtask\-kensho\-all\-perl .Ve .PP Each Kensho task is itself a metapackage. To install a specific task, install the relevant metapackage. E.g. for Task::Kensho::Async: .PP .Vb 1 \& # apt\-get install libtask\-kensho\-async\-perl .Ve .SH "LIMITATIONS" .IX Header "LIMITATIONS" This list is by no means comprehensive of the \*(L"Good\*(R" Modules on \s-1CPAN.\s0 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. .SH "SEE ALSO" .IX Header "SEE ALSO" , Perl::Dist::Strawberry .SH "SUPPORT" .IX Header "SUPPORT" bugs may be submitted through . .PP There is also an irc channel available for users of this distribution, at \&\f(CW\*(C`#epo\*(C'\fR on \f(CW\*(C`irc.perl.org\*(C'\fR . .SH "AUTHOR" .IX Header "AUTHOR" Chris Prather .SH "CONTRIBUTORS" .IX Header "CONTRIBUTORS" .IP "\(bu" 4 Karen Etheridge .IP "\(bu" 4 Chris Nehren .IP "\(bu" 4 Leo Lapworth .IP "\(bu" 4 Florian Ragwitz .IP "\(bu" 4 Andrew Whatson .IP "\(bu" 4 Rick Leir .SH "COPYRIGHT AND LICENCE" .IX Header "COPYRIGHT AND LICENCE" This software is copyright (c) 2008 by Chris Prather. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.