Perl 5 Porters Mailing List Summary: November 16th-22nd

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past week. Enjoy!

Test::More: Clearing up some confusion

I want to clear up some confusion about the Test::Stream/Test::Builder work.

I will try to be as clear and concise as possible:

  • Test::More is not changing in any significant way.
  • Nothing is being removed from Test::More.
  • Nothing is being added to Test::More.
  • There are no changes to Test::More::is()
  • Test::More::cmp_ok() is not being removed
  • Test::More is not breaking.

There has been a lot of FUD about this lately, I don't think any of it was malicious, but rather due to a misunderstanding. Test::Stream is a new namespace, and includes a new toolset modeled after Test::More. This new toolset has a new implementation of is(), and for a while did not have a cmp_ok(). These differences are opt-in, you have to use Test::Stream instead of Test::More to be effected. There are no plans to ever port these differences to Test::More, that would break things, and I am not willing to do that.

So what is changing?

Doing testing in a swat way

Hi I wrote an informal introduction into swat, trying to highlights some benefits one could gain using swat in web test development. Feedback is appreciated. Thanks.

A Date with CPAN, Part 4: Construction Time Again

[This is a post in my latest, probably long-ass, series.  You may want to begin at the beginning.  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.

IMPORTANT NOTE!  When I provide you links to code on GitHub, I’m giving you links to particular commits.  This allows me to show you the code as it was at the time the blog post was written and insures that the code references will make sense in the context of this post.  Just be aware that the latest version of the code may be very different.]

Last time I babbled on for a while about my general plans, and finally came up with a name other than “my perfect date module.” This time we stop screwing around and finally write some code.

I decided to start out with the date class.  In retrospect, I sort of wished I’d started with the datetime class, as that would’ve been a lot simpler.  But the date class was more interesting, and more immediately useful, so that’s where I started, so that’s where we’ll start as well.

OSCON Call for Papers

The OSCON Call for Papers closes this Tuesday, 24th November, at Midnight (US EST) and at this moment there are no papers submitted on Perl.

OSCON has become increasing less language-specific over the years and now doesn’t have language tracks or rooms, however Perl has a long association with this conference including the fact that it evolved from the original Perl Conference and for many years hosted the State of the Onion.

As we approach 2016 with a major new version of Perl in the shape of Perl6 and an ever-vibrant and yearly releases of Perl5 the idea of not having a presence at OSCON is quite strange.

So I am asking all of you to consider if you can submit a talk to this event. We have a very good chance of getting a main room spot if we talk about Perl6 especially since O’Reilly have been pushing known Perl authors on the idea of a Perl6 book. This could be a turning point where we get new Perl5 books as well.

Perl Regular Expression Awesomeness

This week at work I overheard some coworkers talking about a programming problem. The type that you might get in an interview. The idea was that if you had a string of words smushed together without spaces, how would you go about parsing the string into words again?

I thought about it for a bit and pretty quickly decided to load all of /usr/share/dict/words into some kind of regexp. The main difficultly is that you can't just be greedy or be nongreedy because either could fail. Imagine the inputs:

yougotmail          => you got mail
yougotmailed        => you got mailed
yougotmailman       => you got mailman (or: you got mail man)
yougotmailmanners   => you got mail manners

As you can see, regardless of greedy or nongreedy, you need backtracking. Hmm. Regular expressions have backtracking. Problem solved!

$list = join '|', map {chomp, $_} `cat /usr/share/dict/words`;
$input =~ /^($list)*$/;

Improved Syntax Highlighting in the Debugger

You may recall me writing about DB::Color a few years ago. That module let you do this with the debugger:

Perl Debugger with Syntax Highlighting

It has some issues, including the fact that syntax highlighting Perl code is, um, not always perfect, but it does the job. The main drawback, however, is that it runs about as fast as a sloth with a spinal injury. It was so bad that even I stopped using it, and I love the damned thing. Today, I may have fixed that.

New artice: Understanding Marpa-style action subs parameters

Click me!

About 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.