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.
- 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
- Angular JS
- Flask, the Python microframework.
- Groovy, the programming language used for Jenkins pipelines.
- Jenkins, the automation server used for Continuous Integration and Continuous Delivery.
A few days ago, one of the Perl Maven readers asked me about indexing in arrays in Perl, and then he was wondering if arrays that only have elements in some high index are sparse arrays? In other words if we have an array with a single value at index 1,000,000 does Perl allocate space for all the preceding 1,000,000 elements, or is does it take up place for the single element in the array.
In yet other words, how much memory does this use?
my @a; $a[1_000_000] = 1;
When calling a function in recursion we have to be careful to check the stop condition before we call the recursion. If not, we can end up with an infinite recursion that will end only when we have exhausted the resources of our computer.
In order to protect the user from never ending recursions, perl has a hard limit on the number of recursion and if you reach that limit you'll get a warning: Deep recursion on subroutine. The rather arbitrary limit is 100.
Let's see an example.