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