Section 1: Table of Contents
July 13, 2024 ยท View on GitHub
Section 1: Table of Contents
This file is automatically generated. If you wish to submit a PR, do not
edit this file directly. Please edit
templates/rfc/toc.md instead. Use bin/generate_rfc.pl to regenerate the RFCs.
1.1 Sections
Section: 1: Table of Contents
..1.1 Sections
Section: 2: Overview
..2.1 Preamble..2.2 Abstract..2.3 Motivation..2.4 Rationale..2.5 Specification..2.6 Backwards Compatibility....2.6.1 Syntax....2.6.2 Tooling....2.6.3 Feature Guard..2.7 Security Implications..2.8 Examples..2.9 Prototype Implementation..2.10 Benefits of this approach....2.10.1 Compile-time failures....2.10.2 Encapsulation....2.10.3 Less Code....2.10.4 Cleaner Interfaces....2.10.5 No MRO Pain..2.11 FAQ....2.11.1 Why not Moo/se or alternatives in the core?..2.12 Open Issues..2.13 Scope for future work..2.14 Contributors..2.15 Copyright
Section: 3: Grammar
..3.1 Class and Role Grammar..3.2 Method Grammar..3.3 Field Grammar
Section: 4: Classes
..4.1 Overview..4.2 Discussion....4.2.1 Versions....4.2.2 Inheritance....4.2.3 Roles....4.2.4 Abstract Classes....4.2.5 Subroutines versus Methods
Section: 5: Class Construction
..5.1 Overview..5.2 Steps....5.2.1 Step 1 Verify even-sized list of args....5.2.2 Step 2 Constructor keys may not be references....5.2.3 Step 3 Find constructor args....5.2.4 Step 4 Err out on unknown keys....5.2.5 Step 5new()....5.2.6 Step 6ADJUST..5.3 MOP Pseudocode
Section: 6: Fields
..6.1 Overview..6.2 Field Creation....6.2.1 Field Initialization....6.2.2 Field Destruction....6.2.3 Field Attributes......6.2.3.1:param(optional_identifier)......6.2.3.2:reader(optional_identifier)......6.2.3.3:writer(optional_identifier)......6.2.3.4:predicate(optional_identifier)......6.2.3.5:name(optional_identifier)......6.2.3.6:handles(...)........6.2.3.6.1 List of Identifiers and Identifier:Identifier Mappings......6.3.1.1:common
Section: 7: Methods
..7.1 Overview..7.2 Instance Methods..7.3 Class Methods..7.4 Overridden Methods..7.5 Abstract Methods....7.5.1 Checking Abstract Methods..7.6 Private Methods....7.6.1 Private Methods in Roles
Section: 8: Roles
..8.1 Background..8.2 Overview..8.3 Example..8.4 Aliasing and Excluding..8.5ADJUSTandDESTRUCT..8.6 Conflicts..8.7 Questions....8.7.1 Changing access level of role methods?
Section: 9: Phasers
..9.1ADJUST..9.2DESTRUCT....9.2.1 Deterministic Destruction....9.2.2 Incomplete Destruction..9.3 Phaser Call Order
Section: 10: Method Modifiers
..10.1 Overview..10.2 Why use them?..10.3 Before, after, and around modifiers....10.3.1 Before and after Modifiers....10.3.2 Around modifiers....10.3.3 Execution order of method modifiers and inheritance..10.4 Exceptions and stack traces..10.5 Caveats
Section: 11: Questions
..11.1 Open issues for the RFC....11.1.1 Corinna v Other objects....11.1.2 Multiple Variables Types In A Field....11.1.3 Twigils?....11.1.4 Overridding Fields....11.1.5can,does, andisa....11.1.6 Inline POD?
Section: 12: Quotes
..12.1 Overview....12.1.1 Curtis Poe, a.k.a. Ovid, Perl book author and lead designer of Corinna....12.1.2 Damian Conway, a.k.a. That Damian, Computer scientist and (too many accolades to list)....12.1.3 Dan Book, a.k.a. Grinnz, CPAN author and docs wrangler....12.1.4 Matt Trout, a.k.a. mst, Creator of Moo....12.1.5 Sawyer X, a.k.a. Sawyer X, former Perl pumpking....12.1.6 Stevan Little, a.k.a. "Damnit, Stevan", creator of Moose
Section: 13: Changes
Section: 14: P5P MVP
..14.1 MMVP..14.2 The Seven Stages....14.2.1 1. Classes....14.2.2 2. Class inheritance - class :isa() attr....14.2.3 3. Roles, and class/role :does() attr....14.2.4 4. Various "convenience" attributes -....14.2.5 5. Field initialiser blocks....14.2.6 6. MOP....14.2.7 7. Method modifiers (around, before, after)..14.3 Missing Features..14.4 Potentially Breaking Changes
Section: 15: FAQ
..15.1 Overview....15.1.1 Why can't I inherit from blessed objects?....15.1.2 But I need to inherit from a blessed object!....15.1.3 Why can't I use subroutines for methods?....15.1.4 Willclassbreak existing code?....15.1.5 How can I refactor existing objects withclass?....15.1.6 Are there any interesting projects being written withclass?....15.1.7 Are a class and a package the same thing?....15.1.8 You keep writing classes with a postfix block. Is that required?....15.1.9 Is there a tutorial?....15.1.10 How do I know whichclassfeatures my Perl supports?