Skip to main content

Workshop: Introduction to Perl 6

Duration
8 hours (with 3 breaks)
Audience
  • People with no experience in Perl
  • People with Perl 5 experience
Description
During this course, you will receive a great practical introduction to Perl 6. We will go through the most important concepts that the language offers to a developer. The course is split into three parts: "Introduction", "The Basics", and "Advanced concepts". Theoretical material is accomplished by a lot of exercises (both individual and in groups).
Requirements
  • Understanding of programming in general
  • Laptop with internet
  • No software pre-installed needed
Contents
  • Introduction (1 hour)
    • What is Perl 6?
    • Why is it important to learn it now?
    • Perl 6 design ideas
      • Perl family
      • Language defined by specification
      • Proper OOP
      • Regexes on steroids
      • Concurrency and parallel computing
      • Unicode support
    • Perl 6 compiler
      • Installing Rakudo Star
      • Installing from packages
      • Compiling from sources
      • REPL shell
      • Command-line options
  • Part 1. The basics of the language (4 hours)
    • Variables and types
      • Scalars, arrays, hashes
      • Ints, Rats
      • Nums, Complex numbers
    • Operators
      • Categories
      • Infixes, prefixes, postfixes
      • Circumfix, postcircumfix
      • Ternary operator
      • Meta-operators
      • Hyper-operators
    • Control flow
      • if, unless, else
      • loops
    • Functions (subroutines)
      • Definiing a function
      • Signatures
      • Default and optional arguments
      • Named arguments
      • Passing arrays and hashes
      • Defining your own operators
    • Classes
      • Defining a class
      • Class attributes
      • Class methods
      • Hyerarchy
      • Roles
    • Part 2. Beyond the basics (3 hours)
      • Regexes
        • Matching
        • Special characters
        • Character classes
        • Quantifiers
        • Adverbs (modifiers)
        • The Match object
      • Parallel computing
        • Junctions
        • Threads
        • Promises
        • Channels