Install Perl 5.8.8
[msysgit.git] / mingw / html / pod / perlglossary.html
blob63c8b353c6786c5a82988d7bc93500cc3455bf56
1 <?xml version="1.0" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <title>perlglossary - Perl Glossary</title>
6 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
7 <link rev="made" href="mailto:" />
8 </head>
10 <body style="background-color: white">
11 <table border="0" width="100%" cellspacing="0" cellpadding="3">
12 <tr><td class="block" style="background-color: #cccccc" valign="middle">
13 <big><strong><span class="block">&nbsp;perlglossary - Perl Glossary</span></strong></big>
14 </td></tr>
15 </table>
17 <p><a name="__index__"></a></p>
18 <!-- INDEX BEGIN -->
20 <ul>
22 <li><a href="#name">NAME</a></li>
23 <li><a href="#description">DESCRIPTION</a></li>
24 <ul>
26 <li><a href="#a">A</a></li>
27 <li><a href="#b">B</a></li>
28 <li><a href="#c">C</a></li>
29 <li><a href="#d">D</a></li>
30 <li><a href="#e">E</a></li>
31 <li><a href="#f">F</a></li>
32 <li><a href="#g">G</a></li>
33 <li><a href="#h">H</a></li>
34 <li><a href="#i">I</a></li>
35 <li><a href="#j">J</a></li>
36 <li><a href="#k">K</a></li>
37 <li><a href="#l">L</a></li>
38 <li><a href="#m">M</a></li>
39 <li><a href="#n">N</a></li>
40 <li><a href="#o">O</a></li>
41 <li><a href="#p">P</a></li>
42 <li><a href="#q">Q</a></li>
43 <li><a href="#r">R</a></li>
44 <li><a href="#s">S</a></li>
45 <li><a href="#t">T</a></li>
46 <li><a href="#u">U</a></li>
47 <li><a href="#v">V</a></li>
48 <li><a href="#w">W</a></li>
49 <li><a href="#x">X</a></li>
50 <li><a href="#y">Y</a></li>
51 <li><a href="#z">Z</a></li>
52 </ul>
54 <li><a href="#author_and_copyright">AUTHOR AND COPYRIGHT</a></li>
55 </ul>
56 <!-- INDEX END -->
58 <hr />
59 <p>
60 </p>
61 <h1><a name="name">NAME</a></h1>
62 <p>perlglossary - Perl Glossary</p>
63 <p>
64 </p>
65 <hr />
66 <h1><a name="description">DESCRIPTION</a></h1>
67 <p>A glossary of terms (technical and otherwise) used in the Perl documentation.
68 Other useful sources include the Free On-Line Dictionary of Computing
69 <a href="http://foldoc.doc.ic.ac.uk/foldoc/index.html">http://foldoc.doc.ic.ac.uk/foldoc/index.html</a>, the Jargon File
70 <a href="http://catb.org/~esr/jargon/">http://catb.org/~esr/jargon/</a>, and Wikipedia <a href="http://www.wikipedia.org/">http://www.wikipedia.org/</a>.</p>
71 <p>
72 </p>
73 <h2><a name="a">A</a></h2>
74 <dl>
75 <dt><strong><a name="item_accessor_methods">accessor methods</a></strong>
77 <dd>
78 <p>A <a href="#item_method">method</a> used to indirectly inspect or update an <a href="#item_object">object</a>'s
79 state (its <a href="#item_instance_variable">instance variables</a>).</p>
80 </dd>
81 </li>
82 <dt><strong><a name="item_actual_arguments">actual arguments</a></strong>
84 <dd>
85 <p>The <a href="#item_scalar_value">scalar values</a> that you supply to a <a href="#item_function">function</a>
86 or <a href="#item_subroutine">subroutine</a> when you call it. For instance, when you call
87 <code>power(&quot;puff&quot;)</code>, the string <code>&quot;puff&quot;</code> is the actual argument. See
88 also <a href="#item_argument">argument</a> and <a href="#item_formal_arguments">formal arguments</a>.</p>
89 </dd>
90 </li>
91 <dt><strong><a name="item_address_operator">address operator</a></strong>
93 <dd>
94 <p>Some languages work directly with the memory addresses of values, but
95 this can be like playing with fire. Perl provides a set of asbestos
96 gloves for handling all memory management. The closest to an address
97 operator in Perl is the backslash operator, but it gives you a <a href="#item_hard_reference">hard reference</a>, which is much safer than a memory address.</p>
98 </dd>
99 </li>
100 <dt><strong><a name="item_algorithm">algorithm</a></strong>
102 <dd>
103 <p>A well-defined sequence of steps, clearly enough explained that even a
104 computer could do them.</p>
105 </dd>
106 </li>
107 <dt><strong><a name="item_alias">alias</a></strong>
109 <dd>
110 <p>A nickname for something, which behaves in all ways as though you'd
111 used the original name instead of the nickname. Temporary aliases are
112 implicitly created in the loop variable for <code>foreach</code> loops, in the
113 <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$_</code></a> variable for <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_map">map</a> or <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_grep">grep</a>
114 operators, in <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__a"><code>$a</code></a> and <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__b"><code>$b</code></a> during <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_sort">sort</a>'s
115 comparison function, and in each element of <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>@_</code></a> for the <a href="#item_actual_arguments">actual arguments</a> of a subroutine call. Permanent aliases are explicitly
116 created in <a href="#item_package">packages</a> by <a href="#item_import">importing</a> symbols or by
117 assignment to <a href="#item_typeglob">typeglobs</a>. Lexically scoped aliases for
118 package variables are explicitly created by the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_our">our</a>
119 declaration.</p>
120 </dd>
121 </li>
122 <dt><strong><a name="item_alternatives">alternatives</a></strong>
124 <dd>
125 <p>A list of possible choices from which you may select only one, as in
126 ``Would you like door A, B, or C?'' Alternatives in regular expressions
127 are separated with a single vertical bar: <code>|</code>. Alternatives in
128 normal Perl expressions are separated with a double vertical bar:
129 <code>||</code>. Logical alternatives in <a href="#item_boolean">Boolean</a> expressions are separated
130 with either <code>||</code> or <code>or</code>.</p>
131 </dd>
132 </li>
133 <dt><strong><a name="item_anonymous">anonymous</a></strong>
135 <dd>
136 <p>Used to describe a <a href="#item_referent">referent</a> that is not directly accessible
137 through a named <a href="#item_variable">variable</a>. Such a referent must be indirectly
138 accessible through at least one <a href="#item_hard_reference">hard reference</a>. When the last
139 hard reference goes away, the anonymous referent is destroyed without
140 pity.</p>
141 </dd>
142 </li>
143 <dt><strong><a name="item_architecture">architecture</a></strong>
145 <dd>
146 <p>The kind of computer you're working on, where one ``kind'' of computer
147 means all those computers sharing a compatible machine language.
148 Since Perl programs are (typically) simple text files, not executable
149 images, a Perl program is much less sensitive to the architecture it's
150 running on than programs in other languages, such as C, that are
151 compiled into machine code. See also <a href="#item_platform">platform</a> and <a href="#item_operating_system">operating system</a>.</p>
152 </dd>
153 </li>
154 <dt><strong><a name="item_argument">argument</a></strong>
156 <dd>
157 <p>A piece of data supplied to a <a href="#item_executable_file">program</a>,
158 <a href="#item_subroutine">subroutine</a>, <a href="#item_function">function</a>, or <a href="#item_method">method</a> to tell it what it's
159 supposed to do. Also called a ``parameter''.</p>
160 </dd>
161 </li>
162 <dt><strong><a name="item_argv">ARGV</a></strong>
164 <dd>
165 <p>The name of the array containing the <a href="#item_argument">argument</a> <a href="#item_vector">vector</a> from the
166 command line. If you use the empty <code>&lt;&gt;</code> operator, <a href="#item_argv">ARGV</a> is
167 the name of both the <a href="#item_filehandle">filehandle</a> used to traverse the arguments and
168 the <a href="#item_scalar">scalar</a> containing the name of the current input file.</p>
169 </dd>
170 </li>
171 <dt><strong><a name="item_arithmetical_operator">arithmetical operator</a></strong>
173 <dd>
174 <p>A <a href="#item_symbol">symbol</a> such as <code>+</code> or <code>/</code> that tells Perl to do the arithmetic
175 you were supposed to learn in grade school.</p>
176 </dd>
177 </li>
178 <dt><strong><a name="item_array">array</a></strong>
180 <dd>
181 <p>An ordered sequence of <a href="#item_value">values</a>, stored such that you can
182 easily access any of the values using an integer <a href="#item_subscript">subscript</a>
183 that specifies the value's <a href="#item_offset">offset</a> in the sequence.</p>
184 </dd>
185 </li>
186 <dt><strong><a name="item_array_context">array context</a></strong>
188 <dd>
189 <p>An archaic expression for what is more correctly referred to as
190 <a href="#item_list_context">list context</a>.</p>
191 </dd>
192 </li>
193 <dt><strong><a name="item_ascii">ASCII</a></strong>
195 <dd>
196 <p>The American Standard Code for Information Interchange (a 7-bit
197 character set adequate only for poorly representing English text).
198 Often used loosely to describe the lowest 128 values of the various
199 ISO-8859-X character sets, a bunch of mutually incompatible 8-bit
200 codes best described as half ASCII. See also <a href="#item_unicode">Unicode</a>.</p>
201 </dd>
202 </li>
203 <dt><strong><a name="item_assertion">assertion</a></strong>
205 <dd>
206 <p>A component of a <a href="#item_regular_expression">regular expression</a> that must be true for the
207 pattern to match but does not necessarily match any characters itself.
208 Often used specifically to mean a <a href="#item_zero_width">zero width</a> assertion.</p>
209 </dd>
210 </li>
211 <dt><strong><a name="item_assignment">assignment</a></strong>
213 <dd>
214 <p>An <a href="#item_operator">operator</a> whose assigned mission in life is to change the value
215 of a <a href="#item_variable">variable</a>.</p>
216 </dd>
217 </li>
218 <dt><strong><a name="item_assignment_operator">assignment operator</a></strong>
220 <dd>
221 <p>Either a regular <a href="#item_assignment">assignment</a>, or a compound <a href="#item_operator">operator</a> composed
222 of an ordinary assignment and some other operator, that changes the
223 value of a variable in place, that is, relative to its old value. For
224 example, <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__a"><code>$a += 2</code></a> adds <code>2</code> to <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__a"><code>$a</code></a>.</p>
225 </dd>
226 </li>
227 <dt><strong><a name="item_associative_array">associative array</a></strong>
229 <dd>
230 <p>See <a href="#item_hash">hash</a>. Please.</p>
231 </dd>
232 </li>
233 <dt><strong><a name="item_associativity">associativity</a></strong>
235 <dd>
236 <p>Determines whether you do the left <a href="#item_operator">operator</a> first or the right
237 <a href="#item_operator">operator</a> first when you have ``A <a href="#item_operator">operator</a> B <a href="#item_operator">operator</a> C'' and
238 the two operators are of the same precedence. Operators like <code>+</code> are
239 left associative, while operators like <code>**</code> are right associative.
240 See <a href="file://C|\msysgit\mingw\html/pod/perlop.html">the perlop manpage</a> for a list of operators and their associativity.</p>
241 </dd>
242 </li>
243 <dt><strong><a name="item_asynchronous">asynchronous</a></strong>
245 <dd>
246 <p>Said of events or activities whose relative temporal ordering is
247 indeterminate because too many things are going on at once. Hence, an
248 asynchronous event is one you didn't know when to expect.</p>
249 </dd>
250 </li>
251 <dt><strong><a name="item_atom">atom</a></strong>
253 <dd>
254 <p>A <a href="#item_regular_expression">regular expression</a> component potentially matching a
255 <a href="#item_substring">substring</a> containing one or more characters and treated as an
256 indivisible syntactic unit by any following <a href="#item_quantifier">quantifier</a>. (Contrast
257 with an <a href="#item_assertion">assertion</a> that matches something of <a href="#item_zero_width">zero width</a> and may
258 not be quantified.)</p>
259 </dd>
260 </li>
261 <dt><strong><a name="item_atomic_operation">atomic operation</a></strong>
263 <dd>
264 <p>When Democritus gave the word ``atom'' to the indivisible bits of
265 matter, he meant literally something that could not be cut: <em>a-</em>
266 (not) + <em>tomos</em> (cuttable). An atomic operation is an action that
267 can't be interrupted, not one forbidden in a nuclear-free zone.</p>
268 </dd>
269 </li>
270 <dt><strong><a name="item_attribute">attribute</a></strong>
272 <dd>
273 <p>A new feature that allows the declaration of <a href="#item_variable">variables</a>
274 and <a href="#item_subroutine">subroutines</a> with modifiers as in <code>sub foo : locked
275 method</code>. Also, another name for an <a href="#item_instance_variable">instance variable</a> of an
276 <a href="#item_object">object</a>.</p>
277 </dd>
278 </li>
279 <dt><strong><a name="item_autogeneration">autogeneration</a></strong>
281 <dd>
282 <p>A feature of <a href="#item_operator_overloading">operator overloading</a> of <a href="#item_object">objects</a>, whereby
283 the behavior of certain <a href="#item_operator">operators</a> can be reasonably
284 deduced using more fundamental operators. This assumes that the
285 overloaded operators will often have the same relationships as the
286 regular operators. See <a href="file://C|\msysgit\mingw\html/pod/perlop.html">the perlop manpage</a>.</p>
287 </dd>
288 </li>
289 <dt><strong><a name="item_autoincrement">autoincrement</a></strong>
291 <dd>
292 <p>To add one to something automatically, hence the name of the <code>++</code>
293 operator. To instead subtract one from something automatically is
294 known as an ``autodecrement''.</p>
295 </dd>
296 </li>
297 <dt><strong><a name="item_autoload">autoload</a></strong>
299 <dd>
300 <p>To load on demand. (Also called ``lazy'' loading.) Specifically, to
301 call an <a href="file://C|\msysgit\mingw\html/pod/perlsub.html#autoloading">AUTOLOAD</a> subroutine on behalf of an
302 undefined subroutine.</p>
303 </dd>
304 </li>
305 <dt><strong><a name="item_autosplit">autosplit</a></strong>
307 <dd>
308 <p>To split a string automatically, as the <strong>-a</strong> <a href="#item_switch">switch</a> does when
309 running under <strong>-p</strong> or <strong>-n</strong> in order to emulate <a href="#item_awk">awk</a>. (See also
310 the <a href="file://C|\msysgit\mingw\html/lib/AutoSplit.html">the AutoSplit manpage</a> module, which has nothing to do with the <strong>-a</strong>
311 switch, but a lot to do with autoloading.)</p>
312 </dd>
313 </li>
314 <dt><strong><a name="item_autovivification">autovivification</a></strong>
316 <dd>
317 <p>A Greco-Roman word meaning ``to bring oneself to life''. In Perl,
318 storage locations (<a href="#item_lvalue">lvalues</a>) spontaneously generate
319 themselves as needed, including the creation of any <a href="#item_hard_reference">hard reference</a>
320 values to point to the next level of storage. The assignment
321 <code>$a[5][5][5][5][5] = &quot;quintet&quot;</code> potentially creates five scalar
322 storage locations, plus four references (in the first four scalar
323 locations) pointing to four new anonymous arrays (to hold the last
324 four scalar locations). But the point of autovivification is that you
325 don't have to worry about it.</p>
326 </dd>
327 </li>
328 <dt><strong><a name="item_av">AV</a></strong>
330 <dd>
331 <p>Short for ``array value'', which refers to one of Perl's internal data
332 types that holds an <a href="#item_array">array</a>. The <a href="#item_av">AV</a> type is a subclass of
333 <a href="#item_sv">SV</a>.</p>
334 </dd>
335 </li>
336 <dt><strong><a name="item_awk">awk</a></strong>
338 <dd>
339 <p>Descriptive editing term--short for ``awkward''. Also coincidentally
340 refers to a venerable text-processing language from which Perl derived
341 some of its high-level ideas.</p>
342 </dd>
343 </li>
344 </dl>
346 </p>
347 <h2><a name="b">B</a></h2>
348 <dl>
349 <dt><strong><a name="item_backreference">backreference</a></strong>
351 <dd>
352 <p>A substring <a href="#item_capturing">captured</a> by a subpattern within
353 unadorned parentheses in a <a href="#item_regex">regex</a>. Backslashed decimal numbers
354 (<code>\1</code>, <code>\2</code>, etc.) later in the same pattern refer back to the
355 corresponding subpattern in the current match. Outside the pattern,
356 the numbered variables (<code>$1</code>, <code>$2</code>, etc.) continue to refer to these
357 same values, as long as the pattern was the last successful match of
358 the current dynamic scope.</p>
359 </dd>
360 </li>
361 <dt><strong><a name="item_backtracking">backtracking</a></strong>
363 <dd>
364 <p>The practice of saying, ``If I had to do it all over, I'd do it
365 differently,'' and then actually going back and doing it all over
366 differently. Mathematically speaking, it's returning from an
367 unsuccessful recursion on a tree of possibilities. Perl backtracks
368 when it attempts to match patterns with a <a href="#item_regular_expression">regular expression</a>, and
369 its earlier attempts don't pan out. See <a href="file://C|\msysgit\mingw\html/pod/perlre.html#backtracking">Backtracking in the perlre manpage</a>.</p>
370 </dd>
371 </li>
372 <dt><strong><a name="item_backward_compatibility">backward compatibility</a></strong>
374 <dd>
375 <p>Means you can still run your old program because we didn't break any
376 of the features or bugs it was relying on.</p>
377 </dd>
378 </li>
379 <dt><strong><a name="item_bareword">bareword</a></strong>
381 <dd>
382 <p>A word sufficiently ambiguous to be deemed illegal under <a href="file://C|\msysgit\mingw\html/lib/strict.html#strict_subs">use strict 'subs'</a>. In the absence of that stricture, a
383 bareword is treated as if quotes were around it.</p>
384 </dd>
385 </li>
386 <dt><strong><a name="item_base_class">base class</a></strong>
388 <dd>
389 <p>A generic <a href="#item_object">object</a> type; that is, a <a href="#item_class">class</a> from which other, more
390 specific classes are derived genetically by <a href="#item_inheritance">inheritance</a>. Also
391 called a ``superclass'' by people who respect their ancestors.</p>
392 </dd>
393 </li>
394 <dt><strong><a name="item_big_2dendian">big-endian</a></strong>
396 <dd>
397 <p>From Swift: someone who eats eggs big end first. Also used of
398 computers that store the most significant <a href="#item_byte">byte</a> of a word at a
399 lower byte address than the least significant byte. Often considered
400 superior to little-endian machines. See also <a href="#item_little_2dendian">little-endian</a>.</p>
401 </dd>
402 </li>
403 <dt><strong><a name="item_binary">binary</a></strong>
405 <dd>
406 <p>Having to do with numbers represented in base 2. That means there's
407 basically two numbers, 0 and 1. Also used to describe a ``non-text
408 file'', presumably because such a file makes full use of all the binary
409 bits in its bytes. With the advent of <a href="#item_unicode">Unicode</a>, this distinction,
410 already suspect, loses even more of its meaning.</p>
411 </dd>
412 </li>
413 <dt><strong><a name="item_binary_operator">binary operator</a></strong>
415 <dd>
416 <p>An <a href="#item_operator">operator</a> that takes two <a href="#item_operand">operands</a>.</p>
417 </dd>
418 </li>
419 <dt><strong><a name="item_bind">bind</a></strong>
421 <dd>
422 <p>To assign a specific <a href="#item_network_address">network address</a> to a <a href="#item_socket">socket</a>.</p>
423 </dd>
424 </li>
425 <dt><strong><a name="item_bit">bit</a></strong>
427 <dd>
428 <p>An integer in the range from 0 to 1, inclusive. The smallest possible
429 unit of information storage. An eighth of a <a href="#item_byte">byte</a> or of a dollar.
430 (The term ``Pieces of Eight'' comes from being able to split the old
431 Spanish dollar into 8 bits, each of which still counted for money.
432 That's why a 25-cent piece today is still ``two bits''.)</p>
433 </dd>
434 </li>
435 <dt><strong><a name="item_bit_shift">bit shift</a></strong>
437 <dd>
438 <p>The movement of bits left or right in a computer word, which has the
439 effect of multiplying or dividing by a power of 2.</p>
440 </dd>
441 </li>
442 <dt><strong><a name="item_bit_string">bit string</a></strong>
444 <dd>
445 <p>A sequence of <a href="#item_bit">bits</a> that is actually being thought of as a
446 sequence of bits, for once.</p>
447 </dd>
448 </li>
449 <dt><strong><a name="item_bless">bless</a></strong>
451 <dd>
452 <p>In corporate life, to grant official approval to a thing, as in, ``The
453 VP of Engineering has blessed our WebCruncher project.'' Similarly in
454 Perl, to grant official approval to a <a href="#item_referent">referent</a> so that it can
455 function as an <a href="#item_object">object</a>, such as a WebCruncher object. See
456 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_bless">bless in the perlfunc manpage</a>.</p>
457 </dd>
458 </li>
459 <dt><strong><a name="item_block">block</a></strong>
461 <dd>
462 <p>What a <a href="#item_process">process</a> does when it has to wait for something: ``My process
463 blocked waiting for the disk.'' As an unrelated noun, it refers to a
464 large chunk of data, of a size that the <a href="#item_operating_system">operating system</a> likes to
465 deal with (normally a power of two such as 512 or 8192). Typically
466 refers to a chunk of data that's coming from or going to a disk file.</p>
467 </dd>
468 </li>
469 <dt><strong><a name="item_block">BLOCK</a></strong>
471 <dd>
472 <p>A syntactic construct consisting of a sequence of Perl
473 <a href="#item_statement">statements</a> that is delimited by braces. The <code>if</code> and
474 <code>while</code> statements are defined in terms of <a href="#item_block">BLOCKs</a>, for instance.
475 Sometimes we also say ``block'' to mean a lexical scope; that is, a
476 sequence of statements that act like a <a href="#item_block">BLOCK</a>, such as within an
477 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_eval">eval</a> or a file, even though the statements aren't
478 delimited by braces.</p>
479 </dd>
480 </li>
481 <dt><strong><a name="item_block_buffering">block buffering</a></strong>
483 <dd>
484 <p>A method of making input and output efficient by passing one <a href="#item_block">block</a>
485 at a time. By default, Perl does block buffering to disk files. See
486 <a href="#item_buffer">buffer</a> and <a href="#item_command_buffering">command buffering</a>.</p>
487 </dd>
488 </li>
489 <dt><strong><a name="item_boolean">Boolean</a></strong>
491 <dd>
492 <p>A value that is either <a href="#item_true">true</a> or <a href="#item_false">false</a>.</p>
493 </dd>
494 </li>
495 <dt><strong><a name="item_boolean_context">Boolean context</a></strong>
497 <dd>
498 <p>A special kind of <a href="#item_scalar_context">scalar context</a> used in conditionals to decide
499 whether the <a href="#item_scalar_value">scalar value</a> returned by an expression is <a href="#item_true">true</a> or
500 <a href="#item_false">false</a>. Does not evaluate as either a string or a number. See
501 <a href="#item_context">context</a>.</p>
502 </dd>
503 </li>
504 <dt><strong><a name="item_breakpoint">breakpoint</a></strong>
506 <dd>
507 <p>A spot in your program where you've told the debugger to stop
508 <a href="#item_execute">execution</a> so you can poke around and see whether anything
509 is wrong yet.</p>
510 </dd>
511 </li>
512 <dt><strong><a name="item_broadcast">broadcast</a></strong>
514 <dd>
515 <p>To send a <a href="#item_datagram">datagram</a> to multiple destinations simultaneously.</p>
516 </dd>
517 </li>
518 <dt><strong><a name="item_bsd">BSD</a></strong>
520 <dd>
521 <p>A psychoactive drug, popular in the 80s, probably developed at
522 U. C. Berkeley or thereabouts. Similar in many ways to the
523 prescription-only medication called ``System V'', but infinitely more
524 useful. (Or, at least, more fun.) The full chemical name is
525 ``Berkeley Standard Distribution''.</p>
526 </dd>
527 </li>
528 <dt><strong><a name="item_bucket">bucket</a></strong>
530 <dd>
531 <p>A location in a <a href="#item_hash_table">hash table</a> containing (potentially) multiple
532 entries whose keys ``hash'' to the same hash value according to its hash
533 function. (As internal policy, you don't have to worry about it,
534 unless you're into internals, or policy.)</p>
535 </dd>
536 </li>
537 <dt><strong><a name="item_buffer">buffer</a></strong>
539 <dd>
540 <p>A temporary holding location for data. <a href="#item_block_buffering">Block buffering</a> means that the data is passed on to its destination
541 whenever the buffer is full. <a href="#item_line_buffering">Line buffering</a> means
542 that it's passed on whenever a complete line is received. <a href="#item_command_buffering">Command buffering</a> means that it's passed every time you do
543 a <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_print">print</a> command (or equivalent). If your output is
544 unbuffered, the system processes it one byte at a time without the use
545 of a holding area. This can be rather inefficient.</p>
546 </dd>
547 </li>
548 <dt><strong><a name="item_built_2din">built-in</a></strong>
550 <dd>
551 <p>A <a href="#item_function">function</a> that is predefined in the language. Even when hidden
552 by <a href="#item_overriding">overriding</a>, you can always get at a built-in function by
553 <a href="#item_qualified">qualifying</a> its name with the <code>CORE::</code> pseudo-package.</p>
554 </dd>
555 </li>
556 <dt><strong><a name="item_bundle">bundle</a></strong>
558 <dd>
559 <p>A group of related modules on <a href="#item_cpan">CPAN</a>. (Also, sometimes refers to a
560 group of command-line switches grouped into one <a href="#item_switch_cluster">switch cluster</a>.)</p>
561 </dd>
562 </li>
563 <dt><strong><a name="item_byte">byte</a></strong>
565 <dd>
566 <p>A piece of data worth eight <a href="#item_bit">bits</a> in most places.</p>
567 </dd>
568 </li>
569 <dt><strong><a name="item_bytecode">bytecode</a></strong>
571 <dd>
572 <p>A pidgin-like language spoken among 'droids when they don't wish to
573 reveal their orientation (see <a href="#item_endian">endian</a>). Named after some similar
574 languages spoken (for similar reasons) between compilers and
575 interpreters in the late 20th century. These languages are
576 characterized by representing everything as a
577 non-architecture-dependent sequence of bytes.</p>
578 </dd>
579 </li>
580 </dl>
582 </p>
583 <h2><a name="c">C</a></h2>
584 <dl>
585 <dt><strong><a name="item_c">C</a></strong>
587 <dd>
588 <p>A language beloved by many for its inside-out <a href="#item_type">type</a> definitions,
589 inscrutable <a href="#item_precedence">precedence</a> rules, and heavy <a href="#item_overloading">overloading</a> of the
590 function-call mechanism. (Well, actually, people first switched to C
591 because they found lowercase identifiers easier to read than upper.)
592 Perl is written in C, so it's not surprising that Perl borrowed a few
593 ideas from it.</p>
594 </dd>
595 </li>
596 <dt><strong><a name="item_c_preprocessor">C preprocessor</a></strong>
598 <dd>
599 <p>The typical C compiler's first pass, which processes lines beginning
600 with <code>#</code> for conditional compilation and macro definition and does
601 various manipulations of the program text based on the current
602 definitions. Also known as <em>cpp</em>(1).</p>
603 </dd>
604 </li>
605 <dt><strong><a name="item_call_by_reference">call by reference</a></strong>
607 <dd>
608 <p>An <a href="#item_argument">argument</a>-passing mechanism in which the <a href="#item_formal_arguments">formal arguments</a>
609 refer directly to the <a href="#item_actual_arguments">actual arguments</a>, and the <a href="#item_subroutine">subroutine</a> can
610 change the actual arguments by changing the formal arguments. That
611 is, the formal argument is an <a href="#item_alias">alias</a> for the actual argument. See
612 also <a href="#item_call_by_value">call by value</a>.</p>
613 </dd>
614 </li>
615 <dt><strong><a name="item_call_by_value">call by value</a></strong>
617 <dd>
618 <p>An <a href="#item_argument">argument</a>-passing mechanism in which the <a href="#item_formal_arguments">formal arguments</a>
619 refer to a copy of the <a href="#item_actual_arguments">actual arguments</a>, and the <a href="#item_subroutine">subroutine</a>
620 cannot change the actual arguments by changing the formal arguments.
621 See also <a href="#item_call_by_reference">call by reference</a>.</p>
622 </dd>
623 </li>
624 <dt><strong><a name="item_callback">callback</a></strong>
626 <dd>
627 <p>A <a href="#item_handler">handler</a> that you register with some other part of your program
628 in the hope that the other part of your program will <a href="#item_trigger">trigger</a> your
629 handler when some event of interest transpires.</p>
630 </dd>
631 </li>
632 <dt><strong><a name="item_canonical">canonical</a></strong>
634 <dd>
635 <p>Reduced to a standard form to facilitate comparison.</p>
636 </dd>
637 </li>
638 <dt><strong><a name="item_capturing">capturing</a></strong>
640 <dd>
641 <p>The use of parentheses around a <a href="#item_subpattern">subpattern</a> in a <a href="#item_regular_expression">regular expression</a> to store the matched <a href="#item_substring">substring</a> as a <a href="#item_backreference">backreference</a>.
642 (Captured strings are also returned as a list in <a href="#item_list_context">list context</a>.)</p>
643 </dd>
644 </li>
645 <dt><strong><a name="item_character">character</a></strong>
647 <dd>
648 <p>A small integer representative of a unit of orthography.
649 Historically, characters were usually stored as fixed-width integers
650 (typically in a byte, or maybe two, depending on the character set),
651 but with the advent of UTF-8, characters are often stored in a
652 variable number of bytes depending on the size of the integer that
653 represents the character. Perl manages this transparently for you,
654 for the most part.</p>
655 </dd>
656 </li>
657 <dt><strong><a name="item_character_class">character class</a></strong>
659 <dd>
660 <p>A square-bracketed list of characters used in a <a href="#item_regular_expression">regular expression</a>
661 to indicate that any character of the set may occur at a given point.
662 Loosely, any predefined set of characters so used.</p>
663 </dd>
664 </li>
665 <dt><strong><a name="item_character_property">character property</a></strong>
667 <dd>
668 <p>A predefined <a href="#item_character_class">character class</a> matchable by the <code>\p</code>
669 <a href="#item_metasymbol">metasymbol</a>. Many standard properties are defined for <a href="#item_unicode">Unicode</a>.</p>
670 </dd>
671 </li>
672 <dt><strong><a name="item_circumfix_operator">circumfix operator</a></strong>
674 <dd>
675 <p>An <a href="#item_operator">operator</a> that surrounds its <a href="#item_operand">operand</a>, like the angle
676 operator, or parentheses, or a hug.</p>
677 </dd>
678 </li>
679 <dt><strong><a name="item_class">class</a></strong>
681 <dd>
682 <p>A user-defined <a href="#item_type">type</a>, implemented in Perl via a <a href="#item_package">package</a> that
683 provides (either directly or by inheritance) <a href="#item_method">methods</a> (that
684 is, <a href="#item_subroutine">subroutines</a>) to handle <a href="#item_instance">instances</a> of
685 the class (its <a href="#item_object">objects</a>). See also <a href="#item_inheritance">inheritance</a>.</p>
686 </dd>
687 </li>
688 <dt><strong><a name="item_class_method">class method</a></strong>
690 <dd>
691 <p>A <a href="#item_method">method</a> whose <a href="#item_invocant">invocant</a> is a <a href="#item_package">package</a> name, not an
692 <a href="#item_object">object</a> reference. A method associated with the class as a whole.</p>
693 </dd>
694 </li>
695 <dt><strong><a name="item_client">client</a></strong>
697 <dd>
698 <p>In networking, a <a href="#item_process">process</a> that initiates contact with a <a href="#item_server">server</a>
699 process in order to exchange data and perhaps receive a service.</p>
700 </dd>
701 </li>
702 <dt><strong><a name="item_cloister">cloister</a></strong>
704 <dd>
705 <p>A <a href="#item_cluster">cluster</a> used to restrict the scope of a <a href="#item_regular_expression_modifier">regular expression modifier</a>.</p>
706 </dd>
707 </li>
708 <dt><strong><a name="item_closure">closure</a></strong>
710 <dd>
711 <p>An <a href="#item_anonymous">anonymous</a> subroutine that, when a reference to it is generated
712 at run time, keeps track of the identities of externally visible
713 <a href="#item_lexical_variable">lexical variables</a> even after those lexical
714 variables have supposedly gone out of <a href="#item_scope">scope</a>. They're called
715 ``closures'' because this sort of behavior gives mathematicians a sense
716 of closure.</p>
717 </dd>
718 </li>
719 <dt><strong><a name="item_cluster">cluster</a></strong>
721 <dd>
722 <p>A parenthesized <a href="#item_subpattern">subpattern</a> used to group parts of a <a href="#item_regular_expression">regular expression</a> into a single <a href="#item_atom">atom</a>.</p>
723 </dd>
724 </li>
725 <dt><strong><a name="item_code">CODE</a></strong>
727 <dd>
728 <p>The word returned by the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_ref">ref</a> function when you apply
729 it to a reference to a subroutine. See also <a href="#item_cv">CV</a>.</p>
730 </dd>
731 </li>
732 <dt><strong><a name="item_code_generator">code generator</a></strong>
734 <dd>
735 <p>A system that writes code for you in a low-level language, such as
736 code to implement the backend of a compiler. See <a href="#item_program_generator">program generator</a>.</p>
737 </dd>
738 </li>
739 <dt><strong><a name="item_code_subpattern">code subpattern</a></strong>
741 <dd>
742 <p>A <a href="#item_regular_expression">regular expression</a> subpattern whose real purpose is to execute
743 some Perl code, for example, the <code>(?{...})</code> and <code>(??{...})</code>
744 subpatterns.</p>
745 </dd>
746 </li>
747 <dt><strong><a name="item_collating_sequence">collating sequence</a></strong>
749 <dd>
750 <p>The order into which <a href="#item_character">characters</a> sort. This is used by
751 <a href="#item_string">string</a> comparison routines to decide, for example, where in this
752 glossary to put ``collating sequence''.</p>
753 </dd>
754 </li>
755 <dt><strong><a name="item_command">command</a></strong>
757 <dd>
758 <p>In <a href="#item_shell">shell</a> programming, the syntactic combination of a program name
759 and its arguments. More loosely, anything you type to a shell (a
760 command interpreter) that starts it doing something. Even more
761 loosely, a Perl <a href="#item_statement">statement</a>, which might start with a <a href="#item_label">label</a> and
762 typically ends with a semicolon.</p>
763 </dd>
764 </li>
765 <dt><strong><a name="item_command_buffering">command buffering</a></strong>
767 <dd>
768 <p>A mechanism in Perl that lets you store up the output of each Perl
769 <a href="#item_command">command</a> and then flush it out as a single request to the
770 <a href="#item_operating_system">operating system</a>. It's enabled by setting the <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$|</code></a>
771 (<code>$AUTOFLUSH</code>) variable to a true value. It's used when you don't
772 want data sitting around not going where it's supposed to, which may
773 happen because the default on a <a href="#item_file">file</a> or <a href="#item_pipe">pipe</a> is to use
774 <a href="#item_block_buffering">block buffering</a>.</p>
775 </dd>
776 </li>
777 <dt><strong><a name="item_command_name">command name</a></strong>
779 <dd>
780 <p>The name of the program currently executing, as typed on the command
781 line. In C, the <a href="#item_command">command</a> name is passed to the program as the
782 first command-line argument. In Perl, it comes in separately as
783 <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__0"><code>$0</code></a>.</p>
784 </dd>
785 </li>
786 <dt><strong><a name="item_command_2dline_arguments">command-line arguments</a></strong>
788 <dd>
789 <p>The <a href="#item_value">values</a> you supply along with a program name when you
790 tell a <a href="#item_shell">shell</a> to execute a <a href="#item_command">command</a>. These values are passed to
791 a Perl program through <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__argv"><code>@ARGV</code></a>.</p>
792 </dd>
793 </li>
794 <dt><strong><a name="item_comment">comment</a></strong>
796 <dd>
797 <p>A remark that doesn't affect the meaning of the program. In Perl, a
798 comment is introduced by a <code>#</code> character and continues to the end of
799 the line.</p>
800 </dd>
801 </li>
802 <dt><strong><a name="item_compilation_unit">compilation unit</a></strong>
804 <dd>
805 <p>The <a href="#item_file">file</a> (or <a href="#item_string">string</a>, in the case of <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_eval">eval</a>)
806 that is currently being compiled.</p>
807 </dd>
808 </li>
809 <dt><strong><a name="item_compile_phase">compile phase</a></strong>
811 <dd>
812 <p>Any time before Perl starts running your main program. See also
813 <a href="#item_run_phase">run phase</a>. Compile phase is mostly spent in <a href="#item_compile_time">compile time</a>, but
814 may also be spent in <a href="#item_run_time">run time</a> when <code>BEGIN</code> blocks,
815 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_use">use</a> declarations, or constant subexpressions are being
816 evaluated. The startup and import code of any <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_use">use</a>
817 declaration is also run during compile phase.</p>
818 </dd>
819 </li>
820 <dt><strong><a name="item_compile_time">compile time</a></strong>
822 <dd>
823 <p>The time when Perl is trying to make sense of your code, as opposed to
824 when it thinks it knows what your code means and is merely trying to
825 do what it thinks your code says to do, which is <a href="#item_run_time">run time</a>.</p>
826 </dd>
827 </li>
828 <dt><strong><a name="item_compiler">compiler</a></strong>
830 <dd>
831 <p>Strictly speaking, a program that munches up another program and spits
832 out yet another file containing the program in a ``more executable''
833 form, typically containing native machine instructions. The <em>perl</em>
834 program is not a compiler by this definition, but it does contain a
835 kind of compiler that takes a program and turns it into a more
836 executable form (<a href="#item_syntax_tree">syntax trees</a>) within the <em>perl</em>
837 process itself, which the <a href="#item_interpreter">interpreter</a> then interprets. There are,
838 however, extension <a href="#item_module">modules</a> to get Perl to act more like a
839 ``real'' compiler. See <a href="file://C|\msysgit\mingw\html/lib/O.html">the O manpage</a>.</p>
840 </dd>
841 </li>
842 <dt><strong><a name="item_composer">composer</a></strong>
844 <dd>
845 <p>A ``constructor'' for a <a href="#item_referent">referent</a> that isn't really an <a href="#item_object">object</a>,
846 like an anonymous array or a hash (or a sonata, for that matter). For
847 example, a pair of braces acts as a composer for a hash, and a pair of
848 brackets acts as a composer for an array. See <a href="file://C|\msysgit\mingw\html/pod/perlref.html#making_references">Making References in the perlref manpage</a>.</p>
849 </dd>
850 </li>
851 <dt><strong><a name="item_concatenation">concatenation</a></strong>
853 <dd>
854 <p>The process of gluing one cat's nose to another cat's tail. Also, a
855 similar operation on two <a href="#item_string">strings</a>.</p>
856 </dd>
857 </li>
858 <dt><strong><a name="item_conditional">conditional</a></strong>
860 <dd>
861 <p>Something ``iffy''. See <a href="#item_boolean_context">Boolean context</a>.</p>
862 </dd>
863 </li>
864 <dt><strong><a name="item_connection">connection</a></strong>
866 <dd>
867 <p>In telephony, the temporary electrical circuit between the caller's
868 and the callee's phone. In networking, the same kind of temporary
869 circuit between a <a href="#item_client">client</a> and a <a href="#item_server">server</a>.</p>
870 </dd>
871 </li>
872 <dt><strong><a name="item_construct">construct</a></strong>
874 <dd>
875 <p>As a noun, a piece of syntax made up of smaller pieces. As a
876 transitive verb, to create an <a href="#item_object">object</a> using a <a href="#item_constructor">constructor</a>.</p>
877 </dd>
878 </li>
879 <dt><strong><a name="item_constructor">constructor</a></strong>
881 <dd>
882 <p>Any <a href="#item_class_method">class method</a>, instance <a href="#item_method">method</a>, or <a href="#item_subroutine">subroutine</a>
883 that composes, initializes, blesses, and returns an <a href="#item_object">object</a>.
884 Sometimes we use the term loosely to mean a <a href="#item_composer">composer</a>.</p>
885 </dd>
886 </li>
887 <dt><strong><a name="item_context">context</a></strong>
889 <dd>
890 <p>The surroundings, or environment. The context given by the
891 surrounding code determines what kind of data a particular
892 <a href="#item_expression">expression</a> is expected to return. The three primary contexts are
893 <a href="#item_list_context">list context</a>, <a href="#item_scalar_context">scalar context</a>, and <a href="#item_void_context">void context</a>. Scalar
894 context is sometimes subdivided into <a href="#item_boolean_context">Boolean context</a>, <a href="#item_numeric_context">numeric context</a>, <a href="#item_string_context">string context</a>, and <a href="#item_void_context">void context</a>. There's also a
895 ``don't care'' scalar context (which is dealt with in Programming Perl,
896 Third Edition, Chapter 2, ``Bits and Pieces'' if you care).</p>
897 </dd>
898 </li>
899 <dt><strong><a name="item_continuation">continuation</a></strong>
901 <dd>
902 <p>The treatment of more than one physical <a href="#item_line">line</a> as a single logical
903 line. <a href="#item_makefile">Makefile</a> lines are continued by putting a backslash before
904 the <a href="#item_newline">newline</a>. Mail headers as defined by RFC 822 are continued by
905 putting a space or tab <em>after</em> the newline. In general, lines in
906 Perl do not need any form of continuation mark, because <a href="#item_whitespace">whitespace</a>
907 (including newlines) is gleefully ignored. Usually.</p>
908 </dd>
909 </li>
910 <dt><strong><a name="item_core_dump">core dump</a></strong>
912 <dd>
913 <p>The corpse of a <a href="#item_process">process</a>, in the form of a file left in the
914 <a href="#item_working_directory">working directory</a> of the process, usually as a result of certain
915 kinds of fatal error.</p>
916 </dd>
917 </li>
918 <dt><strong><a name="item_cpan">CPAN</a></strong>
920 <dd>
921 <p>The Comprehensive Perl Archive Network. (See <a href="file://C|\msysgit\mingw\html/pod/perlfaq2.html#what_modules_and_extensions_are_available_for_perl_what_is_cpan_what_does_cpane_sol_srce_sol_____mean">What modules and extensions are available for Perl? What is CPAN? What does CPAN&sol;src&sol;... mean? in the perlfaq2 manpage</a>).</p>
922 </dd>
923 </li>
924 <dt><strong><a name="item_cracker">cracker</a></strong>
926 <dd>
927 <p>Someone who breaks security on computer systems. A cracker may be a
928 true <a href="#item_hacker">hacker</a> or only a <a href="#item_script_kiddie">script kiddie</a>.</p>
929 </dd>
930 </li>
931 <dt><strong><a name="item_current_package">current package</a></strong>
933 <dd>
934 <p>The <a href="#item_package">package</a> in which the current statement is compiled. Scan
935 backwards in the text of your program through the current <a href="#item_lexical_scoping">lexical scope</a> or any enclosing lexical scopes till you find
936 a package declaration. That's your current package name.</p>
937 </dd>
938 </li>
939 <dt><strong><a name="item_current_working_directory">current working directory</a></strong>
941 <dd>
942 <p>See <a href="#item_working_directory">working directory</a>.</p>
943 </dd>
944 </li>
945 <dt><strong><a name="item_currently_selected_output_channel">currently selected output channel</a></strong>
947 <dd>
948 <p>The last <a href="#item_filehandle">filehandle</a> that was designated with
949 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_select">select</a>(<code>FILEHANDLE</code>); <a href="#item_stdout">STDOUT</a>, if no filehandle
950 has been selected.</p>
951 </dd>
952 </li>
953 <dt><strong><a name="item_cv">CV</a></strong>
955 <dd>
956 <p>An internal ``code value'' typedef, holding a <a href="#item_subroutine">subroutine</a>. The <a href="#item_cv">CV</a>
957 type is a subclass of <a href="#item_sv">SV</a>.</p>
958 </dd>
959 </li>
960 </dl>
962 </p>
963 <h2><a name="d">D</a></h2>
964 <dl>
965 <dt><strong><a name="item_dangling_statement">dangling statement</a></strong>
967 <dd>
968 <p>A bare, single <a href="#item_statement">statement</a>, without any braces, hanging off an <code>if</code>
969 or <code>while</code> conditional. C allows them. Perl doesn't.</p>
970 </dd>
971 </li>
972 <dt><strong><a name="item_data_structure">data structure</a></strong>
974 <dd>
975 <p>How your various pieces of data relate to each other and what shape
976 they make when you put them all together, as in a rectangular table or
977 a triangular-shaped tree.</p>
978 </dd>
979 </li>
980 <dt><strong><a name="item_data_type">data type</a></strong>
982 <dd>
983 <p>A set of possible values, together with all the operations that know
984 how to deal with those values. For example, a numeric data type has a
985 certain set of numbers that you can work with and various mathematical
986 operations that you can do on the numbers but would make little sense
987 on, say, a string such as <code>&quot;Kilroy&quot;</code>. Strings have their own
988 operations, such as <a href="#item_concatenation">concatenation</a>. Compound types made of a
989 number of smaller pieces generally have operations to compose and
990 decompose them, and perhaps to rearrange them. <a href="#item_object">Objects</a>
991 that model things in the real world often have operations that
992 correspond to real activities. For instance, if you model an
993 elevator, your elevator object might have an <code>open_door()</code>
994 <a href="#item_method">method</a>.</p>
995 </dd>
996 </li>
997 <dt><strong><a name="item_datagram">datagram</a></strong>
999 <dd>
1000 <p>A packet of data, such as a <a href="#item_udp">UDP</a> message, that (from the viewpoint
1001 of the programs involved) can be sent independently over the network.
1002 (In fact, all packets are sent independently at the <a href="#item_ip">IP</a> level, but
1003 <a href="#item_stream">stream</a> protocols such as <a href="#item_tcp">TCP</a> hide this from your program.)</p>
1004 </dd>
1005 </li>
1006 <dt><strong><a name="item_dbm">DBM</a></strong>
1008 <dd>
1009 <p>Stands for ``Data Base Management'' routines, a set of routines that
1010 emulate an <a href="#item_associative_array">associative array</a> using disk files. The routines use a
1011 dynamic hashing scheme to locate any entry with only two disk
1012 accesses. DBM files allow a Perl program to keep a persistent
1013 <a href="#item_hash">hash</a> across multiple invocations. You can <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#tie">tie</a>
1014 your hash variables to various DBM implementations--see <a href="file://C|\msysgit\mingw\html/lib/AnyDBM_File.html">the AnyDBM_File manpage</a>
1015 and <a href="file://C|\msysgit\mingw\html/ext/DB_File/DB_File.html">the DB_File manpage</a>.</p>
1016 </dd>
1017 </li>
1018 <dt><strong><a name="item_declaration">declaration</a></strong>
1020 <dd>
1021 <p>An <a href="#item_assertion">assertion</a> that states something exists and perhaps describes
1022 what it's like, without giving any commitment as to how or where
1023 you'll use it. A declaration is like the part of your recipe that
1024 says, ``two cups flour, one large egg, four or five tadpoles...'' See
1025 <a href="#item_statement">statement</a> for its opposite. Note that some declarations also
1026 function as statements. Subroutine declarations also act as
1027 definitions if a body is supplied.</p>
1028 </dd>
1029 </li>
1030 <dt><strong><a name="item_decrement">decrement</a></strong>
1032 <dd>
1033 <p>To subtract a value from a variable, as in ``decrement <code>$x</code>'' (meaning
1034 to remove 1 from its value) or ``decrement <code>$x</code> by 3''.</p>
1035 </dd>
1036 </li>
1037 <dt><strong><a name="item_default">default</a></strong>
1039 <dd>
1040 <p>A <a href="#item_value">value</a> chosen for you if you don't supply a value of your own.</p>
1041 </dd>
1042 </li>
1043 <dt><strong><a name="item_defined">defined</a></strong>
1045 <dd>
1046 <p>Having a meaning. Perl thinks that some of the things people try to
1047 do are devoid of meaning, in particular, making use of variables that
1048 have never been given a <a href="#item_value">value</a> and performing certain operations on
1049 data that isn't there. For example, if you try to read data past the
1050 end of a file, Perl will hand you back an undefined value. See also
1051 <a href="#item_false">false</a> and <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_defined">defined in the perlfunc manpage</a>.</p>
1052 </dd>
1053 </li>
1054 <dt><strong><a name="item_delimiter">delimiter</a></strong>
1056 <dd>
1057 <p>A <a href="#item_character">character</a> or <a href="#item_string">string</a> that sets bounds to an arbitrarily-sized
1058 textual object, not to be confused with a <a href="#item_separator">separator</a> or
1059 <a href="#item_terminator">terminator</a>. ``To delimit'' really just means ``to surround'' or ``to
1060 enclose'' (like these parentheses are doing).</p>
1061 </dd>
1062 </li>
1063 <dt><strong><a name="item_dereference">dereference</a></strong>
1065 <dd>
1066 <p>A fancy computer science term meaning ``to follow a <a href="#item_reference">reference</a> to
1067 what it points to''. The ``de'' part of it refers to the fact that
1068 you're taking away one level of <a href="#item_indirection">indirection</a>.</p>
1069 </dd>
1070 </li>
1071 <dt><strong><a name="item_derived_class">derived class</a></strong>
1073 <dd>
1074 <p>A <a href="#item_class">class</a> that defines some of its <a href="#item_method">methods</a> in terms of a
1075 more generic class, called a <a href="#item_base_class">base class</a>. Note that classes aren't
1076 classified exclusively into base classes or derived classes: a class
1077 can function as both a derived class and a base class simultaneously,
1078 which is kind of classy.</p>
1079 </dd>
1080 </li>
1081 <dt><strong><a name="item_descriptor">descriptor</a></strong>
1083 <dd>
1084 <p>See <a href="#item_file_descriptor">file descriptor</a>.</p>
1085 </dd>
1086 </li>
1087 <dt><strong><a name="item_destroy">destroy</a></strong>
1089 <dd>
1090 <p>To deallocate the memory of a <a href="#item_referent">referent</a> (first triggering its
1091 <code>DESTROY</code> method, if it has one).</p>
1092 </dd>
1093 </li>
1094 <dt><strong><a name="item_destructor">destructor</a></strong>
1096 <dd>
1097 <p>A special <a href="#item_method">method</a> that is called when an <a href="#item_object">object</a> is thinking
1098 about <a href="#item_destroy">destroying</a> itself. A Perl program's <code>DESTROY</code>
1099 method doesn't do the actual destruction; Perl just
1100 <a href="#item_trigger">triggers</a> the method in case the <a href="#item_class">class</a> wants to do any
1101 associated cleanup.</p>
1102 </dd>
1103 </li>
1104 <dt><strong><a name="item_device">device</a></strong>
1106 <dd>
1107 <p>A whiz-bang hardware gizmo (like a disk or tape drive or a modem or a
1108 joystick or a mouse) attached to your computer, that the <a href="#item_operating_system">operating system</a> tries to make look like a <a href="#item_file">file</a> (or a bunch of files).
1109 Under Unix, these fake files tend to live in the <em>/dev</em> directory.</p>
1110 </dd>
1111 </li>
1112 <dt><strong><a name="item_directive">directive</a></strong>
1114 <dd>
1115 <p>A <a href="#item_pod">pod</a> directive. See <a href="file://C|\msysgit\mingw\html/pod/perlpod.html">the perlpod manpage</a>.</p>
1116 </dd>
1117 </li>
1118 <dt><strong><a name="item_directory">directory</a></strong>
1120 <dd>
1121 <p>A special file that contains other files. Some <a href="#item_operating_system">operating systems</a> call these ``folders'', ``drawers'', or
1122 ``catalogs''.</p>
1123 </dd>
1124 </li>
1125 <dt><strong><a name="item_directory_handle">directory handle</a></strong>
1127 <dd>
1128 <p>A name that represents a particular instance of opening a directory to
1129 read it, until you close it. See the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#opendir">opendir</a>
1130 function.</p>
1131 </dd>
1132 </li>
1133 <dt><strong><a name="item_dispatch">dispatch</a></strong>
1135 <dd>
1136 <p>To send something to its correct destination. Often used
1137 metaphorically to indicate a transfer of programmatic control to a
1138 destination selected algorithmically, often by lookup in a table of
1139 function <a href="#item_reference">references</a> or, in the case of object
1140 <a href="#item_method">methods</a>, by traversing the inheritance tree looking for the
1141 most specific definition for the method.</p>
1142 </dd>
1143 </li>
1144 <dt><strong><a name="item_distribution">distribution</a></strong>
1146 <dd>
1147 <p>A standard, bundled release of a system of software. The default
1148 usage implies source code is included. If that is not the case, it
1149 will be called a ``binary-only'' distribution.</p>
1150 </dd>
1151 </li>
1152 <dt><strong><a name="item_dweomer">dweomer</a></strong>
1154 <dd>
1155 <p>An enchantment, illusion, phantasm, or jugglery. Said when Perl's
1156 magical <a href="#item_dwimmer">dwimmer</a> effects don't do what you expect, but rather seem
1157 to be the product of arcane dweomercraft, sorcery, or wonder working.
1158 [From Old English]</p>
1159 </dd>
1160 </li>
1161 <dt><strong><a name="item_dwimmer">dwimmer</a></strong>
1163 <dd>
1164 <p>DWIM is an acronym for ``Do What I Mean'', the principle that something
1165 should just do what you want it to do without an undue amount of fuss.
1166 A bit of code that does ``dwimming'' is a ``dwimmer''. Dwimming can
1167 require a great deal of behind-the-scenes magic, which (if it doesn't
1168 stay properly behind the scenes) is called a <a href="#item_dweomer">dweomer</a> instead.</p>
1169 </dd>
1170 </li>
1171 <dt><strong><a name="item_dynamic_scoping">dynamic scoping</a></strong>
1173 <dd>
1174 <p>Dynamic scoping works over a dynamic scope, making variables visible
1175 throughout the rest of the <a href="#item_block">block</a> in which they are first used and
1176 in any <a href="#item_subroutine">subroutines</a> that are called by the rest of the
1177 block. Dynamically scoped variables can have their values temporarily
1178 changed (and implicitly restored later) by a <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#local">local</a>
1179 operator. (Compare <a href="#item_lexical_scoping">lexical scoping</a>.) Used more loosely to mean
1180 how a subroutine that is in the middle of calling another subroutine
1181 ``contains'' that subroutine at <a href="#item_run_time">run time</a>.</p>
1182 </dd>
1183 </li>
1184 </dl>
1186 </p>
1187 <h2><a name="e">E</a></h2>
1188 <dl>
1189 <dt><strong><a name="item_eclectic">eclectic</a></strong>
1191 <dd>
1192 <p>Derived from many sources. Some would say <em>too</em> many.</p>
1193 </dd>
1194 </li>
1195 <dt><strong><a name="item_element">element</a></strong>
1197 <dd>
1198 <p>A basic building block. When you're talking about an <a href="#item_array">array</a>, it's
1199 one of the items that make up the array.</p>
1200 </dd>
1201 </li>
1202 <dt><strong><a name="item_embedding">embedding</a></strong>
1204 <dd>
1205 <p>When something is contained in something else, particularly when that
1206 might be considered surprising: ``I've embedded a complete Perl
1207 interpreter in my editor!''</p>
1208 </dd>
1209 </li>
1210 <dt><strong><a name="item_empty_subclass_test">empty subclass test</a></strong>
1212 <dd>
1213 <p>The notion that an empty <a href="#item_derived_class">derived class</a> should behave exactly like
1214 its <a href="#item_base_class">base class</a>.</p>
1215 </dd>
1216 </li>
1217 <dt><strong><a name="item_en_passant">en passant</a></strong>
1219 <dd>
1220 <p>When you change a <a href="#item_value">value</a> as it is being copied. [From French, ``in
1221 passing'', as in the exotic pawn-capturing maneuver in chess.]</p>
1222 </dd>
1223 </li>
1224 <dt><strong><a name="item_encapsulation">encapsulation</a></strong>
1226 <dd>
1227 <p>The veil of abstraction separating the <a href="#item_interface">interface</a> from the
1228 <a href="#item_implementation">implementation</a> (whether enforced or not), which mandates that all
1229 access to an <a href="#item_object">object</a>'s state be through <a href="#item_method">methods</a> alone.</p>
1230 </dd>
1231 </li>
1232 <dt><strong><a name="item_endian">endian</a></strong>
1234 <dd>
1235 <p>See <a href="#item_little_2dendian">little-endian</a> and <a href="#item_big_2dendian">big-endian</a>.</p>
1236 </dd>
1237 </li>
1238 <dt><strong><a name="item_environment">environment</a></strong>
1240 <dd>
1241 <p>The collective set of <a href="#item_environment_variable">environment variables</a>
1242 your <a href="#item_process">process</a> inherits from its parent. Accessed via <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__env"><code>%ENV</code></a>.</p>
1243 </dd>
1244 </li>
1245 <dt><strong><a name="item_environment_variable">environment variable</a></strong>
1247 <dd>
1248 <p>A mechanism by which some high-level agent such as a user can pass its
1249 preferences down to its future offspring (child <a href="#item_process">processes</a>,
1250 grandchild processes, great-grandchild processes, and so on). Each
1251 environment variable is a <a href="#item_key">key</a>/<a href="#item_value">value</a> pair, like one entry in a
1252 <a href="#item_hash">hash</a>.</p>
1253 </dd>
1254 </li>
1255 <dt><strong><a name="item_eof">EOF</a></strong>
1257 <dd>
1258 <p>End of File. Sometimes used metaphorically as the terminating string
1259 of a <a href="#item_here_document">here document</a>.</p>
1260 </dd>
1261 </li>
1262 <dt><strong><a name="item_errno">errno</a></strong>
1264 <dd>
1265 <p>The error number returned by a <a href="#item_syscall">syscall</a> when it fails. Perl refers
1266 to the error by the name <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$!</code></a> (or <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__os_error"><code>$OS_ERROR</code></a> if you use the English
1267 module).</p>
1268 </dd>
1269 </li>
1270 <dt><strong><a name="item_error">error</a></strong>
1272 <dd>
1273 <p>See <a href="#item_exception">exception</a> or <a href="#item_fatal_error">fatal error</a>.</p>
1274 </dd>
1275 </li>
1276 <dt><strong><a name="item_escape_sequence">escape sequence</a></strong>
1278 <dd>
1279 <p>See <a href="#item_metasymbol">metasymbol</a>.</p>
1280 </dd>
1281 </li>
1282 <dt><strong><a name="item_exception">exception</a></strong>
1284 <dd>
1285 <p>A fancy term for an error. See <a href="#item_fatal_error">fatal error</a>.</p>
1286 </dd>
1287 </li>
1288 <dt><strong><a name="item_exception_handling">exception handling</a></strong>
1290 <dd>
1291 <p>The way a program responds to an error. The exception handling
1292 mechanism in Perl is the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_eval">eval</a> operator.</p>
1293 </dd>
1294 </li>
1295 <dt><strong><a name="item_exec">exec</a></strong>
1297 <dd>
1298 <p>To throw away the current <a href="#item_process">process</a>'s program and replace it with
1299 another without exiting the process or relinquishing any resources
1300 held (apart from the old memory image).</p>
1301 </dd>
1302 </li>
1303 <dt><strong><a name="item_executable_file">executable file</a></strong>
1305 <dd>
1306 <p>A <a href="#item_file">file</a> that is specially marked to tell the <a href="#item_operating_system">operating system</a>
1307 that it's okay to run this file as a program. Usually shortened to
1308 ``executable''.</p>
1309 </dd>
1310 </li>
1311 <dt><strong><a name="item_execute">execute</a></strong>
1313 <dd>
1314 <p>To run a <a href="#item_executable_file">program</a> or <a href="#item_subroutine">subroutine</a>. (Has nothing
1315 to do with the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#kill">kill</a> built-in, unless you're trying to
1316 run a <a href="#item_signal_handler">signal handler</a>.)</p>
1317 </dd>
1318 </li>
1319 <dt><strong><a name="item_execute_bit">execute bit</a></strong>
1321 <dd>
1322 <p>The special mark that tells the operating system it can run this
1323 program. There are actually three execute bits under Unix, and which
1324 bit gets used depends on whether you own the file singularly,
1325 collectively, or not at all.</p>
1326 </dd>
1327 </li>
1328 <dt><strong><a name="item_exit_status">exit status</a></strong>
1330 <dd>
1331 <p>See <a href="#item_status">status</a>.</p>
1332 </dd>
1333 </li>
1334 <dt><strong><a name="item_export">export</a></strong>
1336 <dd>
1337 <p>To make symbols from a <a href="#item_module">module</a> available for <a href="#item_import">import</a> by other modules.</p>
1338 </dd>
1339 </li>
1340 <dt><strong><a name="item_expression">expression</a></strong>
1342 <dd>
1343 <p>Anything you can legally say in a spot where a <a href="#item_value">value</a> is required.
1344 Typically composed of <a href="#item_literal">literals</a>, <a href="#item_variable">variables</a>,
1345 <a href="#item_operator">operators</a>, <a href="#item_function">functions</a>, and <a href="#item_subroutine">subroutine</a>
1346 calls, not necessarily in that order.</p>
1347 </dd>
1348 </li>
1349 <dt><strong><a name="item_extension">extension</a></strong>
1351 <dd>
1352 <p>A Perl module that also pulls in compiled C or C++ code. More
1353 generally, any experimental option that can be compiled into Perl,
1354 such as multithreading.</p>
1355 </dd>
1356 </li>
1357 </dl>
1359 </p>
1360 <h2><a name="f">F</a></h2>
1361 <dl>
1362 <dt><strong><a name="item_false">false</a></strong>
1364 <dd>
1365 <p>In Perl, any value that would look like <code>&quot;&quot;</code> or <code>&quot;0&quot;</code> if evaluated
1366 in a string context. Since undefined values evaluate to <code>&quot;&quot;</code>, all
1367 undefined values are false, but not all false values are undefined.</p>
1368 </dd>
1369 </li>
1370 <dt><strong><a name="item_faq">FAQ</a></strong>
1372 <dd>
1373 <p>Frequently Asked Question (although not necessarily frequently
1374 answered, especially if the answer appears in the Perl FAQ shipped
1375 standard with Perl).</p>
1376 </dd>
1377 </li>
1378 <dt><strong><a name="item_fatal_error">fatal error</a></strong>
1380 <dd>
1381 <p>An uncaught <a href="#item_exception">exception</a>, which causes termination of the <a href="#item_process">process</a>
1382 after printing a message on your <a href="#item_standard_error">standard error</a> stream. Errors
1383 that happen inside an <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_eval">eval</a> are not fatal. Instead,
1384 the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_eval">eval</a> terminates after placing the exception
1385 message in the <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$@</code></a> (<a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__eval_error"><code>$EVAL_ERROR</code></a>) variable. You can try to
1386 provoke a fatal error with the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#die">die</a> operator (known as
1387 throwing or raising an exception), but this may be caught by a
1388 dynamically enclosing <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_eval">eval</a>. If not caught, the
1389 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#die">die</a> becomes a fatal error.</p>
1390 </dd>
1391 </li>
1392 <dt><strong><a name="item_field">field</a></strong>
1394 <dd>
1395 <p>A single piece of numeric or string data that is part of a longer
1396 <a href="#item_string">string</a>, <a href="#item_record">record</a>, or <a href="#item_line">line</a>. Variable-width fields are usually
1397 split up by <a href="#item_separator">separators</a> (so use <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_split">split</a> to
1398 extract the fields), while fixed-width fields are usually at fixed
1399 positions (so use <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#unpack">unpack</a>). <a href="#item_instance_variable">Instance variables</a> are also known as fields.</p>
1400 </dd>
1401 </li>
1402 <dt><strong><a name="item_fifo">FIFO</a></strong>
1404 <dd>
1405 <p>First In, First Out. See also <a href="#item_lifo">LIFO</a>. Also, a nickname for a
1406 <a href="#item_named_pipe">named pipe</a>.</p>
1407 </dd>
1408 </li>
1409 <dt><strong><a name="item_file">file</a></strong>
1411 <dd>
1412 <p>A named collection of data, usually stored on disk in a <a href="#item_directory">directory</a>
1413 in a <a href="#item_filesystem">filesystem</a>. Roughly like a document, if you're into office
1414 metaphors. In modern filesystems, you can actually give a file more
1415 than one name. Some files have special properties, like directories
1416 and devices.</p>
1417 </dd>
1418 </li>
1419 <dt><strong><a name="item_file_descriptor">file descriptor</a></strong>
1421 <dd>
1422 <p>The little number the <a href="#item_operating_system">operating system</a> uses to keep track of which
1423 opened <a href="#item_file">file</a> you're talking about. Perl hides the file descriptor
1424 inside a <a href="#standard_ie_sol_o">standard I&sol;O</a> stream and then attaches the stream to
1425 a <a href="#item_filehandle">filehandle</a>.</p>
1426 </dd>
1427 </li>
1428 <dt><strong><a name="item_file_test_operator">file test operator</a></strong>
1430 <dd>
1431 <p>A built-in unary operator that you use to determine whether something
1432 is <a href="#item_true">true</a> about a file, such as <code>-o $filename</code> to test whether
1433 you're the owner of the file.</p>
1434 </dd>
1435 </li>
1436 <dt><strong><a name="item_fileglob">fileglob</a></strong>
1438 <dd>
1439 <p>A ``wildcard'' match on <a href="#item_filename">filenames</a>. See the
1440 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_glob">glob</a> function.</p>
1441 </dd>
1442 </li>
1443 <dt><strong><a name="item_filehandle">filehandle</a></strong>
1445 <dd>
1446 <p>An identifier (not necessarily related to the real name of a file)
1447 that represents a particular instance of opening a file until you
1448 close it. If you're going to open and close several different files
1449 in succession, it's fine to open each of them with the same
1450 filehandle, so you don't have to write out separate code to process
1451 each file.</p>
1452 </dd>
1453 </li>
1454 <dt><strong><a name="item_filename">filename</a></strong>
1456 <dd>
1457 <p>One name for a file. This name is listed in a <a href="#item_directory">directory</a>, and you
1458 can use it in an <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_open">open</a> to tell the <a href="#item_operating_system">operating system</a> exactly which file you want to open, and associate the file
1459 with a <a href="#item_filehandle">filehandle</a> which will carry the subsequent identity of that
1460 file in your program, until you close it.</p>
1461 </dd>
1462 </li>
1463 <dt><strong><a name="item_filesystem">filesystem</a></strong>
1465 <dd>
1466 <p>A set of <a href="#item_directory">directories</a> and <a href="#item_file">files</a> residing on a
1467 partition of the disk. Sometimes known as a ``partition''. You can
1468 change the file's name or even move a file around from directory to
1469 directory within a filesystem without actually moving the file itself,
1470 at least under Unix.</p>
1471 </dd>
1472 </li>
1473 <dt><strong><a name="item_filter">filter</a></strong>
1475 <dd>
1476 <p>A program designed to take a <a href="#item_stream">stream</a> of input and transform it into
1477 a stream of output.</p>
1478 </dd>
1479 </li>
1480 <dt><strong><a name="item_flag">flag</a></strong>
1482 <dd>
1483 <p>We tend to avoid this term because it means so many things. It may
1484 mean a command-line <a href="#item_switch">switch</a> that takes no argument
1485 itself (such as Perl's <strong>-n</strong> and <strong>-p</strong>
1486 flags) or, less frequently, a single-bit indicator (such as the
1487 <code>O_CREAT</code> and <code>O_EXCL</code> flags used in
1488 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_sysopen">sysopen</a>).</p>
1489 </dd>
1490 </li>
1491 <dt><strong><a name="item_floating_point">floating point</a></strong>
1493 <dd>
1494 <p>A method of storing numbers in ``scientific notation'', such that the
1495 precision of the number is independent of its magnitude (the decimal
1496 point ``floats''). Perl does its numeric work with floating-point
1497 numbers (sometimes called ``floats''), when it can't get away with
1498 using <a href="#item_integer">integers</a>. Floating-point numbers are mere
1499 approximations of real numbers.</p>
1500 </dd>
1501 </li>
1502 <dt><strong><a name="item_flush">flush</a></strong>
1504 <dd>
1505 <p>The act of emptying a <a href="#item_buffer">buffer</a>, often before it's full.</p>
1506 </dd>
1507 </li>
1508 <dt><strong><a name="item_fmteyewtk">FMTEYEWTK</a></strong>
1510 <dd>
1511 <p>Far More Than Everything You Ever Wanted To Know. An exhaustive
1512 treatise on one narrow topic, something of a super-<a href="#item_faq">FAQ</a>. See Tom
1513 for far more.</p>
1514 </dd>
1515 </li>
1516 <dt><strong><a name="item_fork">fork</a></strong>
1518 <dd>
1519 <p>To create a child <a href="#item_process">process</a> identical to the parent process at its
1520 moment of conception, at least until it gets ideas of its own. A
1521 thread with protected memory.</p>
1522 </dd>
1523 </li>
1524 <dt><strong><a name="item_formal_arguments">formal arguments</a></strong>
1526 <dd>
1527 <p>The generic names by which a <a href="#item_subroutine">subroutine</a> knows its
1528 <a href="#item_argument">arguments</a>. In many languages, formal arguments are
1529 always given individual names, but in Perl, the formal arguments are
1530 just the elements of an array. The formal arguments to a Perl program
1531 are <code>$ARGV[0]</code>, <code>$ARGV[1]</code>, and so on. Similarly, the formal
1532 arguments to a Perl subroutine are <code>$_[0]</code>, <code>$_[1]</code>, and so on. You
1533 may give the arguments individual names by assigning the values to a
1534 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_my">my</a> list. See also <a href="#item_actual_arguments">actual arguments</a>.</p>
1535 </dd>
1536 </li>
1537 <dt><strong><a name="item_format">format</a></strong>
1539 <dd>
1540 <p>A specification of how many spaces and digits and things to put
1541 somewhere so that whatever you're printing comes out nice and pretty.</p>
1542 </dd>
1543 </li>
1544 <dt><strong><a name="item_freely_available">freely available</a></strong>
1546 <dd>
1547 <p>Means you don't have to pay money to get it, but the copyright on it
1548 may still belong to someone else (like Larry).</p>
1549 </dd>
1550 </li>
1551 <dt><strong><a name="item_freely_redistributable">freely redistributable</a></strong>
1553 <dd>
1554 <p>Means you're not in legal trouble if you give a bootleg copy of it to
1555 your friends and we find out about it. In fact, we'd rather you gave
1556 a copy to all your friends.</p>
1557 </dd>
1558 </li>
1559 <dt><strong><a name="item_freeware">freeware</a></strong>
1561 <dd>
1562 <p>Historically, any software that you give away, particularly if you
1563 make the source code available as well. Now often called <a href="#item_open_source_software"><code>open
1564 source software</code></a>. Recently there has been a trend to use the term in
1565 contradistinction to <a href="#item_open_source_software">open source software</a>, to refer only to free
1566 software released under the Free Software Foundation's GPL (General
1567 Public License), but this is difficult to justify etymologically.</p>
1568 </dd>
1569 </li>
1570 <dt><strong><a name="item_function">function</a></strong>
1572 <dd>
1573 <p>Mathematically, a mapping of each of a set of input values to a
1574 particular output value. In computers, refers to a <a href="#item_subroutine">subroutine</a> or
1575 <a href="#item_operator">operator</a> that returns a <a href="#item_value">value</a>. It may or may not have input
1576 values (called <a href="#item_argument">arguments</a>).</p>
1577 </dd>
1578 </li>
1579 <dt><strong><a name="item_funny_character">funny character</a></strong>
1581 <dd>
1582 <p>Someone like Larry, or one of his peculiar friends. Also refers to
1583 the strange prefixes that Perl requires as noun markers on its
1584 variables.</p>
1585 </dd>
1586 </li>
1587 <dt><strong><a name="item_garbage_collection">garbage collection</a></strong>
1589 <dd>
1590 <p>A misnamed feature--it should be called, ``expecting your mother to
1591 pick up after you''. Strictly speaking, Perl doesn't do this, but it
1592 relies on a reference-counting mechanism to keep things tidy.
1593 However, we rarely speak strictly and will often refer to the
1594 reference-counting scheme as a form of garbage collection. (If it's
1595 any comfort, when your interpreter exits, a ``real'' garbage collector
1596 runs to make sure everything is cleaned up if you've been messy with
1597 circular references and such.)</p>
1598 </dd>
1599 </li>
1600 </dl>
1602 </p>
1603 <h2><a name="g">G</a></h2>
1604 <dl>
1605 <dt><strong><a name="item_gid">GID</a></strong>
1607 <dd>
1608 <p>Group ID--in Unix, the numeric group ID that the <a href="#item_operating_system">operating system</a>
1609 uses to identify you and members of your <a href="#item_group">group</a>.</p>
1610 </dd>
1611 </li>
1612 <dt><strong><a name="item_glob">glob</a></strong>
1614 <dd>
1615 <p>Strictly, the shell's <code>*</code> character, which will match a ``glob'' of
1616 characters when you're trying to generate a list of filenames.
1617 Loosely, the act of using globs and similar symbols to do pattern
1618 matching. See also <a href="#item_fileglob">fileglob</a> and <a href="#item_typeglob">typeglob</a>.</p>
1619 </dd>
1620 </li>
1621 <dt><strong><a name="item_global">global</a></strong>
1623 <dd>
1624 <p>Something you can see from anywhere, usually used of
1625 <a href="#item_variable">variables</a> and <a href="#item_subroutine">subroutines</a> that are visible
1626 everywhere in your program. In Perl, only certain special variables
1627 are truly global--most variables (and all subroutines) exist only in
1628 the current <a href="#item_package">package</a>. Global variables can be declared with
1629 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_our">our</a>. See <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_our">our in the perlfunc manpage</a>.</p>
1630 </dd>
1631 </li>
1632 <dt><strong><a name="item_global_destruction">global destruction</a></strong>
1634 <dd>
1635 <p>The <a href="#item_garbage_collection">garbage collection</a> of globals (and the running of any
1636 associated object destructors) that takes place when a Perl
1637 <a href="#item_interpreter">interpreter</a> is being shut down. Global destruction should not be
1638 confused with the Apocalypse, except perhaps when it should.</p>
1639 </dd>
1640 </li>
1641 <dt><strong><a name="item_glue_language">glue language</a></strong>
1643 <dd>
1644 <p>A language such as Perl that is good at hooking things together that
1645 weren't intended to be hooked together.</p>
1646 </dd>
1647 </li>
1648 <dt><strong><a name="item_granularity">granularity</a></strong>
1650 <dd>
1651 <p>The size of the pieces you're dealing with, mentally speaking.</p>
1652 </dd>
1653 </li>
1654 <dt><strong><a name="item_greedy">greedy</a></strong>
1656 <dd>
1657 <p>A <a href="#item_subpattern">subpattern</a> whose <a href="#item_quantifier">quantifier</a> wants to match as many things as
1658 possible.</p>
1659 </dd>
1660 </li>
1661 <dt><strong><a name="item_grep">grep</a></strong>
1663 <dd>
1664 <p>Originally from the old Unix editor command for ``Globally search for a
1665 Regular Expression and Print it'', now used in the general sense of any
1666 kind of search, especially text searches. Perl has a built-in
1667 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_grep">grep</a> function that searches a list for elements
1668 matching any given criterion, whereas the <em>grep</em>(1) program searches
1669 for lines matching a <a href="#item_regular_expression">regular expression</a> in one or more files.</p>
1670 </dd>
1671 </li>
1672 <dt><strong><a name="item_group">group</a></strong>
1674 <dd>
1675 <p>A set of users of which you are a member. In some operating systems
1676 (like Unix), you can give certain file access permissions to other
1677 members of your group.</p>
1678 </dd>
1679 </li>
1680 <dt><strong><a name="item_gv">GV</a></strong>
1682 <dd>
1683 <p>An internal ``glob value'' typedef, holding a <a href="#item_typeglob">typeglob</a>. The <a href="#item_gv">GV</a>
1684 type is a subclass of <a href="#item_sv">SV</a>.</p>
1685 </dd>
1686 </li>
1687 </dl>
1689 </p>
1690 <h2><a name="h">H</a></h2>
1691 <dl>
1692 <dt><strong><a name="item_hacker">hacker</a></strong>
1694 <dd>
1695 <p>Someone who is brilliantly persistent in solving technical problems,
1696 whether these involve golfing, fighting orcs, or programming. Hacker
1697 is a neutral term, morally speaking. Good hackers are not to be
1698 confused with evil <a href="#item_cracker">crackers</a> or clueless <a href="#item_script_kiddie">script kiddies</a>. If you confuse them, we will presume that
1699 you are either evil or clueless.</p>
1700 </dd>
1701 </li>
1702 <dt><strong><a name="item_handler">handler</a></strong>
1704 <dd>
1705 <p>A <a href="#item_subroutine">subroutine</a> or <a href="#item_method">method</a> that is called by Perl when your
1706 program needs to respond to some internal event, such as a <a href="#item_signal">signal</a>,
1707 or an encounter with an operator subject to <a href="#item_operator_overloading">operator overloading</a>.
1708 See also <a href="#item_callback">callback</a>.</p>
1709 </dd>
1710 </li>
1711 <dt><strong><a name="item_hard_reference">hard reference</a></strong>
1713 <dd>
1714 <p>A <a href="#item_scalar">scalar</a> <a href="#item_value">value</a> containing the actual address of a
1715 <a href="#item_referent">referent</a>, such that the referent's <a href="#item_reference">reference</a> count accounts
1716 for it. (Some hard references are held internally, such as the
1717 implicit reference from one of a <a href="#item_typeglob">typeglob</a>'s variable slots to its
1718 corresponding referent.) A hard reference is different from a
1719 <a href="#item_symbolic_reference">symbolic reference</a>.</p>
1720 </dd>
1721 </li>
1722 <dt><strong><a name="item_hash">hash</a></strong>
1724 <dd>
1725 <p>An unordered association of <a href="#item_key">key</a>/<a href="#item_value">value</a> pairs, stored such that
1726 you can easily use a string <a href="#item_key">key</a> to look up its associated data
1727 <a href="#item_value">value</a>. This glossary is like a hash, where the word to be defined
1728 is the key, and the definition is the value. A hash is also sometimes
1729 septisyllabically called an ``associative array'', which is a pretty
1730 good reason for simply calling it a ``hash'' instead.</p>
1731 </dd>
1732 </li>
1733 <dt><strong><a name="item_hash_table">hash table</a></strong>
1735 <dd>
1736 <p>A data structure used internally by Perl for implementing associative
1737 arrays (hashes) efficiently. See also <a href="#item_bucket">bucket</a>.</p>
1738 </dd>
1739 </li>
1740 <dt><strong><a name="item_header_file">header file</a></strong>
1742 <dd>
1743 <p>A file containing certain required definitions that you must include
1744 ``ahead'' of the rest of your program to do certain obscure operations.
1745 A C header file has a <em>.h</em> extension. Perl doesn't really have
1746 header files, though historically Perl has sometimes used translated
1747 <em>.h</em> files with a <em>.ph</em> extension. See <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_require">require in the perlfunc manpage</a>.
1748 (Header files have been superseded by the <a href="#item_module">module</a> mechanism.)</p>
1749 </dd>
1750 </li>
1751 <dt><strong><a name="item_here_document">here document</a></strong>
1753 <dd>
1754 <p>So called because of a similar construct in <a href="#item_shell">shells</a> that
1755 pretends that the <a href="#item_line">lines</a> following the <a href="#item_command">command</a> are a
1756 separate <a href="#item_file">file</a> to be fed to the command, up to some terminating
1757 string. In Perl, however, it's just a fancy form of quoting.</p>
1758 </dd>
1759 </li>
1760 <dt><strong><a name="item_hexadecimal">hexadecimal</a></strong>
1762 <dd>
1763 <p>A number in base 16, ``hex'' for short. The digits for 10 through 16
1764 are customarily represented by the letters <code>a</code> through <a href="file://C|\msysgit\mingw\html/pod/perlguts.html#item_f"><code>f</code></a>.
1765 Hexadecimal constants in Perl start with <code>0x</code>. See also
1766 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_hex">hex in the perlfunc manpage</a>.</p>
1767 </dd>
1768 </li>
1769 <dt><strong><a name="item_home_directory">home directory</a></strong>
1771 <dd>
1772 <p>The directory you are put into when you log in. On a Unix system, the
1773 name is often placed into <code>$ENV{HOME}</code> or <code>$ENV{LOGDIR}</code> by
1774 <em>login</em>, but you can also find it with <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_getpwuid"><code>(getpwuid($&lt;))[7]</code></a>.
1775 (Some platforms do not have a concept of a home directory.)</p>
1776 </dd>
1777 </li>
1778 <dt><strong><a name="item_host">host</a></strong>
1780 <dd>
1781 <p>The computer on which a program or other data resides.</p>
1782 </dd>
1783 </li>
1784 <dt><strong><a name="item_hubris">hubris</a></strong>
1786 <dd>
1787 <p>Excessive pride, the sort of thing Zeus zaps you for. Also the
1788 quality that makes you write (and maintain) programs that other people
1789 won't want to say bad things about. Hence, the third great virtue of
1790 a programmer. See also <a href="#item_laziness">laziness</a> and <a href="#item_impatience">impatience</a>.</p>
1791 </dd>
1792 </li>
1793 <dt><strong><a name="item_hv">HV</a></strong>
1795 <dd>
1796 <p>Short for a ``hash value'' typedef, which holds Perl's internal
1797 representation of a hash. The <a href="#item_hv">HV</a> type is a subclass of <a href="#item_sv">SV</a>.</p>
1798 </dd>
1799 </li>
1800 </dl>
1802 </p>
1803 <h2><a name="i">I</a></h2>
1804 <dl>
1805 <dt><strong><a name="item_identifier">identifier</a></strong>
1807 <dd>
1808 <p>A legally formed name for most anything in which a computer program
1809 might be interested. Many languages (including Perl) allow
1810 identifiers that start with a letter and contain letters and digits.
1811 Perl also counts the underscore character as a valid letter. (Perl
1812 also has more complicated names, such as <a href="#item_qualified">qualified</a> names.)</p>
1813 </dd>
1814 </li>
1815 <dt><strong><a name="item_impatience">impatience</a></strong>
1817 <dd>
1818 <p>The anger you feel when the computer is being lazy. This makes you
1819 write programs that don't just react to your needs, but actually
1820 anticipate them. Or at least that pretend to. Hence, the second
1821 great virtue of a programmer. See also <a href="#item_laziness">laziness</a> and <a href="#item_hubris">hubris</a>.</p>
1822 </dd>
1823 </li>
1824 <dt><strong><a name="item_implementation">implementation</a></strong>
1826 <dd>
1827 <p>How a piece of code actually goes about doing its job. Users of the
1828 code should not count on implementation details staying the same
1829 unless they are part of the published <a href="#item_interface">interface</a>.</p>
1830 </dd>
1831 </li>
1832 <dt><strong><a name="item_import">import</a></strong>
1834 <dd>
1835 <p>To gain access to symbols that are exported from another module. See
1836 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_use">use in the perlfunc manpage</a>.</p>
1837 </dd>
1838 </li>
1839 <dt><strong><a name="item_increment">increment</a></strong>
1841 <dd>
1842 <p>To increase the value of something by 1 (or by some other number, if
1843 so specified).</p>
1844 </dd>
1845 </li>
1846 <dt><strong><a name="item_indexing">indexing</a></strong>
1848 <dd>
1849 <p>In olden days, the act of looking up a <a href="#item_key">key</a> in an actual index
1850 (such as a phone book), but now merely the act of using any kind of
1851 key or position to find the corresponding <a href="#item_value">value</a>, even if no index
1852 is involved. Things have degenerated to the point that Perl's
1853 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_index">index</a> function merely locates the position (index)
1854 of one string in another.</p>
1855 </dd>
1856 </li>
1857 <dt><strong><a name="item_indirect_filehandle">indirect filehandle</a></strong>
1859 <dd>
1860 <p>An <a href="#item_expression">expression</a> that evaluates to something that can be used as a
1861 <a href="#item_filehandle">filehandle</a>: a <a href="#item_string">string</a> (filehandle name), a <a href="#item_typeglob">typeglob</a>, a
1862 typeglob <a href="#item_reference">reference</a>, or a low-level <a href="#item_io">IO</a> object.</p>
1863 </dd>
1864 </li>
1865 <dt><strong><a name="item_indirect_object">indirect object</a></strong>
1867 <dd>
1868 <p>In English grammar, a short noun phrase between a verb and its direct
1869 object indicating the beneficiary or recipient of the action. In
1870 Perl, <code>print STDOUT &quot;$foo\n&quot;;</code> can be understood as ``verb
1871 indirect-object object'' where <a href="#item_stdout">STDOUT</a> is the recipient of the
1872 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_print">print</a> action, and <code>&quot;$foo&quot;</code> is the object being
1873 printed. Similarly, when invoking a <a href="#item_method">method</a>, you might place the
1874 invocant between the method and its arguments:</p>
1875 </dd>
1876 <dd>
1877 <pre>
1878 $gollum = new Pathetic::Creature &quot;Smeagol&quot;;
1879 give $gollum &quot;Fisssssh!&quot;;
1880 give $gollum &quot;Precious!&quot;;</pre>
1881 </dd>
1882 </li>
1883 <dt><strong><a name="item_indirect_object_slot">indirect object slot</a></strong>
1885 <dd>
1886 <p>The syntactic position falling between a method call and its arguments
1887 when using the indirect object invocation syntax. (The slot is
1888 distinguished by the absence of a comma between it and the next
1889 argument.) <a href="#item_stderr">STDERR</a> is in the indirect object slot here:</p>
1890 </dd>
1891 <dd>
1892 <pre>
1893 print STDERR &quot;Awake! Awake! Fear, Fire,
1894 Foes! Awake!\n&quot;;</pre>
1895 </dd>
1896 </li>
1897 <dt><strong><a name="item_indirection">indirection</a></strong>
1899 <dd>
1900 <p>If something in a program isn't the value you're looking for but
1901 indicates where the value is, that's indirection. This can be done
1902 with either <a href="#item_symbolic_reference">symbolic references</a> or <a href="#item_hard_reference">hard references</a>.</p>
1903 </dd>
1904 </li>
1905 <dt><strong><a name="item_infix">infix</a></strong>
1907 <dd>
1908 <p>An <a href="#item_operator">operator</a> that comes in between its <a href="#item_operand">operands</a>, such
1909 as multiplication in <code>24 * 7</code>.</p>
1910 </dd>
1911 </li>
1912 <dt><strong><a name="item_inheritance">inheritance</a></strong>
1914 <dd>
1915 <p>What you get from your ancestors, genetically or otherwise. If you
1916 happen to be a <a href="#item_class">class</a>, your ancestors are called <a href="#item_base_class">base classes</a> and your descendants are called <a href="#item_derived_class">derived classes</a>. See <a href="#item_single_inheritance">single inheritance</a> and <a href="#item_multiple_inheritance">multiple inheritance</a>.</p>
1917 </dd>
1918 </li>
1919 <dt><strong><a name="item_instance">instance</a></strong>
1921 <dd>
1922 <p>Short for ``an instance of a class'', meaning an <a href="#item_object">object</a> of that <a href="#item_class">class</a>.</p>
1923 </dd>
1924 </li>
1925 <dt><strong><a name="item_instance_variable">instance variable</a></strong>
1927 <dd>
1928 <p>An <a href="#item_attribute">attribute</a> of an <a href="#item_object">object</a>; data stored with the particular
1929 object rather than with the class as a whole.</p>
1930 </dd>
1931 </li>
1932 <dt><strong><a name="item_integer">integer</a></strong>
1934 <dd>
1935 <p>A number with no fractional (decimal) part. A counting number, like
1936 1, 2, 3, and so on, but including 0 and the negatives.</p>
1937 </dd>
1938 </li>
1939 <dt><strong><a name="item_interface">interface</a></strong>
1941 <dd>
1942 <p>The services a piece of code promises to provide forever, in contrast to
1943 its <a href="#item_implementation">implementation</a>, which it should feel free to change whenever it
1944 likes.</p>
1945 </dd>
1946 </li>
1947 <dt><strong><a name="item_interpolation">interpolation</a></strong>
1949 <dd>
1950 <p>The insertion of a scalar or list value somewhere in the middle of
1951 another value, such that it appears to have been there all along. In
1952 Perl, variable interpolation happens in double-quoted strings and
1953 patterns, and list interpolation occurs when constructing the list of
1954 values to pass to a list operator or other such construct that takes a
1955 <a href="#item_list">LIST</a>.</p>
1956 </dd>
1957 </li>
1958 <dt><strong><a name="item_interpreter">interpreter</a></strong>
1960 <dd>
1961 <p>Strictly speaking, a program that reads a second program and does what
1962 the second program says directly without turning the program into a
1963 different form first, which is what <a href="#item_compiler">compilers</a> do. Perl
1964 is not an interpreter by this definition, because it contains a kind
1965 of compiler that takes a program and turns it into a more executable
1966 form (<a href="#item_syntax_tree">syntax trees</a>) within the <em>perl</em> process itself,
1967 which the Perl <a href="#item_run_time">run time</a> system then interprets.</p>
1968 </dd>
1969 </li>
1970 <dt><strong><a name="item_invocant">invocant</a></strong>
1972 <dd>
1973 <p>The agent on whose behalf a <a href="#item_method">method</a> is invoked. In a <a href="#item_class">class</a>
1974 method, the invocant is a package name. In an <a href="#item_instance">instance</a> method,
1975 the invocant is an object reference.</p>
1976 </dd>
1977 </li>
1978 <dt><strong><a name="item_invocation">invocation</a></strong>
1980 <dd>
1981 <p>The act of calling up a deity, daemon, program, method, subroutine, or
1982 function to get it do what you think it's supposed to do. We usually
1983 ``call'' subroutines but ``invoke'' methods, since it sounds cooler.</p>
1984 </dd>
1985 </li>
1986 <dt><strong><a name="item_i_2fo">I/O</a></strong>
1988 <dd>
1989 <p>Input from, or output to, a <a href="#item_file">file</a> or <a href="#item_device">device</a>.</p>
1990 </dd>
1991 </li>
1992 <dt><strong><a name="item_io">IO</a></strong>
1994 <dd>
1995 <p>An internal I/O object. Can also mean <a href="#item_indirect_object">indirect object</a>.</p>
1996 </dd>
1997 </li>
1998 <dt><strong><a name="item_ip">IP</a></strong>
2000 <dd>
2001 <p>Internet Protocol, or Intellectual Property.</p>
2002 </dd>
2003 </li>
2004 <dt><strong><a name="item_ipc">IPC</a></strong>
2006 <dd>
2007 <p>Interprocess Communication.</p>
2008 </dd>
2009 </li>
2010 <dt><strong><a name="item_is_2da">is-a</a></strong>
2012 <dd>
2013 <p>A relationship between two <a href="#item_object">objects</a> in which one object is
2014 considered to be a more specific version of the other, generic object:
2015 ``A camel is a mammal.'' Since the generic object really only exists in
2016 a Platonic sense, we usually add a little abstraction to the notion of
2017 objects and think of the relationship as being between a generic
2018 <a href="#item_base_class">base class</a> and a specific <a href="#item_derived_class">derived class</a>. Oddly enough,
2019 Platonic classes don't always have Platonic relationships--see
2020 <a href="#item_inheritance">inheritance</a>.</p>
2021 </dd>
2022 </li>
2023 <dt><strong><a name="item_iteration">iteration</a></strong>
2025 <dd>
2026 <p>Doing something repeatedly.</p>
2027 </dd>
2028 </li>
2029 <dt><strong><a name="item_iterator">iterator</a></strong>
2031 <dd>
2032 <p>A special programming gizmo that keeps track of where you are in
2033 something that you're trying to iterate over. The <code>foreach</code> loop in
2034 Perl contains an iterator; so does a hash, allowing you to
2035 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#each">each</a> through it.</p>
2036 </dd>
2037 </li>
2038 <dt><strong><a name="item_iv">IV</a></strong>
2040 <dd>
2041 <p>The integer four, not to be confused with six, Tom's favorite editor.
2042 IV also means an internal Integer Value of the type a <a href="#item_scalar">scalar</a> can
2043 hold, not to be confused with an <a href="#item_nv">NV</a>.</p>
2044 </dd>
2045 </li>
2046 </dl>
2048 </p>
2049 <h2><a name="j">J</a></h2>
2050 <dl>
2051 <dt><strong><a name="item_japh">JAPH</a></strong>
2053 <dd>
2054 <p>``Just Another Perl Hacker,'' a clever but cryptic bit of Perl code that
2055 when executed, evaluates to that string. Often used to illustrate a
2056 particular Perl feature, and something of an ungoing Obfuscated Perl
2057 Contest seen in Usenix signatures.</p>
2058 </dd>
2059 </li>
2060 </dl>
2062 </p>
2063 <h2><a name="k">K</a></h2>
2064 <dl>
2065 <dt><strong><a name="item_key">key</a></strong>
2067 <dd>
2068 <p>The string index to a <a href="#item_hash">hash</a>, used to look up the <a href="#item_value">value</a>
2069 associated with that key.</p>
2070 </dd>
2071 </li>
2072 <dt><strong><a name="item_keyword">keyword</a></strong>
2074 <dd>
2075 <p>See <a href="#item_reserved_words">reserved words</a>.</p>
2076 </dd>
2077 </li>
2078 </dl>
2080 </p>
2081 <h2><a name="l">L</a></h2>
2082 <dl>
2083 <dt><strong><a name="item_label">label</a></strong>
2085 <dd>
2086 <p>A name you give to a <a href="#item_statement">statement</a> so that you can talk about that
2087 statement elsewhere in the program.</p>
2088 </dd>
2089 </li>
2090 <dt><strong><a name="item_laziness">laziness</a></strong>
2092 <dd>
2093 <p>The quality that makes you go to great effort to reduce overall energy
2094 expenditure. It makes you write labor-saving programs that other
2095 people will find useful, and document what you wrote so you don't have
2096 to answer so many questions about it. Hence, the first great virtue
2097 of a programmer. Also hence, this book. See also <a href="#item_impatience">impatience</a> and
2098 <a href="#item_hubris">hubris</a>.</p>
2099 </dd>
2100 </li>
2101 <dt><strong><a name="item_left_shift">left shift</a></strong>
2103 <dd>
2104 <p>A <a href="#item_bit_shift">bit shift</a> that multiplies the number by some power of 2.</p>
2105 </dd>
2106 </li>
2107 <dt><strong><a name="item_leftmost_longest">leftmost longest</a></strong>
2109 <dd>
2110 <p>The preference of the <a href="#item_regular_expression">regular expression</a> engine to match the
2111 leftmost occurrence of a <a href="#item_pattern">pattern</a>, then given a position at which a
2112 match will occur, the preference for the longest match (presuming the
2113 use of a <a href="#item_greedy">greedy</a> quantifier). See <a href="file://C|\msysgit\mingw\html/pod/perlre.html">the perlre manpage</a> for <em>much</em> more on
2114 this subject.</p>
2115 </dd>
2116 </li>
2117 <dt><strong><a name="item_lexeme">lexeme</a></strong>
2119 <dd>
2120 <p>Fancy term for a <a href="#item_token">token</a>.</p>
2121 </dd>
2122 </li>
2123 <dt><strong><a name="item_lexer">lexer</a></strong>
2125 <dd>
2126 <p>Fancy term for a <a href="#item_tokener">tokener</a>.</p>
2127 </dd>
2128 </li>
2129 <dt><strong><a name="item_lexical_analysis">lexical analysis</a></strong>
2131 <dd>
2132 <p>Fancy term for <a href="#item_tokenizing">tokenizing</a>.</p>
2133 </dd>
2134 </li>
2135 <dt><strong><a name="item_lexical_scoping">lexical scoping</a></strong>
2137 <dd>
2138 <p>Looking at your <em>Oxford English Dictionary</em> through a microscope.
2139 (Also known as <a href="#item_static_scoping">static scoping</a>, because dictionaries don't change
2140 very fast.) Similarly, looking at variables stored in a private
2141 dictionary (namespace) for each scope, which are visible only from
2142 their point of declaration down to the end of the lexical scope in
2143 which they are declared. --Syn. <a href="#item_static_scoping">static scoping</a>.
2144 --Ant. <a href="#item_dynamic_scoping">dynamic scoping</a>.</p>
2145 </dd>
2146 </li>
2147 <dt><strong><a name="item_lexical_variable">lexical variable</a></strong>
2149 <dd>
2150 <p>A <a href="#item_variable">variable</a> subject to <a href="#item_lexical_scoping">lexical scoping</a>, declared by
2151 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_my">my</a>. Often just called a ``lexical''. (The
2152 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_our">our</a> declaration declares a lexically scoped name for a
2153 global variable, which is not itself a lexical variable.)</p>
2154 </dd>
2155 </li>
2156 <dt><strong><a name="item_library">library</a></strong>
2158 <dd>
2159 <p>Generally, a collection of procedures. In ancient days, referred to a
2160 collection of subroutines in a <em>.pl</em> file. In modern times, refers
2161 more often to the entire collection of Perl <a href="#item_module">modules</a> on your
2162 system.</p>
2163 </dd>
2164 </li>
2165 <dt><strong><a name="item_lifo">LIFO</a></strong>
2167 <dd>
2168 <p>Last In, First Out. See also <a href="#item_fifo">FIFO</a>. A LIFO is usually called a
2169 <a href="#item_stack">stack</a>.</p>
2170 </dd>
2171 </li>
2172 <dt><strong><a name="item_line">line</a></strong>
2174 <dd>
2175 <p>In Unix, a sequence of zero or more non-newline characters terminated
2176 with a <a href="#item_newline">newline</a> character. On non-Unix machines, this is emulated
2177 by the C library even if the underlying <a href="#item_operating_system">operating system</a> has
2178 different ideas.</p>
2179 </dd>
2180 </li>
2181 <dt><strong><a name="item_line_buffering">line buffering</a></strong>
2183 <dd>
2184 <p>Used by a <a href="#standard_ie_sol_o">standard I&sol;O</a> output stream that flushes its
2185 <a href="#item_buffer">buffer</a> after every <a href="#item_newline">newline</a>. Many standard I/O libraries
2186 automatically set up line buffering on output that is going to the
2187 terminal.</p>
2188 </dd>
2189 </li>
2190 <dt><strong><a name="item_line_number">line number</a></strong>
2192 <dd>
2193 <p>The number of lines read previous to this one, plus 1. Perl keeps a
2194 separate line number for each source or input file it opens. The
2195 current source file's line number is represented by <code>__LINE__</code>. The
2196 current input line number (for the file that was most recently read
2197 via <code>&lt;FH&gt;</code>) is represented by the <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$.</code></a>
2198 (<a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__input_line_number"><code>$INPUT_LINE_NUMBER</code></a>) variable. Many error messages report both
2199 values, if available.</p>
2200 </dd>
2201 </li>
2202 <dt><strong><a name="item_link">link</a></strong>
2204 <dd>
2205 <p>Used as a noun, a name in a <a href="#item_directory">directory</a>, representing a <a href="#item_file">file</a>. A
2206 given file can have multiple links to it. It's like having the same
2207 phone number listed in the phone directory under different names. As
2208 a verb, to resolve a partially compiled file's unresolved symbols into
2209 a (nearly) executable image. Linking can generally be static or
2210 dynamic, which has nothing to do with static or dynamic scoping.</p>
2211 </dd>
2212 </li>
2213 <dt><strong><a name="item_list">LIST</a></strong>
2215 <dd>
2216 <p>A syntactic construct representing a comma-separated list of
2217 expressions, evaluated to produce a <a href="#item_list_value">list value</a>. Each
2218 <a href="#item_expression">expression</a> in a <a href="#item_list">LIST</a> is evaluated in <a href="#item_list_context">list context</a> and
2219 interpolated into the list value.</p>
2220 </dd>
2221 </li>
2222 <dt><strong><a name="item_list">list</a></strong>
2224 <dd>
2225 <p>An ordered set of scalar values.</p>
2226 </dd>
2227 </li>
2228 <dt><strong><a name="item_list_context">list context</a></strong>
2230 <dd>
2231 <p>The situation in which an <a href="#item_expression">expression</a> is expected by its
2232 surroundings (the code calling it) to return a list of values rather
2233 than a single value. Functions that want a <a href="#item_list">LIST</a> of arguments tell
2234 those arguments that they should produce a list value. See also
2235 <a href="#item_context">context</a>.</p>
2236 </dd>
2237 </li>
2238 <dt><strong><a name="item_list_operator">list operator</a></strong>
2240 <dd>
2241 <p>An <a href="#item_operator">operator</a> that does something with a list of values, such as
2242 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#join">join</a> or <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_grep">grep</a>. Usually used for
2243 named built-in operators (such as <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_print">print</a>,
2244 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_unlink">unlink</a>, and <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_system">system</a>) that do not
2245 require parentheses around their <a href="#item_argument">argument</a> list.</p>
2246 </dd>
2247 </li>
2248 <dt><strong><a name="item_list_value">list value</a></strong>
2250 <dd>
2251 <p>An unnamed list of temporary scalar values that may be passed around
2252 within a program from any list-generating function to any function or
2253 construct that provides a <a href="#item_list_context">list context</a>.</p>
2254 </dd>
2255 </li>
2256 <dt><strong><a name="item_literal">literal</a></strong>
2258 <dd>
2259 <p>A token in a programming language such as a number or <a href="#item_string">string</a> that
2260 gives you an actual <a href="#item_value">value</a> instead of merely representing possible
2261 values as a <a href="#item_variable">variable</a> does.</p>
2262 </dd>
2263 </li>
2264 <dt><strong><a name="item_little_2dendian">little-endian</a></strong>
2266 <dd>
2267 <p>From Swift: someone who eats eggs little end first. Also used of
2268 computers that store the least significant <a href="#item_byte">byte</a> of a word at a
2269 lower byte address than the most significant byte. Often considered
2270 superior to big-endian machines. See also <a href="#item_big_2dendian">big-endian</a>.</p>
2271 </dd>
2272 </li>
2273 <dt><strong><a name="item_local">local</a></strong>
2275 <dd>
2276 <p>Not meaning the same thing everywhere. A global variable in Perl can
2277 be localized inside a <a href="#item_dynamic_scoping">dynamic scope</a> via the
2278 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#local">local</a> operator.</p>
2279 </dd>
2280 </li>
2281 <dt><strong><a name="item_logical_operator">logical operator</a></strong>
2283 <dd>
2284 <p>Symbols representing the concepts ``and'', ``or'', ``xor'', and ``not''.</p>
2285 </dd>
2286 </li>
2287 <dt><strong><a name="item_lookahead">lookahead</a></strong>
2289 <dd>
2290 <p>An <a href="#item_assertion">assertion</a> that peeks at the string to the right of the current
2291 match location.</p>
2292 </dd>
2293 </li>
2294 <dt><strong><a name="item_lookbehind">lookbehind</a></strong>
2296 <dd>
2297 <p>An <a href="#item_assertion">assertion</a> that peeks at the string to the left of the current
2298 match location.</p>
2299 </dd>
2300 </li>
2301 <dt><strong><a name="item_loop">loop</a></strong>
2303 <dd>
2304 <p>A construct that performs something repeatedly, like a roller coaster.</p>
2305 </dd>
2306 </li>
2307 <dt><strong><a name="item_loop_control_statement">loop control statement</a></strong>
2309 <dd>
2310 <p>Any statement within the body of a loop that can make a loop
2311 prematurely stop looping or skip an <a href="#item_iteration">iteration</a>. Generally you
2312 shouldn't try this on roller coasters.</p>
2313 </dd>
2314 </li>
2315 <dt><strong><a name="item_loop_label">loop label</a></strong>
2317 <dd>
2318 <p>A kind of key or name attached to a loop (or roller coaster) so that
2319 loop control statements can talk about which loop they want to
2320 control.</p>
2321 </dd>
2322 </li>
2323 <dt><strong><a name="item_lvaluable">lvaluable</a></strong>
2325 <dd>
2326 <p>Able to serve as an <a href="#item_lvalue">lvalue</a>.</p>
2327 </dd>
2328 </li>
2329 <dt><strong><a name="item_lvalue">lvalue</a></strong>
2331 <dd>
2332 <p>Term used by language lawyers for a storage location you can assign a
2333 new <a href="#item_value">value</a> to, such as a <a href="#item_variable">variable</a> or an element of an
2334 <a href="#item_array">array</a>. The ``l'' is short for ``left'', as in the left side of an
2335 assignment, a typical place for lvalues. An <a href="#item_lvaluable">lvaluable</a> function or
2336 expression is one to which a value may be assigned, as in <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_pos"><code>pos($x) =
2337 10</code></a>.</p>
2338 </dd>
2339 </li>
2340 <dt><strong><a name="item_lvalue_modifier">lvalue modifier</a></strong>
2342 <dd>
2343 <p>An adjectival pseudofunction that warps the meaning of an <a href="#item_lvalue">lvalue</a>
2344 in some declarative fashion. Currently there are three lvalue
2345 modifiers: <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_my">my</a>, <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_our">our</a>, and
2346 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#local">local</a>.</p>
2347 </dd>
2348 </li>
2349 </dl>
2351 </p>
2352 <h2><a name="m">M</a></h2>
2353 <dl>
2354 <dt><strong><a name="item_magic">magic</a></strong>
2356 <dd>
2357 <p>Technically speaking, any extra semantics attached to a variable such
2358 as <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$!</code></a>, <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__0"><code>$0</code></a>, <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__env"><code>%ENV</code></a>, or <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__sig"><code>%SIG</code></a>, or to any tied variable.
2359 Magical things happen when you diddle those variables.</p>
2360 </dd>
2361 </li>
2362 <dt><strong><a name="item_magical_increment">magical increment</a></strong>
2364 <dd>
2365 <p>An <a href="#item_increment">increment</a> operator that knows how to bump up alphabetics as
2366 well as numbers.</p>
2367 </dd>
2368 </li>
2369 <dt><strong><a name="item_magical_variables">magical variables</a></strong>
2371 <dd>
2372 <p>Special variables that have side effects when you access them or
2373 assign to them. For example, in Perl, changing elements of the
2374 <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__env"><code>%ENV</code></a> array also changes the corresponding environment variables
2375 that subprocesses will use. Reading the <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$!</code></a> variable gives you the
2376 current system error number or message.</p>
2377 </dd>
2378 </li>
2379 <dt><strong><a name="item_makefile">Makefile</a></strong>
2381 <dd>
2382 <p>A file that controls the compilation of a program. Perl programs
2383 don't usually need a <a href="#item_makefile">Makefile</a> because the Perl compiler has plenty
2384 of self-control.</p>
2385 </dd>
2386 </li>
2387 <dt><strong><a name="item_man">man</a></strong>
2389 <dd>
2390 <p>The Unix program that displays online documentation (manual pages) for
2391 you.</p>
2392 </dd>
2393 </li>
2394 <dt><strong><a name="item_manpage">manpage</a></strong>
2396 <dd>
2397 <p>A ``page'' from the manuals, typically accessed via the <em>man</em>(1)
2398 command. A manpage contains a SYNOPSIS, a DESCRIPTION, a list of
2399 BUGS, and so on, and is typically longer than a page. There are
2400 manpages documenting <a href="#item_command">commands</a>, <a href="#item_syscall">syscalls</a>,
2401 <a href="#item_library">library</a> <a href="#item_function">functions</a>, <a href="#item_device">devices</a>,
2402 <a href="#item_protocol">protocols</a>, <a href="#item_file">files</a>, and such. In this book, we
2403 call any piece of standard Perl documentation (like <em>perlop</em> or
2404 <em>perldelta</em>) a manpage, no matter what format it's installed in on
2405 your system.</p>
2406 </dd>
2407 </li>
2408 <dt><strong><a name="item_matching">matching</a></strong>
2410 <dd>
2411 <p>See <a href="#item_pattern_matching">pattern matching</a>.</p>
2412 </dd>
2413 </li>
2414 <dt><strong><a name="item_member_data">member data</a></strong>
2416 <dd>
2417 <p>See <a href="#item_instance_variable">instance variable</a>.</p>
2418 </dd>
2419 </li>
2420 <dt><strong><a name="item_memory">memory</a></strong>
2422 <dd>
2423 <p>This always means your main memory, not your disk. Clouding the issue
2424 is the fact that your machine may implement <a href="#item_virtual">virtual</a> memory; that
2425 is, it will pretend that it has more memory than it really does, and
2426 it'll use disk space to hold inactive bits. This can make it seem
2427 like you have a little more memory than you really do, but it's not a
2428 substitute for real memory. The best thing that can be said about
2429 virtual memory is that it lets your performance degrade gradually
2430 rather than suddenly when you run out of real memory. But your
2431 program can die when you run out of virtual memory too, if you haven't
2432 thrashed your disk to death first.</p>
2433 </dd>
2434 </li>
2435 <dt><strong><a name="item_metacharacter">metacharacter</a></strong>
2437 <dd>
2438 <p>A <a href="#item_character">character</a> that is <em>not</em> supposed to be treated normally. Which
2439 characters are to be treated specially as metacharacters varies
2440 greatly from context to context. Your <a href="#item_shell">shell</a> will have certain
2441 metacharacters, double-quoted Perl <a href="#item_string">strings</a> have other
2442 metacharacters, and <a href="#item_regular_expression">regular expression</a> patterns have all the
2443 double-quote metacharacters plus some extra ones of their own.</p>
2444 </dd>
2445 </li>
2446 <dt><strong><a name="item_metasymbol">metasymbol</a></strong>
2448 <dd>
2449 <p>Something we'd call a <a href="#item_metacharacter">metacharacter</a> except that it's a sequence of
2450 more than one character. Generally, the first character in the
2451 sequence must be a true metacharacter to get the other characters in
2452 the metasymbol to misbehave along with it.</p>
2453 </dd>
2454 </li>
2455 <dt><strong><a name="item_method">method</a></strong>
2457 <dd>
2458 <p>A kind of action that an <a href="#item_object">object</a> can take if you tell it to. See
2459 <a href="file://C|\msysgit\mingw\html/pod/perlobj.html">the perlobj manpage</a>.</p>
2460 </dd>
2461 </li>
2462 <dt><strong><a name="item_minimalism">minimalism</a></strong>
2464 <dd>
2465 <p>The belief that ``small is beautiful.'' Paradoxically, if you say
2466 something in a small language, it turns out big, and if you say it in
2467 a big language, it turns out small. Go figure.</p>
2468 </dd>
2469 </li>
2470 <dt><strong><a name="item_mode">mode</a></strong>
2472 <dd>
2473 <p>In the context of the <a href="file://C|\msysgit\mingw\html/lib/File/stat.html">the stat manpage</a> syscall, refers to the field holding
2474 the <a href="#item_permission_bits">permission bits</a> and the type of the <a href="#item_file">file</a>.</p>
2475 </dd>
2476 </li>
2477 <dt><strong><a name="item_modifier">modifier</a></strong>
2479 <dd>
2480 <p>See <a href="#item_statement_modifier">statement modifier</a>, <a href="#item_regular_expression_modifier">regular expression modifier</a>, and
2481 <a href="#item_lvalue_modifier">lvalue modifier</a>, not necessarily in that order.</p>
2482 </dd>
2483 </li>
2484 <dt><strong><a name="item_module">module</a></strong>
2486 <dd>
2487 <p>A <a href="#item_file">file</a> that defines a <a href="#item_package">package</a> of (almost) the same name, which
2488 can either <a href="#item_export">export</a> symbols or function as an <a href="#item_object">object</a> class. (A
2489 module's main <em>.pm</em> file may also load in other files in support of
2490 the module.) See the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_use">use</a> built-in.</p>
2491 </dd>
2492 </li>
2493 <dt><strong><a name="item_modulus">modulus</a></strong>
2495 <dd>
2496 <p>An integer divisor when you're interested in the remainder instead of
2497 the quotient.</p>
2498 </dd>
2499 </li>
2500 <dt><strong><a name="item_monger">monger</a></strong>
2502 <dd>
2503 <p>Short for Perl Monger, a purveyor of Perl.</p>
2504 </dd>
2505 </li>
2506 <dt><strong><a name="item_mortal">mortal</a></strong>
2508 <dd>
2509 <p>A temporary value scheduled to die when the current statement
2510 finishes.</p>
2511 </dd>
2512 </li>
2513 <dt><strong><a name="item_multidimensional_array">multidimensional array</a></strong>
2515 <dd>
2516 <p>An array with multiple subscripts for finding a single element. Perl
2517 implements these using <a href="#item_reference">references</a>--see <a href="file://C|\msysgit\mingw\html/pod/perllol.html">the perllol manpage</a> and
2518 <a href="file://C|\msysgit\mingw\html/pod/perldsc.html">the perldsc manpage</a>.</p>
2519 </dd>
2520 </li>
2521 <dt><strong><a name="item_multiple_inheritance">multiple inheritance</a></strong>
2523 <dd>
2524 <p>The features you got from your mother and father, mixed together
2525 unpredictably. (See also <a href="#item_inheritance">inheritance</a>, and <a href="#item_single_inheritance">single inheritance</a>.) In computer languages (including Perl), the notion
2526 that a given class may have multiple direct ancestors or <a href="#item_base_class">base classes</a>.</p>
2527 </dd>
2528 </li>
2529 </dl>
2531 </p>
2532 <h2><a name="n">N</a></h2>
2533 <dl>
2534 <dt><strong><a name="item_named_pipe">named pipe</a></strong>
2536 <dd>
2537 <p>A <a href="#item_pipe">pipe</a> with a name embedded in the <a href="#item_filesystem">filesystem</a> so that it can
2538 be accessed by two unrelated <a href="#item_process">processes</a>.</p>
2539 </dd>
2540 </li>
2541 <dt><strong><a name="item_namespace">namespace</a></strong>
2543 <dd>
2544 <p>A domain of names. You needn't worry about whether the names in one
2545 such domain have been used in another. See <a href="#item_package">package</a>.</p>
2546 </dd>
2547 </li>
2548 <dt><strong><a name="item_network_address">network address</a></strong>
2550 <dd>
2551 <p>The most important attribute of a socket, like your telephone's
2552 telephone number. Typically an IP address. See also <a href="#item_port">port</a>.</p>
2553 </dd>
2554 </li>
2555 <dt><strong><a name="item_newline">newline</a></strong>
2557 <dd>
2558 <p>A single character that represents the end of a line, with the ASCII
2559 value of 012 octal under Unix (but 015 on a Mac), and represented by
2560 <code>\n</code> in Perl strings. For Windows machines writing text files, and
2561 for certain physical devices like terminals, the single newline gets
2562 automatically translated by your C library into a line feed and a
2563 carriage return, but normally, no translation is done.</p>
2564 </dd>
2565 </li>
2566 <dt><strong><a name="item_nfs">NFS</a></strong>
2568 <dd>
2569 <p>Network File System, which allows you to mount a remote filesystem as
2570 if it were local.</p>
2571 </dd>
2572 </li>
2573 <dt><strong><a name="item_null_character">null character</a></strong>
2575 <dd>
2576 <p>A character with the ASCII value of zero. It's used by C to terminate
2577 strings, but Perl allows strings to contain a null.</p>
2578 </dd>
2579 </li>
2580 <dt><strong><a name="item_null_list">null list</a></strong>
2582 <dd>
2583 <p>A <a href="#item_list_value">list value</a> with zero elements, represented in Perl by <code>()</code>.</p>
2584 </dd>
2585 </li>
2586 <dt><strong><a name="item_null_string">null string</a></strong>
2588 <dd>
2589 <p>A <a href="#item_string">string</a> containing no characters, not to be confused with a
2590 string containing a <a href="#item_null_character">null character</a>, which has a positive length
2591 and is <a href="#item_true">true</a>.</p>
2592 </dd>
2593 </li>
2594 <dt><strong><a name="item_numeric_context">numeric context</a></strong>
2596 <dd>
2597 <p>The situation in which an expression is expected by its surroundings
2598 (the code calling it) to return a number. See also <a href="#item_context">context</a> and
2599 <a href="#item_string_context">string context</a>.</p>
2600 </dd>
2601 </li>
2602 <dt><strong><a name="item_nv">NV</a></strong>
2604 <dd>
2605 <p>Short for Nevada, no part of which will ever be confused with
2606 civilization. NV also means an internal floating-point Numeric Value
2607 of the type a <a href="#item_scalar">scalar</a> can hold, not to be confused with an <a href="#item_iv">IV</a>.</p>
2608 </dd>
2609 </li>
2610 <dt><strong><a name="item_nybble">nybble</a></strong>
2612 <dd>
2613 <p>Half a <a href="#item_byte">byte</a>, equivalent to one <a href="#item_hexadecimal">hexadecimal</a> digit, and worth
2614 four <a href="#item_bit">bits</a>.</p>
2615 </dd>
2616 </li>
2617 </dl>
2619 </p>
2620 <h2><a name="o">O</a></h2>
2621 <dl>
2622 <dt><strong><a name="item_object">object</a></strong>
2624 <dd>
2625 <p>An <a href="#item_instance">instance</a> of a <a href="#item_class">class</a>. Something that ``knows'' what
2626 user-defined type (class) it is, and what it can do because of what
2627 class it is. Your program can request an object to do things, but the
2628 object gets to decide whether it wants to do them or not. Some
2629 objects are more accommodating than others.</p>
2630 </dd>
2631 </li>
2632 <dt><strong><a name="item_octal">octal</a></strong>
2634 <dd>
2635 <p>A number in base 8. Only the digits 0 through 7 are allowed. Octal
2636 constants in Perl start with 0, as in 013. See also the
2637 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_oct">oct</a> function.</p>
2638 </dd>
2639 </li>
2640 <dt><strong><a name="item_offset">offset</a></strong>
2642 <dd>
2643 <p>How many things you have to skip over when moving from the beginning
2644 of a string or array to a specific position within it. Thus, the
2645 minimum offset is zero, not one, because you don't skip anything to
2646 get to the first item.</p>
2647 </dd>
2648 </li>
2649 <dt><strong><a name="item_one_2dliner">one-liner</a></strong>
2651 <dd>
2652 <p>An entire computer program crammed into one line of text.</p>
2653 </dd>
2654 </li>
2655 <dt><strong><a name="item_open_source_software">open source software</a></strong>
2657 <dd>
2658 <p>Programs for which the source code is freely available and freely
2659 redistributable, with no commercial strings attached. For a more
2660 detailed definition, see <a href="http://www.opensource.org/osd.html">http://www.opensource.org/osd.html</a>.</p>
2661 </dd>
2662 </li>
2663 <dt><strong><a name="item_operand">operand</a></strong>
2665 <dd>
2666 <p>An <a href="#item_expression">expression</a> that yields a <a href="#item_value">value</a> that an <a href="#item_operator">operator</a>
2667 operates on. See also <a href="#item_precedence">precedence</a>.</p>
2668 </dd>
2669 </li>
2670 <dt><strong><a name="item_operating_system">operating system</a></strong>
2672 <dd>
2673 <p>A special program that runs on the bare machine and hides the gory
2674 details of managing <a href="#item_process">processes</a> and <a href="#item_device">devices</a>.
2675 Usually used in a looser sense to indicate a particular culture of
2676 programming. The loose sense can be used at varying levels of
2677 specificity. At one extreme, you might say that all versions of Unix
2678 and Unix-lookalikes are the same operating system (upsetting many
2679 people, especially lawyers and other advocates). At the other
2680 extreme, you could say this particular version of this particular
2681 vendor's operating system is different from any other version of this
2682 or any other vendor's operating system. Perl is much more portable
2683 across operating systems than many other languages. See also
2684 <a href="#item_architecture">architecture</a> and <a href="#item_platform">platform</a>.</p>
2685 </dd>
2686 </li>
2687 <dt><strong><a name="item_operator">operator</a></strong>
2689 <dd>
2690 <p>A gizmo that transforms some number of input values to some number of
2691 output values, often built into a language with a special syntax or
2692 symbol. A given operator may have specific expectations about what
2693 <a href="#item_type">types</a> of data you give as its arguments
2694 (<a href="#item_operand">operands</a>) and what type of data you want back from it.</p>
2695 </dd>
2696 </li>
2697 <dt><strong><a name="item_operator_overloading">operator overloading</a></strong>
2699 <dd>
2700 <p>A kind of <a href="#item_overloading">overloading</a> that you can do on built-in
2701 <a href="#item_operator">operators</a> to make them work on <a href="#item_object">objects</a> as if
2702 the objects were ordinary scalar values, but with the actual semantics
2703 supplied by the object class. This is set up with the <a href="file://C|\msysgit\mingw\html/lib/overload.html">the overload manpage</a>
2704 <a href="#item_pragma">pragma</a>.</p>
2705 </dd>
2706 </li>
2707 <dt><strong><a name="item_options">options</a></strong>
2709 <dd>
2710 <p>See either <a href="#item_switch">switches</a> or <a href="#item_regular_expression_modifier">regular expression modifier</a>.</p>
2711 </dd>
2712 </li>
2713 <dt><strong><a name="item_overloading">overloading</a></strong>
2715 <dd>
2716 <p>Giving additional meanings to a symbol or construct. Actually, all
2717 languages do overloading to one extent or another, since people are
2718 good at figuring out things from <a href="#item_context">context</a>.</p>
2719 </dd>
2720 </li>
2721 <dt><strong><a name="item_overriding">overriding</a></strong>
2723 <dd>
2724 <p>Hiding or invalidating some other definition of the same name. (Not
2725 to be confused with <a href="#item_overloading">overloading</a>, which adds definitions that must
2726 be disambiguated some other way.) To confuse the issue further, we use
2727 the word with two overloaded definitions: to describe how you can
2728 define your own <a href="#item_subroutine">subroutine</a> to hide a built-in <a href="#item_function">function</a> of the
2729 same name (see <a href="file://C|\msysgit\mingw\html/pod/perlsub.html#overriding_builtin_functions">Overriding Built-in Functions in the perlsub manpage</a>) and to
2730 describe how you can define a replacement <a href="#item_method">method</a> in a <a href="#item_derived_class">derived class</a> to hide a <a href="#item_base_class">base class</a>'s method of the same name (see
2731 <a href="file://C|\msysgit\mingw\html/pod/perlobj.html">the perlobj manpage</a>).</p>
2732 </dd>
2733 </li>
2734 <dt><strong><a name="item_owner">owner</a></strong>
2736 <dd>
2737 <p>The one user (apart from the superuser) who has absolute control over
2738 a <a href="#item_file">file</a>. A file may also have a <a href="#item_group">group</a> of users who may
2739 exercise joint ownership if the real owner permits it. See
2740 <a href="#item_permission_bits">permission bits</a>.</p>
2741 </dd>
2742 </li>
2743 </dl>
2745 </p>
2746 <h2><a name="p">P</a></h2>
2747 <dl>
2748 <dt><strong><a name="item_package">package</a></strong>
2750 <dd>
2751 <p>A <a href="#item_namespace">namespace</a> for global <a href="#item_variable">variables</a>,
2752 <a href="#item_subroutine">subroutines</a>, and the like, such that they can be kept
2753 separate from like-named <a href="#item_symbol">symbols</a> in other namespaces. In a
2754 sense, only the package is global, since the symbols in the package's
2755 symbol table are only accessible from code compiled outside the
2756 package by naming the package. But in another sense, all package
2757 symbols are also globals--they're just well-organized globals.</p>
2758 </dd>
2759 </li>
2760 <dt><strong><a name="item_pad">pad</a></strong>
2762 <dd>
2763 <p>Short for <a href="#item_scratchpad">scratchpad</a>.</p>
2764 </dd>
2765 </li>
2766 <dt><strong><a name="item_parameter">parameter</a></strong>
2768 <dd>
2769 <p>See <a href="#item_argument">argument</a>.</p>
2770 </dd>
2771 </li>
2772 <dt><strong><a name="item_parent_class">parent class</a></strong>
2774 <dd>
2775 <p>See <a href="#item_base_class">base class</a>.</p>
2776 </dd>
2777 </li>
2778 <dt><strong><a name="item_parse_tree">parse tree</a></strong>
2780 <dd>
2781 <p>See <a href="#item_syntax_tree">syntax tree</a>.</p>
2782 </dd>
2783 </li>
2784 <dt><strong><a name="item_parsing">parsing</a></strong>
2786 <dd>
2787 <p>The subtle but sometimes brutal art of attempting to turn your
2788 possibly malformed program into a valid <a href="#item_syntax_tree">syntax tree</a>.</p>
2789 </dd>
2790 </li>
2791 <dt><strong><a name="item_patch">patch</a></strong>
2793 <dd>
2794 <p>To fix by applying one, as it were. In the realm of hackerdom, a
2795 listing of the differences between two versions of a program as might
2796 be applied by the <em>patch</em>(1) program when you want to fix a bug or
2797 upgrade your old version.</p>
2798 </dd>
2799 </li>
2800 <dt><strong><a name="item_path">PATH</a></strong>
2802 <dd>
2803 <p>The list of <a href="#item_directory">directories</a> the system searches to find a
2804 program you want to <a href="#item_execute">execute</a>. The list is stored as one of your
2805 <a href="#item_environment_variable">environment variables</a>, accessible in Perl as
2806 <code>$ENV{PATH}</code>.</p>
2807 </dd>
2808 </li>
2809 <dt><strong><a name="item_pathname">pathname</a></strong>
2811 <dd>
2812 <p>A fully qualified filename such as <em>/usr/bin/perl</em>. Sometimes
2813 confused with <a href="#item_path">PATH</a>.</p>
2814 </dd>
2815 </li>
2816 <dt><strong><a name="item_pattern">pattern</a></strong>
2818 <dd>
2819 <p>A template used in <a href="#item_pattern_matching">pattern matching</a>.</p>
2820 </dd>
2821 </li>
2822 <dt><strong><a name="item_pattern_matching">pattern matching</a></strong>
2824 <dd>
2825 <p>Taking a pattern, usually a <a href="#item_regular_expression">regular expression</a>, and trying the
2826 pattern various ways on a string to see whether there's any way to
2827 make it fit. Often used to pick interesting tidbits out of a file.</p>
2828 </dd>
2829 </li>
2830 <dt><strong><a name="item_permission_bits">permission bits</a></strong>
2832 <dd>
2833 <p>Bits that the <a href="#item_owner">owner</a> of a file sets or unsets to allow or disallow
2834 access to other people. These flag bits are part of the <a href="#item_mode">mode</a> word
2835 returned by the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_stat">stat</a> built-in when you ask about a
2836 file. On Unix systems, you can check the <em>ls</em>(1) manpage for more
2837 information.</p>
2838 </dd>
2839 </li>
2840 <dt><strong><a name="item_pern">Pern</a></strong>
2842 <dd>
2843 <p>What you get when you do <code>Perl++</code> twice. Doing it only once will
2844 curl your hair. You have to increment it eight times to shampoo your
2845 hair. Lather, rinse, iterate.</p>
2846 </dd>
2847 </li>
2848 <dt><strong><a name="item_pipe">pipe</a></strong>
2850 <dd>
2851 <p>A direct <a href="#item_connection">connection</a> that carries the output of one <a href="#item_process">process</a> to
2852 the input of another without an intermediate temporary file. Once the
2853 pipe is set up, the two processes in question can read and write as if
2854 they were talking to a normal file, with some caveats.</p>
2855 </dd>
2856 </li>
2857 <dt><strong><a name="item_pipeline">pipeline</a></strong>
2859 <dd>
2860 <p>A series of <a href="#item_process">processes</a> all in a row, linked by
2861 <a href="#item_pipe">pipes</a>, where each passes its output stream to the next.</p>
2862 </dd>
2863 </li>
2864 <dt><strong><a name="item_platform">platform</a></strong>
2866 <dd>
2867 <p>The entire hardware and software context in which a program runs. A
2868 program written in a platform-dependent language might break if you
2869 change any of: machine, operating system, libraries, compiler, or
2870 system configuration. The <em>perl</em> interpreter has to be compiled
2871 differently for each platform because it is implemented in C, but
2872 programs written in the Perl language are largely
2873 platform-independent.</p>
2874 </dd>
2875 </li>
2876 <dt><strong><a name="item_pod">pod</a></strong>
2878 <dd>
2879 <p>The markup used to embed documentation into your Perl code. See
2880 <a href="file://C|\msysgit\mingw\html/pod/perlpod.html">the perlpod manpage</a>.</p>
2881 </dd>
2882 </li>
2883 <dt><strong><a name="item_pointer">pointer</a></strong>
2885 <dd>
2886 <p>A <a href="#item_variable">variable</a> in a language like C that contains the exact memory
2887 location of some other item. Perl handles pointers internally so you
2888 don't have to worry about them. Instead, you just use symbolic
2889 pointers in the form of <a href="#item_key">keys</a> and <a href="#item_variable">variable</a> names, or <a href="#item_hard_reference">hard references</a>, which aren't pointers (but act like
2890 pointers and do in fact contain pointers).</p>
2891 </dd>
2892 </li>
2893 <dt><strong><a name="item_polymorphism">polymorphism</a></strong>
2895 <dd>
2896 <p>The notion that you can tell an <a href="#item_object">object</a> to do something generic,
2897 and the object will interpret the command in different ways depending
2898 on its type. [&lt;Gk many shapes]</p>
2899 </dd>
2900 </li>
2901 <dt><strong><a name="item_port">port</a></strong>
2903 <dd>
2904 <p>The part of the address of a TCP or UDP socket that directs packets to
2905 the correct process after finding the right machine, something like
2906 the phone extension you give when you reach the company operator.
2907 Also, the result of converting code to run on a different platform
2908 than originally intended, or the verb denoting this conversion.</p>
2909 </dd>
2910 </li>
2911 <dt><strong><a name="item_portable">portable</a></strong>
2913 <dd>
2914 <p>Once upon a time, C code compilable under both BSD and SysV. In
2915 general, code that can be easily converted to run on another
2916 <a href="#item_platform">platform</a>, where ``easily'' can be defined however you like, and
2917 usually is. Anything may be considered portable if you try hard
2918 enough. See <em>mobile home</em> or <em>London Bridge</em>.</p>
2919 </dd>
2920 </li>
2921 <dt><strong><a name="item_porter">porter</a></strong>
2923 <dd>
2924 <p>Someone who ``carries'' software from one <a href="#item_platform">platform</a> to another.
2925 Porting programs written in platform-dependent languages such as C can
2926 be difficult work, but porting programs like Perl is very much worth
2927 the agony.</p>
2928 </dd>
2929 </li>
2930 <dt><strong><a name="item_posix">POSIX</a></strong>
2932 <dd>
2933 <p>The Portable Operating System Interface specification.</p>
2934 </dd>
2935 </li>
2936 <dt><strong><a name="item_postfix">postfix</a></strong>
2938 <dd>
2939 <p>An <a href="#item_operator">operator</a> that follows its <a href="#item_operand">operand</a>, as in <code>$x++</code>.</p>
2940 </dd>
2941 </li>
2942 <dt><strong><a name="item_pp">pp</a></strong>
2944 <dd>
2945 <p>An internal shorthand for a ``push-pop'' code, that is, C code
2946 implementing Perl's stack machine.</p>
2947 </dd>
2948 </li>
2949 <dt><strong><a name="item_pragma">pragma</a></strong>
2951 <dd>
2952 <p>A standard module whose practical hints and suggestions are received
2953 (and possibly ignored) at compile time. Pragmas are named in all
2954 lowercase.</p>
2955 </dd>
2956 </li>
2957 <dt><strong><a name="item_precedence">precedence</a></strong>
2959 <dd>
2960 <p>The rules of conduct that, in the absence of other guidance, determine
2961 what should happen first. For example, in the absence of parentheses,
2962 you always do multiplication before addition.</p>
2963 </dd>
2964 </li>
2965 <dt><strong><a name="item_prefix">prefix</a></strong>
2967 <dd>
2968 <p>An <a href="#item_operator">operator</a> that precedes its <a href="#item_operand">operand</a>, as in <code>++$x</code>.</p>
2969 </dd>
2970 </li>
2971 <dt><strong><a name="item_preprocessing">preprocessing</a></strong>
2973 <dd>
2974 <p>What some helper <a href="#item_process">process</a> did to transform the incoming data into a
2975 form more suitable for the current process. Often done with an
2976 incoming <a href="#item_pipe">pipe</a>. See also <a href="#item_c_preprocessor">C preprocessor</a>.</p>
2977 </dd>
2978 </li>
2979 <dt><strong><a name="item_procedure">procedure</a></strong>
2981 <dd>
2982 <p>A <a href="#item_subroutine">subroutine</a>.</p>
2983 </dd>
2984 </li>
2985 <dt><strong><a name="item_process">process</a></strong>
2987 <dd>
2988 <p>An instance of a running program. Under multitasking systems like
2989 Unix, two or more separate processes could be running the same program
2990 independently at the same time--in fact, the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#fork">fork</a>
2991 function is designed to bring about this happy state of affairs.
2992 Under other operating systems, processes are sometimes called
2993 ``threads'', ``tasks'', or ``jobs'', often with slight nuances in meaning.</p>
2994 </dd>
2995 </li>
2996 <dt><strong><a name="item_program_generator">program generator</a></strong>
2998 <dd>
2999 <p>A system that algorithmically writes code for you in a high-level
3000 language. See also <a href="#item_code_generator">code generator</a>.</p>
3001 </dd>
3002 </li>
3003 <dt><strong><a name="item_progressive_matching">progressive matching</a></strong>
3005 <dd>
3006 <p><a href="#item_pattern_matching">Pattern matching</a> that picks up where it left off before.</p>
3007 </dd>
3008 </li>
3009 <dt><strong><a name="item_property">property</a></strong>
3011 <dd>
3012 <p>See either <a href="#item_instance_variable">instance variable</a> or <a href="#item_character_property">character property</a>.</p>
3013 </dd>
3014 </li>
3015 <dt><strong><a name="item_protocol">protocol</a></strong>
3017 <dd>
3018 <p>In networking, an agreed-upon way of sending messages back and forth
3019 so that neither correspondent will get too confused.</p>
3020 </dd>
3021 </li>
3022 <dt><strong><a name="item_prototype">prototype</a></strong>
3024 <dd>
3025 <p>An optional part of a <a href="#item_subroutine">subroutine</a> declaration telling the Perl
3026 compiler how many and what flavor of arguments may be passed as
3027 <a href="#item_actual_arguments">actual arguments</a>, so that you can write subroutine calls that
3028 parse much like built-in functions. (Or don't parse, as the case may
3029 be.)</p>
3030 </dd>
3031 </li>
3032 <dt><strong><a name="item_pseudofunction">pseudofunction</a></strong>
3034 <dd>
3035 <p>A construct that sometimes looks like a function but really isn't.
3036 Usually reserved for <a href="#item_lvalue">lvalue</a> modifiers like <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_my">my</a>, for
3037 <a href="#item_context">context</a> modifiers like <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#scalar">scalar</a>, and for the
3038 pick-your-own-quotes constructs, <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_q_"><code>q//</code></a>, <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_qq_"><code>qq//</code></a>, <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_qx_"><code>qx//</code></a>, <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_qw_"><code>qw//</code></a>,
3039 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_qr_"><code>qr//</code></a>, <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_m_"><code>m//</code></a>, <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_s_"><code>s///</code></a>, <a href="file://C|\msysgit\mingw\html/pod/perlop.html#item_y_"><code>y///</code></a>, and <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_tr_"><code>tr///</code></a>.</p>
3040 </dd>
3041 </li>
3042 <dt><strong><a name="item_pseudohash">pseudohash</a></strong>
3044 <dd>
3045 <p>A reference to an array whose initial element happens to hold a
3046 reference to a hash. You can treat a pseudohash reference as either
3047 an array reference or a hash reference.</p>
3048 </dd>
3049 </li>
3050 <dt><strong><a name="item_pseudoliteral">pseudoliteral</a></strong>
3052 <dd>
3053 <p>An <a href="#item_operator">operator</a> that looks something like a <a href="#item_literal">literal</a>, such as the
3054 output-grabbing operator, <code>`</code><em><a href="#item_command"><code>command</code></a></em><code>`</code>.</p>
3055 </dd>
3056 </li>
3057 <dt><strong><a name="item_public_domain">public domain</a></strong>
3059 <dd>
3060 <p>Something not owned by anybody. Perl is copyrighted and is thus
3061 <em>not</em> in the public domain--it's just <a href="#item_freely_available">freely available</a> and
3062 <a href="#item_freely_redistributable">freely redistributable</a>.</p>
3063 </dd>
3064 </li>
3065 <dt><strong><a name="item_pumpkin">pumpkin</a></strong>
3067 <dd>
3068 <p>A notional ``baton'' handed around the Perl community indicating who is
3069 the lead integrator in some arena of development.</p>
3070 </dd>
3071 </li>
3072 <dt><strong><a name="item_pumpking">pumpking</a></strong>
3074 <dd>
3075 <p>A <a href="#item_pumpkin">pumpkin</a> holder, the person in charge of pumping the pump, or at
3076 least priming it. Must be willing to play the part of the Great
3077 Pumpkin now and then.</p>
3078 </dd>
3079 </li>
3080 <dt><strong><a name="item_pv">PV</a></strong>
3082 <dd>
3083 <p>A ``pointer value'', which is Perl Internals Talk for a <code>char*</code>.</p>
3084 </dd>
3085 </li>
3086 </dl>
3088 </p>
3089 <h2><a name="q">Q</a></h2>
3090 <dl>
3091 <dt><strong><a name="item_qualified">qualified</a></strong>
3093 <dd>
3094 <p>Possessing a complete name. The symbol <code>$Ent::moot</code> is qualified;
3095 <code>$moot</code> is unqualified. A fully qualified filename is specified from
3096 the top-level directory.</p>
3097 </dd>
3098 </li>
3099 <dt><strong><a name="item_quantifier">quantifier</a></strong>
3101 <dd>
3102 <p>A component of a <a href="#item_regular_expression">regular expression</a> specifying how many times the
3103 foregoing <a href="#item_atom">atom</a> may occur.</p>
3104 </dd>
3105 </li>
3106 </dl>
3108 </p>
3109 <h2><a name="r">R</a></h2>
3110 <dl>
3111 <dt><strong><a name="item_readable">readable</a></strong>
3113 <dd>
3114 <p>With respect to files, one that has the proper permission bit set to
3115 let you access the file. With respect to computer programs, one
3116 that's written well enough that someone has a chance of figuring out
3117 what it's trying to do.</p>
3118 </dd>
3119 </li>
3120 <dt><strong><a name="item_reaping">reaping</a></strong>
3122 <dd>
3123 <p>The last rites performed by a parent <a href="#item_process">process</a> on behalf of a
3124 deceased child process so that it doesn't remain a <a href="#item_zombie">zombie</a>. See
3125 the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#wait">wait</a> and <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#waitpid">waitpid</a> function
3126 calls.</p>
3127 </dd>
3128 </li>
3129 <dt><strong><a name="item_record">record</a></strong>
3131 <dd>
3132 <p>A set of related data values in a <a href="#item_file">file</a> or <a href="#item_stream">stream</a>, often
3133 associated with a unique <a href="#item_key">key</a> field. In Unix, often commensurate
3134 with a <a href="#item_line">line</a>, or a blank-line-terminated set of lines (a
3135 ``paragraph''). Each line of the <em>/etc/passwd</em> file is a record, keyed
3136 on login name, containing information about that user.</p>
3137 </dd>
3138 </li>
3139 <dt><strong><a name="item_recursion">recursion</a></strong>
3141 <dd>
3142 <p>The art of defining something (at least partly) in terms of itself,
3143 which is a naughty no-no in dictionaries but often works out okay in
3144 computer programs if you're careful not to recurse forever, which is
3145 like an infinite loop with more spectacular failure modes.</p>
3146 </dd>
3147 </li>
3148 <dt><strong><a name="item_reference">reference</a></strong>
3150 <dd>
3151 <p>Where you look to find a pointer to information somewhere else. (See
3152 <a href="#item_indirection">indirection</a>.) References come in two flavors, <a href="#item_symbolic_reference">symbolic references</a> and <a href="#item_hard_reference">hard references</a>.</p>
3153 </dd>
3154 </li>
3155 <dt><strong><a name="item_referent">referent</a></strong>
3157 <dd>
3158 <p>Whatever a reference refers to, which may or may not have a name.
3159 Common types of referents include scalars, arrays, hashes, and
3160 subroutines.</p>
3161 </dd>
3162 </li>
3163 <dt><strong><a name="item_regex">regex</a></strong>
3165 <dd>
3166 <p>See <a href="#item_regular_expression">regular expression</a>.</p>
3167 </dd>
3168 </li>
3169 <dt><strong><a name="item_regular_expression">regular expression</a></strong>
3171 <dd>
3172 <p>A single entity with various interpretations, like an elephant. To a
3173 computer scientist, it's a grammar for a little language in which some
3174 strings are legal and others aren't. To normal people, it's a pattern
3175 you can use to find what you're looking for when it varies from case
3176 to case. Perl's regular expressions are far from regular in the
3177 theoretical sense, but in regular use they work quite well. Here's a
3178 regular expression: <code>/Oh s.*t./</code>. This will match strings like ``<code>Oh
3179 say can you see by the dawn's early light</code>'' and ``<code>Oh sit!</code>''. See
3180 <a href="file://C|\msysgit\mingw\html/pod/perlre.html">the perlre manpage</a>.</p>
3181 </dd>
3182 </li>
3183 <dt><strong><a name="item_regular_expression_modifier">regular expression modifier</a></strong>
3185 <dd>
3186 <p>An option on a pattern or substitution, such as <code>/i</code> to render the
3187 pattern case insensitive. See also <a href="#item_cloister">cloister</a>.</p>
3188 </dd>
3189 </li>
3190 <dt><strong><a name="item_regular_file">regular file</a></strong>
3192 <dd>
3193 <p>A <a href="#item_file">file</a> that's not a <a href="#item_directory">directory</a>, a <a href="#item_device">device</a>, a named <a href="#item_pipe">pipe</a>
3194 or <a href="#item_socket">socket</a>, or a <a href="#item_symbolic_link">symbolic link</a>. Perl uses the <code>-f</code> file test
3195 operator to identify regular files. Sometimes called a ``plain'' file.</p>
3196 </dd>
3197 </li>
3198 <dt><strong><a name="item_relational_operator">relational operator</a></strong>
3200 <dd>
3201 <p>An <a href="#item_operator">operator</a> that says whether a particular ordering relationship
3202 is <a href="#item_true">true</a> about a pair of <a href="#item_operand">operands</a>. Perl has both
3203 numeric and string relational operators. See <a href="#item_collating_sequence">collating sequence</a>.</p>
3204 </dd>
3205 </li>
3206 <dt><strong><a name="item_reserved_words">reserved words</a></strong>
3208 <dd>
3209 <p>A word with a specific, built-in meaning to a <a href="#item_compiler">compiler</a>, such as
3210 <code>if</code> or <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#delete">delete</a>. In many languages (not Perl),
3211 it's illegal to use reserved words to name anything else. (Which is
3212 why they're reserved, after all.) In Perl, you just can't use them to
3213 name <a href="#item_label">labels</a> or <a href="#item_filehandle">filehandles</a>. Also called
3214 ``keywords''.</p>
3215 </dd>
3216 </li>
3217 <dt><strong><a name="item_return_value">return value</a></strong>
3219 <dd>
3220 <p>The <a href="#item_value">value</a> produced by a <a href="#item_subroutine">subroutine</a> or <a href="#item_expression">expression</a> when
3221 evaluated. In Perl, a return value may be either a <a href="#item_list">list</a> or a
3222 <a href="#item_scalar">scalar</a>.</p>
3223 </dd>
3224 </li>
3225 <dt><strong><a name="item_rfc">RFC</a></strong>
3227 <dd>
3228 <p>Request For Comment, which despite the timid connotations is the name
3229 of a series of important standards documents.</p>
3230 </dd>
3231 </li>
3232 <dt><strong><a name="item_right_shift">right shift</a></strong>
3234 <dd>
3235 <p>A <a href="#item_bit_shift">bit shift</a> that divides a number by some power of 2.</p>
3236 </dd>
3237 </li>
3238 <dt><strong><a name="item_root">root</a></strong>
3240 <dd>
3241 <p>The superuser (UID == 0). Also, the top-level directory of the
3242 filesystem.</p>
3243 </dd>
3244 </li>
3245 <dt><strong><a name="item_rtfm">RTFM</a></strong>
3247 <dd>
3248 <p>What you are told when someone thinks you should Read The Fine Manual.</p>
3249 </dd>
3250 </li>
3251 <dt><strong><a name="item_run_phase">run phase</a></strong>
3253 <dd>
3254 <p>Any time after Perl starts running your main program. See also
3255 <a href="#item_compile_phase">compile phase</a>. Run phase is mostly spent in <a href="#item_run_time">run time</a> but may
3256 also be spent in <a href="#item_compile_time">compile time</a> when <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_require">require</a>,
3257 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#do">do</a> <code>FILE</code>, or <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_eval">eval</a> <code>STRING</code>
3258 operators are executed or when a substitution uses the <code>/ee</code>
3259 modifier.</p>
3260 </dd>
3261 </li>
3262 <dt><strong><a name="item_run_time">run time</a></strong>
3264 <dd>
3265 <p>The time when Perl is actually doing what your code says to do, as
3266 opposed to the earlier period of time when it was trying to figure out
3267 whether what you said made any sense whatsoever, which is <a href="#item_compile_time">compile time</a>.</p>
3268 </dd>
3269 </li>
3270 <dt><strong><a name="item_run_2dtime_pattern">run-time pattern</a></strong>
3272 <dd>
3273 <p>A pattern that contains one or more variables to be interpolated
3274 before parsing the pattern as a <a href="#item_regular_expression">regular expression</a>, and that
3275 therefore cannot be analyzed at compile time, but must be re-analyzed
3276 each time the pattern match operator is evaluated. Run-time patterns
3277 are useful but expensive.</p>
3278 </dd>
3279 </li>
3280 <dt><strong><a name="item_rv">RV</a></strong>
3282 <dd>
3283 <p>A recreational vehicle, not to be confused with vehicular recreation.
3284 RV also means an internal Reference Value of the type a <a href="#item_scalar">scalar</a> can
3285 hold. See also <a href="#item_iv">IV</a> and <a href="#item_nv">NV</a> if you're not confused yet.</p>
3286 </dd>
3287 </li>
3288 <dt><strong><a name="item_rvalue">rvalue</a></strong>
3290 <dd>
3291 <p>A <a href="#item_value">value</a> that you might find on the right side of an
3292 <a href="#item_assignment">assignment</a>. See also <a href="#item_lvalue">lvalue</a>.</p>
3293 </dd>
3294 </li>
3295 </dl>
3297 </p>
3298 <h2><a name="s">S</a></h2>
3299 <dl>
3300 <dt><strong><a name="item_scalar">scalar</a></strong>
3302 <dd>
3303 <p>A simple, singular value; a number, <a href="#item_string">string</a>, or <a href="#item_reference">reference</a>.</p>
3304 </dd>
3305 </li>
3306 <dt><strong><a name="item_scalar_context">scalar context</a></strong>
3308 <dd>
3309 <p>The situation in which an <a href="#item_expression">expression</a> is expected by its
3310 surroundings (the code calling it) to return a single <a href="#item_value">value</a> rather
3311 than a <a href="#item_list">list</a> of values. See also <a href="#item_context">context</a> and <a href="#item_list_context">list context</a>.
3312 A scalar context sometimes imposes additional constraints on the
3313 return value--see <a href="#item_string_context">string context</a> and <a href="#item_numeric_context">numeric context</a>.
3314 Sometimes we talk about a <a href="#item_boolean_context">Boolean context</a> inside conditionals, but
3315 this imposes no additional constraints, since any scalar value,
3316 whether numeric or <a href="#item_string">string</a>, is already true or false.</p>
3317 </dd>
3318 </li>
3319 <dt><strong><a name="item_scalar_literal">scalar literal</a></strong>
3321 <dd>
3322 <p>A number or quoted <a href="#item_string">string</a>--an actual <a href="#item_value">value</a> in the text of your
3323 program, as opposed to a <a href="#item_variable">variable</a>.</p>
3324 </dd>
3325 </li>
3326 <dt><strong><a name="item_scalar_value">scalar value</a></strong>
3328 <dd>
3329 <p>A value that happens to be a <a href="#item_scalar">scalar</a> as opposed to a <a href="#item_list">list</a>.</p>
3330 </dd>
3331 </li>
3332 <dt><strong><a name="item_scalar_variable">scalar variable</a></strong>
3334 <dd>
3335 <p>A <a href="#item_variable">variable</a> prefixed with <code>$</code> that holds a single value.</p>
3336 </dd>
3337 </li>
3338 <dt><strong><a name="item_scope">scope</a></strong>
3340 <dd>
3341 <p>How far away you can see a variable from, looking through one. Perl
3342 has two visibility mechanisms: it does <a href="#item_dynamic_scoping">dynamic scoping</a> of
3343 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#local">local</a> <a href="#item_variable">variables</a>, meaning that the rest
3344 of the <a href="#item_block">block</a>, and any <a href="#item_subroutine">subroutines</a> that are called
3345 by the rest of the block, can see the variables that are local to the
3346 block. Perl does <a href="#item_lexical_scoping">lexical scoping</a> of <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_my">my</a> variables,
3347 meaning that the rest of the block can see the variable, but other
3348 subroutines called by the block <em>cannot</em> see the variable.</p>
3349 </dd>
3350 </li>
3351 <dt><strong><a name="item_scratchpad">scratchpad</a></strong>
3353 <dd>
3354 <p>The area in which a particular invocation of a particular file or
3355 subroutine keeps some of its temporary values, including any lexically
3356 scoped variables.</p>
3357 </dd>
3358 </li>
3359 <dt><strong><a name="item_script">script</a></strong>
3361 <dd>
3362 <p>A text <a href="#item_file">file</a> that is a program intended to be <a href="#item_execute">executed</a>
3363 directly rather than <a href="#item_compiler">compiled</a> to another form of file
3364 before execution. Also, in the context of <a href="#item_unicode">Unicode</a>, a writing
3365 system for a particular language or group of languages, such as Greek,
3366 Bengali, or Klingon.</p>
3367 </dd>
3368 </li>
3369 <dt><strong><a name="item_script_kiddie">script kiddie</a></strong>
3371 <dd>
3372 <p>A <a href="#item_cracker">cracker</a> who is not a <a href="#item_hacker">hacker</a>, but knows just enough to run
3373 canned scripts. A cargo-cult programmer.</p>
3374 </dd>
3375 </li>
3376 <dt><strong><a name="item_sed">sed</a></strong>
3378 <dd>
3379 <p>A venerable Stream EDitor from which Perl derives some of its ideas.</p>
3380 </dd>
3381 </li>
3382 <dt><strong><a name="item_semaphore">semaphore</a></strong>
3384 <dd>
3385 <p>A fancy kind of interlock that prevents multiple <a href="#item_thread">threads</a> or
3386 <a href="#item_process">processes</a> from using up the same resources simultaneously.</p>
3387 </dd>
3388 </li>
3389 <dt><strong><a name="item_separator">separator</a></strong>
3391 <dd>
3392 <p>A <a href="#item_character">character</a> or <a href="#item_string">string</a> that keeps two surrounding strings from
3393 being confused with each other. The <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_split">split</a> function
3394 works on separators. Not to be confused with <a href="#item_delimiter">delimiters</a>
3395 or <a href="#item_terminator">terminators</a>. The ``or'' in the previous sentence
3396 separated the two alternatives.</p>
3397 </dd>
3398 </li>
3399 <dt><strong><a name="item_serialization">serialization</a></strong>
3401 <dd>
3402 <p>Putting a fancy <a href="#item_data_structure">data structure</a> into linear order so that it can be
3403 stored as a <a href="#item_string">string</a> in a disk file or database or sent through a
3404 <a href="#item_pipe">pipe</a>. Also called marshalling.</p>
3405 </dd>
3406 </li>
3407 <dt><strong><a name="item_server">server</a></strong>
3409 <dd>
3410 <p>In networking, a <a href="#item_process">process</a> that either advertises a <a href="#item_service">service</a> or
3411 just hangs around at a known location and waits for <a href="#item_client">clients</a>
3412 who need service to get in touch with it.</p>
3413 </dd>
3414 </li>
3415 <dt><strong><a name="item_service">service</a></strong>
3417 <dd>
3418 <p>Something you do for someone else to make them happy, like giving them
3419 the time of day (or of their life). On some machines, well-known
3420 services are listed by the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_getservent">getservent</a> function.</p>
3421 </dd>
3422 </li>
3423 <dt><strong><a name="item_setgid">setgid</a></strong>
3425 <dd>
3426 <p>Same as <a href="#item_setuid">setuid</a>, only having to do with giving away <a href="#item_group">group</a>
3427 privileges.</p>
3428 </dd>
3429 </li>
3430 <dt><strong><a name="item_setuid">setuid</a></strong>
3432 <dd>
3433 <p>Said of a program that runs with the privileges of its <a href="#item_owner">owner</a>
3434 rather than (as is usually the case) the privileges of whoever is
3435 running it. Also describes the bit in the mode word (<a href="#item_permission_bits">permission bits</a>) that controls the feature. This bit must be explicitly set by
3436 the owner to enable this feature, and the program must be carefully
3437 written not to give away more privileges than it ought to.</p>
3438 </dd>
3439 </li>
3440 <dt><strong><a name="item_shared_memory">shared memory</a></strong>
3442 <dd>
3443 <p>A piece of <a href="#item_memory">memory</a> accessible by two different
3444 <a href="#item_process">processes</a> who otherwise would not see each other's memory.</p>
3445 </dd>
3446 </li>
3447 <dt><strong><a name="item_shebang">shebang</a></strong>
3449 <dd>
3450 <p>Irish for the whole McGillicuddy. In Perl culture, a portmanteau of
3451 ``sharp'' and ``bang'', meaning the <code>#!</code> sequence that tells the system
3452 where to find the interpreter.</p>
3453 </dd>
3454 </li>
3455 <dt><strong><a name="item_shell">shell</a></strong>
3457 <dd>
3458 <p>A <a href="#item_command">command</a>-line <a href="#item_interpreter">interpreter</a>. The program that interactively
3459 gives you a prompt, accepts one or more <a href="#item_line">lines</a> of input, and
3460 executes the programs you mentioned, feeding each of them their proper
3461 <a href="#item_argument">arguments</a> and input data. Shells can also execute
3462 scripts containing such commands. Under Unix, typical shells include
3463 the Bourne shell (<em>/bin/sh</em>), the C shell (<em>/bin/csh</em>), and the Korn
3464 shell (<em>/bin/ksh</em>). Perl is not strictly a shell because it's not
3465 interactive (although Perl programs can be interactive).</p>
3466 </dd>
3467 </li>
3468 <dt><strong><a name="item_side_effects">side effects</a></strong>
3470 <dd>
3471 <p>Something extra that happens when you evaluate an <a href="#item_expression">expression</a>.
3472 Nowadays it can refer to almost anything. For example, evaluating a
3473 simple assignment statement typically has the ``side effect'' of
3474 assigning a value to a variable. (And you thought assigning the value
3475 was your primary intent in the first place!) Likewise, assigning a
3476 value to the special variable <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$|</code></a> (<code>$AUTOFLUSH</code>) has the side
3477 effect of forcing a flush after every <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_write">write</a> or
3478 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_print">print</a> on the currently selected filehandle.</p>
3479 </dd>
3480 </li>
3481 <dt><strong><a name="item_signal">signal</a></strong>
3483 <dd>
3484 <p>A bolt out of the blue; that is, an event triggered by the
3485 <a href="#item_operating_system">operating system</a>, probably when you're least expecting it.</p>
3486 </dd>
3487 </li>
3488 <dt><strong><a name="item_signal_handler">signal handler</a></strong>
3490 <dd>
3491 <p>A <a href="#item_subroutine">subroutine</a> that, instead of being content to be called in the
3492 normal fashion, sits around waiting for a bolt out of the blue before
3493 it will deign to <a href="#item_execute">execute</a>. Under Perl, bolts out of the blue are
3494 called signals, and you send them with the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#kill">kill</a>
3495 built-in. See <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__sig">%SIG in the perlvar manpage</a> and <a href="file://C|\msysgit\mingw\html/pod/perlipc.html#signals">Signals in the perlipc manpage</a>.</p>
3496 </dd>
3497 </li>
3498 <dt><strong><a name="item_single_inheritance">single inheritance</a></strong>
3500 <dd>
3501 <p>The features you got from your mother, if she told you that you don't
3502 have a father. (See also <a href="#item_inheritance">inheritance</a> and <a href="#item_multiple_inheritance">multiple inheritance</a>.) In computer languages, the notion that
3503 <a href="#item_class">classes</a> reproduce asexually so that a given class can only
3504 have one direct ancestor or <a href="#item_base_class">base class</a>. Perl supplies no such
3505 restriction, though you may certainly program Perl that way if you
3506 like.</p>
3507 </dd>
3508 </li>
3509 <dt><strong><a name="item_slice">slice</a></strong>
3511 <dd>
3512 <p>A selection of any number of <a href="#item_element">elements</a> from a <a href="#item_list">list</a>,
3513 <a href="#item_array">array</a>, or <a href="#item_hash">hash</a>.</p>
3514 </dd>
3515 </li>
3516 <dt><strong><a name="item_slurp">slurp</a></strong>
3518 <dd>
3519 <p>To read an entire <a href="#item_file">file</a> into a <a href="#item_string">string</a> in one operation.</p>
3520 </dd>
3521 </li>
3522 <dt><strong><a name="item_socket">socket</a></strong>
3524 <dd>
3525 <p>An endpoint for network communication among multiple
3526 <a href="#item_process">processes</a> that works much like a telephone or a post
3527 office box. The most important thing about a socket is its <a href="#item_network_address">network address</a> (like a phone number). Different kinds of sockets have
3528 different kinds of addresses--some look like filenames, and some
3529 don't.</p>
3530 </dd>
3531 </li>
3532 <dt><strong><a name="item_soft_reference">soft reference</a></strong>
3534 <dd>
3535 <p>See <a href="#item_symbolic_reference">symbolic reference</a>.</p>
3536 </dd>
3537 </li>
3538 <dt><strong><a name="item_source_filter">source filter</a></strong>
3540 <dd>
3541 <p>A special kind of <a href="#item_module">module</a> that does <a href="#item_preprocessing">preprocessing</a> on your
3542 script just before it gets to the <a href="#item_tokener">tokener</a>.</p>
3543 </dd>
3544 </li>
3545 <dt><strong><a name="item_stack">stack</a></strong>
3547 <dd>
3548 <p>A device you can put things on the top of, and later take them back
3549 off in the opposite order in which you put them on. See <a href="#item_lifo">LIFO</a>.</p>
3550 </dd>
3551 </li>
3552 <dt><strong><a name="item_standard">standard</a></strong>
3554 <dd>
3555 <p>Included in the official Perl distribution, as in a standard module, a
3556 standard tool, or a standard Perl <a href="#item_manpage">manpage</a>.</p>
3557 </dd>
3558 </li>
3559 <dt><strong><a name="item_standard_error">standard error</a></strong>
3561 <dd>
3562 <p>The default output <a href="#item_stream">stream</a> for nasty remarks that don't belong in
3563 <a href="#item_standard_output">standard output</a>. Represented within a Perl program by the
3564 <a href="#item_filehandle">filehandle</a> <a href="#item_stderr">STDERR</a>. You can use this stream explicitly, but the
3565 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#die">die</a> and <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#warn">warn</a> built-ins write to your
3566 standard error stream automatically.</p>
3567 </dd>
3568 </li>
3569 <dt><strong>standard I/O</strong>
3571 <dd>
3572 <p>A standard C library for doing <a href="#item_buffer">buffered</a> input and output to
3573 the <a href="#item_operating_system">operating system</a>. (The ``standard'' of standard I/O is only
3574 marginally related to the ``standard'' of standard input and output.)
3575 In general, Perl relies on whatever implementation of standard I/O a
3576 given operating system supplies, so the buffering characteristics of a
3577 Perl program on one machine may not exactly match those on another
3578 machine. Normally this only influences efficiency, not semantics. If
3579 your standard I/O package is doing block buffering and you want it to
3580 <a href="#item_flush">flush</a> the buffer more often, just set the <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$|</code></a> variable to a true
3581 value.</p>
3582 </dd>
3583 </li>
3584 <dt><strong><a name="item_standard_input">standard input</a></strong>
3586 <dd>
3587 <p>The default input <a href="#item_stream">stream</a> for your program, which if possible
3588 shouldn't care where its data is coming from. Represented within a
3589 Perl program by the <a href="#item_filehandle">filehandle</a> <a href="#item_stdin">STDIN</a>.</p>
3590 </dd>
3591 </li>
3592 <dt><strong><a name="item_standard_output">standard output</a></strong>
3594 <dd>
3595 <p>The default output <a href="#item_stream">stream</a> for your program, which if possible
3596 shouldn't care where its data is going. Represented within a Perl
3597 program by the <a href="#item_filehandle">filehandle</a> <a href="#item_stdout">STDOUT</a>.</p>
3598 </dd>
3599 </li>
3600 <dt><strong><a name="item_stat_structure">stat structure</a></strong>
3602 <dd>
3603 <p>A special internal spot in which Perl keeps the information about the
3604 last <a href="#item_file">file</a> on which you requested information.</p>
3605 </dd>
3606 </li>
3607 <dt><strong><a name="item_statement">statement</a></strong>
3609 <dd>
3610 <p>A <a href="#item_command">command</a> to the computer about what to do next, like a step in a
3611 recipe: ``Add marmalade to batter and mix until mixed.'' A statement is
3612 distinguished from a <a href="#item_declaration">declaration</a>, which doesn't tell the computer
3613 to do anything, but just to learn something.</p>
3614 </dd>
3615 </li>
3616 <dt><strong><a name="item_statement_modifier">statement modifier</a></strong>
3618 <dd>
3619 <p>A <a href="#item_conditional">conditional</a> or <a href="#item_loop">loop</a> that you put after the <a href="#item_statement">statement</a>
3620 instead of before, if you know what we mean.</p>
3621 </dd>
3622 </li>
3623 <dt><strong><a name="item_static">static</a></strong>
3625 <dd>
3626 <p>Varying slowly compared to something else. (Unfortunately, everything
3627 is relatively stable compared to something else, except for certain
3628 elementary particles, and we're not so sure about them.) In
3629 computers, where things are supposed to vary rapidly, ``static'' has a
3630 derogatory connotation, indicating a slightly dysfunctional
3631 <a href="#item_variable">variable</a>, <a href="#item_subroutine">subroutine</a>, or <a href="#item_method">method</a>. In Perl culture, the
3632 word is politely avoided.</p>
3633 </dd>
3634 </li>
3635 <dt><strong><a name="item_static_method">static method</a></strong>
3637 <dd>
3638 <p>No such thing. See <a href="#item_class_method">class method</a>.</p>
3639 </dd>
3640 </li>
3641 <dt><strong><a name="item_static_scoping">static scoping</a></strong>
3643 <dd>
3644 <p>No such thing. See <a href="#item_lexical_scoping">lexical scoping</a>.</p>
3645 </dd>
3646 </li>
3647 <dt><strong><a name="item_static_variable">static variable</a></strong>
3649 <dd>
3650 <p>No such thing. Just use a <a href="#item_lexical_variable">lexical variable</a> in a scope larger than
3651 your <a href="#item_subroutine">subroutine</a>.</p>
3652 </dd>
3653 </li>
3654 <dt><strong><a name="item_status">status</a></strong>
3656 <dd>
3657 <p>The <a href="#item_value">value</a> returned to the parent <a href="#item_process">process</a> when one of its child
3658 processes dies. This value is placed in the special variable <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__"><code>$?</code></a>.
3659 Its upper eight <a href="#item_bit">bits</a> are the exit status of the defunct
3660 process, and its lower eight bits identify the signal (if any) that
3661 the process died from. On Unix systems, this status value is the same
3662 as the status word returned by <em>wait</em>(2). See <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_system">system in the perlfunc manpage</a>.</p>
3663 </dd>
3664 </li>
3665 <dt><strong><a name="item_stderr">STDERR</a></strong>
3667 <dd>
3668 <p>See <a href="#item_standard_error">standard error</a>.</p>
3669 </dd>
3670 </li>
3671 <dt><strong><a name="item_stdin">STDIN</a></strong>
3673 <dd>
3674 <p>See <a href="#item_standard_input">standard input</a>.</p>
3675 </dd>
3676 </li>
3677 <dt><strong><a name="item_stdio">STDIO</a></strong>
3679 <dd>
3680 <p>See <a href="#standard_ie_sol_o">standard I&sol;O</a>.</p>
3681 </dd>
3682 </li>
3683 <dt><strong><a name="item_stdout">STDOUT</a></strong>
3685 <dd>
3686 <p>See <a href="#item_standard_output">standard output</a>.</p>
3687 </dd>
3688 </li>
3689 <dt><strong><a name="item_stream">stream</a></strong>
3691 <dd>
3692 <p>A flow of data into or out of a process as a steady sequence of bytes
3693 or characters, without the appearance of being broken up into packets.
3694 This is a kind of <a href="#item_interface">interface</a>--the underlying <a href="#item_implementation">implementation</a> may
3695 well break your data up into separate packets for delivery, but this
3696 is hidden from you.</p>
3697 </dd>
3698 </li>
3699 <dt><strong><a name="item_string">string</a></strong>
3701 <dd>
3702 <p>A sequence of characters such as ``He said !@#*&amp;%@#*?!''. A string does
3703 not have to be entirely printable.</p>
3704 </dd>
3705 </li>
3706 <dt><strong><a name="item_string_context">string context</a></strong>
3708 <dd>
3709 <p>The situation in which an expression is expected by its surroundings
3710 (the code calling it) to return a <a href="#item_string">string</a>. See also <a href="#item_context">context</a>
3711 and <a href="#item_numeric_context">numeric context</a>.</p>
3712 </dd>
3713 </li>
3714 <dt><strong><a name="item_stringification">stringification</a></strong>
3716 <dd>
3717 <p>The process of producing a <a href="#item_string">string</a> representation of an abstract
3718 object.</p>
3719 </dd>
3720 </li>
3721 <dt><strong><a name="item_struct">struct</a></strong>
3723 <dd>
3724 <p>C keyword introducing a structure definition or name.</p>
3725 </dd>
3726 </li>
3727 <dt><strong><a name="item_structure">structure</a></strong>
3729 <dd>
3730 <p>See <a href="#item_data_structure">data structure</a>.</p>
3731 </dd>
3732 </li>
3733 <dt><strong><a name="item_subclass">subclass</a></strong>
3735 <dd>
3736 <p>See <a href="#item_derived_class">derived class</a>.</p>
3737 </dd>
3738 </li>
3739 <dt><strong><a name="item_subpattern">subpattern</a></strong>
3741 <dd>
3742 <p>A component of a <a href="#item_regular_expression">regular expression</a> pattern.</p>
3743 </dd>
3744 </li>
3745 <dt><strong><a name="item_subroutine">subroutine</a></strong>
3747 <dd>
3748 <p>A named or otherwise accessible piece of program that can be invoked
3749 from elsewhere in the program in order to accomplish some sub-goal of
3750 the program. A subroutine is often parameterized to accomplish
3751 different but related things depending on its input
3752 <a href="#item_argument">arguments</a>. If the subroutine returns a meaningful
3753 <a href="#item_value">value</a>, it is also called a <a href="#item_function">function</a>.</p>
3754 </dd>
3755 </li>
3756 <dt><strong><a name="item_subscript">subscript</a></strong>
3758 <dd>
3759 <p>A <a href="#item_value">value</a> that indicates the position of a particular <a href="#item_array">array</a>
3760 <a href="#item_element">element</a> in an array.</p>
3761 </dd>
3762 </li>
3763 <dt><strong><a name="item_substitution">substitution</a></strong>
3765 <dd>
3766 <p>Changing parts of a string via the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_s_"><code>s///</code></a> operator. (We avoid use of
3767 this term to mean <a href="#item_variable_interpolation">variable interpolation</a>.)</p>
3768 </dd>
3769 </li>
3770 <dt><strong><a name="item_substring">substring</a></strong>
3772 <dd>
3773 <p>A portion of a <a href="#item_string">string</a>, starting at a certain <a href="#item_character">character</a>
3774 position (<a href="#item_offset">offset</a>) and proceeding for a certain number of
3775 characters.</p>
3776 </dd>
3777 </li>
3778 <dt><strong><a name="item_superclass">superclass</a></strong>
3780 <dd>
3781 <p>See <a href="#item_base_class">base class</a>.</p>
3782 </dd>
3783 </li>
3784 <dt><strong><a name="item_superuser">superuser</a></strong>
3786 <dd>
3787 <p>The person whom the <a href="#item_operating_system">operating system</a> will let do almost anything.
3788 Typically your system administrator or someone pretending to be your
3789 system administrator. On Unix systems, the <a href="#item_root">root</a> user. On Windows
3790 systems, usually the Administrator user.</p>
3791 </dd>
3792 </li>
3793 <dt><strong><a name="item_sv">SV</a></strong>
3795 <dd>
3796 <p>Short for ``scalar value''. But within the Perl interpreter every
3797 <a href="#item_referent">referent</a> is treated as a member of a class derived from SV, in an
3798 object-oriented sort of way. Every <a href="#item_value">value</a> inside Perl is passed
3799 around as a C language <code>SV*</code> pointer. The SV <a href="#item_struct">struct</a> knows its
3800 own ``referent type'', and the code is smart enough (we hope) not to try
3801 to call a <a href="#item_hash">hash</a> function on a <a href="#item_subroutine">subroutine</a>.</p>
3802 </dd>
3803 </li>
3804 <dt><strong><a name="item_switch">switch</a></strong>
3806 <dd>
3807 <p>An option you give on a command line to influence the way your program
3808 works, usually introduced with a minus sign. The word is also used as
3809 a nickname for a <a href="#item_switch_statement">switch statement</a>.</p>
3810 </dd>
3811 </li>
3812 <dt><strong><a name="item_switch_cluster">switch cluster</a></strong>
3814 <dd>
3815 <p>The combination of multiple command-line switches (e.g., <strong>-a -b -c</strong>)
3816 into one switch (e.g., <strong>-abc</strong>). Any switch with an additional
3817 <a href="#item_argument">argument</a> must be the last switch in a cluster.</p>
3818 </dd>
3819 </li>
3820 <dt><strong><a name="item_switch_statement">switch statement</a></strong>
3822 <dd>
3823 <p>A program technique that lets you evaluate an <a href="#item_expression">expression</a> and then,
3824 based on the value of the expression, do a multiway branch to the
3825 appropriate piece of code for that value. Also called a ``case
3826 structure'', named after the similar Pascal construct. Most switch
3827 statements in Perl are spelled <code>for</code>. See <a href="file://C|\msysgit\mingw\html/pod/perlsyn.html#basic_blocks_and_switch_statements">Basic BLOCKs and Switch Statements in the perlsyn manpage</a>.</p>
3828 </dd>
3829 </li>
3830 <dt><strong><a name="item_symbol">symbol</a></strong>
3832 <dd>
3833 <p>Generally, any <a href="#item_token">token</a> or <a href="#item_metasymbol">metasymbol</a>. Often used more
3834 specifically to mean the sort of name you might find in a <a href="#item_symbol_table">symbol table</a>.</p>
3835 </dd>
3836 </li>
3837 <dt><strong><a name="item_symbol_table">symbol table</a></strong>
3839 <dd>
3840 <p>Where a <a href="#item_compiler">compiler</a> remembers symbols. A program like Perl must
3841 somehow remember all the names of all the <a href="#item_variable">variables</a>,
3842 <a href="#item_filehandle">filehandles</a>, and <a href="#item_subroutine">subroutines</a> you've
3843 used. It does this by placing the names in a symbol table, which is
3844 implemented in Perl using a <a href="#item_hash_table">hash table</a>. There is a separate
3845 symbol table for each <a href="#item_package">package</a> to give each package its own
3846 <a href="#item_namespace">namespace</a>.</p>
3847 </dd>
3848 </li>
3849 <dt><strong><a name="item_symbolic_debugger">symbolic debugger</a></strong>
3851 <dd>
3852 <p>A program that lets you step through the <a href="#item_execute">execution</a> of your
3853 program, stopping or printing things out here and there to see whether
3854 anything has gone wrong, and if so, what. The ``symbolic'' part just
3855 means that you can talk to the debugger using the same symbols with
3856 which your program is written.</p>
3857 </dd>
3858 </li>
3859 <dt><strong><a name="item_symbolic_link">symbolic link</a></strong>
3861 <dd>
3862 <p>An alternate filename that points to the real <a href="#item_filename">filename</a>, which in
3863 turn points to the real <a href="#item_file">file</a>. Whenever the <a href="#item_operating_system">operating system</a>
3864 is trying to parse a <a href="#item_pathname">pathname</a> containing a symbolic link, it
3865 merely substitutes the new name and continues parsing.</p>
3866 </dd>
3867 </li>
3868 <dt><strong><a name="item_symbolic_reference">symbolic reference</a></strong>
3870 <dd>
3871 <p>A variable whose value is the name of another variable or subroutine.
3872 By <a href="#item_dereference">dereferencing</a> the first variable, you can get at
3873 the second one. Symbolic references are illegal under <a href="file://C|\msysgit\mingw\html/lib/strict.html#strict_refs">use strict 'refs'</a>.</p>
3874 </dd>
3875 </li>
3876 <dt><strong><a name="item_synchronous">synchronous</a></strong>
3878 <dd>
3879 <p>Programming in which the orderly sequence of events can be determined;
3880 that is, when things happen one after the other, not at the same time.</p>
3881 </dd>
3882 </li>
3883 <dt><strong><a name="item_syntactic_sugar">syntactic sugar</a></strong>
3885 <dd>
3886 <p>An alternative way of writing something more easily; a shortcut.</p>
3887 </dd>
3888 </li>
3889 <dt><strong><a name="item_syntax">syntax</a></strong>
3891 <dd>
3892 <p>From Greek, ``with-arrangement''. How things (particularly symbols) are
3893 put together with each other.</p>
3894 </dd>
3895 </li>
3896 <dt><strong><a name="item_syntax_tree">syntax tree</a></strong>
3898 <dd>
3899 <p>An internal representation of your program wherein lower-level
3900 <a href="#item_construct">constructs</a> dangle off the higher-level constructs
3901 enclosing them.</p>
3902 </dd>
3903 </li>
3904 <dt><strong><a name="item_syscall">syscall</a></strong>
3906 <dd>
3907 <p>A <a href="#item_function">function</a> call directly to the <a href="#item_operating_system">operating system</a>. Many of the
3908 important subroutines and functions you use aren't direct system
3909 calls, but are built up in one or more layers above the system call
3910 level. In general, Perl programmers don't need to worry about the
3911 distinction. However, if you do happen to know which Perl functions
3912 are really syscalls, you can predict which of these will set the <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$!</code></a>
3913 (<a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item__errno"><code>$ERRNO</code></a>) variable on failure. Unfortunately, beginning programmers
3914 often confusingly employ the term ``system call'' to mean what happens
3915 when you call the Perl <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_system">system</a> function, which
3916 actually involves many syscalls. To avoid any confusion, we nearly
3917 always use say ``syscall'' for something you could call indirectly via
3918 Perl's <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#syscall">syscall</a> function, and never for something
3919 you would call with Perl's <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_system">system</a> function.</p>
3920 </dd>
3921 </li>
3922 </dl>
3924 </p>
3925 <h2><a name="t">T</a></h2>
3926 <dl>
3927 <dt><strong><a name="item_tainted">tainted</a></strong>
3929 <dd>
3930 <p>Said of data derived from the grubby hands of a user and thus unsafe
3931 for a secure program to rely on. Perl does taint checks if you run a
3932 <a href="#item_setuid">setuid</a> (or <a href="#item_setgid">setgid</a>) program, or if you use the <strong>-T</strong> switch.</p>
3933 </dd>
3934 </li>
3935 <dt><strong><a name="item_tcp">TCP</a></strong>
3937 <dd>
3938 <p>Short for Transmission Control Protocol. A protocol wrapped around
3939 the Internet Protocol to make an unreliable packet transmission
3940 mechanism appear to the application program to be a reliable
3941 <a href="#item_stream">stream</a> of bytes. (Usually.)</p>
3942 </dd>
3943 </li>
3944 <dt><strong><a name="item_term">term</a></strong>
3946 <dd>
3947 <p>Short for a ``terminal'', that is, a leaf node of a <a href="#item_syntax_tree">syntax tree</a>. A
3948 thing that functions grammatically as an <a href="#item_operand">operand</a> for the operators
3949 in an expression.</p>
3950 </dd>
3951 </li>
3952 <dt><strong><a name="item_terminator">terminator</a></strong>
3954 <dd>
3955 <p>A <a href="#item_character">character</a> or <a href="#item_string">string</a> that marks the end of another string.
3956 The <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$/</code></a> variable contains the string that terminates a
3957 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#readline">readline</a> operation, which <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_chomp">chomp</a>
3958 deletes from the end. Not to be confused with
3959 <a href="#item_delimiter">delimiters</a> or <a href="#item_separator">separators</a>. The period at
3960 the end of this sentence is a terminator.</p>
3961 </dd>
3962 </li>
3963 <dt><strong><a name="item_ternary">ternary</a></strong>
3965 <dd>
3966 <p>An <a href="#item_operator">operator</a> taking three <a href="#item_operand">operands</a>. Sometimes
3967 pronounced <a href="#item_trinary">trinary</a>.</p>
3968 </dd>
3969 </li>
3970 <dt><strong><a name="item_text">text</a></strong>
3972 <dd>
3973 <p>A <a href="#item_string">string</a> or <a href="#item_file">file</a> containing primarily printable characters.</p>
3974 </dd>
3975 </li>
3976 <dt><strong><a name="item_thread">thread</a></strong>
3978 <dd>
3979 <p>Like a forked process, but without <a href="#item_fork">fork</a>'s inherent memory
3980 protection. A thread is lighter weight than a full process, in that a
3981 process could have multiple threads running around in it, all fighting
3982 over the same process's memory space unless steps are taken to protect
3983 threads from each other. See <a href="file://C|\msysgit\mingw\html/lib/threads.html">the threads manpage</a>.</p>
3984 </dd>
3985 </li>
3986 <dt><strong><a name="item_tie">tie</a></strong>
3988 <dd>
3989 <p>The bond between a magical variable and its implementation class. See
3990 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#tie">tie in the perlfunc manpage</a> and <a href="file://C|\msysgit\mingw\html/pod/perltie.html">the perltie manpage</a>.</p>
3991 </dd>
3992 </li>
3993 <dt><strong><a name="item_tmtowtdi">TMTOWTDI</a></strong>
3995 <dd>
3996 <p>There's More Than One Way To Do It, the Perl Motto. The notion that
3997 there can be more than one valid path to solving a programming problem
3998 in context. (This doesn't mean that more ways are always better or
3999 that all possible paths are equally desirable--just that there need
4000 not be One True Way.) Pronounced TimToady.</p>
4001 </dd>
4002 </li>
4003 <dt><strong><a name="item_token">token</a></strong>
4005 <dd>
4006 <p>A morpheme in a programming language, the smallest unit of text with
4007 semantic significance.</p>
4008 </dd>
4009 </li>
4010 <dt><strong><a name="item_tokener">tokener</a></strong>
4012 <dd>
4013 <p>A module that breaks a program text into a sequence of
4014 <a href="#item_token">tokens</a> for later analysis by a parser.</p>
4015 </dd>
4016 </li>
4017 <dt><strong><a name="item_tokenizing">tokenizing</a></strong>
4019 <dd>
4020 <p>Splitting up a program text into <a href="#item_token">tokens</a>. Also known as
4021 ``lexing'', in which case you get ``lexemes'' instead of tokens.</p>
4022 </dd>
4023 </li>
4024 <dt><strong><a name="item_toolbox_approach">toolbox approach</a></strong>
4026 <dd>
4027 <p>The notion that, with a complete set of simple tools that work well
4028 together, you can build almost anything you want. Which is fine if
4029 you're assembling a tricycle, but if you're building a defranishizing
4030 comboflux regurgalator, you really want your own machine shop in which
4031 to build special tools. Perl is sort of a machine shop.</p>
4032 </dd>
4033 </li>
4034 <dt><strong><a name="item_transliterate">transliterate</a></strong>
4036 <dd>
4037 <p>To turn one string representation into another by mapping each
4038 character of the source string to its corresponding character in the
4039 result string. See
4040 <a href="file://C|\msysgit\mingw\html/pod/perlop.html#tre_sol_searchliste_sol_replacementliste_sol_cds">tr&sol;SEARCHLIST&sol;REPLACEMENTLIST&sol;cds in the perlop manpage</a>.</p>
4041 </dd>
4042 </li>
4043 <dt><strong><a name="item_trigger">trigger</a></strong>
4045 <dd>
4046 <p>An event that causes a <a href="#item_handler">handler</a> to be run.</p>
4047 </dd>
4048 </li>
4049 <dt><strong><a name="item_trinary">trinary</a></strong>
4051 <dd>
4052 <p>Not a stellar system with three stars, but an <a href="#item_operator">operator</a> taking
4053 three <a href="#item_operand">operands</a>. Sometimes pronounced <a href="#item_ternary">ternary</a>.</p>
4054 </dd>
4055 </li>
4056 <dt><strong><a name="item_troff">troff</a></strong>
4058 <dd>
4059 <p>A venerable typesetting language from which Perl derives the name of
4060 its <a href="file://C|\msysgit\mingw\html/pod/perlvar.html#item___"><code>$%</code></a> variable and which is secretly used in the production of
4061 Camel books.</p>
4062 </dd>
4063 </li>
4064 <dt><strong><a name="item_true">true</a></strong>
4066 <dd>
4067 <p>Any scalar value that doesn't evaluate to 0 or <code>&quot;&quot;</code>.</p>
4068 </dd>
4069 </li>
4070 <dt><strong><a name="item_truncating">truncating</a></strong>
4072 <dd>
4073 <p>Emptying a file of existing contents, either automatically when
4074 opening a file for writing or explicitly via the
4075 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_truncate">truncate</a> function.</p>
4076 </dd>
4077 </li>
4078 <dt><strong><a name="item_type">type</a></strong>
4080 <dd>
4081 <p>See <a href="#item_data_type">data type</a> and <a href="#item_class">class</a>.</p>
4082 </dd>
4083 </li>
4084 <dt><strong><a name="item_type_casting">type casting</a></strong>
4086 <dd>
4087 <p>Converting data from one type to another. C permits this. Perl does
4088 not need it. Nor want it.</p>
4089 </dd>
4090 </li>
4091 <dt><strong><a name="item_typed_lexical">typed lexical</a></strong>
4093 <dd>
4094 <p>A <a href="#item_lexical_variable">lexical variable</a> that is declared with a <a href="#item_class">class</a> type: <code>my
4095 Pony $bill</code>.</p>
4096 </dd>
4097 </li>
4098 <dt><strong><a name="item_typedef">typedef</a></strong>
4100 <dd>
4101 <p>A type definition in the C language.</p>
4102 </dd>
4103 </li>
4104 <dt><strong><a name="item_typeglob">typeglob</a></strong>
4106 <dd>
4107 <p>Use of a single identifier, prefixed with <code>*</code>. For example, <code>*name</code>
4108 stands for any or all of <code>$name</code>, <code>@name</code>, <code>%name</code>, <code>&amp;name</code>, or
4109 just <code>name</code>. How you use it determines whether it is interpreted as
4110 all or only one of them. See <a href="file://C|\msysgit\mingw\html/pod/perldata.html#typeglobs_and_filehandles">Typeglobs and Filehandles in the perldata manpage</a>.</p>
4111 </dd>
4112 </li>
4113 <dt><strong><a name="item_typemap">typemap</a></strong>
4115 <dd>
4116 <p>A description of how C types may be transformed to and from Perl types
4117 within an <a href="#item_extension">extension</a> module written in <a href="#item_xs">XS</a>.</p>
4118 </dd>
4119 </li>
4120 </dl>
4122 </p>
4123 <h2><a name="u">U</a></h2>
4124 <dl>
4125 <dt><strong><a name="item_udp">UDP</a></strong>
4127 <dd>
4128 <p>User Datagram Protocol, the typical way to send <a href="#item_datagram">datagrams</a>
4129 over the Internet.</p>
4130 </dd>
4131 </li>
4132 <dt><strong><a name="item_uid">UID</a></strong>
4134 <dd>
4135 <p>A user ID. Often used in the context of <a href="#item_file">file</a> or <a href="#item_process">process</a>
4136 ownership.</p>
4137 </dd>
4138 </li>
4139 <dt><strong><a name="item_umask">umask</a></strong>
4141 <dd>
4142 <p>A mask of those <a href="#item_permission_bits">permission bits</a> that should be forced off when
4143 creating files or directories, in order to establish a policy of whom
4144 you'll ordinarily deny access to. See the <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_umask">umask</a>
4145 function.</p>
4146 </dd>
4147 </li>
4148 <dt><strong><a name="item_unary_operator">unary operator</a></strong>
4150 <dd>
4151 <p>An operator with only one <a href="#item_operand">operand</a>, like <code>!</code> or
4152 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_chdir">chdir</a>. Unary operators are usually prefix
4153 operators; that is, they precede their operand. The <code>++</code> and <code>--</code>
4154 operators can be either prefix or postfix. (Their position <em>does</em>
4155 change their meanings.)</p>
4156 </dd>
4157 </li>
4158 <dt><strong><a name="item_unicode">Unicode</a></strong>
4160 <dd>
4161 <p>A character set comprising all the major character sets of the world,
4162 more or less. See <a href="http://www.unicode.org">http://www.unicode.org</a>.</p>
4163 </dd>
4164 </li>
4165 <dt><strong><a name="item_unix">Unix</a></strong>
4167 <dd>
4168 <p>A very large and constantly evolving language with several alternative
4169 and largely incompatible syntaxes, in which anyone can define anything
4170 any way they choose, and usually do. Speakers of this language think
4171 it's easy to learn because it's so easily twisted to one's own ends,
4172 but dialectical differences make tribal intercommunication nearly
4173 impossible, and travelers are often reduced to a pidgin-like subset of
4174 the language. To be universally understood, a Unix shell programmer
4175 must spend years of study in the art. Many have abandoned this
4176 discipline and now communicate via an Esperanto-like language called
4177 Perl.</p>
4178 </dd>
4179 <dd>
4180 <p>In ancient times, Unix was also used to refer to some code that a
4181 couple of people at Bell Labs wrote to make use of a PDP-7 computer
4182 that wasn't doing much of anything else at the time.</p>
4183 </dd>
4184 </li>
4185 </dl>
4187 </p>
4188 <h2><a name="v">V</a></h2>
4189 <dl>
4190 <dt><strong><a name="item_value">value</a></strong>
4192 <dd>
4193 <p>An actual piece of data, in contrast to all the variables, references,
4194 keys, indexes, operators, and whatnot that you need to access the
4195 value.</p>
4196 </dd>
4197 </li>
4198 <dt><strong><a name="item_variable">variable</a></strong>
4200 <dd>
4201 <p>A named storage location that can hold any of various kinds of
4202 <a href="#item_value">value</a>, as your program sees fit.</p>
4203 </dd>
4204 </li>
4205 <dt><strong><a name="item_variable_interpolation">variable interpolation</a></strong>
4207 <dd>
4208 <p>The <a href="#item_interpolation">interpolation</a> of a scalar or array variable into a string.</p>
4209 </dd>
4210 </li>
4211 <dt><strong><a name="item_variadic">variadic</a></strong>
4213 <dd>
4214 <p>Said of a <a href="#item_function">function</a> that happily receives an indeterminate number
4215 of <a href="#item_actual_arguments">actual arguments</a>.</p>
4216 </dd>
4217 </li>
4218 <dt><strong><a name="item_vector">vector</a></strong>
4220 <dd>
4221 <p>Mathematical jargon for a list of <a href="#item_scalar_value">scalar values</a>.</p>
4222 </dd>
4223 </li>
4224 <dt><strong><a name="item_virtual">virtual</a></strong>
4226 <dd>
4227 <p>Providing the appearance of something without the reality, as in:
4228 virtual memory is not real memory. (See also <a href="#item_memory">memory</a>.) The
4229 opposite of ``virtual'' is ``transparent'', which means providing the
4230 reality of something without the appearance, as in: Perl handles the
4231 variable-length UTF-8 character encoding transparently.</p>
4232 </dd>
4233 </li>
4234 <dt><strong><a name="item_void_context">void context</a></strong>
4236 <dd>
4237 <p>A form of <a href="#item_scalar_context">scalar context</a> in which an <a href="#item_expression">expression</a> is not
4238 expected to return any <a href="#item_value">value</a> at all and is evaluated for its
4239 <a href="#item_side_effects">side effects</a> alone.</p>
4240 </dd>
4241 </li>
4242 <dt><strong><a name="item_v_2dstring">v-string</a></strong>
4244 <dd>
4245 <p>A ``version'' or ``vector'' <a href="#item_string">string</a> specified with a <code>v</code> followed by a
4246 series of decimal integers in dot notation, for instance,
4247 <code>v1.20.300.4000</code>. Each number turns into a <a href="#item_character">character</a> with the
4248 specified ordinal value. (The <code>v</code> is optional when there are at
4249 least three integers.)</p>
4250 </dd>
4251 </li>
4252 </dl>
4254 </p>
4255 <h2><a name="w">W</a></h2>
4256 <dl>
4257 <dt><strong><a name="item_warning">warning</a></strong>
4259 <dd>
4260 <p>A message printed to the <a href="#item_stderr">STDERR</a> stream to the effect that something
4261 might be wrong but isn't worth blowing up over. See <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#warn">warn in the perlfunc manpage</a>
4262 and the <a href="file://C|\msysgit\mingw\html/lib/warnings.html">the warnings manpage</a> pragma.</p>
4263 </dd>
4264 </li>
4265 <dt><strong><a name="item_watch_expression">watch expression</a></strong>
4267 <dd>
4268 <p>An expression which, when its value changes, causes a breakpoint in
4269 the Perl debugger.</p>
4270 </dd>
4271 </li>
4272 <dt><strong><a name="item_whitespace">whitespace</a></strong>
4274 <dd>
4275 <p>A <a href="#item_character">character</a> that moves your cursor but doesn't otherwise put
4276 anything on your screen. Typically refers to any of: space, tab, line
4277 feed, carriage return, or form feed.</p>
4278 </dd>
4279 </li>
4280 <dt><strong><a name="item_word">word</a></strong>
4282 <dd>
4283 <p>In normal ``computerese'', the piece of data of the size most
4284 efficiently handled by your computer, typically 32 bits or so, give or
4285 take a few powers of 2. In Perl culture, it more often refers to an
4286 alphanumeric <a href="#item_identifier">identifier</a> (including underscores), or to a string of
4287 nonwhitespace <a href="#item_character">characters</a> bounded by whitespace or string
4288 boundaries.</p>
4289 </dd>
4290 </li>
4291 <dt><strong><a name="item_working_directory">working directory</a></strong>
4293 <dd>
4294 <p>Your current <a href="#item_directory">directory</a>, from which relative pathnames are
4295 interpreted by the <a href="#item_operating_system">operating system</a>. The operating system knows
4296 your current directory because you told it with a
4297 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_chdir">chdir</a> or because you started out in the place where
4298 your parent <a href="#item_process">process</a> was when you were born.</p>
4299 </dd>
4300 </li>
4301 <dt><strong><a name="item_wrapper">wrapper</a></strong>
4303 <dd>
4304 <p>A program or subroutine that runs some other program or subroutine for
4305 you, modifying some of its input or output to better suit your
4306 purposes.</p>
4307 </dd>
4308 </li>
4309 <dt><strong><a name="item_wysiwyg">WYSIWYG</a></strong>
4311 <dd>
4312 <p>What You See Is What You Get. Usually used when something that
4313 appears on the screen matches how it will eventually look, like Perl's
4314 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#format">format</a> declarations. Also used to mean the
4315 opposite of magic because everything works exactly as it appears, as
4316 in the three-argument form of <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#item_open">open</a>.</p>
4317 </dd>
4318 </li>
4319 </dl>
4321 </p>
4322 <h2><a name="x">X</a></h2>
4323 <dl>
4324 <dt><strong><a name="item_xs">XS</a></strong>
4326 <dd>
4327 <p>An extraordinarily exported, expeditiously excellent, expressly
4328 eXternal Subroutine, executed in existing C or C++ or in an exciting
4329 new extension language called (exasperatingly) XS. Examine <a href="file://C|\msysgit\mingw\html/pod/perlxs.html">the perlxs manpage</a>
4330 for the exact explanation or <a href="file://C|\msysgit\mingw\html/pod/perlxstut.html">the perlxstut manpage</a> for an exemplary unexacting
4331 one.</p>
4332 </dd>
4333 </li>
4334 <dt><strong><a name="item_xsub">XSUB</a></strong>
4336 <dd>
4337 <p>An external <a href="#item_subroutine">subroutine</a> defined in <a href="#item_xs">XS</a>.</p>
4338 </dd>
4339 </li>
4340 </dl>
4342 </p>
4343 <h2><a name="y">Y</a></h2>
4344 <dl>
4345 <dt><strong><a name="item_yacc">yacc</a></strong>
4347 <dd>
4348 <p>Yet Another Compiler Compiler. A parser generator without which Perl
4349 probably would not have existed. See the file <em>perly.y</em> in the Perl
4350 source distribution.</p>
4351 </dd>
4352 </li>
4353 </dl>
4355 </p>
4356 <h2><a name="z">Z</a></h2>
4357 <dl>
4358 <dt><strong><a name="item_zero_width">zero width</a></strong>
4360 <dd>
4361 <p>A subpattern <a href="#item_assertion">assertion</a> matching the <a href="#item_null_string">null string</a> between
4362 <a href="#item_character">characters</a>.</p>
4363 </dd>
4364 </li>
4365 <dt><strong><a name="item_zombie">zombie</a></strong>
4367 <dd>
4368 <p>A process that has died (exited) but whose parent has not yet received
4369 proper notification of its demise by virtue of having called
4370 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#wait">wait</a> or <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#waitpid">waitpid</a>. If you
4371 <a href="file://C|\msysgit\mingw\html/pod/perlfunc.html#fork">fork</a>, you must clean up after your child processes
4372 when they exit, or else the process table will fill up and your system
4373 administrator will Not Be Happy with you.</p>
4374 </dd>
4375 </li>
4376 </dl>
4378 </p>
4379 <hr />
4380 <h1><a name="author_and_copyright">AUTHOR AND COPYRIGHT</a></h1>
4381 <p>Based on the Glossary of Programming Perl, Third Edition,
4382 by Larry Wall, Tom Christiansen &amp; Jon Orwant.
4383 Copyright (c) 2000, 1996, 1991 O'Reilly Media, Inc.
4384 This document may be distributed under the same terms as Perl itself.</p>
4385 <table border="0" width="100%" cellspacing="0" cellpadding="3">
4386 <tr><td class="block" style="background-color: #cccccc" valign="middle">
4387 <big><strong><span class="block">&nbsp;perlglossary - Perl Glossary</span></strong></big>
4388 </td></tr>
4389 </table>
4391 </body>
4393 </html>