Github, Travis-CI and Perl

Last night we held a London Perl Mongers Technical Meeting. It was organised by Sue Spence and the venue was sponsored by Rick Deller of Eligo.

Much fun was had and much knowledge was imparted. Alex Balhatchet spoke about Test::Kit. Andrew Solomon talked about training people in Perl. Thomas Klausner introduced OX and AngularJS. And Mike Francis talked about using Web::Simple and Web::Machine to build a REST interface to a database – only to be told that Tim Bunce had just released a module that solved all of his problems.

Oh, and I wittered on a bit about using Perl with Github and Travis-CI. The slides are below.

Thanks to everyone for organising, speaking or just coming along.

By Dave Cross

Dave Cross runs Magnum Solutions Ltd., a London Perl consultancy. In 1998 he started London Perl Mongers, the first Perl Mongers group outside of Northern America. He is the author of Data Munging with Perl and a co-author of Perl Template Toolkit.


  1. Awesome set of slides, I did however run into an issue with your example when overwriting the install action and I had to manually add the default behavior like so:

    cpanm –quiet –installdeps –notest . && cpanm –quiet –notest \

    Just for the record, take care,


  2. Hi Dave,

    I have had your example of integrating with coveralls running overnight for a single project. I am using Devel::Cover 1.15 and I am not get the same coverage as when using Module::Builds testcover action

    When using Module::Build I get 100% and when I use your example I only get 99.6% simply due to the inclusion of prove in the report. cover -test renders the same result as Module::Build, so something weird happens when using prove.

    So in order to leave prove out of the coverage you need to do something along the lines of:

    PERL5OPT=-MDevel::Cover=”-coverage,statement,branch,condition,path,subroutine+ignore=prove” prove -lrsv t

    Thanks again for awesome slides,


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.