perlres
List of resources about Perl
Perl 5 raptor from kraih, licence CC-BY-SA 4.0
📋 Summary
Derived from LinuxFR french article Pour tout savoir du Perl post-moderne.
As a reminder, Perl is a general-purpose programming language created in 1987 by Larry Wall.
"Perl continues to flourish into its fourth decade thanks to a vibrant community of users and developers" (dixit perldelta)
Perl is distributed under a dual licence : Artistic Licence and GPL v1+. Most of CPAN modules follow the same rule.
👷 Perl core development
- Perl github - The Perl interpreter source code and its gitweb mirror
🐛 Perl bug tracker - The public issue tracker and the former Perl bug tracker (Request Tracker)- 📫 Perl porters mailing list - Mailing list of the Perl core developers
🔨 Compile and install Perl - If you want to compile it by hand (if you don't want Perl vendor)🔻 Perl Delta - The latest changelog🔺 Changelogs - All changelogs📜 Very detailed history of Perl versions - Date and major changes from Perl creation to today- 👵 Deprecations - The latest list of deprecated symbols
🐧 Portability - Perl supports more than 100 platforms🌋 SmokersDB - Perl core testing ("smokers")
👔 Official
🏠 perl.org - Perl's "home" (twitter, facebook, github)🏰 Perl Foundation - The Perl Foundation (twitter, facebook, github)🎓 White Camel Awards - Yearly awards for important social contribution to Perl (also whitecamel.org)
⚒️ Distributions, modules and installers
- 💊 cpanm - Modern CPAN modules installer by Tatsuhiko Miyagawa (CPAN profile)
- ⏩ cpm - A fast, parallel CPAN module installer
🌋 ActivePerl - Perl distribution for Windows/OSX/Linux🚪 🍎 🐧 (github)🧩 asdf - Perl plugin for asdf, a polyglot version manager🍓 Strawberry Perl - Perl distribution for Windows (github)🔨 Perlbrew - Perl binaries installer- 🔧 plenv - Another Perl binaries handler. Differences between perlbrew and plenv
🍓 Berrybrew - The perlbrew for Windows Strawberry Perl🍌 PSPerl - Manage Strawberry Perl installs in your HOMEPATH🎁 Carton - A bundler for Perl (uses cpanfile)- 🔒 Carmel - Yet another CPAN module manager.
📖 Task::Kensho - List of important modules💰 Corelist - A web interface of the tool corelist used to know core modules shipped in a specific version of Perl.👴 CPAN.pm - Venerable CPAN modules installer, part of core distribution, fully configurable (github)🐸 CPAN Plus - API to access CPAN mirrors (+ CPAN modules installer)- 🚧 cnext - Experimental CPAN module installer based on an alternative index (github)
🐪 General
👳♂️ Perl Monks - The Perl Stack Overflow👳♂️ Perl Monks… again - Because it's so cool, even if it looks like a cave🙊 📖 Perldoc from perl.org and perldoc from grinnz🆕 💰 Core modules list - Web interface to the toolcorelist
📖 Perl Maven - A huge website about Perl📚 Perl Meme - A website about Perl (tutorials, FAQ and more)- 🔲 Square Perl - Multilingual site about Perl programming
- 🏫 Enlightened Perl - An organization supporting Perl
👀 P3rl.org - Documentation portal about Perl- 🌟 BIP - Blog, job board and companies directory (twitter)
⛽ Around the CPAN
🌊 CPAN Deps - List dependencies for a CPAN module (github)- 🌀 CPAN Deps Graph - Visually (graph) list dependencies for a CPAN module (github)
🆕 CPAN Doc - Documentation of some important modules✔️ CPAN Testers - Build and test reports of CPAN modules📜 BackPAN - The entire history of CPAN- 🌍 CPAN Map - Namespaces map of CPAN modules
- ☑️ CPAN Cover - Test coverage of CPAN modules
✅ CPAN TS - Kwalitee metrics- 🎓 CPAN IO - CPAN authors rankings according to their activity
- CPAN PRC - CPAN Pull Request Challenge
💾 CPAN Mirrors - The CPAN mirrors around the world☁️ StratoPAN - Private CPAN repositories in the cloud- 🔞 CPAN Audit - Audit CPAN modules for security vulnerabilities
🔎 CPANMeta - Browse CPAN metadata (github)- PAUSE - Perl Authors Upload Server (github)
💽 CPAN Meta DB - (Yet another) CPAN metadata database (github)- 🔦 grep::cpan - Grep the CPAN
👓 CPAN::Groonga - Yet another CPAN grep service📳 PerlModules.net - Track changes in CPAN modules (changelog, RSS...)🚀 CPAN Rocks - CPAN metrics📋 CPAN Weekly - Newsletter about CPAN modules🎯 CPAN Dashboards - CI dashboards for CPAN📑 CPAN Glossary - CPAN Glossary (see also Perl Glossary)
🍻 Social
Community
(See also Perl Mongers)
💬 Perl Reddit - Subreddit for Perl💀 Perl is dead - Community articles/emails/IRC/blogs feed🇯🇵 Perl Entrance - Sort of Perl Mongers group in Japan- Perl Mongers - Perl Mongers
- French Perl Mongers - French Perl Mongers group
- 💬 IRC channels - IRC channels for the French mongers, Mojolicious, Dancer, Catalyst, etc...
👪 irc.perl.org - IRC server with several Perl related channels (twitter)💭 Perl Weekly Challenge - Friendly coding competition (twitter)📰 The Perl Journal - E-Zine about Perl🎅 Perl Advent Calendar - Advent calendar about Perl🎄 Mojolicious Advent Calendar - Advent calendar about Mojolicious web framework🎄 Dancer Advent Calendar - Advent calendar about Dancer web framework- Pull Request Club - Linking maintainers with contributors (github)
🎥 Perl Cast - Podcasts about Perl (also perlcast.net)🏰 Perl Master Plan - Marketing materials about Perl
Newsfeeds
📰 Perl Planet - Newsfeed📰 Perl Buzz - Newsfeed (twitter)📝 Perl.com - Newsfeed (github)- 📋 Perl Weekly - Newsletter gathering Perl news and links (twitter)
Blogging
👫 Blogs about Perl - Blog service for Perl folks (github)💾 use.perl.org Archive - Archive of Perl-specific blogging website with lots of articles🎷 Typepad - Blogging platform based on Movable Type👪 Nice Perl blog - An important blog- 💬 Cultured Perl - A blog about Perl (twitter)
- 👫 Perl Hacks - Just another Perl Hacker's blog
👫 Effective Perl Programming - Perl's new features, and using Perl well👪 Dev.to #Perl - #Perl tag on Dev.to blogging platform📰 Medium Perl tag - #Perl tag on Medium🏫 Perl academy - A (german) blog about Perl🇩🇪
Conferences
💲 YAPC - Major Perl events (wikipedia)🚶 YAPC::NA - North American flavor of YAPC. Since 2017 it is renamed as TPC👫 YAPC::Europe - European flavor of YAPC. 2019 edition is known as PerlCon👪 YAPC::Asia / YAPC::Japan - Asian/Japanese flavor of YAPC (supported by Japan Perl Association)👬 YAPC::SA - South American flavor of YAPC🏃 YAPC::Russia - Russian flavor of YAPC- 👭 YAPC::Australia - Australian flavor of YAPC
✔️ Perl QA Hackathon🐪 Perl Toolchain Summit🔦 meta::hack😽 OSDC - Various events like Israel OSDC, French OSDC, Taiwan OSDC, Australia OSDC or Malaysia OSDC🇫🇷 French Perl Workshop🇫🇷 Perl Fun Again🇫🇷 Patch.pm -pn- 🐪 Several others - Several Perl workshops or events
- 👪 Perl conferences using Act - A list of Perl conferences
🐊 The Ephemeral Miniconf
📖 Official documentation
- ❓ Perl FAQ - Perl FAQ table of content (several FAQ pages)
🔣 Perlre - Regular expression documentation and tutorial and quick start
🔣 Operators list and built‑in functions- 💊 How to write modules/packages or here - or write a new module. Some advices to respect the style in modules
🔣 Perl syntax - Doc about Perl syntax📖 References and tutorial- 📖 Documentation about IPC
- 🔞 Perl security - About taint checking (or « data flow analysis »), setuid, clean PATH or algorithm complexity attacks
- 📏 Reports generation thanks to formats - Documentation about formats. Formats are a reason of the initial creation of Perl, but they are limited and less and less used
🔧 Debugger documentation - The Perl debugger is itself written in Perl💪 👽 perlobj and tuto oo - Object Oriented Programming in Perl
🇺🇸 Tutorials
📕 Perl Maven (twitter)🕝 Learn Perl in about 2 hours and 30 minutes📗 Minimum Viable Perl (MVP)📘 Perl Begin💯 Perl101📙 Perl Tutorial Points📓 Perl Tutorial📒 Perl in 1 day guru99☝️ Exercism.io - Learn Perl with code practice and mentorship
🇫🇷 Tutorials in French
🇪🇸 Tutorials and related resources in Spanish
📳 Interactive tutorials
🍕 Perltuts - Learn modern Perl any time and from everywhere💜 🍟 Learn Perl - Free interactive Perl tutorial💙 🍫 TryPerl - TryRuby clone for Perl❤️ (github)
🏫 Tutorials meta-site
- 📚 Perl tutorials - Perl tutorials meta site
Perl folklore
💣 "Perl" vs "perl" - Perl is the language, perl is the interpreter, PERL is how you catch newbies👶 - JAPH - Just Another Perl Hacker
🌠 PerlSecret - Secret operators and their nice nicknames- ➕ $A++ - More than three hundred ways to increment
$A
, by the Paris Perl Mongers
💲 Magic variables - Why some hate or love Perl (among other reasons)💯 TIMTOWTDI - There's more than one way to do it♻️ Only perl can parse Perl or PPI🎶 Perl poetry, including for instance Larry Wall's Black Perl⛳ Perl Golf - Code Golf⛳ Anarchy Golf - Code golf (not dedicated to Perl)- 😩 Laziness, Impatience and Hubris - The three chief virtues of a programmer
😎 DWIM - Do What I Mean principle (not this DWIM)😁 State of the onion- Acme modules - Purely entertainment modules
🐤 Easy things should be easy and hard things should be possible🐔 👷 Get the job done👍 😈 Obfuscated Perl Contest - OPC 0, OPC 1,OPC 2, OPC 3, OPC 4 and OPC 5🎶 Perl Poetry Contest - PPC 1, PPC 2- 🇯🇵 Perl Haiku Contest
🚶 NeoCPANisms - Sit well and (try to) release new dists each month😼 🏆 Larry Wall Awards - Annual award to the best contribution assigned during the TPC (old editions)
💩 PHP was sometimes referred as People Hate Perl😁 💩 Write Only Language - Relatively common😁 🍼 Baby Perl - Programming with a reduced set of builtins and idioms👶 - 😎 Perl idioms - Perl offers powerful idiomatic expressions (see fluent Perl or this node)
😏 Principle of least astonishment - Apply to experienced programmers 😜- 🌊 The CPAN river - Metaphor about CPAN dependencies
🎃 The keeper of the pumpkin - The Perl maintainer (currently Sawyer X)💗 Blead - Blead is the default development branch for Perl📎 Perl is often considered as being the duct tape of the Internet
🐪 Larry Wall Homepage - Prepare your eyes💎 Pearl of great price - The biblical reference that inspired Larry Wall to name Perl🍪 Perl fortunes - Collection of Perl related quotes to be used as a fortune database
🎃 Perl Ecosystem
⛽ CPAN - It is commonly accepted that the Perl killer app is CPAN ("CPAN is the language, Perl is just the syntax" - Audrey Tang)💊 MetaCPAN - Search the CPAN (twitter)
News and forums engines
- 👪 YaBB - Forum engine
💬 Everything Engine - News platform engine and questions/answers platform (PerlMonks is powered by this)👫 Slashcode - News and questions/answers platform engine (Slashdot is powered by this)👪 DuckDuckGo Instant Answer - An aggregator of questions/answers platform (github)
CMS
- 📑 Movable Type - CMS (github)
📃 Imperia CMS - CMS- 💺 ACT - CMS for conferences (github)
- 📝 Bricolage - CMS (github)
- 🍓 Qgoda - Extensible static website generator (github)
📑 Krang - CMS📝 WebGui - CMS📃 Simpleness - CMS📑 Callisto - CMS📝 Spine - CMS📋 XIMS - CMS📝 Blaze Blogger - Static site generator📃 Galileo - CMS📝 Blio - CMS🍺 Labyrinth - Website Management Framework📷 Expose - Static site generator for photoessays- 📑 Contenticious - File based CMS (github)
🍺 CiderCMS - Flexible CMS for small to mid sized websites (github)📝 Gruta - A web content management system (git)📑 Mira - Static website generator (github)- 📝 StaticVolt - Static website generator
📋 Followme - Static website generator- 📑 HiD - Static website publishing framework
📝 Trestle - A light/extensible CMS📑 Mowyw - Static website generator (github)
Blogging
- 👫 Blosxom - Blogging engine
👪 PearlBee - Blogging platform👫 Statocles - Static blog generator (github)💬 Giblog - Static blog generator👪 Plstblog - Static blog generator written by a LinuxFR user- 💬 Riji - Static blog generator (based on Wallflower)
👪 Dreamwidth - Shared blogging👫 Angerwhale - Blogging engine📃 Plerd - A blogging engine based on markdown and dropbox👪 Rapi Blog - Blogging engine (based on RapidApp)👫 Tumblelog - A static microblog generator- 👪 Blawd - A static microblog generator
Mailing lists engines
📫 Sympa - Mailing lists engine📬 Minimalist - Mailing lists engine📪 Dada Mail - Mailing lists engine📭 Majordomo - Mailing lists engine (github)
Email filtering
🔪 SpamAssassin - Email spam filtering📧 Amavis - Email filter interface📬 POP file - Email filtering⛔ ASSP - Anti Spam👐 PostGrey - Postfix policy server implementing greylisting (github)
Communication
🍺 Cider Mail - Webmail application💬 Convos - IRC web client (github)
Monitoring
📈 Munin - Supervision software (like Nagios and Shinken)📉 Monitorix - Lightweight system monitoring tool📊 MRTG - Monitoring traffic load on network links (github)📉 Webmin - Web interface to administer Unix like machines🔍 Open Smart - Network and application monitoring- 📉 Loggerithim - Monitoring and remote management package
📊 OPS View - Network and application monitoring- ⏳ Net Disco - Network management tool
🚬 SmokePing - Monitor network latency (github)📼 Stormons - Monitoring and mapping SAN storage devices.📈 Proclet - Minimalist supervisor🔋 Rainbarf - Fancy resource usage charts⌚ Thruk - Multi-backends web interface for monitoring (github)📈 Mailgraph - Mail statistics graphs (github)
Logs analyzers
- 📈 AWStats - Webserver logs analyzer (github)
- 🐙 Octopussy - Log analyzer (github)
- 📈 Squid Analyzer - Log analyzer (github)
- 📉 W3Perl - Log analyzer
- 📊 Yaala - Log analyzer
- 📈 Log Watch - Log analyzer
🔍 SEC - Log analyzer📡 Cricket - Collect and print data series📉 Torrus - Collect and print data series📊 pgBadger - PostgreSQL log analyzer (github)
Job queues
🐙 Minion - A high performance job queue- 👷 Gearman - Job server
🚟 Qudo - Job queue manager🚞 Resque - Job queue manager- 🚡 TheSchwartz - Job queue manager
- 📡 Helios - Distributed job processing and application framework
Tickets trackers
🐛 Request Tracker - Bug tracker (github)🐝 OTRS - Ticket tracker (github)🐜 BugZilla - Bug tracker (github)🐝 Otobo - Web based ticketing system (github)
Wiki
✏️ Oddmuse - Wiki engine📝 Ikiwiki - Wiki engine✒️ TWiki - Wiki engine🎤 FosWiki - Wiki engine (github)✒️ UseMod - Wiki engine🌠 WikiWikiWeb - First wiki ever🎨 MojoMojo - Wiki engine based on Catalyst📰 Socialtext Open - Wiki engine📎 AmuseWiki - Wiki engine (github)
E-Commerce
💳 Interchange - E-Commerce platform (github)💰 Surf Shop - Shopping cart💸 Agora Cart - Shopping cart📱 Ledger SMB - ERP (github)☎️ SQL-Ledger - ERP
Backup tools
Games
- 🆕 Tau Station - A text based web space game
🔴 Frozen Bubble - Very famous game🎮 Lacuna Expanse - Space game🏠 Construder - Minecraft-like game
Web application frameworks
☁️ Mojolicious - Web framework created by Sebastian Riedel (CPAN profile)💫 Catalyst - Web framework💃 Dancer - Minimalist Web framework created by Alexis Sukrieh (see Dancer 1 and Dancer 2)🐊 Jifty - Web framework- ☁️ Cyclone 3 - Web application framework
- 🐍 Amon - Web application framework (github)
🐑 Poet - Web application framework🐘 Gantry - Web application framework🐦 Kossy - Simple web application framework🐼 Squatting - Web microframework🐺 Tatsumaki - Non-blocking web framework based on Plack and AnyEvent- 🍇 Raisin - REST API micro framework
🐋 Maypole - MVC web application framework🐬 Angelos - Web application framework🐟 Web::Simple - Simple web application framework🐏 Ark - Lightweight Catalyst-ish web application framework🐯 Shenker - Web application framework🐂 Noe - Web application framework🐆 Kamui - Web application framework based on Plack🐌 Web Nano - Really minimalistic web framework.🐁 RapidApp - Web toolkit and framework based on Catalyst (github)- ❄️ Kelp - A web framework light (github)
- 😇 Marquee - Yet another Mojo based web framework
🐷 Piggly - A straight forward PSGI web framework🐛 PEF::Front - A web framework🤖 Web::Machine - A RESTful web framework modeled as a state machine🔥 Combust - A web framework
PSGI adapters and web servers
🐷 Plack - PSGI toolkit and server adapter🐗 HTTP::Server::Simple - Simple standalone HTTP daemon🐯 HTTP::Daemon - Simple http server class🐰 HTTP::Tiny - Minimalist HTTP client🐶 Continuity - Library to simplify web applications (including a web server)🐭 Starman - High-performance preforking PSGI server🐱 Twiggy - AnyEvent HTTP server for PSGI🐻 Starlet - Simple and high-performance PSGI server- 🐸 Corona - Asynchronous PSGI server
🐎 Gazelle - Preforked Plack handler for performance freaks🐴 Arriba - PSGI server with SPDY support🐹 Perlbal - HTTP load balancer🐂 HTTP::Engine - Web server🐕 Feersum - PSGI engine based on EV/libev👹 Server::Starter - Super Daemon to handle hot deployment of server programs- 🐁 Starlight - PSGI/Plack HTTP server with pre-forks
Templating
👋 Mason - Templating system👏 EmbPerl - Templating system🐹 Template Toolkit - Templating system (github)🐍 DTL::Fast - Perl port of Django templating language (github)〰️ Template::Mustache - Templating system Mustache (github)🎨 Template::Flute - Templating system for designers🎤 Text::MicroTemplate - Templating system
Compiler and alternative interpreters
🔧 Compiler Perlito - Perl to Java and Perl to JavaScript💪 RPerl - Restricted Perl, an optimizing compiler (github)🔧 CPerl - Alternative Perl interpreter🔨 TinyPerl - Very compact Perl binary to be shipped with your scripts💸 StaticPerl - Helper script to create self contained statically linked Perl binary + script🔧 Compiler PerlC - Perl to C compiler🐪 Relocatable Perl - Patched Perl binary to make it relocatable👷 Perl Build - A Perl builder- 🔨 Perl Cross - Configure and cross-compile perl
🔧 Stableperl - Perl fork aiming for stability
Perl Application Bundlers / Packagers
🎁 PAR::Packer - Generate standalone executables from Perl programs🐾 Perl Executing Browser - HTML interface for Perl desktop applications💰 PerlApp - Convert Perl program into a standalone application (commercial : part of ActiveState Perl Dev Kit)💵 Perl2Exe - Convert Perl scripts to executable file (commercial)🔩 App::FatPacker - Pack your dependencies onto your script file✨ UsePAR::Packer
,Mojolicious
, andMojolicious::Plugin::Loco
to create self-contained "web" application that runs locally, and uses web browser for GUI.🎁 PPM - Perl Package Manager
Assets management
- 💿 FusionInventory - IT assets web inventory
- 📀 OCS NG - IT assets web inventory
- 📚 Koha - Integrated Library System (gitweb)
- 📗 Evergreen ILS - Library management
Git
- GitWeb - Web interface to git repositories (bundled with git)
🐙 Gitolite - Git hosting (github)🐢 GitPrep - Portable github system (github)🐜 Gitalist - Modern git viewer- 🐗 Girocco - Git hosting system behind the first public git hosting https://repo.or.cz
📊 Git Spark - Plot git commit history with sparklines
Database tooling
💽 MySQL Tuner - MySQL configuration and tuning- 💿 Sqitch - Database change management application
📼 ETL - Data migration helper📀 QDepo - Graphical software to convert various DB data to various office formats💾 Bucardo - Master/slave Postgres replication
IDE
- 💻 Padre - IDE (github) for Windows/OSX/Linux
🚪 🍎 🐧 📺 Open Perl IDE - IDE for Windows 🚪🐫 Plugin for Intellij IDEA - Perl5 support plugin compatible with any JetBrains IDE on Linux/Mac/Windows (github)
Continuous Integration
- 🐫 Crafty - Simple CI server
- 🐧 Open Build Service (partially) - openSUSE Build Service is a continuous packaging platform. See OBS build scripts and OBS backend
💝 Project Builder - Continuous packaging software (trac and sources)🐢 App::Stew - In-app package manager🐌 Repositorio - A tool to mirror and administrate linux repositories (yum, apt, yast, dockerhub...).🌝 OpenQA - Automated test tool based on QEMU (github)- 🔋 Hydra - A Nix-based continuous build system
Desktop Applications
🎥 Shutter - Screenshot utility💻 Ravada - Remote Virtual Desktops Manager✏️ Kephra - Editor- 🍆 GUIDeFATE - Design GUI in ASCII art
Tooling for Devs
👴 GNU Automake - Automatically generates Makefile.in files🔍 Cloc - Count line of code🔧 Devel::hdb - Another Perl debugger- 🎉 Diff So Fancy - The best-lookin' diffs
🔥 Flame Graphs - Profiled code visualization🌈 Markdown - Markdown was initially created by John Gruber and Aaron Schwartz and implemented in Perl (git)- 🔧 Daiku - Kind of make
🔢 PDL - For scientific calculations👜 Fink Project - Tool to help porting software from UNIX like to macOS- 🔄 Reply - Perl REPL
😼 Ack - Grep replacement, optimized for developers (ack 1, ack 2 and ack 3)- 📝 POD Web View - Edit POD file with live preview (github)
🏁 GNU Parallel - Shell tool to execute commands in parallel (github)📺 Hl - PCRE-based highlighter for terminal✂️ Vnlog - A toolkit for manipulating tabular ASCII data- 📈 st - Simple statistics from the command line
Sysadmin
🐕 Rex - A framework to simplify system administration and datacenter automation (github)🚀 Proxmox VE - A virtualization and LXC platform💽 CloneZilla - Partition and disk imaging/cloning program📡 Zevenet - Load balancer (github)♻️ Virtualmin - Hosting and website control panel💊 Pinto - Create local CPAN repositories🔍 Inxi - Print system informations (github)🐮 Cowsay - The cow that can speak🐠 Asciiquarium - An aquarium in your terminal🔞 Web Sorrow - Security scanner👪 LemonLDAP::NG - WebSSO, Access Management and Identity Federation- PacketFence - Network access control (NAC) solution (github)
🐙 Plain VM - Controle multiple VMs🛄 Urpmi - Package manager🎒 Trizen - Lightweight AUR Package Manager📧 Ashafix - Postfixadmin port in Perl↪️ Shorewall - Gateway/firewall configuration tool🔧 NicTool - A DNS management solution (github)🔒 Ferm - A frontend for iptables- 🃏 SQLFairy - Convert SQL statements to graphs (github)
- 💻 RemoteBox - VirtualBox Client with Remote Management
- 🔫 Nipe - Script to make Tor network your default gateway
🤖 Nikto - Webservers security scanner💽 ZnapZend - Backup ZFS with remote capabilities⏰ NTPPool - Virtual cluster of timeservers (github)
Hosting
Uncategorized
- 🍉 OpenFoodFacts - Open database about food
🔩 EPrints - Software to build Open Access repositories (github)🔍 Dezi - Search platform- 🇯🇵 LANraragi - Web application for reading manga
📲 PerlyBook - Convert POD to EPUB/MOBI books🔧 ExifTool - Meta informations reader/writer (github)🐢 BioPerl - BioPerl distribution (github)📹 Youtube Viewer - Search and stream videos on Youtube📄 Po4a - Ease softwares translation (github)🎶 MIDI-Perl HOWTO - Create algorithmic musical compositions
Other Perl lists
- Another Repository List - List of popular git repositories
- 🍸 A Perl Products List - Perl products according to Perl Maven (a lot of them are already in the list above)
🚀 Awesome Perl - Curated list of awesome Perl stuff💜 Awesome Perl (again) - Another curated list of awesome Perl stuff💊 CPAN in a nutshell - List of Perl modules
👻 Execute Perl online
🆕 Perl Banjo - Share runnable Perl code❤️ 💪 (twitter)🍩 WebPerl - WebAssembly + Emscripten (demo and source)🍰 Perlbot - Run and share Perl code
💥 Execute Perl online (sites not dedicated to Perl)
🍌 Tutorial Points🌽 Rextester- 🍪 JDoodle
🍬 TIO - Try It Online- 🍦 Paiza
🍈 Coding Ground- 🍔 JS.do
▶️ Online GDB - Online Perl interpreter- 👅 Glot.io - Runnable, open source pastebin snippets with API
🐻 Lint Perl online
- ⚡ PerlCritic - Web frontend to Perl::Critic
📚 Books
🏫 PerlSchool - Online catalog of low cost high quality Perl books (twitter)📚 Some books and some others
📘 Learning Perl (Llama book) (2021)📙 Perl new features (2021)📘 Preparing for Perl 7 (2020)📘 The best of Perl Hacks (2020)📘 Learning Perl Exercises (2020)📗 Cucumber and Perl (2020)- 📗 Mojolicious Web Clients (2020)
📙 Advanced Perl Programming: From Advanced to Expert (2020)📗 Pro Perl Programming: From Professional to Advanced (2020)- 📙 Perl one-liners cookbook (2020)
📗 Perl Programming for Beginners (2020)📙 Programming Perl (John Bach) (2020)📘 Beginning Perl Programming: From novice to professionnal (2019)📘 Step-by-Step Perl Programming (2019)- 📘 Perl : best 2020 (2019)
🚧 A practical guide to testing (2018)📗 Selenium and Perl (2018)📘 Programming the Raspberry Pi with Perl (2018)📙 Single Page Application with Perl Dancer (2018)📔 Testing Strategies for Modern Perl (2018)📓 Perl Taster (2017)📘 Practical Magick with C, PDL, and PDL::PP (2017)- 📙 Advanced programming in Perl for beginners with example for geoscientists (2016)
📔 Modern Perl (2015)📙 Perl and regular expressions quick start workbook (2015)📙 Perl by example (2014)📗 Penetration Testing with Perl (2014)📗 Language Processing With Perl and Prolog: Theories, Implementation, and Application (2014)📙 Impatient Perl (2013)📘 Perl one liners (2013)📙 Intermediate Perl (Alpaca book) (2012)- 📕 Programming Perl (Camel book) (2012)
📘 Beginning Perl (Curtis "Ovid" Poe) (2012)📓 Perl pocket reference (2011)📗 Perl and Apache: Your visual blueprint for developing dynamic Web content (2011)📘 Perlish Patterns (2011)📓 Effective Perl Programming (2010)- 📙 Catalyst 5.8: the Perl MVC Framework (2010)
📘 Automating System administration with Perl (2009)- 📙 The Definitive Guide to Catalyst (2009)
📘 Learning Perl the hard way (2009)📓 Developing Web Applications with Perl, memcached, MySQL and Apache (2009)📓 Practical text mining with perl (2008)- 📘 Programming for linguist Perl for language researchers (2008)
📓 Mastering Perl (2014)- 📕 Perl programming for the absolute beginner (2007)
📓 Open Source Web Development with LAMP (2007)📘 Mod_perl 2 user guide (2007)📕 Regular Expression Pocket Reference (2007)📕 Perl Golf History (2007)- 📙 Perl Scripting for Windows Security (2007)
📓 Building Web Applications with Gantry and Bigtop (2007)📓 Perl for Exploring DNA (2007)📙 Perl hacks (2006)📗 Perl testing a developer notebook (2006)- 📘 Running weblogs with Slash (2006)
📙 Minimal Perl: For UNIX and Linux People (2006)📘 Building Tag Clouds in Perl and PHP (2006)📗 Wicked Cool Perl Scripts (2006)📘 Perl Power!: The Comprehensive Guide (2006)📘 Advanced Perl Programming (2005)📒 Perl Best Practices (2005)- 📗 Higher Order Perl (2005)
📕 Extreme Programming with Perl (2005)📓 Pro Perl debugging (2005)📓 Pro Perl (2005)📙 Beginning perl web development (2005)📙 RT Essentials (2005)📗 Pro Perl Parsing (2005)📙 Teach Yourself Perl in 24 Hours (2005)- 📕 Beginning Perl (James D Lee) (2004)
📗 Perlish Patterns: Secrets Of The Cpan Masters (2004)📙 Perl Debugger Pocket Reference (2004)📙 Perls of wisdom (2004)📙 Perl Medic: Transforming Legacy Code (2004)📘 On Perl: Perl for Students and Professionals (2004)- 📗 Perl Cookbook (Ram book) (2003)
📘 Perl for dummies (2003)📕 Mastering Perl for Bioinformatics (2003)📘 Web, Graphics & Perl/Tk Programming (2003)📕 Games, Diversions and Perl Culture (2003)📗 Learning Perl Objects References and Modules (2003)📕 Practical Perl with CGI Applications (2003)📗 Perl Template Toolkit (2003)📕 Practical mod_perl (2003)- 📔 Real World SQL Server Administration with Perl (2003)
- 📙 Spidering hacks (2003)
📗 Perl and XML (2002)📙 Perl for Oracle DBAs (2002)📕 Perl & LWP (2002)📙 Perl graphics Programming (2002)📗 Graphic Programming with Perl (2002)📒 Extending and embedding Perl (2002)- 📘 Mastering Perl/Tk (2002)
📘 Mod_perl developer cookbooks (2002)📕 Embedding Perl in HTML with MASON (2002)📔 Web Services with Perl (2002)📓 Perl for C programmers (2002)📗 Writing Perl Modules for CPAN (2002)📕 Perl Developer's Dictionary (Clinton Pierce) (2002)📗 Computer Science & Perl Programming (2002)📓 Teach Yourself Perl in 21 Days (2002)📙 Programming PERL in the .NET Environment (2002)📘 Perl How to program (2002)- 📘 Essential Perl (2002)
📙 Instant CGI/Perl (2001)- 📓 Data Munging with Perl (2001)
- 📔 MySQL and Perl for the Web (2001)
📔 Perl black book (2001)📓 Network programming with Perl (2001)📔 Writing CGI applications with Perl (2001)📘 Total Perl (2001)📕 Perl for the Web (2001)📘 Beginning Perl for bioinformatics (2001)📗 Mod_perl pocket reference (2001)📙 Core Perl (2001)📙 Perl for website management (2001)- 📓 Picking up Perl (2001)
- 📘 Perl 5 internals (2001)
📘 Perl 5 Interactive Course (2001)📘 Perl Web Site Workshop (2001)📙 The Complete Reference: Perl (2001)📗 Custom CGI scripting with Perl (2001)📓 Professional Perl development (2001)📗 Perl Debugged (2001)📗 Win32 Perl Programming: The Standard Extensions (2001)📗 Beginning Perl (Simon Cozens) - Free E-Book (2000)- 📘 Perl for system administration (2000)
📗 Database programming with Perl: Programming the perl DBI (2000)- 📓 CGI programming with Perl (2000) (CGI Programming on the World Wide Web)
📓 Object Oriented Perl (2000)📘 Cross Platform Perl (2000)📙 Elements of Programming with Perl (1999)📙 Perl core language little black book (1999)- 📓 Mastering algorithms with Perl (1999)
📘 Practical Perl Programming (1999)- 📗 Writing apache modules with Perl and C (1999)
- 📗 Learning Perl/Tk (1999)
📘 Automating Windows with Perl (1999)- 📙 Programming Web Graphics with Perl and GNU Software (1999)
📙 Perl/Tk Pocket Reference (1998)- 📕 Perl in a nutshell (1998)
📘 Perl annotated archives (1998)📙 MacPerl: Power and Ease (1998)- 📘 Official Guide to Programming with CGI.pm (1998)
📗 Perl from the ground up (1998)📘 Go to Perl 5 (1998)📙 Perl Power!: A JumpStart Guide to Programming with Perl 5 (1998)📗 Perl 5 Complete (1998)- 📓 Perl the programmer's companion (1997)
📗 Programming with Perl modules (1997)📘 Kit 2: Cgi with Perl Vb and C (1997)📗 The CGI/PERL Cookbook (1997)📔 Web Programming with Perl 5 (1997)- 📓 CGI Developer's Resource: Web programming in Tcl and Perl (1997)
📓 Web Client Programming with Perl (1997)📙 Learning Perl on Win32 Systems (1997)📕 Developing CGI Applications with Perl (1996)📙 Teach Yourself CGI Programming with Perl 5 in a week (1996)📙 Web Programming Secrets With Html, Cgi, and Perl (1996)📘 Creating cool web pages with Perl (1996)
🇯🇵
Other books 📗 Essence of Perl Text Processing (2021)📘 Perl programming poisoning🇯🇵 (2004)📙 Perl programming for CGI and text processing🇯🇵 (2001)- 📙 Introduction to Perl 🇯🇵 (1994)
📘 Welcome to Perl Country🇯🇵 (1993)📘 Perl Writing Methods🇯🇵 (1993)
Other books 🇫🇷
- 📗 Les fondamentaux du langage Perl 5 : Apprentissage par la pratique (Philippe Banquet) 🇫🇷 (2013)
📘 Perl moderne🇫🇷 (2012)📙 Apprenez a programmer en Perl (Open Classroom)🇫🇷 (2012)📙 Perl pour l’impatient🇫🇷 (2005)- 📗 De Perl a Java : Programmation des expressions regulieres 🇫🇷 (2004)
- 📙 Perl 5 (Cyril Vincent) 🇫🇷 (2002)
📗 Visuel Pro Perl🇫🇷 (2001)📘 Perl 5 (Clinto Pierce)🇫🇷 (2001)- 📙 Perl 5 (David Till) 🇫🇷 (2000)
📘 Perl mini-reference🇫🇷 (2000)📗 L'intro Perl 5🇫🇷 (2000)
🚀 Develop with Perl
⬇️ Install CPAN modules
The modern way is to use cpanm (cpanminus). The tool is able to get the requested module and resolve dependencies. For instance, to install the excellent module XML::LibXML from Shlomif which is a wrapper of libxml2, we can do sudo cpanm XML::LibXML
, that produces the following output (truncated) :
--> Working on XML::LibXML
Fetching http://www.cpan.org/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0201.tar.gz ... OK
==> Found dependencies: Alien::Libxml2
--> Working on Alien::Libxml2
Fetching http://www.cpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.09.tar.gz ... OK
[...]
Building and testing Alien-Libxml2-0.09 ... OK
Successfully installed Alien-Libxml2-0.09
Configuring XML-LibXML-2.0201 ... OK
Building and testing XML-LibXML-2.0201 ... OK
Successfully installed XML-LibXML-2.0201 (upgraded from 2.0128)
13 distributions installed
Reinstalling a set of CPAN modules can be done simply by launching a bunch of cpanm
commands or by specifying dependencies in a cpanfile (and using then carton or cpanm --installdeps .
for the setup).
✔️ Linters
Executable by hand or directly integrated in your scripts, IDE or editors (vim users : ale or syntastic).
-
perl -c
, to check the syntax. Be careful that it does more than only checking syntax, it actually executes the blocksBEGIN
andEND
(compilation step). This design is the reason why the default linter used by the plugin vim ale is no longerperl -c
(nor evenperl -w
). The syntax checking in Perl is great (as well as the error messages from the interpreter... I❤️ Perl) -
Perl::Critic, that criticizes your coding style but do not check syntax. For instance, the file
bad.pl
contains :
use strict;
print "toto" }{
And perl -c bad.pl
prints :
Unmatched right curly bracket at bad.pl line 3, at end of line
syntax error at bad.pl line 3, near ""toto" }"
Missing right curly or square bracket at bad.pl line 3, at end of line
bad.pl had compilation errors.
But perlcritic bad.pl
tells us that everything is fine bad.pl source OK
(but is not happy with the missing use strict
).
- A module that was part of the core distribution of Perl but was finally removed in Perl 5.19 : B::Lint.
While we are here, how to know the history of a module in the core distribution ? Use corelist !
corelist B::Lint
that gives us :
Data for 2017-09-22
B::Lint was first released with perl 5.005, deprecated (will be CPAN-only) in v5.17.9 and removed from v5.19.0
If a module goes out of core distribution it's not dramatic as it continues to be available in CPAN of course.
- And Perl::Lint that focuses on speed while being compatible with Perl::Critic.
⚒️ How to compile perl
Actually it will give this :
wget https://www.cpan.org/src/5.0/perl-5.30.0.tar.gz
tar -xzf perl-5.30.0.tar.gz
cd perl-5.30.0
./Configure -des -Dprefix=$HOME/localperl
make
make test
make install
💊 Compile modules
If we decide to use or not a module like cpanm, at the end the module is compiled using ExtUtils::MakeMaker or Module::Build. ExtUtils::MakeMaker is a core module, while Module::Build was added then removed (5.9 → 5.19). David Golden explains in a blog post why he requested to remove Module::Build.
ExtUtils::MakeMaker
The module ExtUtils::MakeMaker generate a Makefile from Makefile.PL
:
perl Makefile.PL
make
make install
Module::Build
The module Module::Build serves the same goal but generates a file Build from the file BUILD.PL
:
perl Build.PL
./Build
./Build test
./Build install
🎧 How to contribute ?
Please read CONTRIBUTING.md
🙇 Contributors
Thank you to all the fantastic contributors