awesome-perl
A hand-picked collection of Perl awesomeness to remind the world that Perl never left — it just regex’d itself into the shadows.
https://github.com/bl4ckstack/awesome-perl
Last synced: 3 days ago
JSON representation
-
Web Frameworks
- 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
-
Object Oriented Programming
- 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
- DBI - Database independent interface for Perl.
- DBIx::Class - Extensible and flexible ORM with advanced features.
- DBIx::Connector - Fast, safe DBI connection and transaction management.
- DBIx::Handler - Fork-safe and easy database handler.
- DBIx::Inspector - Get schema information from database.
- DBIx::QueryLog - Log queries for DBI.
- DBIx::Sunny - Useful DBI wrapper.
- DBIx::TransactionManager - Simple transaction manager.
- Teng - Lightweight and simple O/R Mapper.
- SQL::Maker - SQL builder with named placeholders.
- SQL::Abstract - Generate SQL from Perl data structures.
- SQL::Interp - Interpolate Perl variables into SQL statements.
-
Database Drivers
- DBD::mysql - MySQL driver for DBI.
- DBD::Pg - PostgreSQL driver for DBI.
- DBD::SQLite - Self-contained SQLite database engine.
- DBD::Oracle - Oracle database driver.
- Mojo::Pg - PostgreSQL integration with non-blocking queries.
- Mojo::mysql - MySQL integration for Mojolicious.
- Redis - Perl binding for Redis database.
- Redis::Fast - Fast Redis client.
- MongoDB - Official MongoDB driver for Perl.
- UnQLite - Embedded NoSQL database.
- Mango - Non-blocking MongoDB driver.
- Cache::Memcached::Fast - Fast Memcached client.
-
Date & Time
- DateTime - Comprehensive date and time object with timezone support.
- Time::Piece - Object-oriented time objects included with Perl.
- Time::Moment - High-performance immutable datetime objects.
- DateTime::Format::Strptime - Parse and format datetime strings.
- DateTime::Format::ISO8601 - Parse ISO8601 formatted dates.
- DateTime::Format::Natural - Parse natural language date/time strings.
- DateTime::TimeZone - Timezone support for DateTime.
- Time::Local - Efficiently compute time from local and GMT time.
- Date::Calc - Gregorian calendar date calculations.
- Date::Simple - Simple date objects.
-
Data Formats
- JSON::MaybeXS - Use the fastest available JSON implementation.
- JSON::XS - Fast JSON encoder/decoder.
- Cpanel::JSON::XS - JSON encoder/decoder with cPanel modifications.
- JSON::PP - Pure Perl JSON encoder/decoder.
- YAML::XS - Fast YAML parser and dumper.
- YAML::Tiny - Minimal YAML implementation.
- YAML - Pure Perl YAML implementation.
- XML::LibXML - Interface to libxml2 library for XML processing.
- XML::Simple - Simple API for reading and writing XML.
- XML::Twig - Process XML documents in tree mode.
- XML::Parser - Perl extension interface to James Clark's XML parser.
- Data::MessagePack - MessagePack serialization format.
- Text::CSV_XS - High-performance CSV parser.
- Text::CSV - Comma-separated values manipulator.
- TOML - Parser for Tom's Obvious Minimal Language.
- Config::Tiny - Read/write .ini style files.
- Data::Printer - Beautiful data structure dumper.
- Data::Dumper - Stringify Perl data structures.
-
Development Tools
- 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
- Email::Sender - Library for sending email via multiple transports.
- Email::MIME - Easy MIME message handling.
- Email::Valid - Check validity of email addresses.
- Email::Simple - Simple parsing of RFC2822 message format and headers.
- Email::Stuffer - Easy email creation and sending.
- Email::Address - Parse RFC 2822 email addresses.
- Mail::IMAPClient - IMAP client interface.
- MIME::Lite - Simple MIME email creation.
- Mail::Sendmail - Simple platform independent mailer.
-
Exception 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
- Path::Tiny - Simple object-oriented file path manipulation.
- Path::Class - Cross-platform path specification.
- File::Slurp - Simple and efficient file reading and writing.
- File::Slurper - Simple, sane and efficient module for file slurping and spurting.
- File::Find::Rule - Alternative interface to File::Find.
- File::HomeDir - Get home directory for any user.
- File::Temp - Create temporary files and directories.
- File::Which - Portable implementation of 'which'.
- File::Copy::Recursive - Recursive copy of files and directories.
- Archive::Extract - Generic archive extracting mechanism.
- Archive::Zip - Create, manipulate, read, and write Zip archives.
- Archive::Tar - Create and manipulate tar files.
- IO::All - Unified IO operations.
-
Form Frameworks
- HTML::FormHandler - Moose-based form handling with validation.
- Form::Tiny - Form validation framework with Moo.
- FormValidator::Simple - Simple validation library.
- Data::FormValidator - Profile-based validation.
-
Image Processing
- 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
- List::Util - Selection of general utility list subroutines.
- List::MoreUtils - Provide the stuff missing in List::Util.
- List::AllUtils - Combination of List::Util and List::MoreUtils.
- List::UtilsBy - Higher-order list utility functions.
- Array::Utils - Small utils for array manipulation.
-
Logging
- Log::Log4perl - Log4j implementation for Perl.
- Log::Dispatch - Dispatches messages to multiple outputs.
- Log::Any - Logging abstraction layer for modules.
- Log::Minimal - Minimal and customizable logger.
- Mojo::Log - Simple logger for Mojolicious projects.
- Log::Contextual - Simple logging interface with context.
-
Module Development
- Dist::Zilla - Distribution builder with plugins.
- Minilla - CPAN module authoring tool.
- Module::Build - Build and install Perl modules.
- ExtUtils::MakeMaker - Create a Makefile for a Perl module.
- Module::Install - Standalone module installer.
- Module::Starter - Bootstrap a new module.
-
Network
- IO::Socket::IP - IPv4/IPv6 socket interface.
- IO::Socket::SSL - SSL sockets with IO::Socket interface.
- Net::SSH::Perl - Pure Perl SSH client.
- Net::SSH2 - SSH2 protocol support via libssh2.
- Net::SFTP::Foreign - SFTP client for SSH2.
- Net::DNS - Perl interface to the DNS resolver.
- Net::Ping - Check remote host availability.
- NetAddr::IP - Manage IPv4 and IPv6 addresses.
-
Package Management
-
Processes & Threads
- Parallel::ForkManager - Simple parallel processing fork manager.
- Parallel::Prefork - Simple prefork server framework.
- Proclet - Minimalistic process manager.
- Proc::ProcessTable - Access process table information.
- threads - Perl interpreter-based threads.
-
Profiling
- Devel::NYTProf - Powerful feature-rich Perl profiler.
- Devel::Cover - Code coverage metrics for Perl.
- Benchmark - Benchmark running times of Perl code.
- Dumbbench - More reliable benchmarking with statistics.
-
Protocol
- HTTP::Tiny - Minimal HTTP client.
- LWP::UserAgent - Full-featured HTTP client.
- LWP::Protocol::https - HTTPS support for LWP.
- Furl - Fast HTTP client.
- HTTP::Cookies - HTTP cookie jars.
- Net::HTTP - Low-level HTTP connection.
- Protocol::WebSocket - WebSocket protocol implementation.
-
Queueing
- TheSchwartz - Reliable job queue.
- Qudo - Simple job queue manager.
- Minion - Job queue for Mojolicious.
- Gearman - Distributed job system.
-
REST Frameworks
- Dancer2::Plugin::REST - REST plugin for Dancer2.
- Catalyst::Action::REST - REST support for Catalyst.
- WebService::Async - Async REST client framework.
-
Science/Numerics
- PDL - Perl Data Language for scientific computing.
- Math::BigInt - Arbitrary size integer math.
- Math::BigFloat - Arbitrary size floating point math.
- Math::Prime::Util - Prime number utilities.
- Statistics::Descriptive - Basic statistical functions.
- Math::Random - Random number generators.
- Chart::Clicker - Chart creation library.
-
Stream Manipulation
- Stream::Buffered - Temporary buffer for reading stream.
- Data::Stream::Bulk - N-at-a-time iteration API.
-
Template Engines
- Template Toolkit - Powerful and extensible template processing system.
- Text::Xslate - Fast template engine with multiple syntaxes.
- HTML::Template - Simple HTML templating system.
- Mason - Powerful template system with component-based architecture.
- Mojo::Template - Lightweight embedded Perl templates.
- Text::Template - Expand template text with embedded Perl.
- Template::Tiny - Template Toolkit reimplemented in minimal code.
-
Testing
- Test::More - Basic testing framework included with Perl.
- Test2::Suite - Modern testing framework with rich feature set.
- Test::Simple - Basic utilities for writing tests.
- Test::Exception - Test exception-based code.
- Test::Fatal - Test for exceptions with better diagnostics.
- Test::Differences - Test strings and data structures for equality.
- Test::Deep - Extremely flexible deep comparison.
- Test::MockModule - Override subroutines in modules for testing.
- Test::MockObject - Emulate troublesome interfaces.
- Test::Mock::Guard - Simple mock test library.
- Test::Time - Override time for testing.
- Test::TCP - Testing TCP programs.
- Test::WWW::Mechanize - Test web applications.
- Test::Mojo - Testing toolkit for Mojolicious applications.
- Test::File - Test file attributes.
- Test::Class - Class-based testing.
- Test::Harness - Run Perl test scripts.
-
Text Processing
- Regexp::Common - Collection of common regular expressions.
- Regexp::Assemble - Assemble multiple regexps into a single one.
- String::Util - String processing utilities.
- Text::Trim - Remove leading/trailing whitespace.
- Lingua::EN::Inflect - Convert singular to plural English words.
- Text::Diff - Perform diffs on files and strings.
- String::CamelCase - Convert to/from camel case.
- Text::Table - Organize data in tables.
- Text::Markdown - Convert Markdown to HTML.
- Text::Unidecode - Transliterate Unicode to ASCII.
- Unicode::UTF8 - Fast UTF-8 encoding/decoding.
-
Tools
- App::Ack - grep-like text finder optimized for programmers.
- App::perlbrew - Manage perl installations.
-
Type Checking
- Type::Tiny - Tiny yet comprehensive type library.
- Types::Standard - Type constraints based on Moose type system.
- MooseX::Types - Type library for Moose.
- Params::Validate - Validate method/function parameters.
- Params::ValidationCompiler - Build fast validators for parameters.
- Smart::Args - Smart argument validation.
-
Video
- FFmpeg - Interface to FFmpeg video converter.
- Video::Info - Extract metadata from video files.
-
Web Crawling
- WWW::Mechanize - Handy web browsing in a Perl object.
- WWW::Mechanize::Cached - Cache response of WWW::Mechanize.
- WWW::Selenium - Perl client for Selenium Remote Control.
-
Web Scraping
- Web::Scraper - Web scraping toolkit using HTML and CSS selectors.
- Mojo::UserAgent - Non-blocking HTTP and WebSocket user agent.
- HTML::TreeBuilder - Parser that builds HTML tree structures.
- HTML::TreeBuilder::XPath - Add XPath support to HTML::TreeBuilder.
- HTML::Query - jQuery-like DOM manipulation.
-
Web Services
- SOAP::Lite - SOAP client and server.
- XML::Compile::SOAP - SOAP 1.1 client and server.
- XML::RPC - Pure Perl XML-RPC implementation.
- Net::Amazon::S3 - Framework for accessing Amazon S3.
- WebService::Slack::WebApi - Slack Web API client.
-
Caching
- CHI - Unified cache interface.
- Cache::Cache - Cache interface.
- Cache::FastMmap - Shared memory cache.
- Cache::Memcached - Memcached client.
-
Configuration
- Config::Any - Load configuration from many formats.
- Config::General - Apache-style config files.
- Config::GitLike - Git-style config files.
- Config::YAML - YAML-based configuration loader.
-
Cryptography
- Crypt::OpenSSL::RSA - RSA encoding and decoding.
- Crypt::OpenSSL::X509 - Parse X509 certificates.
- Crypt::JWT - JSON Web Token implementation.
- Digest::SHA - SHA cryptographic hash functions.
- Digest::MD5 - MD5 message digest algorithm.
- Crypt::Bcrypt - Modern password hashing for Perl.
- Crypt::Rijndael - AES encryption implementation.
- Crypt::CBC - Encrypt with cipher block chaining.
- Crypt::Random - Cryptographically strong random numbers.
-
GUI
-
Asynchronous
- 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
- Getopt::Long - Extended processing of command line options.
- Getopt::Long::Descriptive - Getopt::Long with usage text.
- App::Cmd - Framework for building command-line applications.
- Term::ANSIColor - Color screen output using ANSI escape sequences.
- Term::UI - Term::ReadLine user interface.
- IO::Prompter - Prompt users for input with validation.
- Term::ProgressBar - Provide progress bars for long-running operations.
- Term::ReadKey - Simple terminal control.
- Term::ReadLine - Interface to readline libraries.
-
Benchmarking
- Benchmark::Dumb - Benchmark without the magic.
-
Security
- Net::SSLeay - Perl extension for using OpenSSL.
- Authen::SASL - SASL authentication framework.
- Authen::Passphrase - Hashed passwords/passphrases.
- Crypt::SaltedHash - Salted hash generation.
- Crypt::PBKDF2 - Password-based key derivation.
-
Performance
- Sereal - Fast, compact, powerful binary serialization.
- Inline::C - Write Perl subroutines in C.
- Memoize - Transparently speed up functions.
- Class::XSAccessor - Generate fast XS accessors.
-
Message Queue
- Net::RabbitMQ - RabbitMQ client library.
- Net::AMQP::RabbitMQ - RabbitMQ AMQP client.
- Net::Stomp - Streaming Text Orientated Messaging Protocol client.
- Net::Kafka - Apache Kafka client.
-
Authentication
- Authen::Simple - Simple authentication framework.
- Net::LDAP - LDAP client library.
- Authen::PAM - PAM authentication.
- Net::OAuth - OAuth protocol support.
- LWP::Authen::OAuth - OAuth support for LWP.
-
Authorization
- DBIx::Class::EncodedColumn - Automatically encode column values.
- Authorization::AccessControl - Access control lists.
-
API Clients
- Net::Twitter - Twitter API client.
- Net::GitHub - GitHub API client.
- WebService::DigitalOcean - DigitalOcean API.
- Paws - Perl AWS SDK.
- Net::Google::Drive::Simple - Google Drive API client.
- WWW::Twilio::API - Twilio API client.
-
Serialization
- Storable - Persistence for Perl data structures.
- FreezeThaw - Convert Perl structures to strings.
- CBOR::XS - Concise Binary Object Representation.
-
Machine Learning
- AI::MXNet - Perl interface to Apache MXNet.
- Algorithm::NaiveBayes - Naive Bayes classifier.
- AI::DecisionTree - Decision tree learning.
- AI::NeuralNet::BackProp - Backpropagation neural network.
- Algorithm::SVM - Support Vector Machines.
-
DevOps Tools
- Rex - Remote execution framework.
- App::Sqitch - Database change management.
- IPC::Run - Run commands with piping and redirection.
- Sys::Info - Get system information.
- Sys::Hostname - Get hostname.
-
Deployment
- 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
- Device::SerialPort - Serial port communication.
- UAV::Pilot - Control drones and UAVs.
-
Metadata
- Software::License - Software license objects.
- CPAN::Meta - Distribution metadata.
- Module::Metadata - Gather package and POD information from modules.
-
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
- Modern Perl - Free book covering modern Perl practices.
- Higher-Order Perl - Advanced functional programming techniques (free online).
- Object Oriented Perl - Object-oriented programming in Perl.
-
Tutorials & Learning
- Perl Tutorial - Official Perl introduction.
- Learn Perl - Comprehensive learning resources.
- PerlDoc - Official Perl documentation.
- Exercism Perl Track - Practice Perl with exercises.
-
Community
- Reddit /r/perl - Perl subreddit with discussions and news.
- Perl Monks - Perl community Q&A and discussion site.
- IRC #perl - Perl IRC channels on various networks.
- Perl on Stack Overflow - Q&A for Perl.
- The Perl Foundation - Dedicated to advancing Perl.
-
Conferences & Events
- The Perl Conference - Annual Perl conference in North America.
- YAPC (Yet Another Perl Conference) - Regional Perl conferences worldwide.
- German Perl Workshop - German Perl community event.
-
Videos & Podcasts
- Perl YouTube Channels - Various Perl tutorials.
-
Other Awesome Lists
- Awesome Mojolicious - Projects using Mojolicious.
- Awesome CPAN - Another curated list of Perl resources.
- Task::Kensho - Glimpse of enlightenment - recommended modules.
-
Categories
Resources
26
Data Formats
18
Testing
17
File Manipulation
13
Database Drivers
12
Database
12
Text Processing
11
Date & Time
10
Object Oriented Programming
10
Development Tools
10
Command Line
9
Cryptography
9
Email
9
Network
8
Science/Numerics
7
Web Frameworks
7
Protocol
7
Template Engines
7
Asynchronous
7
Module Development
6
API Clients
6
Logging
6
Type Checking
6
Web Services
5
List Manipulation
5
Exception Handling
5
Deployment
5
Processes & Threads
5
Image Processing
5
DevOps Tools
5
Security
5
Machine Learning
5
Authentication
5
Web Scraping
5
Caching
4
Message Queue
4
Profiling
4
Configuration
4
Performance
4
Queueing
4
Form Frameworks
4
GUI
4
REST Frameworks
3
Metadata
3
Serialization
3
Web Frameworks-Like
3
Web Crawling
3
Tools
2
Package Management
2
Robotics
2
Video
2
Stream Manipulation
2
Authorization
2
License
1
Benchmarking
1