Cari di Perl 
    Perl User Manual
Daftar Isi
(Sebelumnya) Source FiltersA listing of experimental feat ... (Berikutnya)
Language Reference

Perl Glossary

Daftar Isi

NAME

perlglossary - Perl Glossary

DESCRIPTION

A glossary of terms (technical and otherwise) used in the Perl documentation.Other useful sources include the Free On-Line Dictionary of Computinghttp://foldoc.org/, the Jargon Filehttp://catb.org/~esr/jargon/, and Wikipedia http://www.wikipedia.org/.

A

  • accessor methods

    A method used to indirectly inspect or update an object'sstate (its instance variables).

  • actual arguments

    The scalar values that you supply to a functionor subroutine when you call it. For instance, when you callpower("puff"), the string "puff" is the actual argument. Seealso argument and formal arguments.

  • address operator

    Some languages work directly with the memory addresses of values, butthis can be like playing with fire. Perl provides a set of asbestosgloves for handling all memory management. The closest to an addressoperator in Perl is the backslash operator, but it gives you a hard reference, which is much safer than a memory address.

  • algorithm

    A well-defined sequence of steps, clearly enough explained that even acomputer could do them.

  • alias

    A nickname for something, which behaves in all ways as though you'dused the original name instead of the nickname. Temporary aliases areimplicitly created in the loop variable for foreach loops, in the$_ variable for map or grepoperators, in $a and $b during sort'scomparison function, and in each element of @_ for the actual arguments of a subroutine call. Permanent aliases are explicitlycreated in packages by importing symbols or byassignment to typeglobs. Lexically scoped aliases forpackage variables are explicitly created by the ourdeclaration.

  • alternatives

    A list of possible choices from which you may select only one, as in"Would you like door A, B, or C?" Alternatives in regular expressionsare separated with a single vertical bar: |. Alternatives innormal Perl expressions are separated with a double vertical bar:||. Logical alternatives in Boolean expressions are separatedwith either || or or.

  • anonymous

    Used to describe a referent that is not directly accessiblethrough a named variable. Such a referent must be indirectlyaccessible through at least one hard reference. When the lasthard reference goes away, the anonymous referent is destroyed withoutpity.

  • architecture

    The kind of computer you're working on, where one "kind" of computermeans all those computers sharing a compatible machine language.Since Perl programs are (typically) simple text files, not executableimages, a Perl program is much less sensitive to the architecture it'srunning on than programs in other languages, such as C, that arecompiled into machine code. See also platform and operating system.

  • argument

    A piece of data supplied to a program,subroutine, function, or method to tell it what it'ssupposed to do. Also called a "parameter".

  • ARGV

    The name of the array containing the argument vector from thecommand line. If you use the empty <> operator, ARGV isthe name of both the filehandle used to traverse the arguments andthe scalar containing the name of the current input file.

  • arithmetical operator

    A symbol such as + or / that tells Perl to do the arithmeticyou were supposed to learn in grade school.

  • array

    An ordered sequence of values, stored such that you caneasily access any of the values using an integer subscriptthat specifies the value's offset in the sequence.

  • array context

    An archaic expression for what is more correctly referred to aslist context.

  • ASCII

    The American Standard Code for Information Interchange (a 7-bitcharacter set adequate only for poorly representing English text).Often used loosely to describe the lowest 128 values of the variousISO-8859-X character sets, a bunch of mutually incompatible 8-bitcodes sometimes described as half ASCII. See also Unicode.

  • assertion

    A component of a regular expression that must be true for thepattern to match but does not necessarily match any characters itself.Often used specifically to mean a zero width assertion.

  • assignment

    An operator whose assigned mission in life is to change the valueof a variable.

  • assignment operator

    Either a regular assignment, or a compound operator composedof an ordinary assignment and some other operator, that changes thevalue of a variable in place, that is, relative to its old value. Forexample, $a += 2 adds 2 to $a.

  • associative array

    See hash. Please.

  • associativity

    Determines whether you do the left operator first or the rightoperator first when you have "A operator B operator C" andthe two operators are of the same precedence. Operators like + areleft associative, while operators like ** are right associative.See perlop for a list of operators and their associativity.

  • asynchronous

    Said of events or activities whose relative temporal ordering isindeterminate because too many things are going on at once. Hence, anasynchronous event is one you didn't know when to expect.

  • atom

    A regular expression component potentially matching asubstring containing one or more characters and treated as anindivisible syntactic unit by any following quantifier. (Contrastwith an assertion that matches something of zero width and maynot be quantified.)

  • atomic operation

    When Democritus gave the word "atom" to the indivisible bits ofmatter, he meant literally something that could not be cut: a-(not) + tomos (cuttable). An atomic operation is an action thatcan't be interrupted, not one forbidden in a nuclear-free zone.

  • attribute

    A new feature that allows the declaration of variablesand subroutines with modifiers as in sub foo : lockedmethod. Also, another name for an instance variable of anobject.

  • autogeneration

    A feature of operator overloading of objects, wherebythe behavior of certain operators can be reasonablydeduced using more fundamental operators. This assumes that theoverloaded operators will often have the same relationships as theregular operators. See perlop.

  • autoincrement

    To add one to something automatically, hence the name of the ++operator. To instead subtract one from something automatically isknown as an "autodecrement".

  • autoload

    To load on demand. (Also called "lazy" loading.) Specifically, tocall an AUTOLOAD subroutine on behalf of anundefined subroutine.

  • autosplit

    To split a string automatically, as the -a switch does whenrunning under -p or -n in order to emulate awk. (See alsothe AutoSplit module, which has nothing to do with the -aswitch, but a lot to do with autoloading.)

  • autovivification

    A Greco-Roman word meaning "to bring oneself to life". In Perl,storage locations (lvalues) spontaneously generatethemselves as needed, including the creation of any hard referencevalues to point to the next level of storage. The assignment$a[5][5][5][5][5] = "quintet" potentially creates five scalarstorage locations, plus four references (in the first four scalarlocations) pointing to four new anonymous arrays (to hold the lastfour scalar locations). But the point of autovivification is that youdon't have to worry about it.

  • AV

    Short for "array value", which refers to one of Perl's internal datatypes that holds an array. The AV type is a subclass ofSV.

  • awk

    Descriptive editing term--short for "awkward". Also coincidentallyrefers to a venerable text-processing language from which Perl derivedsome of its high-level ideas.

