Loading…
Attending this event?
TPRC 2024 in beautiful Las Vegas, Nevada! June 25-27th.
Perl [clear filter]
Tuesday, June 25
 

3:30pm PDT

Overview of a Roguelike Class System
Video games it turns out make an excellent introduction to a new programming language. We will discus the new class syntax in Perl 5.38+ through the lens of building a hack and slash video game.We will take a tour of the new class syntax in Perl 5.38+ using a hack and slash video game as a non-trivial illustration of a real world application. We will illustrate how the current implemented features have improved the solution space over previous object systems like Moose, and will discuss what work we are looking forward to for future systems.Audience: Intermediate["Perl", "Video Games", "Object Orientation"]

Speakers
avatar for Chris Prather

Chris Prather

Managing Partner, Tamarou LLC
"Born a second generation programmer his mother taught him early that the best way to code is by learning it the hard way. An active Perl Developer, conference organizer and parent of 2. Always looking forward to helping solve the programming issues whether it's code or programmer... Read More →


Tuesday June 25, 2024 3:30pm - 3:50pm PDT
Track 1

3:30pm PDT

Perl One-Liners
One-liners aren't just for gurus and obfuscated Perl contests. Anyone can learn a few simple command-line switches and instantly become more productive. You too can become a command-line ninja!Perl's got a reputation for producing unreadable, unmaintainable code. In some cases that's probably well-deserved, and TPC is filled with talks on modules and techniques that try to rein in some of that complexity. That's great, but sometimes people can forget that Perl's still a great language for throwing together quick and dirty little programs. And nothing is quicker or dirtier than the one-liner.

This talk is an introduction to writing one-liners in Perl. The focus isn't so much on Perl golf, but rather on getting a handle on all those command-line switches described in [perlrun](http://perldoc.perl.org/perlrun.html#Command-Switches) so you can add them to your development toolbox. So if you can never remember the difference between `-l`, `-n` and `-p`, this is the talk for you. If you're new to Perl, you'll be amazed at how much you can accomplish. Even if you already write the occasional one-liner in Perl, chances are you're not taking advantage of all the tricks and shortcuts you could be.Audience: All["Perl", "one-liners", "command-line"]

Speakers
avatar for Walt Mankowski

Walt Mankowski

Senior Data Analyst, University of Pennsylvania


Tuesday June 25, 2024 3:30pm - 3:50pm PDT
Track 2
 
Wednesday, June 26
 

11:30am PDT

Modern browser automation in perl using playwright
Playwright the most full featured tool for automating the use of modern browsers, but is a node.js application. A means to utilize this in perl tests and scrapers is desirable, so I wrote playwright-perl. Let me show you the features!For more than a decade Selenium was the only real option for automating browsers, which is useful when you need to do anything needing a working javascript engine. This became increasingly necessary as many service providers either have no APIs, or maintain them incredibly poorly. There are also few other options for doing user acceptance testing on web applications.

A bit more than 3 years ago it became clear that Selenium as a standard had totally stagnated, as every new iteration of the standard came with less features than the last.

Both the driver vendors and SeleniumHQ's JAR to multiplex requests across various browser vendors were slow to implement standards, and would remove endpoints from prior versions with no replacement. On top of this, chromedriver (what drove the most popular browser) broke something important more or less every single release.

After getting tired of writing yet another polyfill in javascript to get around this nonsense with Selenium::Remote::Driver I looked around for options.

It turns out microsoft had these same problems and the resources to deal with them; they created a thing called 'playwright', which enables the same kind of cross-browser interface. On top of this, they implemented a bevy of useful things that Selenium had never implemented nor had on any roadmap anywhere.

So, I decided to implement a perl interface to this library, and in a way that massively limited my maintenance load, which I will briefly cover.
I also aimed for having the user experience be as close as possible to the way it was documented on playwright.dev without making it not feel like perl.
I believe I've achieved this and would like to share the features with you.Audience: All["Perl", "WWW", "Playwright"]

Speakers
avatar for George Baugh

George Baugh

Owner, Troglodyne LLC
General contractor specializing in all things perl


Wednesday June 26, 2024 11:30am - 11:50am PDT
Track 1

2:30pm PDT

Perl at PayProp
How a 25 year old company is still using and backing Perl, and contributing back to the ecosystem.PayProp chose Perl over twenty years ago when they bootstrapped their business. Today the backend is still Perl, but has changed. This is a short talk about how we are modernising the stack and contributing back to open source software.

