From: Yitzchak Scott-Thoennes Date: Fri, 1 Jul 2005 03:10:50 +0000 (-0700) Subject: Add the perlglossary man page X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=97a1d740bc3d862371168a73aa7c5fc749d8b2e3;p=p5sagit%2Fp5-mst-13.2.git Add the perlglossary man page Subject: [PATCH] perlglossary.pod Message-ID: <20050701101050.GA2448@efn.org> p4raw-id: //depot/perl@25037 --- diff --git a/MANIFEST b/MANIFEST index 747a1eb..8041796 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2418,6 +2418,7 @@ pod/perlfilter.pod Perl source filters pod/perlfork.pod Perl fork() information pod/perlform.pod Perl formats pod/perlfunc.pod Perl built-in functions +pod/perlglossary.pod Perl glossary pod/perlgpl.pod GNU General Public License pod/perlguts.pod Perl internal functions for those doing extensions pod/perlhack.pod Perl hackers guide diff --git a/pod.lst b/pod.lst index f434055..1d60d3e 100644 --- a/pod.lst +++ b/pod.lst @@ -94,6 +94,8 @@ h Reference Manual perlfilter Perl source filters + perlglossary Perl Glossary + h Internals and C Language Interface perlembed Perl ways to embed perl in your C or C++ application diff --git a/pod/perl.pod b/pod/perl.pod index 67f8d75..c695fb1 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -111,6 +111,8 @@ For ease of access, the Perl manual has been split up into several sections. perlfilter Perl source filters + perlglossary Perl Glossary + =head2 Internals and C Language Interface perlembed Perl ways to embed perl in your C or C++ application diff --git a/pod/perlglossary.pod b/pod/perlglossary.pod new file mode 100644 index 0000000..0474841 --- /dev/null +++ b/pod/perlglossary.pod @@ -0,0 +1,3331 @@ +=head1 NAME + +perlglossary - Perl Glossary + +=head1 DESCRIPTION + +A glossary of terms (technical and otherwise) used in the Perl documentation. +Other useful sources include the Free On-Line Dictionary of Computing +L, the Jargon File +L, and Wikipedia L. + +=head1 Terms + +=over 4 + +=item accessor methods + +A C used to indirectly inspect or update an C's +state (its Cs). + +=item actual arguments + +The Cs that you supply to a C +or C when you call it. For instance, when you call +C, the string C<"puff"> is the actual argument. See +also C and C. + +=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 + +A well-defined sequence of steps, clearly enough explained that even a +computer could do them. + +=item alias + +A nickname 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 L or L +operators, in C<$a> and C<$b> during L's +comparison function, and in each element of C<@_> for the C of a subroutine call. Permanent aliases are explicitly +created in Cs by Cing symbols or by +assignment to Cs. Lexically scoped aliases for +package variables are explicitly created by the L +declaration. + +=item alternatives + +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 +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 +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 +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. + +=item argument + +A piece of data supplied to a L, +C, C, or C 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. + +=item arithmetical operator + +A C 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. + +=item array context + +An archaic expression for what is more correctly referred to as +C. + +=item ASCII + +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. + +=item assertion + +A component of a C 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. + +=item assignment + +An C whose assigned mission in life is to change the value +of a C. + +=item assignment operator + +Either a regular C, or a compound C 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. + +=item associativity + +Determines whether you do the left C first or the right +C first when you have "A C B C 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. + +=item asynchronous + +Said of events 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 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 +not be quantified.) + +=item atomic operation + +When Democritus 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 feature that allows the declaration of Cs +and Cs with modifiers as in C. Also, another name for an C of an +C. + +=item autogeneration + +A feature of C of Cs, whereby +the behavior of certain Cs 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<++> +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. + +=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> +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 +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 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. + +=item awk + +Descriptive editing term--short for "awkward". Also coincidentally +refers to a venerable text-processing language from which Perl derived +some of its high-level ideas. + +=back + +=over 4 + +=item backreference + +A substring L by a subpattern within +unadorned parentheses in a C. 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 dynamic scope. + +=item backtracking + +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 +its earlier attempts don't pan out. See L. + +=item backward compatibility + +Means you 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 sufficiently 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 generic C type; that is, a C from which other, more +specific classes are derived genetically by C. 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 +lower byte address than the least significant byte. Often considered +superior to little-endian machines. See also C. + +=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, +already suspect, loses even more of its meaning. + +=item binary operator + +An C that takes two Cs. + +=item bind + +To assign a specific C to a C. + +=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. +(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 movement 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 sequence of Cs 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 +L. + +=item block + +What a C 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 +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. +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 +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 +at a time. By default, Perl does block buffering to disk files. See +C and C. + +=item Boolean + +A value that is either C or C. + +=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. + +=item breakpoint + +A spot in your program where you've told the debugger to stop +L so you can poke around and see whether anything +is wrong yet. + +=item broadcast + +To send a C to multiple destinations simultaneously. + +=item BSD + +A psychoactive drug, popular in the 80s, probably developed at +U. C. 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 location in a C 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 +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 +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.) + +=item byte + +A piece of data worth eight Cs 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 +languages spoken (for similar reasons) between compilers and +interpreters in the late 20th century. These languages are +characterized by representing everything as a +non-architecture-dependent sequence of bytes. + +=back + +=over 4 + +=item C + +A language beloved by many for its inside-out C definitions, +inscrutable C rules, and heavy C 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 C preprocessor + +The typical C compiler's first pass, which processes lines beginning +with C<#> for conditional compilation and macro definition and does +various manipulations of the program text based on the current +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 +change the actual arguments by changing the formal arguments. That +is, the formal argument is an C for the actual argument. See +also C. + +=item call by value + +An C-passing mechanism in which the C +refer to a copy of the C, and the C +cannot change the actual arguments by changing the formal arguments. +See also C. + +=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 +handler when some event of interest transpires. + +=item canonical + +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.) + +=item character + +A small integer representative of a unit of orthography. +Historically, characters were usually stored as fixed-width integers +(typically in a byte, or maybe two, depending on the character set), +but with the advent of UTF-8, characters are often stored in a +variable number of bytes depending on the size of the integer that +represents the character. Perl manages this transparently for you, +for the most part. + +=item character class + +A square-bracketed list of characters used in a C +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. + +=item circumfix operator + +An C that surrounds its C, 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. + +=item class method + +A C whose C is a C name, not an +C reference. A method associated with the class as a whole. + +=item client + +In networking, a C that initiates contact with a C +process in order to exchange data and perhaps receive a service. + +=item cloister + +A C used to restrict the scope of a C. + +=item closure + +An C 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 +"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. + +=item CODE + +The word returned by the L function when you apply +it to a reference to a subroutine. See also C. + +=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 +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 +glossary to put "collating sequence". + +=item command + +In C 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