Perl Maven

Search for '{{search_term}}'

Would you like to know more about technology?
Do you have time while you commute to work or back home?
Try the new Code-Maven Open Source podcast.

Perl tutorials and courses

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

Projects and Collections

Code-Maven series

If you are a beginner, or would like to refresh your Perl programming knowledge, you can go over the Perl tutorial or watch the Beginner Perl Maven video course.

If you need to maintain a large piece of software written in Perl by other people in the last 5-10-15 years, that's a challenge. Especially if you did not get proper training in Perl. You are probably limited to a specific and old version of Perl. Check out, the Perl tutorial! You can probably skip the part about installing Perl, but the rest of the tutorial will be relevant for you.

Perl is often used in Test Automation. If you work in this field, or if you'd like to work in this field (it is much more fun to find bugs in other people's code than in yours :), then you can read the Perl tutorial and the series on Test Automation using Perl.

If you build new web applications - either privately or inside a company - you can start by reading the article comparing CGI, mod_perl and PSGI. From there you can go on reading the generic Perl tutorial or the articles on Mojolicious, Perl Dancer, Catalyst, PSGI/Plack, or even CGI, the Common Gateway Interface, for old-school web applications.

Recent Articles

Classes as constraints in Moose

In the previous example of the Moose series we had an attribute called "year" that was accepting a number. What if we really want to have an attribute called birthday, that contains a real date. Instead of handling the dates by ourself we would like to use a module that already handles them nicely. For example, we would like to use the DateTime module.


Classes as constraints in Moose


Pro: Static web server in Python

When I've started to work on the Code And Talk site I did not know what I was building. I actually started out by collecting data about podcasts. I did not use a database but I wanted to have some kind of a display.

So instead of creating a dynamic site I opted for a static site that can be generated by a script and a few templates.

Such site can be served using Apache or Nginx, but on my development machine I don't have either of those. So I wrote a small web server serving the static files.


Static web server in Python


Pro: Modulino: both script and module in Perl

In the Python world it is quite straight forward to make files work either as executables or as modules. In Perl it is a bit strange, but doable.

brian d foy has written a number of articles about Modulinos, but in nutshell a Modulino is a Perl file that can act both as an executable (a script that you would invoke directly) or as a module (Something you load into memory and expect to execute code only when you call one of its functions or methods).


Modulino: both script and module in Perl