A short talk about some of the tools and techniques PayProp are using to modernise their Perl stack, including some of the issues and challenges. The areas covered will include:

* Moving from a CGI.pm based framework to Mojolicious
* Adding an ORM and business objects, via DBIx::Class and Moose
* Refactoring existing functionality with help from regression tests
* Contributing and maintaining distributions on CPAN
* Hiring developers and introducing them to Perl
Audience: All["Perl", "Open Source"]

Speakers
avatar for Lee J

Lee J

Senior Software Engineer, PayProp


Wednesday June 26, 2024 2:30pm - 3:20pm PDT
Track 2
 
Thursday, June 27
 

10:00am PDT

Direct Access to PDF Internals with PDF::Data
There are many existing PDF modules for Perl, most of which use high-level API calls and hide the PDF internals. PDF::Data takes a different approach, directly representing low-level PDF internals as Perl data structures which can be freely manipulated, and then converted back to PDF format.Explore the capabilities of PDF::Data, a Perl module that offers a unique approach to PDF manipulation by directly exposing PDF internals as modifiable Perl data structures. Unlike traditional PDF tools which shield users from the complexities of PDF internals with high-level APIs, PDF::Data allows for detailed, low-level interactions. This talk will delve into how developers can leverage PDF::Data to gain unprecedented control over PDF content, enabling precise customizations and manipulations that are not possible with standard PDF libraries. We will cover practical examples including dynamic document generation, content extraction, and direct modifications to the PDF structure, providing a toolkit for advanced PDF solutions in Perl.Audience: Advanced["Perl", "Data", "Open Source"]

Speakers
avatar for Deven Corzine

Deven Corzine

Senior Consultant, IntelliTree Solutions, LLC
I have been a Perl programmer since 1989 and I have attended YAPC::NA in 2002 and every year since 2006.  Perl has been my favorite programming language (by far) since 1991 or earlier, but I'm very interested in Rust these days.  Apart from Perl 6/Raku, Rust is the first language... Read More →


Thursday June 27, 2024 10:00am - 10:20am PDT
Track 3

11:30am PDT

Actually Portable Perl
Actually Portable Perl (APPerl) is a distribution of Perl that runs on several OSs via the same binary. APPerl builds to a single binary with Perl modules packed inside of it. This talk will cover how APPerl works and how it can be used to build cross-platform, single binary, standalone Perl apps.Programming in Perl is awesome, but how can you get non-Perl programmers, even non-technical users to run your program? The easiest way might be to ship a binary. Tools such as [PAR::Packer](https://metacpan.org/pod/PAR::Packer) can be a great way to create a binary, but it requires packing on each target system and is difficult to do right on non-Windows platforms (often due to dependence on system libc). The [Cosmopolitan Libc](https://github.com/jart/cosmopolitan#cosmopolitan) enables creating polygot executables that run on multiple operating systems including Windows, Linux, Mac, and more with the same binary! [APPerl](https://computoid.com/APPerl/) is a distribution of Perl built with the Cosmopolitan Libc that enables creating cross-platform, single binary, standalone Perl apps.

In this talk, I'll start by briefly going over the challenges distributing Perl applications. Then, I'll briefly explain what Actually Portable Executables are, show how they work, and how Perl can be built as one. Finally, I'll cover the leap between being a specialized Perl Distribution (APPerl) and working as a binary packager and demonstrate how APPerl can be used to package up Perl applications.Audience: All["Perl", "Open Source", "Polyglot", "Native"]

Speakers

Thursday June 27, 2024 11:30am - 11:50am PDT
Track 3

3:30pm PDT

Work It, Make It, Clearer, Faster
Make it work. Make it right. Make it fast.

What does this all mean?

Refactoring a small method to pass all three requirements, explaining each in turn.We've had a bit of code at work that's worked since day one. That's twenty years, and every payment in the system has passed through it. A lot of payments. Something isn't quite right about it though. When a bug report came in a few months ago seemingly related to this twenty year old code, it was time to fix it.

This talk aims to clarify the definition of "right", at least in this speaker's opinion.

Code examples will be shown, including bonus attempts by AI and The Perl Weekly Challenge.Audience: All["Perl"]

Speakers
avatar for Lee J

Lee J

Senior Software Engineer, PayProp


Thursday June 27, 2024 3:30pm - 3:50pm PDT
Track 1
 
Filter sessions
Apply filters to sessions.