Perl Testing 101: 82% of What You Need to Be a Competent Perl Tester

James E Keenan will give a talk at YAPC::NA 2012 described as:

In fifty minutes, this presentation will provide you with 82 percent of what you need to know to be a competent user of Perl’s core testing functionality.

If you are new to Perl — or if you know Perl but have shied away from learning to write tests — this presentation is for you!

[From the YAPC::NA Blog.]

CPANdeps DoS

Why anyone would want to spider CPANdeps is beyond me, but a load of idiots in the Ukraine do want to, and their bot, as well as ignoring robots.txt (just like all the other search engines in the entire world, it seems) sends requests as fast as it can. All the timeouts and the errors about CPANdeps running out of database connections must mean they get some really high quality data.

All fixed though:

/sbin/iptables -A INPUT -s -j DROP
/sbin/iptables -A INPUT -s -j DROP

If this inconveniences any Ukrainian perl hackers, then I apologise. You should address your complaints to the employees of, preferably attached to baseball bats, knives and guns.

Perl 6 Lists and Arrays vivified: lazy, infinite, flat, slurpy, typed, bound, and LoL'd

Patrick Michaud will give a talk at YAPC::NA 2012 described as:

One of the significant new features of Perl 6 is its support for lazy and infinite lists, arrays, sequences, and other data structures. However, these new features have far-reaching impacts on the whole of Perl 6 design and implementation. Over the past several years there have been many attempts at a coherent design and implementation of Perl 6 lists, each leading to new challenges to be addressed and resolved.

In this talk I’ll shed some light on Perl 6 lists, arrays, sequences, and other structures, explaining some of the fundamentals of how they work and can be used in Perl 6 programs. Lots of examples will be given, with particular emphasis on the lazy, infinite, and flattening behaviors of lists and some of the new range and sequence operators. I’ll also describe how these features have affected Perl 6 development, including an introduction to some of the newer data types such as LoLs, Parcels, Captures, Iterators, and Positionals.

Come to this talk and learn how Perl 6’s list features can result in more elegant and faster code.

[From the YAPC::NA Blog.]

Andy Lester, brian d foy, Gisle Aas, and Adrian Howard featured in RSA Animate video - The Power of Networks

This image is from


See also my tweet and Google+ post about this video.

Update for Sun May 27 10am-ish EDT. . . Whoops, I should have included Stevan Little in the title of this post:


He's unnamed Perl contributor in the first image I posted. I'm listening to the original audio of the lecture from which the RSA Animate video is based and was able to find which links to which is where I found this second image. See also slide 29 from the slides of the talk. The first image is obviously an illustration of the second image. Very cool. I love this stuff. And I had never heard about which is just fabulous.

Also a made a second Google+ post that links back to this one.

LiveText is sponsoring YAPC::NA 2012, and they’re...

LiveText is sponsoring YAPC::NA 2012, and they’re hiring!

Looking for the Position that Fits your Work Style?  

Education is one of the most relevant topics in our nation, because it is important.  LiveText is doing forward looking work in education that is making a difference.  We’re looking for “difference making” people. If you’re a smart and energetic self-starter who would like to “make a difference” in transforming education, we want to talk to you!

By hiring top people and nurturing a culture that empowers and rewards those people, we are building one exceptional company.

Open positions include: 

  • Software Engineer
  • MySQL Database Administrator
  • User Interface Designer
  • Systems Administrator
  • System Architect

LiveText provides schedule flexibility, an open office environment, and a full benefits package that includes: Medical, Dental, Life Insurance, 401k, and Paid Vacations/Holidays.

 If you’re interested in any of the open positions, visit the LiveText booth located within Exhibit Hall B of the Job Fair and Expo. Resumes may also be forwarded to, “”.

[From the YAPC::NA Blog.]

Please Ensure ABSTRACT and LICENSE fields in your META.yml/json

I've been opening quite a few bugs lately for distributions failing these 2 criteria, so, I figured I'd save everyone some effort and unify it cohesively.


While it may seem a trivial squabble, ABSTRACT and LICENSE components of your meta-data are reasonably important for communicating what your dist is to the world, for both human and automated consumers.

The ABSTRACT field manifests itself in quite a few places:

And the LICENSE field appears in a few places as well:

Implementing Perl6 eval($str, :lang)

Moritz++ helped me implement a proof of concept eval-perl5 that works in rakudo, and uses Perlito5 (a perl5 compiler written in perl5).

This snippet could be used to implement a perl5 compatibility layer that works both in rakudo and niecza (and maybe pugs).

Perlito5 -Cperl6 is invoked using shell() . It compiles the string to perl6, and the result is eval'ed using plain perl6 Str.eval() :
multi eval($str, :$lang! where 'perl5') {
    my $inp_file = "tmp.p5";
    my $out_file = "tmp.p6";
    my $fh = open($inp_file, :w);
    shell "perl -Isrc5/lib -Cperl6 $inp_file > $out_file";
    my $p6_str = slurp $out_file;

the new eval() can be used like this:

my $p5_str = '
    my @x;
    $x[1] = 2+2;
    say "got $x[1]";
eval($p5_str, :lang);

Perl5-to-perl6 is a work in progress. Once Perlito5 is bootstrapped in perl6, we can create a plain perl6 module instead of invoking the shell.

Moritz also noted that the eval'ed code could be given access the perl6 lexical scope using perl6 CALLER. The lexical lookup will probably be provided by the perl5-to-perl6 compiler automatically.

The code is in github and was tested with latest rakudo-star and perlito5.

Usability testing of CPAN modules

Al Newkirk asked me to take a look at his Validation::Class module, and I did.

But instead of asking for the directions or watching the screencast, I tried to figure it out from docs.
And I took notes of my thought process.

The result is this gist:
And here's Al's answer:

So I think it was an interesting experience, and I wish more people did this kind of thing.
Because author can't enter the same river twice; once you're familiar with your project's concepts, you tend to lose the perspective on what will confuse a new user.

You don't have to be a good writer or an experienced developer to provide this kind of feedback. On the contrary, seeing the docs for the first time is what's important to make this process work.
And the author probably won't blame you for being unreasonable -- how can he if you're admitting that you don't understand what's going on and you're just dumping your thought process?

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.