AppVeyor combined Linux and Windows Perl module testing

AppVeyor is starting to support Ubuntu builds so I’m playing with some configurations for that by adjusting the pure Windows config I wrote about earlier. » Read more…

List comprehensions in Perl (almost)

[I wrote this about two years ago and waited for some inspiration that would make it a little better. That inspiration never showed up. In the new year I’m cleaning out all the draft articles though.]

I went off to see what list comprehensions are all about. Lately I’ve run across several bits of Python I’ve wanted to use. I don’t mind Python so much but I’m certainly rusty; I spend some time on StackOverflow where I run into the term “list comprehension” quite a bit. They sure like whatever that is so I went off to investigate. Someone might want one of those in Perl, hence the click-baity title of this post (a better one might be “12 Ways to…”). » Read more…

Skipping automated coverage testing for v5.8 on Travis

Previously I had a kludge to allow coverage testing on v5.8 through Travis CI. I used cpanm to install exactly Devel::Cover 1.23 because it supported v5.8. The problem now is that it doesn’t support v5.26 and my automated testing fails. » Read more…

Automated Testing on Windows with AppVeyor

You can test Perl on Windows with continuous integration through AppVeyor. I previously showed an example of with Travis CI but that was limited to Linux. You can easily set up an account through GitHub (or other means), select projects to test, and let it do its work. » Read more…

Using an older version of Devel::Cover to test v5.8

I’ve had a problem with automated coverage testing and v5.8 (the oldest Perl that I support). Devel::Cover made some changes after 1.23 so that it doesn’t guarantee support for v5.8 and earlier. It might work but you’re lucky if it is. » Read more…

Automated testing with Travis CI

Intermediate Perl shows the basics of Perl testing. We show you how to write test programs and how to run those from the command line. That’s the language-specific stuff and within the scope of the book. You can take it further though. You can set up your code in a “continuous integration” system that runs the tests whenever you commit change (most of these trigger on a source control commit). You commit your code and grab some more coffee while your tests trigger themselves. Martin Fowler has some interesting thoughts on CI and wikipedia has a comparison matrix of CI services. » Read more…

Trying to divide the smallest hexadecimal number

You can run into problems relying on the averages of floating point numbers. This is something I think about often after reading Sinan Ünür’s How you average numbers matters. I thought about it again when I read Honza Brabec’s Mean of two floating point numbers can be dangerous. Despite the hyperbole of “can be dangerous” (see “Considered Harmful” Essays Considered Harmful), it certainly can do something that you don’t intend. » Read more…

Using Inline::C to look at a number’s double representation

Since Perl v5.22 added hexadecimal floating-point numbers, I investigated how floating point numbers are actually represented. These are specified in IEEE 754 and are something you’ve probably taken for granted. I can use Inline::C to play with these. » Read more…

Pre-compiled patterns retain their settings if they are interpolated

The qr// operator precompiles a regular expression and returns a reference to that compiled pattern. You can use that reference with the binding operator to perform a match, interpolate the reference into the match or substitution operators, or combine the reference with other references or literal patterns to make a larger pattern. We cover this in Chapter 9, “Regular Expression References”, but don’t emphasize what happens with regex flags when you combine patterns. » Read more…

Second printing available

Intermediate Perl 2nd edition’s second printing is now available. This contains fixes for almost all of the reported errata, but it otherwise the same content.

If you’ve bought your ebook through O’Reilly, you should have it available in your O’Reilly account. Look at your O’Reilly products list. I have the Alpaca under mine and I can immediately download the format I want or send them to Dropbox.