X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlglossary.pod;h=f0240b0c9e54a9a1950b24d1ab196332fe467f07;hb=c1effa61278e47c916466883d74905b04fedc388;hp=e6985c6714ba68348df544c3c87671c93aab7762;hpb=5bbd0522c4c5905125a88093d72f772779b14682;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlglossary.pod b/pod/perlglossary.pod index e6985c6..f0240b0 100644 --- a/pod/perlglossary.pod +++ b/pod/perlglossary.pod @@ -15,22 +15,22 @@ L, and Wikipedia L. =item accessor methods -A C used to indirectly inspect or update an C's -state (its Cs). +A L used to indirectly inspect or update an L's +state (its L). =item actual arguments -The Cs that you supply to a C -or C when you call it. For instance, when you call +The L that you supply to a L +or L when you call it. For instance, when you call C, the string C<"puff"> is the actual argument. See -also C and C. +also L and L. =item address operator Some 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 C, which is much safer than a memory address. =item algorithm @@ -45,10 +45,10 @@ 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 L or L operators, in C<$a> and C<$b> during L's -comparison function, and in each element of C<@_> for the C for the L of a subroutine call. Permanent aliases are explicitly -created in Cs by Cing symbols or by -assignment to Cs. Lexically scoped aliases for +created in L by L symbols or by +assignment to L. Lexically scoped aliases for package variables are explicitly created by the L declaration. @@ -58,55 +58,55 @@ A list 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 C expressions are separated +C<||>. Logical alternatives in L expressions are separated with either C<||> or C. =item anonymous -Used to describe a C that is not directly accessible -through a named C. Such a referent must be indirectly -accessible through at least one C. When the last +Used to describe a L that is not directly accessible +through a named L. Such a referent must be indirectly +accessible through at least one L. When the last hard reference goes away, the anonymous referent is destroyed without pity. =item architecture -The kind of compluter you're working on, where one "kind" of computer +The kind of computer 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 -compiled into machine code. See also C and C and L. =item argument A piece of data supplied to a L, -C, C, or C to tell it what it's +L, L, or L to tell it what it's supposed to do. Also called a "parameter". =item ARGV -The name of the array containing the C C from the -command line. If you use the empty CE> operator, C is -the name of both the C used to traverse the arguments and -the C containing the name of the current input file. +The name of the array containing the L L from the +command line. If you use the empty C<< EE >> operator, L is +the name of both the L used to traverse the arguments and +the L containing the name of the current input file. =item arithmetical operator -A C such as C<+> or C that tells Perl to do the arithmetic +A L such as C<+> or C that tells Perl to do the arithmetic you were supposed to learn in grade school. =item array -An ordered sequence of Cs, stored such that you can -easily access any of the values using an integer C -that specifies the value's C in the sequence. +An ordered sequence of L, stored such that you can +easily access any of the values using an integer L +that specifies the value's L in the sequence. =item array context An archaic expression for what is more correctly referred to as -C. +L. =item ASCII @@ -114,34 +114,34 @@ The American 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 C. +codes best described as half ASCII. See also L. =item assertion -A component of a C that must be true for the +A component of a L that must be true for the pattern to match but does not necessarily match any characters itself. -Often used specifically to mean a C assertion. +Often used specifically to mean a L assertion. =item assignment -An C whose assigned mission in life is to change the value -of a C. +An L whose assigned mission in life is to change the value +of a L. =item assignment operator -Either a regular C, or a compound C composed +Either a regular L, or a compound L 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 C. Please. +See L. Please. =item associativity -Determines whether you do the left C first or the right -C first when you have "A C B C C" and +Determines whether you do the left L first or the right +L first when you have "A L B L C" and the two operators are of the same precedence. Operators like C<+> are left associative, while operators like C<**> are right associative. See L for a list of operators and their associativity. @@ -154,10 +154,10 @@ asynchronous event is one you didn't know when to expect. =item atom -A C component potentially matching a -C containing one or more characters and treated as an -indivisible syntactic unit by any following C. (Contrast -with an C that matches something of C and may +A L component potentially matching a +L containing one or more characters and treated as an +indivisible syntactic unit by any following L. (Contrast +with an L that matches something of L and may not be quantified.) =item atomic operation @@ -169,42 +169,43 @@ can't be interrupted, not one forbidden in a nuclear-free zone. =item attribute -A new feature that allows the declaration of Cs -and Cs with modifiers as in C. Also, another name for an C of an -C. +A new feature that allows the declaration of L +and L with modifiers as in C. Also, another name for an L of an +L. =item autogeneration -A feature of C of Cs, whereby -the behavior of certain Cs can be reasonably +A feature of L of L, whereby +the behavior of certain L 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 L. =item autoincrement -To add one to something automatically, hence the name of the the C<++> +To add 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 load on demand. (Also called "lazy" loading.) Specifically, to -call an C subroutine on behalf of an undefined subroutine. +call an L subroutine on behalf of an +undefined subroutine. =item autosplit -To split a string automatically, as the B<-a> C does when -running under B<-p> or B<-n> in order to emulate C. (See also -the C module, which has nothing to do with the B<-a> +To split a string automatically, as the B<-a> L does when +running under B<-p> or B<-n> in order to emulate L. (See also +the L module, which has nothing to do with the B<-a> switch, but a lot to do with autoloading.) =item autovivification A Greco-Roman word meaning "to bring oneself to life". In Perl, -storage locations (Cs) spontaneously generate -themselves as needed, including the creation of any C +storage locations (L) spontaneously generate +themselves as needed, including the creation of any L 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 @@ -215,8 +216,8 @@ don't have to worry about it. =item AV Short for "array value", which refers to one of Perl's internal data -types that holds an C. The C type is a subclass of -C. +types that holds an L. The L type is a subclass of +L. =item awk @@ -233,7 +234,7 @@ some of its high-level ideas. =item backreference A substring L by a subpattern within -unadorned parentheses in a C. Backslashed decimal numbers +unadorned parentheses in a L. 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 @@ -246,7 +247,7 @@ The practice 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 C, and +when it attempts to match patterns with a L, and its earlier attempts don't pan out. See L. =item backward compatibility @@ -256,43 +257,43 @@ of the features or bugs it was relying on. =item bareword -A word sufficiently ambiguous to be deemed illegal under C. In the absence of that stricture, a bareword is treated as -if quotes were around it. +A word sufficiently ambiguous to be deemed illegal under L. In the absence of that stricture, a +bareword is treated as if quotes were around it. =item base class -A generic C type; that is, a C from which other, more -specific classes are derived genetically by C. Also +A generic L type; that is, a L from which other, more +specific classes are derived genetically by L. Also called a "superclass" by people who respect their ancestors. =item big-endian From Swift: someone who eats eggs big end first. Also used of -computers that store the most significant C of a word at a +computers that store the most significant L of a word at a lower byte address than the least significant byte. Often considered -superior to little-endian machines. See also C. +superior to little-endian machines. See also L. =item binary Having to do with numbers represented in base 2. That means there's basically two numbers, 0 and 1. Also used to describe a "non-text file", presumably because such a file makes full use of all the binary -bits in its bytes. With the advent of C, this distinction, +bits in its bytes. With the advent of L, this distinction, already suspect, loses even more of its meaning. =item binary operator -An C that takes two Cs. +An L that takes two L. =item bind -To assign a specific C to a C. +To assign a specific L to a L. =item bit An integer in the range from 0 to 1, inclusive. The smallest possible -unit of information storage. An eighth of a C or of a dollar. +unit of information storage. An eighth of a L 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".) @@ -304,51 +305,51 @@ effect of multiplying or dividing by a power of 2. =item bit string -A sequence of Cs that is actually being thought of as a +A sequence of L that is actually being thought of as a sequence of bits, for once. =item bless In corporate 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 C so that it can -function as an C, such as a WebCruncher object. See +Perl, to grant official approval to a L so that it can +function as an L, such as a WebCruncher object. See L. =item block -What a C does when it has to wait for something: "My process +What a L 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 C likes to +large chunk of data, of a size that the L likes to deal with (normally a power of two 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 syntactic construct consisting of a sequence of Perl -Cs that is delimited by braces. The C and -C statements are defined in terms of Cs, for instance. +L that is delimited by braces. The C and +C statements are defined in terms of L, for instance. Sometimes we also say "block" to mean a lexical scope; that is, a -sequence of statements that act like a C, such as within an +sequence of statements that act like a L, such as within an L or a file, even though the statements aren't delimited by braces. =item block buffering -A method of making input and output efficient by passing one C +A method of making input and output efficient by passing one L at a time. By default, Perl does block buffering to disk files. See -C and C. +L and L. =item Boolean -A value that is either C or C. +A value that is either L or L. =item Boolean context -A special kind of C used in conditionals to decide -whether the C returned by an expression is C or -C. Does not evaluate as either a string or a number. See -C. +A special kind of L used in conditionals to decide +whether the L returned by an expression is L or +L. Does not evaluate as either a string or a number. See +L. =item breakpoint @@ -358,7 +359,7 @@ is wrong yet. =item broadcast -To send a C to multiple destinations simultaneously. +To send a L to multiple destinations simultaneously. =item BSD @@ -370,40 +371,41 @@ useful. (Or, at least, more fun.) The full chemical name is =item bucket -A location in a C containing (potentially) multiple +A location in a L 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 temporary holding location for data. With C, the -data is passed on to its destination whenever the buffer is full. -With C, it's passed on whenever a complete line is -received. With C, it's passed every time you do a -L command (or equivalent). If your output is +A temporary holding location for data. L means that the data is passed on to its destination +whenever the buffer is full. L means +that it's passed on whenever a complete line is received. L means that it's passed every time you do +a L 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 C that is predefined in the language. Even when hidden -by C, you can always get at a built-in function by +A L that is predefined in the language. Even when hidden +by L, you can always get at a built-in function by L its name with the C pseudo-package. =item bundle -A group of related modules on C. (Also, sometimes refers to a -group of command-line switches grouped into one C.) +A group of related modules on L. (Also, sometimes refers to a +group of command-line switches grouped into one L.) =item byte -A piece of data worth eight Cs in most places. +A piece of data worth eight L in most places. =item bytecode A pidgin-like language spoken among 'droids when they don't wish to -reveal their orientation (see C). Named after some similar +reveal their orientation (see L). Named after some similar languages spoken (for similar reasons) between compilers and interpreters in the late 20th century. These languages are characterized by representing everything as a @@ -417,8 +419,8 @@ non-architecture-dependent sequence of bytes. =item C -A language beloved by many for its inside-out C definitions, -inscrutable C rules, and heavy C of the +A language beloved by many for its inside-out L definitions, +inscrutable L rules, and heavy L 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 @@ -433,23 +435,23 @@ definitions. Also known as I(1). =item call by reference -An C-passing mechanism in which the C -refer directly to the C, and the C can +An L-passing mechanism in which the L +refer directly to the L, and the L can change the actual arguments by changing the formal arguments. That -is, the formal argument is an C for the actual argument. See -also C. +is, the formal argument is an L for the actual argument. See +also L. =item call by value -An C-passing mechanism in which the C -refer to a copy of the C, and the C +An L-passing mechanism in which the L +refer to a copy of the L, and the L cannot change the actual arguments by changing the formal arguments. -See also C. +See also L. =item callback -A C that you register with some other part of your program -in the hope that the other part of your program will C your +A L that you register with some other part of your program +in the hope that the other part of your program will L your handler when some event of interest transpires. =item canonical @@ -458,9 +460,9 @@ Reduced to a standard form to facilitate comparison. =item capturing -The use of parentheses around a C in a C to store the matched C as a C. -(Captured strings are also returned as a list in C.) +The use of parentheses around a L in a L to store the matched L as a L. +(Captured strings are also returned as a list in L.) =item character @@ -474,108 +476,108 @@ for the most part. =item character class -A square-bracketed list of characters used in a C +A square-bracketed list of characters used in a L 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 predefined C matchable by the C<\p> -C. Many standard properties are defined for C. +A predefined L matchable by the C<\p> +L. Many standard properties are defined for L. =item circumfix operator -An C that surrounds its C, like the angle +An L that surrounds its L, like the angle operator, or parentheses, or a hug. =item class -A user-defined C, implemented in Perl via a C that -provides (either directly or by inheritance) Cs (that -is, Cs) to handle Cs of -the class (its Cs). See also C. +A user-defined L, implemented in Perl via a L that +provides (either directly or by inheritance) L (that +is, L) to handle L of +the class (its L). See also L. =item class method -A C whose C is a C name, not an -C reference. A method associated with the class as a whole. +A L whose L is a L name, not an +L reference. A method associated with the class as a whole. =item client -In networking, a C that initiates contact with a C +In networking, a L that initiates contact with a L process in order to exchange data and perhaps receive a service. =item cloister -A C used to restrict the scope of a C used to restrict the scope of a L. =item closure -An C subroutine that, when a reference to it is generated +An L subroutine that, when a reference to it is generated at run time, keeps track of the identities of externally visible -Cs even after those lexical -variables have supposedly gone out of C. They're called +L even after those lexical +variables have supposedly gone out of L. They're called "closures" because this sort of behavior gives mathematicians a sense of closure. =item cluster -A parenthesized C used to group parts of a C into a single C. +A parenthesized L used to group parts of a L into a single L. =item CODE The word returned by the L function when you apply -it to a reference to a subroutine. See also C. +it to a reference to a subroutine. See also L. =item code generator A system that writes code for you in a low-level language, such as -code to implement the backend of a compiler. See C. =item code subpattern -A C subpattern whose real purpose is to execute +A L subpattern whose real purpose is to execute some Perl code, for example, the C<(?{...})> and C<(??{...})> subpatterns. =item collating sequence -The order into which Cs sort. This is used by -C comparison routines to decide, for example, where in this +The order into which L sort. This is used by +L comparison routines to decide, for example, where in this glossary to put "collating sequence". =item command -In C programming, the syntactic combination of a program name +In L programming, 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 C, which might start with a C, which might start with a L and typically ends with a semicolon. =item command buffering A mechanism in Perl that lets you store up the output of each Perl -C and then flush it out as a single request to the -C. It's enabled by setting the C<$|> +L and then flush it out as a single request to the +L. It's enabled by setting the C<$|> (C<$AUTOFLUSH>) variable to a true value. It's used when you don't want data sitting around not going where it's supposed to, which may -happen because the default on a C or C is to use -C. +happen because the default on a L or L is to use +L. =item command name The name of the program currently executing, as typed on the command -line. In C, the C name is passed to the program as the +line. In C, the L name is passed to the program as the first command-line argument. In Perl, it comes in separately as C<$0>. =item command-line arguments -The Cs you supply along with a program name when you -tell a C to execute a C. These values are passed to +The L you supply along with a program name when you +tell a L to execute a L. These values are passed to a Perl program through C<@ARGV>. =item comment @@ -586,14 +588,14 @@ the line. =item compilation unit -The C (or C, in the case of L) +The L (or L, in the case of L) that is currently being compiled. =item compile phase Any time before Perl starts running your main program. See also -C. Compile phase is mostly spent in C, but -may also be spent in C when C blocks, +L. Compile phase is mostly spent in L, but +may also be spent in L when C blocks, L declarations, or constant subexpressions are being evaluated. The startup and import code of any L declaration is also run during compile phase. @@ -602,7 +604,7 @@ declaration is also run during compile phase. The time when Perl is trying to make sense of your code, as opposed to when it thinks it knows what your code means and is merely trying to -do what it thinks your code says to do, which is C. +do what it thinks your code says to do, which is L. =item compiler @@ -611,14 +613,14 @@ out yet another file containing the program in a "more executable" form, typically containing native machine instructions. The I program is not a compiler by this definition, but it does contain a kind of compiler that takes a program and turns it into a more -executable form (Cs) within the I -process itself, which the C then interprets. There are, -however, extension Cs to get Perl to act more like a +executable form (L) within the I +process itself, which the L then interprets. There are, +however, extension L to get Perl to act more like a "real" compiler. See L. =item composer -A "constructor" for a C that isn't really an C, +A "constructor" for a L that isn't really an L, like an anonymous array or a hash (or a sonata, for that matter). For example, a pair of braces acts as a composer for a hash, and a pair of brackets acts as a composer for an array. See L. =item concatenation The process of gluing one cat's nose to another cat's tail. Also, a -similar operation on two Cs. +similar operation on two L. =item conditional -Something "iffy". See C. +Something "iffy". See L. =item connection In telephony, the temporary electrical circuit between the caller's and the callee's phone. In networking, the same kind of temporary -circuit between a C and a C. +circuit between a L and a L. =item construct As a noun, a piece of syntax made up of smaller pieces. As a -transitive verb, to create an C using a C. +transitive verb, to create an L using a L. =item constructor -Any C, instance C, or C -that composes, initializes, blesses, and returns an C. -Sometimes we use the term loosely to mean a C. +Any L, instance L, or L +that composes, initializes, blesses, and returns an L. +Sometimes we use the term loosely to mean a L. =item context The surroundings, or environment. The context given by the surrounding code determines what kind of data a particular -C is expected to return. The three primary contexts are -C, C, and C. Scalar -context is sometimes subdivided into C, C, C, and C. There's also a +L is expected to return. The three primary contexts are +L, L, and L. Scalar +context is sometimes subdivided into L, L, L, and L. There's also a "don't care" scalar context (which is dealt with in Programming Perl, Third Edition, Chapter 2, "Bits and Pieces" if you care). =item continuation -The treatment of more than one physical C as a single logical -line. C lines are continued by putting a backslash before -the C. Mail headers as defined by RFC 822 are continued by +The treatment of more than one physical L as a single logical +line. L lines are continued by putting a backslash before +the L. Mail headers as defined by RFC 822 are continued by putting a space or tab I the newline. In general, lines in -Perl do not need any form of continuation mark, because C +Perl do not need any form of continuation mark, because L (including newlines) is gleefully ignored. Usually. =item core dump -The corpse of a C, in the form of a file left in the -C of the process, usually as a result of certain +The corpse of a L, in the form of a file left in the +L of the process, usually as a result of certain kinds of fatal error. =item CPAN @@ -683,28 +685,29 @@ The Comprehensive Perl Archive Network. (See L or only a C. =item current package -The C in which the current statement is compiled. Scan +The L in which the current statement is compiled. Scan backwards in the text of your program through the current L or any enclosing lexical scopes till you find a package declaration. That's your current package name. =item current working directory -See C. +See L. =item currently selected output channel -The last C that was designated with -C; C, if no filehandle has been selected. +The last L that was designated with +L(C); L, if no filehandle +has been selected. =item CV -An internal "code value" typedef, holding a C. The C -type is a subclass of C. +An internal "code value" typedef, holding a L. The L +type is a subclass of L. =back @@ -714,7 +717,7 @@ type is a subclass of C. =item dangling statement -A bare, single C, without any braces, hanging off an C +A bare, single L, without any braces, hanging off an C or C conditional. C allows them. Perl doesn't. =item data structure @@ -730,38 +733,38 @@ how to deal with those values. For example, a numeric data type has a certain set of numbers that you can work with and various mathematical operations that you can do on the numbers but would make little sense on, say, a string such as C<"Kilroy">. Strings have their own -operations, such as C. Compound types made of a +operations, such as L. Compound types made of a number of smaller pieces generally have operations to compose and -decompose them, and perhaps to rearrange them. An C -that models things in the real world often has operations that +decompose them, and perhaps to rearrange them. L +that model things in the real world often have operations that correspond to real activities. For instance, if you model an elevator, your elevator object might have an C -C. +L. =item datagram -A packet of data, such as a C message, that (from the viewpoint +A packet of data, such as a L message, that (from the viewpoint of the programs involved) can be sent independently over the network. -(In fact, all packets are sent independently at the C level, but -C protocols such as C hide this from your program.) +(In fact, all packets are sent independently at the L level, but +L protocols such as L hide this from your program.) =item DBM Stands for "Data Base Management" routines, a set of routines that -emulate an C using disk files. The routines use a +emulate an L using disk files. The routines use a dynamic hashing scheme to locate any entry with only two disk accesses. DBM files allow a Perl program to keep a persistent -C across multiple invocations. You can L +L across multiple invocations. You can L your hash variables to various DBM implementations--see L and L. =item declaration -An C that states something exists and perhaps describes +An L that states something exists and perhaps describes what it's like, without giving any commitment as to how or where you'll use it. A declaration is like the part of your recipe that says, "two cups flour, one large egg, four or five tadpoles..." See -C for its opposite. Note that some declarations also +L for its opposite. Note that some declarations also function as statements. Subroutine declarations also act as definitions if a body is supplied. @@ -772,65 +775,76 @@ to remove 1 from its value) or "decrement C<$x> by 3". =item default -A C chosen for you if you don't supply a value of your own. +A L chosen for you if you don't supply a value of your own. =item defined Having a meaning. Perl thinks that some of the things people try to do are devoid of meaning, in particular, making use of variables that -have never been given a C and performing certain operations on +have never been given a L and performing certain operations on data that isn't there. For example, if you try to read data past the end of a file, Perl will hand you back an undefined value. See also -C and L. +L and L. =item delimiter -A C or C that sets bounds to an arbitrarily-sized -textual object, not to be confused with a C or -C. "To delimit" really just means "to surround" or "to +A L or L that sets bounds to an arbitrarily-sized +textual object, not to be confused with a L or +L. "To delimit" really just means "to surround" or "to enclose" (like these parentheses are doing). +=item deprecated modules and features + +Deprecated modules and features are those which were part of a stable +release, but later found to be subtly flawed, and which should be avoided. +They are subject to removal and/or bug-incompatible reimplementation in +the next major release (but they will be preserved through maintenance +releases). Deprecation warnings are issued under B<-w> or C, and notices are found in Ls, as well as various +other PODs. Coding practices that misuse features, such as C, can also be deprecated. + =item dereference -A fancy computer science term meaning "to follow a C to +A fancy computer science term meaning "to follow a L to what it points to". The "de" part of it refers to the fact that -you're taking away one level of C. +you're taking away one level of L. =item derived class -A C that defines some of its Cs in terms of a -more generic class, called a C. Note that classes aren't +A L that defines some of its L in terms of a +more generic class, called a L. Note that classes aren't classified exclusively into base classes or derived classes: a class can function as both a derived class and a base class simultaneously, which is kind of classy. =item descriptor -See C. +See L. =item destroy -To deallocate the memory of a C (first triggering its +To deallocate the memory of a L (first triggering its C method, if it has one). =item destructor -A special C that is called when an C is thinking -about Cing itself. A Perl program's C +A special L that is called when an L is thinking +about L itself. A Perl program's C method doesn't do the actual destruction; Perl just -Cs the method in case the C wants to do any +L the method in case the L wants to do any associated cleanup. =item device A whiz-bang hardware gizmo (like a disk or tape drive or a modem or a -joystick or a mouse) attached to your computer, that the C tries to make look like a C (or a bunch of files). +joystick or a mouse) attached to your computer, that the L tries to make look like a L (or a bunch of files). Under Unix, these fake files tend to live in the I directory. =item directive -A C directive. See L. +A L directive. See L. =item directory @@ -849,8 +863,8 @@ function. To send something to its correct destination. Often used metaphorically to indicate a transfer of programmatic control to a destination selected algorithmically, often by lookup in a table of -function Cs or, in the case of object -Cs, by traversing the inheritance tree looking for the +function L or, in the case of object +L, by traversing the inheritance tree looking for the most specific definition for the method. =item distribution @@ -859,10 +873,21 @@ A standard, bundled release of a system of software. The default usage implies source code is included. If that is not the case, it will be called a "binary-only" distribution. +=item (to be) dropped modules + +When Perl 5 was first released (see L), several modules were +included, which have now fallen out of common use. It has been suggested +that these modules should be removed, since the distribution became rather +large, and the common criterion for new module additions is now limited to +modules that help to build, test, and extend perl itself. Furthermore, +the CPAN (which didn't exist at the time of Perl 5.0) can become the new +home of dropped modules. Dropping modules is currently not an option, but +further developments may clear the last barriers. + =item dweomer An enchantment, illusion, phantasm, or jugglery. Said when Perl's -magical C effects don't do what you expect, but rather seem +magical L effects don't do what you expect, but rather seem to be the product of arcane dweomercraft, sorcery, or wonder working. [From Old English] @@ -872,18 +897,18 @@ DWIM is an acronym for "Do What I Mean", the principle that something should just do what you want it to do without an undue amount of fuss. A bit of code that does "dwimming" is a "dwimmer". Dwimming can require a great deal of behind-the-scenes magic, which (if it doesn't -stay properly behind the scenes) is called a C instead. +stay properly behind the scenes) is called a L instead. =item dynamic scoping Dynamic scoping works over a dynamic scope, making variables visible -throughout the rest of the C in which they are first used and -in any Cs that are called by the rest of the +throughout the rest of the L in which they are first used and +in any L that are called by the rest of the block. Dynamically scoped variables can have their values temporarily changed (and implicitly restored later) by a L -operator. (Compare C.) Used more loosely to mean +operator. (Compare L.) Used more loosely to mean how a subroutine that is in the middle of calling another subroutine -"contains" that subroutine at C. +"contains" that subroutine at L. =back @@ -897,7 +922,7 @@ Derived from many sources. Some would say I many. =item element -A basic building block. When you're talking about an C, it's +A basic building block. When you're talking about an L, it's one of the items that make up the array. =item embedding @@ -908,59 +933,59 @@ interpreter in my editor!" =item empty subclass test -The notion that an empty C should behave exactly like -its C. +The notion that an empty L should behave exactly like +its L. =item en passant -When you change a C as it is being copied. [From French, "in +When you change a L as it is being copied. [From French, "in passing", as in the exotic pawn-capturing maneuver in chess.] =item encapsulation -The veil of abstraction separating the C from the -C (whether enforced or not), which mandates that all -access to an C's state be through Cs alone. +The veil of abstraction separating the L from the +L (whether enforced or not), which mandates that all +access to an L's state be through L alone. =item endian -See C and C. +See L and L. =item environment -The collective set of Cs -your C inherits from its parent. Accessed via C<%ENV>. +The collective set of L +your L inherits from its parent. Accessed via C<%ENV>. =item environment variable A mechanism by which some high-level agent such as a user can pass its -preferences down to its future offspring (child Ces, +preferences down to its future offspring (child L, grandchild processes, great-grandchild processes, and so on). Each -environment variable is a C/C pair, like one entry in a -C. +environment variable is a L/L pair, like one entry in a +L. =item EOF End of File. Sometimes used metaphorically as the terminating string -of a C. +of a L. =item errno -The error number returned by a C when it fails. Perl refers +The error number returned by a L when it fails. Perl refers to the error by the name C<$!> (or C<$OS_ERROR> if you use the English module). =item error -See C or C. +See L or L. =item escape sequence -See C. +See L. =item exception -A fancy term for an error. See C. +A fancy term for an error. See L. =item exception handling @@ -969,21 +994,21 @@ mechanism in Perl is the L operator. =item exec -To throw away the current C's program and replace it with +To throw away the current L's program and replace it with another without exiting the process or relinquishing any resources held (apart from the old memory image). =item executable file -A C that is specially marked to tell the C +A L that is specially marked to tell the L that it's okay to run this file as a program. Usually shortened to "executable". =item execute -To run a L or C. (Has nothing +To run a L or L. (Has nothing to do with the L built-in, unless you're trying to -run a C.) +run a L.) =item execute bit @@ -994,17 +1019,17 @@ collectively, or not at all. =item exit status -See C. +See L. =item export -To make symbols from a C available for C by other modules. +To make symbols from a L available for L by other modules. =item expression -Anything you can legally say in a spot where a C is required. -Typically composed of Cs, Cs, -Cs, Cs, and C +Anything you can legally say in a spot where a L is required. +Typically composed of L, L, +L, L, and L calls, not necessarily in that order. =item extension @@ -1033,8 +1058,8 @@ standard with Perl). =item fatal error -An uncaught C, which causes termination of the C -after printing a message on your C stream. Errors +An uncaught L, which causes termination of the L +after printing a message on your L stream. Errors that happen inside an L are not fatal. Instead, the L terminates after placing the exception message in the C<$@> (C<$EVAL_ERROR>) variable. You can try to @@ -1046,41 +1071,41 @@ L becomes a fatal error. =item field A single piece of numeric or string data that is part of a longer -C, C, or C. Variable-width fields are -usually split up by Cs (so use -L to extract the fields), while fixed-width -fields are usually at fixed positions (so use -L). "fields" are also called Cs. +L, L, or L. Variable-width fields are usually +split up by L (so use L to +extract the fields), while fixed-width fields are usually at fixed +positions (so use L). L are also known as fields. =item FIFO -First In, First Out. See also C. Also, a nickname for a -C. +First In, First Out. See also L. Also, a nickname for a +L. =item file -A named collection of data, usually stored on disk in a C -in a C. Roughly like a document, if you're into office +A named collection of data, usually stored on disk in a L +in a L. Roughly like a document, if you're into office metaphors. In modern filesystems, you can actually give a file more than one name. Some files have special properties, like directories and devices. =item file descriptor -The little number the C uses to keep track of which -opened C you're talking about. Perl hides the file descriptor -inside a CO> stream and then attaches the stream to -a C. +The little number the L uses to keep track of which +opened L you're talking about. Perl hides the file descriptor +inside a LO> stream and then attaches the stream to +a L. =item file test operator A built-in unary operator that you use to determine whether something -is C about a file, such as C<-o $filename> to test whether +is L about a file, such as C<-o $filename> to test whether you're the owner of the file. =item fileglob -A "wildcard" match on Cs. See the +A "wildcard" match on L. See the L function. =item filehandle @@ -1094,15 +1119,15 @@ each file. =item filename -One name for a file. This name is listed in a C, and you -can use it in an L to tell the C, and you +can use it in an L to tell the L exactly which file you want to open, and associate the file -with a C which will carry the subsequent identity of that +with a L which will carry the subsequent identity of that file in your program, until you close it. =item filesystem -A set of L and Cs residing on a +A set of L and L residing on a partition of the disk. Sometimes known as a "partition". You can change the file's name or even move a file around from directory to directory within a filesystem without actually moving the file itself, @@ -1110,13 +1135,13 @@ at least under Unix. =item filter -A program designed to take a C of input and transform it into +A program designed to take a L of input and transform it into a stream of output. =item flag We tend to avoid this term because it means so many things. It may -mean a command-line C that takes no argument +mean a command-line L that takes no argument itself (such as Perl's B<-n> and B<-p> flags) or, less frequently, a single-bit indicator (such as the C and C flags used in @@ -1128,35 +1153,35 @@ A method of storing numbers in "scientific notation", such that the precision of the number is independent of its magnitude (the decimal point "floats"). Perl does its numeric work with floating-point numbers (sometimes called "floats"), when it can't get away with -using Cs. Floating-point numbers are mere +using L. Floating-point numbers are mere approximations of real numbers. =item flush -The act of emptying a C, often before it's full. +The act of emptying a L, often before it's full. =item FMTEYEWTK Far More Than Everything You Ever Wanted To Know. An exhaustive -treatise on one narrow topic, something of a super-C. See Tom +treatise on one narrow topic, something of a super-L. See Tom for far more. =item fork -To create a child C identical to the parent process at its +To create a child L identical to the parent process at its moment of conception, at least until it gets ideas of its own. A thread with protected memory. =item formal arguments -The generic names by which a C knows its -Cs. In many languages, formal arguments are +The generic names by which a L knows its +L. In many languages, formal arguments are always given individual names, but in Perl, the formal arguments are just the elements of an array. The formal arguments to a Perl program are C<$ARGV[0]>, C<$ARGV[1]>, and so on. Similarly, the formal arguments to a Perl subroutine are C<$_[0]>, C<$_[1]>, and so on. You may give the arguments individual names by assigning the values to a -L list. See also C. +L list. See also L. =item format @@ -1179,16 +1204,16 @@ a copy to all your friends. Historically, any software that you give away, particularly if you make the source code available as well. Now often called C. Recently there has been a trend to use the term in -contradistinction to C, to refer only to free +contradistinction to L, to refer only to free software released under the Free Software Foundation's GPL (General Public License), but this is difficult to justify etymologically. =item function Mathematically, a mapping of each of a set of input values to a -particular output value. In computers, refers to a C or -C that returns a C. It may or may not have input -values (called Cs). +particular output value. In computers, refers to a L or +L that returns a L. It may or may not have input +values (called L). =item funny character @@ -1215,30 +1240,30 @@ circular references and such.) =item GID -Group ID--in Unix, the numeric group ID that the C -uses to identify you and members of your C. +Group ID--in Unix, the numeric group ID that the L +uses to identify you and members of your L. =item glob Strictly, the shell's C<*> character, which will match a "glob" of characters when you're trying to generate a list of filenames. Loosely, the act of using globs and similar symbols to do pattern -matching. See also C and C. +matching. See also L and L. =item global Something you can see from anywhere, usually used of -Cs and Cs that are visible +L and L that are visible everywhere in your program. In Perl, only certain special variables are truly global--most variables (and all subroutines) exist only in -the current C. Global variables can be declared with +the current L. Global variables can be declared with L. See L. =item global destruction -The C of globals (and the running of any +The L of globals (and the running of any associated object destructors) that takes place when a Perl -C is being shut down. Global destruction should not be +L is being shut down. Global destruction should not be confused with the Apocalypse, except perhaps when it should. =item glue language @@ -1252,7 +1277,7 @@ The size of the pieces you're dealing with, mentally speaking. =item greedy -A C whose C wants to match as many things as +A L whose L wants to match as many things as possible. =item grep @@ -1261,8 +1286,8 @@ Originally from the old Unix editor command for "Globally search for a Regular Expression and Print it", now used in the general sense of any kind of search, especially text searches. Perl has a built-in L function that searches a list for elements -matching any given criterion, whereas the C(1) program searches -for lines matching a C in one or more files. +matching any given criterion, whereas the I(1) program searches +for lines matching a L in one or more files. =item group @@ -1272,8 +1297,8 @@ members of your group. =item GV -An internal "glob value" typedef, holding a C. The C -type is a subclass of C. +An internal "glob value" typedef, holding a L. The L +type is a subclass of L. =back @@ -1286,31 +1311,31 @@ type is a subclass of C. Someone who is brilliantly persistent in solving technical problems, whether these involve golfing, fighting orcs, or programming. Hacker is a neutral term, morally speaking. Good hackers are not to be -confused with evil Cs or clueless L