Perl tutorials and courses
- Perl Tutorial just a plain Perl tutorial. Nothing fancy.
- Beginner Perl Maven video course slidecast of the training material.
- Advanced Perl Maven video course mixed slidecasts, screencasts and plain articles.
- Test Automation using Perl for people who really want to sleep well.
Modern Perl Web Frameworks
- Mojolicious light-weight web framework with rainbows and unicorns.
- Perl Dancer light-weight web framework to rock.
- Catalyst The MVC web framework of Perl.
- PSGI/Plack, the low-level superglue between Perl web application frameworks and web servers.
- CGI, the Common Gateway Interface, for old-school web applications.
Object Oriented Perl
- OOP, the classic way to write Object Oriented Perl code.
- Moo, the Minimalist Object Oriented system for Perl.
- Moose, the 'post modern' Object Oriented system for Perl.
Other Series
- Perl and MongoDB, the NoSQL database used in Perl programs.
- AnyEvent, asynchronous programming.
- Net::Server the framework to build TCP/IP servers.
- MetaCPAN - articles for CPAN users, CPAN authors, client developers, and MetaCPAN developers.
- Perl Maven TV Show is a collection of interviews with Perl developers.
- SVG - Scalable Vector Graphics
Projects and Collections
- The search.cpan.org cloning project - Implementing a CPAN search engine using Plack/PSGI with MetaCPAN back-end.
- Command line phonebook with MongoDB and Moo
- Indexing e-mails in an mbox
- Counter Examples Various solution on the simple task of building a counter.
- Becoming a co-maintainer of a CPAN module - refactoring a CPAN module
- Perl::Critic lint-like static analyzer for Perl.
- Implementing a Markua Parser in Perl 5
Code-Maven series
- Angular JS
- Ansible
- Flask, the Python microframework.
- Groovy, the programming language used for Jenkins pipelines.
- Handlebars the HTML templating system written in JavaScript.
- Java
- JavaScript
- Jenkins, the automation server used for Continuous Integration and Continuous Delivery.
- Linux
- NodeJS - Server side JavaScript
- PHP
- Python
- Ruby
- SVG, Scalable Vector Graphics examples in JavaScript and Python.
Recent Articles
One-liner: Remove first two characters of every line
In a project creating a Ladino dictionary in which I have a few thousands of YAML files. They used to include lists of values, but a while ago I split them up into individual entries. I did this because the people who are editing them are not used to YAML files and it makes it a lot easier to explain them what to do.
However the previous change left me with 1-item lists in each file. I wanted to clean that up.
one-liner: read first elements of a huge directory
At a client we have a networked disk with millions of files. I was trying to list the first few files to see what's going on.
ls -l | head takes ages, but here is a Perl one-liner to make it work:
Set HTTP headers with WWW-Mechanize
Perl has several modules on several levels of abstraction to interact with web sites using HTTP requests. One of the nice modules is WWW::Mechanize that is built on top of LWP::UserAgent. In this example we'll see how to set the header in the HTTP request using WWW::Mechanize.
We'll use the service provided by the httpbin.org web site to see the headers we set.
It has many end-points. We use the one that will send back the header the client sent as its content. It makes it very easy to see what was in our header.