P6SGI: More of a Journey than a Destination

When I started working on P6SGI, I thought, "Hey, I'll just update PSGI to use Perl 6, take advantage of some async data structures, and be done." That is not how this process has gone down. First, I learned that I needed to know more about Perl 6. Then, I found that I need to know more about HTTP/1.1 and more about PSGI. Most recently, I have been researching HTTP/2, Mojolicious, WebSockets, Akka, and a whole pile of other things.

So, here's the progress report on thing that have changed in the last week or so on our way toward a complete P6SGI standard, which is still a ways off.

This just in: study shows advantages to RTFM

So I really like to validate email addresses using Email::Valid. But yesterday, I got a bug report. Some system was sending emails to another system with addresses containing a space right after the @. That other system was totally unable to deal with those.

"But I do email address validation" I thought. "Not just with a stupid regular expression like .+\@.+, but with Email::Valid". So I added a test to our suite and sure enough, that new test failed.

Lesson learned: Read the documentation of the modules you use.

How each drove me crazy

I had a program like this:

my @data = qw( bla fasel foo org jawohl hmblamm glfoo sdfoo sadfasffoo) ;

my %regex = ( type1 => bla, type2 => foo);

foreach(@data) {
    print $_,"\t";
    print " matches " if test_it($_);
    print "\n";

sub test_it {
    my $entry = shift;
    while( my($type, $regex) = each %regex) {
        return 1 if $entry =~ /$regex/;
    return 0;

I expected:
bla matches
foo matches
hmblamm matches
glfoo matches
sdfoo matches
sadfasffoo matches

but... I got not all matches.

Long story short: each does not reset the iterator for every call. And yes in modern versions of perl this behaviour is documented -- seems like I will stick with keys

Perl 5 Optimizing Compiler, Part 16: RPerl v1.2 Kickstarter Challenge

Greetings Perlites,

We're continuing our trend of success with...


After watching the video linked above, you'll want to head over to Kickstarter:


Thanks in advance for your financial support, it is critical to the future of RPerl's performance future!

~ Will the Chill

Post-YAPC update

Just to give people an update on where I am after the spill and subsequent events at YAPC:

First of all, I need *AGAIN* to give my thanks to:

@Amal1a_ (Amalia) (and everyone else at Evozon for supporting me)
@renatolrr - (Renato) YAPC Coordinator, gofer and frequent bedside supporter during the last 3 weeks of hell
@Makova65 - (Manu) Another bedside confidante and inadvertent Andalusian Spanish tutor
@jjmerelo - (JJ Merelo) Another coordinator, gofer and @YEF director, I think.

And those that I can't find on Twitter - Maribel, Victor, Pablo, Paloma and Jose. Pretty much everyone responsible for YAPC::EU 2015, probably.

I can't thank you enough, you made my last 3 weeks bearable, I'm not sure what I would've done if I were just staring at off-yellow hospital walls for 3 weeks. I *SHALL* return to Granada, and Manu, I *will* take you up on your offer.

And now for a more personal update.

Perl 5 Optimizing Compiler, Part 15: RPerl v1.2 Kickstarter Now Live

Greetings, Perl Lovers!

I am proud to announce the launch of our next Kickstarter campaign.

We immediately reached our minimum of $1,701; now our goal is to reach $20K in the next 9 days. We can do it... WITH YOUR HELP!

STEP 1: Make a generous pledge.
STEP 2: Get your friends to match your pledge.
STEP 3: Get your boss to double your pledge.
STEP 4: Go back and increase your pledge.

Thanks so much for your continued support of RPerl!

~ Will the Chill

DBIx::Class Training in Vienna - only 149 €

We are offering an one day DBIx::Class training in Vienna on the 20th October. For details please check:


The training fee will be only 149 € if you book until 28th September. Please contact me by email in order to buy a ticket.

A Date with CPAN, Part 1: State of the Union

[This is the first post in a new, probably long-ass, series.  I do not promise that the next post in the series will be next week.  Just that I will eventually finish it, someday.  Unless I get hit by a bus.]

The topic arose at $work recently: what do the cool kids use for dates these days?  Our sysadmin was looking for a simple way to get “tomorrow.” Of course, the cool kids are theoretically using DateTime, right?  So, how do we get “tomorrow” out of DateTime?  The answer came back in our chat room:


Well, okay ... that would work.  But it’s not exactly what I’d call “easy.”

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.