Skip to content

A hand-picked collection of Perl awesomeness to remind the world that Perl never left — it just regex’d itself into the shadows.

Notifications You must be signed in to change notification settings

bl4ckstack/awesome-perl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Awesome Perl Awesome

A curated list of awesome Perl frameworks, libraries, software and resources.

Perl is a highly capable, feature-rich programming language with over 30 years of development. Perl runs on over 100 platforms from portables to mainframes and is suitable for both rapid prototyping and large scale development projects.

Perl CPAN License PRs Welcome Maintenance

Contents

Web Frameworks

Modern web frameworks for building web applications.

  • Mojolicious - Real-time web framework with elegant and powerful syntax, WebSockets support, and non-blocking I/O.
  • Dancer2 - Lightweight yet powerful web application framework inspired by Sinatra.
  • Catalyst - MVC web framework with excellent plugin ecosystem and flexibility.
  • Web::Simple - Minimalist web framework for building simple web applications.
  • CGI::Application - Framework for building reusable web applications.
  • Amon2 - Lightweight web application framework with DBI integration.
  • Kelp - Light, modular web framework with Plack integration.

Web Frameworks-Like

Lightweight frameworks and micro-frameworks.

  • Aplaven - Micro web framework with Plack support.
  • Poet - Modern Perl web framework with Mason templates.
  • Raisin - REST API micro-framework for Perl.

Object Oriented Programming

Modern OOP systems for Perl.

  • Moose - Complete modern object system with meta-object protocol, roles, and type constraints.
  • Moo - Minimalist object orientation with Moose compatibility and better startup performance.
  • Mouse - Lightweight Moose alternative with XS acceleration.
  • Class::Tiny - Minimalist class builder with automatic accessor generation.
  • Object::Pad - Experimental new object system for Perl 5 with native syntax.
  • Class::Accessor - Automated accessor generation.
  • Class::Accessor::Lite - Minimalist accessor generator.
  • Class::InsideOut - Inside-out object implementation.
  • Object::Tiny - Class builder with no dependencies.
  • Role::Tiny - Minimal role composition.

Database

Libraries for working with databases and ORMs.

Database Drivers

Database-specific drivers and integrations.

Date & Time

Libraries for working with dates and times.

Data Formats

Libraries for parsing and manipulating data formats.

Development Tools

Tools for Perl development.

  • Perl::Critic - Critique Perl source code for best practices.
  • Perl::Tidy - Perl source code formatter.
  • Devel::REPL - Modern Perl interactive shell.
  • Reply - Read-eval-print-loop with plugin support.
  • Carton - Perl module dependency manager.
  • cpanm - Get, unpack, build and install modules from CPAN.
  • Perlbrew - Manage multiple Perl installations.
  • plenv - Perl version manager.
  • Smart::Comments - Comments that do more than just document.
  • Data::Dump - Pretty printing of data structures.

Email

Libraries for sending and parsing email.

Exception Handling

Libraries for exception and error handling.

  • Try::Tiny - Minimal try/catch with proper preservation of $@.
  • TryCatch - First-class try/catch semantics.
  • Exception::Class - Module for declaring exception hierarchies.
  • Throwable - Role for classes that can be thrown.
  • autodie - Replace functions with ones that succeed or die.

File Manipulation

Libraries for file manipulation and MIME type detection.

Form Frameworks

Libraries for form rendering and validation.

Image Processing

Libraries for manipulating images.

  • Image::Magick - ImageMagick bindings for Perl.
  • GD - Interface to GD graphics library.
  • Imager - Perl extension for image manipulation.
  • Image::Info - Extract meta information from images.
  • Image::ExifTool - Read and write meta information in image files.

List Manipulation

Libraries for manipulating lists and arrays.

Logging

Libraries for generating and working with log files.

Module Development

Libraries for module development and distribution.

Network

Libraries for network programming.

Package Management

Libraries for package management.

  • cpanm - Get, unpack, build and install CPAN modules.
  • CPAN - Query, download and build perl modules from CPAN.
  • Carton - Perl module dependency manager using cpanfile.
  • Pinto - Curate your own CPAN repository.

