NAME

Task::BeLike::TOKUHIROM - modules I use

DESCRIPTION

This Task installs modules that I need to work with. They are listed in this distribution's cpanfile.

MY CRITERION

I don't like the module breaks backward compatibility.
I don't like the module makes slow the my script's starting up time.
Simple and small library is great.
I don't like the module wraps and it provides ::Easy interface.

Most of ::Easy stuff does not provides all features. A short time later, I need to switch the original library. *Sigh*

TASK CONTENTS

TOOLCHAIN

Minilla

Minilla is an authoring tool to maintaining CPAN modules. It provides best practice for managing your module.

App::scan_prereqs_cpanfile

Scan prereqs from library code and generate cpanfile.

App::cpanminus

The best CPAN module installer. It's a very simple and useful. Zero configuration required. I always use this for install modules.

Carton

Carton is a installer for the application. It installs modules locally for every applications.

File::ShareDir

File::ShareDir enables share directory for each CPAN modules. You can include assets to CPAN module with this module.

MetaCPAN::API

It's the best client library for accessing MetaCPAN API.

Perl::Build

This library helps to build perl5 binary.

plenv

plenv is yet another perl binary manager.

Use plenv to pick a Perl version for your application and guarantee that your development environment matches production. Put plenv to work with Carton for painless Perl upgrades and bulletproof deployments.

DATABASE

I'm using RDBMS for storing data.

DBI

DBI is a de facto standard library for accessing RDBMS.

DBD::SQLite

SQLite3 is the best solution for storing complex data if you want to store the data to file.

DBD::mysql

MySQL is also great if you want to store the data from web application.

UnQLite

UnQLite is a great file based key value store.

GDBM_File is also great, but it requires external C library.

Teng

Teng is an O/R Mapper. It's very thin and fast.

THREADING

Coro

Coro provides cooperative threads. Coro is very useful if you are writing I/O intensive script.

TEXT PROCESSING

Spellunker

Pure-perl, dictionary included portable spelling checker.

I use this to checking spelling miss in POD.

Pod::Simple

This is the best POD parser library I guess.

Text::CSV_XS

This is a CSV parser/generator library.

Text::Xslate

The best template engine in Perl5. It's pretty fast. I'm use this in my web applications.

Text::MicroTemplate

Is the embedded Perl. It's written in pure perl. Then, I'm using this for tiny scripts, toolchain stuff, etc.

WEB APPLICATION DEVELOPMENT

Plack

Plack is the infrastructure for writing web applications.

Amon2

Amon2 is a lightweight, fast, web application framework.

Starlet

Is a fast HTTP server written in Perl5.

HTML::FillInForm

Fill the stuff to form.

IMAGE

Imager

Imager is the library for image processing.

HTML/XML

XML::LibXML

Is the fast XML parser library.

HTML::TreeBuilder::XPath

Traverse HTML with XPath.

OPERATING SYSTEM

POSIX::AtFork

POSIX::AtFork makes to run the code when the process was forked. I'm run srand and $dbh-disconnect> after the forking.

Parallel::Prefork

I'm use this for writing worker process using Q4M.

Filesys::Notify::Simple

This library detects when the files are changed.

Linux::Inotify2

It makes faster the Filesys::Notify::Simple

NETWORKING

Furl

Furl is a fast HTTP client library.

WWW::Mechanize

is great module to scraping.

Web::Query

enables jQuery like operation for HTML.

AnyEvent

AnyEvent is a framework for I/O multiplexing. I'm use this for writing servers. See also Coro.

JSON

JSON::XS

JSON::XS is pretty fast. I'm use this for the point what needs performance.

JSON::PP

JSON::PP is written in pure perl. And it's bundled to latest Perl5. I'm use this for writing toolchain related scripts.

I/O

File::pushd

Change directory temporarily for a limited scope.

File::Find::Rule

It's great for finding files.

File::Zglob

It provides zsh like glob operation.

zglob('**/*.{pm,pl}')

DEVELOPMENT

Devel::NYTProf

Is a best profiling library for Perl5.

CLASS BUILDER

Class::Accessor::Lite

It's really simple accessor library. It does not need to inherit.

Moo

I use this to say "Hey! Please switch to Moo instead of Moose!".

Mouse

I'm using this in my web applications. Because Text::Xslate depends to Mouse.

TESTING

Test::More

Yes. It's most basic library.

E-MAIL

Email::Sender

I'm using this library to send mails. Email::Sender 1.300000+ is based on Moo. There is no reason to use Email::Send!

LICENSE

Copyright (C) tokuhirom.

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

AUTHOR

tokuhirom <tokuhirom@gmail.com>