B

  • backreference

    A substring captured by a subpattern withinunadorned parentheses in a regex, also referred to as a capture group. Thesequences (\g1, \g2, etc.) later in the same pattern refer back tothe corresponding subpattern in the current match. Outside the pattern,the numbered variables ($1, $2, etc.) continue to refer to thesesame values, as long as the pattern was the last successful match ofthe current dynamic scope. \g{-1} can be used to refer to a group byrelative rather than absolute position; and groups can be also be named, andreferred to later by name rather than number. See Capture groups in perlre.

  • backtracking

    The practice of saying, "If I had to do it all over, I'd do itdifferently," and then actually going back and doing it all overdifferently. Mathematically speaking, it's returning from anunsuccessful recursion on a tree of possibilities. Perl backtrackswhen it attempts to match patterns with a regular expression, andits earlier attempts don't pan out. See Backtracking in perlre.

  • backward compatibility

    Means you can still run your old program because we didn't break anyof the features or bugs it was relying on.

  • bareword

    A word sufficiently ambiguous to be deemed illegal under use strict 'subs'. In the absence of that stricture, abareword is treated as if quotes were around it.

  • base class

    A generic object type; that is, a class from which other, morespecific classes are derived genetically by inheritance. Alsocalled a "superclass" by people who respect their ancestors.

  • big-endian

    From Swift: someone who eats eggs big end first. Also used ofcomputers that store the most significant byte of a word at alower byte address than the least significant byte. Often consideredsuperior to little-endian machines. See also little-endian.

  • binary

    Having to do with numbers represented in base 2. That means there'sbasically two numbers, 0 and 1. Also used to describe a "non-textfile", presumably because such a file makes full use of all the binarybits in its bytes. With the advent of Unicode, this distinction,already suspect, loses even more of its meaning.

  • binary operator

    An operator that takes two operands.

  • bind

    To assign a specific network address to a socket.

  • bit

    An integer in the range from 0 to 1, inclusive. The smallest possibleunit of information storage. An eighth of a byte or of a dollar.(The term "Pieces of Eight" comes from being able to split the oldSpanish dollar into 8 bits, each of which still counted for money.That's why a 25-cent piece today is still "two bits".)

  • bit shift

    The movement of bits left or right in a computer word, which has theeffect of multiplying or dividing by a power of 2.

  • bit string

    A sequence of bits that is actually being thought of as asequence of bits, for once.

  • bless

    In corporate life, to grant official approval to a thing, as in, "TheVP of Engineering has blessed our WebCruncher project." Similarly inPerl, to grant official approval to a referent so that it canfunction as an object, such as a WebCruncher object. Seebless.

  • block

    What a process does when it has to wait for something: "My processblocked waiting for the disk." As an unrelated noun, it refers to alarge chunk of data, of a size that the operating system likes todeal with (normally a power of two such as 512 or 8192). Typicallyrefers to a chunk of data that's coming from or going to a disk file.

  • BLOCK

    A syntactic construct consisting of a sequence of Perlstatements that is delimited by braces. The if andwhile statements are defined in terms of BLOCKs, for instance.Sometimes we also say "block" to mean a lexical scope; that is, asequence of statements that act like a BLOCK, such as within aneval or a file, even though the statements aren'tdelimited by braces.

  • block buffering

    A method of making input and output efficient by passing one blockat a time. By default, Perl does block buffering to disk files. Seebuffer and command buffering.

  • Boolean

    A value that is either true or false.

  • Boolean context

    A special kind of scalar context used in conditionals to decidewhether the scalar value returned by an expression is true orfalse. Does not evaluate as either a string or a number. Seecontext.

  • breakpoint

    A spot in your program where you've told the debugger to stopexecution so you can poke around and see whether anythingis wrong yet.

  • broadcast

    To send a datagram to multiple destinations simultaneously.

  • BSD

    A psychoactive drug, popular in the 80s, probably developed atU. C. Berkeley or thereabouts. Similar in many ways to theprescription-only medication called "System V", but infinitely moreuseful. (Or, at least, more fun.) The full chemical name is"Berkeley Standard Distribution".

  • bucket

    A location in a hash table containing (potentially) multipleentries whose keys "hash" to the same hash value according to its hashfunction. (As internal policy, you don't have to worry about it,unless you're into internals, or policy.)

  • buffer

    A temporary holding location for data. Block buffering means that the data is passed on to its destinationwhenever the buffer is full. Line buffering meansthat it's passed on whenever a complete line is received. Command buffering means that it's passed every time you doa print command (or equivalent). If your output isunbuffered, the system processes it one byte at a time without the useof a holding area. This can be rather inefficient.

  • built-in

    A function that is predefined in the language. Even when hiddenby overriding, you can always get at a built-in function byqualifying its name with the CORE:: pseudo-package.

  • bundle

    A group of related modules on CPAN. (Also, sometimes refers to agroup of command-line switches grouped into one switch cluster.)

  • byte

    A piece of data worth eight bits in most places.

  • bytecode

    A pidgin-like language spoken among 'droids when they don't wish toreveal their orientation (see endian). Named after some similarlanguages spoken (for similar reasons) between compilers andinterpreters in the late 20th century. These languages arecharacterized by representing everything as anon-architecture-dependent sequence of bytes.

C

  • C

    A language beloved by many for its inside-out type definitions,inscrutable precedence rules, and heavy overloading of thefunction-call mechanism. (Well, actually, people first switched to Cbecause they found lowercase identifiers easier to read than upper.)Perl is written in C, so it's not surprising that Perl borrowed a fewideas from it.

  • C preprocessor

    The typical C compiler's first pass, which processes lines beginningwith # for conditional compilation and macro definition and doesvarious manipulations of the program text based on the currentdefinitions. Also known as cpp(1).

  • call by reference

    An argument-passing mechanism in which the formal argumentsrefer directly to the actual arguments, and the subroutine canchange the actual arguments by changing the formal arguments. Thatis, the formal argument is an alias for the actual argument. Seealso call by value.

  • call by value

    An argument-passing mechanism in which the formal argumentsrefer to a copy of the actual arguments, and the subroutinecannot change the actual arguments by changing the formal arguments.See also call by reference.

  • callback

    A handler that you register with some other part of your programin the hope that the other part of your program will trigger yourhandler when some event of interest transpires.

  • canonical

    Reduced to a standard form to facilitate comparison.

  • capture buffer, capture group

    These two terms are synonymous:a captured substring by a regex subpattern.

  • capturing

    The use of parentheses around a subpattern in a regular expression to store the matched substring as a backreferenceor capture group.(Captured strings are also returned as a list in list context.)

  • character

    A small integer representative of a unit of orthography.Historically, characters were usually stored as fixed-width integers(typically in a byte, or maybe two, depending on the character set),but with the advent of UTF-8, characters are often stored in avariable number of bytes depending on the size of the integer thatrepresents the character. Perl manages this transparently for you,for the most part.

  • character class

    A square-bracketed list of characters used in a regular expressionto indicate that any character of the set may occur at a given point.Loosely, any predefined set of characters so used.

  • character property

    A predefined character class matchable by the \pmetasymbol. Many standard properties are defined for Unicode.

  • circumfix operator

    An operator that surrounds its operand, like the angleoperator, or parentheses, or a hug.

  • class

    A user-defined type, implemented in Perl via a package thatprovides (either directly or by inheritance) methods (thatis, subroutines) to handle instances ofthe class (its objects). See also inheritance.

  • class method

    A method whose invocant is a package name, not anobject reference. A method associated with the class as a whole.

  • client

    In networking, a process that initiates contact with a serverprocess in order to exchange data and perhaps receive a service.

  • cloister

    A cluster used to restrict the scope of a regular expression modifier.

  • closure

    An anonymous subroutine that, when a reference to it is generatedat run time, keeps track of the identities of externally visiblelexical variables even after those lexicalvariables have supposedly gone out of scope. They're called"closures" because this sort of behavior gives mathematicians a senseof closure.

  • cluster

    A parenthesized subpattern used to group parts of a regular expression into a single atom.

  • CODE

    The word returned by the ref function when you applyit to a reference to a subroutine. See also CV.

  • code generator

    A system that writes code for you in a low-level language, such ascode to implement the backend of a compiler. See program generator.

  • code point

    The position of a character in a character set encoding. The characterNULL is almost certainly at the zeroth position in all charactersets, so its code point is 0. The code point for the SPACEcharacter in the ASCII character set is 0x20, or 32 decimal; in EBCDICit is 0x40, or 64 decimal. The ord function returnsthe code point of a character.

    "code position" and "ordinal" mean the same thing as "code point".

  • code subpattern

    A regular expression subpattern whose real purpose is to executesome Perl code, for example, the (?{...}) and (??{...})subpatterns.

  • collating sequence

    The order into which characters sort. This is used bystring comparison routines to decide, for example, where in thisglossary to put "collating sequence".

  • command

    In shell programming, the syntactic combination of a program nameand its arguments. More loosely, anything you type to a shell (acommand interpreter) that starts it doing something. Even moreloosely, a Perl statement, which might start with a label andtypically ends with a semicolon.

  • command buffering

    A mechanism in Perl that lets you store up the output of each Perlcommand and then flush it out as a single request to theoperating system. It's enabled by setting the $|($AUTOFLUSH) variable to a true value. It's used when you don'twant data sitting around not going where it's supposed to, which mayhappen because the default on a file or pipe is to useblock buffering.

  • command name

    The name of the program currently executing, as typed on the commandline. In C, the command name is passed to the program as thefirst command-line argument. In Perl, it comes in separately as$0.

  • command-line arguments

    The values you supply along with a program name when youtell a shell to execute a command. These values are passed toa Perl program through @ARGV.

  • comment

    A remark that doesn't affect the meaning of the program. In Perl, acomment is introduced by a # character and continues to the end ofthe line.

  • compilation unit

    The file (or string, in the case of eval)that is currently being compiled.

  • compile phase

    Any time before Perl starts running your main program. See alsorun phase. Compile phase is mostly spent in compile time, butmay also be spent in run time when BEGIN blocks,use declarations, or constant subexpressions are beingevaluated. The startup and import code of any usedeclaration is also run during compile phase.

  • compile time

    The time when Perl is trying to make sense of your code, as opposed towhen it thinks it knows what your code means and is merely trying todo what it thinks your code says to do, which is run time.

  • compiler

    Strictly speaking, a program that munches up another program and spitsout yet another file containing the program in a "more executable"form, typically containing native machine instructions. The perlprogram is not a compiler by this definition, but it does contain akind of compiler that takes a program and turns it into a moreexecutable form (syntax trees) within the perlprocess itself, which the interpreter then interprets. There are,however, extension modules to get Perl to act more like a"real" compiler. See O.

  • composer

    A "constructor" for a referent that isn't really an object,like an anonymous array or a hash (or a sonata, for that matter). Forexample, a pair of braces acts as a composer for a hash, and a pair ofbrackets acts as a composer for an array. See Making References in perlref.

  • concatenation

    The process of gluing one cat's nose to another cat's tail. Also, asimilar operation on two strings.

  • conditional

    Something "iffy". See Boolean context.

  • connection

    In telephony, the temporary electrical circuit between the caller'sand the callee's phone. In networking, the same kind of temporarycircuit between a client and a server.

  • construct

    As a noun, a piece of syntax made up of smaller pieces. As atransitive verb, to create an object using a constructor.

  • constructor

    Any class method, instance method, or subroutinethat composes, initializes, blesses, and returns an object.Sometimes we use the term loosely to mean a composer.

  • context

    The surroundings, or environment. The context given by thesurrounding code determines what kind of data a particularexpression is expected to return. The three primary contexts arelist context, scalar context, and void context. Scalarcontext is sometimes subdivided into Boolean context, numeric context, string context, and void context. There's also a"don't care" scalar context (which is dealt with in Programming Perl,Third Edition, Chapter 2, "Bits and Pieces" if you care).

  • continuation

    The treatment of more than one physical line as a single logicalline. Makefile lines are continued by putting a backslash beforethe newline. Mail headers as defined by RFC 822 are continued byputting a space or tab after the newline. In general, lines inPerl do not need any form of continuation mark, because whitespace(including newlines) is gleefully ignored. Usually.

  • core dump

    The corpse of a process, in the form of a file left in theworking directory of the process, usually as a result of certainkinds of fatal error.

  • CPAN

    The Comprehensive Perl Archive Network. (See What modules and extensions are available for Perl? What is CPAN? in perlfaq2).

  • cracker

    Someone who breaks security on computer systems. A cracker may be atrue hacker or only a script kiddie.

  • current package

    The package in which the current statement is compiled. Scanbackwards in the text of your program through the current lexical scope or any enclosing lexical scopes till you finda package declaration. That's your current package name.

  • current working directory

    See working directory.

  • currently selected output channel

    The last filehandle that was designated withselect(FILEHANDLE); STDOUT, if no filehandlehas been selected.

  • CV

    An internal "code value" typedef, holding a subroutine. The CVtype is a subclass of SV.

D

  • dangling statement

    A bare, single statement, without any braces, hanging off an ifor while conditional. C allows them. Perl doesn't.

  • data structure

    How your various pieces of data relate to each other and what shapethey make when you put them all together, as in a rectangular table ora triangular-shaped tree.

  • data type

    A set of possible values, together with all the operations that knowhow to deal with those values. For example, a numeric data type has acertain set of numbers that you can work with and various mathematicaloperations that you can do on the numbers but would make little senseon, say, a string such as "Kilroy". Strings have their ownoperations, such as concatenation. Compound types made of anumber of smaller pieces generally have operations to compose anddecompose them, and perhaps to rearrange them. Objectsthat model things in the real world often have operations thatcorrespond to real activities. For instance, if you model anelevator, your elevator object might have an open_door()method.

  • datagram

    A packet of data, such as a UDP message, that (from the viewpointof the programs involved) can be sent independently over the network.(In fact, all packets are sent independently at the IP level, butstream protocols such as TCP hide this from your program.)

  • DBM

    Stands for "Data Base Management" routines, a set of routines thatemulate an associative array using disk files. The routines use adynamic hashing scheme to locate any entry with only two diskaccesses. DBM files allow a Perl program to keep a persistenthash across multiple invocations. You can tieyour hash variables to various DBM implementations--see AnyDBM_Fileand DB_File.

  • declaration

    An assertion that states something exists and perhaps describeswhat it's like, without giving any commitment as to how or whereyou'll use it. A declaration is like the part of your recipe thatsays, "two cups flour, one large egg, four or five tadpoles..." Seestatement for its opposite. Note that some declarations alsofunction as statements. Subroutine declarations also act asdefinitions if a body is supplied.

  • decrement

    To subtract a value from a variable, as in "decrement $x" (meaningto remove 1 from its value) or "decrement $x by 3".

  • default

    A value chosen for you if you don't supply a value of your own.

  • defined

    Having a meaning. Perl thinks that some of the things people try todo are devoid of meaning, in particular, making use of variables thathave never been given a value and performing certain operations ondata that isn't there. For example, if you try to read data past theend of a file, Perl will hand you back an undefined value. See alsofalse and defined.

  • delimiter

    A character or string that sets bounds to an arbitrarily-sizedtextual object, not to be confused with a separator orterminator. "To delimit" really just means "to surround" or "toenclose" (like these parentheses are doing).

  • deprecated modules and features

    Deprecated modules and features are those which were part of a stablerelease, but later found to be subtly flawed, and which should be avoided.They are subject to removal and/or bug-incompatible reimplementation inthe next major release (but they will be preserved through maintenancereleases). Deprecation warnings are issued under -w or usediagnostics, and notices are found in perldeltas, as well as variousother PODs. Coding practices that misuse features, such as my $foo if0, can also be deprecated.

  • dereference

    A fancy computer science term meaning "to follow a reference towhat it points to". The "de" part of it refers to the fact thatyou're taking away one level of indirection.

  • derived class

    A class that defines some of its methods in terms of amore generic class, called a base class. Note that classes aren'tclassified exclusively into base classes or derived classes: a classcan function as both a derived class and a base class simultaneously,which is kind of classy.

  • descriptor

    See file descriptor.

  • destroy

    To deallocate the memory of a referent (first triggering itsDESTROY method, if it has one).

  • destructor

    A special method that is called when an object is thinkingabout destroying itself. A Perl program's DESTROYmethod doesn't do the actual destruction; Perl justtriggers the method in case the class wants to do anyassociated cleanup.

  • device

    A whiz-bang hardware gizmo (like a disk or tape drive or a modem or ajoystick or a mouse) attached to your computer, that the operating system tries to make look like a file (or a bunch of files).Under Unix, these fake files tend to live in the /dev directory.

  • directive

    A pod directive. See perlpod.

  • directory

    A special file that contains other files. Some operating systems call these "folders", "drawers", or"catalogs".

  • directory handle

    A name that represents a particular instance of opening a directory toread it, until you close it. See the opendirfunction.

  • dispatch

    To send something to its correct destination. Often usedmetaphorically to indicate a transfer of programmatic control to adestination selected algorithmically, often by lookup in a table offunction references or, in the case of objectmethods, by traversing the inheritance tree looking for themost specific definition for the method.

  • distribution

    A standard, bundled release of a system of software. The defaultusage implies source code is included. If that is not the case, itwill be called a "binary-only" distribution.

  • (to be) dropped modules

    When Perl 5 was first released (see perlhist), several modules wereincluded, which have now fallen out of common use. It has been suggestedthat these modules should be removed, since the distribution became ratherlarge, and the common criterion for new module additions is now limited tomodules that help to build, test, and extend perl itself. Furthermore,the CPAN (which didn't exist at the time of Perl 5.0) can become the newhome of dropped modules. Dropping modules is currently not an option, butfurther developments may clear the last barriers.

  • dweomer

    An enchantment, illusion, phantasm, or jugglery. Said when Perl'smagical dwimmer effects don't do what you expect, but rather seemto be the product of arcane dweomercraft, sorcery, or wonder working.[From Old English]

  • dwimmer

    DWIM is an acronym for "Do What I Mean", the principle that somethingshould just do what you want it to do without an undue amount of fuss.A bit of code that does "dwimming" is a "dwimmer". Dwimming canrequire a great deal of behind-the-scenes magic, which (if it doesn'tstay properly behind the scenes) is called a dweomer instead.

  • dynamic scoping

    Dynamic scoping works over a dynamic scope, making variables visiblethroughout the rest of the block in which they are first used andin any subroutines that are called by the rest of theblock. Dynamically scoped variables can have their values temporarilychanged (and implicitly restored later) by a localoperator. (Compare lexical scoping.) Used more loosely to meanhow a subroutine that is in the middle of calling another subroutine"contains" that subroutine at run time.

E

  • eclectic

    Derived from many sources. Some would say too many.

  • element

    A basic building block. When you're talking about an array, it'sone of the items that make up the array.

  • embedding

    When something is contained in something else, particularly when thatmight be considered surprising: "I've embedded a complete Perlinterpreter in my editor!"

  • empty list

    See </null list>.

  • empty subclass test

    The notion that an empty derived class should behave exactly likeits base class.

  • en passant

    When you change a value as it is being copied. [From French, "inpassing", as in the exotic pawn-capturing maneuver in chess.]

  • encapsulation

    The veil of abstraction separating the interface from theimplementation (whether enforced or not), which mandates that allaccess to an object's state be through methods alone.

  • endian

    See little-endian and big-endian.

  • environment

    The collective set of environment variablesyour process inherits from its parent. Accessed via %ENV.

  • environment variable

    A mechanism by which some high-level agent such as a user can pass itspreferences down to its future offspring (child processes,grandchild processes, great-grandchild processes, and so on). Eachenvironment variable is a key/value pair, like one entry in ahash.

  • EOF

    End of File. Sometimes used metaphorically as the terminating stringof a here document.

  • errno

    The error number returned by a syscall when it fails. Perl refersto the error by the name $! (or $OS_ERROR if you use the Englishmodule).

  • error

    See exception or fatal error.

  • escape sequence

    See metasymbol.

  • exception

    A fancy term for an error. See fatal error.

  • exception handling

    The way a program responds to an error. The exception handlingmechanism in Perl is the eval operator.

  • exec

    To throw away the current process's program and replace it withanother without exiting the process or relinquishing any resourcesheld (apart from the old memory image).

  • executable file

    A file that is specially marked to tell the operating systemthat it's okay to run this file as a program. Usually shortened to"executable".

  • execute

    To run a program or subroutine. (Has nothingto do with the kill built-in, unless you're trying torun a signal handler.)

  • execute bit

    The special mark that tells the operating system it can run thisprogram. There are actually three execute bits under Unix, and whichbit gets used depends on whether you own the file singularly,collectively, or not at all.

  • exit status

    See status.

  • export

    To make symbols from a module available for import by other modules.

  • expression

    Anything you can legally say in a spot where a value is required.Typically composed of literals, variables,operators, functions, and subroutinecalls, not necessarily in that order.

  • extension

    A Perl module that also pulls in compiled C or C++ code. Moregenerally, any experimental option that can be compiled into Perl,such as multithreading.

F

  • false

    In Perl, any value that would look like "" or "0" if evaluatedin a string context. Since undefined values evaluate to "", allundefined values are false (including the null list), but not allfalse values are undefined.

  • FAQ

    Frequently Asked Question (although not necessarily frequentlyanswered, especially if the answer appears in the Perl FAQ shippedstandard with Perl).

  • fatal error

    An uncaught exception, which causes termination of the processafter printing a message on your standard error stream. Errorsthat happen inside an eval are not fatal. Instead,the eval terminates after placing the exceptionmessage in the $@ ($EVAL_ERROR) variable. You can try toprovoke a fatal error with the die operator (known asthrowing or raising an exception), but this may be caught by adynamically enclosing eval. If not caught, thedie becomes a fatal error.

  • field

    A single piece of numeric or string data that is part of a longerstring, record, or line. Variable-width fields are usuallysplit up by separators (so use split toextract the fields), while fixed-width fields are usually at fixedpositions (so use unpack). Instance variables are also known as fields.

  • FIFO

    First In, First Out. See also LIFO. Also, a nickname for anamed pipe.

  • file

    A named collection of data, usually stored on disk in a directoryin a filesystem. Roughly like a document, if you're into officemetaphors. In modern filesystems, you can actually give a file morethan one name. Some files have special properties, like directoriesand devices.

  • file descriptor

    The little number the operating system uses to keep track of whichopened file you're talking about. Perl hides the file descriptorinside a standard I/O stream and then attaches the stream toa filehandle.

  • file test operator

    A built-in unary operator that you use to determine whether somethingis true about a file, such as -o $filename to test whetheryou're the owner of the file.

  • fileglob

    A "wildcard" match on filenames. See theglob function.

  • filehandle

    An identifier (not necessarily related to the real name of a file)that represents a particular instance of opening a file until youclose it. If you're going to open and close several different filesin succession, it's fine to open each of them with the samefilehandle, so you don't have to write out separate code to processeach file.

  • filename

    One name for a file. This name is listed in a directory, and youcan use it in an open to tell the operating system exactly which file you want to open, and associate the filewith a filehandle which will carry the subsequent identity of thatfile in your program, until you close it.

  • filesystem

    A set of directories and files residing on apartition of the disk. Sometimes known as a "partition". You canchange the file's name or even move a file around from directory todirectory within a filesystem without actually moving the file itself,at least under Unix.

  • filter

    A program designed to take a stream of input and transform it intoa stream of output.

  • flag

    We tend to avoid this term because it means so many things. It maymean a command-line switch that takes no argumentitself (such as Perl's -n and -pflags) or, less frequently, a single-bit indicator (such as theO_CREAT and O_EXCL flags used insysopen).

  • floating point

    A method of storing numbers in "scientific notation", such that theprecision of the number is independent of its magnitude (the decimalpoint "floats"). Perl does its numeric work with floating-pointnumbers (sometimes called "floats"), when it can't get away withusing integers. Floating-point numbers are mereapproximations of real numbers.

  • flush

    The act of emptying a buffer, often before it's full.

  • FMTEYEWTK

    Far More Than Everything You Ever Wanted To Know. An exhaustivetreatise on one narrow topic, something of a super-FAQ. See Tomfor far more.

  • fork

    To create a child process identical to the parent process at itsmoment of conception, at least until it gets ideas of its own. Athread with protected memory.

  • formal arguments

    The generic names by which a subroutine knows itsarguments. In many languages, formal arguments arealways given individual names, but in Perl, the formal arguments arejust the elements of an array. The formal arguments to a Perl programare $ARGV[0], $ARGV[1], and so on. Similarly, the formalarguments to a Perl subroutine are $_[0], $_[1], and so on. Youmay give the arguments individual names by assigning the values to amy list. See also actual arguments.

  • format

    A specification of how many spaces and digits and things to putsomewhere so that whatever you're printing comes out nice and pretty.

  • freely available

    Means you don't have to pay money to get it, but the copyright on itmay still belong to someone else (like Larry).

  • freely redistributable

    Means you're not in legal trouble if you give a bootleg copy of it toyour friends and we find out about it. In fact, we'd rather you gavea copy to all your friends.

  • freeware

    Historically, any software that you give away, particularly if youmake the source code available as well. Now often called opensource software. Recently there has been a trend to use the term incontradistinction to open source software, to refer only to freesoftware released under the Free Software Foundation's GPL (GeneralPublic License), but this is difficult to justify etymologically.

  • function

    Mathematically, a mapping of each of a set of input values to aparticular output value. In computers, refers to a subroutine oroperator that returns a value. It may or may not have inputvalues (called arguments).

  • funny character

    Someone like Larry, or one of his peculiar friends. Also refers tothe strange prefixes that Perl requires as noun markers on itsvariables.

G

  • garbage collection

    A misnamed feature--it should be called, "expecting your mother topick up after you". Strictly speaking, Perl doesn't do this, but itrelies on a reference-counting mechanism to keep things tidy.However, we rarely speak strictly and will often refer to thereference-counting scheme as a form of garbage collection. (If it'sany comfort, when your interpreter exits, a "real" garbage collectorruns to make sure everything is cleaned up if you've been messy withcircular references and such.)

  • GID

    Group ID--in Unix, the numeric group ID that the operating systemuses to identify you and members of your group.

  • glob

    Strictly, the shell's * character, which will match a "glob" ofcharacters when you're trying to generate a list of filenames.Loosely, the act of using globs and similar symbols to do patternmatching. See also fileglob and typeglob.

  • global

    Something you can see from anywhere, usually used ofvariables and subroutines that are visibleeverywhere in your program. In Perl, only certain special variablesare truly global--most variables (and all subroutines) exist only inthe current package. Global variables can be declared withour. See our.

  • global destruction

    The garbage collection of globals (and the running of anyassociated object destructors) that takes place when a Perlinterpreter is being shut down. Global destruction should not beconfused with the Apocalypse, except perhaps when it should.

  • glue language

    A language such as Perl that is good at hooking things together thatweren't intended to be hooked together.

  • granularity

    The size of the pieces you're dealing with, mentally speaking.

  • greedy

    A subpattern whose quantifier wants to match as many things aspossible.

  • grep

    Originally from the old Unix editor command for "Globally search for aRegular Expression and Print it", now used in the general sense of anykind of search, especially text searches. Perl has a built-ingrep function that searches a list for elementsmatching any given criterion, whereas the grep(1) program searchesfor lines matching a regular expression in one or more files.

  • group

    A set of users of which you are a member. In some operating systems(like Unix), you can give certain file access permissions to othermembers of your group.

  • GV

    An internal "glob value" typedef, holding a typeglob. The GVtype is a subclass of SV.

H

  • hacker

    Someone who is brilliantly persistent in solving technical problems,whether these involve golfing, fighting orcs, or programming. Hackeris a neutral term, morally speaking. Good hackers are not to beconfused with evil crackers or clueless script kiddies. If you confuse them, we will presume thatyou are either evil or clueless.

  • handler

    A subroutine or method that is called by Perl when yourprogram needs to respond to some internal event, such as a signal,or an encounter with an operator subject to operator overloading.See also callback.

  • hard reference

    A scalar value containing the actual address of areferent, such that the referent's reference count accountsfor it. (Some hard references are held internally, such as theimplicit reference from one of a typeglob's variable slots to itscorresponding referent.) A hard reference is different from asymbolic reference.

  • hash

    An unordered association of key/value pairs, stored such thatyou can easily use a string key to look up its associated datavalue. This glossary is like a hash, where the word to be definedis the key, and the definition is the value. A hash is also sometimesseptisyllabically called an "associative array", which is a prettygood reason for simply calling it a "hash" instead. A hash can optionallybe restricted to a fixed set of keys.

  • hash table

    A data structure used internally by Perl for implementing associativearrays (hashes) efficiently. See also bucket.

  • header file

    A file containing certain required definitions that you must include"ahead" of the rest of your program to do certain obscure operations.A C header file has a .h extension. Perl doesn't really haveheader files, though historically Perl has sometimes used translated.h files with a .ph extension. See require.(Header files have been superseded by the module mechanism.)

  • here document

    So called because of a similar construct in shells thatpretends that the lines following the command are aseparate file to be fed to the command, up to some terminatingstring. In Perl, however, it's just a fancy form of quoting.

  • hexadecimal

    A number in base 16, "hex" for short. The digits for 10 through 16are customarily represented by the letters a through f.Hexadecimal constants in Perl start with 0x. See alsohex.

  • home directory

    The directory you are put into when you log in. On a Unix system, thename is often placed into $ENV{HOME} or $ENV{LOGDIR} bylogin, but you can also find it with (getpwuid($<))[7].(Some platforms do not have a concept of a home directory.)

  • host

    The computer on which a program or other data resides.

  • hubris

    Excessive pride, the sort of thing Zeus zaps you for. Also thequality that makes you write (and maintain) programs that other peoplewon't want to say bad things about. Hence, the third great virtue ofa programmer. See also laziness and impatience.

  • HV

    Short for a "hash value" typedef, which holds Perl's internalrepresentation of a hash. The HV type is a subclass of SV.

I

  • identifier

    A legally formed name for most anything in which a computer programmight be interested. Many languages (including Perl) allowidentifiers that start with a letter and contain letters and digits.Perl also counts the underscore character as a valid letter. (Perlalso has more complicated names, such as qualified names.)

  • impatience

    The anger you feel when the computer is being lazy. This makes youwrite programs that don't just react to your needs, but actuallyanticipate them. Or at least that pretend to. Hence, the secondgreat virtue of a programmer. See also laziness and hubris.

  • implementation

    How a piece of code actually goes about doing its job. Users of thecode should not count on implementation details staying the sameunless they are part of the published interface.

  • import

    To gain access to symbols that are exported from another module. Seeuse.

  • increment

    To increase the value of something by 1 (or by some other number, ifso specified).

  • indexing

    In olden days, the act of looking up a key in an actual index(such as a phone book), but now merely the act of using any kind ofkey or position to find the corresponding value, even if no indexis involved. Things have degenerated to the point that Perl'sindex function merely locates the position (index)of one string in another.

  • indirect filehandle

    An expression that evaluates to something that can be used as afilehandle: a string (filehandle name), a typeglob, atypeglob reference, or a low-level IO object.

  • indirect object

    In English grammar, a short noun phrase between a verb and its directobject indicating the beneficiary or recipient of the action. InPerl, print STDOUT "$foo\n"; can be understood as "verbindirect-object object" where STDOUT is the recipient of theprint action, and "$foo" is the object beingprinted. Similarly, when invoking a method, you might place theinvocant between the method and its arguments:

    1. $gollum = new Pathetic::Creature "Smeagol";
    2. give $gollum "Fisssssh!";
    3. give $gollum "Precious!";

    In modern Perl, calling methods this way is often considered bad practice andto be avoided.

  • indirect object slot

    The syntactic position falling between a method call and its argumentswhen using the indirect object invocation syntax. (The slot isdistinguished by the absence of a comma between it and the nextargument.) STDERR is in the indirect object slot here:

    1. print STDERR "Awake! Awake! Fear, Fire,
    2. Foes! Awake!\n";
  • indirection

    If something in a program isn't the value you're looking for butindicates where the value is, that's indirection. This can be donewith either symbolic references or hard references.

  • infix

    An operator that comes in between its operands, suchas multiplication in 24 * 7.

  • inheritance

    What you get from your ancestors, genetically or otherwise. If youhappen to be a class, your ancestors are called base classes and your descendants are called derived classes. See single inheritance and multiple inheritance.

  • instance

    Short for "an instance of a class", meaning an object of that class.

  • instance variable

    An attribute of an object; data stored with the particularobject rather than with the class as a whole.

  • integer

    A number with no fractional (decimal) part. A counting number, like1, 2, 3, and so on, but including 0 and the negatives.

  • interface

    The services a piece of code promises to provide forever, in contrast toits implementation, which it should feel free to change whenever itlikes.

  • interpolation

    The insertion of a scalar or list value somewhere in the middle ofanother value, such that it appears to have been there all along. InPerl, variable interpolation happens in double-quoted strings andpatterns, and list interpolation occurs when constructing the list ofvalues to pass to a list operator or other such construct that takes aLIST.

  • interpreter

    Strictly speaking, a program that reads a second program and does whatthe second program says directly without turning the program into adifferent form first, which is what compilers do. Perlis not an interpreter by this definition, because it contains a kindof compiler that takes a program and turns it into a more executableform (syntax trees) within the perl process itself,which the Perl run time system then interprets.

  • invocant

    The agent on whose behalf a method is invoked. In a classmethod, the invocant is a package name. In an instance method,the invocant is an object reference.

  • invocation

    The act of calling up a deity, daemon, program, method, subroutine, orfunction to get it do what you think it's supposed to do. We usually"call" subroutines but "invoke" methods, since it sounds cooler.

  • I/O

    Input from, or output to, a file or device.

  • IO

    An internal I/O object. Can also mean indirect object.

  • IP

    Internet Protocol, or Intellectual Property.

  • IPC

    Interprocess Communication.

  • is-a

    A relationship between two objects in which one object isconsidered to be a more specific version of the other, generic object:"A camel is a mammal." Since the generic object really only exists ina Platonic sense, we usually add a little abstraction to the notion ofobjects and think of the relationship as being between a genericbase class and a specific derived class. Oddly enough,Platonic classes don't always have Platonic relationships--seeinheritance.

  • iteration

    Doing something repeatedly.

  • iterator

    A special programming gizmo that keeps track of where you are insomething that you're trying to iterate over. The foreach loop inPerl contains an iterator; so does a hash, allowing you toeach through it.

  • IV

    The integer four, not to be confused with six, Tom's favorite editor.IV also means an internal Integer Value of the type a scalar canhold, not to be confused with an NV.

J

  • JAPH

    "Just Another Perl Hacker," a clever but cryptic bit of Perl code thatwhen executed, evaluates to that string. Often used to illustrate aparticular Perl feature, and something of an ongoing Obfuscated PerlContest seen in Usenix signatures.

K

L

  • label

    A name you give to a statement so that you can talk about thatstatement elsewhere in the program.

  • laziness

    The quality that makes you go to great effort to reduce overall energyexpenditure. It makes you write labor-saving programs that otherpeople will find useful, and document what you wrote so you don't haveto answer so many questions about it. Hence, the first great virtueof a programmer. Also hence, this book. See also impatience andhubris.

  • left shift

    A bit shift that multiplies the number by some power of 2.

  • leftmost longest

    The preference of the regular expression engine to match theleftmost occurrence of a pattern, then given a position at which amatch will occur, the preference for the longest match (presuming theuse of a greedy quantifier). See perlre for much more onthis subject.

  • lexeme

    Fancy term for a token.

  • lexer

    Fancy term for a tokener.

  • lexical analysis

    Fancy term for tokenizing.

  • lexical scoping

    Looking at your Oxford English Dictionary through a microscope.(Also known as static scoping, because dictionaries don't changevery fast.) Similarly, looking at variables stored in a privatedictionary (namespace) for each scope, which are visible only fromtheir point of declaration down to the end of the lexical scope inwhich they are declared. --Syn. static scoping.--Ant. dynamic scoping.

  • lexical variable

    A variable subject to lexical scoping, declared bymy. Often just called a "lexical". (Theour declaration declares a lexically scoped name for aglobal variable, which is not itself a lexical variable.)

  • library

    Generally, a collection of procedures. In ancient days, referred to acollection of subroutines in a .pl file. In modern times, refersmore often to the entire collection of Perl modules on yoursystem.

  • LIFO

    Last In, First Out. See also FIFO. A LIFO is usually called astack.

  • line

    In Unix, a sequence of zero or more non-newline characters terminatedwith a newline character. On non-Unix machines, this is emulatedby the C library even if the underlying operating system hasdifferent ideas.

  • line buffering

    Used by a standard I/O output stream that flushes itsbuffer after every newline. Many standard I/O librariesautomatically set up line buffering on output that is going to theterminal.

  • line number

    The number of lines read previous to this one, plus 1. Perl keeps aseparate line number for each source or input file it opens. Thecurrent source file's line number is represented by __LINE__. Thecurrent input line number (for the file that was most recently readvia <FH>) is represented by the $.($INPUT_LINE_NUMBER) variable. Many error messages report bothvalues, if available.

  • link

    Used as a noun, a name in a directory, representing a file. Agiven file can have multiple links to it. It's like having the samephone number listed in the phone directory under different names. Asa verb, to resolve a partially compiled file's unresolved symbols intoa (nearly) executable image. Linking can generally be static ordynamic, which has nothing to do with static or dynamic scoping.

  • LIST

    A syntactic construct representing a comma-separated list ofexpressions, evaluated to produce a list value. Eachexpression in a LIST is evaluated in list context andinterpolated into the list value.

  • list

    An ordered set of scalar values.

  • list context

    The situation in which an expression is expected by itssurroundings (the code calling it) to return a list of values ratherthan a single value. Functions that want a LIST of arguments tellthose arguments that they should produce a list value. See alsocontext.

  • list operator

    An operator that does something with a list of values, such asjoin or grep. Usually used fornamed built-in operators (such as print,unlink, and system) that do notrequire parentheses around their argument list.

  • list value

    An unnamed list of temporary scalar values that may be passed aroundwithin a program from any list-generating function to any function orconstruct that provides a list context.

  • literal

    A token in a programming language such as a number or string thatgives you an actual value instead of merely representing possiblevalues as a variable does.

  • little-endian

    From Swift: someone who eats eggs little end first. Also used ofcomputers that store the least significant byte of a word at alower byte address than the most significant byte. Often consideredsuperior to big-endian machines. See also big-endian.

  • local

    Not meaning the same thing everywhere. A global variable in Perl canbe localized inside a dynamic scope via thelocal operator.

  • logical operator

    Symbols representing the concepts "and", "or", "xor", and "not".

  • lookahead

    An assertion that peeks at the string to the right of the currentmatch location.

  • lookbehind

    An assertion that peeks at the string to the left of the currentmatch location.

  • loop

    A construct that performs something repeatedly, like a roller coaster.

  • loop control statement

    Any statement within the body of a loop that can make a loopprematurely stop looping or skip an iteration. Generally youshouldn't try this on roller coasters.

  • loop label

    A kind of key or name attached to a loop (or roller coaster) so thatloop control statements can talk about which loop they want tocontrol.

  • lvaluable

    Able to serve as an lvalue.

  • lvalue

    Term used by language lawyers for a storage location you can assign anew value to, such as a variable or an element of anarray. The "l" is short for "left", as in the left side of anassignment, a typical place for lvalues. An lvaluable function orexpression is one to which a value may be assigned, as in pos($x) =10.

  • lvalue modifier

    An adjectival pseudofunction that warps the meaning of an lvaluein some declarative fashion. Currently there are three lvaluemodifiers: my, our, andlocal.

M

  • magic

    Technically speaking, any extra semantics attached to a variable suchas $!, $0, %ENV, or %SIG, or to any tied variable.Magical things happen when you diddle those variables.

  • magical increment

    An increment operator that knows how to bump up alphabetics aswell as numbers.

  • magical variables

    Special variables that have side effects when you access them orassign to them. For example, in Perl, changing elements of the%ENV array also changes the corresponding environment variablesthat subprocesses will use. Reading the $! variable gives you thecurrent system error number or message.

  • Makefile

    A file that controls the compilation of a program. Perl programsdon't usually need a Makefile because the Perl compiler has plentyof self-control.

  • man

    The Unix program that displays online documentation (manual pages) foryou.

  • manpage

    A "page" from the manuals, typically accessed via the man(1)command. A manpage contains a SYNOPSIS, a DESCRIPTION, a list ofBUGS, and so on, and is typically longer than a page. There aremanpages documenting commands, syscalls,library functions, devices,protocols, files, and such. In this book, wecall any piece of standard Perl documentation (like perlop orperldelta) a manpage, no matter what format it's installed in onyour system.

  • matching

    See pattern matching.

  • member data

    See instance variable.

  • memory

    This always means your main memory, not your disk. Clouding the issueis the fact that your machine may implement virtual memory; thatis, it will pretend that it has more memory than it really does, andit'll use disk space to hold inactive bits. This can make it seemlike you have a little more memory than you really do, but it's not asubstitute for real memory. The best thing that can be said aboutvirtual memory is that it lets your performance degrade graduallyrather than suddenly when you run out of real memory. But yourprogram can die when you run out of virtual memory too, if you haven'tthrashed your disk to death first.

  • metacharacter

    A character that is not supposed to be treated normally. Whichcharacters are to be treated specially as metacharacters variesgreatly from context to context. Your shell will have certainmetacharacters, double-quoted Perl strings have othermetacharacters, and regular expression patterns have all thedouble-quote metacharacters plus some extra ones of their own.

  • metasymbol

    Something we'd call a metacharacter except that it's a sequence ofmore than one character. Generally, the first character in thesequence must be a true metacharacter to get the other characters inthe metasymbol to misbehave along with it.

  • method

    A kind of action that an object can take if you tell it to. Seeperlobj.

  • minimalism

    The belief that "small is beautiful." Paradoxically, if you saysomething in a small language, it turns out big, and if you say it ina big language, it turns out small. Go figure.

  • mode

    In the context of the stat(2) syscall, refers to the field holdingthe permission bits and the type of the file.

  • modifier

    See statement modifier, regular expression modifier, andlvalue modifier, not necessarily in that order.

  • module

    A file that defines a package of (almost) the same name, whichcan either export symbols or function as an object class. (Amodule's main .pm file may also load in other files in support ofthe module.) See the use built-in.

  • modulus

    An integer divisor when you're interested in the remainder instead ofthe quotient.

  • monger

    Short for Perl Monger, a purveyor of Perl.

  • mortal

    A temporary value scheduled to die when the current statementfinishes.

  • multidimensional array

    An array with multiple subscripts for finding a single element. Perlimplements these using references--see perllol andperldsc.

  • multiple inheritance

    The features you got from your mother and father, mixed togetherunpredictably. (See also inheritance, and single inheritance.) In computer languages (including Perl), the notionthat a given class may have multiple direct ancestors or base classes.

N

  • named pipe

    A pipe with a name embedded in the filesystem so that it canbe accessed by two unrelated processes.

  • namespace

    A domain of names. You needn't worry about whether the names in onesuch domain have been used in another. See package.

  • network address

    The most important attribute of a socket, like your telephone'stelephone number. Typically an IP address. See also port.

  • newline

    A single character that represents the end of a line, with the ASCIIvalue of 012 octal under Unix (but 015 on a Mac), and represented by\n in Perl strings. For Windows machines writing text files, andfor certain physical devices like terminals, the single newline getsautomatically translated by your C library into a line feed and acarriage return, but normally, no translation is done.

  • NFS

    Network File System, which allows you to mount a remote filesystem asif it were local.

  • null character

    A character with the ASCII value of zero. It's used by C to terminatestrings, but Perl allows strings to contain a null.

  • null list

    A valueless value represented in Perl by (). It is not really aLIST, but an expression that yields undef in scalar context anda list value with zero elements in list context.

  • null string

    A string containing no characters, not to be confused with astring containing a null character, which has a positive lengthand is true.

  • numeric context

    The situation in which an expression is expected by its surroundings(the code calling it) to return a number. See also context andstring context.

  • NV

    Short for Nevada, no part of which will ever be confused withcivilization. NV also means an internal floating-point Numeric Valueof the type a scalar can hold, not to be confused with an IV.

  • nybble

    Half a byte, equivalent to one hexadecimal digit, and worthfour bits.

O

  • object

    An instance of a class. Something that "knows" whatuser-defined type (class) it is, and what it can do because of whatclass it is. Your program can request an object to do things, but theobject gets to decide whether it wants to do them or not. Someobjects are more accommodating than others.

  • octal

    A number in base 8. Only the digits 0 through 7 are allowed. Octalconstants in Perl start with 0, as in 013. See also theoct function.

  • offset

    How many things you have to skip over when moving from the beginningof a string or array to a specific position within it. Thus, theminimum offset is zero, not one, because you don't skip anything toget to the first item.

  • one-liner

    An entire computer program crammed into one line of text.

  • open source software

    Programs for which the source code is freely available and freelyredistributable, with no commercial strings attached. For a moredetailed definition, see http://www.opensource.org/osd.html.

  • operand

    An expression that yields a value that an operatoroperates on. See also precedence.

  • operating system

    A special program that runs on the bare machine and hides the gorydetails of managing processes and devices.Usually used in a looser sense to indicate a particular culture ofprogramming. The loose sense can be used at varying levels ofspecificity. At one extreme, you might say that all versions of Unixand Unix-lookalikes are the same operating system (upsetting manypeople, especially lawyers and other advocates). At the otherextreme, you could say this particular version of this particularvendor's operating system is different from any other version of thisor any other vendor's operating system. Perl is much more portableacross operating systems than many other languages. See alsoarchitecture and platform.

  • operator

    A gizmo that transforms some number of input values to some number ofoutput values, often built into a language with a special syntax orsymbol. A given operator may have specific expectations about whattypes of data you give as its arguments(operands) and what type of data you want back from it.

  • operator overloading

    A kind of overloading that you can do on built-inoperators to make them work on objects as ifthe objects were ordinary scalar values, but with the actual semanticssupplied by the object class. This is set up with the overloadpragma.

  • options

    See either switches or regular expression modifier.

  • ordinal

    Another name for code point

  • overloading

    Giving additional meanings to a symbol or construct. Actually, alllanguages do overloading to one extent or another, since people aregood at figuring out things from context.

  • overriding

    Hiding or invalidating some other definition of the same name. (Notto be confused with overloading, which adds definitions that mustbe disambiguated some other way.) To confuse the issue further, we usethe word with two overloaded definitions: to describe how you candefine your own subroutine to hide a built-in function of thesame name (see Overriding Built-in Functions in perlsub) and todescribe how you can define a replacement method in a derived class to hide a base class's method of the same name (seeperlobj).

  • owner

    The one user (apart from the superuser) who has absolute control overa file. A file may also have a group of users who mayexercise joint ownership if the real owner permits it. Seepermission bits.

P

  • package

    A namespace for global variables,subroutines, and the like, such that they can be keptseparate from like-named symbols in other namespaces. In asense, only the package is global, since the symbols in the package'ssymbol table are only accessible from code compiled outside thepackage by naming the package. But in another sense, all packagesymbols are also globals--they're just well-organized globals.

  • pad

    Short for scratchpad.

  • parameter

    See argument.

  • parent class

    See base class.

  • parse tree

    See syntax tree.

  • parsing

    The subtle but sometimes brutal art of attempting to turn yourpossibly malformed program into a valid syntax tree.

  • patch

    To fix by applying one, as it were. In the realm of hackerdom, alisting of the differences between two versions of a program as mightbe applied by the patch(1) program when you want to fix a bug orupgrade your old version.

  • PATH

    The list of directories the system searches to find aprogram you want to execute. The list is stored as one of yourenvironment variables, accessible in Perl as$ENV{PATH}.

  • pathname

    A fully qualified filename such as /usr/bin/perl. Sometimesconfused with PATH.

  • pattern

    A template used in pattern matching.

  • pattern matching

    Taking a pattern, usually a regular expression, and trying thepattern various ways on a string to see whether there's any way tomake it fit. Often used to pick interesting tidbits out of a file.

  • permission bits

    Bits that the owner of a file sets or unsets to allow or disallowaccess to other people. These flag bits are part of the mode wordreturned by the stat built-in when you ask about afile. On Unix systems, you can check the ls(1) manpage for moreinformation.

  • Pern

    What you get when you do Perl++ twice. Doing it only once willcurl your hair. You have to increment it eight times to shampoo yourhair. Lather, rinse, iterate.

  • pipe

    A direct connection that carries the output of one process tothe input of another without an intermediate temporary file. Once thepipe is set up, the two processes in question can read and write as ifthey were talking to a normal file, with some caveats.

  • pipeline

    A series of processes all in a row, linked bypipes, where each passes its output stream to the next.

  • platform

    The entire hardware and software context in which a program runs. A program written in a platform-dependent language might break if youchange any of: machine, operating system, libraries, compiler, orsystem configuration. The perl interpreter has to be compileddifferently for each platform because it is implemented in C, butprograms written in the Perl language are largelyplatform-independent.

  • pod

    The markup used to embed documentation into your Perl code. Seeperlpod.

  • pointer

    A variable in a language like C that contains the exact memorylocation of some other item. Perl handles pointers internally so youdon't have to worry about them. Instead, you just use symbolicpointers in the form of keys and variable names, or hard references, which aren't pointers (but act likepointers and do in fact contain pointers).

  • polymorphism

    The notion that you can tell an object to do something generic,and the object will interpret the command in different ways dependingon its type. [<Gk many shapes]

  • port

    The part of the address of a TCP or UDP socket that directs packets tothe correct process after finding the right machine, something likethe phone extension you give when you reach the company operator.Also, the result of converting code to run on a different platformthan originally intended, or the verb denoting this conversion.

  • portable

    Once upon a time, C code compilable under both BSD and SysV. Ingeneral, code that can be easily converted to run on anotherplatform, where "easily" can be defined however you like, andusually is. Anything may be considered portable if you try hardenough. See mobile home or London Bridge.

  • porter

    Someone who "carries" software from one platform to another.Porting programs written in platform-dependent languages such as C canbe difficult work, but porting programs like Perl is very much worththe agony.

  • POSIX

    The Portable Operating System Interface specification.

  • postfix

    An operator that follows its operand, as in $x++.

  • pp

    An internal shorthand for a "push-pop" code, that is, C codeimplementing Perl's stack machine.

  • pragma

    A standard module whose practical hints and suggestions are received(and possibly ignored) at compile time. Pragmas are named in alllowercase.

  • precedence

    The rules of conduct that, in the absence of other guidance, determinewhat should happen first. For example, in the absence of parentheses,you always do multiplication before addition.

  • prefix

    An operator that precedes its operand, as in ++$x.

  • preprocessing

    What some helper process did to transform the incoming data into aform more suitable for the current process. Often done with anincoming pipe. See also C preprocessor.

  • procedure

    A subroutine.

  • process

    An instance of a running program. Under multitasking systems likeUnix, two or more separate processes could be running the same programindependently at the same time--in fact, the forkfunction is designed to bring about this happy state of affairs.Under other operating systems, processes are sometimes called"threads", "tasks", or "jobs", often with slight nuances in meaning.

  • program generator

    A system that algorithmically writes code for you in a high-levellanguage. See also code generator.

  • progressive matching

    Pattern matching that picks up where it left off before.

  • property

    See either instance variable or character property.

  • protocol

    In networking, an agreed-upon way of sending messages back and forthso that neither correspondent will get too confused.

  • prototype

    An optional part of a subroutine declaration telling the Perlcompiler how many and what flavor of arguments may be passed asactual arguments, so that you can write subroutine calls thatparse much like built-in functions. (Or don't parse, as the case maybe.)

  • pseudofunction

    A construct that sometimes looks like a function but really isn't.Usually reserved for lvalue modifiers like my, forcontext modifiers like scalar, and for thepick-your-own-quotes constructs, q//, qq//, qx//, qw//,qr//, m//, s///, y///, and tr///.

  • pseudohash

    A reference to an array whose initial element happens to hold areference to a hash. You can treat a pseudohash reference as eitheran array reference or a hash reference.

  • pseudoliteral

    An operator that looks something like a literal, such as theoutput-grabbing operator, `command`.

  • public domain

    Something not owned by anybody. Perl is copyrighted and is thusnot in the public domain--it's just freely available andfreely redistributable.

  • pumpkin

    A notional "baton" handed around the Perl community indicating who isthe lead integrator in some arena of development.

  • pumpking

    A pumpkin holder, the person in charge of pumping the pump, or atleast priming it. Must be willing to play the part of the GreatPumpkin now and then.

  • PV

    A "pointer value", which is Perl Internals Talk for a char*.

Q

  • qualified

    Possessing a complete name. The symbol $Ent::moot is qualified;$moot is unqualified. A fully qualified filename is specified fromthe top-level directory.

  • quantifier

    A component of a regular expression specifying how many times theforegoing atom may occur.

R

  • readable

    With respect to files, one that has the proper permission bit set tolet you access the file. With respect to computer programs, onethat's written well enough that someone has a chance of figuring outwhat it's trying to do.

  • reaping

    The last rites performed by a parent process on behalf of adeceased child process so that it doesn't remain a zombie. Seethe wait and waitpid functioncalls.

  • record

    A set of related data values in a file or stream, oftenassociated with a unique key field. In Unix, often commensuratewith a line, or a blank-line-terminated set of lines (a"paragraph"). Each line of the /etc/passwd file is a record, keyedon login name, containing information about that user.

  • recursion

    The art of defining something (at least partly) in terms of itself,which is a naughty no-no in dictionaries but often works out okay incomputer programs if you're careful not to recurse forever, which islike an infinite loop with more spectacular failure modes.

  • reference

    Where you look to find a pointer to information somewhere else. (Seeindirection.) References come in two flavors, symbolic references and hard references.

  • referent

    Whatever a reference refers to, which may or may not have a name.Common types of referents include scalars, arrays, hashes, andsubroutines.

  • regex

    See regular expression.

  • regular expression

    A single entity with various interpretations, like an elephant. To acomputer scientist, it's a grammar for a little language in which somestrings are legal and others aren't. To normal people, it's a patternyou can use to find what you're looking for when it varies from caseto case. Perl's regular expressions are far from regular in thetheoretical sense, but in regular use they work quite well. Here's aregular expression: /Oh s.*t./. This will match strings like "Ohsay can you see by the dawn's early light" and "Oh sit!". Seeperlre.

  • regular expression modifier

    An option on a pattern or substitution, such as /i to render thepattern case insensitive. See also cloister.

  • regular file

    A file that's not a directory, a device, a named pipeor socket, or a symbolic link. Perl uses the -f file testoperator to identify regular files. Sometimes called a "plain" file.

  • relational operator

    An operator that says whether a particular ordering relationshipis true about a pair of operands. Perl has bothnumeric and string relational operators. See collating sequence.

  • reserved words

    A word with a specific, built-in meaning to a compiler, such asif or delete. In many languages (not Perl),it's illegal to use reserved words to name anything else. (Which iswhy they're reserved, after all.) In Perl, you just can't use them toname labels or filehandles. Also called"keywords".

  • restricted hash

    A hash with a closed set of allowed keys. See Hash::Util.

  • return value

    The value produced by a subroutine or expression whenevaluated. In Perl, a return value may be either a list or ascalar.

  • RFC

    Request For Comment, which despite the timid connotations is the nameof a series of important standards documents.

  • right shift

    A bit shift that divides a number by some power of 2.

  • root

    The superuser (UID == 0). Also, the top-level directory of thefilesystem.

  • RTFM

    What you are told when someone thinks you should Read The Fine Manual.

  • run phase

    Any time after Perl starts running your main program. See alsocompile phase. Run phase is mostly spent in run time but mayalso be spent in compile time when require,do FILE, or eval STRINGoperators are executed or when a substitution uses the /eemodifier.

  • run time

    The time when Perl is actually doing what your code says to do, asopposed to the earlier period of time when it was trying to figure outwhether what you said made any sense whatsoever, which is compile time.

  • run-time pattern

    A pattern that contains one or more variables to be interpolatedbefore parsing the pattern as a regular expression, and thattherefore cannot be analyzed at compile time, but must be re-analyzedeach time the pattern match operator is evaluated. Run-time patternsare useful but expensive.

  • RV

    A recreational vehicle, not to be confused with vehicular recreation.RV also means an internal Reference Value of the type a scalar canhold. See also IV and NV if you're not confused yet.

  • rvalue

    A value that you might find on the right side of anassignment. See also lvalue.

S

  • scalar

    A simple, singular value; a number, string, or reference.

  • scalar context

    The situation in which an expression is expected by itssurroundings (the code calling it) to return a single value ratherthan a list of values. See also context and list context.A scalar context sometimes imposes additional constraints on thereturn value--see string context and numeric context.Sometimes we talk about a Boolean context inside conditionals, butthis imposes no additional constraints, since any scalar value,whether numeric or string, is already true or false.

  • scalar literal

    A number or quoted string--an actual value in the text of yourprogram, as opposed to a variable.

  • scalar value

    A value that happens to be a scalar as opposed to a list.

  • scalar variable

    A variable prefixed with $ that holds a single value.

  • scope

    How far away you can see a variable from, looking through one. Perlhas two visibility mechanisms: it does dynamic scoping oflocal variables, meaning that the restof the block, and any subroutines that are calledby the rest of the block, can see the variables that are local to theblock. Perl does lexical scoping of my variables,meaning that the rest of the block can see the variable, but othersubroutines called by the block cannot see the variable.

  • scratchpad

    The area in which a particular invocation of a particular file orsubroutine keeps some of its temporary values, including any lexicallyscoped variables.

  • script

    A text file that is a program intended to be executeddirectly rather than compiled to another form of filebefore execution. Also, in the context of Unicode, a writingsystem for a particular language or group of languages, such as Greek,Bengali, or Klingon.

  • script kiddie

    A cracker who is not a hacker, but knows just enough to runcanned scripts. A cargo-cult programmer.

  • sed

    A venerable Stream EDitor from which Perl derives some of its ideas.

  • semaphore

    A fancy kind of interlock that prevents multiple threads orprocesses from using up the same resources simultaneously.

  • separator

    A character or string that keeps two surrounding strings frombeing confused with each other. The split functionworks on separators. Not to be confused with delimitersor terminators. The "or" in the previous sentenceseparated the two alternatives.

  • serialization

    Putting a fancy data structure into linear order so that it can bestored as a string in a disk file or database or sent through apipe. Also called marshalling.

  • server

    In networking, a process that either advertises a service orjust hangs around at a known location and waits for clientswho need service to get in touch with it.

  • service

    Something you do for someone else to make them happy, like giving themthe time of day (or of their life). On some machines, well-knownservices are listed by the getservent function.

  • setgid

    Same as setuid, only having to do with giving away groupprivileges.

  • setuid

    Said of a program that runs with the privileges of its ownerrather than (as is usually the case) the privileges of whoever isrunning it. Also describes the bit in the mode word (permission bits) that controls the feature. This bit must be explicitly set bythe owner to enable this feature, and the program must be carefullywritten not to give away more privileges than it ought to.

  • shared memory

    A piece of memory accessible by two differentprocesses who otherwise would not see each other's memory.

  • shebang

    Irish for the whole McGillicuddy. In Perl culture, a portmanteau of"sharp" and "bang", meaning the #! sequence that tells the systemwhere to find the interpreter.

  • shell

    A command-line interpreter. The program that interactivelygives you a prompt, accepts one or more lines of input, andexecutes the programs you mentioned, feeding each of them their properarguments and input data. Shells can also executescripts containing such commands. Under Unix, typical shells includethe Bourne shell (/bin/sh), the C shell (/bin/csh), and the Kornshell (/bin/ksh). Perl is not strictly a shell because it's notinteractive (although Perl programs can be interactive).

  • side effects

    Something extra that happens when you evaluate an expression.Nowadays it can refer to almost anything. For example, evaluating asimple assignment statement typically has the "side effect" ofassigning a value to a variable. (And you thought assigning the valuewas your primary intent in the first place!) Likewise, assigning avalue to the special variable $| ($AUTOFLUSH) has the sideeffect of forcing a flush after every write orprint on the currently selected filehandle.

  • signal

    A bolt out of the blue; that is, an event triggered by theoperating system, probably when you're least expecting it.

  • signal handler

    A subroutine that, instead of being content to be called in thenormal fashion, sits around waiting for a bolt out of the blue beforeit will deign to execute. Under Perl, bolts out of the blue arecalled signals, and you send them with the killbuilt-in. See %SIG in perlvar and Signals in perlipc.

  • single inheritance

    The features you got from your mother, if she told you that you don'thave a father. (See also inheritance and multiple inheritance.) In computer languages, the notion thatclasses reproduce asexually so that a given class can onlyhave one direct ancestor or base class. Perl supplies no suchrestriction, though you may certainly program Perl that way if youlike.

  • slice

    A selection of any number of elements from a list,array, or hash.

  • slurp

    To read an entire file into a string in one operation.

  • socket

    An endpoint for network communication among multipleprocesses that works much like a telephone or a postoffice box. The most important thing about a socket is its network address (like a phone number). Different kinds of sockets havedifferent kinds of addresses--some look like filenames, and somedon't.

  • soft reference

    See symbolic reference.

  • source filter

    A special kind of module that does preprocessing on yourscript just before it gets to the tokener.

  • stack

    A device you can put things on the top of, and later take them backoff in the opposite order in which you put them on. See LIFO.

  • standard

    Included in the official Perl distribution, as in a standard module, astandard tool, or a standard Perl manpage.

  • standard error

    The default output stream for nasty remarks that don't belong instandard output. Represented within a Perl program by thefilehandle STDERR. You can use this stream explicitly, but thedie and warn built-ins write to yourstandard error stream automatically.

  • standard I/O

    A standard C library for doing buffered input and output tothe operating system. (The "standard" of standard I/O is onlymarginally related to the "standard" of standard input and output.)In general, Perl relies on whatever implementation of standard I/O agiven operating system supplies, so the buffering characteristics of aPerl program on one machine may not exactly match those on anothermachine. Normally this only influences efficiency, not semantics. Ifyour standard I/O package is doing block buffering and you want it toflush the buffer more often, just set the $| variable to a truevalue.

  • standard input

    The default input stream for your program, which if possibleshouldn't care where its data is coming from. Represented within aPerl program by the filehandle STDIN.

  • standard output

    The default output stream for your program, which if possibleshouldn't care where its data is going. Represented within a Perlprogram by the filehandle STDOUT.

  • stat structure

    A special internal spot in which Perl keeps the information about thelast file on which you requested information.

  • statement

    A command to the computer about what to do next, like a step in arecipe: "Add marmalade to batter and mix until mixed." A statement isdistinguished from a declaration, which doesn't tell the computerto do anything, but just to learn something.

  • statement modifier

    A conditional or loop that you put after the statementinstead of before, if you know what we mean.

  • static

    Varying slowly compared to something else. (Unfortunately, everythingis relatively stable compared to something else, except for certainelementary particles, and we're not so sure about them.) Incomputers, where things are supposed to vary rapidly, "static" has aderogatory connotation, indicating a slightly dysfunctionalvariable, subroutine, or method. In Perl culture, theword is politely avoided.

  • static method

    No such thing. See class method.

  • static scoping

    No such thing. See lexical scoping.

  • static variable

    No such thing. Just use a lexical variable in a scope larger thanyour subroutine.

  • status

    The value returned to the parent process when one of its childprocesses dies. This value is placed in the special variable $?.Its upper eight bits are the exit status of the defunctprocess, and its lower eight bits identify the signal (if any) thatthe process died from. On Unix systems, this status value is the sameas the status word returned by wait(2). See system.

  • STDERR

    See standard error.

  • STDIN

    See standard input.

  • STDIO

    See standard I/O.

  • STDOUT

    See standard output.

  • stream

    A flow of data into or out of a process as a steady sequence of bytesor characters, without the appearance of being broken up into packets.This is a kind of interface--the underlying implementation maywell break your data up into separate packets for delivery, but thisis hidden from you.

  • string

    A sequence of characters such as "He said !@#*&%@#*?!". A string doesnot have to be entirely printable.

  • string context

    The situation in which an expression is expected by its surroundings(the code calling it) to return a string. See also contextand numeric context.

  • stringification

    The process of producing a string representation of an abstractobject.

  • struct

    C keyword introducing a structure definition or name.

  • structure

    See data structure.

  • subclass

    See derived class.

  • subpattern

    A component of a regular expression pattern.

  • subroutine

    A named or otherwise accessible piece of program that can be invokedfrom elsewhere in the program in order to accomplish some sub-goal ofthe program. A subroutine is often parameterized to accomplishdifferent but related things depending on its inputarguments. If the subroutine returns a meaningfulvalue, it is also called a function.

  • subscript

    A value that indicates the position of a particular arrayelement in an array.

  • substitution

    Changing parts of a string via the s/// operator. (We avoid use ofthis term to mean variable interpolation.)

  • substring

    A portion of a string, starting at a certain characterposition (offset) and proceeding for a certain number ofcharacters.

  • superclass

    See base class.

  • superuser

    The person whom the operating system will let do almost anything.Typically your system administrator or someone pretending to be yoursystem administrator. On Unix systems, the root user. On Windowssystems, usually the Administrator user.

  • SV

    Short for "scalar value". But within the Perl interpreter everyreferent is treated as a member of a class derived from SV, in anobject-oriented sort of way. Every value inside Perl is passedaround as a C language SV* pointer. The SV struct knows itsown "referent type", and the code is smart enough (we hope) not to tryto call a hash function on a subroutine.

  • switch

    An option you give on a command line to influence the way your programworks, usually introduced with a minus sign. The word is also used asa nickname for a switch statement.

  • switch cluster

    The combination of multiple command-line switches (e.g., -a -b -c)into one switch (e.g., -abc). Any switch with an additionalargument must be the last switch in a cluster.

  • switch statement

    A program technique that lets you evaluate an expression and then,based on the value of the expression, do a multiway branch to theappropriate piece of code for that value. Also called a "casestructure", named after the similar Pascal construct. SeeSee Basic BLOCKs in perlsyn.

  • symbol

    Generally, any token or metasymbol. Often used morespecifically to mean the sort of name you might find in a symbol table.

  • symbol table

    Where a compiler remembers symbols. A program like Perl mustsomehow remember all the names of all the variables,filehandles, and subroutines you'veused. It does this by placing the names in a symbol table, which isimplemented in Perl using a hash table. There is a separatesymbol table for each package to give each package its ownnamespace.

  • symbolic debugger

    A program that lets you step through the execution of yourprogram, stopping or printing things out here and there to see whetheranything has gone wrong, and if so, what. The "symbolic" part justmeans that you can talk to the debugger using the same symbols withwhich your program is written.

  • symbolic link

    An alternate filename that points to the real filename, which inturn points to the real file. Whenever the operating systemis trying to parse a pathname containing a symbolic link, itmerely substitutes the new name and continues parsing.

  • symbolic reference

    A variable whose value is the name of another variable or subroutine.By dereferencing the first variable, you can get atthe second one. Symbolic references are illegal under use strict 'refs'.

  • synchronous

    Programming in which the orderly sequence of events can be determined;that is, when things happen one after the other, not at the same time.

  • syntactic sugar

    An alternative way of writing something more easily; a shortcut.

  • syntax

    From Greek, "with-arrangement". How things (particularly symbols) areput together with each other.

  • syntax tree

    An internal representation of your program wherein lower-levelconstructs dangle off the higher-level constructsenclosing them.

  • syscall

    A function call directly to the operating system. Many of theimportant subroutines and functions you use aren't direct systemcalls, but are built up in one or more layers above the system calllevel. In general, Perl programmers don't need to worry about thedistinction. However, if you do happen to know which Perl functionsare really syscalls, you can predict which of these will set the $!($ERRNO) variable on failure. Unfortunately, beginning programmersoften confusingly employ the term "system call" to mean what happenswhen you call the Perl system function, whichactually involves many syscalls. To avoid any confusion, we nearlyalways use say "syscall" for something you could call indirectly viaPerl's syscall function, and never for somethingyou would call with Perl's system function.

T

  • tainted

    Said of data derived from the grubby hands of a user and thus unsafefor a secure program to rely on. Perl does taint checks if you run asetuid (or setgid) program, or if you use the -T switch.

  • TCP

    Short for Transmission Control Protocol. A protocol wrapped aroundthe Internet Protocol to make an unreliable packet transmissionmechanism appear to the application program to be a reliablestream of bytes. (Usually.)

  • term

    Short for a "terminal", that is, a leaf node of a syntax tree. Athing that functions grammatically as an operand for the operatorsin an expression.

  • terminator

    A character or string that marks the end of another string.The $/ variable contains the string that terminates areadline operation, which chompdeletes from the end. Not to be confused withdelimiters or separators. The period atthe end of this sentence is a terminator.

  • ternary

    An operator taking three operands. Sometimespronounced trinary.

  • text

    A string or file containing primarily printable characters.

  • thread

    Like a forked process, but without fork's inherent memoryprotection. A thread is lighter weight than a full process, in that aprocess could have multiple threads running around in it, all fightingover the same process's memory space unless steps are taken to protectthreads from each other. See threads.

  • tie

    The bond between a magical variable and its implementation class. Seetie and perltie.

  • TMTOWTDI

    There's More Than One Way To Do It, the Perl Motto. The notion thatthere can be more than one valid path to solving a programming problemin context. (This doesn't mean that more ways are always better orthat all possible paths are equally desirable--just that there neednot be One True Way.) Pronounced TimToady.

  • token

    A morpheme in a programming language, the smallest unit of text withsemantic significance.

  • tokener

    A module that breaks a program text into a sequence oftokens for later analysis by a parser.

  • tokenizing

    Splitting up a program text into tokens. Also known as"lexing", in which case you get "lexemes" instead of tokens.

  • toolbox approach

    The notion that, with a complete set of simple tools that work welltogether, you can build almost anything you want. Which is fine ifyou're assembling a tricycle, but if you're building a defranishizingcomboflux regurgalator, you really want your own machine shop in whichto build special tools. Perl is sort of a machine shop.

  • transliterate

    To turn one string representation into another by mapping eachcharacter of the source string to its corresponding character in theresult string. Seetr/SEARCHLIST/REPLACEMENTLIST/cdsr in perlop.

  • trigger

    An event that causes a handler to be run.

  • trinary

    Not a stellar system with three stars, but an operator takingthree operands. Sometimes pronounced ternary.

  • troff

    A venerable typesetting language from which Perl derives the name ofits $% variable and which is secretly used in the production ofCamel books.

  • true

    Any scalar value that doesn't evaluate to 0 or "".

  • truncating

    Emptying a file of existing contents, either automatically whenopening a file for writing or explicitly via thetruncate function.

  • type

    See data type and class.

  • type casting

    Converting data from one type to another. C permits this. Perl doesnot need it. Nor want it.

  • typed lexical

    A lexical variable that is declared with a class type: myPony $bill.

  • typedef

    A type definition in the C language.

  • typeglob

    Use of a single identifier, prefixed with *. For example, *namestands for any or all of $name, @name, %name, &name, orjust name. How you use it determines whether it is interpreted asall or only one of them. See Typeglobs and Filehandles in perldata.

  • typemap

    A description of how C types may be transformed to and from Perl typeswithin an extension module written in XS.

U

  • UDP

    User Datagram Protocol, the typical way to send datagramsover the Internet.

  • UID

    A user ID. Often used in the context of file or processownership.

  • umask

    A mask of those permission bits that should be forced off whencreating files or directories, in order to establish a policy of whomyou'll ordinarily deny access to. See the umaskfunction.

  • unary operator

    An operator with only one operand, like ! orchdir. Unary operators are usually prefixoperators; that is, they precede their operand. The ++ and --operators can be either prefix or postfix. (Their position doeschange their meanings.)

  • Unicode

    A character set comprising all the major character sets of the world,more or less. See perlunicode and http://www.unicode.org.

  • Unix

    A very large and constantly evolving language with several alternativeand largely incompatible syntaxes, in which anyone can define anythingany way they choose, and usually do. Speakers of this language thinkit's easy to learn because it's so easily twisted to one's own ends,but dialectical differences make tribal intercommunication nearlyimpossible, and travelers are often reduced to a pidgin-like subset ofthe language. To be universally understood, a Unix shell programmermust spend years of study in the art. Many have abandoned thisdiscipline and now communicate via an Esperanto-like language calledPerl.

    In ancient times, Unix was also used to refer to some code that acouple of people at Bell Labs wrote to make use of a PDP-7 computerthat wasn't doing much of anything else at the time.

V

  • value

    An actual piece of data, in contrast to all the variables, references,keys, indexes, operators, and whatnot that you need to access thevalue.

  • variable

    A named storage location that can hold any of various kinds ofvalue, as your program sees fit.

  • variable interpolation

    The interpolation of a scalar or array variable into a string.

  • variadic

    Said of a function that happily receives an indeterminate numberof actual arguments.

  • vector

    Mathematical jargon for a list of scalar values.

  • virtual

    Providing the appearance of something without the reality, as in:virtual memory is not real memory. (See also memory.) Theopposite of "virtual" is "transparent", which means providing thereality of something without the appearance, as in: Perl handles thevariable-length UTF-8 character encoding transparently.

  • void context

    A form of scalar context in which an expression is notexpected to return any value at all and is evaluated for itsside effects alone.

  • v-string

    A "version" or "vector" string specified with a v followed by aseries of decimal integers in dot notation, for instance,v1.20.300.4000. Each number turns into a character with thespecified ordinal value. (The v is optional when there are atleast three integers.)

W

  • warning

    A message printed to the STDERR stream to the effect that somethingmight be wrong but isn't worth blowing up over. See warnand the warnings pragma.

  • watch expression

    An expression which, when its value changes, causes a breakpoint inthe Perl debugger.

  • whitespace

    A character that moves your cursor but doesn't otherwise putanything on your screen. Typically refers to any of: space, tab, linefeed, carriage return, or form feed.

  • word

    In normal "computerese", the piece of data of the size mostefficiently handled by your computer, typically 32 bits or so, give ortake a few powers of 2. In Perl culture, it more often refers to analphanumeric identifier (including underscores), or to a string ofnonwhitespace characters bounded by whitespace or stringboundaries.

  • working directory

    Your current directory, from which relative pathnames areinterpreted by the operating system. The operating system knowsyour current directory because you told it with achdir or because you started out in the place whereyour parent process was when you were born.

  • wrapper

    A program or subroutine that runs some other program or subroutine foryou, modifying some of its input or output to better suit yourpurposes.

  • WYSIWYG

    What You See Is What You Get. Usually used when something thatappears on the screen matches how it will eventually look, like Perl'sformat declarations. Also used to mean theopposite of magic because everything works exactly as it appears, asin the three-argument form of open.

X

  • XS

    A language to extend Perl with C and C++. XS is an interface descriptionfile format used to create an extension interface betweenPerl and C code (or a C library) which one wishes to use with Perl.See perlxs for the exact explanation or read the perlxstuttutorial.

  • XSUB

    An external subroutine defined in XS.

Y

  • yacc

    Yet Another Compiler Compiler. A parser generator without which Perlprobably would not have existed. See the file perly.y in the Perlsource distribution.

Z

  • zero width

    A subpattern assertion matching the null string betweencharacters.

  • zombie

    A process that has died (exited) but whose parent has not yet receivedproper notification of its demise by virtue of having calledwait or waitpid. If youfork, you must clean up after your child processeswhen they exit, or else the process table will fill up and your systemadministrator will Not Be Happy with you.

AUTHOR AND COPYRIGHT

Based on the Glossary of Programming Perl, Third Edition,by Larry Wall, Tom Christiansen & Jon Orwant.Copyright (c) 2000, 1996, 1991 O'Reilly Media, Inc.This document may be distributed under the same terms as Perl itself.

 
Source : perldoc.perl.org - Official documentation for the Perl programming language
Site maintained by Jon Allen (JJ)     See the project page for more details
Documentation maintained by the Perl 5 Porters
(Sebelumnya) Source FiltersA listing of experimental feat ... (Berikutnya)