Processes & Threads

Libraries for managing processes and threads.

Profiling

Libraries for code profiling and performance analysis.

Protocol

Protocol clients and libraries.

Queueing

Message queue and job queue systems.

REST Frameworks

Libraries for developing REST APIs.

Science/Numerics

Libraries for scientific computing and numerical analysis.

Stream Manipulation

Libraries for working with event streams.

Template Engines

Libraries for templating and lexing.

Testing

Libraries for testing codebases and generating test data.

Text Processing

Libraries for parsing and manipulating text.

Tools

Useful command-line tools.

Type Checking

Libraries for type checking and validation.

Video

Libraries for manipulating video.

  • FFmpeg - Interface to FFmpeg video converter.
  • Video::Info - Extract metadata from video files.

Web Crawling

Libraries for crawling and spidering websites.

Web Scraping

Libraries for extracting data from websites.

Web Services

Libraries for working with web services.

Caching

Libraries for caching data.

Configuration

Libraries for configuration files.

Cryptography

Libraries for encryption and cryptographic functions.

GUI

Libraries for creating graphical user interfaces.

  • Tk - Perl/Tk interface to Tk GUI toolkit.
  • Wx - Perl interface to wxWidgets.
  • Prima - Perl graphic toolkit.
  • GTK2 - Perl bindings for GTK+ 2.x.

Asynchronous

Libraries for asynchronous programming.

  • IO::Async - Event-driven programming framework.
  • AnyEvent - Event loop programming interface.
  • POE - Portable multitasking and networking framework.
  • Coro - Cooperative threads in Perl.
  • Future - Represent operations awaiting completion.
  • Promises - Promise/A+ implementation for Perl.
  • Reflex - Reactive programming framework.

Command Line

Libraries for building CLI applications.

Benchmarking

Libraries for benchmarking code.

Security

Libraries for security and cryptography.

Performance

Libraries for improving performance.

Message Queue

Message queue and broker systems.

Authentication

Libraries for implementing authentication.

Authorization

Libraries for implementing authorization.

API Clients

Libraries for accessing third-party APIs.

Serialization

Libraries for serializing data.

Machine Learning

Libraries for machine learning and AI.

DevOps Tools

Tools for deployment and system administration.

Deployment

Tools for deploying applications.

  • Plack - PSGI toolkit and server adapters.
  • Starman - High-performance preforking PSGI server.
  • Starlet - Simple, high-performance PSGI server.
  • Gazelle - Preforked Plack handler for performance.
  • Server::Starter - Superdaemon for hot-deploying servers.

Robotics

Libraries for robotics.

Metadata

Libraries for handling metadata.

Resources

Where to discover new Perl libraries and resources.

Websites

  • MetaCPAN - Search and browse CPAN modules with documentation.
  • Perl.org - Official Perl website with downloads and documentation.
  • PerlMonks - Community discussion forum for Perl programmers.
  • Perl Weekly - Weekly newsletter about Perl.
  • blogs.perl.org - Perl blogging community.
  • Perl Maven - Tutorials, articles, and screencasts.
  • Perl.com - Articles and news about Perl.

Books

Tutorials & Learning

Community

Conferences & Events

Videos & Podcasts

Other Awesome Lists

Contributing

Your contributions are always welcome! Please read the contribution guidelines first.

Guidelines

  • Search previous suggestions before making a new one.
  • Make an individual pull request for each suggestion.
  • Use the following format: **[Name](link)** - Description.
  • New categories or improvements to existing categorization are welcome.
  • Keep descriptions short and simple, but descriptive.
  • Check your spelling and grammar.
  • Make sure your text editor is set to remove trailing whitespace.

Thank you for your suggestions!

License

CC0

To the extent possible under law, the contributors have waived all copyright and related rights to this work.

About

A hand-picked collection of Perl awesomeness to remind the world that Perl never left — it just regex’d itself into the shadows.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published