1PERLGLOSSARY(1)        Perl Programmers Reference Guide        PERLGLOSSARY(1)
2
3
4

NAME

6       perlglossary - Perl Glossary
7

DESCRIPTION

9       A glossary of terms (technical and otherwise) used in the Perl
10       documentation.  Other useful sources include the Free On-Line
11       Dictionary of Computing <http://foldoc.org/>, the Jargon File
12       <http://catb.org/~esr/jargon/>, and Wikipedia
13       <http://www.wikipedia.org/>.
14
15   A
16       accessor methods
17           A "method" used to indirectly inspect or update an "object"'s state
18           (its instance variables).
19
20       actual arguments
21           The scalar values that you supply to a "function" or "subroutine"
22           when you call it.  For instance, when you call "power("puff")", the
23           string "puff" is the actual argument.  See also "argument" and
24           "formal arguments".
25
26       address operator
27           Some languages work directly with the memory addresses of values,
28           but this can be like playing with fire.  Perl provides a set of
29           asbestos gloves for handling all memory management.  The closest to
30           an address operator in Perl is the backslash operator, but it gives
31           you a "hard reference", which is much safer than a memory address.
32
33       algorithm
34           A well-defined sequence of steps, clearly enough explained that
35           even a computer could do them.
36
37       alias
38           A nickname for something, which behaves in all ways as though you'd
39           used the original name instead of the nickname.  Temporary aliases
40           are implicitly created in the loop variable for "foreach" loops, in
41           the $_ variable for map or grep operators, in $a and $b during
42           sort's comparison function, and in each element of @_ for the
43           "actual arguments" of a subroutine call.  Permanent aliases are
44           explicitly created in packages by importing symbols or by
45           assignment to typeglobs.  Lexically scoped aliases for package
46           variables are explicitly created by the our declaration.
47
48       alternatives
49           A list of possible choices from which you may select only one, as
50           in "Would you like door A, B, or C?"  Alternatives in regular
51           expressions are separated with a single vertical bar: "|".
52           Alternatives in normal Perl expressions are separated with a double
53           vertical bar: "||".  Logical alternatives in "Boolean" expressions
54           are separated with either "||" or "or".
55
56       anonymous
57           Used to describe a "referent" that is not directly accessible
58           through a named "variable".  Such a referent must be indirectly
59           accessible through at least one "hard reference".  When the last
60           hard reference goes away, the anonymous referent is destroyed
61           without pity.
62
63       architecture
64           The kind of computer you're working on, where one "kind" of
65           computer means all those computers sharing a compatible machine
66           language.  Since Perl programs are (typically) simple text files,
67           not executable images, a Perl program is much less sensitive to the
68           architecture it's running on than programs in other languages, such
69           as C, that are compiled into machine code.  See also "platform" and
70           "operating system".
71
72       argument
73           A piece of data supplied to a program, "subroutine", "function", or
74           "method" to tell it what it's supposed to do.  Also called a
75           "parameter".
76
77       ARGV
78           The name of the array containing the "argument" "vector" from the
79           command line.  If you use the empty "<>" operator, "ARGV" is the
80           name of both the "filehandle" used to traverse the arguments and
81           the "scalar" containing the name of the current input file.
82
83       arithmetical operator
84           A "symbol" such as "+" or "/" that tells Perl to do the arithmetic
85           you were supposed to learn in grade school.
86
87       array
88           An ordered sequence of values, stored such that you can easily
89           access any of the values using an integer "subscript" that
90           specifies the value's "offset" in the sequence.
91
92       array context
93           An archaic expression for what is more correctly referred to as
94           "list context".
95
96       ASCII
97           The American Standard Code for Information Interchange (a 7-bit
98           character set adequate only for poorly representing English text).
99           Often used loosely to describe the lowest 128 values of the various
100           ISO-8859-X character sets, a bunch of mutually incompatible 8-bit
101           codes sometimes described as half ASCII.  See also "Unicode".
102
103       assertion
104           A component of a "regular expression" that must be true for the
105           pattern to match but does not necessarily match any characters
106           itself.  Often used specifically to mean a "zero width" assertion.
107
108       assignment
109           An "operator" whose assigned mission in life is to change the value
110           of a "variable".
111
112       assignment operator
113           Either a regular "assignment", or a compound "operator" composed of
114           an ordinary assignment and some other operator, that changes the
115           value of a variable in place, that is, relative to its old value.
116           For example, "$a += 2" adds 2 to $a.
117
118       associative array
119           See "hash".  Please.
120
121       associativity
122           Determines whether you do the left "operator" first or the right
123           "operator" first when you have "A "operator" B "operator" C" and
124           the two operators are of the same precedence.  Operators like "+"
125           are left associative, while operators like "**" are right
126           associative.  See perlop for a list of operators and their
127           associativity.
128
129       asynchronous
130           Said of events or activities whose relative temporal ordering is
131           indeterminate because too many things are going on at once.  Hence,
132           an asynchronous event is one you didn't know when to expect.
133
134       atom
135           A "regular expression" component potentially matching a "substring"
136           containing one or more characters and treated as an indivisible
137           syntactic unit by any following "quantifier".  (Contrast with an
138           "assertion" that matches something of "zero width" and may not be
139           quantified.)
140
141       atomic operation
142           When Democritus gave the word "atom" to the indivisible bits of
143           matter, he meant literally something that could not be cut: a-
144           (not) + tomos (cuttable).  An atomic operation is an action that
145           can't be interrupted, not one forbidden in a nuclear-free zone.
146
147       attribute
148           A new feature that allows the declaration of variables and
149           subroutines with modifiers as in "sub foo : locked method".  Also,
150           another name for an "instance variable" of an "object".
151
152       autogeneration
153           A feature of "operator overloading" of objects, whereby the
154           behavior of certain operators can be reasonably deduced using more
155           fundamental operators.  This assumes that the overloaded operators
156           will often have the same relationships as the regular operators.
157           See perlop.
158
159       autoincrement
160           To add one to something automatically, hence the name of the "++"
161           operator.  To instead subtract one from something automatically is
162           known as an "autodecrement".
163
164       autoload
165           To load on demand.  (Also called "lazy" loading.)  Specifically, to
166           call an AUTOLOAD subroutine on behalf of an undefined subroutine.
167
168       autosplit
169           To split a string automatically, as the -a "switch" does when
170           running under -p or -n in order to emulate "awk".  (See also the
171           AutoSplit module, which has nothing to do with the -a switch, but a
172           lot to do with autoloading.)
173
174       autovivification
175           A Greco-Roman word meaning "to bring oneself to life".  In Perl,
176           storage locations (lvalues) spontaneously generate themselves as
177           needed, including the creation of any "hard reference" values to
178           point to the next level of storage.  The assignment
179           "$a[5][5][5][5][5] = "quintet"" potentially creates five scalar
180           storage locations, plus four references (in the first four scalar
181           locations) pointing to four new anonymous arrays (to hold the last
182           four scalar locations).  But the point of autovivification is that
183           you don't have to worry about it.
184
185       AV  Short for "array value", which refers to one of Perl's internal
186           data types that holds an "array".  The "AV" type is a subclass of
187           "SV".
188
189       awk Descriptive editing term--short for "awkward".  Also coincidentally
190           refers to a venerable text-processing language from which Perl
191           derived some of its high-level ideas.
192
193   B
194       backreference
195           A substring captured by a subpattern within unadorned parentheses
196           in a "regex", also referred to as a capture group.  The sequences
197           ("\g1", "\g2", etc.)  later in the same pattern refer back to the
198           corresponding subpattern in the current match.  Outside the
199           pattern, the numbered variables ($1, $2, etc.) continue to refer to
200           these same values, as long as the pattern was the last successful
201           match of the current dynamic scope.  "\g{-1}" can be used to refer
202           to a group by relative rather than absolute position; and groups
203           can be also be named, and referred to later by name rather than
204           number.  See "Capture groups" in perlre.
205
206       backtracking
207           The practice of saying, "If I had to do it all over, I'd do it
208           differently," and then actually going back and doing it all over
209           differently.  Mathematically speaking, it's returning from an
210           unsuccessful recursion on a tree of possibilities.  Perl backtracks
211           when it attempts to match patterns with a "regular expression", and
212           its earlier attempts don't pan out.  See "Backtracking" in perlre.
213
214       backward compatibility
215           Means you can still run your old program because we didn't break
216           any of the features or bugs it was relying on.
217
218       bareword
219           A word sufficiently ambiguous to be deemed illegal under use strict
220           'subs'.  In the absence of that stricture, a bareword is treated as
221           if quotes were around it.
222
223       base class
224           A generic "object" type; that is, a "class" from which other, more
225           specific classes are derived genetically by "inheritance".  Also
226           called a "superclass" by people who respect their ancestors.
227
228       big-endian
229           From Swift: someone who eats eggs big end first.  Also used of
230           computers that store the most significant "byte" of a word at a
231           lower byte address than the least significant byte.  Often
232           considered superior to little-endian machines.  See also "little-
233           endian".
234
235       binary
236           Having to do with numbers represented in base 2.  That means
237           there's basically two numbers, 0 and 1.  Also used to describe a
238           "non-text file", presumably because such a file makes full use of
239           all the binary bits in its bytes.  With the advent of "Unicode",
240           this distinction, already suspect, loses even more of its meaning.
241
242       binary operator
243           An "operator" that takes two operands.
244
245       bind
246           To assign a specific "network address" to a "socket".
247
248       bit An integer in the range from 0 to 1, inclusive.  The smallest
249           possible unit of information storage.  An eighth of a "byte" or of
250           a dollar.  (The term "Pieces of Eight" comes from being able to
251           split the old Spanish dollar into 8 bits, each of which still
252           counted for money.  That's why a 25-cent piece today is still "two
253           bits".)
254
255       bit shift
256           The movement of bits left or right in a computer word, which has
257           the effect of multiplying or dividing by a power of 2.
258
259       bit string
260           A sequence of bits that is actually being thought of as a sequence
261           of bits, for once.
262
263       bless
264           In corporate life, to grant official approval to a thing, as in,
265           "The VP of Engineering has blessed our WebCruncher project."
266           Similarly in Perl, to grant official approval to a "referent" so
267           that it can function as an "object", such as a WebCruncher object.
268           See "bless" in perlfunc.
269
270       block
271           What a "process" does when it has to wait for something: "My
272           process blocked waiting for the disk."  As an unrelated noun, it
273           refers to a large chunk of data, of a size that the "operating
274           system" likes to deal with (normally a power of two such as 512 or
275           8192).  Typically refers to a chunk of data that's coming from or
276           going to a disk file.
277
278       BLOCK
279           A syntactic construct consisting of a sequence of Perl statements
280           that is delimited by braces.  The "if" and "while" statements are
281           defined in terms of BLOCKs, for instance.  Sometimes we also say
282           "block" to mean a lexical scope; that is, a sequence of statements
283           that act like a "BLOCK", such as within an eval or a file, even
284           though the statements aren't delimited by braces.
285
286       block buffering
287           A method of making input and output efficient by passing one
288           "block" at a time.  By default, Perl does block buffering to disk
289           files.  See "buffer" and "command buffering".
290
291       Boolean
292           A value that is either "true" or "false".
293
294       Boolean context
295           A special kind of "scalar context" used in conditionals to decide
296           whether the "scalar value" returned by an expression is "true" or
297           "false".  Does not evaluate as either a string or a number.  See
298           "context".
299
300       breakpoint
301           A spot in your program where you've told the debugger to stop
302           execution so you can poke around and see whether anything is wrong
303           yet.
304
305       broadcast
306           To send a "datagram" to multiple destinations simultaneously.
307
308       BSD A psychoactive drug, popular in the 80s, probably developed at U.
309           C. Berkeley or thereabouts.  Similar in many ways to the
310           prescription-only medication called "System V", but infinitely more
311           useful.  (Or, at least, more fun.)  The full chemical name is
312           "Berkeley Standard Distribution".
313
314       bucket
315           A location in a "hash table" containing (potentially) multiple
316           entries whose keys "hash" to the same hash value according to its
317           hash function.  (As internal policy, you don't have to worry about
318           it, unless you're into internals, or policy.)
319
320       buffer
321           A temporary holding location for data.  Block buffering means that
322           the data is passed on to its destination whenever the buffer is
323           full.  Line buffering means that it's passed on whenever a complete
324           line is received.  Command buffering means that it's passed every
325           time you do a print command (or equivalent).  If your output is
326           unbuffered, the system processes it one byte at a time without the
327           use of a holding area.  This can be rather inefficient.
328
329       built-in
330           A "function" that is predefined in the language.  Even when hidden
331           by "overriding", you can always get at a built-in function by
332           qualifying its name with the "CORE::" pseudo-package.
333
334       bundle
335           A group of related modules on "CPAN".  (Also, sometimes refers to a
336           group of command-line switches grouped into one "switch cluster".)
337
338       byte
339           A piece of data worth eight bits in most places.
340
341       bytecode
342           A pidgin-like language spoken among 'droids when they don't wish to
343           reveal their orientation (see "endian").  Named after some similar
344           languages spoken (for similar reasons) between compilers and
345           interpreters in the late 20th century.  These languages are
346           characterized by representing everything as a non-architecture-
347           dependent sequence of bytes.
348
349   C
350       C   A language beloved by many for its inside-out "type" definitions,
351           inscrutable "precedence" rules, and heavy "overloading" of the
352           function-call mechanism.  (Well, actually, people first switched to
353           C because they found lowercase identifiers easier to read than
354           upper.)  Perl is written in C, so it's not surprising that Perl
355           borrowed a few ideas from it.
356
357       C preprocessor
358           The typical C compiler's first pass, which processes lines
359           beginning with "#" for conditional compilation and macro definition
360           and does various manipulations of the program text based on the
361           current definitions.  Also known as cpp(1).
362
363       call by reference
364           An "argument"-passing mechanism in which the "formal arguments"
365           refer directly to the "actual arguments", and the "subroutine" can
366           change the actual arguments by changing the formal arguments.  That
367           is, the formal argument is an "alias" for the actual argument.  See
368           also "call by value".
369
370       call by value
371           An "argument"-passing mechanism in which the "formal arguments"
372           refer to a copy of the "actual arguments", and the "subroutine"
373           cannot change the actual arguments by changing the formal
374           arguments.  See also "call by reference".
375
376       callback
377           A "handler" that you register with some other part of your program
378           in the hope that the other part of your program will "trigger" your
379           handler when some event of interest transpires.
380
381       canonical
382           Reduced to a standard form to facilitate comparison.
383
384       capture buffer, capture group
385           These two terms are synonymous: a captured substring by a regex
386           subpattern.
387
388       capturing
389           The use of parentheses around a "subpattern" in a "regular
390           expression" to store the matched "substring" as a "backreference"
391           or capture group.  (Captured strings are also returned as a list in
392           "list context".)
393
394       character
395           A small integer representative of a unit of orthography.
396           Historically, characters were usually stored as fixed-width
397           integers (typically in a byte, or maybe two, depending on the
398           character set), but with the advent of UTF-8, characters are often
399           stored in a variable number of bytes depending on the size of the
400           integer that represents the character.  Perl manages this
401           transparently for you, for the most part.
402
403       character class
404           A square-bracketed list of characters used in a "regular
405           expression" to indicate that any character of the set may occur at
406           a given point.  Loosely, any predefined set of characters so used.
407
408       character property
409           A predefined "character class" matchable by the "\p" "metasymbol".
410           Many standard properties are defined for "Unicode".
411
412       circumfix operator
413           An "operator" that surrounds its "operand", like the angle
414           operator, or parentheses, or a hug.
415
416       class
417           A user-defined "type", implemented in Perl via a "package" that
418           provides (either directly or by inheritance) methods (that is,
419           subroutines) to handle instances of the class (its objects).  See
420           also "inheritance".
421
422       class method
423           A "method" whose "invocant" is a "package" name, not an "object"
424           reference.  A method associated with the class as a whole.
425
426       client
427           In networking, a "process" that initiates contact with a "server"
428           process in order to exchange data and perhaps receive a service.
429
430       cloister
431           A "cluster" used to restrict the scope of a "regular expression
432           modifier".
433
434       closure
435           An "anonymous" subroutine that, when a reference to it is generated
436           at run time, keeps track of the identities of externally visible
437           lexical variables even after those lexical variables have
438           supposedly gone out of "scope".  They're called "closures" because
439           this sort of behavior gives mathematicians a sense of closure.
440
441       cluster
442           A parenthesized "subpattern" used to group parts of a "regular
443           expression" into a single "atom".
444
445       CODE
446           The word returned by the ref function when you apply it to a
447           reference to a subroutine.  See also "CV".
448
449       code generator
450           A system that writes code for you in a low-level language, such as
451           code to implement the backend of a compiler.  See "program
452           generator".
453
454       code point
455           The position of a character in a character set encoding.  The
456           character "NULL" is almost certainly at the zeroth position in all
457           character sets, so its code point is 0.  The code point for the
458           "SPACE" character in the ASCII character set is 0x20, or 32
459           decimal; in EBCDIC it is 0x40, or 64 decimal.  The ord function
460           returns the code point of a character.
461
462           "code position" and "ordinal" mean the same thing as "code point".
463
464       code subpattern
465           A "regular expression" subpattern whose real purpose is to execute
466           some Perl code, for example, the "(?{...})" and "(??{...})"
467           subpatterns.
468
469       collating sequence
470           The order into which characters sort.  This is used by "string"
471           comparison routines to decide, for example, where in this glossary
472           to put "collating sequence".
473
474       command
475           In "shell" programming, the syntactic combination of a program name
476           and its arguments.  More loosely, anything you type to a shell (a
477           command interpreter) that starts it doing something.  Even more
478           loosely, a Perl "statement", which might start with a "label" and
479           typically ends with a semicolon.
480
481       command buffering
482           A mechanism in Perl that lets you store up the output of each Perl
483           "command" and then flush it out as a single request to the
484           "operating system".  It's enabled by setting the $| ($AUTOFLUSH)
485           variable to a true value.  It's used when you don't want data
486           sitting around not going where it's supposed to, which may happen
487           because the default on a "file" or "pipe" is to use "block
488           buffering".
489
490       command name
491           The name of the program currently executing, as typed on the
492           command line.  In C, the "command" name is passed to the program as
493           the first command-line argument.  In Perl, it comes in separately
494           as $0.
495
496       command-line arguments
497           The values you supply along with a program name when you tell a
498           "shell" to execute a "command".  These values are passed to a Perl
499           program through @ARGV.
500
501       comment
502           A remark that doesn't affect the meaning of the program.  In Perl,
503           a comment is introduced by a "#" character and continues to the end
504           of the line.
505
506       compilation unit
507           The "file" (or "string", in the case of eval) that is currently
508           being compiled.
509
510       compile phase
511           Any time before Perl starts running your main program.  See also
512           "run phase".  Compile phase is mostly spent in "compile time", but
513           may also be spent in "run time" when "BEGIN" blocks, use
514           declarations, or constant subexpressions are being evaluated.  The
515           startup and import code of any use declaration is also run during
516           compile phase.
517
518       compile time
519           The time when Perl is trying to make sense of your code, as opposed
520           to when it thinks it knows what your code means and is merely
521           trying to do what it thinks your code says to do, which is "run
522           time".
523
524       compiler
525           Strictly speaking, a program that munches up another program and
526           spits out yet another file containing the program in a "more
527           executable" form, typically containing native machine instructions.
528           The perl program is not a compiler by this definition, but it does
529           contain a kind of compiler that takes a program and turns it into a
530           more executable form (syntax trees) within the perl process itself,
531           which the "interpreter" then interprets.  There are, however,
532           extension modules to get Perl to act more like a "real" compiler.
533           See O.
534
535       composer
536           A "constructor" for a "referent" that isn't really an "object",
537           like an anonymous array or a hash (or a sonata, for that matter).
538           For example, a pair of braces acts as a composer for a hash, and a
539           pair of brackets acts as a composer for an array.  See "Making
540           References" in perlref.
541
542       concatenation
543           The process of gluing one cat's nose to another cat's tail.  Also,
544           a similar operation on two strings.
545
546       conditional
547           Something "iffy".  See "Boolean context".
548
549       connection
550           In telephony, the temporary electrical circuit between the caller's
551           and the callee's phone.  In networking, the same kind of temporary
552           circuit between a "client" and a "server".
553
554       construct
555           As a noun, a piece of syntax made up of smaller pieces.  As a
556           transitive verb, to create an "object" using a "constructor".
557
558       constructor
559           Any "class method", instance "method", or "subroutine" that
560           composes, initializes, blesses, and returns an "object".  Sometimes
561           we use the term loosely to mean a "composer".
562
563       context
564           The surroundings, or environment.  The context given by the
565           surrounding code determines what kind of data a particular
566           "expression" is expected to return.  The three primary contexts are
567           "list context", "scalar context", and "void context".  Scalar
568           context is sometimes subdivided into "Boolean context", "numeric
569           context", "string context", and "void context".  There's also a
570           "don't care" scalar context (which is dealt with in Programming
571           Perl, Third Edition, Chapter 2, "Bits and Pieces" if you care).
572
573       continuation
574           The treatment of more than one physical "line" as a single logical
575           line.  "Makefile" lines are continued by putting a backslash before
576           the "newline".  Mail headers as defined by RFC 822 are continued by
577           putting a space or tab after the newline.  In general, lines in
578           Perl do not need any form of continuation mark, because
579           "whitespace" (including newlines) is gleefully ignored.  Usually.
580
581       core dump
582           The corpse of a "process", in the form of a file left in the
583           "working directory" of the process, usually as a result of certain
584           kinds of fatal error.
585
586       CPAN
587           The Comprehensive Perl Archive Network.  (See "What modules and
588           extensions are available for Perl?  What is CPAN?" in perlfaq2).
589
590       cracker
591           Someone who breaks security on computer systems.  A cracker may be
592           a true "hacker" or only a "script kiddie".
593
594       current package
595           The "package" in which the current statement is compiled.  Scan
596           backwards in the text of your program through the current lexical
597           scope or any enclosing lexical scopes till you find a package
598           declaration.  That's your current package name.
599
600       current working directory
601           See "working directory".
602
603       currently selected output channel
604           The last "filehandle" that was designated with
605           select("FILEHANDLE"); "STDOUT", if no filehandle has been selected.
606
607       CV  An internal "code value" typedef, holding a "subroutine".  The "CV"
608           type is a subclass of "SV".
609
610   D
611       dangling statement
612           A bare, single "statement", without any braces, hanging off an "if"
613           or "while" conditional.  C allows them.  Perl doesn't.
614
615       data structure
616           How your various pieces of data relate to each other and what shape
617           they make when you put them all together, as in a rectangular table
618           or a triangular-shaped tree.
619
620       data type
621           A set of possible values, together with all the operations that
622           know how to deal with those values.  For example, a numeric data
623           type has a certain set of numbers that you can work with and
624           various mathematical operations that you can do on the numbers but
625           would make little sense on, say, a string such as "Kilroy".
626           Strings have their own operations, such as "concatenation".
627           Compound types made of a number of smaller pieces generally have
628           operations to compose and decompose them, and perhaps to rearrange
629           them.  Objects that model things in the real world often have
630           operations that correspond to real activities.  For instance, if
631           you model an elevator, your elevator object might have an
632           "open_door()" "method".
633
634       datagram
635           A packet of data, such as a "UDP" message, that (from the viewpoint
636           of the programs involved) can be sent independently over the
637           network.  (In fact, all packets are sent independently at the "IP"
638           level, but "stream" protocols such as "TCP" hide this from your
639           program.)
640
641       DBM Stands for "Data Base Management" routines, a set of routines that
642           emulate an "associative array" using disk files.  The routines use
643           a dynamic hashing scheme to locate any entry with only two disk
644           accesses.  DBM files allow a Perl program to keep a persistent
645           "hash" across multiple invocations.  You can tie your hash
646           variables to various DBM implementations--see AnyDBM_File and
647           DB_File.
648
649       declaration
650           An "assertion" that states something exists and perhaps describes
651           what it's like, without giving any commitment as to how or where
652           you'll use it.  A declaration is like the part of your recipe that
653           says, "two cups flour, one large egg, four or five tadpoles..."
654           See "statement" for its opposite.  Note that some declarations also
655           function as statements.  Subroutine declarations also act as
656           definitions if a body is supplied.
657
658       decrement
659           To subtract a value from a variable, as in "decrement $x" (meaning
660           to remove 1 from its value) or "decrement $x by 3".
661
662       default
663           A "value" chosen for you if you don't supply a value of your own.
664
665       defined
666           Having a meaning.  Perl thinks that some of the things people try
667           to do are devoid of meaning, in particular, making use of variables
668           that have never been given a "value" and performing certain
669           operations on data that isn't there.  For example, if you try to
670           read data past the end of a file, Perl will hand you back an
671           undefined value.  See also "false" and "defined" in perlfunc.
672
673       delimiter
674           A "character" or "string" that sets bounds to an arbitrarily-sized
675           textual object, not to be confused with a "separator" or
676           "terminator".  "To delimit" really just means "to surround" or "to
677           enclose" (like these parentheses are doing).
678
679       deprecated modules and features
680           Deprecated modules and features are those which were part of a
681           stable release, but later found to be subtly flawed, and which
682           should be avoided.  They are subject to removal and/or bug-
683           incompatible reimplementation in the next major release (but they
684           will be preserved through maintenance releases).  Deprecation
685           warnings are issued under -w or "use diagnostics", and notices are
686           found in perldeltas, as well as various other PODs. Coding
687           practices that misuse features, such as "my $foo if 0", can also be
688           deprecated.
689
690       dereference
691           A fancy computer science term meaning "to follow a "reference" to
692           what it points to".  The "de" part of it refers to the fact that
693           you're taking away one level of "indirection".
694
695       derived class
696           A "class" that defines some of its methods in terms of a more
697           generic class, called a "base class".  Note that classes aren't
698           classified exclusively into base classes or derived classes: a
699           class can function as both a derived class and a base class
700           simultaneously, which is kind of classy.
701
702       descriptor
703           See "file descriptor".
704
705       destroy
706           To deallocate the memory of a "referent" (first triggering its
707           "DESTROY" method, if it has one).
708
709       destructor
710           A special "method" that is called when an "object" is thinking
711           about destroying itself.  A Perl program's "DESTROY" method doesn't
712           do the actual destruction; Perl just triggers the method in case
713           the "class" wants to do any associated cleanup.
714
715       device
716           A whiz-bang hardware gizmo (like a disk or tape drive or a modem or
717           a joystick or a mouse) attached to your computer, that the
718           "operating system" tries to make look like a "file" (or a bunch of
719           files).  Under Unix, these fake files tend to live in the /dev
720           directory.
721
722       directive
723           A "pod" directive.  See perlpod.
724
725       directory
726           A special file that contains other files.  Some operating systems
727           call these "folders", "drawers", or "catalogs".
728
729       directory handle
730           A name that represents a particular instance of opening a directory
731           to read it, until you close it.  See the opendir function.
732
733       dispatch
734           To send something to its correct destination.  Often used
735           metaphorically to indicate a transfer of programmatic control to a
736           destination selected algorithmically, often by lookup in a table of
737           function references or, in the case of object methods, by
738           traversing the inheritance tree looking for the most specific
739           definition for the method.
740
741       distribution
742           A standard, bundled release of a system of software.  The default
743           usage implies source code is included.  If that is not the case, it
744           will be called a "binary-only" distribution.
745
746       (to be) dropped modules
747           When Perl 5 was first released (see perlhist), several modules were
748           included, which have now fallen out of common use.  It has been
749           suggested that these modules should be removed, since the
750           distribution became rather large, and the common criterion for new
751           module additions is now limited to modules that help to build,
752           test, and extend perl itself.  Furthermore, the CPAN (which didn't
753           exist at the time of Perl 5.0) can become the new home of dropped
754           modules. Dropping modules is currently not an option, but further
755           developments may clear the last barriers.
756
757       dweomer
758           An enchantment, illusion, phantasm, or jugglery.  Said when Perl's
759           magical "dwimmer" effects don't do what you expect, but rather seem
760           to be the product of arcane dweomercraft, sorcery, or wonder
761           working.  [From Old English]
762
763       dwimmer
764           DWIM is an acronym for "Do What I Mean", the principle that
765           something should just do what you want it to do without an undue
766           amount of fuss.  A bit of code that does "dwimming" is a "dwimmer".
767           Dwimming can require a great deal of behind-the-scenes magic, which
768           (if it doesn't stay properly behind the scenes) is called a
769           "dweomer" instead.
770
771       dynamic scoping
772           Dynamic scoping works over a dynamic scope, making variables
773           visible throughout the rest of the "block" in which they are first
774           used and in any subroutines that are called by the rest of the
775           block.  Dynamically scoped variables can have their values
776           temporarily changed (and implicitly restored later) by a local
777           operator.  (Compare "lexical scoping".)  Used more loosely to mean
778           how a subroutine that is in the middle of calling another
779           subroutine "contains" that subroutine at "run time".
780
781   E
782       eclectic
783           Derived from many sources.  Some would say too many.
784
785       element
786           A basic building block.  When you're talking about an "array", it's
787           one of the items that make up the array.
788
789       embedding
790           When something is contained in something else, particularly when
791           that might be considered surprising: "I've embedded a complete Perl
792           interpreter in my editor!"
793
794       empty list
795           See </null list>.
796
797       empty subclass test
798           The notion that an empty "derived class" should behave exactly like
799           its "base class".
800
801       en passant
802           When you change a "value" as it is being copied.  [From French, "in
803           passing", as in the exotic pawn-capturing maneuver in chess.]
804
805       encapsulation
806           The veil of abstraction separating the "interface" from the
807           "implementation" (whether enforced or not), which mandates that all
808           access to an "object"'s state be through methods alone.
809
810       endian
811           See "little-endian" and "big-endian".
812
813       environment
814           The collective set of environment variables your "process" inherits
815           from its parent.  Accessed via %ENV.
816
817       environment variable
818           A mechanism by which some high-level agent such as a user can pass
819           its preferences down to its future offspring (child processes,
820           grandchild processes, great-grandchild processes, and so on).  Each
821           environment variable is a "key"/"value" pair, like one entry in a
822           "hash".
823
824       EOF End of File.  Sometimes used metaphorically as the terminating
825           string of a "here document".
826
827       errno
828           The error number returned by a "syscall" when it fails.  Perl
829           refers to the error by the name $! (or $OS_ERROR if you use the
830           English module).
831
832       error
833           See "exception" or "fatal error".
834
835       escape sequence
836           See "metasymbol".
837
838       exception
839           A fancy term for an error.  See "fatal error".
840
841       exception handling
842           The way a program responds to an error.  The exception handling
843           mechanism in Perl is the eval operator.
844
845       exec
846           To throw away the current "process"'s program and replace it with
847           another without exiting the process or relinquishing any resources
848           held (apart from the old memory image).
849
850       executable file
851           A "file" that is specially marked to tell the "operating system"
852           that it's okay to run this file as a program.  Usually shortened to
853           "executable".
854
855       execute
856           To run a program or "subroutine".  (Has nothing to do with the kill
857           built-in, unless you're trying to run a "signal handler".)
858
859       execute bit
860           The special mark that tells the operating system it can run this
861           program.  There are actually three execute bits under Unix, and
862           which bit gets used depends on whether you own the file singularly,
863           collectively, or not at all.
864
865       exit status
866           See "status".
867
868       export
869           To make symbols from a "module" available for "import" by other
870           modules.
871
872       expression
873           Anything you can legally say in a spot where a "value" is required.
874           Typically composed of literals, variables, operators, functions,
875           and "subroutine" calls, not necessarily in that order.
876
877       extension
878           A Perl module that also pulls in compiled C or C++ code.  More
879           generally, any experimental option that can be compiled into Perl,
880           such as multithreading.
881
882   F
883       false
884           In Perl, any value that would look like "" or "0" if evaluated in a
885           string context.  Since undefined values evaluate to "", all
886           undefined values are false (including the "null list"), but not all
887           false values are undefined.
888
889       FAQ Frequently Asked Question (although not necessarily frequently
890           answered, especially if the answer appears in the Perl FAQ shipped
891           standard with Perl).
892
893       fatal error
894           An uncaught "exception", which causes termination of the "process"
895           after printing a message on your "standard error" stream.  Errors
896           that happen inside an eval are not fatal.  Instead, the eval
897           terminates after placing the exception message in the $@
898           ($EVAL_ERROR) variable.  You can try to provoke a fatal error with
899           the die operator (known as throwing or raising an exception), but
900           this may be caught by a dynamically enclosing eval.  If not caught,
901           the die becomes a fatal error.
902
903       field
904           A single piece of numeric or string data that is part of a longer
905           "string", "record", or "line".  Variable-width fields are usually
906           split up by separators (so use split to extract the fields), while
907           fixed-width fields are usually at fixed positions (so use unpack).
908           Instance variables are also known as fields.
909
910       FIFO
911           First In, First Out.  See also "LIFO".  Also, a nickname for a
912           "named pipe".
913
914       file
915           A named collection of data, usually stored on disk in a "directory"
916           in a "filesystem".  Roughly like a document, if you're into office
917           metaphors.  In modern filesystems, you can actually give a file
918           more than one name.  Some files have special properties, like
919           directories and devices.
920
921       file descriptor
922           The little number the "operating system" uses to keep track of
923           which opened "file" you're talking about.  Perl hides the file
924           descriptor inside a "standard I/O" stream and then attaches the
925           stream to a "filehandle".
926
927       file test operator
928           A built-in unary operator that you use to determine whether
929           something is "true" about a file, such as "-o $filename" to test
930           whether you're the owner of the file.
931
932       fileglob
933           A "wildcard" match on filenames.  See the glob function.
934
935       filehandle
936           An identifier (not necessarily related to the real name of a file)
937           that represents a particular instance of opening a file until you
938           close it.  If you're going to open and close several different
939           files in succession, it's fine to open each of them with the same
940           filehandle, so you don't have to write out separate code to process
941           each file.
942
943       filename
944           One name for a file.  This name is listed in a "directory", and you
945           can use it in an open to tell the "operating system" exactly which
946           file you want to open, and associate the file with a "filehandle"
947           which will carry the subsequent identity of that file in your
948           program, until you close it.
949
950       filesystem
951           A set of directories and files residing on a partition of the disk.
952           Sometimes known as a "partition".  You can change the file's name
953           or even move a file around from directory to directory within a
954           filesystem without actually moving the file itself, at least under
955           Unix.
956
957       filter
958           A program designed to take a "stream" of input and transform it
959           into a stream of output.
960
961       flag
962           We tend to avoid this term because it means so many things.  It may
963           mean a command-line "switch" that takes no argument itself (such as
964           Perl's -n and -p flags) or, less frequently, a single-bit indicator
965           (such as the "O_CREAT" and "O_EXCL" flags used in sysopen).
966
967       floating point
968           A method of storing numbers in "scientific notation", such that the
969           precision of the number is independent of its magnitude (the
970           decimal point "floats").  Perl does its numeric work with floating-
971           point numbers (sometimes called "floats"), when it can't get away
972           with using integers.  Floating-point numbers are mere
973           approximations of real numbers.
974
975       flush
976           The act of emptying a "buffer", often before it's full.
977
978       FMTEYEWTK
979           Far More Than Everything You Ever Wanted To Know.  An exhaustive
980           treatise on one narrow topic, something of a super-"FAQ".  See Tom
981           for far more.
982
983       fork
984           To create a child "process" identical to the parent process at its
985           moment of conception, at least until it gets ideas of its own.  A
986           thread with protected memory.
987
988       formal arguments
989           The generic names by which a "subroutine" knows its arguments.  In
990           many languages, formal arguments are always given individual names,
991           but in Perl, the formal arguments are just the elements of an
992           array.  The formal arguments to a Perl program are $ARGV[0],
993           $ARGV[1], and so on.  Similarly, the formal arguments to a Perl
994           subroutine are $_[0], $_[1], and so on.  You may give the arguments
995           individual names by assigning the values to a my list.  See also
996           "actual arguments".
997
998       format
999           A specification of how many spaces and digits and things to put
1000           somewhere so that whatever you're printing comes out nice and
1001           pretty.
1002
1003       freely available
1004           Means you don't have to pay money to get it, but the copyright on
1005           it may still belong to someone else (like Larry).
1006
1007       freely redistributable
1008           Means you're not in legal trouble if you give a bootleg copy of it
1009           to your friends and we find out about it.  In fact, we'd rather you
1010           gave a copy to all your friends.
1011
1012       freeware
1013           Historically, any software that you give away, particularly if you
1014           make the source code available as well.  Now often called "open
1015           source software".  Recently there has been a trend to use the term
1016           in contradistinction to "open source software", to refer only to
1017           free software released under the Free Software Foundation's GPL
1018           (General Public License), but this is difficult to justify
1019           etymologically.
1020
1021       function
1022           Mathematically, a mapping of each of a set of input values to a
1023           particular output value.  In computers, refers to a "subroutine" or
1024           "operator" that returns a "value".  It may or may not have input
1025           values (called arguments).
1026
1027       funny character
1028           Someone like Larry, or one of his peculiar friends.  Also refers to
1029           the strange prefixes that Perl requires as noun markers on its
1030           variables.
1031
1032   G
1033       garbage collection
1034           A misnamed feature--it should be called, "expecting your mother to
1035           pick up after you".  Strictly speaking, Perl doesn't do this, but
1036           it relies on a reference-counting mechanism to keep things tidy.
1037           However, we rarely speak strictly and will often refer to the
1038           reference-counting scheme as a form of garbage collection.  (If
1039           it's any comfort, when your interpreter exits, a "real" garbage
1040           collector runs to make sure everything is cleaned up if you've been
1041           messy with circular references and such.)
1042
1043       GID Group ID--in Unix, the numeric group ID that the "operating system"
1044           uses to identify you and members of your "group".
1045
1046       glob
1047           Strictly, the shell's "*" character, which will match a "glob" of
1048           characters when you're trying to generate a list of filenames.
1049           Loosely, the act of using globs and similar symbols to do pattern
1050           matching.  See also "fileglob" and "typeglob".
1051
1052       global
1053           Something you can see from anywhere, usually used of variables and
1054           subroutines that are visible everywhere in your program.  In Perl,
1055           only certain special variables are truly global--most variables
1056           (and all subroutines) exist only in the current "package".  Global
1057           variables can be declared with our.  See "our" in perlfunc.
1058
1059       global destruction
1060           The "garbage collection" of globals (and the running of any
1061           associated object destructors) that takes place when a Perl
1062           "interpreter" is being shut down.  Global destruction should not be
1063           confused with the Apocalypse, except perhaps when it should.
1064
1065       glue language
1066           A language such as Perl that is good at hooking things together
1067           that weren't intended to be hooked together.
1068
1069       granularity
1070           The size of the pieces you're dealing with, mentally speaking.
1071
1072       greedy
1073           A "subpattern" whose "quantifier" wants to match as many things as
1074           possible.
1075
1076       grep
1077           Originally from the old Unix editor command for "Globally search
1078           for a Regular Expression and Print it", now used in the general
1079           sense of any kind of search, especially text searches.  Perl has a
1080           built-in grep function that searches a list for elements matching
1081           any given criterion, whereas the grep(1) program searches for lines
1082           matching a "regular expression" in one or more files.
1083
1084       group
1085           A set of users of which you are a member.  In some operating
1086           systems (like Unix), you can give certain file access permissions
1087           to other members of your group.
1088
1089       GV  An internal "glob value" typedef, holding a "typeglob".  The "GV"
1090           type is a subclass of "SV".
1091
1092   H
1093       hacker
1094           Someone who is brilliantly persistent in solving technical
1095           problems, whether these involve golfing, fighting orcs, or
1096           programming.  Hacker is a neutral term, morally speaking.  Good
1097           hackers are not to be confused with evil crackers or clueless
1098           script kiddies.  If you confuse them, we will presume that you are
1099           either evil or clueless.
1100
1101       handler
1102           A "subroutine" or "method" that is called by Perl when your program
1103           needs to respond to some internal event, such as a "signal", or an
1104           encounter with an operator subject to "operator overloading".  See
1105           also "callback".
1106
1107       hard reference
1108           A "scalar" "value" containing the actual address of a "referent",
1109           such that the referent's "reference" count accounts for it.  (Some
1110           hard references are held internally, such as the implicit reference
1111           from one of a "typeglob"'s variable slots to its corresponding
1112           referent.)  A hard reference is different from a "symbolic
1113           reference".
1114
1115       hash
1116           An unordered association of "key"/"value" pairs, stored such that
1117           you can easily use a string "key" to look up its associated data
1118           "value".  This glossary is like a hash, where the word to be
1119           defined is the key, and the definition is the value.  A hash is
1120           also sometimes septisyllabically called an "associative array",
1121           which is a pretty good reason for simply calling it a "hash"
1122           instead. A hash can optionally be restricted to a fixed set of
1123           keys.
1124
1125       hash table
1126           A data structure used internally by Perl for implementing
1127           associative arrays (hashes) efficiently.  See also "bucket".
1128
1129       header file
1130           A file containing certain required definitions that you must
1131           include "ahead" of the rest of your program to do certain obscure
1132           operations.  A C header file has a .h extension.  Perl doesn't
1133           really have header files, though historically Perl has sometimes
1134           used translated .h files with a .ph extension.  See "require" in
1135           perlfunc.  (Header files have been superseded by the "module"
1136           mechanism.)
1137
1138       here document
1139           So called because of a similar construct in shells that pretends
1140           that the lines following the "command" are a separate "file" to be
1141           fed to the command, up to some terminating string.  In Perl,
1142           however, it's just a fancy form of quoting.
1143
1144       hexadecimal
1145           A number in base 16, "hex" for short.  The digits for 10 through 16
1146           are customarily represented by the letters "a" through "f".
1147           Hexadecimal constants in Perl start with "0x".  See also "hex" in
1148           perlfunc.
1149
1150       home directory
1151           The directory you are put into when you log in.  On a Unix system,
1152           the name is often placed into $ENV{HOME} or $ENV{LOGDIR} by login,
1153           but you can also find it with "(getpwuid($<))[7]".  (Some platforms
1154           do not have a concept of a home directory.)
1155
1156       host
1157           The computer on which a program or other data resides.
1158
1159       hubris
1160           Excessive pride, the sort of thing Zeus zaps you for.  Also the
1161           quality that makes you write (and maintain) programs that other
1162           people won't want to say bad things about.  Hence, the third great
1163           virtue of a programmer.  See also "laziness" and "impatience".
1164
1165       HV  Short for a "hash value" typedef, which holds Perl's internal
1166           representation of a hash.  The "HV" type is a subclass of "SV".
1167
1168   I
1169       identifier
1170           A legally formed name for most anything in which a computer program
1171           might be interested.  Many languages (including Perl) allow
1172           identifiers that start with a letter and contain letters and
1173           digits.  Perl also counts the underscore character as a valid
1174           letter.  (Perl also has more complicated names, such as "qualified"
1175           names.)
1176
1177       impatience
1178           The anger you feel when the computer is being lazy.  This makes you
1179           write programs that don't just react to your needs, but actually
1180           anticipate them.  Or at least that pretend to.  Hence, the second
1181           great virtue of a programmer.  See also "laziness" and "hubris".
1182
1183       implementation
1184           How a piece of code actually goes about doing its job.  Users of
1185           the code should not count on implementation details staying the
1186           same unless they are part of the published "interface".
1187
1188       import
1189           To gain access to symbols that are exported from another module.
1190           See "use" in perlfunc.
1191
1192       increment
1193           To increase the value of something by 1 (or by some other number,
1194           if so specified).
1195
1196       indexing
1197           In olden days, the act of looking up a "key" in an actual index
1198           (such as a phone book), but now merely the act of using any kind of
1199           key or position to find the corresponding "value", even if no index
1200           is involved.  Things have degenerated to the point that Perl's
1201           index function merely locates the position (index) of one string in
1202           another.
1203
1204       indirect filehandle
1205           An "expression" that evaluates to something that can be used as a
1206           "filehandle": a "string" (filehandle name), a "typeglob", a
1207           typeglob "reference", or a low-level "IO" object.
1208
1209       indirect object
1210           In English grammar, a short noun phrase between a verb and its
1211           direct object indicating the beneficiary or recipient of the
1212           action.  In Perl, "print STDOUT "$foo\n";" can be understood as
1213           "verb indirect-object object" where "STDOUT" is the recipient of
1214           the print action, and "$foo" is the object being printed.
1215           Similarly, when invoking a "method", you might place the invocant
1216           between the method and its arguments:
1217
1218             $gollum = new Pathetic::Creature "Smeagol";
1219             give $gollum "Fisssssh!";
1220             give $gollum "Precious!";
1221
1222           In modern Perl, calling methods this way is often considered bad
1223           practice and to be avoided.
1224
1225       indirect object slot
1226           The syntactic position falling between a method call and its
1227           arguments when using the indirect object invocation syntax.  (The
1228           slot is distinguished by the absence of a comma between it and the
1229           next argument.) "STDERR" is in the indirect object slot here:
1230
1231             print STDERR "Awake!  Awake!  Fear, Fire,
1232                 Foes!  Awake!\n";
1233
1234       indirection
1235           If something in a program isn't the value you're looking for but
1236           indicates where the value is, that's indirection.  This can be done
1237           with either symbolic references or hard references.
1238
1239       infix
1240           An "operator" that comes in between its operands, such as
1241           multiplication in "24 * 7".
1242
1243       inheritance
1244           What you get from your ancestors, genetically or otherwise.  If you
1245           happen to be a "class", your ancestors are called base classes and
1246           your descendants are called derived classes.  See "single
1247           inheritance" and "multiple inheritance".
1248
1249       instance
1250           Short for "an instance of a class", meaning an "object" of that
1251           "class".
1252
1253       instance variable
1254           An "attribute" of an "object"; data stored with the particular
1255           object rather than with the class as a whole.
1256
1257       integer
1258           A number with no fractional (decimal) part.  A counting number,
1259           like 1, 2, 3, and so on, but including 0 and the negatives.
1260
1261       interface
1262           The services a piece of code promises to provide forever, in
1263           contrast to its "implementation", which it should feel free to
1264           change whenever it likes.
1265
1266       interpolation
1267           The insertion of a scalar or list value somewhere in the middle of
1268           another value, such that it appears to have been there all along.
1269           In Perl, variable interpolation happens in double-quoted strings
1270           and patterns, and list interpolation occurs when constructing the
1271           list of values to pass to a list operator or other such construct
1272           that takes a "LIST".
1273
1274       interpreter
1275           Strictly speaking, a program that reads a second program and does
1276           what the second program says directly without turning the program
1277           into a different form first, which is what compilers do.  Perl is
1278           not an interpreter by this definition, because it contains a kind
1279           of compiler that takes a program and turns it into a more
1280           executable form (syntax trees) within the perl process itself,
1281           which the Perl "run time" system then interprets.
1282
1283       invocant
1284           The agent on whose behalf a "method" is invoked.  In a "class"
1285           method, the invocant is a package name.  In an "instance" method,
1286           the invocant is an object reference.
1287
1288       invocation
1289           The act of calling up a deity, daemon, program, method, subroutine,
1290           or function to get it do what you think it's supposed to do.  We
1291           usually "call" subroutines but "invoke" methods, since it sounds
1292           cooler.
1293
1294       I/O Input from, or output to, a "file" or "device".
1295
1296       IO  An internal I/O object.  Can also mean "indirect object".
1297
1298       IP  Internet Protocol, or Intellectual Property.
1299
1300       IPC Interprocess Communication.
1301
1302       is-a
1303           A relationship between two objects in which one object is
1304           considered to be a more specific version of the other, generic
1305           object: "A camel is a mammal."  Since the generic object really
1306           only exists in a Platonic sense, we usually add a little
1307           abstraction to the notion of objects and think of the relationship
1308           as being between a generic "base class" and a specific "derived
1309           class".  Oddly enough, Platonic classes don't always have Platonic
1310           relationships--see "inheritance".
1311
1312       iteration
1313           Doing something repeatedly.
1314
1315       iterator
1316           A special programming gizmo that keeps track of where you are in
1317           something that you're trying to iterate over.  The "foreach" loop
1318           in Perl contains an iterator; so does a hash, allowing you to each
1319           through it.
1320
1321       IV  The integer four, not to be confused with six, Tom's favorite
1322           editor.  IV also means an internal Integer Value of the type a
1323           "scalar" can hold, not to be confused with an "NV".
1324
1325   J
1326       JAPH
1327           "Just Another Perl Hacker," a clever but cryptic bit of Perl code
1328           that when executed, evaluates to that string.  Often used to
1329           illustrate a particular Perl feature, and something of an ongoing
1330           Obfuscated Perl Contest seen in Usenix signatures.
1331
1332   K
1333       key The string index to a "hash", used to look up the "value"
1334           associated with that key.
1335
1336       keyword
1337           See "reserved words".
1338
1339   L
1340       label
1341           A name you give to a "statement" so that you can talk about that
1342           statement elsewhere in the program.
1343
1344       laziness
1345           The quality that makes you go to great effort to reduce overall
1346           energy expenditure.  It makes you write labor-saving programs that
1347           other people will find useful, and document what you wrote so you
1348           don't have to answer so many questions about it.  Hence, the first
1349           great virtue of a programmer.  Also hence, this book.  See also
1350           "impatience" and "hubris".
1351
1352       left shift
1353           A "bit shift" that multiplies the number by some power of 2.
1354
1355       leftmost longest
1356           The preference of the "regular expression" engine to match the
1357           leftmost occurrence of a "pattern", then given a position at which
1358           a match will occur, the preference for the longest match (presuming
1359           the use of a "greedy" quantifier).  See perlre for much more on
1360           this subject.
1361
1362       lexeme
1363           Fancy term for a "token".
1364
1365       lexer
1366           Fancy term for a "tokener".
1367
1368       lexical analysis
1369           Fancy term for "tokenizing".
1370
1371       lexical scoping
1372           Looking at your Oxford English Dictionary through a microscope.
1373           (Also known as "static scoping", because dictionaries don't change
1374           very fast.)  Similarly, looking at variables stored in a private
1375           dictionary (namespace) for each scope, which are visible only from
1376           their point of declaration down to the end of the lexical scope in
1377           which they are declared.  --Syn. "static scoping".  --Ant. "dynamic
1378           scoping".
1379
1380       lexical variable
1381           A "variable" subject to "lexical scoping", declared by my.  Often
1382           just called a "lexical".  (The our declaration declares a lexically
1383           scoped name for a global variable, which is not itself a lexical
1384           variable.)
1385
1386       library
1387           Generally, a collection of procedures.  In ancient days, referred
1388           to a collection of subroutines in a .pl file.  In modern times,
1389           refers more often to the entire collection of Perl modules on your
1390           system.
1391
1392       LIFO
1393           Last In, First Out.  See also "FIFO".  A LIFO is usually called a
1394           "stack".
1395
1396       line
1397           In Unix, a sequence of zero or more non-newline characters
1398           terminated with a "newline" character.  On non-Unix machines, this
1399           is emulated by the C library even if the underlying "operating
1400           system" has different ideas.
1401
1402       line buffering
1403           Used by a "standard I/O" output stream that flushes its "buffer"
1404           after every "newline".  Many standard I/O libraries automatically
1405           set up line buffering on output that is going to the terminal.
1406
1407       line number
1408           The number of lines read previous to this one, plus 1.  Perl keeps
1409           a separate line number for each source or input file it opens.  The
1410           current source file's line number is represented by "__LINE__".
1411           The current input line number (for the file that was most recently
1412           read via "<FH>") is represented by the $.  ($INPUT_LINE_NUMBER)
1413           variable.  Many error messages report both values, if available.
1414
1415       link
1416           Used as a noun, a name in a "directory", representing a "file".  A
1417           given file can have multiple links to it.  It's like having the
1418           same phone number listed in the phone directory under different
1419           names.  As a verb, to resolve a partially compiled file's
1420           unresolved symbols into a (nearly) executable image.  Linking can
1421           generally be static or dynamic, which has nothing to do with static
1422           or dynamic scoping.
1423
1424       LIST
1425           A syntactic construct representing a comma-separated list of
1426           expressions, evaluated to produce a "list value".  Each
1427           "expression" in a "LIST" is evaluated in "list context" and
1428           interpolated into the list value.
1429
1430       list
1431           An ordered set of scalar values.
1432
1433       list context
1434           The situation in which an "expression" is expected by its
1435           surroundings (the code calling it) to return a list of values
1436           rather than a single value.  Functions that want a "LIST" of
1437           arguments tell those arguments that they should produce a list
1438           value.  See also "context".
1439
1440       list operator
1441           An "operator" that does something with a list of values, such as
1442           join or grep.  Usually used for named built-in operators (such as
1443           print, unlink, and system) that do not require parentheses around
1444           their "argument" list.
1445
1446       list value
1447           An unnamed list of temporary scalar values that may be passed
1448           around within a program from any list-generating function to any
1449           function or construct that provides a "list context".
1450
1451       literal
1452           A token in a programming language such as a number or "string" that
1453           gives you an actual "value" instead of merely representing possible
1454           values as a "variable" does.
1455
1456       little-endian
1457           From Swift: someone who eats eggs little end first.  Also used of
1458           computers that store the least significant "byte" of a word at a
1459           lower byte address than the most significant byte.  Often
1460           considered superior to big-endian machines.  See also "big-endian".
1461
1462       local
1463           Not meaning the same thing everywhere.  A global variable in Perl
1464           can be localized inside a dynamic scope via the local operator.
1465
1466       logical operator
1467           Symbols representing the concepts "and", "or", "xor", and "not".
1468
1469       lookahead
1470           An "assertion" that peeks at the string to the right of the current
1471           match location.
1472
1473       lookbehind
1474           An "assertion" that peeks at the string to the left of the current
1475           match location.
1476
1477       loop
1478           A construct that performs something repeatedly, like a roller
1479           coaster.
1480
1481       loop control statement
1482           Any statement within the body of a loop that can make a loop
1483           prematurely stop looping or skip an "iteration".  Generally you
1484           shouldn't try this on roller coasters.
1485
1486       loop label
1487           A kind of key or name attached to a loop (or roller coaster) so
1488           that loop control statements can talk about which loop they want to
1489           control.
1490
1491       lvaluable
1492           Able to serve as an "lvalue".
1493
1494       lvalue
1495           Term used by language lawyers for a storage location you can assign
1496           a new "value" to, such as a "variable" or an element of an "array".
1497           The "l" is short for "left", as in the left side of an assignment,
1498           a typical place for lvalues.  An "lvaluable" function or expression
1499           is one to which a value may be assigned, as in "pos($x) = 10".
1500
1501       lvalue modifier
1502           An adjectival pseudofunction that warps the meaning of an "lvalue"
1503           in some declarative fashion.  Currently there are three lvalue
1504           modifiers: my, our, and local.
1505
1506   M
1507       magic
1508           Technically speaking, any extra semantics attached to a variable
1509           such as $!, $0, %ENV, or %SIG, or to any tied variable.  Magical
1510           things happen when you diddle those variables.
1511
1512       magical increment
1513           An "increment" operator that knows how to bump up alphabetics as
1514           well as numbers.
1515
1516       magical variables
1517           Special variables that have side effects when you access them or
1518           assign to them.  For example, in Perl, changing elements of the
1519           %ENV array also changes the corresponding environment variables
1520           that subprocesses will use.  Reading the $! variable gives you the
1521           current system error number or message.
1522
1523       Makefile
1524           A file that controls the compilation of a program.  Perl programs
1525           don't usually need a "Makefile" because the Perl compiler has
1526           plenty of self-control.
1527
1528       man The Unix program that displays online documentation (manual pages)
1529           for you.
1530
1531       manpage
1532           A "page" from the manuals, typically accessed via the man(1)
1533           command.  A manpage contains a SYNOPSIS, a DESCRIPTION, a list of
1534           BUGS, and so on, and is typically longer than a page.  There are
1535           manpages documenting commands, syscalls, "library" functions,
1536           devices, protocols, files, and such.  In this book, we call any
1537           piece of standard Perl documentation (like perlop or perldelta) a
1538           manpage, no matter what format it's installed in on your system.
1539
1540       matching
1541           See "pattern matching".
1542
1543       member data
1544           See "instance variable".
1545
1546       memory
1547           This always means your main memory, not your disk.  Clouding the
1548           issue is the fact that your machine may implement "virtual" memory;
1549           that is, it will pretend that it has more memory than it really
1550           does, and it'll use disk space to hold inactive bits.  This can
1551           make it seem like you have a little more memory than you really do,
1552           but it's not a substitute for real memory.  The best thing that can
1553           be said about virtual memory is that it lets your performance
1554           degrade gradually rather than suddenly when you run out of real
1555           memory.  But your program can die when you run out of virtual
1556           memory too, if you haven't thrashed your disk to death first.
1557
1558       metacharacter
1559           A "character" that is not supposed to be treated normally.  Which
1560           characters are to be treated specially as metacharacters varies
1561           greatly from context to context.  Your "shell" will have certain
1562           metacharacters, double-quoted Perl strings have other
1563           metacharacters, and "regular expression" patterns have all the
1564           double-quote metacharacters plus some extra ones of their own.
1565
1566       metasymbol
1567           Something we'd call a "metacharacter" except that it's a sequence
1568           of more than one character.  Generally, the first character in the
1569           sequence must be a true metacharacter to get the other characters
1570           in the metasymbol to misbehave along with it.
1571
1572       method
1573           A kind of action that an "object" can take if you tell it to.  See
1574           perlobj.
1575
1576       minimalism
1577           The belief that "small is beautiful."  Paradoxically, if you say
1578           something in a small language, it turns out big, and if you say it
1579           in a big language, it turns out small.  Go figure.
1580
1581       mode
1582           In the context of the stat(2) syscall, refers to the field holding
1583           the "permission bits" and the type of the "file".
1584
1585       modifier
1586           See "statement modifier", "regular expression modifier", and
1587           "lvalue modifier", not necessarily in that order.
1588
1589       module
1590           A "file" that defines a "package" of (almost) the same name, which
1591           can either "export" symbols or function as an "object" class.  (A
1592           module's main .pm file may also load in other files in support of
1593           the module.)  See the use built-in.
1594
1595       modulus
1596           An integer divisor when you're interested in the remainder instead
1597           of the quotient.
1598
1599       monger
1600           Short for Perl Monger, a purveyor of Perl.
1601
1602       mortal
1603           A temporary value scheduled to die when the current statement
1604           finishes.
1605
1606       multidimensional array
1607           An array with multiple subscripts for finding a single element.
1608           Perl implements these using references--see perllol and perldsc.
1609
1610       multiple inheritance
1611           The features you got from your mother and father, mixed together
1612           unpredictably.  (See also "inheritance", and "single inheritance".)
1613           In computer languages (including Perl), the notion that a given
1614           class may have multiple direct ancestors or base classes.
1615
1616   N
1617       named pipe
1618           A "pipe" with a name embedded in the "filesystem" so that it can be
1619           accessed by two unrelated processes.
1620
1621       namespace
1622           A domain of names.  You needn't worry about whether the names in
1623           one such domain have been used in another.  See "package".
1624
1625       network address
1626           The most important attribute of a socket, like your telephone's
1627           telephone number.  Typically an IP address.  See also "port".
1628
1629       newline
1630           A single character that represents the end of a line, with the
1631           ASCII value of 012 octal under Unix (but 015 on a Mac), and
1632           represented by "\n" in Perl strings.  For Windows machines writing
1633           text files, and for certain physical devices like terminals, the
1634           single newline gets automatically translated by your C library into
1635           a line feed and a carriage return, but normally, no translation is
1636           done.
1637
1638       NFS Network File System, which allows you to mount a remote filesystem
1639           as if it were local.
1640
1641       null character
1642           A character with the ASCII value of zero.  It's used by C to
1643           terminate strings, but Perl allows strings to contain a null.
1644
1645       null list
1646           A valueless value represented in Perl by "()".  It is not really a
1647           "LIST", but an expression that yields "undef" in "scalar context"
1648           and a "list value" with zero elements in "list context".
1649
1650       null string
1651           A "string" containing no characters, not to be confused with a
1652           string containing a "null character", which has a positive length
1653           and is "true".
1654
1655       numeric context
1656           The situation in which an expression is expected by its
1657           surroundings (the code calling it) to return a number.  See also
1658           "context" and "string context".
1659
1660       NV  Short for Nevada, no part of which will ever be confused with
1661           civilization.  NV also means an internal floating-point Numeric
1662           Value of the type a "scalar" can hold, not to be confused with an
1663           "IV".
1664
1665       nybble
1666           Half a "byte", equivalent to one "hexadecimal" digit, and worth
1667           four bits.
1668
1669   O
1670       object
1671           An "instance" of a "class".  Something that "knows" what user-
1672           defined type (class) it is, and what it can do because of what
1673           class it is.  Your program can request an object to do things, but
1674           the object gets to decide whether it wants to do them or not.  Some
1675           objects are more accommodating than others.
1676
1677       octal
1678           A number in base 8.  Only the digits 0 through 7 are allowed.
1679           Octal constants in Perl start with 0, as in 013.  See also the oct
1680           function.
1681
1682       offset
1683           How many things you have to skip over when moving from the
1684           beginning of a string or array to a specific position within it.
1685           Thus, the minimum offset is zero, not one, because you don't skip
1686           anything to get to the first item.
1687
1688       one-liner
1689           An entire computer program crammed into one line of text.
1690
1691       open source software
1692           Programs for which the source code is freely available and freely
1693           redistributable, with no commercial strings attached.  For a more
1694           detailed definition, see <http://www.opensource.org/osd.html>.
1695
1696       operand
1697           An "expression" that yields a "value" that an "operator" operates
1698           on.  See also "precedence".
1699
1700       operating system
1701           A special program that runs on the bare machine and hides the gory
1702           details of managing processes and devices.  Usually used in a
1703           looser sense to indicate a particular culture of programming.  The
1704           loose sense can be used at varying levels of specificity.  At one
1705           extreme, you might say that all versions of Unix and Unix-
1706           lookalikes are the same operating system (upsetting many people,
1707           especially lawyers and other advocates).  At the other extreme, you
1708           could say this particular version of this particular vendor's
1709           operating system is different from any other version of this or any
1710           other vendor's operating system.  Perl is much more portable across
1711           operating systems than many other languages.  See also
1712           "architecture" and "platform".
1713
1714       operator
1715           A gizmo that transforms some number of input values to some number
1716           of output values, often built into a language with a special syntax
1717           or symbol.  A given operator may have specific expectations about
1718           what types of data you give as its arguments (operands) and what
1719           type of data you want back from it.
1720
1721       operator overloading
1722           A kind of "overloading" that you can do on built-in operators to
1723           make them work on objects as if the objects were ordinary scalar
1724           values, but with the actual semantics supplied by the object class.
1725           This is set up with the overload "pragma".
1726
1727       options
1728           See either switches or "regular expression modifier".
1729
1730       ordinal
1731           Another name for "code point"
1732
1733       overloading
1734           Giving additional meanings to a symbol or construct.  Actually, all
1735           languages do overloading to one extent or another, since people are
1736           good at figuring out things from "context".
1737
1738       overriding
1739           Hiding or invalidating some other definition of the same name.
1740           (Not to be confused with "overloading", which adds definitions that
1741           must be disambiguated some other way.) To confuse the issue
1742           further, we use the word with two overloaded definitions: to
1743           describe how you can define your own "subroutine" to hide a built-
1744           in "function" of the same name (see "Overriding Built-in Functions"
1745           in perlsub) and to describe how you can define a replacement
1746           "method" in a "derived class" to hide a "base class"'s method of
1747           the same name (see perlobj).
1748
1749       owner
1750           The one user (apart from the superuser) who has absolute control
1751           over a "file".  A file may also have a "group" of users who may
1752           exercise joint ownership if the real owner permits it.  See
1753           "permission bits".
1754
1755   P
1756       package
1757           A "namespace" for global variables, subroutines, and the like, such
1758           that they can be kept separate from like-named symbols in other
1759           namespaces.  In a sense, only the package is global, since the
1760           symbols in the package's symbol table are only accessible from code
1761           compiled outside the package by naming the package.  But in another
1762           sense, all package symbols are also globals--they're just well-
1763           organized globals.
1764
1765       pad Short for "scratchpad".
1766
1767       parameter
1768           See "argument".
1769
1770       parent class
1771           See "base class".
1772
1773       parse tree
1774           See "syntax tree".
1775
1776       parsing
1777           The subtle but sometimes brutal art of attempting to turn your
1778           possibly malformed program into a valid "syntax tree".
1779
1780       patch
1781           To fix by applying one, as it were.  In the realm of hackerdom, a
1782           listing of the differences between two versions of a program as
1783           might be applied by the patch(1) program when you want to fix a bug
1784           or upgrade your old version.
1785
1786       PATH
1787           The list of directories the system searches to find a program you
1788           want to "execute".  The list is stored as one of your environment
1789           variables, accessible in Perl as $ENV{PATH}.
1790
1791       pathname
1792           A fully qualified filename such as /usr/bin/perl.  Sometimes
1793           confused with "PATH".
1794
1795       pattern
1796           A template used in "pattern matching".
1797
1798       pattern matching
1799           Taking a pattern, usually a "regular expression", and trying the
1800           pattern various ways on a string to see whether there's any way to
1801           make it fit.  Often used to pick interesting tidbits out of a file.
1802
1803       permission bits
1804           Bits that the "owner" of a file sets or unsets to allow or disallow
1805           access to other people.  These flag bits are part of the "mode"
1806           word returned by the stat built-in when you ask about a file.  On
1807           Unix systems, you can check the ls(1) manpage for more information.
1808
1809       Pern
1810           What you get when you do "Perl++" twice.  Doing it only once will
1811           curl your hair.  You have to increment it eight times to shampoo
1812           your hair.  Lather, rinse, iterate.
1813
1814       pipe
1815           A direct "connection" that carries the output of one "process" to
1816           the input of another without an intermediate temporary file.  Once
1817           the pipe is set up, the two processes in question can read and
1818           write as if they were talking to a normal file, with some caveats.
1819
1820       pipeline
1821           A series of processes all in a row, linked by pipes, where each
1822           passes its output stream to the next.
1823
1824       platform
1825           The entire hardware and software context in which a program runs.
1826           A
1827            program written in a platform-dependent language might break if
1828           you change any of: machine, operating system, libraries, compiler,
1829           or system configuration.  The perl interpreter has to be compiled
1830           differently for each platform because it is implemented in C, but
1831           programs written in the Perl language are largely platform-
1832           independent.
1833
1834       pod The markup used to embed documentation into your Perl code.  See
1835           perlpod.
1836
1837       pointer
1838           A "variable" in a language like C that contains the exact memory
1839           location of some other item.  Perl handles pointers internally so
1840           you don't have to worry about them.  Instead, you just use symbolic
1841           pointers in the form of keys and "variable" names, or hard
1842           references, which aren't pointers (but act like pointers and do in
1843           fact contain pointers).
1844
1845       polymorphism
1846           The notion that you can tell an "object" to do something generic,
1847           and the object will interpret the command in different ways
1848           depending on its type.  [<Gk many shapes]
1849
1850       port
1851           The part of the address of a TCP or UDP socket that directs packets
1852           to the correct process after finding the right machine, something
1853           like the phone extension you give when you reach the company
1854           operator.  Also, the result of converting code to run on a
1855           different platform than originally intended, or the verb denoting
1856           this conversion.
1857
1858       portable
1859           Once upon a time, C code compilable under both BSD and SysV.  In
1860           general, code that can be easily converted to run on another
1861           "platform", where "easily" can be defined however you like, and
1862           usually is.  Anything may be considered portable if you try hard
1863           enough.  See mobile home or London Bridge.
1864
1865       porter
1866           Someone who "carries" software from one "platform" to another.
1867           Porting programs written in platform-dependent languages such as C
1868           can be difficult work, but porting programs like Perl is very much
1869           worth the agony.
1870
1871       POSIX
1872           The Portable Operating System Interface specification.
1873
1874       postfix
1875           An "operator" that follows its "operand", as in "$x++".
1876
1877       pp  An internal shorthand for a "push-pop" code, that is, C code
1878           implementing Perl's stack machine.
1879
1880       pragma
1881           A standard module whose practical hints and suggestions are
1882           received (and possibly ignored) at compile time.  Pragmas are named
1883           in all lowercase.
1884
1885       precedence
1886           The rules of conduct that, in the absence of other guidance,
1887           determine what should happen first.  For example, in the absence of
1888           parentheses, you always do multiplication before addition.
1889
1890       prefix
1891           An "operator" that precedes its "operand", as in "++$x".
1892
1893       preprocessing
1894           What some helper "process" did to transform the incoming data into
1895           a form more suitable for the current process.  Often done with an
1896           incoming "pipe".  See also "C preprocessor".
1897
1898       procedure
1899           A "subroutine".
1900
1901       process
1902           An instance of a running program.  Under multitasking systems like
1903           Unix, two or more separate processes could be running the same
1904           program independently at the same time--in fact, the fork function
1905           is designed to bring about this happy state of affairs.  Under
1906           other operating systems, processes are sometimes called "threads",
1907           "tasks", or "jobs", often with slight nuances in meaning.
1908
1909       program generator
1910           A system that algorithmically writes code for you in a high-level
1911           language.  See also "code generator".
1912
1913       progressive matching
1914           Pattern matching that picks up where it left off before.
1915
1916       property
1917           See either "instance variable" or "character property".
1918
1919       protocol
1920           In networking, an agreed-upon way of sending messages back and
1921           forth so that neither correspondent will get too confused.
1922
1923       prototype
1924           An optional part of a "subroutine" declaration telling the Perl
1925           compiler how many and what flavor of arguments may be passed as
1926           "actual arguments", so that you can write subroutine calls that
1927           parse much like built-in functions.  (Or don't parse, as the case
1928           may be.)
1929
1930       pseudofunction
1931           A construct that sometimes looks like a function but really isn't.
1932           Usually reserved for "lvalue" modifiers like my, for "context"
1933           modifiers like scalar, and for the pick-your-own-quotes constructs,
1934           "q//", "qq//", "qx//", "qw//", "qr//", "m//", "s///", "y///", and
1935           "tr///".
1936
1937       pseudohash
1938           A reference to an array whose initial element happens to hold a
1939           reference to a hash.  You can treat a pseudohash reference as
1940           either an array reference or a hash reference.
1941
1942       pseudoliteral
1943           An "operator" that looks something like a "literal", such as the
1944           output-grabbing operator, "`""command""`".
1945
1946       public domain
1947           Something not owned by anybody.  Perl is copyrighted and is thus
1948           not in the public domain--it's just "freely available" and "freely
1949           redistributable".
1950
1951       pumpkin
1952           A notional "baton" handed around the Perl community indicating who
1953           is the lead integrator in some arena of development.
1954
1955       pumpking
1956           A "pumpkin" holder, the person in charge of pumping the pump, or at
1957           least priming it.  Must be willing to play the part of the Great
1958           Pumpkin now and then.
1959
1960       PV  A "pointer value", which is Perl Internals Talk for a "char*".
1961
1962   Q
1963       qualified
1964           Possessing a complete name.  The symbol $Ent::moot is qualified;
1965           $moot is unqualified.  A fully qualified filename is specified from
1966           the top-level directory.
1967
1968       quantifier
1969           A component of a "regular expression" specifying how many times the
1970           foregoing "atom" may occur.
1971
1972   R
1973       readable
1974           With respect to files, one that has the proper permission bit set
1975           to let you access the file.  With respect to computer programs, one
1976           that's written well enough that someone has a chance of figuring
1977           out what it's trying to do.
1978
1979       reaping
1980           The last rites performed by a parent "process" on behalf of a
1981           deceased child process so that it doesn't remain a "zombie".  See
1982           the wait and waitpid function calls.
1983
1984       record
1985           A set of related data values in a "file" or "stream", often
1986           associated with a unique "key" field.  In Unix, often commensurate
1987           with a "line", or a blank-line-terminated set of lines (a
1988           "paragraph").  Each line of the /etc/passwd file is a record, keyed
1989           on login name, containing information about that user.
1990
1991       recursion
1992           The art of defining something (at least partly) in terms of itself,
1993           which is a naughty no-no in dictionaries but often works out okay
1994           in computer programs if you're careful not to recurse forever,
1995           which is like an infinite loop with more spectacular failure modes.
1996
1997       reference
1998           Where you look to find a pointer to information somewhere else.
1999           (See "indirection".)  References come in two flavors, symbolic
2000           references and hard references.
2001
2002       referent
2003           Whatever a reference refers to, which may or may not have a name.
2004           Common types of referents include scalars, arrays, hashes, and
2005           subroutines.
2006
2007       regex
2008           See "regular expression".
2009
2010       regular expression
2011           A single entity with various interpretations, like an elephant.  To
2012           a computer scientist, it's a grammar for a little language in which
2013           some strings are legal and others aren't.  To normal people, it's a
2014           pattern you can use to find what you're looking for when it varies
2015           from case to case.  Perl's regular expressions are far from regular
2016           in the theoretical sense, but in regular use they work quite well.
2017           Here's a regular expression: "/Oh s.*t./".  This will match strings
2018           like ""Oh say can you see by the dawn's early light"" and ""Oh
2019           sit!"".  See perlre.
2020
2021       regular expression modifier
2022           An option on a pattern or substitution, such as "/i" to render the
2023           pattern case insensitive.  See also "cloister".
2024
2025       regular file
2026           A "file" that's not a "directory", a "device", a named "pipe" or
2027           "socket", or a "symbolic link".  Perl uses the "-f" file test
2028           operator to identify regular files.  Sometimes called a "plain"
2029           file.
2030
2031       relational operator
2032           An "operator" that says whether a particular ordering relationship
2033           is "true" about a pair of operands.  Perl has both numeric and
2034           string relational operators.  See "collating sequence".
2035
2036       reserved words
2037           A word with a specific, built-in meaning to a "compiler", such as
2038           "if" or delete.  In many languages (not Perl), it's illegal to use
2039           reserved words to name anything else.  (Which is why they're
2040           reserved, after all.)  In Perl, you just can't use them to name
2041           labels or filehandles.  Also called "keywords".
2042
2043       restricted hash
2044           A "hash" with a closed set of allowed keys. See Hash::Util.
2045
2046       return value
2047           The "value" produced by a "subroutine" or "expression" when
2048           evaluated.  In Perl, a return value may be either a "list" or a
2049           "scalar".
2050
2051       RFC Request For Comment, which despite the timid connotations is the
2052           name of a series of important standards documents.
2053
2054       right shift
2055           A "bit shift" that divides a number by some power of 2.
2056
2057       root
2058           The superuser (UID == 0).  Also, the top-level directory of the
2059           filesystem.
2060
2061       RTFM
2062           What you are told when someone thinks you should Read The Fine
2063           Manual.
2064
2065       run phase
2066           Any time after Perl starts running your main program.  See also
2067           "compile phase".  Run phase is mostly spent in "run time" but may
2068           also be spent in "compile time" when require, do "FILE", or eval
2069           "STRING" operators are executed or when a substitution uses the
2070           "/ee" modifier.
2071
2072       run time
2073           The time when Perl is actually doing what your code says to do, as
2074           opposed to the earlier period of time when it was trying to figure
2075           out whether what you said made any sense whatsoever, which is
2076           "compile time".
2077
2078       run-time pattern
2079           A pattern that contains one or more variables to be interpolated
2080           before parsing the pattern as a "regular expression", and that
2081           therefore cannot be analyzed at compile time, but must be re-
2082           analyzed each time the pattern match operator is evaluated.  Run-
2083           time patterns are useful but expensive.
2084
2085       RV  A recreational vehicle, not to be confused with vehicular
2086           recreation.  RV also means an internal Reference Value of the type
2087           a "scalar" can hold.  See also "IV" and "NV" if you're not confused
2088           yet.
2089
2090       rvalue
2091           A "value" that you might find on the right side of an "assignment".
2092           See also "lvalue".
2093
2094   S
2095       scalar
2096           A simple, singular value; a number, "string", or "reference".
2097
2098       scalar context
2099           The situation in which an "expression" is expected by its
2100           surroundings (the code calling it) to return a single "value"
2101           rather than a "list" of values.  See also "context" and "list
2102           context".  A scalar context sometimes imposes additional
2103           constraints on the return value--see "string context" and "numeric
2104           context".  Sometimes we talk about a "Boolean context" inside
2105           conditionals, but this imposes no additional constraints, since any
2106           scalar value, whether numeric or "string", is already true or
2107           false.
2108
2109       scalar literal
2110           A number or quoted "string"--an actual "value" in the text of your
2111           program, as opposed to a "variable".
2112
2113       scalar value
2114           A value that happens to be a "scalar" as opposed to a "list".
2115
2116       scalar variable
2117           A "variable" prefixed with "$" that holds a single value.
2118
2119       scope
2120           How far away you can see a variable from, looking through one.
2121           Perl has two visibility mechanisms: it does "dynamic scoping" of
2122           local variables, meaning that the rest of the "block", and any
2123           subroutines that are called by the rest of the block, can see the
2124           variables that are local to the block.  Perl does "lexical scoping"
2125           of my variables, meaning that the rest of the block can see the
2126           variable, but other subroutines called by the block cannot see the
2127           variable.
2128
2129       scratchpad
2130           The area in which a particular invocation of a particular file or
2131           subroutine keeps some of its temporary values, including any
2132           lexically scoped variables.
2133
2134       script
2135           A text "file" that is a program intended to be executed directly
2136           rather than compiled to another form of file before execution.
2137           Also, in the context of "Unicode", a writing system for a
2138           particular language or group of languages, such as Greek, Bengali,
2139           or Klingon.
2140
2141       script kiddie
2142           A "cracker" who is not a "hacker", but knows just enough to run
2143           canned scripts.  A cargo-cult programmer.
2144
2145       sed A venerable Stream EDitor from which Perl derives some of its
2146           ideas.
2147
2148       semaphore
2149           A fancy kind of interlock that prevents multiple threads or
2150           processes from using up the same resources simultaneously.
2151
2152       separator
2153           A "character" or "string" that keeps two surrounding strings from
2154           being confused with each other.  The split function works on
2155           separators.  Not to be confused with delimiters or terminators.
2156           The "or" in the previous sentence separated the two alternatives.
2157
2158       serialization
2159           Putting a fancy "data structure" into linear order so that it can
2160           be stored as a "string" in a disk file or database or sent through
2161           a "pipe".  Also called marshalling.
2162
2163       server
2164           In networking, a "process" that either advertises a "service" or
2165           just hangs around at a known location and waits for clients who
2166           need service to get in touch with it.
2167
2168       service
2169           Something you do for someone else to make them happy, like giving
2170           them the time of day (or of their life).  On some machines, well-
2171           known services are listed by the getservent function.
2172
2173       setgid
2174           Same as "setuid", only having to do with giving away "group"
2175           privileges.
2176
2177       setuid
2178           Said of a program that runs with the privileges of its "owner"
2179           rather than (as is usually the case) the privileges of whoever is
2180           running it.  Also describes the bit in the mode word ("permission
2181           bits") that controls the feature.  This bit must be explicitly set
2182           by the owner to enable this feature, and the program must be
2183           carefully written not to give away more privileges than it ought
2184           to.
2185
2186       shared memory
2187           A piece of "memory" accessible by two different processes who
2188           otherwise would not see each other's memory.
2189
2190       shebang
2191           Irish for the whole McGillicuddy.  In Perl culture, a portmanteau
2192           of "sharp" and "bang", meaning the "#!" sequence that tells the
2193           system where to find the interpreter.
2194
2195       shell
2196           A "command"-line "interpreter".  The program that interactively
2197           gives you a prompt, accepts one or more lines of input, and
2198           executes the programs you mentioned, feeding each of them their
2199           proper arguments and input data.  Shells can also execute scripts
2200           containing such commands.  Under Unix, typical shells include the
2201           Bourne shell (/bin/sh), the C shell (/bin/csh), and the Korn shell
2202           (/bin/ksh).  Perl is not strictly a shell because it's not
2203           interactive (although Perl programs can be interactive).
2204
2205       side effects
2206           Something extra that happens when you evaluate an "expression".
2207           Nowadays it can refer to almost anything.  For example, evaluating
2208           a simple assignment statement typically has the "side effect" of
2209           assigning a value to a variable.  (And you thought assigning the
2210           value was your primary intent in the first place!)  Likewise,
2211           assigning a value to the special variable $| ($AUTOFLUSH) has the
2212           side effect of forcing a flush after every write or print on the
2213           currently selected filehandle.
2214
2215       signal
2216           A bolt out of the blue; that is, an event triggered by the
2217           "operating system", probably when you're least expecting it.
2218
2219       signal handler
2220           A "subroutine" that, instead of being content to be called in the
2221           normal fashion, sits around waiting for a bolt out of the blue
2222           before it will deign to "execute".  Under Perl, bolts out of the
2223           blue are called signals, and you send them with the kill built-in.
2224           See "%SIG" in perlvar and "Signals" in perlipc.
2225
2226       single inheritance
2227           The features you got from your mother, if she told you that you
2228           don't have a father.  (See also "inheritance" and "multiple
2229           inheritance".)  In computer languages, the notion that classes
2230           reproduce asexually so that a given class can only have one direct
2231           ancestor or "base class".  Perl supplies no such restriction,
2232           though you may certainly program Perl that way if you like.
2233
2234       slice
2235           A selection of any number of elements from a "list", "array", or
2236           "hash".
2237
2238       slurp
2239           To read an entire "file" into a "string" in one operation.
2240
2241       socket
2242           An endpoint for network communication among multiple processes that
2243           works much like a telephone or a post office box.  The most
2244           important thing about a socket is its "network address" (like a
2245           phone number).  Different kinds of sockets have different kinds of
2246           addresses--some look like filenames, and some don't.
2247
2248       soft reference
2249           See "symbolic reference".
2250
2251       source filter
2252           A special kind of "module" that does "preprocessing" on your script
2253           just before it gets to the "tokener".
2254
2255       stack
2256           A device you can put things on the top of, and later take them back
2257           off in the opposite order in which you put them on.  See "LIFO".
2258
2259       standard
2260           Included in the official Perl distribution, as in a standard
2261           module, a standard tool, or a standard Perl "manpage".
2262
2263       standard error
2264           The default output "stream" for nasty remarks that don't belong in
2265           "standard output".  Represented within a Perl program by the
2266           "filehandle" "STDERR".  You can use this stream explicitly, but the
2267           die and warn built-ins write to your standard error stream
2268           automatically.
2269
2270       standard I/O
2271           A standard C library for doing buffered input and output to the
2272           "operating system".  (The "standard" of standard I/O is only
2273           marginally related to the "standard" of standard input and output.)
2274           In general, Perl relies on whatever implementation of standard I/O
2275           a given operating system supplies, so the buffering characteristics
2276           of a Perl program on one machine may not exactly match those on
2277           another machine.  Normally this only influences efficiency, not
2278           semantics.  If your standard I/O package is doing block buffering
2279           and you want it to "flush" the buffer more often, just set the $|
2280           variable to a true value.
2281
2282       standard input
2283           The default input "stream" for your program, which if possible
2284           shouldn't care where its data is coming from.  Represented within a
2285           Perl program by the "filehandle" "STDIN".
2286
2287       standard output
2288           The default output "stream" for your program, which if possible
2289           shouldn't care where its data is going.  Represented within a Perl
2290           program by the "filehandle" "STDOUT".
2291
2292       stat structure
2293           A special internal spot in which Perl keeps the information about
2294           the last "file" on which you requested information.
2295
2296       statement
2297           A "command" to the computer about what to do next, like a step in a
2298           recipe: "Add marmalade to batter and mix until mixed."  A statement
2299           is distinguished from a "declaration", which doesn't tell the
2300           computer to do anything, but just to learn something.
2301
2302       statement modifier
2303           A "conditional" or "loop" that you put after the "statement"
2304           instead of before, if you know what we mean.
2305
2306       static
2307           Varying slowly compared to something else.  (Unfortunately,
2308           everything is relatively stable compared to something else, except
2309           for certain elementary particles, and we're not so sure about
2310           them.)  In computers, where things are supposed to vary rapidly,
2311           "static" has a derogatory connotation, indicating a slightly
2312           dysfunctional "variable", "subroutine", or "method".  In Perl
2313           culture, the word is politely avoided.
2314
2315       static method
2316           No such thing.  See "class method".
2317
2318       static scoping
2319           No such thing.  See "lexical scoping".
2320
2321       static variable
2322           No such thing.  Just use a "lexical variable" in a scope larger
2323           than your "subroutine".
2324
2325       status
2326           The "value" returned to the parent "process" when one of its child
2327           processes dies.  This value is placed in the special variable $?.
2328           Its upper eight bits are the exit status of the defunct process,
2329           and its lower eight bits identify the signal (if any) that the
2330           process died from.  On Unix systems, this status value is the same
2331           as the status word returned by wait(2).  See "system" in perlfunc.
2332
2333       STDERR
2334           See "standard error".
2335
2336       STDIN
2337           See "standard input".
2338
2339       STDIO
2340           See "standard I/O".
2341
2342       STDOUT
2343           See "standard output".
2344
2345       stream
2346           A flow of data into or out of a process as a steady sequence of
2347           bytes or characters, without the appearance of being broken up into
2348           packets.  This is a kind of "interface"--the underlying
2349           "implementation" may well break your data up into separate packets
2350           for delivery, but this is hidden from you.
2351
2352       string
2353           A sequence of characters such as "He said !@#*&%@#*?!".  A string
2354           does not have to be entirely printable.
2355
2356       string context
2357           The situation in which an expression is expected by its
2358           surroundings (the code calling it) to return a "string".  See also
2359           "context" and "numeric context".
2360
2361       stringification
2362           The process of producing a "string" representation of an abstract
2363           object.
2364
2365       struct
2366           C keyword introducing a structure definition or name.
2367
2368       structure
2369           See "data structure".
2370
2371       subclass
2372           See "derived class".
2373
2374       subpattern
2375           A component of a "regular expression" pattern.
2376
2377       subroutine
2378           A named or otherwise accessible piece of program that can be
2379           invoked from elsewhere in the program in order to accomplish some
2380           sub-goal of the program.  A subroutine is often parameterized to
2381           accomplish different but related things depending on its input
2382           arguments.  If the subroutine returns a meaningful "value", it is
2383           also called a "function".
2384
2385       subscript
2386           A "value" that indicates the position of a particular "array"
2387           "element" in an array.
2388
2389       substitution
2390           Changing parts of a string via the "s///" operator.  (We avoid use
2391           of this term to mean "variable interpolation".)
2392
2393       substring
2394           A portion of a "string", starting at a certain "character" position
2395           ("offset") and proceeding for a certain number of characters.
2396
2397       superclass
2398           See "base class".
2399
2400       superuser
2401           The person whom the "operating system" will let do almost anything.
2402           Typically your system administrator or someone pretending to be
2403           your system administrator.  On Unix systems, the "root" user.  On
2404           Windows systems, usually the Administrator user.
2405
2406       SV  Short for "scalar value".  But within the Perl interpreter every
2407           "referent" is treated as a member of a class derived from SV, in an
2408           object-oriented sort of way.  Every "value" inside Perl is passed
2409           around as a C language "SV*" pointer.  The SV "struct" knows its
2410           own "referent type", and the code is smart enough (we hope) not to
2411           try to call a "hash" function on a "subroutine".
2412
2413       switch
2414           An option you give on a command line to influence the way your
2415           program works, usually introduced with a minus sign.  The word is
2416           also used as a nickname for a "switch statement".
2417
2418       switch cluster
2419           The combination of multiple command-line switches (e.g., -a -b -c)
2420           into one switch (e.g., -abc).  Any switch with an additional
2421           "argument" must be the last switch in a cluster.
2422
2423       switch statement
2424           A program technique that lets you evaluate an "expression" and
2425           then, based on the value of the expression, do a multiway branch to
2426           the appropriate piece of code for that value.  Also called a "case
2427           structure", named after the similar Pascal construct.  See See
2428           "Basic BLOCKs" in perlsyn.
2429
2430       symbol
2431           Generally, any "token" or "metasymbol".  Often used more
2432           specifically to mean the sort of name you might find in a "symbol
2433           table".
2434
2435       symbol table
2436           Where a "compiler" remembers symbols.  A program like Perl must
2437           somehow remember all the names of all the variables, filehandles,
2438           and subroutines you've used.  It does this by placing the names in
2439           a symbol table, which is implemented in Perl using a "hash table".
2440           There is a separate symbol table for each "package" to give each
2441           package its own "namespace".
2442
2443       symbolic debugger
2444           A program that lets you step through the execution of your program,
2445           stopping or printing things out here and there to see whether
2446           anything has gone wrong, and if so, what.  The "symbolic" part just
2447           means that you can talk to the debugger using the same symbols with
2448           which your program is written.
2449
2450       symbolic link
2451           An alternate filename that points to the real "filename", which in
2452           turn points to the real "file".  Whenever the "operating system" is
2453           trying to parse a "pathname" containing a symbolic link, it merely
2454           substitutes the new name and continues parsing.
2455
2456       symbolic reference
2457           A variable whose value is the name of another variable or
2458           subroutine.  By dereferencing the first variable, you can get at
2459           the second one.  Symbolic references are illegal under use strict
2460           'refs'.
2461
2462       synchronous
2463           Programming in which the orderly sequence of events can be
2464           determined; that is, when things happen one after the other, not at
2465           the same time.
2466
2467       syntactic sugar
2468           An alternative way of writing something more easily; a shortcut.
2469
2470       syntax
2471           From Greek, "with-arrangement".  How things (particularly symbols)
2472           are put together with each other.
2473
2474       syntax tree
2475           An internal representation of your program wherein lower-level
2476           constructs dangle off the higher-level constructs enclosing them.
2477
2478       syscall
2479           A "function" call directly to the "operating system".  Many of the
2480           important subroutines and functions you use aren't direct system
2481           calls, but are built up in one or more layers above the system call
2482           level.  In general, Perl programmers don't need to worry about the
2483           distinction.  However, if you do happen to know which Perl
2484           functions are really syscalls, you can predict which of these will
2485           set the $!  ($ERRNO) variable on failure.  Unfortunately, beginning
2486           programmers often confusingly employ the term "system call" to mean
2487           what happens when you call the Perl system function, which actually
2488           involves many syscalls.  To avoid any confusion, we nearly always
2489           use say "syscall" for something you could call indirectly via
2490           Perl's syscall function, and never for something you would call
2491           with Perl's system function.
2492
2493   T
2494       tainted
2495           Said of data derived from the grubby hands of a user and thus
2496           unsafe for a secure program to rely on.  Perl does taint checks if
2497           you run a "setuid" (or "setgid") program, or if you use the -T
2498           switch.
2499
2500       TCP Short for Transmission Control Protocol.  A protocol wrapped around
2501           the Internet Protocol to make an unreliable packet transmission
2502           mechanism appear to the application program to be a reliable
2503           "stream" of bytes.  (Usually.)
2504
2505       term
2506           Short for a "terminal", that is, a leaf node of a "syntax tree".  A
2507           thing that functions grammatically as an "operand" for the
2508           operators in an expression.
2509
2510       terminator
2511           A "character" or "string" that marks the end of another string.
2512           The $/ variable contains the string that terminates a readline
2513           operation, which chomp deletes from the end.  Not to be confused
2514           with delimiters or separators.  The period at the end of this
2515           sentence is a terminator.
2516
2517       ternary
2518           An "operator" taking three operands.  Sometimes pronounced
2519           "trinary".
2520
2521       text
2522           A "string" or "file" containing primarily printable characters.
2523
2524       thread
2525           Like a forked process, but without "fork"'s inherent memory
2526           protection.  A thread is lighter weight than a full process, in
2527           that a process could have multiple threads running around in it,
2528           all fighting over the same process's memory space unless steps are
2529           taken to protect threads from each other.  See threads.
2530
2531       tie The bond between a magical variable and its implementation class.
2532           See "tie" in perlfunc and perltie.
2533
2534       TMTOWTDI
2535           There's More Than One Way To Do It, the Perl Motto.  The notion
2536           that there can be more than one valid path to solving a programming
2537           problem in context.  (This doesn't mean that more ways are always
2538           better or that all possible paths are equally desirable--just that
2539           there need not be One True Way.)  Pronounced TimToady.
2540
2541       token
2542           A morpheme in a programming language, the smallest unit of text
2543           with semantic significance.
2544
2545       tokener
2546           A module that breaks a program text into a sequence of tokens for
2547           later analysis by a parser.
2548
2549       tokenizing
2550           Splitting up a program text into tokens.  Also known as "lexing",
2551           in which case you get "lexemes" instead of tokens.
2552
2553       toolbox approach
2554           The notion that, with a complete set of simple tools that work well
2555           together, you can build almost anything you want.  Which is fine if
2556           you're assembling a tricycle, but if you're building a
2557           defranishizing comboflux regurgalator, you really want your own
2558           machine shop in which to build special tools.  Perl is sort of a
2559           machine shop.
2560
2561       transliterate
2562           To turn one string representation into another by mapping each
2563           character of the source string to its corresponding character in
2564           the result string.  See "tr/SEARCHLIST/REPLACEMENTLIST/cdsr" in
2565           perlop.
2566
2567       trigger
2568           An event that causes a "handler" to be run.
2569
2570       trinary
2571           Not a stellar system with three stars, but an "operator" taking
2572           three operands.  Sometimes pronounced "ternary".
2573
2574       troff
2575           A venerable typesetting language from which Perl derives the name
2576           of its $% variable and which is secretly used in the production of
2577           Camel books.
2578
2579       true
2580           Any scalar value that doesn't evaluate to 0 or "".
2581
2582       truncating
2583           Emptying a file of existing contents, either automatically when
2584           opening a file for writing or explicitly via the truncate function.
2585
2586       type
2587           See "data type" and "class".
2588
2589       type casting
2590           Converting data from one type to another.  C permits this.  Perl
2591           does not need it.  Nor want it.
2592
2593       typed lexical
2594           A "lexical variable" that is declared with a "class" type: "my Pony
2595           $bill".
2596
2597       typedef
2598           A type definition in the C language.
2599
2600       typeglob
2601           Use of a single identifier, prefixed with "*".  For example, *name
2602           stands for any or all of $name, @name, %name, &name, or just
2603           "name".  How you use it determines whether it is interpreted as all
2604           or only one of them.  See "Typeglobs and Filehandles" in perldata.
2605
2606       typemap
2607           A description of how C types may be transformed to and from Perl
2608           types within an "extension" module written in "XS".
2609
2610   U
2611       UDP User Datagram Protocol, the typical way to send datagrams over the
2612           Internet.
2613
2614       UID A user ID.  Often used in the context of "file" or "process"
2615           ownership.
2616
2617       umask
2618           A mask of those "permission bits" that should be forced off when
2619           creating files or directories, in order to establish a policy of
2620           whom you'll ordinarily deny access to.  See the umask function.
2621
2622       unary operator
2623           An operator with only one "operand", like "!" or chdir.  Unary
2624           operators are usually prefix operators; that is, they precede their
2625           operand.  The "++" and "--" operators can be either prefix or
2626           postfix.  (Their position does change their meanings.)
2627
2628       Unicode
2629           A character set comprising all the major character sets of the
2630           world, more or less.  See perlunicode and <http://www.unicode.org>.
2631
2632       Unix
2633           A very large and constantly evolving language with several
2634           alternative and largely incompatible syntaxes, in which anyone can
2635           define anything any way they choose, and usually do.  Speakers of
2636           this language think it's easy to learn because it's so easily
2637           twisted to one's own ends, but dialectical differences make tribal
2638           intercommunication nearly impossible, and travelers are often
2639           reduced to a pidgin-like subset of the language.  To be universally
2640           understood, a Unix shell programmer must spend years of study in
2641           the art.  Many have abandoned this discipline and now communicate
2642           via an Esperanto-like language called Perl.
2643
2644           In ancient times, Unix was also used to refer to some code that a
2645           couple of people at Bell Labs wrote to make use of a PDP-7 computer
2646           that wasn't doing much of anything else at the time.
2647
2648   V
2649       value
2650           An actual piece of data, in contrast to all the variables,
2651           references, keys, indexes, operators, and whatnot that you need to
2652           access the value.
2653
2654       variable
2655           A named storage location that can hold any of various kinds of
2656           "value", as your program sees fit.
2657
2658       variable interpolation
2659           The "interpolation" of a scalar or array variable into a string.
2660
2661       variadic
2662           Said of a "function" that happily receives an indeterminate number
2663           of "actual arguments".
2664
2665       vector
2666           Mathematical jargon for a list of scalar values.
2667
2668       virtual
2669           Providing the appearance of something without the reality, as in:
2670           virtual memory is not real memory.  (See also "memory".)  The
2671           opposite of "virtual" is "transparent", which means providing the
2672           reality of something without the appearance, as in: Perl handles
2673           the variable-length UTF-8 character encoding transparently.
2674
2675       void context
2676           A form of "scalar context" in which an "expression" is not expected
2677           to return any "value" at all and is evaluated for its "side
2678           effects" alone.
2679
2680       v-string
2681           A "version" or "vector" "string" specified with a "v" followed by a
2682           series of decimal integers in dot notation, for instance,
2683           "v1.20.300.4000".  Each number turns into a "character" with the
2684           specified ordinal value.  (The "v" is optional when there are at
2685           least three integers.)
2686
2687   W
2688       warning
2689           A message printed to the "STDERR" stream to the effect that
2690           something might be wrong but isn't worth blowing up over.  See
2691           "warn" in perlfunc and the warnings pragma.
2692
2693       watch expression
2694           An expression which, when its value changes, causes a breakpoint in
2695           the Perl debugger.
2696
2697       whitespace
2698           A "character" that moves your cursor but doesn't otherwise put
2699           anything on your screen.  Typically refers to any of: space, tab,
2700           line feed, carriage return, or form feed.
2701
2702       word
2703           In normal "computerese", the piece of data of the size most
2704           efficiently handled by your computer, typically 32 bits or so, give
2705           or take a few powers of 2.  In Perl culture, it more often refers
2706           to an alphanumeric "identifier" (including underscores), or to a
2707           string of nonwhitespace characters bounded by whitespace or string
2708           boundaries.
2709
2710       working directory
2711           Your current "directory", from which relative pathnames are
2712           interpreted by the "operating system".  The operating system knows
2713           your current directory because you told it with a chdir or because
2714           you started out in the place where your parent "process" was when
2715           you were born.
2716
2717       wrapper
2718           A program or subroutine that runs some other program or subroutine
2719           for you, modifying some of its input or output to better suit your
2720           purposes.
2721
2722       WYSIWYG
2723           What You See Is What You Get.  Usually used when something that
2724           appears on the screen matches how it will eventually look, like
2725           Perl's format declarations.  Also used to mean the opposite of
2726           magic because everything works exactly as it appears, as in the
2727           three-argument form of open.
2728
2729   X
2730       XS  A language to extend Perl with C and C++. XS is an interface
2731           description file format used to create an extension interface
2732           between Perl and C code (or a C library) which one wishes to use
2733           with Perl.  See perlxs for the exact explanation or read the
2734           perlxstut tutorial.
2735
2736       XSUB
2737           An external "subroutine" defined in "XS".
2738
2739   Y
2740       yacc
2741           Yet Another Compiler Compiler.  A parser generator without which
2742           Perl probably would not have existed.  See the file perly.y in the
2743           Perl source distribution.
2744
2745   Z
2746       zero width
2747           A subpattern "assertion" matching the "null string" between
2748           characters.
2749
2750       zombie
2751           A process that has died (exited) but whose parent has not yet
2752           received proper notification of its demise by virtue of having
2753           called wait or waitpid.  If you fork, you must clean up after your
2754           child processes when they exit, or else the process table will fill
2755           up and your system administrator will Not Be Happy with you.
2756
2758       Based on the Glossary of Programming Perl, Third Edition, by Larry
2759       Wall, Tom Christiansen & Jon Orwant.  Copyright (c) 2000, 1996, 1991
2760       O'Reilly Media, Inc.  This document may be distributed under the same
2761       terms as Perl itself.
2762
2763
2764
2765perl v5.16.3                      2013-03-04                   PERLGLOSSARY(1)
Impressum