A curated list of awesome Perl5 frameworks, libraries and software. Inspired by awesome-go.
Not Perl6 modules ;-P
We also recommend these lists.
- Task::Kensho
- PerlMaven.com list of Perl Software
- Many Task::** Modules. (ex. Task::Plack, Task::BeLike::...)
- Awesome Perl
- Args
- Benchmarks
- Class Builder
- CLI
- Container
- Data Format
- Database
- Database Drivers
- Date & Time
- DevOps
- Exception Handling
- File Manipulation
- Form Frameworks
- Images
- List Manipulation
- Logging
- Module Development
- Network
- ORM
- Package Management
- Processes and Threads
- Profiling
- Protocol
- Queueing
- REST Frameworks
- Science/Numerics
- Template Engines
- Testing
- Tools
- Web Frameworks
- Web Frameworks-Like
Libraries for argument manifestation and validation.
- Data::Validator - Rule based validator on type constraint system.
- Params::Validate - Validate method/function parameters.
- Smart::Args
Libraries for benchmarking
- Benchmark
- Dumbbench
- Parallel::Benchmark - Benchmark in multiprocesses
Libraries to support writing classes and meta programming
- Class::Accessor::Lite - Simple accessor generator.
- Class::Accessor::Lite::Lazy - Generate lazy accessors.
- Mo - Micro Objects. Mo is less.
- Moo - Class builder supporting meta programming.
- Moose - The one and only, Moose
- Mouse - Yet another class builder like Moo/Moose.
- Homer - Simple Prototype-based object system.
Libraries for developing CLI applications
- App::Cmd - Write command line apps with less suffering.
- Getopt::Long - Extended processing of command line options.
Libraries for Singleton Pattern implementation.
Libraries for serializing, formatting and parsing
- Data::Dumper::Simple - Reduce and faster Data::Dumper and eval() equivalent
- Data::MessagePack
- JSON::PP
- JSON::XS
- Sereal
- Storable
- Text::Markdown
- TOML
- XML::LibXML
- YAML
Libraries that help when you what to deploy software across networks ond several hostsare working across computer networks
- Rex - Remote Execution
Libraries for dealing with relational databases
- DBI
- DBIx::Connector - Fast, safe DBI connection and transaction management
- DBIx::Handler - Fork-safe DBI handler
- DBIx::Inspector
- DBIx::QueryLog
- DBIx::Sunny - Useful DBI Wrapper
- DBIx::TransactionManager
Libraries for using specific database products
- DBD::mysql
- DBD::Pg - PostgreSQL driver for DBI.
- DBD::SQLite
- Cache::Memcached::Fast
- Mango - Pure-Perl non-blocking I/O MongoDB driver
- Redis
- Redis::Fast - Perl wrapper around hiredis driver
- UnQLite
Libraries for working with dates and times
Libraries that implement email creation and sending
Libraries that assist with and/or provide alternatives to eval{ die() }
- autodie - Replace functions with ones that succeed or die with lexical scope
- Exception::Class - A module that allows you to declare real exception classes in Perl
- Throwable - a role for classes that can be thrown
- Try::Tiny - minimal try/catch with proper preservation of $@
- TryCatch - first class try catch semantics for Perl, without source filters
- File::Util - Easy, versatile, portable file handling.
- Path::Tiny - Simple object-oriented file manipulation.
Libraries that take the boredom & repetition out of (web and UI) forms
- Catalyst::Controller::HTML::FormFu - Use HTML::FormFu in Catalyst
- CGI::FormBuilder - Easily generate and process stateful forms
- Form::Sensible - A sensible way to handle form based user interface
- Form::Toolkit - A toolkit to build Data centric Forms
- HTML::FormFu - HTML Form Creation, Rendering and Validation Framework
- HTML::FormFu::ExtJS - ExtJS form generation from HTML::FormFu config files
- WWW::Form - Simple and extendable module that allows developers to handle HTML form input validation and display flexibly and consistently.
Libraries for manipulating images.
- Image::Magick - An object-oriented interface to ImageMagick's image composing libraries.
- Imager
Libraries for manipulation lists (arrays).
- Array::Unique - Tie-able array that allows only unique values
- List::Compare - Compare elements of two or more lists
- List::Gen - Provides functions for generating lists
- List::Util - A selection of general-utility list subroutines
Libraries for generating and working with log files
Libraries that simplify and improve Perl module development
- Dist::Zilla - http://dzil.org/
- Minilla - CPAN module authoring tool
Libraries that help when you are dealing with computer networks
- DOCSIS::ConfigFile - Decodes and encodes DOCSIS config files
- NetAddr::MAC - Handle MAC addresses
Libraries that help when you are working across computer networks
- Net::SSH::Expect - SSH wrapper to execute remote commands.
- SSH::Command - interface to execute multiple commands on host by SSH protocol without certificates.
- MOI::SSH - Run multiple SSH commands in parallel.
Libraries that implement Object-Relational Mapping or datamapping techniques
Libraries for package and dependency management
- App::cpanminus
- Carton
- Pinto - Powerful local CPAN repos
Libraries for managing processes and threads
- AnyEvent - the DBI of event loop programming
- Parallel::ForkManager - A simple parallel processing fork manager
- Parallel::Prefork - A simple prefork server framework
- Proclet - Minimalistic supervisor, a Perl port of foreman
Libraries for examining run-time activity of your program
- Devel::KYTProf - Very light profiler for I/Os such as HTTP request-responses and SQL queries.
- Devel::NYTProf - Code profiler.
Protocol clients and libraries
- Furl - Faster HTTP(S) Client
- HTTP::Tiny - Minimal and fast client. Included in the standard packages.
- LWP::UserAgent - Popular HTTP(S) Client
- Net::DHCP - Send and recieve DHCP packets
Message Queue, Job Queue System..
Hand-picked modules for research, science, numerics and hyper-computing
Libraries for developing REST applications
- Catalyst::Action::REST - Automated REST Method Dispatching
- Dancer2::Plugin::REST - A plugin for writing RESTful apps with Dancer2
- Dancer::Plugin::REST - A plugin for writing RESTful apps with Dancer
- Raisin - a REST API micro framework for Perl
- Squatting - A Camping-inspired Web Microframework for Perl
Libraries and tools for templating
- Template::Alloy - TT2/3, HT, HTE, Tmpl, and Velocity Engine
- Template::Toolkit - Very Popular Template Processing System
- Text::MicroTemplate - Fast, simple and safe template engine written in pure-Perl and core modules.
- Text::MicroTemplate::Extended - Extended Text::MicroTemplate.
- Text::Template - Templates with embedded perl
- Text::Xslate - Faster template engine with XS. Supports multiple syntaxes.
- Tiffany - Generic interface for template engines. It makes it easy to use multiple template engines.
- Template::Magic - Magic merger of runtime values with templates.
Libraries for testing codebases and generating test data.
- Test::Base - A Data Driven Testing Framework
- Test::Base::Less - Limited version of Test::Base
- Test::BDD::Cucumber - Implementation of the popular Cucumber framework in Perl
- Test::Class - Class-based testing. Support "setup" and "teardown".
- Test::Deep - Test deep and complex data structures with great flexibility.
- Test::Deep::Matcher
- Test::Kantan - simple, flexible, fun "Testing framework"
- Test::More
- Test::Harness - Run Perl standard test scripts with statistics
- Test::Exception
- Test::Fatal - Simple module for verifying exceptions.
- Test::Mock::Guard - Mocking package subroutines.
- Test::MockTime
- Test::mysqld
- Test::TCP - Launch temporary TCP Server
- Test::Time - Simple module for faking system time.
- Devel::Cover
- Devel::Cover::Report::Coveralls Report to Coveralls
Some useful tools
- App::Ack - ack is a tool like grep, optimized for programmers.
- App::Nopaste - Post to various pastebins from the CLI
- Daiku - Make for Perl.
- Data::Printer - Colored pretty-print of Perl data structures and objects.
- Reply - Read-eval-print-loop(REPL) command-line tool.
- Riji - Static site generator using markdown and git mainly for blogging.
Librairies for developping command line applications
- Toolbox::Simple - Simplfy some common tasks in Perl.
- Script::Toolbox - Framework for the daily business scripts.
- Devel::Kit- Handy toolbox of things to ease development/debugging.
Librairies for handling configuration files
- Config::Tiny - Read/Write .ini style files with as little code as possible
Libraries for developing Web applications
- Amon2
- Catalyst - Overflowing with features. Very popular.
- Dancer (Official site)
- Dancer2
- Gantry - Web application framework for mod_perl, cgi, etc.
- Kossy - A Web framework with simple interface.
- Mojolicious - An all in one framework.
- Poet - a modern Perl web framework for Mason developers
Libraries for creating HTTP middlewares.
- Gazelle - Preforked Plack Handler for performance freaks
- Plack - PSGI server implementation and utilities for Web applications.
- Server::Starter - Process manager with the "graceful restart" feature.
- Starlet - High-performance PSGI Server
- Starman - High-performance preforking PSGI/Plack web server
- Twiggy - Event-driven PSGI application server
Somewhere between templates and full on frameworks
- Embperl - Building dynamic Websites with Perl (sort of like Perl crossed with PHP)
- Mason - Powerful, high-performance templating for the web and beyond
Other amazingly awesome lists can be found in:
- bayandin/awesome-awesomeness
- emijrp/awesome-awesome
- fleveque/awesome-awesomes
- sindresorhus/awesome
- t3chnoboy/awesome-awesome-awesome
Please read CONTRIBUTING.md