Back to FAQS.ORG
 

Perl 5 Internals

Simon Cozens

Open Publications License 1.0

Copyright (c) 2001 by NetThink.

This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/).

This series contains material adopted from the Netizen Perl Training Fork, by kind permission of Kirrily Robert.


Table of Contents
1. Preliminaries
1.1. Course Outline
1.2. Assumed Knowledge
1.3. Objectives
1.4. The course notes
2. Perl Development Structure
2.1. Perl Versioning
2.2. The Development Tracks
2.3. Perl 5 Porters
2.4. Pumpkins and Pumpkings
2.5. The Perl Repository
2.6. Summary
2.7. Exercises
3. Parts of the Interpreter
3.1. Top Level Overview
3.2. The Perl Library
3.3. The XS Library
3.4. The IO Subsystem
3.5. The Regexp Engine
3.6. The Parser and Tokeniser
3.7. Variable Handling
3.8. Run-time Execution
3.9. Support Functions
3.10. Testing
3.11. Other Utilities
3.12. Documentation
3.13. Summary
3.14. Exercises
4. Internal Variables
4.1. Basic SVs
4.1.1. Basics of an SV
4.1.2. References
4.1.3. Integers
4.1.4. Strings
4.1.5. Floating point numbers
4.2. Arrays and Hashes
4.2.1. Arrays
4.2.2. Hashes
4.3. More Complex Types
4.3.1. Objects
4.3.2. Magic
4.3.3. Tied Variables
4.3.4. Globs and Stashes
4.3.5. Code Values
4.3.6. Lexical Variables
4.4. Inheritance
4.5. Summary
4.6. Exercises
5. The Lexer and the Parser
5.1. The Parser
5.1.1. BNF and Parsing
5.1.2. Parse actions and token values
5.1.3. Parsing some Perl
5.2. The Tokeniser
5.2.1. Basic tokenising
5.2.2. Sublexing
5.3. Summary
5.4. Exercises
6. Fundamental Operations
6.1. The basic op
6.1.1. The different operations
6.1.2. Different "flavours" of op
6.1.3. Tying it all together
6.2. PP Code
6.2.1. The argument stack
6.2.2. Stack manipulation
6.3. The opcode table and opcodes.pl
6.4. Scatchpads and Targets
6.5. The Optimizer
6.6. Summary
6.7. Exercises
7. The Perl Compiler
7.1. What is the Perl Compiler?
7.2. B:: Modules
7.2.1. B::Concise
7.2.2. B::Debug
7.2.3. B::Deparse
7.3. What B and O Provide
7.3.1. O
7.3.2. B
7.4. Using B for Simple Things
7.5. Summary
7.6. Exercises
A. Unix cheat sheet
B. Editor cheat sheet
B.1. vi
B.1.1. Running
B.1.2. Using
B.1.3. Exiting
B.1.4. Gotchas
B.1.5. Help
B.2. pico
B.2.1. Running
B.2.2. Using
B.2.3. Exiting
B.2.4. Gotchas
B.2.5. Help
B.3. joe
B.3.1. Running
B.3.2. Using
B.3.3. Exiting
B.3.4. Gotchas
B.3.5. Help
B.4. jed
B.4.1. Running
B.4.2. Using
B.4.3. Exiting
B.4.4. Gotchas
B.4.5. Help
C. ASCII Pronunciation Guide
List of Tables
A-1. Simple Unix commands
B-1. Layout of editor cheat sheets
C-1. ASCII Pronunciation Guide