Perl 6 Language Documentation

Tutorials, general reference, migration guides and meta pages for the Perl 6 language.

At the beginning

Brief introduction Using Perl 6 official documentation
Perl 6 by example P6-101 A basic introductory example of a Perl 6 program

Migration guides

Perl 5 to Perl 6 guide - in a nutshell How do I do what I used to do? (Perl 6 in a nutshell)
Perl 5 to Perl 6 guide - overview How do I do what I used to do?
Perl 5 to Perl 6 guide - functions Builtin functions in Perl 5 to Perl 6
Perl 5 to Perl 6 guide - operators Operators in Perl 5 to Perl 6: equivalencies and variations
Perl 5 to Perl 6 guide - syntax Syntactic differences between Perl 5 and Perl 6
Perl 5 to Perl 6 guide - special variables A comparison of special variables in Perl 5 and Perl 6
Haskell to Perl 6 - nutshell Learning Perl 6 from Haskell, in a nutshell: what do I already know?
JavaScript (Node.js) to Perl 6 - nutshell Learning Perl 6 from Node.js, in a nutshell
Python to Perl 6 - nutshell Learning Perl 6 from Python, in a nutshell
Ruby to Perl 6 - nutshell Learning Perl 6 from Ruby, in a nutshell: what do I already know?


Classes and objects A tutorial about creating and using classes in Perl 6
Command line interface Creating your own CLI in Perl 6
Concurrency Concurrency and asynchronous programming
Core modules Core modules that may be useful to module authors
Doing math with Perl 6 Different mathematical paradigms and how they are implemented in this language
Entering unicode characters Input methods for unicode characters in terminals, the shell, and editors
Grammar tutorial An introduction to grammars
Input/Output File-related operations
Inter-process communication Programs running other programs and communicating with them
Iterating Functionalities available for visiting all items in a complex data structure
Module development utilities What can help you write/test/improve your module(s)
Module packages Creating module packages for code reuse
Modules How to create, use and distribute Perl 6 modules
Creating operators A short tutorial on how to declare operators and create new ones.
Regexes: best practices and gotchas Some tips on regexes and grammars

General reference

About the docs Meta-documentation
Community Information about the people working on and using Perl 6
FAQ Frequently asked questions about Perl 6
Glossary Glossary of Perl 6 terminology
Pod6 An easy-to-use markup language for documenting Perl modules and programs
Pod 6 tables The good, the bad and the ugly
Terms Perl 6 terms
Testing Writing and running tests in Perl 6
Traps to avoid Traps to avoid when getting started with Perl 6

Fundamental topics

Containers A low-level explanation of Perl 6 containers
Contexts and contextualizers What are contexts and how to switch into them
Control flow Statements used to control the flow of execution
Data structures How Perl 6 deals with data structures and what we can expect from them
Date and time functions Processing date and time in Perl 6
Enumeration An example using the enum type
Exceptions Using exceptions in Perl 6
Functions Functions and functional programming in Perl 6
Grammars Parsing and interpreting text
Hashes and maps Working with associative arrays/dictionaries/hashes
Input/Output the definitive guide Correctly use Perl 6 IO
Lists, sequences, and arrays Positional data constructs
Meta-object protocol (MOP) Introspection and the Perl 6 object system
Native calling interface Call into dynamic libraries that follow the C calling convention
Newline handling in Perl 6 How the different newline characters are handled, and how to change the behavior
Numerics Numeric types available in Perl 6
Object orientation Object orientation in Perl 6
Operators Common Perl 6 infixes, prefixes, postfixes, and more!
Packages Organizing and referencing namespaced program elements
Performance Measuring and improving runtime or compile-time performance
Perl 6 native types Using the types the compiler and hardware make available to you
Phasers Program execution phases and corresponding phaser blocks
Pragmas Special modules that define certain aspects of the behavior of the code
Quoting constructs Writing strings, word lists, and regexes in Perl 6
Regexes Pattern matching against strings
Sets, bags, and mixes Unordered collections of unique and weighted objects in Perl 6
Statement prefixes Prefixes that alter the behavior of a statement or a set of them
Subscripts Accessing data structure elements by index or key
Syntax General rules of Perl 6 syntax
System interaction Working with the underlying operating system and running applications
Traits Compile-time specification of behavior made easy
Type system Introduction to the type system of Perl 6
Unicode Unicode support in Perl 6
Unicode versus ASCII symbols Unicode symbols and their ASCII equivalents
Variables Variables in Perl 6

Advanced topics

Experimental features Preview of upcoming new language features available for user evaluation