Skip to content

Latest commit

 

History

History
187 lines (149 loc) · 5.72 KB

toc.md

File metadata and controls

187 lines (149 loc) · 5.72 KB

Prev: README
Next: Overview


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

  • .. 1.1 Sections
  • .. 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
  • .. 3.1 Class and Role Grammar
  • .. 3.2 Method Grammar
  • .. 3.3 Field Grammar
  • .. 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
  • .. 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 5 new()
  • .... 5.2.6 Step 6 ADJUST
  • .. 5.3 MOP Pseudocode
  • .. 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
  • .. 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
  • .. 8.1 Background
  • .. 8.2 Overview
  • .. 8.3 Example
  • .. 8.4 Aliasing and Excluding
  • .. 8.5 ADJUST and DESTRUCT
  • .. 8.6 Conflicts
  • .. 8.7 Questions
  • .... 8.7.1 Changing access level of role methods?
  • .. 9.1 ADJUST
  • .. 9.2 DESTRUCT
  • .... 9.2.1 Deterministic Destruction
  • .... 9.2.2 Incomplete Destruction
  • .. 9.3 Phaser Call Order
  • .. 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
  • .. 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.5 can, does, and isa
  • .... 11.1.6 Inline POD?
  • .. 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
  • .. 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 Will class break existing code?
  • .... 15.1.5 How can I refactor existing objects with class?
  • .... 15.1.6 Are there any interesting projects being written with class?
  • .... 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 which class features my Perl supports?

Prev: README
Next: Overview