[Chapter 2] The Gory Details
Author: Larry Wall, Tom Christiansen & Randal L. Schwartz
Date: 1999-07-02T01:30:36Z

#

| Chapter 2 |

# 2. The Gory Details

Contents:
Lexical Texture
Built-in Data Types
Terms
Pattern Matching
Operators
Statements and Declarations
Subroutines
Formats
Special Variables

This chapter describes in detail the syntax and semantics of a Perl program. Individual Perl functions are described in Chapter 3, Functions, and certain specialized topics such as References and Objects are deferred to later chapters.

For the most part, this chapter is organized from small to large. That is, we take a bottom-up approach. The disadvantage is that you don't necessarily get the Big Picture before getting lost in a welter of details. But the advantage is that you can understand the examples as we go along. (If you're a top-down person, just turn the book over and read the chapter backward.)

## 2.1 Lexical Texture

Perl is, for the most part, a free-form language. The main exceptions to this are format declarations and quoted strings, because these are in some senses literals. Comments are indicated by the `#` character and extend to the end of the line.

Perl is defined in terms of the ASCII character set. However, string literals may contain characters outside of the ASCII character set, and the delimiters you choose for various quoting mechanisms may be any non-alphanumeric, non-whitespace character.

Whitespace is required only between tokens that would otherwise be confused as a single token. All whitespace is equivalent for this purpose. A comment counts as whitespace. Newlines are distinguished from spaces only within quoted strings, and in formats and certain line-oriented forms of quoting.

One other lexical oddity is that if a line begins with `=` in a place where a statement would be legal, Perl ignores everything from that line down to the next line that says `=cut`. The ignored text is assumed to be POD, or plain old documentation. (The Perl distribution has programs that will turn POD commentary into manpages, LaTeX, or HTML documents.)

1.9 What You Don't Know Won't Hurt You (Much) |  | 2.2 Built-in Data Types