camelia perl bug logo

Perl 6 Design Documents

The Synopsis documents are the design documents used to guide Perl 6 language, compiler, and test development. As design documents, they're frequently subjected to the rigors of cross-examination through implementation and use in practice. In other words, they may change slightly or radically, but the expectation is that they are ``very close`` to the final shape of Perl 6.

In the past the Synopses have often been referred to as "the formal Perl 6 specification" and "specs", but this usage is being deprecated in favor of treating tests from the "roast" test suite as official specifications. This is consistent with Synopsis 1, which says "Perl 6 is anything that passes the official test suite."

(Syn pod) (Justification) (Explanation)
1 Overview S01-overview.pod Apocalypse
2 Bits and Pieces S02-bits.pod Apocalypse Exegesis
3 Summary of Perl 6 Operators S03-operator.pod Apocalypse Exegesis
4 Blocks and Statements S04-control.pod Apocalypse Exegesis
5 Regexes and Rules S05-regex.pod Apocalypse Exegesis
6 Subroutines S06-subroutines.pod Apocalypse Exegesis
7 Lists and Iteration [DRAFT] S07-lists.pod
8 Captures and Parcels [DRAFT] S08-capture.pod
9 Data Structures S09-data.pod
10 Packages S10-packages.pod
11 Compilation Units S11-modules.pod
12 Objects S12-objects.pod Apocalypse
13 Overloading S13-overloading.pod
14 Roles and Parametric Types [DRAFT] S14-roles-and-parametric-types.pod
15 Unicode [DRAFT] S15-unicode.pod
16 IO / User / Group [DRAFT] S16-io.pod
17 Concurrency S17-concurrency.pod
19 Command line interface [DRAFT] S19-commandline.pod
21 Calling foreign code [DRAFT] S21-calling-foreign-code.pod
22 Distributions, Recommendations, Delivery and Installation S22-package-format.pod
24 Testing S24-testing.pod
25Portable perl(TBD)
26 Documentation S26-documentation.pod (HTML rendering of S26 is known to be incomplete)
27Perl culture(Draft)
28 Special names S28-special-names.pod
29 Builtin Functions [DRAFT] S29-functions.pod
30Standard perl library(TBD)
31 Pragmatic modules [DRAFT] S31-pragmatic-modules.pod
32Setting library [DRAFT] 
Basics+ [DRAFT] Basics.pod
Callable* [DRAFT] Callable.pod
Containers* [DRAFT] Containers.pod
Exception* [DRAFT] Exception.pod
IO* [DRAFT] IO.pod
Numeric* [DRAFT] Numeric.pod
Rules* [DRAFT] Rules.pod
Str [DRAFT] Str.pod
Temporal+ Temporal.pod
33Diagnostic messages(TBD)
99 Glossary S99-glossary.pod


S32 Key

* = Documents related types as well
+ = Not a type name, but documents a group of types

Differences from Perl 5

The Differences document is stored in docs/Perl6/Perl5/Differences.pod in the mu repository, if you'd like to make updates to it. Your changes will automatically appear on the web server in less than one hour.

Further reading

For further information on Perl 6, links to examples, tutorials etc. please visit, the official Perl 6 homepage.