=encoding utf8 =head1 NAME perlglossary - Perl Glossary =head1 VERSION version 5.20180605 =head1 DESCRIPTION A glossary of terms (technical and otherwise) used in the Perl documentation, derived from the Glossary of I, Fourth Edition. Words or phrases in bold are defined elsewhere in this glossary. Other useful sources include the Unicode Glossary L, the Free On-Line Dictionary of Computing L, the Jargon File L, and Wikipedia L. =head2 A =over 4 =item accessor methods A BXmethod> used to indirectly inspect or update an B’s state (its B). =item actual arguments The BXscalar values> that you supply to a B or B when you call it. For instance, when you call C, the string C<"puff"> is the actual argument. See also B and B. =item address operator Some X
languages work directly with the memory addresses of values, but this can be like playing with fire. Perl provides a set of asbestos gloves for handling all memory management. The closest to an address operator in Perl is the backslash operator, but it gives you a B, which is much safer than a memory address. =item algorithm A Xwell-defined sequence of steps, explained clearly enough that even a computer could do them. =item alias A Xnickname for something, which behaves in all ways as though you’d used the original name instead of the nickname. Temporary aliases are implicitly created in the loop variable for C loops, in the C<$_> variable for C or C operators, in C<$a> and C<$b> during C’s comparison function, and in each element of C<@_> for the B of a subroutine call. Permanent aliases are explicitly created in B by B symbols or by assignment to B. Lexically scoped aliases for package variables are explicitly created by the C declaration. =item alphabetic The Xsort of characters we put into words. In Unicode, this is all letters including all ideographs and certain diacritics, letter numbers like Roman numerals, and various combining marks. =item alternatives A Xlist of possible choices from which you may select only one, as in, “Would you like door A, B, or C?” Alternatives in regular expressions are separated with a single vertical bar: C<|>. Alternatives in normal Perl expressions are separated with a double vertical bar: C<||>. Logical alternatives in B expressions are separated with either C<||> or C. =item anonymous Used to XXdescribe a B that is not directly accessible through a named B. Such a referent must be indirectly accessible through at least one B. When the last hard reference goes away, the anonymous referent is destroyed without pity. =item application A Xbigger, fancier sort of B with a fancier name so people don’t realize they are using a program. =item architecture The kind of Xcomputer you’re working on, where one “kind of computer” means all those computers sharing a compatible machine language. Since Perl programs are (typically) simple text files, not executable images, a Perl program is much less sensitive to the architecture it’s running on than programs in other languages, such as C, that are B into machine code. See also B and B. =item argument A Xpiece of data supplied to a B, B, B, or B to tell it what it’s supposed to do. Also called a “parameter”. =item ARGV The name of the Xarray containing the B B from the command line. If you use the empty CE> operator, C is the name of both the B used to traverse the arguments and the B containing the name of the current input file. =item arithmetical operator A Bsymbol> such as C<+> or C that tells Perl to do the arithmetic you were supposed to learn in grade school. =item array An Xordered sequence of B, stored such that you can easily access any of the values using an I that specifies the value’s B in the sequence. =item array context An archaic Xexpression for what is more correctly referred to as B. =item Artistic License The open Xsource license that XLarry Wall created for Perl, maximizing Perl’s usefulness, availability, and modifiability. The current version is 2. (L). =item ASCII The XXAmerican Standard Code for Information Interchange (a 7-bit character set adequate only for poorly representing English text). Often used loosely to describe the lowest 128 values of the various ISO-8859-X character sets, a bunch of mutually incompatible 8-bit codes best described as half ASCII. See also B. =item assertion A XXcomponent of a B that must be true for the pattern to match but does not necessarily match any characters itself. Often used specifically to mean a B assertion. =item assignment An XB whose assigned mission in life is to change the value of a B. =item assignment operator Either a Xregular B or a compound B composed of an ordinary assignment and some other operator, that changes the value of a variable in place; that is, relative to its old value. For example, C<$a += 2> adds C<2> to C<$a>. =item associative array See B. XPlease. The term associative array is the old Perl 4 term for a B. Some languages call it a dictionary. =item associativity Determines Xwhether you do the left B first or the right B first when you have “A B B B C”, and the two operators are of the same precedence. Operators like C<+> are left associative, while operators like C<**> are right associative. See Camel chapter 3, “Unary and Binary Operators” for a list of operators and their associativity. =item asynchronous Said of Xevents or activities whose relative temporal ordering is indeterminate because too many things are going on at once. Hence, an asynchronous event is one you didn’t know when to expect. =item atom A Bexpression> component potentially matching a B containing one or more characters and treated as an indivisible syntactic unit by any following B. (Contrast with an B that matches something of B and may not be quantified.) =item atomic operation When XDemocritus gave the word “atom” to the indivisible bits of matter, he meant literally something that could not be cut: I<ἀ-> (not) + I<-τομος> (cuttable). An atomic operation is an action that can’t be interrupted, not one forbidden in a nuclear-free zone. =item attribute A new Xfeature that allows the declaration of B and B with modifiers, as in C. Also another name for an B of an B. =item autogeneration A Xfeature of B of B, whereby the behavior of certain B can be reasonably deduced using more fundamental operators. This assumes that the overloaded operators will often have the same relationships as the regular operators. See Camel chapter 13, “Overloading”. =item autoincrement To Xadd one to something automatically, hence the name of the C<++> operator. To instead subtract one from something automatically is known as an “autodecrement”. =item autoload To Xload on demand. (Also called “lazy” loading.) Specifically, to call an C subroutine on behalf of an undefined subroutine. =item autosplit To Xsplit a string automatically, as the I<–a> B does when running under I<–p> or I<–n> in order to emulate B. (See also the CX module, which has nothing to do with the C<–a> switch but a lot to do with autoloading.) =item autovivification A XGraeco-Roman word meaning “to bring oneself to life”. In Perl, storage locations (B) spontaneously generate themselves as needed, including the creation of any B values to point to the next level of storage. The assignment C<$a[5][5][5][5][5] = "quintet"> potentially creates five scalar storage locations, plus four references (in the first four scalar locations) pointing to four new anonymous arrays (to hold the last four scalar locations). But the point of autovivification is that you don’t have to worry about it. =item AV Short XXXfor “array value”, which refers to one of Perl’s internal data types that holds an B. The C type is a subclass of B. =item awk Descriptive Xediting term—short for “awkward”. Also coincidentally refers to a venerable text-processing language from which Perl derived some of its high-level ideas. =back =head2 B =over 4 =item backreference A XXsubstring B by a subpattern within unadorned parentheses in a B. Backslashed decimal numbers (C<\1>, C<\2>, etc.) later in the same pattern refer back to the corresponding subpattern in the current match. Outside the pattern, the numbered variables (C<$1>, C<$2>, etc.) continue to refer to these same values, as long as the pattern was the last successful match of the current B. =item backtracking The Xpractice of saying, “If I had to do it all over, I’d do it differently,” and then actually going back and doing it all over differently. Mathematically speaking, it’s returning from an unsuccessful recursion on a tree of possibilities. Perl backtracks when it attempts to match patterns with a B, and its earlier attempts don’t pan out. See the section “The Little Engine That /Couldn(n’t)” in Camel chapter 5, “Pattern Matching”. =item backward compatibility Means Xyou can still run your old program because we didn’t break any of the features or bugs it was relying on. =item bareword A word Xsufficiently ambiguous to be deemed illegal under C. In the absence of that stricture, a bareword is treated as if quotes were around it. =item base class A XXgeneric B type; that is, a B from which other, more specific classes are derived genetically by B. Also called aXX “superclass” by people who respect their ancestors. =item big-endian From XXSwift: someone who eats eggs big end first. Also used of computers that store the most significant B of a word at a lower byte address than the least significant byte. Often considered superior to little-endian machines. See also B. =item binary Having Xto do with numbers represented in base 2. That means there’s basically two numbers: 0 and 1. Also used to describe a file of “nontext”, presumably because such a file makes full use of all the binary bits in its bytes. With the advent of B, this distinction, already suspect, loses even more of its meaning. =item binary operator An Boperator> that takes two B. =item bind To Xassign a specific B to a B. =item bit An Xinteger in the range from 0 to 1, inclusive. The smallest possible unit of information storage. An eighth of a B or of a dollar. (The term “Pieces of Eight” comes from being able to split the old Spanish dollar into 8 bits, each of which still counted for money. That’s why a 25- cent piece today is still “two bits”.) =item bit shift The Xmovement of bits left or right in a computer word, which has the effect of multiplying or dividing by a power of 2. =item bit string A Xsequence of B that is actually being thought of as a sequence of bits, for once. =item bless In XXcorporate life, to grant official approval to a thing, as in, “The VP of Engineering has blessed our WebCruncher project.” Similarly, in Perl, to grant official approval to a B so that it can function as an B, such as a WebCruncher object. See the C function in Camel chapter 27, “Functions”. =item block What Xa B does when it has to wait for something: “My process blocked waiting for the disk.” As an unrelated noun, it refers to a large chunk of data, of a size that the B likes to deal with (normally a power of 2 such as 512 or 8192). Typically refers to a chunk of data that’s coming from or going to a disk file. =item BLOCK A XXsyntactic construct consisting of a sequence of Perl B that is delimited by braces. The C and C statements are defined in terms of I>s, for instance. Sometimes we also say “block” to mean a lexical scope; that is, a sequence of statements that acts like a I>, such as within an C or a file, even though the statements aren’t delimited by braces. =item block buffering A XXmethod of making input and output efficient by passing one B at a time. By default, Perl does block buffering to disk files. See B and B. =item Boolean A XXvalue that is either B or B. =item Boolean context A XXspecial kind of B used in conditionals to decide whether the B returned by an expression is B or B. Does not evaluate as either a string or a number. See B. =item breakpoint A Xspot in your program where you’ve told the debugger to stop B so you can poke around and see whether anything is wrong yet. =item broadcast To Xsend a B to multiple destinations simultaneously. =item BSD A XXpsychoactive drug, popular in the ’80s, probably developed at UC Berkeley or thereabouts. Similar in many ways to the prescription-only medication called “System V”, but infinitely more useful. (Or, at least, more fun.) The full chemical name is “Berkeley Standard Distribution”. =item bucket A Xlocation in a B containing (potentially) multiple entries whose keys “hash” to the same hash value according to its hash function. (As internal policy, you don’t have to worry about it unless you’re into internals, or policy.) =item buffer A Xtemporary holding location for data. Data that are B means that the data is passed on to its destination whenever the buffer is full. B means that it’s passed on whenever a complete line is received. B means that it’s passed every time you do a C command (or equivalent). If your output is unbuffered, the system processes it one byte at a time without the use of a holding area. This can be rather inefficient. =item built-in A Bfunction> that is predefined in the language. Even when hidden by B, you can always get at a built- in function by B its name with the C pseudopackage. =item bundle A Xgroup of related modules on B. (Also sometimes refers to a group of command-line switches grouped into one B.) =item byte A Xpiece of data worth eight B in most places. =item bytecode A pidgin-like lingo spoken among ’droids when they don’t wish to reveal their orientation (see B). Named after some similar languages spoken (for similar reasons) between compilers and interpreters in the late 20ᵗʰ century. These languages are characterized by representing everything as a nonarchitecture-dependent sequence of bytes. =back =head2 C =over 4 =item C A Xlanguage beloved by many for its inside-out B definitions, inscrutable B rules, and heavy B of the function-call mechanism. (Well, actually, people first switched to C because they found lowercase identifiers easier to read than upper.) Perl is written in C, so it’s not surprising that Perl borrowed a few ideas from it. =item cache A Xdata repository. Instead of computing expensive answers several times, compute it once and save the result. =item callback A Bhandler> that you register with some other part of your program in the hope that the other part of your program will B your handler when some event of interest transpires. =item call by reference An B-passing XXmechanism in which the B refer directly to the B, and the B can change the actual arguments by changing the formal arguments. That is, the formal argument is an B for the actual argument. See also B. =item call by value An Bargument>-passing mechanism in which the B refer to a copy of the B, and the B cannot change the actual arguments by changing the formal arguments. See also B. =item canonical Reduced Xto a standard form to facilitate comparison. =item capture variables The XXvariables—such as C<$1> and C<$2>, and C<%+> and C<%– >—that hold the text remembered in a pattern match. See Camel chapter 5, “Pattern Matching”. =item capturing The XXXuse of parentheses around a B in a B to store the matched B as a B. (Captured strings are also returned as a list in B.) See Camel chapter 5, “Pattern Matching”. =item cargo cult Copying Xand pasting code without understanding it, while superstitiously believing in its value. This term originated from preindustrial cultures dealing with the detritus of explorers and colonizers of technologically advanced cultures. See I. =item case A XXproperty of certain characters. Originally, typesetter stored capital letters in the upper of two cases and small letters in the lower one. Unicode recognizes three cases: B (B C<\p{lower}>), B (C<\p{title}>), and B (C<\p{upper}>). A fourth casemapping called B is not itself a distinct case, but it is used internally to implement B. Not all letters have case, and some nonletters have case. =item casefolding Comparing Xor matching a string case-insensitively. In Perl, it is implemented with the C pattern modifier, the C function, and the C<\F> double-quote translation escape. =item casemapping The Xprocess of converting a string to one of the four Unicode B; in Perl, it is implemented with the C, C, C, and C functions. =item character The Xsmallest individual element of a string. Computers store characters as integers, but Perl lets you operate on them as text. The integer used to represent a particular character is called that character’s B. =item character class A XXsquare-bracketed list of characters used in a B to indicate that any character of the set may occur at a given point. Loosely, any predefined set of characters so used. =item character property A Xpredefined B matchable by the C<\p> or C<\P> B. B defines hundreds of standard properties for every possible codepoint, and Perl defines a few of its own, too. =item circumfix operator An XB that surrounds its B, like the angle operator, or parentheses, or a hug. =item class A Xuser-defined B, implemented in Perl via a B that provides (either directly or by inheritance) B (that is, B) to handle B of the class (its B). See also B. =item class method A BXmethod> whose B is a B name, not an B reference. A method associated with the class as a whole. Also see B. =item client In XXnetworking, a B that initiates contact with a B process in order to exchange data and perhaps receive a service. =item closure An BXanonymous> subroutine that, when a reference to it is generated at runtime, keeps track of the identities of externally visible B, even after those lexical variables have supposedly gone out of B. They’re called “closures” because this sort of behavior gives mathematicians a sense of closure. =item cluster A XXparenthesized B used to group parts of a B into a single B. =item CODE The XXword returned by the C function when you apply it to a reference to a subroutine. See also B. =item code generator A Xsystem that writes code for you in a low-level language, such as code to implement the backend of a compiler. See B. =item codepoint The Xinteger a computer uses to represent a given character. ASCII codepoints are in the range 0 to 127; Unicode codepoints are in the range 0 to 0x1F_FFFF; and Perl codepoints are in the range 0 to 2³²−1 or 0 to 2⁶⁴−1, depending on your native integer size. In Perl Culture, sometimes called B. =item code subpattern A BXregular expression> subpattern whose real purpose is to execute some Perl code—for example, the C<(?{...})> and C<(??{...})> subpatterns. =item collating sequence The XXorder into which B sort. This is used by B comparison routines to decide, for example, where in this glossary to put “collating sequence”. =item co-maintainer A Xperson with permissions to index a B in B. Anyone can upload any namespace, but only primary and co-maintainers get their contributions indexed. =item combining character Any XXcharacter with the General Category of Combining Mark (C<\p{GC=M}>), which may be spacing or nonspacing. Some are even invisible. A sequence of combining characters following a grapheme base character together make up a single user-visible character called a B. Most but not all diacritics are combining characters, and vice versa. =item command In B Xprogramming, the syntactic combination of a program name and its arguments. More loosely, anything you type to a shell (a command interpreter) that starts it doing something. Even more loosely, a Perl B, which might start with a B