/awesome-perl

A curated list of awesome Perl frameworks and libraries. Come on Pull Requests!

Primary LanguagePerlMIT LicenseMIT

Awesome Perl

A curated list of awesome Perl5 frameworks, libraries and software. Inspired by awesome-go.

Not Perl6 modules ;-P

Another module list

We also recommend these lists.

Contents

Args

Libraries for argument manifestation and validation.

Benchmarks

Libraries for benchmarking

Class Builder

Libraries to support writing classes and meta programming

CLI

Libraries for developing CLI applications

  • App::Cmd - Write command line apps with less suffering.
  • Getopt::Long - Extended processing of command line options.

Container

Libraries for Singleton Pattern implementation.

Data Format

Libraries for serializing, formatting and parsing

DevOps Tools

Libraries that help when you what to deploy software across networks ond several hostsare working across computer networks

  • Rex - Remote Execution

Database

Libraries for dealing with relational databases

Database Drivers

Libraries for using specific database products

Relational Databases

NoSQL Databases

Date & Time

Libraries for working with dates and times

Email

Libraries that implement email creation and sending

Exception Handling

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 Manipulation

  • File::Util - Easy, versatile, portable file handling.
  • Path::Tiny - Simple object-oriented file manipulation.

Form Frameworks

Libraries that take the boredom & repetition out of (web and UI) forms

Images

Libraries for manipulating images.

  • Image::Magick - An object-oriented interface to ImageMagick's image composing libraries.
  • Imager

List Manipulation

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

Logging

Libraries for generating and working with log files

Module Development

Libraries that simplify and improve Perl module development

Network

Libraries that help when you are dealing with computer networks

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.

ORM

Libraries that implement Object-Relational Mapping or datamapping techniques

Package Management

Libraries for package and dependency management

Processes and Threads

Libraries for managing processes and threads

Profiling

Libraries for examining run-time activity of your program

Protocol

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

Queueing

Message Queue, Job Queue System..

Science/Numerics

Hand-picked modules for research, science, numerics and hyper-computing

REST Frameworks

Libraries for developing REST applications

Template Engines

Libraries and tools for templating

Testing

Libraries for testing codebases and generating test data.

Testing Frameworks

Test Double

Coverage

Tools

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

Librairies for handling configuration files

  • Config::Tiny - Read/Write .ini style files with as little code as possible

Web Frameworks

Libraries for developing Web applications

Middlewares

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

Web Frameworks-Like

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 Awesome Lists

Other amazingly awesome lists can be found in:

How to contribute?

Please read CONTRIBUTING.md