List of resources about Perl ๐ช
Perl 5 raptor from kraih, licence CC-BY-SA 4.0
Derivated from LinuxFR french article Pour tout savoir du Perl post-moderne
As a reminder, Perl is a general-purpose progamming langage 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 git - Where is located the Perl interpreter source code (as of today) and its github mirror
- ๐ Perl bug tracker - Uses Perl software Request Tracker the ticketing system
- ๐ซ 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
- ๐บ All changelogs - All changelogs
- ๐ Very detailed history of Perl versions - Date and major changes from Perl creation to today
- ๐ต Depreciations - The latest list of deprecated symbols
- ๐ง Portability - Perl supports more than 100 platforms
- ๐ perl.org - The Perl's "home"
- ๐ฐ Perl Fundation - The Perl fundation
- ๐ White Camel Awards - Yearly awards for important contribution to Perl (not only with code)
- ๐ cpanm - Modern CPAN modules installer by Tatsuhiko Miyagawa (CPAN profile)
- ๐จ Perlbrew - Perl binaries installer
- ๐ง plenv - Another Perl binaries handler. Differences between perlbrew and plenv
- ๐จ berrybrew - The perlbrew for Windows Strawberry Perl
- ๐ Perl carton - A bundler for Perl (uses cpanfile)
- ๐ 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)
- ๐ณโโ๏ธ 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 tool
corelist
- ๐ Perl Maven - A huge website about Perl
- ๐ Perl Meme - A website about Perl (tutorials, FAQ and more)
- ๐ซ Enlightened Perl - An organization supporting Perl
- ๐ CPAN Deps - List dependencies from a CPAN module
- ๐ CPAN Doc - Documentation of some important modules
- โ๏ธ CPAN Testers - Build and test reports of CPAN modules
- ๐ BackPAN - The CPAN with all history
- ๐ฌ PrePAN - Discuss modules before CPAN upload
- ๐ 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)
- ๐ฌ Perl Reddit - Subreddit for Perl
- Perl Mongers - Perl Mongers
- French Perl Mongers - French Perl Mongers group
- ๐ฏ๐ต Perl Entrance - Sort of Perl Mongers group in Japan
- ๐ฌ IRC channels - IRC channels for the french mongers, mojolicious, dancer, catalyst, etc...
- ๐ญ Perl Weekly Challenge - Friendly coding competition
- ๐ฐ The Perl Journal - E-Zine about Perl
- ๐ Perl Advent Calendar - Avent 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
- ๐ Perl Sphere - Newsfeed
- ๐ฐ Medium Perl tag - Newsfeed
- ๐ฐ Perl Buzz - Newsfeed
- ๐ Perl.com - Recent domain (despite its name....), a newsfeed
- ๐ Weekly Newsletter - Newsletter gathering Perl news and links
- ๐ซ Blogs about Perl - Blog service for Perl folks
- ๐ช Nice Perl blog - An important blog
- ๐ฌ Cultured Perl - A Blog about Perl
- ๐ซ Perl Hacks - Just another Perl Hacker's blog
- ๐ฒ 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 - Sud American flavor of YAPC
- ๐ YAPC::RUSSIA - Russian flavor of YAPC
- ๐ญ YAPC::AUSTRALIA - Australian flavor of YAPC
- โ๏ธ Perl QA Hackathon
- ๐ช Perl Toolchain Summit
- ๐ฝ 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 FAQ - Perl FAQ table of content (several FAQ pages)
- ๐ฃ Perlre - Regular expression documentation and tuto 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
- ๐ง Degugger documentationโฏ- The Perl debugger is itself written in Perl :muscle:โฏ
- ๐ฝ perlobj and tuto oo - Object Oriented Programming in Perl
- ๐ Perl Maven
- ๐ 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
- ๐ง Perl Newbie
- โ๏ธ Exercism.io - Learn Perl with code practice and mentorship
- ๐ Guide Perl
- ๐ Formation-Perl
- ๐ Guide de programmation pour apprendre Perl
- ๐ Site du zero
- ๐ซ Cours de l'Universitรฉ de Rennes
- ๐Perltuts - Learn modern Perl any time and from everywhere ๐
- ๐ Learn Perl - Free interactive Perl tutorial ๐
- ๐ซ TryPerl - TryRuby clone for Perl โค๏ธ (github)
- ๐ Perl tutorials - Perl tutorials meta site
- ๐ฃ "Perl" vs "perl" - Perl is the langage, perl is the interpreter, PERL is how you catch newbies ๐ถ
- JAPH - Just Another Perl Hacker
- ๐ PerlSecret - Secrets 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
- ๐ถ The Perl poetry and for instance the poem Black Perl from Larry Wall
- โณ 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 ๐ผ
- ๐ฉ PHP was sometimes refered 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)
- ๐ Perl is often considered as being the duct tape of the Internet
- ๐ช Larry Wall Homepage - Prepare your eyes
- โฝ 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
- ๐ช 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)
- ๐ Movable Type - CMS
- ๐ Imperia CMS - CMS
- ๐บ ACT - CMS for conferences (github)
- ๐ Bricolage - CMS (github)
- ๐ Krang - CMS
- ๐ WebGui - CMS
- ๐ Simpleness - CMS
- ๐ Callisto - CMS
- ๐ Spine - CMS
- ๐ XIMS - CMS
- ๐ Blaze Blogger - CMS
- ๐ Galileo - CMS
- ๐ Blio - CMS
- ๐ท Expose - Static site generator for photoessays
- ๐ซ Bloxsom - Blog 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
- ๐ซ Sympa - Mailing lists engine
- ๐ฌ Minimalist - Mailing lists engine
- ๐ช Dada Mail - Mailing lists engine
- ๐ญ Majordomo - Mailing lists engine (github)
- ๐ช SpamAssassin - Email spam filtering
- ๐ง Amavis - Email filter interface
- ๐ฌ POP file - Email filtering
- โ ASSP - Anti Spam
- ๐บ Cider Mail - Webmail application
- ๐ง Ashafix - Postfixadmin port in Perl
- ๐ Munin - Supervision software (like Nagios and Shinken)
- ๐ Monitorix - Lightweight system monitoring tool
- ๐ MRTG - Monitoring traffic load on network links
- ๐ 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
- ๐ฌ Smoke Ping - Monitor network latency
- ๐ผ Stormons - Monitoring and mapping SAN storage devices.
- ๐ Proclet - Minimalist supervisor
- ๐ Rainbarf - Fancy resource usage charts
- ๐ AWStats - Weberver logs analyzer (github)
- ๐ Octopussy - Log analyzer (github)
- ๐ Squid - Log analyzer
- ๐ 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
- ๐ Minion - A high performance job queue
- ๐ท Gearman - Job server
- ๐ Qudo - Job queue manager
- ๐ Resque - Job queue manager
- ๐ก TheSchwartz - Job queue manager
- ๐ Request Tracker - Bug tracker (github)
- ๐ OTRS - Ticket tracker (github)
- ๐ BugZilla - Bug tracker (github)
- โ๏ธ Oddmuse - Wiki engine
- ๐ Ikiwiki - Wiki engine
- ๐ TWiki - Wiki engine
- โ๏ธ FosWiki - Wiki engine (github)
- ๐ณ Interchange - E-Commerce platform
- ๐ฐ Surf Shop - Shopping cart
- ๐ธ Agora Cart - Shopping cart
- โ๏ธ Ledger SMB - ERP
- ๐พ RSnapshot - Backup utility based on rsync
- ๐ฝ ABT - Another Backup tool
- ๐ฟ Backup PC - Backup tool
- ๐ Tau Station - A text based web space game
- ๐ด Frozen Bubble - Very famous game
- ๐ฎ Lacuna Expanse - Space game
- ๐ Construder - Minecraft-like game
- โ๏ธ 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
- ๐ 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
- ๐ Raison - 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.
- ๐ท 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
- ๐ Mason - Templating system
- ๐ EmbPerl - Templating system
- ๐ DTL::Fast - Perl5 port of Django templating language (sources)
- ๐ง Compiler Perlito - Perl to Java and Perl to JavaScript
- ๐ช RPerl - Restricted Perl, an optimizing compiler (github)
- ๐ง CPerl - Alternative Perl interpreter
- ๐ PAR:Packer - Generate standalone executables
- ๐จ 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
- ๐ฟ FusionInventory - IT assets web inventory
- ๐ OCS NG - IT assets web inventory
- ๐ Koha - Integrated Library System (gitweb)
- ๐ Evergreen ILS - Library management
- GitWeb - Web interface to git repositories (bundled with git)
- ๐ Gitolite - Git hosting (github)
- ๐ข GitPrep - Portable github system (github)
- ๐ฝ 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
- ๐ป 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 (sources)
- ๐ซ Crafty - Simple CI server
- ๐ง A part of openSUSE Buid Service (github d'OBS build scripts and OBS backend) and other repositories on openSUSE github - The Open Build Service platform is an infrastructure to build packages for multiple package managers and distributions and architectures.
- ๐ข App::Stew - In-app package manager
- ๐ฅ Shutter - Screenshot utility
- ๐ป Ravada - Remote Virtual Desktops Manager
- ๐พ Perl Executing Browser - HTML5 user interface for Perl 5 desktop applications
- โ๏ธ Kephra - Editor
- ๐ GUIDeFATE - Design GUI in ASCII art
- ๐ด 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
- ๐ง 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
- ๐ฒ POD Web View - Edit POD file with live preview
- ๐ Pinto - Create local CPAN repositories
- ๐ฎ Cowsay - The cow that can speak
- ๐ Web Sorrow - Security scanner
- ๐ช LemonLDAP::NG - WebSSO, Access Management and Identity Federation
- ๐ Plain VM - Controle multiple VMs
- ๐ Urpmi - Package manager
- ๐ OpenFoodFacts - Open database about food
- ๐ฉ EPrints - Software to build Open Access repositories (github)
- ๐ Dezi - Search platform
- PRC - Linking maintainers with contributors
- ๐ฏ๐ต LANraragi - Web application for reading manga
- ๐ซ Nipe - Script to make Tor network your default gateway
- 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
- ๐ Perl Banjo - Share runnable Perl code โค๏ธ ๐ช
- ๐ฉ Web Perl - WebAssembly + Emscripten (demo and source)
- ๐ฌ TIO - Try It Online
- ๐ฐ Perlbot - Run and share Perl code
- ๐ Tutorial Points
- ๐ฝ Rextester
- ๐ช JDoodle
- ๐ฆ Paiza
- ๐ Coding Ground
- ๐ JS.do
โถ๏ธ Online Perl Interpreter - Code, Compile, Run and Debug Perl script online
- โ๏ธ Kritika.io - Static code analyzer
- โก PerlCritic - Web frontend to Perl::Critic
- ๐ Some books and some others
- ๐ Programming Perl (Camel book)
- ๐ Perl cookbook (Ram book) - read online
- ๐ Learning Perl (Llama book)
- ๐ Intermediate Perl (Alpaca book)
- ๐ Mastering Perl
- ๐ Modern Perl
- ๐ Perl Best Practices
- ๐ Perl hacks
- ๐ High Order Perl
- ๐ Beginning Perl (Curtis "Ovid" Poe)
- ๐ Beginning Perl (Simon Cozens) - Free E-Book
- ๐ Beginning Perl (James D Lee)
- ๐ Perl pocket reference
- ๐ง A practical guide to testing
- ๐ XML and Perl
- ๐ Perl and XML
- ๐ Perl for system administration
- ๐ Programming the perl DBI
- ๐ CGI programming with Perl
- ๐ Perl & LWP
- ๐ Perl graphics Programming
- ๐ Perl for dummies
- ๐ Mastering algorithms with Perl
- ๐ Impatient Perl
- ๐ Extreme Perl
- ๐ Web, Graphics & Perl/Tk Programming
- ๐ Games, Diversions and Perl Culture
- ๐ Perl Template Toolkit
- ๐ Web Services avec Perl
- ๐ Perl for Oracle DBAs
- ๐ Advanced Perl Programming
- ๐ Perl Testing
- ๐ Practical vim
- ๐ Perl one liners
- ๐ Practical mod_perl
- ๐ Mod_perl pocket reference
- ๐ Mod_perl 2 user guide
- ๐ Object Oriented Perl
- ๐ Perl in a nutshell
- ๐ Perl testing a developer notebook
- ๐ Beginning Perl for bioinformatics
- ๐ Mastering Perl for Bioinformatics
- ๐ Network programming with Perl
- ๐ Perl by example
- ๐ Perl black book
- ๐ Extending and embedding Perl
- ๐ Mod_perl developer cookbooks
- ๐ Effective Perl programming
- ๐ Perl core language little black book
- ๐ Writing apache modules with Perl and C
- ๐ Running weblogs with Slash
- ๐ Core Perl
- ๐ Perl for the Web
- ๐ Data Munging with Perl
- ๐ MySQL and Perl for the Web
- ๐ Open Source Web Development with LAMP
- ๐ Learning Perl/Tk
- ๐ Mastering Perl/Tk
- ๐ Perl/Tk Pocket Reference
- ๐ Pro Perl debugging
- ๐ Regular Expression Pocket Reference
- ๐ Perl Debugger Pocket Reference
- ๐ Writing CGI applications with Perl
- ๐ Automating System administration with Perl
- ๐ Minimal Perl
- ๐ Embedding Perl in HML web MASON
- ๐ Perl for website management
- ๐ Picking up Perl
- ๐ Real World SQL Server Administration with Perl
- ๐ Perl 5 internals
- ๐ Practical text mining with perl
- ๐ Beginning perl web development
- ๐ Programming for linguist Perl for language researchers
- ๐ Perl for C programmers
- ๐ Effective Perl programming
- ๐ Learning Perl the hard way
- ๐ Perl the programmer's companion
- ๐ Programming with Perl modules
- ๐ Beginning Perl Web development from novice to professional
- ๐ Single Page Application with Perl Dancer - E-Book about Dancer webframework
- ๐ง Mojolicious book
- ๐ Perl Golf History - E-Book about coding competition
- ๐ Testing Strategies for Modern Perl
- ๐ A practical guide to testing in modern Perl
- ๐ RT Essentials
- ๐ Automating Windows with Perl
- ๐ Perl Developer's Dictionary
- ๐ Instant CGI/Perl
- ๐ Web Programming with Perl 5
- ๐ Official Guide to Programming with CGI.pm
- ๐ CGI Developer's Resource: Web programming in Tcl and Perl
- ๐ Cross Platform Perl
- ๐ Developing CGI Applications with Perl
- ๐ Perl 5 Interactive Course
- ๐ Teach Yourself CGI Programming with Perl 5 in a week
- ๐ Penetration Testing with Perl
- ๐ Hands-On Penetration Testing with Python
- ๐ Perl Scripting for Windows Security
- ๐ Perl and Apache: Your visual blueprint for developing dynamic Web content
- ๐ Developing Web Applications with Perl, memcached, MySQL and Apache
- ๐ Minimal Perl: For UNIX and Linux People
- ๐ Building Tag Clouds in Perl and PHP
- ๐ Wicked Cool Perl Scripts
- ๐ Pro Perl
- ๐ Perl Medic: Transforming Legacy Code
- ๐ Computer Science & Perl Programming
- ๐ Programming PERL in the .NET Environment
- ๐ Teach Yourself Perl in 21 Days
- ๐ Teach Yourself Perl in 24 Hours
- ๐ Perl Debugged
- ๐ Programming Web Graphics with Perl and GNU Software
- ๐ Web Client Programming with Perl
- ๐ Learning Perl on Win32 Systems
- ๐ Win32 Perl Programming: The Standard Extensions, Second Edition
- ๐ Welcome to Perl Country ๐ฏ๐ต
- ๐ How to Write Perl ๐ฏ๐ต
- ๐ Introduction to Perl ๐ฏ๐ต
- ๐ Philippe Banquet, Les fondamentaux du langage Perl 5 : Apprentissage par la pratique ๐ซ๐ท
- ๐ Perl moderne ๐ซ๐ท
- ๐ Perl reference de poche ๐ซ๐ท
- ๐ Perl en action ๐ซ๐ท
- ๐ Introductions a Perl/Tk: Interfaces graphiques avec Perl ๐ซ๐ท
The modern way consists 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).
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 eveything 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.
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
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.
The module ExtUtils::MakeMaker generate a Makefile from Makefile.PL
:
perl Makefile.PL
make
make install
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
Please read CONTRIBUTING.md