Perl 7

This is the first and foremost thing from today.

Sawyer, our Pumpking, announced Perl 7. brian d foy, Perl blogger of note, wrote an explainer. Between the two, you should be able to access most of the details.

Because I need an excuse to blog, here’s my standard boilerplate for a new Perl program:

#!/usr/bin/env perl

use strict;
use warnings;
use utf8;
use feature qw{ postderef say signatures state switch };
no warnings qw{ experimental };

That’s a lot, and I’m likely missing lines that I should be leaning on, including these from brian’s blog:

#!/usr/bin/env perl

use v5.32;
use utf8;
use warnings;
use open qw(:std :utf8);
no feature qw(indirect);
use feature qw(signatures);
no warnings qw(experimental::signatures);

And, with Perl 7, it might just be this:

#!/usr/bin/env perl7

This is because all the good stuff, the stuff that has modernized since 2002, will now be on by default (and some of the bad old things will be off by default) so that you can come in with just the hashbang and be able to write the code you want to write.

That will be the only change. It’s Perl, but optimized for people who are learning now, solving problems now, and not for people who wrote a thing and put it on CPAN years ago. 5.32 will still be supported, but we won’t be maintenance-only, holding back progress for the sake of legacy code.

I love this plan! I’m excited to be a part of it!

Data Logging

There is a lot to this one. Using small devices like the Raspberry Pi and Arduino to collect scientific data. I’ve used both Arduino and Raspberry Pi, but never together, and I’ve never really hung any sensors off one. I’ve thought about it, and even priced Power-over-Ethernet Pi Hats.

There’s many versions that the presenter discusses, with many different ways to interact with the GPIO pins and such. I’m no longer at the job where temperature and humidity sensing with a Raspberry Pi makes sense, but I’m trying to remember which box I placed my stuff.



Awaiting Mojolicious

Joel goes deep into Mojolicious, ending with the addition of the magical async and await.

It was a warp speed pass-through, but because slides are available, I’m happy for this because I know I can follow in his footsteps and replicate the results.

As well as mocking services!

Thinking that making a simple wiki in Mojo might be a good Hello-World-y project to get this under my fingers.

Link Slides Video

Perl and WebAssembly

So, compiled languages compile to assembly, and you can now have your compiled language compile to WebAssembly, where the executable runs in a browser.

This is how we have WebPerl.

The tools I’m seeing are much more about using compiled WASM libraries in Perl (and I think about allowing you to compile it) than about running your Perl logic as WASM. WASM shines for CPU-bound tasks and most easily deals with numeric types, so although they’re working on methods to pass C-style strings and such, the things we use Perl for are not really what we’d want WASM for.


Web Dev: Generations

@preaction follows Web Development techniques from the origins in 1990, through the various attempts to move us to modern layout and such, through JSON and AJAX and LocalStorage etc, to CSS Grid and FlexBox, two things I’ve seen mentioned but haven’t touched. I’ll totally cop to not deeply being a web dev over the last decade.


Lightning Talks

The Lightning Talk videos have yet to be separated out, so I won’t link them here, but here are a few of the things I was amused by.

Six Do-Nots For Duck Debugging

  • No singing
  • No shunning
  • No other animals
  • No more than 12 ducks
  • No feeding after midnight
  • If your ducks talk back, seek help

Your Android phone is a linux computer, so you can run Perl on your Phone, starting with Termux. I’m not wanting to run Perl on my pocket supercomputer, but it is a thing you can do. In fact, I recall a friend blogging about connecting his HTC Evo to a VT125, so this sort of thing is stuff you’ve been able to do for a decade.

If you have any questions or comments, I would be glad to hear it. Ask me on Twitter or make an issue on my blog repo.