Making Open Work
May 8–9, 2017: Training & Tutorials
May 10–11, 2017: Conference
Austin, TX

Fundamentals of Perl 6: From zero to scripting

Jeffrey Goff (Evozon Systems)
9:00am12:30pm Monday, May 8, 2017
The Cutting Edge
Location: Meeting Room 18 A/B
Level: Beginner
Average rating: **...
(2.50, 2 ratings)

Who is this presentation for?

  • Beginner to intermediate programmers, preferably with some experience in a scripting language such as PHP or JavaScript

Prerequisite knowledge

  • Familiarity with at least one programming language, ideally a loosely typed language such as PHP, JavaScript, or Bash
  • Knowledge of basic procedural programming (Object-oriented knowledge will be useful but is not required.)

Materials or downloads needed in advance

  • A laptop with Rakudo Perl 6 installed (Docker users can run "docker pull rakudo-star" to get the latest version.)

What you'll learn

  • Gain exposure to real-world uses of Perl 6
  • Build and explore a Perl 6 module ready to push to GitHub


Jeffrey Goff introduces Perl’s new multiparadigm, highly concurrent sister language Perl 6 with activities drawn from real-world use cases. Perl is traditionally known as a glue language, and Perl 6 is no exception. Perl 6 is fully Unicode compliant, has built-in multicore parallelism and concurrency support, includes imperative, functional, and vector operators, and compiles to the JVM, JavaScript, and a custom virtual machine.

Jeff begins the journey into the heart of Perl 6 with some simple exercises drawn from real-world tasks, such as looking through log files for information, before covering accepting user input, making database queries, and updating rows in a database. Of course, accepting user input is no good without validation, so you’ll explore Perl 6’s new parsing expression grammars, along the way learning a bit about Perl 6’s support for test-driven development.

TDD is only one style of development that Perl 6 supports. Jeff also discusses procedural programming, functional programming, object-oriented programming, and the new metaprogramming system available in Perl 6. You’ll package all of this into a proper Perl 6 class complete with a test system ready to submit to the Comprehensive Perl Archive Network, a worldwide network of testing systems and package managers eagerly waiting to test your new Perl 6 module.

All the while, you’ll be learning how to write code in a Perl 6 style, how to interact with the Perl 6 community, and where to go when you want to learn more—or just share what you’ve learned. You’ll leave ready to write your own scripts, interact with basic modules, and, more importantly, interact with the Perl 6 community.

Photo of Jeffrey Goff

Jeffrey Goff

Evozon Systems

Jeffrey Goff is a senior developer at Evozon Systems, a web design agency in Cluj, Romania, where he architects and builds custom web applications with Perl, HTML, and JavaScript. One of the original release managers for Parrot (née Perl 6), Jeff is an active contributor to both Perl 5 and Perl 6 and has written some core interface modules for Perl 6. At home, when he’s not creating Perl 6 libraries or speaking at conventions, he does origami and travels. You can follow Jeff on Twitter and view his open source contributions on GitHub. He also blogs at The Perl Fisher.