Build your own (faster) perl

March 27th, 2010

Using the perl that comes with your distribution is usually fine, but it has some limitations. When building a perl for a distribution it needs to be versatile and fit various needs. Therefor ithreads, the perl specific threading implemenation, is enabled there, to allow building modules that require threads to be available.

The downside is, that this threading code adds some quite low-level overhead, which usually means that a perl compiled with threads takes a performance hit of up to about 10%. So it sometimes makes sense to build your own perl, especially if you know it’s going to be used more on the server side, for long-running processes. Saving 10% in CPU cycles means potential for 10% in power saving or giving other processes a chance to run.

Building perl is really straightforward and usually just takes these steps:

  • Download the latest stable Perl from
  • Unpack it to a temporary directory
  • sh Configure -de -Dprefix=/opt/perl5
  • make && make test && make install
  • Perl is now installed in /opt/perl5

Now you can add any additional modules that you like, some recommended ones are:

  • App::cpanminus
  • Task::Kensho
  • Task::Plack
  • Task::KiokuDB
  • Mojolicious
  • Starman
  • Starlet
  • EV
  • AnyEvent
  • AnyEvent::MP
  • DBIx::Class
  • MongoDB
  • Data::FormValidator

Using the newly built perl just requires to update your path before starting your perl programs:

  • export PATH=/opt/perl5/bin:$PATH
  • /usr/local/bin/myperlprog

After setting the PATH just verify with perl -v that your perl include path points to /opt/perl5 (or any other path you chose).

Quikplan – Ein neues Catalyst Perl / jquery javascript Projekt

July 4th, 2008

Mein neues Projekt Quikplan geht an den Start. Gemeinsam mit Chris entsteht eine Kursplanungssoftware die speziell auf die Anforderungen einer Kletterhalle (oder ähnlichem) getrimmt ist.

Als Backend dient Catalyst Perl mit diversen weiteren Modulen (Moose, DBIx::Class, …) getrennt über ein JSON basierendes API. Das Frontend ist eine Web 2.0 Applikation basierend auf jQuery und einen eigens dafür erstellten Framework für einfaches und konsistentes GUI Handling.

Die ersten Erfahrungen mit Moose sind sehr vielversprechend und die erste Klasse (ein TransactionManager als Zwischenlayer zu den DBIC/DBI Transaktionen) ist bereits erstellt.

Für mehr Informationen: bzw. ein Mail auf die Reise schicken (info A T quikplan D O T at).