<?xml version="1.0" encoding="utf-8"?>
<indexterm id="INDEX-1" file="ch00_01.htm" sect="0.1. The Pursuit of Happiness">
<primary>operating system </primary>
</indexterm>

<indexterm id="INDEX-2" file="ch00_01.htm" sect="0.1. The Pursuit of Happiness">
<primary>modules </primary>
</indexterm>

<indexterm id="INDEX-3" file="ch00_01.htm" sect="0.1. The Pursuit of Happiness">
<primary>performance </primary>
</indexterm>

<indexterm id="INDEX-4" file="ch00_01.htm" sect="0.1. The Pursuit of Happiness">
<primary>security </primary>
</indexterm>

<indexterm id="INDEX-5" file="ch00_04.htm" sect="0.4. Online Documentation">
<primary>manpages </primary>
</indexterm>

<indexterm id="INDEX-6" file="ch00_04.htm" sect="0.4. Online Documentation">
<primary>documentation</primary>
<secondary>Perl manpages</secondary>
</indexterm>

<indexterm id="INDEX-7" file="ch00_04.htm" sect="0.4. Online Documentation">
<primary>perldoc command </primary>
</indexterm>

<indexterm id="INDEX-8" file="ch00_04.htm" sect="0.4. Online Documentation">
<primary>man command </primary>
</indexterm>

<indexterm id="INDEX-9" file="ch00_05.htm" sect="0.5. Offline Documentation">
<primary>documentation</primary>
<secondary>books on Perl</secondary>
</indexterm>

<indexterm id="INDEX-10" file="ch00_06.htm" sect="0.6.1. Perl on the Web">
<primary>home page, Perl </primary>
</indexterm>

<indexterm id="INDEX-11" file="ch00_06.htm" sect="0.6.2. Usenet Newsgroups">
<primary>newsgroups </primary>
</indexterm>

<indexterm id="INDEX-12" file="ch00_06.htm" sect="0.6.2. Usenet Newsgroups">
<primary>comp.lang.perl newsgroups </primary>
</indexterm>

<indexterm id="INDEX-13" file="ch00_06.htm" sect="0.6.2. Usenet Newsgroups">
<primary>World Wide Web </primary>
</indexterm>

<indexterm id="INDEX-14" file="ch00_06.htm" sect="0.6.3. Bug Reports">
<primary>bug reports </primary>
</indexterm>

<indexterm id="INDEX-15" file="ch00_06.htm" sect="0.6.3. Bug Reports">
<primary>debugging</primary>
<secondary>bug reports</secondary>
</indexterm>

<indexterm id="INDEX-16" file="ch00_06.htm" sect="0.6.3. Bug Reports">
<primary>documentation</primary>
<secondary>bug reports</secondary>
</indexterm>

<indexterm id="INDEX-17" file="ch01_01.htm" sect="1.1. Getting Started">
<primary>declarations</primary>
</indexterm>

<indexterm id="INDEX-18" file="ch01_01.htm" sect="1.1. Getting Started">
<primary sortas="@backslashn">\n (newline)</primary>
</indexterm>

<indexterm id="INDEX-19" file="ch01_01.htm" sect="1.1. Getting Started">
<primary>exiting programs</primary>
</indexterm>

<indexterm id="INDEX-20" file="ch01_01.htm" sect="1.1. Getting Started">
<primary>programs</primary>
<secondary>exiting</secondary>
</indexterm>

<indexterm id="INDEX-21" file="ch01_02.htm" sect="1.2. Natural and Artificial Languages">
<primary>languages</primary>
<secondary>natural vs. artificial</secondary>
</indexterm>

<indexterm id="INDEX-22" file="ch01_02.htm" sect="1.2. Natural and Artificial Languages">
<primary>natural languages</primary>
</indexterm>

<indexterm id="INDEX-23" file="ch01_02.htm" sect="1.2. Natural and Artificial Languages">
<primary>artificial languages</primary>
</indexterm>

<indexterm id="INDEX-24" file="ch01_02.htm" sect="1.2. Natural and Artificial Languages">
<primary>nouns</primary>
</indexterm>

<indexterm id="INDEX-25" file="ch01_02.htm" sect="1.2. Natural and Artificial Languages">
<primary>values</primary>
<secondary>variables vs.</secondary>
</indexterm>

<indexterm id="INDEX-26" file="ch01_02.htm" sect="1.2. Natural and Artificial Languages">
<primary>variables</primary>
<secondary>values vs.</secondary>
</indexterm>

<indexterm id="INDEX-27" file="ch01_02.htm" sect="1.2. Natural and Artificial Languages">
<primary>interpreters</primary>
</indexterm>

<indexterm id="INDEX-28" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>variables</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-29" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>names</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-30" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>scope</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-31" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>scalars</primary>
</indexterm>

<indexterm id="INDEX-32" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>arrays</primary>
</indexterm>

<indexterm id="INDEX-33" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>data types</primary>
</indexterm>

<indexterm id="INDEX-34" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>strings</primary>
</indexterm>

<indexterm id="INDEX-35" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>numbers</primary>
</indexterm>

<indexterm id="INDEX-36" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
<secondary>signifying scalar variables</secondary>
</indexterm>

<indexterm id="INDEX-37" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary sortas="@at">@ (at sign)</primary>
<secondary sortas="array">for array names</secondary>
</indexterm>

<indexterm id="INDEX-38" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>hashes</primary>
</indexterm>

<indexterm id="INDEX-39" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>handles</primary>
</indexterm>

<indexterm id="INDEX-40" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>typeglob</primary>
</indexterm>

<indexterm id="INDEX-41" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>Perl</primary>
<secondary>special characters in</secondary>
</indexterm>

<indexterm id="INDEX-42" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary sortas="@percent">% (percent sign)</primary>
<secondary>signifying variable type</secondary>
</indexterm>

<indexterm id="INDEX-43" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="subroutine">for subroutine names</secondary>
</indexterm>

<indexterm id="INDEX-44" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>subroutines</primary>
</indexterm>

<indexterm id="INDEX-45" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary>typeglob</secondary>
</indexterm>

<indexterm id="INDEX-46" file="ch01_02.htm" sect="1.2.1. Variable Syntax">
<primary>typeglob</primary>
<secondary>prototype symbol (*)</secondary>
</indexterm>

<indexterm id="INDEX-47" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>scalars</primary>
</indexterm>

<indexterm id="INDEX-48" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>singularities</primary>
<see>singularities</see>
</indexterm>

<indexterm id="INDEX-49" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equal2">= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-50" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>Unix systems</primary>
</indexterm>

<indexterm id="INDEX-51" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>quoting mechanisms</primary>
</indexterm>

<indexterm id="INDEX-52" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>double quotes</primary>
</indexterm>

<indexterm id="INDEX-53" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>variables</primary>
<secondary>interpolation</secondary>
</indexterm>

<indexterm id="INDEX-54" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>interpolation of variables</primary>
</indexterm>

<indexterm id="INDEX-55" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>backslash (\), interpreting with double quotes</primary>
</indexterm>

<indexterm id="INDEX-56" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary sortas="@backslashbackslash">\\ (backslash)</primary>
<secondary>double quotes, interpreting with</secondary>
</indexterm>

<indexterm id="INDEX-57" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>single quotes</primary>
<secondary>suppressing interpolation</secondary>
</indexterm>

<indexterm id="INDEX-58" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>backquotes (`)</primary>
</indexterm>

<indexterm id="INDEX-59" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>references</primary>
</indexterm>

<indexterm id="INDEX-60" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>scalars</primary>
<secondary>references</secondary>
</indexterm>

<indexterm id="INDEX-61" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>objects</primary>
<secondary>references to, in scalars</secondary>
</indexterm>

<indexterm id="INDEX-62" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>subroutines</primary>
<secondary>references to, in scalars</secondary>
</indexterm>

<indexterm id="INDEX-63" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>uninitialized, variables</primary>
</indexterm>

<indexterm id="INDEX-64" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>Boolean values</primary>
</indexterm>

<indexterm id="INDEX-65" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>variables</primary>
<secondary>uninitialized</secondary>
</indexterm>

<indexterm id="INDEX-66" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>null values ("" or 0)</primary>
</indexterm>

<indexterm id="INDEX-67" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>true values</primary>
</indexterm>

<indexterm id="INDEX-68" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>false values</primary>
</indexterm>

<indexterm id="INDEX-69" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>parameters</primary>
<secondary>scalar context, providing for</secondary>
</indexterm>

<indexterm id="INDEX-70" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>operators</primary>
<secondary>scalar context, supplying to parameters</secondary>
</indexterm>

<indexterm id="INDEX-71" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>strings</primary>
<secondary>quoted</secondary>
</indexterm>

<indexterm id="INDEX-72" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>quotes</primary>
<secondary>strings, use in</secondary>
</indexterm>

<indexterm id="INDEX-73" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>double quotes</primary>
<secondary>strings, use in</secondary>
</indexterm>

<indexterm id="INDEX-74" file="ch01_02.htm" sect="1.2.1.1. Singularities">
<primary>operators</primary>
<secondary>quotes, syntactical similarity to</secondary>
</indexterm>

<indexterm id="INDEX-75" file="ch01_02.htm" sect="1.2.1.2. Pluralities">
<primary>pluralities</primary>
</indexterm>

<indexterm id="INDEX-76" file="ch01_02.htm" sect="1.2.1.2. Pluralities">
<primary>arrays</primary>
</indexterm>

<indexterm id="INDEX-77" file="ch01_02.htm" sect="1.2.1.2. Pluralities">
<primary>lists</primary>
</indexterm>

<indexterm id="INDEX-78" file="ch01_02.htm" sect="1.2.1.2. Pluralities">
<primary>scalars</primary>
<secondary>list of</secondary>
<see>arrays </see>
</indexterm>

<indexterm id="INDEX-79" file="ch01_02.htm" sect="1.2.1.2. Pluralities">
<primary>hashes</primary>
</indexterm>

<indexterm id="INDEX-80" file="ch01_02.htm" sect="1.2.1.2. Pluralities">
<primary>names</primary>
<secondary>hashes, storing in</secondary>
</indexterm>

<indexterm id="INDEX-81" file="ch01_02.htm" sect="1.2.1.2. Pluralities">
<primary>numbers</primary>
<secondary>arrays, storing in</secondary>
</indexterm>

<indexterm id="INDEX-82" file="ch01_02.htm" sect="1.2.1.2.1. Arrays.">
<primary>subarrays and subhashes</primary>
<secondary>references to, in arrays</secondary>
</indexterm>

<indexterm id="INDEX-83" file="ch01_02.htm" sect="1.2.1.2.1. Arrays.">
<primary>subscripts, arrays</primary>
</indexterm>

<indexterm id="INDEX-84" file="ch01_02.htm" sect="1.2.1.2.1. Arrays.">
<primary>elements</primary>
<secondary sortas="arrays">in arrays</secondary>
</indexterm>

<indexterm id="INDEX-85" file="ch01_02.htm" sect="1.2.1.2.1. Arrays.">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
<secondary sortas="scalar variable">for scalar variable names</secondary>
</indexterm>

<indexterm id="INDEX-86" file="ch01_02.htm" sect="1.2.1.2.1. Arrays.">
<primary>stacks</primary>
</indexterm>

<indexterm id="INDEX-87" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>unordered
lists</primary>
<see>hashes</see>
</indexterm>

<indexterm id="INDEX-88" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>hashes</primary>
</indexterm>

<indexterm id="INDEX-89" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>scalars</primary>
<secondary>unordered set
of</secondary>
<see>hashes </see>
</indexterm>

<indexterm id="INDEX-90" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>associative
arrays</primary>
<see>hashes</see>
</indexterm>

<indexterm id="INDEX-91" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>key/value pairs</primary>
</indexterm>

<indexterm id="INDEX-92" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>hashes</primary>
<secondary>key/value pairs in</secondary>
</indexterm>

<indexterm id="INDEX-93" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary sortas="@percent">% (percent sign)</primary>
<secondary sortas="hash">for hash names</secondary>
</indexterm>

<indexterm id="INDEX-94" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>percent (%) sign</primary>
<see>%</see>
</indexterm>

<indexterm id="INDEX-95" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="equalgreaterthan">=&gt; (corresponds to) operator</secondary>
</indexterm>

<indexterm id="INDEX-96" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary sortas="@comma">, (comma)</primary>
<secondary>key/value pairs and</secondary>
</indexterm>

<indexterm id="INDEX-97" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>comma (,)</primary>
<see>,</see>
</indexterm>

<indexterm id="INDEX-98" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>list context</primary>
<secondary>hashes in</secondary>
</indexterm>

<indexterm id="INDEX-99" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>keys(thinsp;&amp;)</primary>
</indexterm>

<indexterm id="INDEX-100" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>sort(thinsp;&amp;)</primary>
<secondary>keys, lists of</secondary>
</indexterm>

<indexterm id="INDEX-101" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>{thinsp&amp;;} (braces)</primary>
<secondary>hash key, enclosing in</secondary>
</indexterm>

<indexterm id="INDEX-102" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>keys, hashes</primary>
<secondary>braces {thinsp&amp;;}, enclosing in</secondary>
</indexterm>

<indexterm id="INDEX-103" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>curly braces</primary>
<see>{thinsp&amp;;}</see>
</indexterm>

<indexterm id="INDEX-104" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
</indexterm>

<indexterm id="INDEX-105" file="ch01_02.htm" sect="1.2.1.2.2. Hashes.">
<primary>dollar sign ($)</primary>
<see>$</see>
</indexterm>

<indexterm id="INDEX-106" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>lists</primary>
<secondary>converting to scalars</secondary>
</indexterm>

<indexterm id="INDEX-107" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary sortas="@parens">(thinsp&amp;;) (parentheses)</primary>
</indexterm>

<indexterm id="INDEX-108" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary sortas="@comma">, (comma)</primary>
<secondary sortas="separator">as separator</secondary>
</indexterm>

<indexterm id="INDEX-109" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>parentheses (thinsp&amp;;)</primary>
<see>(thinsp&amp;;)</see>
</indexterm>

<indexterm id="INDEX-110" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>scalars</primary>
<secondary>lists, converting to</secondary>
</indexterm>

<indexterm id="INDEX-111" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>multidimensional arrays</primary>
</indexterm>

<indexterm id="INDEX-112" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>arrays</primary>
<secondary>multidimensional</secondary>
</indexterm>

<indexterm id="INDEX-113" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>nested data structures</primary>
</indexterm>

<indexterm id="INDEX-114" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>data structures</primary>
<secondary>complex, representing as scalars</secondary>
</indexterm>

<indexterm id="INDEX-115" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>complex data structures</primary>
<secondary>representing as scalars</secondary>
</indexterm>

<indexterm id="INDEX-116" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>scalars</primary>
<secondary>complex data structures, representing as</secondary>
</indexterm>

<indexterm id="INDEX-117" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>encapsulation</primary>
</indexterm>

<indexterm id="INDEX-118" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>objects</primary>
</indexterm>

<indexterm id="INDEX-119" file="ch01_02.htm" sect="1.2.1.3. Complexities">
<primary>attributes</primary>
<secondary>objects, hashes of</secondary>
</indexterm>

<indexterm id="INDEX-120" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>topicalization</primary>
</indexterm>

<indexterm id="INDEX-121" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>packages</primary>
</indexterm>

<indexterm id="INDEX-122" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>modules</primary>
</indexterm>

<indexterm id="INDEX-123" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>declarations</primary>
<secondary>packages</secondary>
</indexterm>

<indexterm id="INDEX-124" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>global names</primary>
<secondary>prefixing with module name</secondary>
</indexterm>

<indexterm id="INDEX-125" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>namespaces</primary>
<secondary sortas="packages">for packages</secondary>
</indexterm>

<indexterm id="INDEX-126" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>verbs, packages, handling of</primary>
</indexterm>

<indexterm id="INDEX-127" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>nouns</primary>
<secondary>packages, handling of</secondary>
</indexterm>

<indexterm id="INDEX-128" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>use declarations</primary>
</indexterm>

<indexterm id="INDEX-129" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>declarations</primary>
<secondary>use declarations</secondary>
</indexterm>

<indexterm id="INDEX-130" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>modules</primary>
<secondary>CPAN, collection of</secondary>
</indexterm>

<indexterm id="INDEX-131" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>CPAN (Comprehensive Pearl Archive Network)</primary>
</indexterm>

<indexterm id="INDEX-132" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>Comprehensive Pearl Archive Network</primary>
<see>CPAN</see>
</indexterm>

<indexterm id="INDEX-133" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>pragmas</primary>
</indexterm>

<indexterm id="INDEX-134" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>strict module</primary>
</indexterm>

<indexterm id="INDEX-135" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>projects, large, benefits of strict pragma in</primary>
</indexterm>

<indexterm id="INDEX-136" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>scope</primary>
<secondary>variables</secondary>
<tertiary>strict pragma and</tertiary>
</indexterm>

<indexterm id="INDEX-137" file="ch01_02.htm" sect="1.2.1.4. Simplicities">
<primary>variables</primary>
<secondary>scoping, strict pragma, use of</secondary>
</indexterm>

<indexterm id="INDEX-138" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>verbs</primary>
</indexterm>

<indexterm id="INDEX-139" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>procedures</primary>
</indexterm>

<indexterm id="INDEX-140" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>commands</primary>
<secondary>names
for</secondary>
</indexterm>

<indexterm id="INDEX-141" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>names</primary>
<secondary>commands</secondary>
</indexterm>

<indexterm id="INDEX-142" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>functions</primary>
</indexterm>

<indexterm id="INDEX-143" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>names</primary>
<secondary>functions</secondary>
</indexterm>

<indexterm id="INDEX-144" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>operators</primary>
<secondary>verbs as</secondary>
</indexterm>

<indexterm id="INDEX-145" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>subroutines</primary>
<secondary>user-defined</secondary>
</indexterm>

<indexterm id="INDEX-146" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>user-defined subroutines</primary>
</indexterm>

<indexterm id="INDEX-147" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary>user-defined subroutines</primary>
<seealso>subroutines</seealso>
</indexterm>

<indexterm id="INDEX-148" file="ch01_02.htm" sect="1.2.2. Verbs">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary>Perl version 5, changes in use</secondary>
</indexterm>

<indexterm id="INDEX-149" file="ch01_03.htm" sect="1.3. An Average Example">
<primary>programs, Perl</primary>
<secondary>student gade averages, calculating and printing</secondary>
</indexterm>

<indexterm id="INDEX-150" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>executing</primary>
<secondary>Perl program</secondary>
</indexterm>

<indexterm id="INDEX-151" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>Perl interpreter</primary>
</indexterm>

<indexterm id="INDEX-152" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>interpreters, Perl</primary>
</indexterm>

<indexterm id="INDEX-153" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>command line</primary>
<secondary>calling perl interpreter from</secondary>
</indexterm>

<indexterm id="INDEX-154" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>Macintosh operating system</primary>
<secondary>command-line interface in versions</secondary>
</indexterm>

<indexterm id="INDEX-155" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>Perl interpreter</primary>
<secondary sortas="e">-e switch</secondary>
</indexterm>

<indexterm id="INDEX-156" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>operating systems</primary>
<secondary>perl interpreter, starting on</secondary>
</indexterm>

<indexterm id="INDEX-157" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>one-liners</primary>
</indexterm>

<indexterm id="INDEX-158" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>text editors, scripts, entering into</primary>
</indexterm>

<indexterm id="INDEX-159" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>shebang notation</primary>
<see>#!</see>
</indexterm>

<indexterm id="INDEX-160" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>scripts, Perl</primary>
<secondary>perl interpreter, associating with</secondary>
</indexterm>

<indexterm id="INDEX-161" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary sortas="sharp"># (sharp)</primary>
<secondary sortas="sharpbang notation">#! (shebang) notation</secondary>
</indexterm>

<indexterm id="INDEX-162" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>PATH environment variable</primary>
</indexterm>

<indexterm id="INDEX-163" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>chmod function</primary>
</indexterm>

<indexterm id="INDEX-164" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>Unix operating system</primary>
<secondary>test command, test scripts and</secondary>
</indexterm>

<indexterm id="INDEX-165" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>test command (Unix)</primary>
</indexterm>

<indexterm id="INDEX-166" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>Perl interpreter</primary>
<secondary sortas="w switch">-w switch</secondary>
</indexterm>

<indexterm id="INDEX-167" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>-w switch, turning on warning messages with</primary>
</indexterm>

<indexterm id="INDEX-168" file="ch01_03.htm" sect="1.3.1. How to Do It">
<primary>warning messages</primary>
<secondary>-w switch, turning on with</secondary>
</indexterm>

<indexterm id="INDEX-169" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>filehandles</primary>
</indexterm>

<indexterm id="INDEX-170" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>running</primary>
<see>executing</see>
</indexterm>

<indexterm id="INDEX-171" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>input filehandles</primary>
</indexterm>

<indexterm id="INDEX-172" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>output filehandles</primary>
</indexterm>

<indexterm id="INDEX-173" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>glue language, Perl as</primary>
</indexterm>

<indexterm id="INDEX-174" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>filehandles</primary>
<secondary>creating</secondary>
</indexterm>

<indexterm id="INDEX-175" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>STDIN</primary>
</indexterm>

<indexterm id="INDEX-176" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>STDOUT</primary>
</indexterm>

<indexterm id="INDEX-177" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>open function</primary>
</indexterm>

<indexterm id="INDEX-178" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>shells</primary>
<secondary>I/O streams, setting up</secondary>
</indexterm>

<indexterm id="INDEX-179" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>processes</primary>
<secondary>standard input, output, and error in</secondary>
</indexterm>

<indexterm id="INDEX-180" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>line reading operator</primary>
</indexterm>

<indexterm id="INDEX-181" file="ch01_04.htm" sect="1.4. Filehandles">
<primary sortas="@lessthan">&lt; (left angle bracket)</primary>
<secondary sortas="@lessthan">&lt; (less than) operator</secondary>
</indexterm>

<indexterm id="INDEX-182" file="ch01_04.htm" sect="1.4. Filehandles">
<primary sortas="@greaterthan">&gt; (right angle bracket)</primary>
<secondary sortas="@greaterthan">&gt; (greater than) operator</secondary>
</indexterm>

<indexterm id="INDEX-183" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>angle brackets</primary>
<see>&lt;; &gt;</see>
</indexterm>

<indexterm id="INDEX-184" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>empty angle operator (&lt;&gt;)</primary>
</indexterm>

<indexterm id="INDEX-185" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>output filehandles;STDOUT</primary>
</indexterm>

<indexterm id="INDEX-186" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>print function</primary>
</indexterm>

<indexterm id="INDEX-187" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>newlines</primary>
<secondary>removing</secondary>
</indexterm>

<indexterm id="INDEX-188" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>chop function</primary>
</indexterm>

<indexterm id="INDEX-189" file="ch01_04.htm" sect="1.4. Filehandles">
<primary>chomp function</primary>
</indexterm>

<indexterm id="INDEX-190" file="ch01_05.htm" sect="1.5. Operators">
<primary>operators</primary>
</indexterm>

<indexterm id="INDEX-191" file="ch01_05.htm" sect="1.5. Operators">
<primary>mathematics</primary>
<secondary>operators in Perl</secondary>
</indexterm>

<indexterm id="INDEX-192" file="ch01_05.htm" sect="1.5. Operators">
<primary>unary operators</primary>
</indexterm>

<indexterm id="INDEX-193" file="ch01_05.htm" sect="1.5. Operators">
<primary>binary operators</primary>
</indexterm>

<indexterm id="INDEX-194" file="ch01_05.htm" sect="1.5. Operators">
<primary>trinary operators</primary>
</indexterm>

<indexterm id="INDEX-195" file="ch01_05.htm" sect="1.5. Operators">
<primary>prefix operators</primary>
</indexterm>

<indexterm id="INDEX-196" file="ch01_05.htm" sect="1.5. Operators">
<primary>infix operators</primary>
</indexterm>

<indexterm id="INDEX-197" file="ch01_05.htm" sect="1.5.1. Some Binary Arithmetic Operators">
<primary>arithmetic operators</primary>
<secondary>binary arithmetic operators</secondary>
</indexterm>

<indexterm id="INDEX-198" file="ch01_05.htm" sect="1.5.1. Some Binary Arithmetic Operators">
<primary>addition</primary>
</indexterm>

<indexterm id="INDEX-199" file="ch01_05.htm" sect="1.5.1. Some Binary Arithmetic Operators">
<primary>multiplication</primary>
</indexterm>

<indexterm id="INDEX-200" file="ch01_05.htm" sect="1.5.1. Some Binary Arithmetic Operators">
<primary>arithmetic operators</primary>
<secondary>order of evaluation</secondary>
</indexterm>

<indexterm id="INDEX-201" file="ch01_05.htm" sect="1.5.1. Some Binary Arithmetic Operators">
<primary>operators</primary>
<secondary>precedence of</secondary>
</indexterm>

<indexterm id="INDEX-202" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>strings</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-203" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>operators</primary>
<secondary>string operators</secondary>
</indexterm>

<indexterm id="INDEX-204" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>concatenation (.) operator</primary>
</indexterm>

<indexterm id="INDEX-205" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>concatenating strings</primary>
</indexterm>

<indexterm id="INDEX-206" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary sortas="@dot">. (dot)</primary>
<secondary>(concatenation) operator</secondary>
</indexterm>

<indexterm id="INDEX-207" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>multiplicative operators</primary>
</indexterm>

<indexterm id="INDEX-208" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>binary</primary>
<secondary>repetition (x) operator</secondary>
</indexterm>

<indexterm id="INDEX-209" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>x operator</primary>
</indexterm>

<indexterm id="INDEX-210" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>repetition (x) operator</primary>
</indexterm>

<indexterm id="INDEX-211" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>multiplication</primary>
<secondary>strings, repeat operator</secondary>
</indexterm>

<indexterm id="INDEX-212" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>repetition (x) operator</primary>
</indexterm>

<indexterm id="INDEX-213" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>x (repetition operator)</primary>
</indexterm>

<indexterm id="INDEX-214" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>double-quoted strings</primary>
<secondary>interpolation and concatenation</secondary>
</indexterm>

<indexterm id="INDEX-215" file="ch01_05.htm" sect="1.5.2. String Operators">
<primary>interpolation</primary>
<secondary>double-quoted strings</secondary>
</indexterm>

<indexterm id="INDEX-216" file="ch01_05.htm" sect="1.5.3. Assignment Operators">
<primary>assignment operators</primary>
</indexterm>

<indexterm id="INDEX-217" file="ch01_05.htm" sect="1.5.3. Assignment Operators">
<primary>operators</primary>
<secondary>assignment operators</secondary>
</indexterm>

<indexterm id="INDEX-218" file="ch01_05.htm" sect="1.5.3. Assignment Operators">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equalequal">== (equal to) operator</secondary>
</indexterm>

<indexterm id="INDEX-219" file="ch01_05.htm" sect="1.5.3. Assignment Operators">
<primary>storage locations</primary>
<secondary>lvalues for</secondary>
</indexterm>

<indexterm id="INDEX-220" file="ch01_05.htm" sect="1.5.3. Assignment Operators">
<primary>lvalues</primary>
<secondary>operators and</secondary>
</indexterm>

<indexterm id="INDEX-221" file="ch01_05.htm" sect="1.5.3. Assignment Operators">
<primary>assignment operators</primary>
<secondary>values, returning</secondary>
</indexterm>

<indexterm id="INDEX-222" file="ch01_05.htm" sect="1.5.3. Assignment Operators">
<primary>variables</primary>
<secondary>values, assignment and</secondary>
</indexterm>

<indexterm id="INDEX-226" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary>autoincrement (++) operator</primary>
</indexterm>

<indexterm id="INDEX-227" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary>autodecrement (--) operator</primary>
</indexterm>

<indexterm id="INDEX-228" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary>unary operators</primary>
<secondary>arithmetic</secondary>
</indexterm>

<indexterm id="INDEX-229" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary sortas="plus">+ (plus)</primary>
<secondary sortas="plusplus">++ (autoincrement) operator</secondary>
</indexterm>

<indexterm id="INDEX-230" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary sortas="hyphen">- (hyphen)</primary>
<secondary sortas="hyphenhyphen">-- (autodecrement) operator</secondary>
</indexterm>

<indexterm id="INDEX-231" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary>incrementing variables</primary>
</indexterm>

<indexterm id="INDEX-232" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary>decrementing variables</primary>
</indexterm>

<indexterm id="INDEX-233" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary>pre-incremented (pre-decremented) variables</primary>
</indexterm>

<indexterm id="INDEX-234" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary>post-incremented (post-decremented) variables</primary>
</indexterm>

<indexterm id="INDEX-235" file="ch01_05.htm" sect="1.5.4. Unary Arithmetic Operators">
<primary>void context</primary>
</indexterm>

<indexterm id="INDEX-236" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>logical operators</primary>
</indexterm>

<indexterm id="INDEX-237" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>short-circuit operators</primary>
<see>logical operators</see>
</indexterm>

<indexterm id="INDEX-238" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>operators</primary>
<secondary>logical operators</secondary>
</indexterm>

<indexterm id="INDEX-239" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>if statements</primary>
<secondary>logical operators and</secondary>
</indexterm>

<indexterm id="INDEX-240" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>BASIC programming language</primary>
<secondary>logical operators borrowed from</secondary>
</indexterm>

<indexterm id="INDEX-241" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>precedence</primary>
<secondary>logical operators</secondary>
</indexterm>

<indexterm id="INDEX-242" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="@ampersandampersand">&amp;&amp; (logical and) operator</secondary>
</indexterm>

<indexterm id="INDEX-243" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary sortas="and ampersandampersand">and (&amp;&amp;) logical operator</primary>
</indexterm>

<indexterm id="INDEX-244" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary sortas="@logicalor">|| (OR logical operator)</primary>
</indexterm>

<indexterm id="INDEX-245" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>OR logical operator</primary>
</indexterm>

<indexterm id="INDEX-246" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>Or operator</primary>
</indexterm>

<indexterm id="INDEX-247" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>Xor logical operator</primary>
</indexterm>

<indexterm id="INDEX-248" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>conditional code execution</primary>
</indexterm>

<indexterm id="INDEX-249" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>executing</primary>
<secondary>code, conditionally</secondary>
</indexterm>

<indexterm id="INDEX-250" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary sortas="@dollarsignbang">$! variable</primary>
</indexterm>

<indexterm id="INDEX-251" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>if statements</primary>
</indexterm>

<indexterm id="INDEX-252" file="ch01_05.htm" sect="1.5.5. Logical Operators">
<primary>while statements</primary>
</indexterm>

<indexterm id="INDEX-253" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary>comparison operators</primary>
</indexterm>

<indexterm id="INDEX-254" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary>relational operators</primary>
<see>relational operators</see>
</indexterm>

<indexterm id="INDEX-255" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary>strings</primary>
<secondary>comparison operators</secondary>
</indexterm>

<indexterm id="INDEX-256" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary>numbers</primary>
<secondary>comparison operators for</secondary>
</indexterm>

<indexterm id="INDEX-257" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equalequal">== (equal to) operator</secondary>
</indexterm>

<indexterm id="INDEX-258" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary sortas="@bang">! (bang)</primary>
<secondary sortas="notequal">!= (not equal to) operator</secondary>
</indexterm>

<indexterm id="INDEX-259" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary sortas="@lessthan">&lt; (left angle bracket)</primary>
<secondary sortas="@lessthan">&lt; (less than) operator</secondary>
</indexterm>

<indexterm id="INDEX-260" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary sortas="@greaterthan">&gt; (right angle bracket)</primary>
<secondary sortas="@greaterthan">&gt; (grater than) operator</secondary>
</indexterm>

<indexterm id="INDEX-261" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary sortas="@lessthan">&lt; (left angle bracket)</primary>
<secondary sortas="@lessthan">&lt;= (less than or equal) operator</secondary>
</indexterm>

<indexterm id="INDEX-262" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary sortas="@lessthan">&lt; (left angle bracket)</primary>
<secondary sortas="@leftequalright">&lt;=&gt; (comparison) operator</secondary>
</indexterm>

<indexterm id="INDEX-263" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary>comparison operators</primary>
</indexterm>

<indexterm id="INDEX-264" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary>cmp operator</primary>
</indexterm>

<indexterm id="INDEX-265" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary>redundancy in Perl</primary>
</indexterm>

<indexterm id="INDEX-266" file="ch01_05.htm" sect="1.5.6. Some Numeric and String Comparison Operators">
<primary>sort subroutines</primary>
<secondary>comparison operators in</secondary>
</indexterm>

<indexterm id="INDEX-267" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>files</primary>
<secondary>test operators</secondary>
</indexterm>

<indexterm id="INDEX-268" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>test operators (files)</primary>
</indexterm>

<indexterm id="INDEX-269" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>attributes</primary>
<secondary>files, test operators for</secondary>
</indexterm>

<indexterm id="INDEX-270" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary sortas="e exists">-e (exists) file test</primary>
</indexterm>

<indexterm id="INDEX-271" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary sortas="r readable effective">-r (readable by effective uid/gid) file test</primary>
</indexterm>

<indexterm id="INDEX-272" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>readable file test operator</primary>
</indexterm>

<indexterm id="INDEX-273" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>-w (writable by effective uid/gid) file test</primary>
</indexterm>

<indexterm id="INDEX-274" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>writable file test operator</primary>
</indexterm>

<indexterm id="INDEX-275" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>-d (directory) file test</primary>
</indexterm>

<indexterm id="INDEX-276" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>directories</primary>
<secondary>file test operator</secondary>
</indexterm>

<indexterm id="INDEX-277" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>-f (plain) file test</primary>
</indexterm>

<indexterm id="INDEX-278" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>regular files, testing for</primary>
</indexterm>

<indexterm id="INDEX-279" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>-T (text) file test</primary>
</indexterm>

<indexterm id="INDEX-280" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>text files, -T (file test) operator</primary>
</indexterm>

<indexterm id="INDEX-281" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>binary files</primary>
<secondary sortas="regular files">as regular files</secondary>
</indexterm>

<indexterm id="INDEX-282" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>irregular files</primary>
</indexterm>

<indexterm id="INDEX-283" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>Boolean</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-284" file="ch01_05.htm" sect="1.5.7. Some File Test Operators">
<primary>unary operators</primary>
<secondary>Boolean</secondary>
</indexterm>

<indexterm id="INDEX-285" file="ch01_06.htm" sect="1.6. Control Structures">
<primary>control structures</primary>
</indexterm>

<indexterm id="INDEX-286" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>control structures</primary>
<secondary>truth, defining</secondary>
</indexterm>

<indexterm id="INDEX-287" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>Boolean</primary>
<secondary>definition of truth</secondary>
</indexterm>

<indexterm id="INDEX-288" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>truth values</primary>
<secondary>evaluating for in Perl</secondary>
</indexterm>

<indexterm id="INDEX-289" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>false value</primary>
<see>false value</see>
</indexterm>

<indexterm id="INDEX-290" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>scalars</primary>
<secondary>truth, evaluating in</secondary>
</indexterm>

<indexterm id="INDEX-291" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>strings</primary>
<secondary>truth values of</secondary>
</indexterm>

<indexterm id="INDEX-292" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>numbers</primary>
<secondary>truth values of</secondary>
</indexterm>

<indexterm id="INDEX-293" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>references</primary>
<secondary>truth value of</secondary>
</indexterm>

<indexterm id="INDEX-294" file="ch01_06.htm" sect="1.6.1. What Is Truth?">
<primary>values</primary>
<secondary>undefined, truth value of</secondary>
</indexterm>

<indexterm id="INDEX-295" file="ch01_06.htm" sect="1.6.1.1. The if and unless statements">
<primary>truth conditions</primary>
<secondary>if and unless statements, evaluating with</secondary>
</indexterm>

<indexterm id="INDEX-296" file="ch01_06.htm" sect="1.6.1.1. The if and unless statements">
<primary>if statements</primary>
</indexterm>

<indexterm id="INDEX-297" file="ch01_06.htm" sect="1.6.1.1. The if and unless statements">
<primary>blocks</primary>
</indexterm>

<indexterm id="INDEX-298" file="ch01_06.htm" sect="1.6.1.1. The if and unless statements">
<primary>blocks</primary>
<seealso>statements</seealso>
</indexterm>

<indexterm id="INDEX-299" file="ch01_06.htm" sect="1.6.1.1. The if and unless statements">
<primary sortas="braces">{} (braces)</primary>
<secondary sortas="statement blocks">for statement blocks</secondary>
</indexterm>

<indexterm id="INDEX-300" file="ch01_06.htm" sect="1.6.1.1. The if and unless statements">
<primary>else statements</primary>
</indexterm>

<indexterm id="INDEX-301" file="ch01_06.htm" sect="1.6.1.1. The if and unless statements">
<primary>eleseif statements</primary>
</indexterm>

<indexterm id="INDEX-302" file="ch01_06.htm" sect="1.6.1.1. The if and unless statements">
<primary>unless statements</primary>
</indexterm>

<indexterm id="INDEX-303" file="ch01_06.htm" sect="1.6.2. Iterative (Looping) Constructs">
<primary>iterative statements</primary>
</indexterm>

<indexterm id="INDEX-304" file="ch01_06.htm" sect="1.6.2. Iterative (Looping) Constructs">
<primary>loops</primary>
</indexterm>

<indexterm id="INDEX-305" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary>while loops</primary>
</indexterm>

<indexterm id="INDEX-306" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary>iterative statements</primary>
<secondary>while loops</secondary>
</indexterm>

<indexterm id="INDEX-307" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary>loops</primary>
<secondary>while loops</secondary>
</indexterm>

<indexterm id="INDEX-308" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary>iterative statements</primary>
<secondary>until statements</secondary>
</indexterm>

<indexterm id="INDEX-309" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary sortas="@dollarvariables">$ variables</primary>
<secondary sortas="@dollarline">$line</secondary>
</indexterm>

<indexterm id="INDEX-310" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary>blank lines, truth value of</primary>
</indexterm>

<indexterm id="INDEX-311" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary>newlines</primary>
<secondary>blank lines, truth values and</secondary>
</indexterm>

<indexterm id="INDEX-312" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary>eof function</primary>
</indexterm>

<indexterm id="INDEX-313" file="ch01_06.htm" sect="1.6.2.1. The while and until statements">
<primary>shift operator</primary>
</indexterm>

<indexterm id="INDEX-314" file="ch01_06.htm" sect="1.6.2.2. The for statement">
<primary>loops</primary>
<secondary>for loops</secondary>
</indexterm>

<indexterm id="INDEX-315" file="ch01_06.htm" sect="1.6.2.2. The for statement">
<primary>iterative statements</primary>
<secondary>for loops</secondary>
</indexterm>

<indexterm id="INDEX-316" file="ch01_06.htm" sect="1.6.2.2. The for statement">
<primary>for loops</primary>
</indexterm>

<indexterm id="INDEX-317" file="ch01_06.htm" sect="1.6.2.3. The foreach statement">
<primary>iterative statements</primary>
<secondary>foreach statement</secondary>
</indexterm>

<indexterm id="INDEX-318" file="ch01_06.htm" sect="1.6.2.3. The foreach statement">
<primary>loops</primary>
<secondary>foreach loops</secondary>
</indexterm>

<indexterm id="INDEX-319" file="ch01_06.htm" sect="1.6.2.3. The foreach statement">
<primary>foreach loops</primary>
</indexterm>

<indexterm id="INDEX-320" file="ch01_06.htm" sect="1.6.2.3. The foreach statement">
<primary>list context</primary>
<secondary>foreach statements, providing</secondary>
</indexterm>

<indexterm id="INDEX-321" file="ch01_06.htm" sect="1.6.2.4. Breaking out: next and last">
<primary>loops</primary>
<secondary>next and last operators</secondary>
</indexterm>

<indexterm id="INDEX-322" file="ch01_06.htm" sect="1.6.2.4. Breaking out: next and last">
<primary>next operator</primary>
</indexterm>

<indexterm id="INDEX-323" file="ch01_06.htm" sect="1.6.2.4. Breaking out: next and last">
<primary>last operator</primary>
</indexterm>

<indexterm id="INDEX-325" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>patterns (and regular expressions)</primary>
</indexterm>

<indexterm id="INDEX-326" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>regexps</primary>
<see>patterns</see>
</indexterm>

<indexterm id="INDEX-327" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>regexes</primary>
<see>patterns</see>
</indexterm>

<indexterm id="INDEX-328" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>REs</primary>
<see>patterns</see>
</indexterm>

<indexterm id="INDEX-329" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>search programs</primary>
</indexterm>

<indexterm id="INDEX-330" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>grep function</primary>
</indexterm>

<indexterm id="INDEX-331" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>findstr function</primary>
</indexterm>

<indexterm id="INDEX-332" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>awk</primary>
</indexterm>

<indexterm id="INDEX-333" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>sed</primary>
</indexterm>

<indexterm id="INDEX-334" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>vi editor</primary>
<secondary>regular expressions, use
of</secondary>
</indexterm>

<indexterm id="INDEX-335" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>emacs editor</primary>
<secondary>regular expressions, use of</secondary>
</indexterm>

<indexterm id="INDEX-336" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>patterns (and regular expressions)</primary>
<secondary>matching</secondary>
<tertiary>operators for</tertiary>
</indexterm>

<indexterm id="INDEX-337" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>substitution operator</primary>
</indexterm>

<indexterm id="INDEX-338" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>s operator</primary>
<see>substitution operator</see>
</indexterm>

<indexterm id="INDEX-339" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>split function</primary>
</indexterm>

<indexterm id="INDEX-340" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>separators</primary>
<secondary>split operator, defining</secondary>
</indexterm>

<indexterm id="INDEX-341" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>links</primary>
<secondary>HTTP, searching for</secondary>
</indexterm>

<indexterm id="INDEX-342" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>HTTP (Hypertext Transfer Protocol)</primary>
<secondary>links, searching for</secondary>
</indexterm>

<indexterm id="INDEX-343" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equaltilde">=~ (pattern binding) operator</secondary>
</indexterm>

<indexterm id="INDEX-344" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>pattern-binding operator</primary>
</indexterm>

<indexterm id="INDEX-345" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>find command</primary>
</indexterm>

<indexterm id="INDEX-346" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>grep command</primary>
</indexterm>

<indexterm id="INDEX-347" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>findstr function</primary>
</indexterm>

<indexterm id="INDEX-348" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>binding operator (=~)</primary>
</indexterm>

<indexterm id="INDEX-349" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary sortas="@dollarvariable">$ variables</primary>
<secondary sortas="dollarunderscorevariable">$_ variable</secondary>
</indexterm>

<indexterm id="INDEX-350" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>character classes</primary>
</indexterm>

<indexterm id="INDEX-351" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>patterns (and regular expressions)</primary>
<secondary>character classes</secondary>
</indexterm>

<indexterm id="INDEX-352" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary sortas="plus">+ (plus)</primary>
<secondary>quantifier</secondary>
</indexterm>

<indexterm id="INDEX-353" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>quantifiers</primary>
</indexterm>

<indexterm id="INDEX-354" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>whitespace</primary>
</indexterm>

<indexterm id="INDEX-355" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>word character</primary>
</indexterm>

<indexterm id="INDEX-356" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>digits</primary>
</indexterm>

<indexterm id="INDEX-357" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>s for whitespace=\s (for whitespace)</primary>
</indexterm>

<indexterm id="INDEX-358" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>w forward character=\w (forward character)</primary>
</indexterm>

<indexterm id="INDEX-359" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>d for digit=\d (for digit)</primary>
</indexterm>

<indexterm id="INDEX-360" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>numbers</primary>
<secondary>d for digit=\d (for digit)</secondary>
</indexterm>

<indexterm id="INDEX-361" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>Unicode characters</primary>
</indexterm>

<indexterm id="INDEX-362" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary>ideographs</primary>
</indexterm>

<indexterm id="INDEX-363" file="ch01_07.htm" sect="1.7. Regular Expressions">
<primary sortas="@dot">. (dot)</primary>
<secondary>character
wildcard</secondary>
</indexterm>

<indexterm id="INDEX-364" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary>quantifiers</primary>
</indexterm>

<indexterm id="INDEX-365" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary sortas="@braces">{}
(braces)</primary>
<secondary>quantifier</secondary>
</indexterm>

<indexterm id="INDEX-366" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary>curly braces</primary>
<see>{}</see>
</indexterm>

<indexterm id="INDEX-367" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary>maximum and minimum item matches, specifying</primary>
</indexterm>

<indexterm id="INDEX-368" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary>period</primary>
<see>. (dot)</see>
</indexterm>

<indexterm id="INDEX-369" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary sortas="@dot">. (dot)</primary>
<secondary>quantifiers, use in</secondary>
</indexterm>

<indexterm id="INDEX-370" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary sortas="asterisk">* (asterisk)</primary>
<secondary>quantifier</secondary>
</indexterm>

<indexterm id="INDEX-371" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary sortas="question">? (question mark)</primary>
<secondary>quantifier</secondary>
</indexterm>

<indexterm id="INDEX-372" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary>greedy matching</primary>
</indexterm>

<indexterm id="INDEX-373" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary>patterns (and regular expressions)</primary>
<secondary>greedy matching</secondary>
</indexterm>

<indexterm id="INDEX-374" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary>negation</primary>
<secondary>of character class</secondary>
</indexterm>

<indexterm id="INDEX-375" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary sortas="caret">^ (caret)</primary>
<secondary>assertion</secondary>
</indexterm>

<indexterm id="INDEX-376" file="ch01_07.htm" sect="1.7.1. Quantifiers">
<primary sortas="@dollarvariables">$ variables</primary>
<secondary sortas="@dollarunderscorevariable">$_ variable</secondary>
</indexterm>

<indexterm id="INDEX-377" file="ch01_07.htm" sect="1.7.2. Minimal Matching">
<primary>minimal matching</primary>
</indexterm>

<indexterm id="INDEX-378" file="ch01_07.htm" sect="1.7.2. Minimal Matching">
<primary>patterns (and regular expressions)</primary>
<secondary>minimal matching</secondary>
</indexterm>

<indexterm id="INDEX-379" file="ch01_07.htm" sect="1.7.3. Nailing Things Down">
<primary>anchors</primary>
</indexterm>

<indexterm id="INDEX-380" file="ch01_07.htm" sect="1.7.3. Nailing Things Down">
<primary>boundary assertions</primary>
</indexterm>

<indexterm id="INDEX-381" file="ch01_07.htm" sect="1.7.3. Nailing Things Down">
<primary>b word boundary=\b (word
boundary)</primary>
</indexterm>

<indexterm id="INDEX-382" file="ch01_07.htm" sect="1.7.3. Nailing Things Down">
<primary>words</primary>
<secondary>b assertion=\b
assertion</secondary>
</indexterm>

<indexterm id="INDEX-383" file="ch01_07.htm" sect="1.7.3. Nailing Things Down">
<primary>strings</primary>
<secondary>boundary
assertions</secondary>
</indexterm>

<indexterm id="INDEX-384" file="ch01_07.htm" sect="1.7.3. Nailing Things Down">
<primary sortas="caret">^ (caret)</primary>
<secondary>line
boundary</secondary>
</indexterm>

<indexterm id="INDEX-385" file="ch01_07.htm" sect="1.7.3. Nailing Things Down">
<primary sortas="dollar">$
(dollar sign)</primary>
<secondary>word
boundary</secondary>
</indexterm>

<indexterm id="INDEX-386" file="ch01_07.htm" sect="1.7.4. Backreferences">
<primary>patterns (and regular expressions)</primary>
<secondary>backreferences</secondary>
</indexterm>

<indexterm id="INDEX-387" file="ch01_07.htm" sect="1.7.4. Backreferences">
<primary>backreferences</primary>
</indexterm>

<indexterm id="INDEX-388" file="ch01_07.htm" sect="1.7.4. Backreferences">
<primary sortas="@parens">()
(parentheses)</primary>
<secondary sortas="backreferences">for backreferences</secondary>
</indexterm>

<indexterm id="INDEX-389" file="ch01_07.htm" sect="1.7.4. Backreferences">
<primary>interpolation</primary>
<secondary>backreference variables</secondary>
</indexterm>

<indexterm id="INDEX-391" file="ch01_08.htm" sect="1.8. List Processing">
<primary>list context</primary>
</indexterm>

<indexterm id="INDEX-392" file="ch01_08.htm" sect="1.8. List Processing">
<primary>LISTs</primary>
</indexterm>

<indexterm id="INDEX-393" file="ch01_08.htm" sect="1.8. List Processing">
<primary>LISTs===&gt;lists</primary>
</indexterm>

<indexterm id="INDEX-394" file="ch01_08.htm" sect="1.8. List Processing">
<primary>filters, source code</primary>
</indexterm>

<indexterm id="INDEX-395" file="ch01_08.htm" sect="1.8. List Processing">
<primary>keys function</primary>
</indexterm>

<indexterm id="INDEX-396" file="ch01_08.htm" sect="1.8. List Processing">
<primary>sort function</primary>
</indexterm>

<indexterm id="INDEX-397" file="ch01_08.htm" sect="1.8. List Processing">
<primary>map function</primary>
</indexterm>

<indexterm id="INDEX-398" file="ch01_08.htm" sect="1.8. List Processing">
<primary>reverse function</primary>
</indexterm>

<indexterm id="INDEX-399" file="ch01_08.htm" sect="1.8. List Processing">
<primary>print function</primary>
</indexterm>

<indexterm id="INDEX-401" file="ch02_01.htm" sect="2.1. Atoms">
<primary>characters</primary>
</indexterm>

<indexterm id="INDEX-402" file="ch02_01.htm" sect="2.1. Atoms">
<primary>bytes</primary>
</indexterm>

<indexterm id="INDEX-403" file="ch02_01.htm" sect="2.1. Atoms">
<primary>internationalization</primary>
</indexterm>

<indexterm id="INDEX-404" file="ch02_01.htm" sect="2.1. Atoms">
<primary>ASCII</primary>
</indexterm>

<indexterm id="INDEX-405" file="ch02_01.htm" sect="2.1. Atoms">
<primary>Unicode</primary>
</indexterm>

<indexterm id="INDEX-406" file="ch02_01.htm" sect="2.1. Atoms">
<primary>UTF-8</primary>
</indexterm>

<indexterm id="INDEX-407" file="ch02_02.htm" sect="2.2. Molecules">
<primary>free-form languages</primary>
</indexterm>

<indexterm id="INDEX-408" file="ch02_02.htm" sect="2.2. Molecules">
<primary>tokens</primary>
</indexterm>

<indexterm id="INDEX-409" file="ch02_02.htm" sect="2.2. Molecules">
<primary>identifiers</primary>
</indexterm>

<indexterm id="INDEX-410" file="ch02_02.htm" sect="2.2. Molecules">
<primary>whitespace</primary>
</indexterm>

<indexterm id="INDEX-411" file="ch02_02.htm" sect="2.2. Molecules">
<primary>space</primary>
</indexterm>

<indexterm id="INDEX-412" file="ch02_02.htm" sect="2.2. Molecules">
<primary>newline</primary>
</indexterm>

<indexterm id="INDEX-413" file="ch02_02.htm" sect="2.2. Molecules">
<primary>Fortran</primary>
</indexterm>

<indexterm id="INDEX-414" file="ch02_02.htm" sect="2.2. Molecules">
<primary>Python</primary>
</indexterm>

<indexterm id="INDEX-415" file="ch02_02.htm" sect="2.2. Molecules">
<primary sortas="@semicolon">; (semicolon)</primary>
<secondary>Perl statements, terminating with</secondary>
</indexterm>

<indexterm id="INDEX-416" file="ch02_02.htm" sect="2.2. Molecules">
<primary>Unicode</primary>
<secondary>paragraph separator character</secondary>
</indexterm>

<indexterm id="INDEX-417" file="ch02_02.htm" sect="2.2. Molecules">
<primary>Unicode</primary>
<secondary>line separator character</secondary>
</indexterm>

<indexterm id="INDEX-418" file="ch02_02.htm" sect="2.2. Molecules">
<primary>paragraph separator character</primary>
</indexterm>

<indexterm id="INDEX-419" file="ch02_02.htm" sect="2.2. Molecules">
<primary>line separator character</primary>
</indexterm>

<indexterm id="INDEX-420" file="ch02_02.htm" sect="2.2. Molecules">
<primary>greedy matching</primary>
<secondary>tokens</secondary>
</indexterm>

<indexterm id="INDEX-421" file="ch02_02.htm" sect="2.2. Molecules">
<primary sortas="@sharp"># (sharp)</primary>
<secondary sortas="comments">for comments</secondary>
</indexterm>

<indexterm id="INDEX-422" file="ch02_02.htm" sect="2.2. Molecules">
<primary>comments</primary>
<secondary>definition</secondary>
</indexterm>

<indexterm id="INDEX-423" file="ch02_02.htm" sect="2.2. Molecules">
<primary>pod</primary>
<secondary>embedding in
Perl</secondary>
</indexterm>

<indexterm id="INDEX-424" file="ch02_02.htm" sect="2.2. Molecules">
<primary>plain old documentation</primary>
<see>pod</see>
</indexterm>

<indexterm id="INDEX-425" file="ch02_02.htm" sect="2.2. Molecules">
<primary>blocks</primary>
</indexterm>

<indexterm id="INDEX-426" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>data types</primary>
<secondary>built-in</secondary>
</indexterm>

<indexterm id="INDEX-427" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>built-in</primary>
<secondary>data types</secondary>
</indexterm>

<indexterm id="INDEX-428" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>variables</primary>
<seealso>data types</seealso>
</indexterm>

<indexterm id="INDEX-429" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>pointers</primary>
</indexterm>

<indexterm id="INDEX-430" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>scalars</primary>
</indexterm>

<indexterm id="INDEX-431" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>arrays</primary>
</indexterm>

<indexterm id="INDEX-432" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>hashes</primary>
</indexterm>

<indexterm id="INDEX-433" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>negative subscripts in Perl</primary>
</indexterm>

<indexterm id="INDEX-434" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>subscripting</primary>
<secondary>negative</secondary>
</indexterm>

<indexterm id="INDEX-435" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>key/value pairs, hashes</primary>
</indexterm>

<indexterm id="INDEX-436" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>hashes</primary>
<secondary>key/value pairs</secondary>
</indexterm>

<indexterm id="INDEX-437" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>terms in Perl</primary>
</indexterm>

<indexterm id="INDEX-438" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>syntax, Perl</primary>
</indexterm>

<indexterm id="INDEX-439" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>assignment operator</primary>
</indexterm>

<indexterm id="INDEX-440" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>lvalue</primary>
</indexterm>

<indexterm id="INDEX-441" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>rvalue</primary>
</indexterm>

<indexterm id="INDEX-442" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>temporary values</primary>
</indexterm>

<indexterm id="INDEX-443" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>stacks</primary>
<secondary> expression evaluation</secondary>
</indexterm>

<indexterm id="INDEX-444" file="ch02_03.htm" sect="2.3. Built-in Data Types">
<primary>push function</primary>
<secondary>pop function</secondary>
</indexterm>

<indexterm id="INDEX-447" file="ch02_04.htm" sect="2.4. Variables">
<primary>variables</primary>
</indexterm>

<indexterm id="INDEX-448" file="ch02_04.htm" sect="2.4. Variables">
<primary>names</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-449" file="ch02_04.htm" sect="2.4. Variables">
<primary sortas="@dollar">$ (dollar sign) </primary>
<secondary sortas="scalar">for scalar variable names</secondary>
</indexterm>

<indexterm id="INDEX-450" file="ch02_04.htm" sect="2.4. Variables">
<primary>scalars</primary>
</indexterm>

<indexterm id="INDEX-451" file="ch02_04.htm" sect="2.4. Variables">
<primary>names</primary>
<secondary>arrays</secondary>
</indexterm>

<indexterm id="INDEX-452" file="ch02_04.htm" sect="2.4. Variables">
<primary>arrays</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-453" file="ch02_04.htm" sect="2.4. Variables">
<primary>names</primary>
<secondary>hashes</secondary>
</indexterm>

<indexterm id="INDEX-454" file="ch02_04.htm" sect="2.4. Variables">
<primary>hashes</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-455" file="ch02_04.htm" sect="2.4. Variables">
<primary sortas="@at">@ (at sign)</primary>
<secondary sortas="array">for array names</secondary>
</indexterm>

<indexterm id="INDEX-456" file="ch02_04.htm" sect="2.4. Variables">
<primary>slices of arrays or hashes</primary>
</indexterm>

<indexterm id="INDEX-457" file="ch02_04.htm" sect="2.4. Variables">
<primary sortas="@percent">% (percent sign)</primary>
<secondary sortas="hash">for hash names</secondary>
</indexterm>

<indexterm id="INDEX-458" file="ch02_04.htm" sect="2.4. Variables">
<primary>lvalues</primary>
</indexterm>

<indexterm id="INDEX-459" file="ch02_05.htm" sect="2.5. Names">
<primary>subroutines</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-460" file="ch02_05.htm" sect="2.5. Names">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="subroutine">for subroutine names</secondary>
</indexterm>

<indexterm id="INDEX-461" file="ch02_05.htm" sect="2.5. Names">
<primary>names</primary>
</indexterm>

<indexterm id="INDEX-462" file="ch02_05.htm" sect="2.5. Names">
<primary>namespaces</primary>
</indexterm>

<indexterm id="INDEX-463" file="ch02_05.htm" sect="2.5. Names">
<primary>symbol tables</primary>
</indexterm>

<indexterm id="INDEX-464" file="ch02_05.htm" sect="2.5. Names">
<primary>lexical scopes</primary>
</indexterm>

<indexterm id="INDEX-465" file="ch02_05.htm" sect="2.5. Names">
<primary>packages</primary>
</indexterm>

<indexterm id="INDEX-466" file="ch02_05.htm" sect="2.5. Names">
<primary>pads</primary>
</indexterm>

<indexterm id="INDEX-467" file="ch02_05.htm" sect="2.5. Names">
<primary>scope</primary>
</indexterm>

<indexterm id="INDEX-468" file="ch02_05.htm" sect="2.5. Names">
<primary>text</primary>
<secondary>lexical scope and</secondary>
</indexterm>

<indexterm id="INDEX-469" file="ch02_05.htm" sect="2.5. Names">
<primary>subnamespaces, for variables</primary>
</indexterm>

<indexterm id="INDEX-470" file="ch02_05.htm" sect="2.5. Names">
<primary>subroutines</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-471" file="ch02_05.htm" sect="2.5. Names">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="subroutine">for subroutine names</secondary>
</indexterm>

<indexterm id="INDEX-472" file="ch02_05.htm" sect="2.5. Names">
<primary>* (asterisk)</primary>
<secondary sortas="typeglob names">for typeglob names</secondary>
</indexterm>

<indexterm id="INDEX-473" file="ch02_05.htm" sect="2.5. Names">
<primary>typeglobs</primary>
</indexterm>

<indexterm id="INDEX-474" file="ch02_05.htm" sect="2.5. Names">
<primary>names</primary>
<secondary>labels and filehandles</secondary>
</indexterm>

<indexterm id="INDEX-475" file="ch02_05.htm" sect="2.5. Names">
<primary>filehandles</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-476" file="ch02_05.htm" sect="2.5. Names">
<primary>labels</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-477" file="ch02_05.htm" sect="2.5. Names">
<primary>reserved words</primary>
</indexterm>

<indexterm id="INDEX-478" file="ch02_05.htm" sect="2.5. Names">
<primary>names</primary>
<secondary>capitalization conventions</secondary>
</indexterm>

<indexterm id="INDEX-479" file="ch02_05.htm" sect="2.5. Names">
<primary>capitalization</primary>
</indexterm>

<indexterm id="INDEX-480" file="ch02_05.htm" sect="2.5. Names">
<primary>modules</primary>
<secondary>user-defined, capitalization in names</secondary>
</indexterm>

<indexterm id="INDEX-481" file="ch02_05.htm" sect="2.5. Names">
<primary>pragmas</primary>
<secondary>names, capitalization in</secondary>
</indexterm>

<indexterm id="INDEX-482" file="ch02_05.htm" sect="2.5. Names">
<primary sortas="@underscore">_ (underscore)</primary>
</indexterm>

<indexterm id="INDEX-483" file="ch02_05.htm" sect="2.5. Names">
<primary>digits</primary>
<secondary sortas="names">in names</secondary>
</indexterm>

<indexterm id="INDEX-484" file="ch02_05.htm" sect="2.5. Names">
<primary>numbers</primary>
<secondary>digits in names</secondary>
</indexterm>

<indexterm id="INDEX-485" file="ch02_05.htm" sect="2.5. Names">
<primary>identifiers</primary>
</indexterm>

<indexterm id="INDEX-486" file="ch02_05.htm" sect="2.5. Names">
<primary>Unicode characters</primary>
<secondary sortas="identifiers">in identifiers</secondary>
</indexterm>

<indexterm id="INDEX-487" file="ch02_05.htm" sect="2.5. Names">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
<secondary sortas="@dollarsigndollarsign">$$ (current process ID)</secondary>
</indexterm>

<indexterm id="INDEX-488" file="ch02_05.htm" sect="2.5. Names">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
<secondary sortas="@dollarsignquestionmark">$? (exit status, last child process)</secondary>
</indexterm>

<indexterm id="INDEX-489" file="ch02_05.htm" sect="2.5. Names">
<primary sortas="@dollarsign">$ variables</primary>
<secondary sortas="@dollarsignbracecaret">${^ (internal variable names)</secondary>
</indexterm>

<indexterm id="INDEX-490" file="ch02_05.htm" sect="2.5. Names">
<primary>internal variable names, Perl</primary>
</indexterm>

<indexterm id="INDEX-491" file="ch02_05.htm" sect="2.5. Names">
<primary>names</primary>
<secondary>identifiers vs.</secondary>
</indexterm>

<indexterm id="INDEX-492" file="ch02_05.htm" sect="2.5. Names">
<primary>identifiers</primary>
<secondary>names vs.</secondary>
</indexterm>

<indexterm id="INDEX-493" file="ch02_05.htm" sect="2.5. Names">
<primary>fully-qualified names</primary>
</indexterm>

<indexterm id="INDEX-494" file="ch02_05.htm" sect="2.5. Names">
<primary>symbol tables</primary>
<secondary sortas="fully qualified names">in fully qualified names</secondary>
</indexterm>

<indexterm id="INDEX-495" file="ch02_05.htm" sect="2.5. Names">
<primary sortas="@colon">: (colon)</primary>
<secondary sortas="fully qualified names">:: in fully qualified names</secondary>
</indexterm>

<indexterm id="INDEX-496" file="ch02_05.htm" sect="2.5. Names">
<primary>variables</primary>
<secondary>names in nested symbol tables</secondary>
</indexterm>

<indexterm id="INDEX-497" file="ch02_05.htm" sect="2.5. Names">
<primary>variables</primary>
<secondary>package variables</secondary>
</indexterm>

<indexterm id="INDEX-498" file="ch02_05.htm" sect="2.5. Names">
<primary>package variables</primary>
</indexterm>

<indexterm id="INDEX-499" file="ch02_05.htm" sect="2.5. Names">
<primary>symbol tables</primary>
</indexterm>

<indexterm id="INDEX-500" file="ch02_05.htm" sect="2.5. Names">
<primary>packages</primary>
</indexterm>

<indexterm id="INDEX-501" file="ch02_05.htm" sect="2.5. Names">
<primary>scope</primary>
<secondary>lexically scoped variables</secondary>
</indexterm>

<indexterm id="INDEX-502" file="ch02_05.htm" sect="2.5. Names">
<primary>lexical scopes</primary>
<secondary>variables attached to</secondary>
</indexterm>

<indexterm id="INDEX-503" file="ch02_05.htm" sect="2.5. Names">
<primary>my declarations</primary>
</indexterm>

<indexterm id="INDEX-504" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>names</primary>
<secondary>lookups of</secondary>
</indexterm>

<indexterm id="INDEX-505" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>unqualified, names, searching for</primary>
</indexterm>

<indexterm id="INDEX-506" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>our declarations</primary>
</indexterm>

<indexterm id="INDEX-507" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>aliases</primary>
<secondary>symbol table entries</secondary>
</indexterm>

<indexterm id="INDEX-508" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>strict pragma</primary>
</indexterm>

<indexterm id="INDEX-509" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>eval</primary>
</indexterm>

<indexterm id="INDEX-510" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>compilation units</primary>
</indexterm>

<indexterm id="INDEX-511" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>strings</primary>
<secondary sortas="compilation units">as compilation units</secondary>
</indexterm>

<indexterm id="INDEX-512" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>package variables</primary>
</indexterm>

<indexterm id="INDEX-513" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>lexical scopes</primary>
<secondary>package variables, searching for</secondary>
</indexterm>

<indexterm id="INDEX-514" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>top-level package</primary>
</indexterm>

<indexterm id="INDEX-515" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>main package</primary>
</indexterm>

<indexterm id="INDEX-516" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>searching</primary>
<secondary>rules for name searches</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>files</primary>
<secondary>lexically scoped variables and</secondary>
</indexterm>

<indexterm id="INDEX-517" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>indirection</primary>
</indexterm>

<indexterm id="INDEX-518" file="ch02_05.htm" sect="2.5.1. Name Lookups">
<primary>references</primary>
<secondary>references and</secondary>
</indexterm>

<indexterm id="INDEX-521" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>scalar values</primary>
</indexterm>

<indexterm id="INDEX-522" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>scalar values</primary>
</indexterm>

<indexterm id="INDEX-523" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>data
types</primary>
<secondary>scalars</secondary>
<see>scalars</see>
</indexterm>

<indexterm id="INDEX-524" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>values</primary>
<secondary>scalar</secondary>
<see>scalar
values</see>
</indexterm>

<indexterm id="INDEX-525" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>literals</primary>
<secondary>numeric</secondary>
<see>numeric
literals</see>
</indexterm>

<indexterm id="INDEX-526" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>literals</primary>
<secondary>string</secondary>
<see>string
literals</see>
</indexterm>

<indexterm id="INDEX-527" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>undefined scalars</primary>
</indexterm>

<indexterm id="INDEX-528" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>typing variables</primary>
<secondary>scalars</secondary>
</indexterm>

<indexterm id="INDEX-529" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>numbers</primary>
<secondary>typing in Perl</secondary>
</indexterm>

<indexterm id="INDEX-530" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>floating-point numbers</primary>
</indexterm>

<indexterm id="INDEX-531" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>typing variables</primary>
<secondary>subtypes, converting between</secondary>
</indexterm>

<indexterm id="INDEX-532" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>strings</primary>
<secondary>numbers, converting to</secondary>
</indexterm>

<indexterm id="INDEX-533" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>numbers</primary>
<secondary>strings, converting to</secondary>
</indexterm>

<indexterm id="INDEX-534" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>casting</primary>
<secondary>strings and</secondary>
</indexterm>

<indexterm id="INDEX-535" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>references</primary>
<secondary>casting to other pointer types</secondary>
</indexterm>

<indexterm id="INDEX-536" file="ch02_06.htm" sect="2.6. Scalar Values">
<primary>pointers</primary>
<secondary>references, unable to convert to</secondary>
</indexterm>

<indexterm id="INDEX-537" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>numeric literals</primary>
</indexterm>

<indexterm id="INDEX-538" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>exponential notation</primary>
</indexterm>

<indexterm id="INDEX-539" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>scalar values</primary>
<secondary>numeric literals</secondary>
</indexterm>

<indexterm id="INDEX-540" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary sortas="@comma">, (comma)</primary>
<secondary>large numbers and</secondary>
</indexterm>

<indexterm id="INDEX-541" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary sortas="@underscore">_ (underscore)</primary>
<secondary>large numbers and</secondary>
</indexterm>

<indexterm id="INDEX-542" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>numbers</primary>
<secondary>large, underscore and</secondary>
</indexterm>

<indexterm id="INDEX-543" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>strings</primary>
<secondary>converting to numbers</secondary>
<tertiary>0x, 0b, and 0 prefixes, handling of</tertiary>
</indexterm>

<indexterm id="INDEX-544" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>oct function</primary>
</indexterm>

<indexterm id="INDEX-545" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>octal characters</primary>
</indexterm>

<indexterm id="INDEX-546" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>hexadecimal characters</primary>
</indexterm>

<indexterm id="INDEX-547" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>numbers</primary>
<secondary>octal</secondary>
<see>octal
characters</see>
</indexterm>

<indexterm id="INDEX-548" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>numbers</primary>
<secondary>hexadecimal</secondary>
<see>hexadecimal characters</see>
</indexterm>

<indexterm id="INDEX-549" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>characters</primary>
<secondary>octal</secondary>
<see>octal
characters</see>
</indexterm>

<indexterm id="INDEX-550" file="ch02_06.htm" sect="2.6.1. Numeric Literals">
<primary>characters</primary>
<secondary>hexadecimal</secondary>
<see>hexadecimal characters</see>
</indexterm>

<indexterm id="INDEX-551" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>string literals</primary>
</indexterm>

<indexterm id="INDEX-552" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>interpolation</primary>
<secondary>scalar values</secondary>
</indexterm>

<indexterm id="INDEX-553" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>scalar values</primary>
<secondary>string literals</secondary>
</indexterm>

<indexterm id="INDEX-554" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary sortas="@quote2">" (double
quotes)</primary>
</indexterm>

<indexterm id="INDEX-555" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary sortas="@quote1">'
(single quotes)</primary>
</indexterm>

<indexterm id="INDEX-556" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>escape
sequences for control characters</primary>
</indexterm>

<indexterm id="INDEX-557" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>control characters</primary>
</indexterm>

<indexterm id="INDEX-558" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>quotation marks</primary>
<secondary>strings and</secondary>
</indexterm>

<indexterm id="INDEX-559" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>identifiers</primary>
<secondary>single quotes (') in</secondary>
</indexterm>

<indexterm id="INDEX-560" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>interpolation</primary>
<secondary>scalar values</secondary>
<tertiary>characters into double-quoted strings</tertiary>
</indexterm>

<indexterm id="INDEX-561" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>strings</primary>
<secondary>double-quoted</secondary>
<tertiary>character interpolation in</tertiary>
</indexterm>

<indexterm id="INDEX-562" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>backspace character</primary>
</indexterm>

<indexterm id="INDEX-563" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>alert (bell)</primary>
</indexterm>

<indexterm id="INDEX-564" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>ESC character</primary>
</indexterm>

<indexterm id="INDEX-565" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>ESC in octal</primary>
</indexterm>

<indexterm id="INDEX-566" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>DEL in hexadecimal</primary>
</indexterm>

<indexterm id="INDEX-567" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>Control-C</primary>
</indexterm>

<indexterm id="INDEX-568" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>Unicode characters</primary>
<secondary>smiley</secondary>
</indexterm>

<indexterm id="INDEX-569" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>named character</primary>
</indexterm>

<indexterm id="INDEX-570" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>pragmas</primary>
<secondary>use charnames</secondary>
</indexterm>

<indexterm id="INDEX-571" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>capitalization</primary>
<secondary>escape sequences for</secondary>
</indexterm>

<indexterm id="INDEX-572" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>uppercase, converting to</primary>
</indexterm>

<indexterm id="INDEX-573" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>lowercase, converting to</primary>
</indexterm>

<indexterm id="INDEX-574" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>\ (backslash)</primary>
<secondary>\Q notation for backslashing nonalphanumeric characters</secondary>
</indexterm>

<indexterm id="INDEX-575" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>ending escape sequences for character modification</primary>
</indexterm>

<indexterm id="INDEX-576" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>newlines </primary>
<secondary sortas="string">in string literals</secondary>
</indexterm>

<indexterm id="INDEX-577" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>string literals</primary>
<secondary>newlines in</secondary>
</indexterm>

<indexterm id="INDEX-578" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>variable interpolation</primary>
</indexterm>

<indexterm id="INDEX-579" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>interpolation</primary>
<secondary>variables</secondary>
<tertiary>in double-quoted strings</tertiary>
</indexterm>

<indexterm id="INDEX-580" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
<secondary>scalar variable interpolation and</secondary>
</indexterm>

<indexterm id="INDEX-581" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary sortas="@at">@ (at sign)</primary>
<secondary>inside strings, escaping with backslash</secondary>
</indexterm>

<indexterm id="INDEX-582" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary sortas="@braces">{} (braces);identifiers in</primary>
</indexterm>

<indexterm id="INDEX-583" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>quotation marks</primary>
<secondary sortas="braces">in braces</secondary>
</indexterm>

<indexterm id="INDEX-584" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary>identifiers</primary>
<secondary>enclosing in braces</secondary>
</indexterm>

<indexterm id="INDEX-585" file="ch02_06.htm" sect="2.6.2. String Literals">
<primary sortas="@backtick">` (backtick)</primary>
</indexterm>

<indexterm id="INDEX-587" file="ch02_06.htm" sect="2.6.3. Pick Your Own Quotes">
<primary>quotation marks</primary>
<secondary>quoting operators</secondary>
</indexterm>

<indexterm id="INDEX-588" file="ch02_06.htm" sect="2.6.3. Pick Your Own Quotes">
<primary>operators</primary>
<secondary>quoting operators</secondary>
</indexterm>

<indexterm id="INDEX-589" file="ch02_06.htm" sect="2.6.3. Pick Your Own Quotes">
<primary>patterns (and regular expressions)</primary>
<secondary>quotes in</secondary>
</indexterm>

<indexterm id="INDEX-590" file="ch02_06.htm" sect="2.6.3. Pick Your Own Quotes">
<primary sortas="@slash">/ (slash)</primary>
<secondary>delimiters, replacing as</secondary>
</indexterm>

<indexterm id="INDEX-591" file="ch02_06.htm" sect="2.6.3. Pick Your Own Quotes">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary>quoted strings, avoiding overuse in</secondary>
</indexterm>

<indexterm id="INDEX-592" file="ch02_06.htm" sect="2.6.3. Pick Your Own Quotes">
<primary sortas="@singlequotes">' (single quotes)</primary>
<secondary sortas="delimiters, variable interpolation and">as delimiters, variable interpolation and</secondary>
</indexterm>

<indexterm id="INDEX-593" file="ch02_06.htm" sect="2.6.3. Pick Your Own Quotes">
<primary>whitespace</primary>
<secondary>quote characters, use in</secondary>
</indexterm>

<indexterm id="INDEX-594" file="ch02_06.htm" sect="2.6.3. Pick Your Own Quotes">
<primary sortas="@sharp"># (sharp)</primary>
<secondary>quoting character, whitespace and</secondary>
</indexterm>

<indexterm id="INDEX-595" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary>barewords</primary>
</indexterm>

<indexterm id="INDEX-596" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary>quotation marks</primary>
<secondary>leaving out</secondary>
</indexterm>

<indexterm id="INDEX-597" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary>reserved words</primary>
<secondary>barewords, possible conflict with</secondary>
</indexterm>

<indexterm id="INDEX-598" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary>capitalization</primary>
<secondary>barewords, problems with</secondary>
</indexterm>

<indexterm id="INDEX-599" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary>qw operator</primary>
</indexterm>

<indexterm id="INDEX-600" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary>bare identifiers</primary>
</indexterm>

<indexterm id="INDEX-601" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary>identifiers</primary>
<secondary>bare, barewords vs.</secondary>
</indexterm>

<indexterm id="INDEX-602" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary>packages</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-603" file="ch02_06.htm" sect="2.6.4. Or Leave the Quotes Out Entirely">
<primary sortas="@colon">: (colon)</primary>
<secondary sortas="@coloncolon">:: for package identifiers</secondary>
</indexterm>

<indexterm id="INDEX-604" file="ch02_06.htm" sect="2.6.5. Interpolating Array Values">
<primary>values</primary>
<secondary>arrays</secondary>
<see>arrays</see>
</indexterm>

<indexterm id="INDEX-605" file="ch02_06.htm" sect="2.6.5. Interpolating Array Values">
<primary>variables</primary>
<secondary>array</secondary>
</indexterm>

<indexterm id="INDEX-606" file="ch02_06.htm" sect="2.6.5. Interpolating Array Values">
<primary>arrays</primary>
<secondary>variables of</secondary>
</indexterm>

<indexterm id="INDEX-607" file="ch02_06.htm" sect="2.6.5. Interpolating Array Values">
<primary>interpolation</primary>
<secondary>array variables</secondary>
</indexterm>

<indexterm id="INDEX-608" file="ch02_06.htm" sect="2.6.5. Interpolating Array Values">
<primary>scalar values</primary>
<secondary>interpolating array values</secondary>
</indexterm>

<indexterm id="INDEX-609" file="ch02_06.htm" sect="2.6.5. Interpolating Array Values">
<primary>character classes</primary>
<secondary>confusing with array subscripts</secondary>
</indexterm>

<indexterm id="INDEX-610" file="ch02_06.htm" sect="2.6.5. Interpolating Array Values">
<primary>regular expressions</primary>
<secondary>character classes, confusing with array subscripts</secondary>
</indexterm>

<indexterm id="INDEX-611" file="ch02_06.htm" sect="2.6.5. Interpolating Array Values">
<primary sortas="@braces">{} (braces)</primary>
<secondary>search patterns, clarifying with use</secondary>
</indexterm>

<indexterm id="INDEX-612" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary>here documents</primary>
</indexterm>

<indexterm id="INDEX-613" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary>line-oriented quoting</primary>
</indexterm>

<indexterm id="INDEX-614" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary sortas="@left">&lt; (left angle bracket)</primary>
<secondary sortas="@leftleft">&lt;&lt; for here documents</secondary>
</indexterm>

<indexterm id="INDEX-615" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary>quoting, line oriented</primary>
</indexterm>

<indexterm id="INDEX-616" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary>quotation marks</primary>
<secondary>line-oriented quoting</secondary>
</indexterm>

<indexterm id="INDEX-617" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary>identifiers</primary>
<secondary>line-oriented quoting</secondary>
</indexterm>

<indexterm id="INDEX-618" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary>scalar values</primary>
<secondary>here documents</secondary>
</indexterm>

<indexterm id="INDEX-619" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary>here documents</primary>
<secondary>indentation of</secondary>
</indexterm>

<indexterm id="INDEX-620" file="ch02_06.htm" sect="2.6.6. &quot;Here&quot; Documents">
<primary>whitespace</primary>
<secondary>leading, removing in here documents</secondary>
</indexterm>

<indexterm id="INDEX-621" file="ch02_06.htm" sect="2.6.7. V-String Literals">
<primary>string literals</primary>
<secondary>v-strings (vector or version)</secondary>
</indexterm>

<indexterm id="INDEX-622" file="ch02_06.htm" sect="2.6.7. V-String Literals">
<primary>v-strings (vector or version)</primary>
</indexterm>

<indexterm id="INDEX-623" file="ch02_06.htm" sect="2.6.7. V-String Literals">
<primary sortas="@dot">. (dot)</primary>
<secondary>separating integers in v-strings</secondary>
</indexterm>

<indexterm id="INDEX-624" file="ch02_06.htm" sect="2.6.7. V-String Literals">
<primary>scalar values</primary>
<secondary>v-string literals</secondary>
</indexterm>

<indexterm id="INDEX-625" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>line number</primary>
</indexterm>

<indexterm id="INDEX-626" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>number</primary>
<secondary>line</secondary>
<see>__LINE__ token</see>
</indexterm>

<indexterm id="INDEX-627" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>filenames</primary>
</indexterm>

<indexterm id="INDEX-628" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>names</primary>
<secondary>file</secondary>
</indexterm>

<indexterm id="INDEX-629" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary sortas="LINE token">__LINE__ token</primary>
</indexterm>

<indexterm id="INDEX-630" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary sortas="FILE token">__FILE__ token</primary>
</indexterm>

<indexterm id="INDEX-631" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>Control-D key</primary>
</indexterm>

<indexterm id="INDEX-632" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>Control-Z key</primary>
</indexterm>

<indexterm id="INDEX-633" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary sortas="END token">__END__ token</primary>
</indexterm>

<indexterm id="INDEX-634" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>scripts</primary>
<secondary>end marker for</secondary>
</indexterm>

<indexterm id="INDEX-635" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>Control-D character</primary>
</indexterm>

<indexterm id="INDEX-636" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary>Control-Z character</primary>
</indexterm>

<indexterm id="INDEX-637" file="ch02_06.htm" sect="2.6.8. Other Literal Tokens">
<primary sortas="DATA token">__DATA__
token</primary>
</indexterm>

<indexterm id="INDEX-639" file="ch02_07.htm" sect="2.7. Context">
<primary>context</primary>
</indexterm>

<indexterm id="INDEX-640" file="ch02_07.htm" sect="2.7. Context">
<primary>context</primary>
<seealso>list context, scalar context</seealso>
</indexterm>

<indexterm id="INDEX-641" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>list context</primary>
</indexterm>

<indexterm id="INDEX-642" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>scalar context</primary>
</indexterm>

<indexterm id="INDEX-643" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>context</primary>
<secondary>scalar and list context</secondary>
</indexterm>

<indexterm id="INDEX-644" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>operations</primary>
<secondary>contexts, evaluation in</secondary>
</indexterm>

<indexterm id="INDEX-645" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>my declarations</primary>
<secondary>context rules and</secondary>
</indexterm>

<indexterm id="INDEX-646" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>our declarations</primary>
<secondary>context rules and</secondary>
</indexterm>

<indexterm id="INDEX-647" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>overloaded</primary>
<secondary>functions</secondary>
</indexterm>

<indexterm id="INDEX-648" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>lists</primary>
<secondary>LISTs</secondary>
</indexterm>

<indexterm id="INDEX-649" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>scalar context</primary>
<secondary>subtypes of</secondary>
</indexterm>

<indexterm id="INDEX-650" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>string context</primary>
</indexterm>

<indexterm id="INDEX-651" file="ch02_07.htm" sect="2.7.1. Scalar and List Context">
<primary>numeric context</primary>
</indexterm>

<indexterm id="INDEX-652" file="ch02_07.htm" sect="2.7.2. Boolean Context">
<primary>context</primary>
<secondary>Boolean context</secondary>
</indexterm>

<indexterm id="INDEX-653" file="ch02_07.htm" sect="2.7.2. Boolean Context">
<primary>Boolean</primary>
<secondary>context</secondary>
</indexterm>

<indexterm id="INDEX-654" file="ch02_07.htm" sect="2.7.2. Boolean Context">
<primary>unlink operator</primary>
</indexterm>

<indexterm id="INDEX-655" file="ch02_07.htm" sect="2.7.2. Boolean Context">
<primary>scalar context</primary>
<secondary>Boolean values and</secondary>
</indexterm>

<indexterm id="INDEX-656" file="ch02_07.htm" sect="2.7.2. Boolean Context">
<primary>conditional context</primary>
<see>Boolean context</see>
</indexterm>

<indexterm id="INDEX-657" file="ch02_07.htm" sect="2.7.2. Boolean Context">
<primary>while statements</primary>
<secondary>Boolean context, supplying</secondary>
</indexterm>

<indexterm id="INDEX-658" file="ch02_07.htm" sect="2.7.3. Void Context">
<primary>context</primary>
<secondary>void context</secondary>
</indexterm>

<indexterm id="INDEX-659" file="ch02_07.htm" sect="2.7.3. Void Context">
<primary>void context</primary>
</indexterm>

<indexterm id="INDEX-660" file="ch02_07.htm" sect="2.7.3. Void Context">
<primary>scalar context</primary>
<secondary>void context</secondary>
</indexterm>

<indexterm id="INDEX-661" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>context</primary>
<secondary>interpolative (double-quoted) context</secondary>
</indexterm>

<indexterm id="INDEX-662" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>interpolative context</primary>
</indexterm>

<indexterm id="INDEX-663" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>double-quote context</primary>
</indexterm>

<indexterm id="INDEX-664" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>substitution (s///) operator</primary>
</indexterm>

<indexterm id="INDEX-665" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>s/// (substitution) operator</primary>
</indexterm>

<indexterm id="INDEX-666" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>quotation marks</primary>
<secondary>interpolative context</secondary>
</indexterm>

<indexterm id="INDEX-667" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary sortas="@backtick">` (backtick)</primary>
<secondary>operator</secondary>
</indexterm>

<indexterm id="INDEX-668" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>qx// (quoted execution) operator</primary>
</indexterm>

<indexterm id="INDEX-669" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>m// (match) operator</primary>
</indexterm>

<indexterm id="INDEX-670" file="ch02_07.htm" sect="2.7.4. Interpolative Context">
<primary>qr// (quote regex) operator</primary>
</indexterm>

<indexterm id="INDEX-672" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>values</primary>
<secondary>list</secondary>
<see>list values</see>
</indexterm>

<indexterm id="INDEX-673" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>lists</primary>
</indexterm>

<indexterm id="INDEX-674" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>list values</primary>
<secondary>arrays and</secondary>
</indexterm>

<indexterm id="INDEX-675" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>arrays</primary>
<secondary>lists and</secondary>
</indexterm>

<indexterm id="INDEX-676" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary sortas="@parens">() (parentheses)</primary>
<secondary sortas="list">for list values</secondary>
</indexterm>

<indexterm id="INDEX-677" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary sortas="@comma">, (comma)</primary>
<secondary>delimiting list values</secondary>
</indexterm>

<indexterm id="INDEX-678" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>lists</primary>
<secondary>LISTs</secondary>
</indexterm>

<indexterm id="INDEX-679" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>arrays</primary>
<secondary>list values vs.</secondary>
</indexterm>

<indexterm id="INDEX-680" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>list values</primary>
<secondary>arrays vs.</secondary>
</indexterm>

<indexterm id="INDEX-681" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>list</primary>
<secondary>interpolation</secondary>
</indexterm>

<indexterm id="INDEX-682" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>interpolation</primary>
<secondary>list</secondary>
</indexterm>

<indexterm id="INDEX-683" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>null</primary>
<secondary>list</secondary>
</indexterm>

<indexterm id="INDEX-684" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>lists</primary>
<secondary>null</secondary>
</indexterm>

<indexterm id="INDEX-685" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary sortas="@parens">() (parentheses)</primary>
<secondary sortas="list">null lists, representing</secondary>
</indexterm>

<indexterm id="INDEX-686" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary sortas="@comma">, (comma)</primary>
<secondary>delimiting list values</secondary>
</indexterm>

<indexterm id="INDEX-687" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>qw (quote words)</primary>
</indexterm>

<indexterm id="INDEX-688" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary>word lists</primary>
</indexterm>

<indexterm id="INDEX-689" file="ch02_08.htm" sect="2.8. List Values and Arrays">
<primary sortas="@parens">() (parentheses)</primary>
<secondary sortas="quote characters">as quote characters</secondary>
</indexterm>

<indexterm id="INDEX-690" file="ch02_08.htm" sect="2.8.1. List Assignment">
<primary>assigning to lists</primary>
</indexterm>

<indexterm id="INDEX-691" file="ch02_08.htm" sect="2.8.1. List Assignment">
<primary>lists</primary>
<secondary>assignment</secondary>
</indexterm>

<indexterm id="INDEX-692" file="ch02_08.htm" sect="2.8.1. List Assignment">
<primary>undef (value)</primary>
</indexterm>

<indexterm id="INDEX-693" file="ch02_08.htm" sect="2.8.1. List Assignment">
<primary>void context</primary>
</indexterm>

<indexterm id="INDEX-694" file="ch02_08.htm" sect="2.8.1. List Assignment">
<primary>scalar context</primary>
<secondary>list assignment in</secondary>
</indexterm>

<indexterm id="INDEX-695" file="ch02_08.htm" sect="2.8.1. List Assignment">
<primary>while statements</primary>
<secondary>list assignment in</secondary>
</indexterm>

<indexterm id="INDEX-696" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary>extending arrays</primary>
</indexterm>

<indexterm id="INDEX-697" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary>length</primary>
<secondary sortas="arrays">of
arrays</secondary>
</indexterm>

<indexterm id="INDEX-698" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary>arrays</primary>
<secondary>length
of</secondary>
</indexterm>

<indexterm id="INDEX-699" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary>arrays</primary>
<secondary>last element
of</secondary>
</indexterm>

<indexterm id="INDEX-700" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary sortas="@dollar">$
(dollar sign) </primary>
<secondary sortas="@dollarsharp">$#
prefix</secondary>
</indexterm>

<indexterm id="INDEX-701" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary>shortening arrays</primary>
</indexterm>

<indexterm id="INDEX-702" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary>truncating arrays</primary>
</indexterm>

<indexterm id="INDEX-703" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary>null list</primary>
<secondary>assigning to arrays</secondary>
</indexterm>

<indexterm id="INDEX-704" file="ch02_08.htm" sect="2.8.2. Array Length">
<primary>undef function</primary>
<secondary>arrays, freeing memory from</secondary>
</indexterm>

<indexterm id="INDEX-707" file="ch02_09.htm" sect="2.9. Hashes">
<primary>hashes</primary>
</indexterm>

<indexterm id="INDEX-708" file="ch02_09.htm" sect="2.9. Hashes">
<primary>hashes</primary>
<secondary>key/value pairs</secondary>
</indexterm>

<indexterm id="INDEX-709" file="ch02_09.htm" sect="2.9. Hashes">
<primary sortas="@comma">, (comma)</primary>
<secondary>key/value pairs and</secondary>
</indexterm>

<indexterm id="INDEX-710" file="ch02_09.htm" sect="2.9. Hashes">
<primary>key/value pairs, hashes</primary>
</indexterm>

<indexterm id="INDEX-711" file="ch02_09.htm" sect="2.9. Hashes">
<primary>initializing</primary>
<secondary>hash variables</secondary>
</indexterm>

<indexterm id="INDEX-712" file="ch02_09.htm" sect="2.9. Hashes">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equalright">=&gt; (corresponds to) operator</secondary>
</indexterm>

<indexterm id="INDEX-713" file="ch02_09.htm" sect="2.9. Hashes">
<primary>list context</primary>
<secondary>hash variables, using in</secondary>
</indexterm>

<indexterm id="INDEX-714" file="ch02_09.htm" sect="2.9. Hashes">
<primary>precedence</primary>
<secondary>key/value pair (hashes)</secondary>
</indexterm>

<indexterm id="INDEX-715" file="ch02_09.htm" sect="2.9. Hashes">
<primary>hashes</primary>
<secondary>key/value pair precedence</secondary>
</indexterm>

<indexterm id="INDEX-716" file="ch02_09.htm" sect="2.9. Hashes">
<primary>variables</primary>
<secondary>hash</secondary>
</indexterm>

<indexterm id="INDEX-717" file="ch02_09.htm" sect="2.9. Hashes">
<primary>scalar context</primary>
<secondary>hash variables, evaluating in</secondary>
</indexterm>

<indexterm id="INDEX-718" file="ch02_09.htm" sect="2.9. Hashes">
<primary>keys function</primary>
</indexterm>

<indexterm id="INDEX-719" file="ch02_09.htm" sect="2.9. Hashes">
<primary>hashes</primary>
<secondary>keys, finding number in</secondary>
</indexterm>

<indexterm id="INDEX-720" file="ch02_09.htm" sect="2.9. Hashes">
<primary sortas="SUBSCRIPT">$SUBSCRIPT_SEPARATOR</primary>
</indexterm>

<indexterm id="INDEX-721" file="ch02_09.htm" sect="2.9. Hashes">
<primary sortas="@dollarsign">$ variables</primary>
<secondary sortas="@dollarsignsemicolon">$; (SUBSCRIPT_SEPARATOR)</secondary>
</indexterm>

<indexterm id="INDEX-722" file="ch02_09.htm" sect="2.9. Hashes">
<primary>awk</primary>
<secondary>converting to/from Perl</secondary>
</indexterm>

<indexterm id="INDEX-723" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>types</primary>
<see>data types</see>
</indexterm>

<indexterm id="INDEX-724" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>typeglobs</primary>
</indexterm>

<indexterm id="INDEX-725" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary sortas="@asterisk">* (asterisk) </primary>
<secondary sortas="typeglob">for typeglob names</secondary>
</indexterm>

<indexterm id="INDEX-726" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>names</primary>
<secondary>typeglobs</secondary>
</indexterm>

<indexterm id="INDEX-727" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>data types</primary>
<secondary>typeglobs</secondary>
</indexterm>

<indexterm id="INDEX-728" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>filehandles</primary>
<secondary>typeglobs for</secondary>
</indexterm>

<indexterm id="INDEX-729" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>local</primary>
<secondary>filehandles</secondary>
</indexterm>

<indexterm id="INDEX-730" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>filehandles</primary>
<secondary>localizing</secondary>
</indexterm>

<indexterm id="INDEX-731" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>aliases</primary>
<secondary>symbol table entries</secondary>
</indexterm>

<indexterm id="INDEX-732" file="ch02_10.htm" sect="2.10. Typeglobs and Filehandles">
<primary>symbol table entries</primary>
<secondary>aliasing</secondary>
</indexterm>

<indexterm id="INDEX-733" file="ch02_11.htm" sect="2.11. Input Operators">
<primary>input </primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-734" file="ch02_11.htm" sect="2.11. Input Operators">
<primary>pseudoliterals</primary>
<see>input operators</see>
</indexterm>

<indexterm id="INDEX-735" file="ch02_11.htm" sect="2.11. Input Operators">
<primary>literals </primary>
<secondary>pseudoliterals</secondary>
<see>input operators</see>
</indexterm>

<indexterm id="INDEX-736" file="ch02_11.htm" sect="2.11.1. Command Input (Backtick) Operator">
<primary>command input operator</primary>
<see>backtick operator</see>
</indexterm>

<indexterm id="INDEX-737" file="ch02_11.htm" sect="2.11.1. Command Input (Backtick) Operator">
<primary>grave accents</primary>
<see>backticks</see>
</indexterm>

<indexterm id="INDEX-738" file="ch02_11.htm" sect="2.11.1. Command Input (Backtick) Operator">
<primary sortas="@backtick">` (backtick)</primary>
<secondary>operator</secondary>
</indexterm>

<indexterm id="INDEX-739" file="ch02_11.htm" sect="2.11.1. Command Input (Backtick) Operator">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarquestion">$? ($CHILD_ERROR) </secondary>
<tertiary>backtick operator and</tertiary>
</indexterm>

<indexterm id="INDEX-740" file="ch02_11.htm" sect="2.11.1. Command Input (Backtick) Operator">
<primary>qx// (quoted execution) operator</primary>
</indexterm>

<indexterm id="INDEX-741" file="ch02_11.htm" sect="2.11.1. Command Input (Backtick) Operator">
<primary>qx// (quoted execution) operator </primary>
<seealso>` (backtick) operator</seealso>
</indexterm>

<indexterm id="INDEX-742" file="ch02_11.htm" sect="2.11.1. Command Input (Backtick) Operator">
<primary>quoted execution operator</primary>
<see>` (backtick) operator</see>
</indexterm>

<indexterm id="INDEX-743" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary sortas="@left">&lt; (left angle bracket)</primary>
<secondary sortas="line input">for line input</secondary>
</indexterm>

<indexterm id="INDEX-744" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary sortas="@right">&gt; (right angle bracket)</primary>
<secondary sortas="line">for line input operator</secondary>
<see>angle operator</see>
</indexterm>

<indexterm id="INDEX-745" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary>angle operator</primary>
</indexterm>

<indexterm id="INDEX-746" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary>line input operators</primary>
<see>angle operator</see>
</indexterm>

<indexterm id="INDEX-747" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary>filehandles</primary>
<secondary>angle operator and</secondary>
</indexterm>

<indexterm id="INDEX-748" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarunderscore">$_ ($ARG) variable</secondary>
<tertiary>angle operator and</tertiary>
</indexterm>

<indexterm id="INDEX-749" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary>while loops</primary>
<secondary>angle operator and $_</secondary>
</indexterm>

<indexterm id="INDEX-750" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary>readline function</primary>
</indexterm>

<indexterm id="INDEX-751" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary>list context </primary>
<secondary>angle operator in</secondary>
</indexterm>

<indexterm id="INDEX-752" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary>null</primary>
<secondary>filehandle ;angle operator and</secondary>
</indexterm>

<indexterm id="INDEX-753" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary sortas="ARGV array">@ARGV array</primary>
</indexterm>

<indexterm id="INDEX-754" file="ch02_11.htm" sect="2.11.2. Line Input (Angle) Operator">
<primary>scalar variables </primary>
<secondary sortas="angle">in angle brackets</secondary>
</indexterm>

<indexterm id="INDEX-755" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>filename globbing operator</primary>
<see>glob operator</see>
</indexterm>

<indexterm id="INDEX-756" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>globbing filenames</primary>
</indexterm>

<indexterm id="INDEX-757" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>fileglob operator</primary>
</indexterm>

<indexterm id="INDEX-758" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>glob operator</primary>
</indexterm>

<indexterm id="INDEX-759" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary sortas="@left">&lt; (left angle bracket)</primary>
<secondary sortas="filename">for filename globbing</secondary>
</indexterm>

<indexterm id="INDEX-760" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary sortas="@right">&gt; (right angle bracket)</primary>
<secondary sortas="filename">for filename globbing</secondary>
</indexterm>

<indexterm id="INDEX-761" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>glob function</primary>
</indexterm>

<indexterm id="INDEX-762" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarunderscore">$_ ($ARG) ;glob
function with</secondary>
</indexterm>

<indexterm id="INDEX-763" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>variable interpolation</primary>
<secondary>glob operator, using</secondary>
</indexterm>

<indexterm id="INDEX-764" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>interpolation</primary>
<secondary>glob operator, using for</secondary>
</indexterm>

<indexterm id="INDEX-765" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>unary operators</primary>
<secondary>named</secondary>
</indexterm>

<indexterm id="INDEX-766" file="ch02_11.htm" sect="2.11.3. Filename Globbing Operator">
<primary>named unary operators</primary>
</indexterm>

<indexterm id="INDEX-767" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>operators</primary>
</indexterm>

<indexterm id="INDEX-768" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>operators</primary>
<secondary>precedence of</secondary>
</indexterm>

<indexterm id="INDEX-769" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>associativity, operators</primary>
</indexterm>

<indexterm id="INDEX-770" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>operators</primary>
<secondary>associativity of</secondary>
</indexterm>

<indexterm id="INDEX-771" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>terms</primary>
<secondary>relationships among, expressing with operators</secondary>
</indexterm>

<indexterm id="INDEX-772" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>unary operators</primary>
</indexterm>

<indexterm id="INDEX-773" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>binary operators</primary>
</indexterm>

<indexterm id="INDEX-774" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>mathematics</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-775" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>functions</primary>
<secondary>operators and</secondary>
</indexterm>

<indexterm id="INDEX-776" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>arity</primary>
</indexterm>

<indexterm id="INDEX-777" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>precedence</primary>
<secondary>operator, table of</secondary>
</indexterm>

<indexterm id="INDEX-778" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>unary operators</primary>
</indexterm>

<indexterm id="INDEX-779" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>binary operators</primary>
</indexterm>

<indexterm id="INDEX-780" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>trinary operator</primary>
</indexterm>

<indexterm id="INDEX-781" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>ternary operators</primary>
<see>trinary operator</see>
</indexterm>

<indexterm id="INDEX-782" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>prefix operators</primary>
</indexterm>

<indexterm id="INDEX-783" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>postincrement and postdecrement operators</primary>
</indexterm>

<indexterm id="INDEX-784" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>list operators</primary>
</indexterm>

<indexterm id="INDEX-785" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>arity</primary>
<secondary>highest to lowest, listing of</secondary>
</indexterm>

<indexterm id="INDEX-786" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary sortas="@parens">() (parentheses)</primary>
</indexterm>

<indexterm id="INDEX-787" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>grouping operator</primary>
<secondary>for expressions</secondary>
</indexterm>

<indexterm id="INDEX-788" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>C language</primary>
<secondary>operators, precedence relationships</secondary>
</indexterm>

<indexterm id="INDEX-789" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>operators</primary>
<secondary>precedence of</secondary>
<tertiary>C precedence, retaining in Perl</tertiary>
</indexterm>

<indexterm id="INDEX-790" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>scalar values</primary>
<secondary>operators fo</secondary>
</indexterm>

<indexterm id="INDEX-791" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>overloading</primary>
</indexterm>

<indexterm id="INDEX-792" file="ch03_01.htm" sect="3. Unary and Binary Operators">
<primary>operators</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-793" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>terms</primary>
<secondary>precedence of</secondary>
</indexterm>

<indexterm id="INDEX-794" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>list operators </primary>
</indexterm>

<indexterm id="INDEX-795" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary sortas="@parens">() (parentheses)</primary>
</indexterm>

<indexterm id="INDEX-796" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>variables</primary>
</indexterm>

<indexterm id="INDEX-797" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>quote operators</primary>
</indexterm>

<indexterm id="INDEX-798" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary sortas="@braces">{} (braces)</primary>
<secondary>precedence of</secondary>
</indexterm>

<indexterm id="INDEX-799" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary sortas="@brackets">[] (brackets)</primary>
<secondary>precedence of</secondary>
</indexterm>

<indexterm id="INDEX-800" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>unary operators</primary>
<secondary>functions, behaving as</secondary>
</indexterm>

<indexterm id="INDEX-801" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary sortas="@plus">+ (plus sign)</primary>
<secondary sortas="@plus2">+ unary operator</secondary>
</indexterm>

<indexterm id="INDEX-802" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>function calls </primary>
</indexterm>

<indexterm id="INDEX-803" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>chdir function</primary>
<secondary>precedence and</secondary>
</indexterm>

<indexterm id="INDEX-804" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary sortas="@verticalbar">| (vertical bar)</primary>
<secondary sortas="@verticalbarverticalbar">|| logical OR operator</secondary>
<tertiary>precedence, chdir vs.</tertiary>
</indexterm>

<indexterm id="INDEX-805" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary>(multiplicative) operator</secondary>
</indexterm>

<indexterm id="INDEX-806" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>unary operators</primary>
<secondary>named</secondary>
</indexterm>

<indexterm id="INDEX-807" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>rand function</primary>
</indexterm>

<indexterm id="INDEX-808" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>do {} operator</primary>
</indexterm>

<indexterm id="INDEX-809" file="ch03_01.htm" sect="3.1. Terms and List Operators (Leftward)">
<primary>eval {} operator</primary>
</indexterm>

<indexterm id="INDEX-810" file="ch03_02.htm" sect="3.2. The Arrow Operator">
<primary>infix dereference operator</primary>
<see>arrow
operator </see>
</indexterm>

<indexterm id="INDEX-811" file="ch03_02.htm" sect="3.2. The Arrow Operator">
<primary>arrow (-&gt;) operator</primary>
</indexterm>

<indexterm id="INDEX-812" file="ch03_02.htm" sect="3.2. The Arrow Operator">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="@hyphenright">-&gt; (arrow) operator</secondary>
</indexterm>

<indexterm id="INDEX-813" file="ch03_02.htm" sect="3.2. The Arrow Operator">
<primary>references</primary>
<secondary>hard</secondary>
</indexterm>

<indexterm id="INDEX-814" file="ch03_02.htm" sect="3.2. The Arrow Operator">
<primary>hard references</primary>
</indexterm>

<indexterm id="INDEX-815" file="ch03_02.htm" sect="3.2. The Arrow Operator">
<primary>objects</primary>
<secondary>blessing</secondary>
</indexterm>

<indexterm id="INDEX-816" file="ch03_02.htm" sect="3.2. The Arrow Operator">
<primary>classes</primary>
<secondary>package</secondary>
</indexterm>

<indexterm id="INDEX-817" file="ch03_03.htm" sect="3.3. Autoincrement and Autodecrement">
<primary>autoincrement (++) operator</primary>
</indexterm>

<indexterm id="INDEX-818" file="ch03_03.htm" sect="3.3. Autoincrement and Autodecrement">
<primary>autodecrement (--) operator </primary>
</indexterm>

<indexterm id="INDEX-819" file="ch03_03.htm" sect="3.3. Autoincrement and Autodecrement">
<primary sortas="@plus">+ (plus)</primary>
<secondary sortas="@plusplus">++ (autoincrement) operator</secondary>
</indexterm>

<indexterm id="INDEX-820" file="ch03_03.htm" sect="3.3. Autoincrement and Autodecrement">
<primary sortas="@hyphen">-
(hyphen) </primary>
<secondary sortas="@hyphenhyphen">--
(autodecrement) operator</secondary>
</indexterm>

<indexterm id="INDEX-821" file="ch03_03.htm" sect="3.3. Autoincrement and Autodecrement">
<primary>magical autoincrement</primary>
</indexterm>

<indexterm id="INDEX-822" file="ch03_03.htm" sect="3.3. Autoincrement and Autodecrement">
<primary>autoincrement (++) operator</primary>
<secondary>magical</secondary>
</indexterm>

<indexterm id="INDEX-823" file="ch03_04.htm" sect="3.4. Exponentiation">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary sortas="@asteriskasterisk">** (exponentiation)operator</secondary>
</indexterm>

<indexterm id="INDEX-824" file="ch03_04.htm" sect="3.4. Exponentiation">
<primary>exponentiation
(**) operator </primary>
</indexterm>

<indexterm id="INDEX-825" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>unary
operators</primary>
<secondary>ideographic</secondary>
</indexterm>

<indexterm id="INDEX-826" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>ideographic unary operators </primary>
</indexterm>

<indexterm id="INDEX-827" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary sortas="@bang">! (bang)</primary>
<secondary>logical negation operator</secondary>
</indexterm>

<indexterm id="INDEX-828" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>logical</primary>
<secondary>negation (!)
operator</secondary>
</indexterm>

<indexterm id="INDEX-829" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>not (!) operator</primary>
</indexterm>

<indexterm id="INDEX-830" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>negation</primary>
<secondary>logical (!)
operator</secondary>
</indexterm>

<indexterm id="INDEX-831" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary>arithmetic negation operator</secondary>
</indexterm>

<indexterm id="INDEX-832" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>minus (-) operator</primary>
</indexterm>

<indexterm id="INDEX-833" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>negation</primary>
<secondary>arithmetic (-)operator</secondary>
</indexterm>

<indexterm id="INDEX-834" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>arithmetic operators</primary>
</indexterm>

<indexterm id="INDEX-835" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary sortas="@tilde">~ (tilde)</primary>
<secondary>bitwise negation operator</secondary>
</indexterm>

<indexterm id="INDEX-836" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>bitwise</primary>
<secondary>negation (~) operator</secondary>
</indexterm>

<indexterm id="INDEX-837" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary>negation</primary>
<secondary>bitwise (~) operator</secondary>
</indexterm>

<indexterm id="INDEX-838" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary sortas="@plus">+ (plus) ;unary operator </primary>
</indexterm>

<indexterm id="INDEX-839" file="ch03_05.htm" sect="3.5. Ideographic Unary Operators">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary>reference operator</secondary>
</indexterm>

<indexterm id="INDEX-840" file="ch03_06.htm" sect="3.6. Binding Operators">
<primary>binding</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-841" file="ch03_06.htm" sect="3.6. Binding Operators">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equaltilde">=~ (pattern binding) operator</secondary>
</indexterm>

<indexterm id="INDEX-842" file="ch03_06.htm" sect="3.6. Binding Operators">
<primary sortas="@bang">! (bang) </primary>
<secondary sortas="@bangtilde">!~ (binding) operator</secondary>
</indexterm>

<indexterm id="INDEX-843" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>multiplicative operators </primary>
</indexterm>

<indexterm id="INDEX-844" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>division</primary>
<see>multiplicative operators </see>
</indexterm>

<indexterm id="INDEX-845" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary>multiplicative operator</secondary>
</indexterm>

<indexterm id="INDEX-846" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary sortas="@slash">/ (slash)</primary>
<secondary>division operator</secondary>
</indexterm>

<indexterm id="INDEX-847" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary sortas="@percent">% (percent sign)</primary>
<secondary>modulus operator</secondary>
</indexterm>

<indexterm id="INDEX-848" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>modulus (%) operator</primary>
</indexterm>

<indexterm id="INDEX-849" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>x (repetition) operator </primary>
</indexterm>

<indexterm id="INDEX-850" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>binary</primary>
<secondary>repetition (x) operator</secondary>
</indexterm>

<indexterm id="INDEX-851" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>lists</primary>
<secondary>replicating with x operator</secondary>
</indexterm>

<indexterm id="INDEX-852" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>repetition (x) operator </primary>
</indexterm>

<indexterm id="INDEX-853" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>initializing</primary>
<secondary>arrays and hash slices</secondary>
</indexterm>

<indexterm id="INDEX-854" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>arrays</primary>
<secondary>initializing with x operator</secondary>
</indexterm>

<indexterm id="INDEX-855" file="ch03_07.htm" sect="3.7. Multiplicative Operators">
<primary>hashes</primary>
<secondary>initializing with x operator</secondary>
</indexterm>

<indexterm id="INDEX-856" file="ch03_08.htm" sect="3.8. Additive Operators">
<primary>additive operators </primary>
</indexterm>

<indexterm id="INDEX-857" file="ch03_08.htm" sect="3.8. Additive Operators">
<primary>subtraction</primary>
<see>additive operators </see>
</indexterm>

<indexterm id="INDEX-858" file="ch03_08.htm" sect="3.8. Additive Operators">
<primary sortas="@plus">+ (plus)</primary>
<secondary>additive operator </secondary>
</indexterm>

<indexterm id="INDEX-859" file="ch03_08.htm" sect="3.8. Additive Operators">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary>subtractive operator</secondary>
</indexterm>

<indexterm id="INDEX-860" file="ch03_08.htm" sect="3.8. Additive Operators">
<primary sortas="@dot">. (dot)</primary>
<secondary>(concatenation) operator</secondary>
</indexterm>

<indexterm id="INDEX-861" file="ch03_08.htm" sect="3.8. Additive Operators">
<primary>concatenation (.) operator</primary>
</indexterm>

<indexterm id="INDEX-862" file="ch03_08.htm" sect="3.8. Additive Operators">
<primary>strings </primary>
<secondary>concatenating</secondary>
</indexterm>

<indexterm id="INDEX-863" file="ch03_09.htm" sect="3.9. Shift Operators">
<primary>bit-shift operators </primary>
</indexterm>

<indexterm id="INDEX-864" file="ch03_09.htm" sect="3.9. Shift Operators">
<primary>shift operators</primary>
</indexterm>

<indexterm id="INDEX-865" file="ch03_09.htm" sect="3.9. Shift Operators">
<primary>bytes</primary>
<secondary>bit-shift operators</secondary>
</indexterm>

<indexterm id="INDEX-866" file="ch03_09.htm" sect="3.9. Shift Operators">
<primary>left-shift (&lt;&lt;) operator</primary>
</indexterm>

<indexterm id="INDEX-867" file="ch03_09.htm" sect="3.9. Shift Operators">
<primary sortas="@left">&lt; (left angle bracket)</primary>
<secondary sortas="@leftleft">&lt;&lt; (left-shift) operator</secondary>
</indexterm>

<indexterm id="INDEX-868" file="ch03_09.htm" sect="3.9. Shift Operators">
<primary>right-shift (&gt;&gt;) operator</primary>
</indexterm>

<indexterm id="INDEX-869" file="ch03_09.htm" sect="3.9. Shift Operators">
<primary sortas="@right">&gt; (right angle bracket)</primary>
<secondary sortas="@rightright">&gt;&gt; (right-shift) operator</secondary>
</indexterm>

<indexterm id="INDEX-870" file="ch03_09.htm" sect="3.9. Shift Operators">
<primary>shift operators</primary>
</indexterm>

<indexterm id="INDEX-871" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>unary operators</primary>
<secondary>named</secondary>
</indexterm>

<indexterm id="INDEX-872" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>named unary operators</primary>
</indexterm>

<indexterm id="INDEX-873" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>functions</primary>
<secondary>named unary
operators</secondary>
</indexterm>

<indexterm id="INDEX-874" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>named unary operators</primary>
<secondary>listing of</secondary>
</indexterm>

<indexterm id="INDEX-875" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>unary operators</primary>
<secondary>named</secondary>
<tertiary>listing of</tertiary>
</indexterm>

<indexterm id="INDEX-876" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>precedence</primary>
<secondary>unary operators, higher than binary</secondary>
</indexterm>

<indexterm id="INDEX-877" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>list operators</primary>
<secondary>unary operators, distinguishing from</secondary>
</indexterm>

<indexterm id="INDEX-878" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>unary operators</primary>
<secondary>list operators, distinguishing from</secondary>
</indexterm>

<indexterm id="INDEX-879" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@plus">+ (plus)</primary>
</indexterm>

<indexterm id="INDEX-880" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@hyphen">- (hyphen)</primary>
</indexterm>

<indexterm id="INDEX-881" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@asterisk">* (asterisk)</primary>
</indexterm>

<indexterm id="INDEX-882" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@slash">/ (slash)</primary>
</indexterm>

<indexterm id="INDEX-883" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@dot">. (dot)</primary>
</indexterm>

<indexterm id="INDEX-884" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@question">?(question mark)</primary>
</indexterm>

<indexterm id="INDEX-885" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@percent">% (percent sign)</primary>
</indexterm>

<indexterm id="INDEX-886" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
</indexterm>

<indexterm id="INDEX-887" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>tokens</primary>
<secondary>ambiguous characters, problems with</secondary>
</indexterm>

<indexterm id="INDEX-890" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>file test operators</primary>
</indexterm>

<indexterm id="INDEX-891" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="r file test">-r (readable by effective uid/gid) file test</primary>
</indexterm>

<indexterm id="INDEX-892" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="w writable effective">-w (writable by effective uid/gid) file test</primary>
</indexterm>

<indexterm id="INDEX-893" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="x executable effective">-x (executable by effective uid/gid) file test</primary>
</indexterm>

<indexterm id="INDEX-894" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="o effective UID">-o (effective UID) file test</primary>
</indexterm>

<indexterm id="INDEX-895" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="R readable real">-R (readable by real uid/gid file test</primary>
</indexterm>

<indexterm id="INDEX-896" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="W file test">-W (writeable by real uid/gid) file test</primary>
</indexterm>

<indexterm id="INDEX-897" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="X executable real">-X (executable by real uid/gid) file test</primary>
</indexterm>

<indexterm id="INDEX-898" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="O real UID">-O (real UID) file test</primary>
</indexterm>

<indexterm id="INDEX-899" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="e exists file">-e (exists) file test</primary>
</indexterm>

<indexterm id="INDEX-900" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="z zero size">-z (zero size) file test</primary>
</indexterm>

<indexterm id="INDEX-901" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="s file test">-s file test operator</primary>
</indexterm>

<indexterm id="INDEX-902" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="f plain">-f (plain) file test</primary>
</indexterm>

<indexterm id="INDEX-903" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="d directory">-d (directory) file test</primary>
</indexterm>

<indexterm id="INDEX-904" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="l symbolic link">-l (symbolic link) file test</primary>
</indexterm>

<indexterm id="INDEX-905" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="p named pipe">-p (named pipe) file test</primary>
</indexterm>

<indexterm id="INDEX-906" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="S file test">-S file test operator</primary>
</indexterm>

<indexterm id="INDEX-907" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="b block special">-b (block special) file test operator</primary>
</indexterm>

<indexterm id="INDEX-908" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="c character special">-c (character special) file test</primary>
</indexterm>

<indexterm id="INDEX-909" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="t tty">-t (tty) file test</primary>
</indexterm>

<indexterm id="INDEX-910" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="u setuid">-u (setuid) file test</primary>
</indexterm>

<indexterm id="INDEX-911" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="g file test">-g (setgid) file test</primary>
</indexterm>

<indexterm id="INDEX-912" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="k sticky">-k (sticky) file test</primary>
</indexterm>

<indexterm id="INDEX-913" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>writable file test operator</primary>
</indexterm>

<indexterm id="INDEX-914" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>readable file test operator</primary>
</indexterm>

<indexterm id="INDEX-915" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>permissions</primary>
<secondary>file permission operators, interpreting</secondary>
</indexterm>

<indexterm id="INDEX-916" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>use filetest pragma</primary>
</indexterm>

<indexterm id="INDEX-917" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="T file test">-T (text file) test operator</primary>
</indexterm>

<indexterm id="INDEX-918" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="B file test">-B (binary file) test operator</primary>
</indexterm>

<indexterm id="INDEX-919" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="M file test">-M (modification age) file test operator</primary>
</indexterm>

<indexterm id="INDEX-920" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="A file test">-A (access age) file test operator</primary>
</indexterm>

<indexterm id="INDEX-921" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="C file test">-C file test operator</primary>
</indexterm>

<indexterm id="INDEX-922" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>time</primary>
<secondary>file age</secondary>
</indexterm>

<indexterm id="INDEX-923" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>files</primary>
<secondary>ages for</secondary>
</indexterm>

<indexterm id="INDEX-924" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary sortas="@dollarcaretT">$^T ($BASETIME)</primary>
</indexterm>

<indexterm id="INDEX-925" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>timing</primary>
<secondary>script running</secondary>
</indexterm>

<indexterm id="INDEX-926" file="ch03_10.htm" sect="3.10. Named Unary and File Test Operators">
<primary>scripts</primary>
<secondary>running time of</secondary>
</indexterm>

<indexterm id="INDEX-928" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>relational operators</primary>
</indexterm>

<indexterm id="INDEX-929" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>greater than (&gt;) operator</primary>
</indexterm>

<indexterm id="INDEX-930" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>greater than or equal (&gt;=) operator</primary>
</indexterm>

<indexterm id="INDEX-931" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>less than (&lt;) operator</primary>
</indexterm>

<indexterm id="INDEX-932" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>less than or equal (&lt;=) operator</primary>
</indexterm>

<indexterm id="INDEX-933" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary sortas="@right">&gt; (right angle bracket)</primary>
<secondary>greater than operator</secondary>
</indexterm>

<indexterm id="INDEX-934" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary sortas="@right">&gt; (right angle bracket)</primary>
<secondary sortas="@rightequal">&gt;= (greater than or equal) operator</secondary>
</indexterm>

<indexterm id="INDEX-935" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary sortas="@left">&lt; (left angle bracket)</primary>
<secondary>less than operator</secondary>
</indexterm>

<indexterm id="INDEX-936" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary sortas="@left">&lt; (left angle bracket)</primary>
<secondary sortas="@leftequal">&lt;= (less than or equal) operator</secondary>
</indexterm>

<indexterm id="INDEX-937" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>asssociativity</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-938" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>relational operators</primary>
<secondary>nonassociation of</secondary>
</indexterm>

<indexterm id="INDEX-939" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>strings</primary>
<secondary>comparing</secondary>
</indexterm>

<indexterm id="INDEX-940" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>comparing</primary>
<secondary>strings</secondary>
</indexterm>

<indexterm id="INDEX-941" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>trailing spaces in string comparisons</primary>
</indexterm>

<indexterm id="INDEX-942" file="ch03_11.htm" sect="3.11. Relational Operators">
<primary>locales</primary>
<secondary>declarations, string comparisons and</secondary>
</indexterm>

<indexterm id="INDEX-943" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary>equality operators</primary>
</indexterm>

<indexterm id="INDEX-944" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary>equal to (=) operator</primary>
</indexterm>

<indexterm id="INDEX-945" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary>not equal to (!=) operator</primary>
</indexterm>

<indexterm id="INDEX-946" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary sortas="@left">&lt; (left angle bracket)</primary>
<secondary sortas="@leftequalright">&lt;=&gt; (comparison)operator</secondary>
</indexterm>

<indexterm id="INDEX-947" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary sortas="@bang">!(bang)</primary>
<secondary sortas="@bangequal">!= (not equal to) operator</secondary>
</indexterm>

<indexterm id="INDEX-948" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equalequal">== (equal to) operator</secondary>
</indexterm>

<indexterm id="INDEX-949" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary>inequality</primary>
<see>equality operators[semi] relational operators</see>
</indexterm>

<indexterm id="INDEX-950" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary>unequal</primary>
<see>equality operators[semi]
relational operators</see>
</indexterm>

<indexterm id="INDEX-951" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary>comparison operators</primary>
</indexterm>

<indexterm id="INDEX-952" file="ch03_12.htm" sect="3.12. Equality Operators">
<primary>spaceship operator (&lt;=&gt;)</primary>
</indexterm>

<indexterm id="INDEX-953" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary>binary</primary>
<secondary>operators</secondary>
<see>bitwise operators </see>
</indexterm>

<indexterm id="INDEX-954" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary>bitwise</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-955" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary sortas="and ampersand">and (&amp;) bitwise operator</primary>
</indexterm>

<indexterm id="INDEX-956" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="@ampersand">&amp; (bitwise and) operator</secondary>
</indexterm>

<indexterm id="INDEX-957" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary>bitwise or operator</secondary>
</indexterm>

<indexterm id="INDEX-958" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary sortas="@caret">^ (caret)</primary>
<secondary>bitwise xor operator</secondary>
</indexterm>

<indexterm id="INDEX-959" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary>exclusive or (xor) operator </primary>
</indexterm>

<indexterm id="INDEX-960" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary>or operator</primary>
<secondary>| (bitwise)</secondary>
</indexterm>

<indexterm id="INDEX-961" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary>xor logical operator</primary>
</indexterm>

<indexterm id="INDEX-962" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary>numbers</primary>
<secondary>bitwise operators, working with</secondary>
</indexterm>

<indexterm id="INDEX-963" file="ch03_13.htm" sect="3.13. Bitwise Operators">
<primary>strings</primary>
<secondary>bitwise operators, working with</secondary>
</indexterm>

<indexterm id="INDEX-964" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary>logical</primary>
<secondary sortas="AND ampersandampersand">AND (&amp;&amp;) operator</secondary>
</indexterm>

<indexterm id="INDEX-965" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary>logical</primary>
<secondary>OR (||) operator</secondary>
</indexterm>

<indexterm id="INDEX-966" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="@ampersandampersand">&amp;&amp; (AND) operator</secondary>
</indexterm>

<indexterm id="INDEX-967" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary sortas="and ampersandampersand">and (&amp;&amp;) logical operator</primary>
</indexterm>

<indexterm id="INDEX-968" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary sortas="@verticalvertical">|| (OR) operator</secondary>
</indexterm>

<indexterm id="INDEX-969" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary>short-circuit operators </primary>
</indexterm>

<indexterm id="INDEX-970" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary>C language</primary>
<secondary>C-style logical operators</secondary>
</indexterm>

<indexterm id="INDEX-971" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary>logical</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-972" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary>OR (||) operator </primary>
</indexterm>

<indexterm id="INDEX-973" file="ch03_14.htm" sect="3.14. C-Style Logical (Short-Circuit) Operators">
<primary>or operator</primary>
</indexterm>

<indexterm id="INDEX-974" file="ch03_15.htm" sect="3.15. Range Operator">
<primary>range (.. and ...) operator</primary>
</indexterm>

<indexterm id="INDEX-975" file="ch03_15.htm" sect="3.15. Range Operator">
<primary sortas="@dot">. (dot)</primary>
<secondary sortas="@dotdot">.. (range) operator</secondary>
</indexterm>

<indexterm id="INDEX-976" file="ch03_15.htm" sect="3.15. Range Operator">
<primary>list context</primary>
<secondary>range (..) operator in</secondary>
</indexterm>

<indexterm id="INDEX-977" file="ch03_15.htm" sect="3.15. Range Operator">
<primary>scalar context</primary>
<secondary>range (..) operator in</secondary>
</indexterm>

<indexterm id="INDEX-978" file="ch03_15.htm" sect="3.15. Range Operator">
<primary sortas="@dollardot">$. ($INPUT_LINE_NUMBER)</primary>
</indexterm>

<indexterm id="INDEX-979" file="ch03_15.htm" sect="3.15. Range Operator">
<primary sortas="@dot">. (dot)</primary>
<secondary>... (range operator)</secondary>
</indexterm>

<indexterm id="INDEX-980" file="ch03_15.htm" sect="3.15. Range Operator">
<primary>strings</primary>
<secondary>range operator, working with</secondary>
</indexterm>

<indexterm id="INDEX-981" file="ch03_15.htm" sect="3.15. Range Operator">
<primary>magical autoincrement operator</primary>
</indexterm>

<indexterm id="INDEX-982" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary>conditional (?:) operator</primary>
</indexterm>

<indexterm id="INDEX-983" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary sortas="@question">? (question mark)</primary>
<secondary sortas="@questioncolon">?: (conditional) operator</secondary>
</indexterm>

<indexterm id="INDEX-984" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary>trinary operator</primary>
<secondary>?: as</secondary>
</indexterm>

<indexterm id="INDEX-985" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary>scalar context</primary>
<secondary>conditional operator in</secondary>
</indexterm>

<indexterm id="INDEX-986" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary>list context</primary>
<secondary>conditional operator in</secondary>
</indexterm>

<indexterm id="INDEX-987" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary>printf function</primary>
</indexterm>

<indexterm id="INDEX-988" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary>sortas="@parentheses"&gt;()</primary>
<secondary>conditional operator, use with</secondary>
</indexterm>

<indexterm id="INDEX-989" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary sortas="@parens">() (parentheses)</primary>
<secondary>conditional operator, use with</secondary>
</indexterm>

<indexterm id="INDEX-990" file="ch03_16.htm" sect="3.16. Conditional Operator">
<primary>assignment</primary>
<secondary sortas="conditional operator">to conditional operator</secondary>
</indexterm>

<indexterm id="INDEX-991" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary>assignment operators</primary>
</indexterm>

<indexterm id="INDEX-992" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equal1">= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-993" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary sortas="@asteriskasteriskequal">**= (exponentiation assignment) operator </secondary>
</indexterm>

<indexterm id="INDEX-994" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@plus">+ (plus sign)</primary>
<secondary sortas="@plusequal">+= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-995" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="@hyphenequal">-= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-996" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@dot">. (dot)</primary>
<secondary sortas="@dotequal">.= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-997" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary sortas="@asteriskequal">*= (multiplication assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-998" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@slash">/ (slash) </primary>
<secondary sortas="@slashequal">/=; (assignment) operator </secondary>
</indexterm>

<indexterm id="INDEX-999" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@percent">% (percent sign)</primary>
<secondary sortas="@percentequal">%= (modulus assignment) operator </secondary>
</indexterm>

<indexterm id="INDEX-1000" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary>x=</primary>
<secondary> (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-1001" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@ampersand">&amp;</primary>
<secondary sortas="@ampersandequal">&amp;= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-1002" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary sortas="@verticalequal">|= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-1003" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@caret">^ (caret) </primary>
<secondary sortas="@caretequal">^= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-1004" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@left">&lt; (left angle bracket)</primary>
<secondary sortas="@leftleftequal">&lt;&lt;= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-1005" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@right">&gt; (right angle bracket)</primary>
<secondary sortas="@rightrightequal">&gt;&gt;= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-1006" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="@ampersandampersandequal">&amp;&amp;= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-1007" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary sortas="@verticalverticalequal">||= (assignment) operator</secondary>
</indexterm>

<indexterm id="INDEX-1008" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary>lvalues</primary>
<secondary>assignment operators and</secondary>
</indexterm>

<indexterm id="INDEX-1009" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary>list context</primary>
<secondary>list assignment in</secondary>
</indexterm>

<indexterm id="INDEX-1010" file="ch03_17.htm" sect="3.17. Assignment Operators">
<primary>scalar context</primary>
<secondary>list assignment in</secondary>
</indexterm>

<indexterm id="INDEX-1011" file="ch03_18.htm" sect="3.18. Comma Operators">
<primary sortas="@comma">, (comma)</primary>
<secondary>operator</secondary>
</indexterm>

<indexterm id="INDEX-1012" file="ch03_18.htm" sect="3.18. Comma Operators">
<primary sortas="@comma">, (comma)</primary>
<secondary>operator</secondary>
<seealso>=&gt; operator</seealso>
</indexterm>

<indexterm id="INDEX-1013" file="ch03_18.htm" sect="3.18. Comma Operators">
<primary>scalar context</primary>
<secondary>comma operator in</secondary>
</indexterm>

<indexterm id="INDEX-1014" file="ch03_18.htm" sect="3.18. Comma Operators">
<primary>list context</primary>
<secondary>comma operator in</secondary>
</indexterm>

<indexterm id="INDEX-1015" file="ch03_18.htm" sect="3.18. Comma Operators">
<primary sortas="@equal">=; (equal sign)</primary>
<secondary sortas="@equalright">=;&gt; (corresponds to) operator </secondary>
</indexterm>

<indexterm id="INDEX-1016" file="ch03_19.htm" sect="3.19. List Operators (Rightward)">
<primary>list operators </primary>
</indexterm>

<indexterm id="INDEX-1017" file="ch03_20.htm" sect="3.20. Logical and, or, not, and xor">
<primary>logical</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-1018" file="ch03_20.htm" sect="3.20. Logical and, or, not, and xor">
<primary>precedence</primary>
<secondary>logical operators</secondary>
</indexterm>

<indexterm id="INDEX-1019" file="ch03_20.htm" sect="3.20. Logical and, or, not, and xor">
<primary sortas="and ampersandampersand">and (&amp;&amp;) logical operator</primary>
</indexterm>

<indexterm id="INDEX-1020" file="ch03_20.htm" sect="3.20. Logical and, or, not, and xor">
<primary>or operator</primary>
</indexterm>

<indexterm id="INDEX-1021" file="ch03_20.htm" sect="3.20. Logical and, or, not, and xor">
<primary>xor logical operator</primary>
</indexterm>

<indexterm id="INDEX-1022" file="ch03_20.htm" sect="3.20. Logical and, or, not, and xor">
<primary>exclusive or (xor) operator</primary>
</indexterm>

<indexterm id="INDEX-1023" file="ch03_20.htm" sect="3.20. Logical and, or, not, and xor">
<primary>bitwise</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-1024" file="ch03_21.htm" sect="3.21. C Operators Missing from Perl">
<primary>address-of operator (in C)</primary>
</indexterm>

<indexterm id="INDEX-1025" file="ch03_21.htm" sect="3.21. C Operators Missing from Perl">
<primary>operators</primary>
<secondary>C language, missing in Perl</secondary>
</indexterm>

<indexterm id="INDEX-1026" file="ch03_21.htm" sect="3.21. C Operators Missing from Perl">
<primary>C language</primary>
<secondary>operators missing in Perl</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch03_21.htm" sect="3.21. C Operators Missing from Perl">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary>address-of operator (in C)</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch03_21.htm" sect="3.21. C Operators Missing from Perl">
<primary>references</primary>
<secondary>Perl, C pointers vs.</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch03_21.htm" sect="3.21. C Operators Missing from Perl">
<primary sortas="@asterisk">* (asterisk) ;dereference operator (in C) </primary>
</indexterm>

<indexterm id="INDEX-" file="ch03_21.htm" sect="3.21. C Operators Missing from Perl">
<primary>dereference-address operator (*), C language</primary>
</indexterm>

<indexterm id="INDEX-" file="ch03_21.htm" sect="3.21. C Operators Missing from Perl">
<primary>typecasting operator (in C) </primary>
</indexterm>

<indexterm id="INDEX-1030" file="ch04_01.htm" sect="4. Statements and Declarations">
<primary>statements</primary>
</indexterm>

<indexterm id="INDEX-1031" file="ch04_01.htm" sect="4. Statements and Declarations">
<primary>declarations</primary>
</indexterm>

<indexterm id="INDEX-1032" file="ch04_01.htm" sect="4. Statements and Declarations">
<primary>warnings</primary>
<secondary>about undefined values</secondary>
</indexterm>

<indexterm id="INDEX-1033" file="ch04_01.htm" sect="4. Statements and Declarations">
<primary>variables</primary>
<secondary>declaring</secondary>
</indexterm>

<indexterm id="INDEX-1034" file="ch04_01.htm" sect="4. Statements and Declarations">
<primary>declarations</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-1035" file="ch04_01.htm" sect="4. Statements and Declarations">
<primary>my declarations</primary>
</indexterm>

<indexterm id="INDEX-1036" file="ch04_01.htm" sect="4. Statements and Declarations">
<primary>our declarations</primary>
</indexterm>

<indexterm id="INDEX-1037" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary sortas="@semicolon">[semi] (semicolon)</primary>
</indexterm>

<indexterm id="INDEX-1038" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>statements</primary>
<secondary>simple</secondary>
</indexterm>

<indexterm id="INDEX-1039" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary sortas="@semicolon">; (semicolon)</primary>
<secondary>simple statements, ending in</secondary>
</indexterm>

<indexterm id="INDEX-1040" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>blocks</primary>
</indexterm>

<indexterm id="INDEX-1041" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>modifiers</primary>
<secondary>statements, simple</secondary>
</indexterm>

<indexterm id="INDEX-1042" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>if modifier</primary>
</indexterm>

<indexterm id="INDEX-1043" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>unless modifier</primary>
</indexterm>

<indexterm id="INDEX-1044" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>while modifier</primary>
</indexterm>

<indexterm id="INDEX-1045" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>until modifier</primary>
</indexterm>

<indexterm id="INDEX-1046" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>for modifier</primary>
</indexterm>

<indexterm id="INDEX-1047" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>foreach modifier</primary>
</indexterm>

<indexterm id="INDEX-1048" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>do</primary>
<secondary> SUBROUTINE</secondary>
</indexterm>

<indexterm id="INDEX-1049" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>do</primary>
<secondary> BLOCK</secondary>
</indexterm>

<indexterm id="INDEX-1050" file="ch04_01.htm" sect="4.1. Simple Statements">
<primary>do</primary>
<secondary> loop controls</secondary>
</indexterm>

<indexterm id="INDEX-1051" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>blocks</primary>
</indexterm>

<indexterm id="INDEX-1052" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary sortas="@braces">{} (braces) ;for statement blocks</primary>
</indexterm>

<indexterm id="INDEX-1053" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>BLOCK</primary>
</indexterm>

<indexterm id="INDEX-1054" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>BLOCK</primary>
<seealso>blocks</seealso>
</indexterm>

<indexterm id="INDEX-1055" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>scopes</primary>
</indexterm>

<indexterm id="INDEX-1056" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>statements</primary>
<secondary>compound</secondary>
</indexterm>

<indexterm id="INDEX-1057" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>scopes</primary>
<secondary>blocks</secondary>
</indexterm>

<indexterm id="INDEX-1058" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>expressions</primary>
<secondary>EXPR and LIST</secondary>
</indexterm>

<indexterm id="INDEX-1059" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>EXPRs</primary>
</indexterm>

<indexterm id="INDEX-1060" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>scalar context</primary>
<secondary>expressions in</secondary>
<see>EXPRs</see>
</indexterm>

<indexterm id="INDEX-1061" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>LISTs</primary>
</indexterm>

<indexterm id="INDEX-1062" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>list context</primary>
<secondary>expressions in</secondary>
<see>LISTs</see>
</indexterm>

<indexterm id="INDEX-1063" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>labels</primary>
</indexterm>

<indexterm id="INDEX-1064" file="ch04_02.htm" sect="4.2. Compound Statements">
<primary>conditional statements</primary>
<secondary sortas="braces, writing">without braces, writing</secondary>
</indexterm>

<indexterm id="INDEX-1065" file="ch04_03.htm" sect="4.3. if and unless Statements">
<primary>statements</primary>
<secondary>if and unless</secondary>
</indexterm>

<indexterm id="INDEX-1066" file="ch04_03.htm" sect="4.3. if and unless Statements">
<primary>statements</primary>
<secondary>loops</secondary>
<see>loops</see>
</indexterm>

<indexterm id="INDEX-1067" file="ch04_03.htm" sect="4.3. if and unless Statements">
<primary>conditional statements</primary>
<seealso>if statements\; unless statements</seealso>
</indexterm>

<indexterm id="INDEX-1068" file="ch04_03.htm" sect="4.3. if and unless Statements">
<primary>if statements</primary>
</indexterm>

<indexterm id="INDEX-1069" file="ch04_03.htm" sect="4.3. if and unless Statements">
<primary>unless statements</primary>
<secondary>if statements, using instead of</secondary>
</indexterm>

<indexterm id="INDEX-1070" file="ch04_03.htm" sect="4.3. if and unless Statements">
<primary>scope</primary>
<secondary> variables in if statements</secondary>
</indexterm>

<indexterm id="INDEX-1071" file="ch04_04.htm" sect="4.4. Loop Statements">
<primary>loops</primary>
</indexterm>

<indexterm id="INDEX-1072" file="ch04_04.htm" sect="4.4. Loop Statements">
<primary>labels </primary>
<secondary sortas="loops">with loops</secondary>
</indexterm>

<indexterm id="INDEX-1073" file="ch04_04.htm" sect="4.4. Loop Statements">
<primary>capitalization</primary>
<secondary>label names</secondary>
</indexterm>

<indexterm id="INDEX-1074" file="ch04_04.htm" sect="4.4.1. while and until Statements">
<primary>while loops</primary>
</indexterm>

<indexterm id="INDEX-1075" file="ch04_04.htm" sect="4.4.1. while and until Statements">
<primary>until loops</primary>
</indexterm>

<indexterm id="INDEX-1076" file="ch04_04.htm" sect="4.4.1. while and until Statements">
<primary>loops</primary>
<secondary>using while</secondary>
</indexterm>

<indexterm id="INDEX-1077" file="ch04_04.htm" sect="4.4.1. while and until Statements">
<primary>loops</primary>
<secondary>using until</secondary>
</indexterm>

<indexterm id="INDEX-1078" file="ch04_04.htm" sect="4.4.1. while and until Statements">
<primary>continue block</primary>
</indexterm>

<indexterm id="INDEX-1079" file="ch04_04.htm" sect="4.4.1. while and until Statements">
<primary>blocks</primary>
<secondary>continue block</secondary>
</indexterm>

<indexterm id="INDEX-1080" file="ch04_04.htm" sect="4.4.1. while and until Statements">
<primary>next operator</primary>
</indexterm>

<indexterm id="INDEX-1081" file="ch04_04.htm" sect="4.4.1. while and until Statements">
<primary>scope</primary>
<secondary> variables in while loops</secondary>
</indexterm>

<indexterm id="INDEX-1082" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>for modifier</primary>
</indexterm>

<indexterm id="INDEX-1083" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>loops</primary>
<secondary>using for</secondary>
</indexterm>

<indexterm id="INDEX-1084" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>expressions</primary>
<secondary>multiple, in loops</secondary>
</indexterm>

<indexterm id="INDEX-1085" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>initialization expressions</primary>
</indexterm>

<indexterm id="INDEX-1086" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>conditions, expressions in loops</primary>
</indexterm>

<indexterm id="INDEX-1087" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>re-initialization expressions, loops</primary>
</indexterm>

<indexterm id="INDEX-1088" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>expressions</primary>
<secondary>loops, separating with commas (,)</secondary>
</indexterm>

<indexterm id="INDEX-1089" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>loops</primary>
<secondary>iteration through</secondary>
</indexterm>

<indexterm id="INDEX-1090" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>scope</primary>
<secondary> variables in three-part for loops</secondary>
</indexterm>

<indexterm id="INDEX-1091" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>infinite loops</primary>
</indexterm>

<indexterm id="INDEX-1092" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>loops </primary>
<secondary>infinite</secondary>
</indexterm>

<indexterm id="INDEX-1093" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>exiting </primary>
<secondary>infinite loop</secondary>
</indexterm>

<indexterm id="INDEX-1094" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>terminating </primary>
<secondary>infinite loop</secondary>
</indexterm>

<indexterm id="INDEX-1095" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>stopping </primary>
<secondary>infinite loop</secondary>
</indexterm>

<indexterm id="INDEX-1096" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>quitting </primary>
<secondary>infinite loop</secondary>
</indexterm>

<indexterm id="INDEX-1097" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>endless loop</primary>
<see>infinite loops</see>
</indexterm>

<indexterm id="INDEX-1098" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>loops</primary>
<secondary>last operator</secondary>
</indexterm>

<indexterm id="INDEX-1099" file="ch04_04.htm" sect="4.4.2. for Loops">
<primary>last operator</primary>
</indexterm>

<indexterm id="INDEX-1100" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>foreach loops</primary>
</indexterm>

<indexterm id="INDEX-1101" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>variables</primary>
<secondary>control, in foreach loop</secondary>
</indexterm>

<indexterm id="INDEX-1102" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>control variables</primary>
</indexterm>

<indexterm id="INDEX-1103" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarunderscore">$_ ($ARG) ;forearch statement and</secondary>
</indexterm>

<indexterm id="INDEX-1104" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>for</primary>
<secondary> as an alias of foreach</secondary>
</indexterm>

<indexterm id="INDEX-1105" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>hashes</primary>
<secondary> printing out in sorted order</secondary>
</indexterm>

<indexterm id="INDEX-1106" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>aliasing</primary>
<secondary> in foreach loops</secondary>
</indexterm>

<indexterm id="INDEX-1107" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>scope</primary>
<secondary> loop variable in foreach</secondary>
</indexterm>

<indexterm id="INDEX-1108" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>my function</primary>
</indexterm>

<indexterm id="INDEX-1109" file="ch04_04.htm" sect="4.4.3. foreach Loops">
<primary>continue block</primary>
</indexterm>

<indexterm id="INDEX-1110" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>iteration</primary>
<see>loops</see>
</indexterm>

<indexterm id="INDEX-1111" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>labels</primary>
<secondary sortas="loops">with loops</secondary>
</indexterm>

<indexterm id="INDEX-1112" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>loops</primary>
<secondary>labels for</secondary>
</indexterm>

<indexterm id="INDEX-1113" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>operators, for loop control</primary>
</indexterm>

<indexterm id="INDEX-1114" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>commands </primary>
<secondary>for loop control</secondary>
</indexterm>

<indexterm id="INDEX-1115" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>last operator</primary>
</indexterm>

<indexterm id="INDEX-1116" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>next operator</primary>
</indexterm>

<indexterm id="INDEX-1117" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>redo operator</primary>
</indexterm>

<indexterm id="INDEX-1118" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>labels</primary>
</indexterm>

<indexterm id="INDEX-1119" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>return operators</primary>
</indexterm>

<indexterm id="INDEX-1120" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>functions</primary>
<secondary>return operators in</secondary>
</indexterm>

<indexterm id="INDEX-1121" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>continue block</primary>
</indexterm>

<indexterm id="INDEX-1122" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>continue block</primary>
<seealso>loops</seealso>
</indexterm>

<indexterm id="INDEX-1123" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>last operator</primary>
</indexterm>

<indexterm id="INDEX-1124" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>break statement</primary>
<see>last operator</see>
</indexterm>

<indexterm id="INDEX-1125" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>next operator</primary>
</indexterm>

<indexterm id="INDEX-1126" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>blocks </primary>
<secondary>loops</secondary>
<see>loops</see>
</indexterm>

<indexterm id="INDEX-1127" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>blocks</primary>
<seealso>statements</seealso>
</indexterm>

<indexterm id="INDEX-1128" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>redo operator</primary>
</indexterm>

<indexterm id="INDEX-1129" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>continuation lines</primary>
</indexterm>

<indexterm id="INDEX-1130" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>Getopts::* modules</primary>
</indexterm>

<indexterm id="INDEX-1131" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>statements</primary>
<secondary>loop-control operators vs.</secondary>
</indexterm>

<indexterm id="INDEX-1132" file="ch04_04.htm" sect="4.4.4. Loop Control">
<primary>loops</primary>
<secondary>control operators for</secondary>
</indexterm>

<indexterm id="INDEX-1134" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>blocks</primary>
<secondary>bare</secondary>
</indexterm>

<indexterm id="INDEX-1135" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>bare blocks</primary>
</indexterm>

<indexterm id="INDEX-1136" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>exiting</primary>
<secondary>once-through blocks</secondary>
</indexterm>

<indexterm id="INDEX-1137" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>next operator</primary>
<secondary>exiting once-through blocks with</secondary>
</indexterm>

<indexterm id="INDEX-1138" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>eval {}</primary>
<secondary>loop controls and</secondary>
</indexterm>

<indexterm id="INDEX-1139" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>sub {}</primary>
<secondary>loop controls and</secondary>
</indexterm>

<indexterm id="INDEX-1140" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>do {}</primary>
<secondary>loop controls and</secondary>
</indexterm>

<indexterm id="INDEX-1141" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>exiting</primary>
<secondary>if or unless blocks</secondary>
</indexterm>

<indexterm id="INDEX-1142" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary sortas="@braces">{} (braces)</primary>
<secondary>bare blocks, creating with</secondary>
</indexterm>

<indexterm id="INDEX-1143" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>next</primary>
<secondary> used in a do while</secondary>
</indexterm>

<indexterm id="INDEX-1144" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>do BLOCK</primary>
<secondary>iterating</secondary>
</indexterm>

<indexterm id="INDEX-1145" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>last operator</primary>
<secondary>used in a do while</secondary>
</indexterm>

<indexterm id="INDEX-1146" file="ch04_05.htm" sect="4.5. Bare Blocks">
<primary>do BLOCK</primary>
<secondary>terminating</secondary>
</indexterm>

<indexterm id="INDEX-1147" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>case structure</primary>
</indexterm>

<indexterm id="INDEX-1148" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>if statements </primary>
<secondary sortas="case">in case structure</secondary>
</indexterm>

<indexterm id="INDEX-1149" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>switch statement</primary>
</indexterm>

<indexterm id="INDEX-1150" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>case statement</primary>
</indexterm>

<indexterm id="INDEX-1151" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>bare blocks</primary>
<secondary>case structures, doing with</secondary>
</indexterm>

<indexterm id="INDEX-1152" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>last operator</primary>
</indexterm>

<indexterm id="INDEX-1153" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>foreach loops</primary>
<secondary>aliasing capability, using</secondary>
</indexterm>

<indexterm id="INDEX-1154" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>aliases</primary>
<secondary>for/foreach loops, creating with</secondary>
</indexterm>

<indexterm id="INDEX-1155" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>conditional (?:) operator</primary>
</indexterm>

<indexterm id="INDEX-1156" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary sortas="@question">? (question mark)</primary>
<secondary sortas="@questioncolon">?: (conditional) operator</secondary>
</indexterm>

<indexterm id="INDEX-1157" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>trinary operator</primary>
<secondary>?: as</secondary>
</indexterm>

<indexterm id="INDEX-1158" file="ch04_05.htm" sect="4.5.1. Case Structures">
<primary>hashes</primary>
<secondary>cascading conditionals, using instead of</secondary>
</indexterm>

<indexterm id="INDEX-1161" file="ch04_06.htm" sect="4.6. goto">
<primary>goto function</primary>
</indexterm>

<indexterm id="INDEX-1162" file="ch04_06.htm" sect="4.6. goto">
<primary>labels</primary>
<secondary sortas="goto">with goto statement</secondary>
</indexterm>

<indexterm id="INDEX-1163" file="ch04_06.htm" sect="4.6. goto">
<primary>EXPRs</primary>
<secondary>goto operator, use with</secondary>
</indexterm>

<indexterm id="INDEX-1164" file="ch04_06.htm" sect="4.6. goto">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="subroutine names">for subroutine names</secondary>
</indexterm>

<indexterm id="INDEX-1165" file="ch04_06.htm" sect="4.6. goto">
<primary>subroutines</primary>
<secondary>substituting with goto</secondary>
</indexterm>

<indexterm id="INDEX-1166" file="ch04_06.htm" sect="4.6. goto">
<primary>AUTOLOAD subroutines</primary>
</indexterm>

<indexterm id="INDEX-1167" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>global</primary>
<secondary>declarations</secondary>
</indexterm>

<indexterm id="INDEX-1168" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>declarations</primary>
<secondary>global</secondary>
</indexterm>

<indexterm id="INDEX-1169" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>statements</primary>
<secondary>global declarations and</secondary>
</indexterm>

<indexterm id="INDEX-1170" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>compilers</primary>
<secondary>global declarations and</secondary>
</indexterm>

<indexterm id="INDEX-1171" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>no declarations</primary>
</indexterm>

<indexterm id="INDEX-1172" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>use declarations</primary>
</indexterm>

<indexterm id="INDEX-1173" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>declarations</primary>
<secondary>subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1174" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>subroutines</primary>
<secondary>declaring</secondary>
</indexterm>

<indexterm id="INDEX-1175" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>definitions</primary>
<secondary>subroutines</secondary>
<tertiary>declarations vs.</tertiary>
</indexterm>

<indexterm id="INDEX-1176" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>or operator</primary>
<secondary>list operators, use with</secondary>
</indexterm>

<indexterm id="INDEX-1177" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>OR (||) operator</primary>
<secondary>list operators and</secondary>
</indexterm>

<indexterm id="INDEX-1178" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>logical operators</primary>
<secondary>or operator</secondary>
<tertiary>use with list operators</tertiary>
</indexterm>

<indexterm id="INDEX-1179" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>definitions</primary>
<secondary>subroutines</secondary>
<tertiary>loading from other files</tertiary>
</indexterm>

<indexterm id="INDEX-1180" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>subroutines</primary>
<secondary>definitions, loading from other files</secondary>
</indexterm>

<indexterm id="INDEX-1181" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>require operator</primary>
</indexterm>

<indexterm id="INDEX-1182" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>pragmas</primary>
</indexterm>

<indexterm id="INDEX-1183" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>use</primary>
</indexterm>

<indexterm id="INDEX-1184" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>require</primary>
</indexterm>

<indexterm id="INDEX-1185" file="ch04_07.htm" sect="4.7. Global Declarations">
<primary>importing</primary>
</indexterm>

<indexterm id="INDEX-1186" file="ch04_08.htm" sect="4.8. Scoped Declarations">
<primary>declarations</primary>
<secondary>scoped</secondary>
</indexterm>

<indexterm id="INDEX-1187" file="ch04_08.htm" sect="4.8. Scoped Declarations">
<primary>scope</primary>
<secondary>declarations and</secondary>
</indexterm>

<indexterm id="INDEX-1188" file="ch04_08.htm" sect="4.8. Scoped Declarations">
<primary>lexically scoped declarations</primary>
</indexterm>

<indexterm id="INDEX-1189" file="ch04_08.htm" sect="4.8. Scoped Declarations">
<primary>dynamic scoping</primary>
</indexterm>

<indexterm id="INDEX-1190" file="ch04_08.htm" sect="4.8. Scoped Declarations">
<primary>use</primary>
<secondary>global and lexical scoping of</secondary>
</indexterm>

<indexterm id="INDEX-1191" file="ch04_08.htm" sect="4.8. Scoped Declarations">
<primary>declarations</primary>
<secondary>packages</secondary>
</indexterm>

<indexterm id="INDEX-1192" file="ch04_08.htm" sect="4.8. Scoped Declarations">
<primary>default package</primary>
</indexterm>

<indexterm id="INDEX-1193" file="ch04_08.htm" sect="4.8. Scoped Declarations">
<primary>package declaration</primary>
</indexterm>

<indexterm id="INDEX-1194" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>my function</primary>
</indexterm>

<indexterm id="INDEX-1195" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>declarations</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-1196" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>variables</primary>
<secondary>declaring</secondary>
</indexterm>

<indexterm id="INDEX-1197" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>dynamic scoping</primary>
</indexterm>

<indexterm id="INDEX-1198" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>local</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-1199" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>global</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-1200" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>variables</primary>
<secondary>my</secondary>
<see>my function</see>
</indexterm>

<indexterm id="INDEX-1201" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>package variables</primary>
<see>global variables</see>
</indexterm>

<indexterm id="INDEX-1202" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>scope modifiers</primary>
</indexterm>

<indexterm id="INDEX-1203" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>scope operators</primary>
</indexterm>

<indexterm id="INDEX-1204" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>my function</primary>
</indexterm>

<indexterm id="INDEX-1205" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>our function</primary>
</indexterm>

<indexterm id="INDEX-1206" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>local function</primary>
</indexterm>

<indexterm id="INDEX-1207" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>lexicals</primary>
<seealso>lexical scope</seealso>
</indexterm>

<indexterm id="INDEX-1208" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>names</primary>
<secondary>scope, confining to</secondary>
</indexterm>

<indexterm id="INDEX-1209" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>values</primary>
<secondary>scope, confining to</secondary>
</indexterm>

<indexterm id="INDEX-1210" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>scalar context</primary>
<secondary>lvalues in</secondary>
</indexterm>

<indexterm id="INDEX-1211" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>list context</primary>
<secondary>lvalues in</secondary>
</indexterm>

<indexterm id="INDEX-1212" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>lvalues</primary>
<secondary>modifiers and</secondary>
</indexterm>

<indexterm id="INDEX-1213" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>precedence</primary>
<secondary>modifiers vs. commas</secondary>
</indexterm>

<indexterm id="INDEX-1214" file="ch04_08.htm" sect="4.8.1. Scoped Variable Declarations">
<primary>dynamic scoping</primary>
</indexterm>

<indexterm id="INDEX-1215" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>lexical scope</primary>
</indexterm>

<indexterm id="INDEX-1216" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>variables</primary>
<secondary>scoped</secondary>
<tertiary>lexical scope</tertiary>
</indexterm>

<indexterm id="INDEX-1217" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>scopes</primary>
<secondary>lexical scope</secondary>
</indexterm>

<indexterm id="INDEX-1218" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>scopes</primary>
<secondary>static</secondary>
<see>scopes; lexical</see>
</indexterm>

<indexterm id="INDEX-1219" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>static scoping</primary>
<see>lexical scope</see>
</indexterm>

<indexterm id="INDEX-1220" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>scopes</primary>
<secondary>file</secondary>
</indexterm>

<indexterm id="INDEX-1221" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>scopes</primary>
<secondary>block</secondary>
</indexterm>

<indexterm id="INDEX-1222" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>my function</primary>
</indexterm>

<indexterm id="INDEX-1223" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>our function</primary>
</indexterm>

<indexterm id="INDEX-1224" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>local function</primary>
</indexterm>

<indexterm id="INDEX-1225" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>files</primary>
<secondary>scopes</secondary>
</indexterm>

<indexterm id="INDEX-1226" file="ch04_08.htm" sect="4.8.2. Lexically Scoped Variables: my">
<primary>closures</primary>
</indexterm>

<indexterm id="INDEX-1227" file="ch04_08.htm" sect="4.8.3. Lexically Scoped Global Declarations: our">
<primary>global variables</primary>
<secondary>declaring</secondary>
</indexterm>

<indexterm id="INDEX-1228" file="ch04_08.htm" sect="4.8.3. Lexically Scoped Global Declarations: our">
<primary>variables</primary>
<secondary>declaring global</secondary>
</indexterm>

<indexterm id="INDEX-1229" file="ch04_08.htm" sect="4.8.3. Lexically Scoped Global Declarations: our">
<primary>declarations</primary>
<secondary>global variables</secondary>
<tertiary>lexically scoped</tertiary>
</indexterm>

<indexterm id="INDEX-1230" file="ch04_08.htm" sect="4.8.3. Lexically Scoped Global Declarations: our">
<primary>our declarations</primary>
<secondary>global variables, lexically scoped</secondary>
</indexterm>

<indexterm id="INDEX-1231" file="ch04_08.htm" sect="4.8.4. Dynamically Scoped Variables: local">
<primary>scopes</primary>
<secondary> dynamic</secondary>
</indexterm>

<indexterm id="INDEX-1232" file="ch04_08.htm" sect="4.8.4. Dynamically Scoped Variables: local">
<primary>dynamic scoping</primary>
<secondary>local operator, using on global variables</secondary>
</indexterm>

<indexterm id="INDEX-1233" file="ch04_08.htm" sect="4.8.4. Dynamically Scoped Variables: local">
<primary>local operator</primary>
<secondary>global variables, using on</secondary>
</indexterm>

<indexterm id="INDEX-1234" file="ch04_08.htm" sect="4.8.4. Dynamically Scoped Variables: local">
<primary>global variables</primary>
<secondary>local operator, using on</secondary>
</indexterm>

<indexterm id="INDEX-1235" file="ch04_08.htm" sect="4.8.4. Dynamically Scoped Variables: local">
<primary>my declarations</primary>
<secondary>local vs.</secondary>
</indexterm>

<indexterm id="INDEX-1236" file="ch04_08.htm" sect="4.8.4. Dynamically Scoped Variables: local">
<primary>symbol tables</primary>
<secondary>local operator, making temporary changes with</secondary>
</indexterm>

<indexterm id="INDEX-1237" file="ch04_09.htm" sect="4.9. Pragmas">
<primary>pragmas</primary>
</indexterm>

<indexterm id="INDEX-1238" file="ch04_09.htm" sect="4.9. Pragmas">
<primary>use declarations</primary>
<seealso>pragmas</seealso>
</indexterm>

<indexterm id="INDEX-1239" file="ch04_09.htm" sect="4.9. Pragmas">
<primary>no declarations</primary>
<seealso>pragmas</seealso>
</indexterm>

<indexterm id="INDEX-1240" file="ch04_09.htm" sect="4.9. Pragmas">
<primary>lexical scope</primary>
<secondary>pragmas and</secondary>
</indexterm>

<indexterm id="INDEX-1241" file="ch04_09.htm" sect="4.9. Pragmas">
<primary>pragmas</primary>
<secondary>lexically scoped</secondary>
</indexterm>

<indexterm id="INDEX-1242" file="ch04_09.htm" sect="4.9.1. Controlling Warnings">
<primary>warnings pragma</primary>
</indexterm>

<indexterm id="INDEX-1243" file="ch04_09.htm" sect="4.9.1. Controlling Warnings">
<primary>-w switch, perl</primary>
</indexterm>

<indexterm id="INDEX-1244" file="ch04_09.htm" sect="4.9.1. Controlling Warnings">
<primary sortas="@dollarsign">$ variables</primary>
<secondary sortas="@dollarsigncaretW">$^W</secondary>
</indexterm>

<indexterm id="INDEX-1245" file="ch04_09.htm" sect="4.9.2. Controlling the Use of Globals">
<primary>strict pragma</primary>
</indexterm>

<indexterm id="INDEX-1246" file="ch04_09.htm" sect="4.9.2. Controlling the Use of Globals">
<primary>global variables</primary>
<secondary>controlling use with strict pragma</secondary>
</indexterm>

<indexterm id="INDEX-1247" file="ch04_09.htm" sect="4.9.2. Controlling the Use of Globals">
<primary>barewords</primary>
<secondary>strict pragma, checking use of</secondary>
</indexterm>

<indexterm id="INDEX-1248" file="ch04_09.htm" sect="4.9.2. Controlling the Use of Globals">
<primary>symbolic dereferences</primary>
<secondary>checking with strict pragma</secondary>
</indexterm>

<indexterm id="INDEX-1251" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>patterns (and regular expressions)</primary>
</indexterm>

<indexterm id="INDEX-1252" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>matching patterns</primary>
</indexterm>

<indexterm id="INDEX-1253" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>regular expressions</primary>
<see>patterns</see>
</indexterm>

<indexterm id="INDEX-1254" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>databases</primary>
<secondary>Perl connections to</secondary>
</indexterm>

<indexterm id="INDEX-1255" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>text</primary>
<secondary>processing, Perl capabilities</secondary>
</indexterm>

<indexterm id="INDEX-1256" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>matching patterns</primary>
<seealso>patterns</seealso>
</indexterm>

<indexterm id="INDEX-1257" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>regex</primary>
<see>patterns</see>
</indexterm>

<indexterm id="INDEX-1258" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>m// (match) operator</primary>
</indexterm>

<indexterm id="INDEX-1259" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>match operator</primary>
<see>m// operator</see>
</indexterm>

<indexterm id="INDEX-1260" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>s/// (substitution) operator</primary>
</indexterm>

<indexterm id="INDEX-1261" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>substitution operator</primary>
<see>s/// operator</see>
</indexterm>

<indexterm id="INDEX-1262" file="ch05_01.htm" sect="5. Pattern Matching">
<primary>operators</primary>
<secondary>matching and substitution</secondary>
</indexterm>

<indexterm id="INDEX-1263" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>characters</primary>
<secondary sortas="patterns">in patterns</secondary>
</indexterm>

<indexterm id="INDEX-1264" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>patterns (and regular expressions)</primary>
<secondary>characters in</secondary>
</indexterm>

<indexterm id="INDEX-1265" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>literals</primary>
</indexterm>

<indexterm id="INDEX-1266" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>metacharacters</primary>
</indexterm>

<indexterm id="INDEX-1267" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>characters</primary>
<secondary>metacharacters</secondary>
</indexterm>

<indexterm id="INDEX-1268" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary sortas="escape">to escape metacharacters</secondary>
</indexterm>

<indexterm id="INDEX-1269" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1270" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1271" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@parens">() (parentheses)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1272" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@brackets">[] (brackets)</primary>
<secondary sortas="@bracket metacharacter">[ metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1273" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@braces">{} (braces)</primary>
<secondary sortas="@braces metacharacter">{ metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1274" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@caret">^ (caret)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1275" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1276" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@plus">+ (plus sign)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1277" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@question">? (question mark)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1278" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@dot">. (dot)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1279" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1280" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>zero-width assertions</primary>
</indexterm>

<indexterm id="INDEX-1281" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>assertions (in patterns)</primary>
</indexterm>

<indexterm id="INDEX-1282" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="b word">\b word boundary assertion</primary>
</indexterm>

<indexterm id="INDEX-1283" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="t tab">\t tab character assertion</primary>
</indexterm>

<indexterm id="INDEX-1284" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>patterns (and regular expressions)</primary>
<secondary>assertions in</secondary>
</indexterm>

<indexterm id="INDEX-1285" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>metacharacters</primary>
<secondary>structural</secondary>
</indexterm>

<indexterm id="INDEX-1286" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>structural metacharacters in regular expressions</primary>
</indexterm>

<indexterm id="INDEX-1287" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary sortas="alternation">for alternation</secondary>
</indexterm>

<indexterm id="INDEX-1288" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>alternation</primary>
</indexterm>

<indexterm id="INDEX-1289" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>bar</primary>
<see>|</see>
</indexterm>

<indexterm id="INDEX-1290" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>grouping operator</primary>
</indexterm>

<indexterm id="INDEX-1291" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary sortas="@parens">() (parentheses)</primary>
<secondary>grouping operator</secondary>
</indexterm>

<indexterm id="INDEX-1292" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>patterns (and regular expressions)</primary>
<secondary>quantifiers in</secondary>
</indexterm>

<indexterm id="INDEX-1293" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>quantifiers (in matching)</primary>
</indexterm>

<indexterm id="INDEX-1294" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>zero-width assertions</primary>
<secondary>quantifiers and</secondary>
</indexterm>

<indexterm id="INDEX-1295" file="ch05_01.htm" sect="5.1. The Regular Expression Bestiary">
<primary>modifiers</primary>
<secondary>statements</secondary>
<tertiary>quantifiers vs.</tertiary>
</indexterm>

<indexterm id="INDEX-1298" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>operators</primary>
<secondary>pattern-matching</secondary>
</indexterm>

<indexterm id="INDEX-1299" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>patterns (and regular expressions)</primary>
<secondary>matching</secondary>
<tertiary>operators for</tertiary>
</indexterm>

<indexterm id="INDEX-1300" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>interpolation</primary>
<secondary>double quotes ("), using</secondary>
</indexterm>

<indexterm id="INDEX-1301" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>variables</primary>
<secondary>interpolating</secondary>
<tertiary sortas="double quotes">with double quotes</tertiary>
</indexterm>

<indexterm id="INDEX-1302" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary sortas="@double">" (double quotes)</primary>
</indexterm>

<indexterm id="INDEX-1303" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>quotation marks</primary>
<secondary>double (")</secondary>
</indexterm>

<indexterm id="INDEX-1304" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>m// (match operator)</primary>
<secondary>double quote interpolation, providing</secondary>
</indexterm>

<indexterm id="INDEX-1305" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>s/// (substitution operator)</primary>
<secondary>double-quote interpolation, providing</secondary>
</indexterm>

<indexterm id="INDEX-1306" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>substitution (s///) operator</primary>
</indexterm>

<indexterm id="INDEX-1307" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>parsing</primary>
<secondary>double-quote interpolation and regular expressions</secondary>
</indexterm>

<indexterm id="INDEX-1308" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary sortas="@doublequotes">" (double quotes)</primary>
<seealso>qq//; print function</seealso>
</indexterm>

<indexterm id="INDEX-1309" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>patterns (and regular expressions)</primary>
<secondary>terminating delimiter for</secondary>
</indexterm>

<indexterm id="INDEX-1310" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>variables</primary>
<secondary>interpolating</secondary>
<tertiary sortas="patterns">into patterns</tertiary>
</indexterm>

<indexterm id="INDEX-1311" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>interpolation</primary>
<secondary>variables</secondary>
<tertiary sortas="patterns">into patterns</tertiary>
</indexterm>

<indexterm id="INDEX-1312" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>tr/// (transliteration) operator</primary>
</indexterm>

<indexterm id="INDEX-1313" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equaltilde">=~ (pattern binding) operator</secondary>
<tertiary>using with pattern matching operators</tertiary>
</indexterm>

<indexterm id="INDEX-1314" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary sortas="@bang">! (bang)</primary>
<secondary sortas="@bangtilde">!~ (binding) operator</secondary>
<tertiary>using with pattern matching operators</tertiary>
</indexterm>

<indexterm id="INDEX-1315" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>binding operators</primary>
<secondary>pattern-matching operators, using with</secondary>
</indexterm>

<indexterm id="INDEX-1316" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>y/// (transliteration) operator</primary>
</indexterm>

<indexterm id="INDEX-1317" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>split function</primary>
</indexterm>

<indexterm id="INDEX-1318" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>patterns (and regular expressions)</primary>
<secondary>split function and</secondary>
</indexterm>

<indexterm id="INDEX-1319" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>qr// (quote regex) operator</primary>
</indexterm>

<indexterm id="INDEX-1320" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>m// (match) operator</primary>
<secondary sortas="@equalsigntilde">=~ (binding) operator, using with</secondary>
</indexterm>

<indexterm id="INDEX-1321" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>s/// (substitution) operator</primary>
<secondary sortas="@equalsigntilde">=~ and !~ binding operators, using with</secondary>
</indexterm>

<indexterm id="INDEX-1322" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>tr/// (transliteration) operator</primary>
<secondary sortas="@equalsigntilde">=~ and !~ binding operators, using with</secondary>
</indexterm>

<indexterm id="INDEX-1323" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>scalars</primary>
<secondary>pattern-matching operators, applying to</secondary>
</indexterm>

<indexterm id="INDEX-1324" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>lvalues</primary>
<secondary>pattern-matching operators, use on</secondary>
</indexterm>

<indexterm id="INDEX-1325" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>delimiters</primary>
<secondary>pattern-matching operators and</secondary>
</indexterm>

<indexterm id="INDEX-1326" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary sortas="@dollarsign">$ variables</primary>
<secondary sortas="@dollarsignbacktick">$`</secondary>
</indexterm>

<indexterm id="INDEX-1327" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary sortas="@dollarsign">$ variables</primary>
<secondary sortas="@dollarsignampersandsemicolon">$&amp;</secondary>
</indexterm>

<indexterm id="INDEX-1328" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary sortas="@dollarsign">$ variables</primary>
<secondary sortas="@dollarsignsinglequotes">$'</secondary>
</indexterm>

<indexterm id="INDEX-1329" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>patterns (and regular expressions)</primary>
<secondary>matching</secondary>
<tertiary>substrings corresponding to subpatterns</tertiary>
</indexterm>

<indexterm id="INDEX-1330" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>patterns (and regular expressions)</primary>
<secondary>matching</secondary>
<tertiary>special variables for</tertiary>
</indexterm>

<indexterm id="INDEX-1331" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>scopes</primary>
<secondary>pattern-matching operations</secondary>
</indexterm>

<indexterm id="INDEX-1332" file="ch05_02.htm" sect="5.2. Pattern-Matching Operators">
<primary>dynamic scoping</primary>
<secondary>pattern variables</secondary>
</indexterm>

<indexterm id="INDEX-1333" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>patterns (and regular expressions)</primary>
<secondary>modifiers for</secondary>
</indexterm>

<indexterm id="INDEX-1334" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>modifiers</primary>
<secondary sortas="patterns">for patterns</secondary>
</indexterm>

<indexterm id="INDEX-1335" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>operators</primary>
<secondary>pattern-matching</secondary>
<tertiary>modifiers for</tertiary>
</indexterm>

<indexterm id="INDEX-1336" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>m// (match) operator</primary>
<secondary>modifiers for</secondary>
</indexterm>

<indexterm id="INDEX-1337" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>s/// (substitution) operator</primary>
<secondary>modifiers for</secondary>
</indexterm>

<indexterm id="INDEX-1338" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>qr// (quote regex) operator</primary>
<secondary>modifiers for</secondary>
</indexterm>

<indexterm id="INDEX-1339" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>tr/// (transliteration) operator</primary>
<secondary>modifiers for</secondary>
</indexterm>

<indexterm id="INDEX-1340" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>flags</primary>
<see>modifiers</see>
</indexterm>

<indexterm id="INDEX-1341" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>options</primary>
<see>modifiers</see>
</indexterm>

<indexterm id="INDEX-1342" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>case sensitivity</primary>
<secondary>/i modifier (case insensitive)</secondary>
</indexterm>

<indexterm id="INDEX-1343" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="i pattern">/i pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1344" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="s pattern">/s pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1345" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="m pattern">/m pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1346" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="x pattern">/x pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1347" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="o pattern">/o pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1348" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>case</primary>
<secondary>matching, /i operator</secondary>
</indexterm>

<indexterm id="INDEX-1349" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>strings</primary>
<secondary>containing newlines, matches against</secondary>
</indexterm>

<indexterm id="INDEX-1350" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>newlines</primary>
<secondary>strings containing, matches against</secondary>
</indexterm>

<indexterm id="INDEX-1351" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="@dot">. (dot)</primary>
<secondary>character wildcard</secondary>
</indexterm>

<indexterm id="INDEX-1352" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="o pattern">/o pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1353" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>single quotes (')</primary>
<secondary>pattern recompilation and</secondary>
</indexterm>

<indexterm id="INDEX-1354" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>recompiling patterns, limiting with /o modifier</primary>
</indexterm>

<indexterm id="INDEX-1355" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="x pattern">/x pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1356" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>whitespace</primary>
<secondary sortas="x modifier">/x modifier in pattern matching</secondary>
</indexterm>

<indexterm id="INDEX-1357" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary sortas="@sharp"># (sharp)</primary>
<secondary sortas="comments">for comments</secondary>
<tertiary>/x pattern modifier, using with</tertiary>
</indexterm>

<indexterm id="INDEX-1358" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>comments</primary>
<secondary>extending with /x pattern modifier</secondary>
</indexterm>

<indexterm id="INDEX-1359" file="ch05_02.htm" sect="5.2.1. Pattern Modifiers">
<primary>patterns (and regular expressions)</primary>
<secondary>finding duplicate words in paragraphs</secondary>
</indexterm>

<indexterm id="INDEX-1363" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>m// (matching) operator</primary>
</indexterm>

<indexterm id="INDEX-1364" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="@slash">/ (slash)</primary>
<secondary sortas="slashslash">//</secondary>
<see>m// operator</see>
</indexterm>

<indexterm id="INDEX-1365" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>Boolean context</primary>
<secondary>m// (match) operator in</secondary>
</indexterm>

<indexterm id="INDEX-1366" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>scalar context</primary>
<secondary>m// (match) operator in</secondary>
</indexterm>

<indexterm id="INDEX-1367" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>backreferences</primary>
</indexterm>

<indexterm id="INDEX-1368" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>list context</primary>
<secondary>m// (match) operator in</secondary>
</indexterm>

<indexterm id="INDEX-1369" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>m// (match) operator</primary>
<secondary>modifiers for</secondary>
</indexterm>

<indexterm id="INDEX-1370" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>modifiers</primary>
<secondary>for patterns</secondary>
<tertiary>m// (match) operator</tertiary>
</indexterm>

<indexterm id="INDEX-1371" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="i modifier">/i pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1372" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="m modifier">/m pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1373" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="@caret">^ (caret)</primary>
<secondary sortas="matching">in matching</secondary>
</indexterm>

<indexterm id="INDEX-1374" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="@dollar sign">$ (dollar sign)</primary>
<secondary sortas="matching">in matching</secondary>
</indexterm>

<indexterm id="INDEX-1375" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="s modifier">/s pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1376" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="x modifier">/x pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1377" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="o modifier">/o pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1378" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="g modifier">/g pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1379" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="cg">/cg pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1380" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>global matching</primary>
<see>/g modifier</see>
</indexterm>

<indexterm id="INDEX-1381" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>list context</primary>
<secondary>m//g, listing all matches found</secondary>
</indexterm>

<indexterm id="INDEX-1382" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>hashes</primary>
<secondary>key/value pairs</secondary>
<tertiary>capturing from string with m//g operator</tertiary>
</indexterm>

<indexterm id="INDEX-1383" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>capturing in patterns</primary>
<secondary>words, alphanumeric</secondary>
</indexterm>

<indexterm id="INDEX-1384" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>words</primary>
<secondary>capturing</secondary>
</indexterm>

<indexterm id="INDEX-1385" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>scalar context</primary>
<secondary>/g pattern modifier, use in</secondary>
</indexterm>

<indexterm id="INDEX-1386" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="G positional">\G positional assertion</primary>
</indexterm>

<indexterm id="INDEX-1387" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>assertions (in patterns)</primary>
<secondary>\G positional assertion</secondary>
</indexterm>

<indexterm id="INDEX-1388" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="g global">/g (global) pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1389" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary sortas="@question">? (question mark)</primary>
<secondary sortas="questionquestion">?? operator</secondary>
<see>m?? operator</see>
</indexterm>

<indexterm id="INDEX-1390" file="ch05_02.htm" sect="5.2.2. The m// Operator (Matching)">
<primary>m?? (match) operator</primary>
</indexterm>

<indexterm id="INDEX-1392" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>s/// (substitution) operator</primary>
</indexterm>

<indexterm id="INDEX-1393" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>replacement, matched substrings</primary>
<see>s/// (substitution) operator</see>
</indexterm>

<indexterm id="INDEX-1394" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>searching</primary>
<secondary sortas="substrings">for substrings</secondary>
</indexterm>

<indexterm id="INDEX-1395" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>substrings</primary>
<secondary>searching for and replacing with s/// operator</secondary>
</indexterm>

<indexterm id="INDEX-1396" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>strings</primary>
<secondary>searching for and replacing substrings (s/// operator)</secondary>
</indexterm>

<indexterm id="INDEX-1397" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>patterns (and regular expressions)</primary>
<secondary>matching</secondary>
<tertiary>special variables for</tertiary>
</indexterm>

<indexterm id="INDEX-1398" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>double quotes (")</primary>
<secondary>replacement string, use with</secondary>
</indexterm>

<indexterm id="INDEX-1399" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="@double">" (double quotes)</primary>
<secondary sortas="replacement">in replacement string</secondary>
</indexterm>

<indexterm id="INDEX-1400" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>dynamic scoping</primary>
<secondary>pattern variables</secondary>
</indexterm>

<indexterm id="INDEX-1401" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="u escape">\u escape</primary>
</indexterm>

<indexterm id="INDEX-1402" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>uppercase, converting to</primary>
</indexterm>

<indexterm id="INDEX-1403" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>capitalization</primary>
<secondary>uppercase, converting to (\u escape)</secondary>
</indexterm>

<indexterm id="INDEX-1404" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>double-quote context</primary>
<secondary>scalar variables, expanding in</secondary>
</indexterm>

<indexterm id="INDEX-1405" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>scalar variables</primary>
<secondary sortas="double-quote">in double-quote context</secondary>
</indexterm>

<indexterm id="INDEX-1406" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>Control-A</primary>
</indexterm>

<indexterm id="INDEX-1407" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="g global">/g (global) pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1408" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>modifiers</primary>
<secondary>pattern</secondary>
<tertiary sortas="s///">with s/// (substitution) operator</tertiary>
</indexterm>

<indexterm id="INDEX-1409" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>s/// (substitution) operator</primary>
<secondary>pattern modifiers used with</secondary>
</indexterm>

<indexterm id="INDEX-1410" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="i modifier">/i pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1411" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="m modifier">/m pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1412" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="s modifier">/s pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1413" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="x modifier">/x pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1414" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="o modifier">/o pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1415" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="g modifier">/g pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1416" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary sortas="e modifier">/e pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1417" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>global search and replace</primary>
</indexterm>

<indexterm id="INDEX-1418" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>search and replace, global</primary>
</indexterm>

<indexterm id="INDEX-1419" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>numbers</primary>
<secondary>hexadecimal, converting to</secondary>
</indexterm>

<indexterm id="INDEX-1420" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>hexadecimal</primary>
<secondary>converting numbers to</secondary>
</indexterm>

<indexterm id="INDEX-1421" file="ch05_02.htm" sect="5.2.3. The s/// Operator (Substitution)">
<primary>converting</primary>
<secondary>numbers to/from hexadecimal</secondary>
</indexterm>

<indexterm id="INDEX-1422" file="ch05_02.htm" sect="5.2.3.1. Modifying strings en passant">
<primary>strings</primary>
<secondary>modifying</secondary>
</indexterm>

<indexterm id="INDEX-1423" file="ch05_02.htm" sect="5.2.3.1. Modifying strings en passant">
<primary>arrays</primary>
<secondary>s/// (substitution) operator and</secondary>
</indexterm>

<indexterm id="INDEX-1424" file="ch05_02.htm" sect="5.2.3.1. Modifying strings en passant">
<primary>loops</primary>
<secondary>s/// (substitution) operator, using on arrays</secondary>
</indexterm>

<indexterm id="INDEX-1425" file="ch05_02.htm" sect="5.2.3.1. Modifying strings en passant">
<primary>aliases</primary>
<secondary sortas="for">in for/foreach loops</secondary>
<tertiary>searching and replacing elements in arrays</tertiary>
</indexterm>

<indexterm id="INDEX-1426" file="ch05_02.htm" sect="5.2.3.1. Modifying strings en passant">
<primary>for loops</primary>
<secondary>searching and replacing elements in arrays</secondary>
</indexterm>

<indexterm id="INDEX-1427" file="ch05_02.htm" sect="5.2.3.1. Modifying strings en passant">
<primary>foreach loops</primary>
<secondary>searching and replacing elements in arrays</secondary>
</indexterm>

<indexterm id="INDEX-1428" file="ch05_02.htm" sect="5.2.3.1. Modifying strings en passant">
<primary>variables</primary>
<secondary>repeated substitutions, performing on</secondary>
</indexterm>

<indexterm id="INDEX-1429" file="ch05_02.htm" sect="5.2.3.1. Modifying strings en passant">
<primary>whitespace</primary>
<secondary>cononicalizing in a variable</secondary>
</indexterm>

<indexterm id="INDEX-1430" file="ch05_02.htm" sect="5.2.3.2. When a global substitution just isn't global enough">
<primary>loops</primary>
<secondary>using in (global substitutions)</secondary>
</indexterm>

<indexterm id="INDEX-1432" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>tr/// (transliteration) operator</primary>
</indexterm>

<indexterm id="INDEX-1433" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>y/// (transliteration) operator</primary>
</indexterm>

<indexterm id="INDEX-1434" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>sed</primary>
</indexterm>

<indexterm id="INDEX-1435" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>binding operators</primary>
<secondary>tr/// (substitution) operator, use with</secondary>
</indexterm>

<indexterm id="INDEX-1436" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>characters</primary>
<secondary>replacing in strings</secondary>
</indexterm>

<indexterm id="INDEX-1437" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>rot13 encryption</primary>
</indexterm>

<indexterm id="INDEX-1438" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>character sets</primary>
<secondary>ordering and ranges of characters in</secondary>
</indexterm>

<indexterm id="INDEX-1439" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>ranges</primary>
<secondary>character sets, specifying in</secondary>
</indexterm>

<indexterm id="INDEX-1440" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>modifiers</primary>
<secondary>patterns</secondary>
<tertiary sortas="tr///">with tr/// (transliteration) operator</tertiary>
</indexterm>

<indexterm id="INDEX-1441" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary sortas="c pattern">/c pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1442" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary sortas="d pattern">/d pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1443" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>deleting</primary>
<secondary>found but unreplaced characters</secondary>
</indexterm>

<indexterm id="INDEX-1444" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary sortas="s pattern">/s pattern modifier</primary>
</indexterm>

<indexterm id="INDEX-1445" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>duplicate replaced characters, eliminating</primary>
</indexterm>

<indexterm id="INDEX-1446" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary sortas="d modifier">/d modifier</primary>
</indexterm>

<indexterm id="INDEX-1447" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>eval function</primary>
<secondary>translating with variables</secondary>
</indexterm>

<indexterm id="INDEX-1448" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>variables</primary>
<secondary>translating with</secondary>
</indexterm>

<indexterm id="INDEX-1449" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>case sensitivity</primary>
</indexterm>

<indexterm id="INDEX-1450" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>capitalization</primary>
<secondary>changing</secondary>
</indexterm>

<indexterm id="INDEX-1451" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>titlecase</primary>
<secondary>\u and ucfirst function, using in conversions</secondary>
</indexterm>

<indexterm id="INDEX-1452" file="ch05_02.htm" sect="5.2.4. The tr/// Operator (Transliteration)">
<primary>Unicode</primary>
<secondary>titlecase, converting strings to</secondary>
</indexterm>

<indexterm id="INDEX-1456" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary>patterns (and regular expressions)</primary>
<secondary>metacharacters and metasymbols in</secondary>
</indexterm>

<indexterm id="INDEX-1457" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary>metacharacters</primary>
<secondary sortas="patterns">in patterns</secondary>
</indexterm>

<indexterm id="INDEX-1458" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary>metasymbols</primary>
<secondary sortas="patterns">in patterns</secondary>
</indexterm>

<indexterm id="INDEX-1459" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1460" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1461" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@parens">() (parentheses)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1462" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@brackets">[] (brackets)</primary>
<secondary sortas="@bracket metacharacter">[ metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1463" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@braces">{} (braces)</primary>
<secondary sortas="@braces metacharacter">{ metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1464" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@caret">^ (caret)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1465" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1466" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@plus">+ (plus sign)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1467" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@question">? (question mark)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1468" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@dot">. (dot)</primary>
<secondary>metacharacter</secondary>
</indexterm>

<indexterm id="INDEX-1469" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary>prefix operators</primary>
<secondary>metacharacters working as</secondary>
</indexterm>

<indexterm id="INDEX-1470" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary sortas="escape">to escape metacharacters</secondary>
</indexterm>

<indexterm id="INDEX-1471" file="ch05_03.htm" sect="5.3. Metacharacters and Metasymbols">
<primary>metacharacters</primary>
<secondary>escaping with backslash (\)</secondary>
</indexterm>

<indexterm id="INDEX-1472" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>structural metasymbols</primary>
</indexterm>

<indexterm id="INDEX-1473" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>ellipses (...)</primary>
</indexterm>

<indexterm id="INDEX-1474" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>assertions (in patterns)</primary>
</indexterm>

<indexterm id="INDEX-1475" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>zero-width assertions</primary>
</indexterm>

<indexterm id="INDEX-1476" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary sortas="@backslashellip">\... metasymbol</secondary>
</indexterm>

<indexterm id="INDEX-1477" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@vertcalbar">| (vertical bar)</primary>
<secondary sortas="@ellipbarellip">...|... alternation</secondary>
</indexterm>

<indexterm id="INDEX-1478" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>alternation</primary>
<secondary>match one or the other (...|...)</secondary>
</indexterm>

<indexterm id="INDEX-1479" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@parentheses">() (parentheses)</primary>
<secondary sortas="@parensellip">(...) grouping</secondary>
</indexterm>

<indexterm id="INDEX-1480" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>grouping operator</primary>
</indexterm>

<indexterm id="INDEX-1481" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@brackets">[] (brackets)</primary>
<secondary sortas="@bracketsellip">[...] character class</secondary>
</indexterm>

<indexterm id="INDEX-1482" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>quantifiers (in matching)</primary>
</indexterm>

<indexterm id="INDEX-1483" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>patterns (and regular expressions)</primary>
<secondary>quantifiers in</secondary>
</indexterm>

<indexterm id="INDEX-1484" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary>quantifier</secondary>
</indexterm>

<indexterm id="INDEX-1485" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@plus">+ (plus sign)</primary>
<secondary>quantifier</secondary>
</indexterm>

<indexterm id="INDEX-1486" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@question">? (question mark)</primary>
<secondary>quantifier</secondary>
</indexterm>

<indexterm id="INDEX-1487" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@braces">{} (braces)</primary>
<secondary>quantifier</secondary>
</indexterm>

<indexterm id="INDEX-1488" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>minimal matching</primary>
</indexterm>

<indexterm id="INDEX-1489" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>maximal matching</primary>
</indexterm>

<indexterm id="INDEX-1490" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary sortas="@asteriskquestion">*? quantifier</secondary>
</indexterm>

<indexterm id="INDEX-1491" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@plus">+ (plus sign)</primary>
<secondary sortas="@plusquestion">+? quantifier</secondary>
</indexterm>

<indexterm id="INDEX-1492" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@question">? (question mark)</primary>
<secondary sortas="@questionquestion">?? quantifier</secondary>
</indexterm>

<indexterm id="INDEX-1493" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>quantifiers</primary>
<secondary sortas="matching">in matching</secondary>
<tertiary>minimal and maximal</tertiary>
</indexterm>

<indexterm id="INDEX-1494" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>metasymbols</primary>
<secondary>extension syntax for</secondary>
</indexterm>

<indexterm id="INDEX-1495" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>patterns (and regular expressions)</primary>
<secondary>extension syntax</secondary>
</indexterm>

<indexterm id="INDEX-1496" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>patterns (and regular expressions)</primary>
<secondary>alphanumeric metasymbols</secondary>
</indexterm>

<indexterm id="INDEX-1497" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>metasymbols</primary>
<secondary>alphanumeric, in patterns</secondary>
</indexterm>

<indexterm id="INDEX-1498" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>character classes</primary>
<secondary>metasymbols used within</secondary>
</indexterm>

<indexterm id="INDEX-1499" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary sortas="@brackets">[] (brackets)</primary>
<secondary>character classes</secondary>
</indexterm>

<indexterm id="INDEX-1500" file="ch05_03.htm" sect="5.3.1. Metasymbol Tables">
<primary>case</primary>
<secondary>escape sequences for</secondary>
<tertiary>processing during variable interpolation pass</tertiary>
</indexterm>

<indexterm id="INDEX-1501" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary>aliases</primary>
<secondary sortas="characters">for characters</secondary>
</indexterm>

<indexterm id="INDEX-1502" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary>characters</primary>
<secondary>aliases for</secondary>
</indexterm>

<indexterm id="INDEX-1503" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary>patterns (and regular expressions)</primary>
<secondary>metasymbols in</secondary>
</indexterm>

<indexterm id="INDEX-1504" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary>metasymbols</primary>
<secondary sortas="patterns">in patterns</secondary>
</indexterm>

<indexterm id="INDEX-1505" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary>control characters</primary>
<secondary>metasymbols in patterns</secondary>
</indexterm>

<indexterm id="INDEX-1506" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary>octal numbers</primary>
<secondary>characters, specifying with</secondary>
</indexterm>

<indexterm id="INDEX-1507" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary sortas="NNN metasymbol">\NNN metasymbol</primary>
</indexterm>

<indexterm id="INDEX-1508" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary>hexadecimal numbers</primary>
<secondary>character numbers, specifying as</secondary>
</indexterm>

<indexterm id="INDEX-1509" file="ch05_03.htm" sect="5.3.2. Specific Characters">
<primary>named</primary>
<secondary>character, metasymbol for</secondary>
</indexterm>

<indexterm id="INDEX-1510" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>symbols</primary>
<secondary>metasymbols, generic wildcards</secondary>
</indexterm>

<indexterm id="INDEX-1511" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>wildcard metasymbols</primary>
</indexterm>

<indexterm id="INDEX-1512" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary sortas="@dot">. (dot)</primary>
<secondary>character wildcard</secondary>
</indexterm>

<indexterm id="INDEX-1513" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>characters</primary>
<secondary>wildcard matches for</secondary>
</indexterm>

<indexterm id="INDEX-1514" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary sortas="C wildcard metasymbol">\C wildcard metasymbol</primary>
</indexterm>

<indexterm id="INDEX-1515" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary sortas="X wildcard metasymbol">\X wildcard metasymbol</primary>
</indexterm>

<indexterm id="INDEX-1516" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>character classes</primary>
<secondary>wildcard metasymbols and</secondary>
</indexterm>

<indexterm id="INDEX-1517" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>newlines</primary>
<secondary>dot (.) metacharacter, matching</secondary>
</indexterm>

<indexterm id="INDEX-1518" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>quantifiers</primary>
<secondary>in matches</secondary>
<tertiary>dot (.) metacharacter, using with</tertiary>
</indexterm>

<indexterm id="INDEX-1519" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>Unicode</primary>
<secondary>wildcard metasymbols, matching with</secondary>
</indexterm>

<indexterm id="INDEX-1520" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>use utf8 pragma</primary>
</indexterm>

<indexterm id="INDEX-1521" file="ch05_03.htm" sect="5.3.3. Wildcard Metasymbols">
<primary>combining character sequence, matching with \X</primary>
</indexterm>

<indexterm id="INDEX-1525" file="ch05_04.htm" sect="5.4. Character Classes">
<primary>patterns (and regular expressions)</primary>
<secondary>character classes</secondary>
</indexterm>

<indexterm id="INDEX-1526" file="ch05_04.htm" sect="5.4. Character Classes">
<primary>character classes</primary>
</indexterm>

<indexterm id="INDEX-1527" file="ch05_04.htm" sect="5.4. Character Classes">
<primary>classes, Perl</primary>
</indexterm>

<indexterm id="INDEX-1528" file="ch05_04.htm" sect="5.4. Character Classes">
<primary>Unicode</primary>
<secondary>Perl properties for</secondary>
</indexterm>

<indexterm id="INDEX-1529" file="ch05_04.htm" sect="5.4. Character Classes">
<primary>properties</primary>
<secondary>Unicode</secondary>
</indexterm>

<indexterm id="INDEX-1530" file="ch05_04.htm" sect="5.4. Character Classes">
<primary>POSIX classes</primary>
</indexterm>

<indexterm id="INDEX-1531" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>character classes</primary>
<secondary>custom</secondary>
</indexterm>

<indexterm id="INDEX-1532" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary sortas="@brackets">[] (brackets)</primary>
<secondary>character classes</secondary>
</indexterm>

<indexterm id="INDEX-1533" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>ranges</primary>
<secondary>characters</secondary>
</indexterm>

<indexterm id="INDEX-1534" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="character ranges">in character ranges</secondary>
</indexterm>

<indexterm id="INDEX-1535" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary sortas="@caret">^ (caret)</primary>
<secondary>inverting character class</secondary>
<tertiary>character class, inverting</tertiary>
</indexterm>

<indexterm id="INDEX-1536" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>wildcard metasymbols</primary>
<secondary>character classes and</secondary>
</indexterm>

<indexterm id="INDEX-1537" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>negation</primary>
<secondary>character classes</secondary>
</indexterm>

<indexterm id="INDEX-1538" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary sortas="b backspace">\b (backspace assertion in character classes)</primary>
</indexterm>

<indexterm id="INDEX-1539" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>backspace</primary>
<secondary>\b assertion in character classes</secondary>
</indexterm>

<indexterm id="INDEX-1540" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>character metasymbols</primary>
<secondary sortas="character classes">in character classes</secondary>
</indexterm>

<indexterm id="INDEX-1541" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>wildcard metasymbols</primary>
<secondary>character classes and</secondary>
</indexterm>

<indexterm id="INDEX-1542" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>alternation</primary>
<secondary>character classes and</secondary>
</indexterm>

<indexterm id="INDEX-1543" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>quantifiers</primary>
<secondary sortas="matching">in matching</secondary>
<tertiary>character classes and</tertiary>
</indexterm>

<indexterm id="INDEX-1544" file="ch05_04.htm" sect="5.4.1. Custom Character Classes">
<primary>assertions (in patterns)</primary>
<secondary>character classes and</secondary>
</indexterm>

<indexterm id="INDEX-1545" file="ch05_04.htm" sect="5.4.2. Classic Perl Character Class Shortcuts">
<primary>character classes</primary>
<secondary>Perl shortcuts for</secondary>
</indexterm>

<indexterm id="INDEX-1546" file="ch05_04.htm" sect="5.4.2. Classic Perl Character Class Shortcuts">
<primary>negation</primary>
<secondary>character classes</secondary>
</indexterm>

<indexterm id="INDEX-1547" file="ch05_04.htm" sect="5.4.2. Classic Perl Character Class Shortcuts">
<primary>locales</primary>
<secondary>Perl character class shortcuts and</secondary>
</indexterm>

<indexterm id="INDEX-1548" file="ch05_04.htm" sect="5.4.2. Classic Perl Character Class Shortcuts">
<primary>byte meanings, character class shortcuts</primary>
</indexterm>

<indexterm id="INDEX-1549" file="ch05_04.htm" sect="5.4.2. Classic Perl Character Class Shortcuts">
<primary>Unicode</primary>
<secondary>properties</secondary>
<tertiary>Perl character class shortcuts and</tertiary>
</indexterm>

<indexterm id="INDEX-1550" file="ch05_04.htm" sect="5.4.3. Unicode Properties">
<primary>character classes</primary>
<secondary>Unicode properties</secondary>
</indexterm>

<indexterm id="INDEX-1551" file="ch05_04.htm" sect="5.4.3. Unicode Properties">
<primary>Unicode</primary>
<secondary>properties</secondary>
</indexterm>

<indexterm id="INDEX-1552" file="ch05_04.htm" sect="5.4.3. Unicode Properties">
<primary>Unicode</primary>
<secondary>information about</secondary>
</indexterm>

<indexterm id="INDEX-1553" file="ch05_04.htm" sect="5.4.3.1. Perl's Unicode properties">
<primary>Unicode</primary>
<secondary>properties</secondary>
<tertiary>Perl composites</tertiary>
</indexterm>

<indexterm id="INDEX-1554" file="ch05_04.htm" sect="5.4.3.1. Perl's Unicode properties">
<primary>composite Unicode properties</primary>
</indexterm>

<indexterm id="INDEX-1555" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>Unicode</primary>
<secondary>properties</secondary>
<tertiary>standard</tertiary>
</indexterm>

<indexterm id="INDEX-1556" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>standard Unicode properties</primary>
</indexterm>

<indexterm id="INDEX-1557" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>categories, characters</primary>
</indexterm>

<indexterm id="INDEX-1558" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>characters</primary>
<secondary>decomposition of</secondary>
</indexterm>

<indexterm id="INDEX-1559" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>compatibility decomposition, characters</primary>
</indexterm>

<indexterm id="INDEX-1560" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>canonical decomposition, characters</primary>
</indexterm>

<indexterm id="INDEX-1561" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>decomposing characters into simpler ones</primary>
</indexterm>

<indexterm id="INDEX-1562" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>Unicode</primary>
<secondary>properties</secondary>
<tertiary>decomposition of characters</tertiary>
</indexterm>

<indexterm id="INDEX-1563" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>Unicode</primary>
<secondary>properties</secondary>
<tertiary>bidirectional rendering</tertiary>
</indexterm>

<indexterm id="INDEX-1564" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>bidirectional rendering, Unicode properties</primary>
</indexterm>

<indexterm id="INDEX-1565" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>vowel sounds, classifying syllabaries according to</primary>
</indexterm>

<indexterm id="INDEX-1566" file="ch05_04.htm" sect="5.4.3.2. Standard Unicode properties">
<primary>Unicode</primary>
<secondary>properties</secondary>
<tertiary>syllabaries, classifying by vowel sounds</tertiary>
</indexterm>

<indexterm id="INDEX-1567" file="ch05_04.htm" sect="5.4.3.3. Unicode block properties">
<primary>Unicode</primary>
<secondary>properties</secondary>
<tertiary>block properties</tertiary>
</indexterm>

<indexterm id="INDEX-1568" file="ch05_04.htm" sect="5.4.3.3. Unicode block properties">
<primary>block properties, Unicode</primary>
</indexterm>

<indexterm id="INDEX-1569" file="ch05_04.htm" sect="5.4.3.3. Unicode block properties">
<primary>scripts</primary>
<secondary>languages, checking for</secondary>
</indexterm>

<indexterm id="INDEX-1570" file="ch05_04.htm" sect="5.4.3.3. Unicode block properties">
<primary>languages</primary>
<secondary>checking characters for</secondary>
</indexterm>

<indexterm id="INDEX-1571" file="ch05_04.htm" sect="5.4.3.4. Defining your own character properties">
<primary>characters</primary>
<secondary>properties</secondary>
<tertiary>defining your own</tertiary>
</indexterm>

<indexterm id="INDEX-1572" file="ch05_04.htm" sect="5.4.3.4. Defining your own character properties">
<primary>characters</primary>
<secondary>properties</secondary>
<seealso>under Unicode</seealso>
</indexterm>

<indexterm id="INDEX-1573" file="ch05_04.htm" sect="5.4.3.4. Defining your own character properties">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary>character set subtraction</secondary>
</indexterm>

<indexterm id="INDEX-1574" file="ch05_04.htm" sect="5.4.3.4. Defining your own character properties">
<primary>subtracting, from character sets</primary>
</indexterm>

<indexterm id="INDEX-1575" file="ch05_04.htm" sect="5.4.3.4. Defining your own character properties">
<primary sortas="@bang">! (bang)</primary>
<secondary>complemented character sets, using for</secondary>
</indexterm>

<indexterm id="INDEX-1576" file="ch05_04.htm" sect="5.4.3.4. Defining your own character properties">
<primary>character classes</primary>
<secondary>Perl classic</secondary>
</indexterm>

<indexterm id="INDEX-1579" file="ch05_04.htm" sect="5.4.4. POSIX-Style Character Classes">
<primary>character classes</primary>
<secondary>POSIX-style</secondary>
</indexterm>

<indexterm id="INDEX-1580" file="ch05_04.htm" sect="5.4.4. POSIX-Style Character Classes">
<primary>POSIX-style character classes</primary>
</indexterm>

<indexterm id="INDEX-1581" file="ch05_04.htm" sect="5.4.4. POSIX-Style Character Classes">
<primary>negation</primary>
<secondary>POSIX character classes</secondary>
</indexterm>

<indexterm id="INDEX-1582" file="ch05_04.htm" sect="5.4.4. POSIX-Style Character Classes">
<primary>locales</primary>
<secondary>use locale pragma with POSIX character classes</secondary>
</indexterm>

<indexterm id="INDEX-1587" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>quantifiers</primary>
<secondary sortas="matching">in matching</secondary>
</indexterm>

<indexterm id="INDEX-1588" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>patterns (and regular expressions)</primary>
<secondary>quantifiers in</secondary>
</indexterm>

<indexterm id="INDEX-1589" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary sortas="@asterisk">*
(asterisk)</primary>
<secondary sortas="quantifiers">in
quantifiers</secondary>
</indexterm>

<indexterm id="INDEX-1590" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary sortas="@plussign">+ (plus
sign)</primary>
<secondary sortas="quantifiers">in
quantifiers</secondary>
</indexterm>

<indexterm id="INDEX-1591" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary sortas="@questionmark">? (question
mark)</primary>
<secondary sortas="quantifiers">in
quantifiers</secondary>
</indexterm>

<indexterm id="INDEX-1592" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>quantifiers</primary>
<secondary>minimal and maximal</secondary>
</indexterm>

<indexterm id="INDEX-1593" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>minimal matching</primary>
</indexterm>

<indexterm id="INDEX-1594" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>maximal matching</primary>
</indexterm>

<indexterm id="INDEX-1595" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>greedy matching</primary>
</indexterm>

<indexterm id="INDEX-1596" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>length, matching</primary>
</indexterm>

<indexterm id="INDEX-1597" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>leftmost longest matching</primary>
</indexterm>

<indexterm id="INDEX-1598" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>quantifiers</primary>
<secondary>greedy</secondary>
</indexterm>

<indexterm id="INDEX-1599" file="ch05_05.htm" sect="5.5. Quantifiers">
<primary>greedy matching</primary>
</indexterm>

<indexterm id="INDEX-1602" file="ch05_06.htm" sect="5.6. Positions">
<primary>anchors</primary>
</indexterm>

<indexterm id="INDEX-1603" file="ch05_06.htm" sect="5.6. Positions">
<primary>positions</primary>
</indexterm>

<indexterm id="INDEX-1604" file="ch05_06.htm" sect="5.6. Positions">
<primary>patterns (and regular expressions)</primary>
<secondary>positions for matching</secondary>
</indexterm>

<indexterm id="INDEX-1605" file="ch05_06.htm" sect="5.6. Positions">
<primary>zero-width assertions</primary>
</indexterm>

<indexterm id="INDEX-1606" file="ch05_06.htm" sect="5.6. Positions">
<primary>assertions (in patterns)</primary>
<secondary>positional</secondary>
</indexterm>

<indexterm id="INDEX-1607" file="ch05_06.htm" sect="5.6. Positions">
<primary>substr function</primary>
<secondary>manipulating string positions with</secondary>
</indexterm>

<indexterm id="INDEX-1608" file="ch05_06.htm" sect="5.6. Positions">
<primary>positions</primary>
<secondary>substr function, manipulating with</secondary>
</indexterm>

<indexterm id="INDEX-1609" file="ch05_06.htm" sect="5.6.1. Beginnings: The \A and ^ Assertions">
<primary sortas="A string">\A (string boundary)</primary>
</indexterm>

<indexterm id="INDEX-1610" file="ch05_06.htm" sect="5.6.1. Beginnings: The \A and ^ Assertions">
<primary sortas="@caret">^ (caret) ;line boundary</primary>
</indexterm>

<indexterm id="INDEX-1611" file="ch05_06.htm" sect="5.6.1. Beginnings: The \A and ^ Assertions">
<primary>beginnings of strings, matching</primary>
</indexterm>

<indexterm id="INDEX-1612" file="ch05_06.htm" sect="5.6.1. Beginnings: The \A and ^ Assertions">
<primary>positions</primary>
<secondary>beginnings of strings, matching</secondary>
</indexterm>

<indexterm id="INDEX-1613" file="ch05_06.htm" sect="5.6.1. Beginnings: The \A and ^ Assertions">
<primary>assertions (in patterns)</primary>
<secondary>positional</secondary>
<tertiary>\A and ^ assertions (string boundary)</tertiary>
</indexterm>

<indexterm id="INDEX-1614" file="ch05_06.htm" sect="5.6.1. Beginnings: The \A and ^ Assertions">
<primary>strings</primary>
<secondary>boundary assertions</secondary>
</indexterm>

<indexterm id="INDEX-1615" file="ch05_06.htm" sect="5.6.1. Beginnings: The \A and ^ Assertions">
<primary>lines</primary>
<secondary>boundary assertions</secondary>
</indexterm>

<indexterm id="INDEX-1616" file="ch05_06.htm" sect="5.6.2. Endings: The \z, \Z, and $ Assertions">
<primary sortas="Z string">\Z (string boundary)</primary>
</indexterm>

<indexterm id="INDEX-1617" file="ch05_06.htm" sect="5.6.2. Endings: The \z, \Z, and $ Assertions">
<primary sortas="z string">\z (string boundary)</primary>
</indexterm>

<indexterm id="INDEX-1618" file="ch05_06.htm" sect="5.6.2. Endings: The \z, \Z, and $ Assertions">
<primary sortas="@dollar">$ (dollar sign)</primary>
<secondary>line boundary</secondary>
</indexterm>

<indexterm id="INDEX-1619" file="ch05_06.htm" sect="5.6.2. Endings: The \z, \Z, and $ Assertions">
<primary>end of string, matching</primary>
</indexterm>

<indexterm id="INDEX-1620" file="ch05_06.htm" sect="5.6.2. Endings: The \z, \Z, and $ Assertions">
<primary>positions</primary>
<secondary>ends of strings, matching</secondary>
</indexterm>

<indexterm id="INDEX-1621" file="ch05_06.htm" sect="5.6.2. Endings: The \z, \Z, and $ Assertions">
<primary>assertions (in matching)</primary>
<secondary>positional</secondary>
<tertiary>\z, \Z, and $ assertions</tertiary>
</indexterm>

<indexterm id="INDEX-1622" file="ch05_06.htm" sect="5.6.3. Boundaries: The \b and \B  Assertions">
<primary sortas="b word boundary">\b (word boundary assertion)</primary>
</indexterm>

<indexterm id="INDEX-1623" file="ch05_06.htm" sect="5.6.3. Boundaries: The \b and \B  Assertions">
<primary sortas="B not word">\B (non word boundary)</primary>
</indexterm>

<indexterm id="INDEX-1624" file="ch05_06.htm" sect="5.6.3. Boundaries: The \b and \B  Assertions">
<primary>positions</primary>
<secondary>word boundaries, matching</secondary>
</indexterm>

<indexterm id="INDEX-1625" file="ch05_06.htm" sect="5.6.3. Boundaries: The \b and \B  Assertions">
<primary>assertions (in matching)</primary>
<secondary sortas="b and">\b and \B (word and non word boundary)</secondary>
</indexterm>

<indexterm id="INDEX-1626" file="ch05_06.htm" sect="5.6.3. Boundaries: The \b and \B  Assertions">
<primary>boundaries, words (matching)</primary>
</indexterm>

<indexterm id="INDEX-1627" file="ch05_06.htm" sect="5.6.3. Boundaries: The \b and \B  Assertions">
<primary>punctuation characters</primary>
<secondary>word boundary matching and</secondary>
</indexterm>

<indexterm id="INDEX-1628" file="ch05_06.htm" sect="5.6.3. Boundaries: The \b and \B  Assertions">
<primary>backspace</primary>
<secondary>\b assertion in character class</secondary>
</indexterm>

<indexterm id="INDEX-1629" file="ch05_06.htm" sect="5.6.4. Progressive Matching">
<primary>pos function</primary>
</indexterm>

<indexterm id="INDEX-1630" file="ch05_06.htm" sect="5.6.4. Progressive Matching">
<primary>failed matches, searching past position of</primary>
</indexterm>

<indexterm id="INDEX-1631" file="ch05_06.htm" sect="5.6.4. Progressive Matching">
<primary sortas="c modifier">/c modifier</primary>
<secondary>failed matches, searching past</secondary>
</indexterm>

<indexterm id="INDEX-1632" file="ch05_06.htm" sect="5.6.5. Where You Left Off: The \G Assertion">
<primary sortas="G positional">\G positional assertion</primary>
</indexterm>

<indexterm id="INDEX-1633" file="ch05_06.htm" sect="5.6.5. Where You Left Off: The \G Assertion">
<primary>pos function</primary>
</indexterm>

<indexterm id="INDEX-1634" file="ch05_06.htm" sect="5.6.5. Where You Left Off: The \G Assertion">
<primary>progressive matching</primary>
</indexterm>

<indexterm id="INDEX-1635" file="ch05_06.htm" sect="5.6.5. Where You Left Off: The \G Assertion">
<primary>positional assertions</primary>
</indexterm>

<indexterm id="INDEX-1636" file="ch05_06.htm" sect="5.6.5. Where You Left Off: The \G Assertion">
<primary>positions</primary>
<secondary>position just after previous match, specifying</secondary>
</indexterm>

<indexterm id="INDEX-1637" file="ch05_06.htm" sect="5.6.5. Where You Left Off: The \G Assertion">
<primary>loops</primary>
<secondary>\G assertion, using in</secondary>
</indexterm>

<indexterm id="INDEX-1641" file="ch05_07.htm" sect="5.7. Capturing and Clustering">
<primary>patterns (and regular expressions)</primary>
<secondary>capturing in</secondary>
</indexterm>

<indexterm id="INDEX-1642" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary>capturing in patterns</primary>
</indexterm>

<indexterm id="INDEX-1643" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary>patterns (and regular expressions)</primary>
<secondary>backreferences</secondary>
</indexterm>

<indexterm id="INDEX-1644" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary>backreferences</primary>
<seealso>patterns ;backreference</seealso>
</indexterm>

<indexterm id="INDEX-1645" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary sortas="@parens">() (parentheses)</primary>
<secondary sortas="backreferences">for backreferences</secondary>
</indexterm>

<indexterm id="INDEX-1646" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary>backreferences</primary>
<secondary>accessing with numbered variables</secondary>
</indexterm>

<indexterm id="INDEX-1647" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary>groupings</primary>
<secondary>nesting of</secondary>
</indexterm>

<indexterm id="INDEX-1648" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary>backreferences</primary>
<secondary>creating with parentheses</secondary>
</indexterm>

<indexterm id="INDEX-1649" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary sortas="@parens">() (parentheses)</primary>
<secondary sortas="backreferences">for backreferences</secondary>
</indexterm>

<indexterm id="INDEX-1650" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarampersand">@&amp;</secondary>
</indexterm>

<indexterm id="INDEX-1651" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarplus">@+</secondary>
</indexterm>

<indexterm id="INDEX-1652" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollaracute">@'</secondary>
</indexterm>

<indexterm id="INDEX-1653" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollargrave">@`</secondary>
</indexterm>

<indexterm id="INDEX-1654" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary sortas="@at">@ (at sign)</primary>
<secondary sortas="@atplus">@+ array of ending positions</secondary>
</indexterm>

<indexterm id="INDEX-1655" file="ch05_07.htm" sect="5.7.1. Capturing">
<primary sortas="@at">@ (at sign)</primary>
<secondary sortas="@atminus">@- array</secondary>
</indexterm>

<indexterm id="INDEX-1658" file="ch05_07.htm" sect="5.7.2. Clustering">
<primary>patterns (and regular expressions)</primary>
<secondary>clustering in</secondary>
</indexterm>

<indexterm id="INDEX-1659" file="ch05_07.htm" sect="5.7.2. Clustering">
<primary>clustering in patterns</primary>
</indexterm>

<indexterm id="INDEX-1660" file="ch05_07.htm" sect="5.7.2. Clustering">
<primary sortas="@parentheses">() (parentheses)</primary>
<secondary>(?:PATTERN) notation, clustering without capturing</secondary>
</indexterm>

<indexterm id="INDEX-1661" file="ch05_07.htm" sect="5.7.2. Clustering">
<primary>capturing in patterns</primary>
<secondary>suppressing in clustering</secondary>
</indexterm>

<indexterm id="INDEX-1662" file="ch05_07.htm" sect="5.7.2. Clustering">
<primary>clustering in patterns</primary>
<secondary sortas="capturing, reasons for">without capturing, reasons for</secondary>
</indexterm>

<indexterm id="INDEX-1663" file="ch05_07.htm" sect="5.7.2. Clustering">
<primary>alternation</primary>
<secondary>interior, limiting scope of</secondary>
</indexterm>

<indexterm id="INDEX-1664" file="ch05_07.htm" sect="5.7.2. Clustering">
<primary sortas="@parens">() (parentheses)</primary>
<secondary sortas="@parensquestion">(?:PATTERN) notation, clustering without capturing</secondary>
</indexterm>

<indexterm id="INDEX-1665" file="ch05_07.htm" sect="5.7.2. Clustering">
<primary>split function</primary>
</indexterm>

<indexterm id="INDEX-1666" file="ch05_07.htm" sect="5.7.3. Cloistered Pattern Modifiers">
<primary>cloisters</primary>
</indexterm>

<indexterm id="INDEX-1667" file="ch05_07.htm" sect="5.7.3. Cloistered Pattern Modifiers">
<primary>modifiers</primary>
<secondary>pattern</secondary>
<tertiary>cloistered</tertiary>
</indexterm>

<indexterm id="INDEX-1668" file="ch05_07.htm" sect="5.7.3. Cloistered Pattern Modifiers">
<primary>patterns (and regular expressions)</primary>
<secondary>modifiers</secondary>
<tertiary>cloistering</tertiary>
</indexterm>

<indexterm id="INDEX-1669" file="ch05_07.htm" sect="5.7.3. Cloistered Pattern Modifiers">
<primary>subtracting pattern modifiers from cloisters</primary>
</indexterm>

<indexterm id="INDEX-1670" file="ch05_08.htm" sect="5.8. Alternation">
<primary>alternation</primary>
<secondary sortas="patterns">in patterns</secondary>
</indexterm>

<indexterm id="INDEX-1671" file="ch05_08.htm" sect="5.8. Alternation">
<primary sortas="@pipe">| (pipe symbol) </primary>
<secondary sortas="alternation">for pattern alternation</secondary>
</indexterm>

<indexterm id="INDEX-1672" file="ch05_08.htm" sect="5.8. Alternation">
<primary>possible matches, specifying set of</primary>
</indexterm>

<indexterm id="INDEX-1673" file="ch05_08.htm" sect="5.8. Alternation">
<primary>positional assertions</primary>
<secondary>ordering of matching, changing with</secondary>
</indexterm>

<indexterm id="INDEX-1674" file="ch05_09.htm" sect="5.9. Staying in Control">
<primary>patterns (and regular expressions)</primary>
<secondary>controlling matching</secondary>
</indexterm>

<indexterm id="INDEX-1675" file="ch05_09.htm" sect="5.9.1. Letting Perl Do the Work">
<primary>patterns (and regular expressions)</primary>
<secondary>controlling matching</secondary>
<tertiary>Perl flow control, deciding pattern  execution</tertiary>
</indexterm>

<indexterm id="INDEX-1676" file="ch05_09.htm" sect="5.9.1. Letting Perl Do the Work">
<primary>logical operators</primary>
<secondary>Perl, doing alternation</secondary>
</indexterm>

<indexterm id="INDEX-1677" file="ch05_09.htm" sect="5.9.1. Letting Perl Do the Work">
<primary sortas="@verticalbar">| (vertical bar)</primary>
<secondary sortas="@verticalbarverticalbar">|| (logical or) operator</secondary>
</indexterm>

<indexterm id="INDEX-1678" file="ch05_09.htm" sect="5.9.1. Letting Perl Do the Work">
<primary>or operator</primary>
</indexterm>

<indexterm id="INDEX-1679" file="ch05_09.htm" sect="5.9.1. Letting Perl Do the Work">
<primary>comments</primary>
<secondary>discarding before processing</secondary>
</indexterm>

<indexterm id="INDEX-1680" file="ch05_09.htm" sect="5.9.1. Letting Perl Do the Work">
<primary>loops</primary>
<secondary>comments and blank lines, discarding before processing</secondary>
</indexterm>

<indexterm id="INDEX-1681" file="ch05_09.htm" sect="5.9.2. Variable Interpolation">
<primary>variables</primary>
<secondary>interpolation</secondary>
<tertiary>pattern matching, controlling with</tertiary>
</indexterm>

<indexterm id="INDEX-1682" file="ch05_09.htm" sect="5.9.2. Variable Interpolation">
<primary>interpolating variables</primary>
<secondary>pattern matching, controlling with</secondary>
</indexterm>

<indexterm id="INDEX-1683" file="ch05_09.htm" sect="5.9.2. Variable Interpolation">
<primary sortas="o modifier">/o modifier</primary>
<secondary>recompilation, suppressing with</secondary>
</indexterm>

<indexterm id="INDEX-1684" file="ch05_09.htm" sect="5.9.2. Variable Interpolation">
<primary>variables</primary>
<secondary>strings of, matching against known strings</secondary>
</indexterm>

<indexterm id="INDEX-1685" file="ch05_09.htm" sect="5.9.2.1. When backslashes happen">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary>interpretation by regex parser</secondary>
</indexterm>

<indexterm id="INDEX-1686" file="ch05_09.htm" sect="5.9.2.1. When backslashes happen">
<primary sortas="@double">" (double quotes)</primary>
<secondary>translation escape processing</secondary>
</indexterm>

<indexterm id="INDEX-1687" file="ch05_09.htm" sect="5.9.2.1. When backslashes happen">
<primary>transliteration escapes, processing by Perl regex compiler</primary>
</indexterm>

<indexterm id="INDEX-1688" file="ch05_09.htm" sect="5.9.2.1. When backslashes happen">
<primary>double quotes (")</primary>
<secondary>translation escape processing</secondary>
</indexterm>

<indexterm id="INDEX-1689" file="ch05_09.htm" sect="5.9.2.1. When backslashes happen">
<primary sortas="@single">' (single quotes)</primary>
<secondary>suppressing transliteration escape processing</secondary>
</indexterm>

<indexterm id="INDEX-1690" file="ch05_09.htm" sect="5.9.2.1. When backslashes happen">
<primary>single quotes (')</primary>
<secondary>suppressing variable interpolation and translation escape processing</secondary>
</indexterm>

<indexterm id="INDEX-1691" file="ch05_09.htm" sect="5.9.2.1. When backslashes happen">
<primary>grep program</primary>
</indexterm>

<indexterm id="INDEX-1692" file="ch05_09.htm" sect="5.9.2.1. When backslashes happen">
<primary>case</primary>
<secondary>case-sensitive matching, switching off</secondary>
</indexterm>

<indexterm id="INDEX-1693" file="ch05_09.htm" sect="5.9.2.2. The qr// quote regex operator">
<primary>qr// (quote regex) operator</primary>
</indexterm>

<indexterm id="INDEX-1696" file="ch05_09.htm" sect="5.9.3. The Regex Compiler">
<primary>compilers</primary>
<secondary>regex compiler</secondary>
</indexterm>

<indexterm id="INDEX-1697" file="ch05_09.htm" sect="5.9.3. The Regex Compiler">
<primary>patterns (and regular expressions)</primary>
<secondary>controlling matching</secondary>
<tertiary>regex compiler</tertiary>
</indexterm>

<indexterm id="INDEX-1698" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>backtracking</primary>
</indexterm>

<indexterm id="INDEX-1699" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>NFA (nondeterministic finite-state automaton)</primary>
</indexterm>

<indexterm id="INDEX-1700" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>nondeterministic finite-state automaton (NFA)</primary>
</indexterm>

<indexterm id="INDEX-1701" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>precedence</primary>
<secondary>regular expression matching</secondary>
</indexterm>

<indexterm id="INDEX-1702" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>patterns (and regular expressions)</primary>
<secondary>matching precedence</secondary>
</indexterm>

<indexterm id="INDEX-1703" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>order</primary>
<see>precedence</see>
</indexterm>

<indexterm id="INDEX-1704" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>backtracking</primary>
<secondary sortas="pattern matching">in pattern matching</secondary>
</indexterm>

<indexterm id="INDEX-1705" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>positions</primary>
<secondary>precedence in pattern matching</secondary>
</indexterm>

<indexterm id="INDEX-1706" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>alternation</primary>
<secondary>precedence, pattern matching</secondary>
</indexterm>

<indexterm id="INDEX-1707" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>sequential matches</primary>
</indexterm>

<indexterm id="INDEX-1708" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>assertions</primary>
<secondary>precedence, pattern matching</secondary>
</indexterm>

<indexterm id="INDEX-1709" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>positive lookahead assertions</primary>
</indexterm>

<indexterm id="INDEX-1710" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>negative lookahead assertions</primary>
</indexterm>

<indexterm id="INDEX-1711" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>patterns (and regular expressions)</primary>
<secondary>quantifiers in</secondary>
</indexterm>

<indexterm id="INDEX-1712" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>atoms</primary>
</indexterm>

<indexterm id="INDEX-1713" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>quantifiers</primary>
<secondary>atoms and</secondary>
</indexterm>

<indexterm id="INDEX-1714" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>greedy matching</primary>
</indexterm>

<indexterm id="INDEX-1715" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>patterns (and regular expressions)</primary>
<secondary>greedy matching</secondary>
</indexterm>

<indexterm id="INDEX-1716" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>matching</primary>
<see>patterns</see>
</indexterm>

<indexterm id="INDEX-1717" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>atoms</primary>
<secondary>precedence, pattern matching</secondary>
</indexterm>

<indexterm id="INDEX-1718" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary sortas="@parens">() (parentheses);grouping operator</primary>
</indexterm>

<indexterm id="INDEX-1719" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>grouping operator</primary>
</indexterm>

<indexterm id="INDEX-1720" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary sortas="@brackets">[] (brackets) </primary>
<secondary sortas="match">to match characters</secondary>
</indexterm>

<indexterm id="INDEX-1721" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary sortas="b assertion">\b assertion </primary>
<secondary sortas="backspace">for backspace</secondary>
</indexterm>

<indexterm id="INDEX-1722" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>BACKSPACE character </primary>
<secondary sortas="b for">/b for</secondary>
</indexterm>

<indexterm id="INDEX-1723" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>characters</primary>
<seealso>patterns</seealso>
</indexterm>

<indexterm id="INDEX-1724" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary sortas="@hyphen">- (hyphen)</primary>
</indexterm>

<indexterm id="INDEX-1725" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary sortas="@caret">^ (caret)</primary>
<secondary>matching</secondary>
</indexterm>

<indexterm id="INDEX-1726" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>special characters</primary>
</indexterm>

<indexterm id="INDEX-1727" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>characters </primary>
<secondary>special</secondary>
</indexterm>

<indexterm id="INDEX-1728" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>character classes</primary>
</indexterm>

<indexterm id="INDEX-1729" file="ch05_09.htm" sect="5.9.4. The Little Engine That /Could(n't)?/">
<primary>self-matching characters</primary>
</indexterm>

<indexterm id="INDEX-1733" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>lookaround</primary>
</indexterm>

<indexterm id="INDEX-1734" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>lookbehind</primary>
</indexterm>

<indexterm id="INDEX-1735" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>lookahead</primary>
</indexterm>

<indexterm id="INDEX-1736" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary sortas="@question">? (question mark) regex extensions </primary>
<secondary sortas="@questionexclamation">(?!)</secondary>
</indexterm>

<indexterm id="INDEX-1737" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary sortas="@question">? (question mark) regex extensions </primary>
<secondary sortas="@questionequals">(?=)</secondary>
</indexterm>

<indexterm id="INDEX-1738" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary sortas="@question">? (question mark) regex extensions </primary>
<secondary sortas="@questionlessthanequals">(?&lt;=)</secondary>
</indexterm>

<indexterm id="INDEX-1739" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary sortas="@question">? (question mark) regex extensions </primary>
<secondary sortas="@questionlessthanexclamation">(?&lt;!)</secondary>
</indexterm>

<indexterm id="INDEX-1740" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>patterns (and regular expressions)</primary>
<secondary>extensions</secondary>
<tertiary>lookaround assertions</tertiary>
</indexterm>

<indexterm id="INDEX-1741" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>patterns</primary>
<secondary>fancy patterns</secondary>
</indexterm>

<indexterm id="INDEX-1742" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>assertions</primary>
<secondary>lookaround assertions</secondary>
</indexterm>

<indexterm id="INDEX-1743" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>positive lookahead assertions</primary>
</indexterm>

<indexterm id="INDEX-1744" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>negative lookahead assertions</primary>
</indexterm>

<indexterm id="INDEX-1745" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>contractions in words, avoiding confusion with single quotes</primary>
</indexterm>

<indexterm id="INDEX-1746" file="ch05_10.htm" sect="5.10.1. Lookaround Assertions">
<primary>single quotes (')</primary>
<secondary>contractions in words, avoiding confusion with</secondary>
</indexterm>

<indexterm id="INDEX-1748" file="ch05_10.htm" sect="5.10.2. Nonbacktracking Subpatterns">
<primary sortas="@question">? (question mark) regex extensions </primary>
<secondary sortas="@questiongreaterthan">(?&gt;)</secondary>
</indexterm>

<indexterm id="INDEX-1749" file="ch05_10.htm" sect="5.10.2. Nonbacktracking Subpatterns">
<primary>nonbacktracking subpatterns</primary>
</indexterm>

<indexterm id="INDEX-1750" file="ch05_10.htm" sect="5.10.2. Nonbacktracking Subpatterns">
<primary>backtracking</primary>
<secondary>nonbacktracking subpatterns</secondary>
</indexterm>

<indexterm id="INDEX-1751" file="ch05_10.htm" sect="5.10.3. Programmatic Patterns">
<primary>programming style, patterns</primary>
</indexterm>

<indexterm id="INDEX-1752" file="ch05_10.htm" sect="5.10.3. Programmatic Patterns">
<primary>patterns (and regular expressions)</primary>
<secondary>programming style for</secondary>
</indexterm>

<indexterm id="INDEX-1753" file="ch05_10.htm" sect="5.10.3. Programmatic Patterns">
<primary>procedureal programming style</primary>
</indexterm>

<indexterm id="INDEX-1754" file="ch05_10.htm" sect="5.10.3. Programmatic Patterns">
<primary>imperative programming style</primary>
</indexterm>

<indexterm id="INDEX-1755" file="ch05_10.htm" sect="5.10.3. Programmatic Patterns">
<primary>declarative approach, regular expression programming</primary>
</indexterm>

<indexterm id="INDEX-1756" file="ch05_10.htm" sect="5.10.3. Programmatic Patterns">
<primary>expressions</primary>
<secondary>Perl, supplying in replacement strings</secondary>
</indexterm>

<indexterm id="INDEX-1757" file="ch05_10.htm" sect="5.10.3. Programmatic Patterns">
<primary>patterns (and regular expressions)</primary>
<secondary>Perl code, interjecting into</secondary>
</indexterm>

<indexterm id="INDEX-1758" file="ch05_10.htm" sect="5.10.3.1. Generated patterns">
<primary>patterns (and regular expressions)</primary>
<secondary>generated</secondary>
</indexterm>

<indexterm id="INDEX-1759" file="ch05_10.htm" sect="5.10.3.1. Generated patterns">
<primary>generated patterns</primary>
</indexterm>

<indexterm id="INDEX-1760" file="ch05_10.htm" sect="5.10.3.2. Substitution evaluations">
<primary>substitution evaluations</primary>
</indexterm>

<indexterm id="INDEX-1761" file="ch05_10.htm" sect="5.10.3.2. Substitution evaluations">
<primary>/e modifier</primary>
<secondary sortas="e modifier">substitution evaluation</secondary>
</indexterm>

<indexterm id="INDEX-1762" file="ch05_10.htm" sect="5.10.3.2. Substitution evaluations">
<primary>patterns (and regular expressions)</primary>
<secondary>substitution evaluation</secondary>
</indexterm>

<indexterm id="INDEX-1763" file="ch05_10.htm" sect="5.10.3.2. Substitution evaluations">
<primary>replacement strings</primary>
<secondary>/e modifier, building with</secondary>
</indexterm>

<indexterm id="INDEX-1764" file="ch05_10.htm" sect="5.10.3.3. Match-time code evaluation">
<primary>patterns (and regular expressions)</primary>
<secondary>match-time code evaluation</secondary>
</indexterm>

<indexterm id="INDEX-1765" file="ch05_10.htm" sect="5.10.3.3. Match-time code evaluation">
<primary>code subpatterns in regular expressions</primary>
</indexterm>

<indexterm id="INDEX-1766" file="ch05_10.htm" sect="5.10.3.4. Match-time pattern interpolation">
<primary>patterns (and regular expressions)</primary>
<secondary>match-time pattern interpolation</secondary>
</indexterm>

<indexterm id="INDEX-1767" file="ch05_10.htm" sect="5.10.3.4. Match-time pattern interpolation">
<primary>interpolation</primary>
<secondary>match-time pattern interpolation</secondary>
</indexterm>

<indexterm id="INDEX-1768" file="ch05_10.htm" sect="5.10.3.4. Match-time pattern interpolation">
<primary>match-time pattern interpolation</primary>
</indexterm>

<indexterm id="INDEX-1769" file="ch05_10.htm" sect="5.10.3.4. Match-time pattern interpolation">
<primary>backreferences</primary>
<secondary>deriving patterns from matched substrings</secondary>
</indexterm>

<indexterm id="INDEX-1770" file="ch05_10.htm" sect="5.10.3.4. Match-time pattern interpolation">
<primary>recursive matching</primary>
</indexterm>

<indexterm id="INDEX-1771" file="ch05_10.htm" sect="5.10.3.4. Match-time pattern interpolation">
<primary>patterns (and regular expressions)</primary>
<secondary>recursive matching</secondary>
</indexterm>

<indexterm id="INDEX-1772" file="ch05_10.htm" sect="5.10.3.5. Conditional interpolation">
<primary>patterns (and regular expressions)</primary>
<secondary>conditional interpolation in</secondary>
</indexterm>

<indexterm id="INDEX-1773" file="ch05_10.htm" sect="5.10.3.5. Conditional interpolation">
<primary>conditionals, interpolation into patterns</primary>
</indexterm>

<indexterm id="INDEX-1774" file="ch05_10.htm" sect="5.10.3.5. Conditional interpolation">
<primary>interpolation</primary>
<secondary>conditionals into patterns</secondary>
</indexterm>

<indexterm id="INDEX-1775" file="ch05_10.htm" sect="5.10.4. Defining Your Own Assertions">
<primary>patterns (and regular expressions)</primary>
<secondary>assertions, defining your own</secondary>
</indexterm>

<indexterm id="INDEX-1776" file="ch05_10.htm" sect="5.10.4. Defining Your Own Assertions">
<primary>assertions</primary>
<secondary>defining your own</secondary>
</indexterm>

<indexterm id="INDEX-1777" file="ch05_10.htm" sect="5.10.4. Defining Your Own Assertions">
<primary>overloaded string constants, translating text with</primary>
</indexterm>

<indexterm id="INDEX-1778" file="ch05_10.htm" sect="5.10.4. Defining Your Own Assertions">
<primary>tags (HTML and XML), transforming text to</primary>
</indexterm>

<indexterm id="INDEX-1782" file="ch06_01.htm" sect="6. Subroutines">
<primary>subroutines</primary>
</indexterm>

<indexterm id="INDEX-1783" file="ch06_01.htm" sect="6. Subroutines">
<primary>user-defined functions</primary>
<see>subroutines</see>
</indexterm>

<indexterm id="INDEX-1784" file="ch06_01.htm" sect="6. Subroutines">
<primary>functions</primary>
<seealso>subroutines</seealso>
</indexterm>

<indexterm id="INDEX-1785" file="ch06_01.htm" sect="6. Subroutines">
<primary>subroutines</primary>
<seealso>functions</seealso>
</indexterm>

<indexterm id="INDEX-1786" file="ch06_01.htm" sect="6. Subroutines">
<primary>routines</primary>
<see>subroutines</see>
</indexterm>

<indexterm id="INDEX-1787" file="ch06_01.htm" sect="6. Subroutines">
<primary>methods</primary>
<secondary>subroutines vs.</secondary>
</indexterm>

<indexterm id="INDEX-1788" file="ch06_01.htm" sect="6. Subroutines">
<primary>anonymous</primary>
<secondary>subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1789" file="ch06_01.htm" sect="6.1. Syntax">
<primary>declaring</primary>
<secondary>subroutines</secondary>
<tertiary sortas="defining">without defining</tertiary>
</indexterm>

<indexterm id="INDEX-1790" file="ch06_01.htm" sect="6.1. Syntax">
<primary>sub keyword</primary>
</indexterm>

<indexterm id="INDEX-1791" file="ch06_01.htm" sect="6.1. Syntax">
<primary>declarations</primary>
<secondary>subroutines</secondary>
<tertiary sortas="adefinitions">with definitions</tertiary>
</indexterm>

<indexterm id="INDEX-1792" file="ch06_01.htm" sect="6.1. Syntax">
<primary>closures</primary>
<secondary>creating</secondary>
</indexterm>

<indexterm id="INDEX-1793" file="ch06_01.htm" sect="6.1. Syntax">
<primary>subroutines</primary>
<secondary>names of</secondary>
</indexterm>

<indexterm id="INDEX-1794" file="ch06_01.htm" sect="6.1. Syntax">
<primary>names</primary>
<secondary>subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1795" file="ch06_01.htm" sect="6.1. Syntax">
<primary>importing</primary>
<secondary>subroutines from another module</secondary>
</indexterm>

<indexterm id="INDEX-1796" file="ch06_01.htm" sect="6.1. Syntax">
<primary>subroutines</primary>
<secondary>importing from another module</secondary>
</indexterm>

<indexterm id="INDEX-1797" file="ch06_01.htm" sect="6.1. Syntax">
<primary>calling</primary>
<secondary>subroutines indirectly</secondary>
</indexterm>

<indexterm id="INDEX-1798" file="ch06_01.htm" sect="6.1. Syntax">
<primary>subroutines</primary>
<secondary>calling indirectly</secondary>
</indexterm>

<indexterm id="INDEX-1799" file="ch06_01.htm" sect="6.1. Syntax">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="subroutine">for subroutine names</secondary>
</indexterm>

<indexterm id="INDEX-1800" file="ch06_01.htm" sect="6.1. Syntax">
<primary>references</primary>
<secondary sortas="subroutines">to subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1801" file="ch06_01.htm" sect="6.1. Syntax">
<primary>capitalization</primary>
<secondary>subroutine names</secondary>
</indexterm>

<indexterm id="INDEX-1802" file="ch06_01.htm" sect="6.1. Syntax">
<primary>names</primary>
<secondary>subroutines</secondary>
<tertiary>capitalization in</tertiary>
</indexterm>

<indexterm id="INDEX-1803" file="ch06_02.htm" sect="6.2. Semantics">
<primary>defining</primary>
<secondary>subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1804" file="ch06_02.htm" sect="6.2. Semantics">
<primary>subroutines</primary>
<secondary>defining</secondary>
</indexterm>

<indexterm id="INDEX-1805" file="ch06_02.htm" sect="6.2. Semantics">
<primary>subroutines</primary>
<secondary>data, passing into and out of</secondary>
</indexterm>

<indexterm id="INDEX-1806" file="ch06_02.htm" sect="6.2. Semantics">
<primary>lists</primary>
<secondary>scalars, subroutine return and parameter values</secondary>
</indexterm>

<indexterm id="INDEX-1807" file="ch06_02.htm" sect="6.2. Semantics">
<primary>scalars</primary>
<secondary>parameter and return lists, subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1808" file="ch06_02.htm" sect="6.2. Semantics">
<primary>variadic functions in Perl</primary>
</indexterm>

<indexterm id="INDEX-1809" file="ch06_02.htm" sect="6.2. Semantics">
<primary sortas="@at">@ (at sign)</primary>
<secondary sortas="@atunderscore">@_ array</secondary>
</indexterm>

<indexterm id="INDEX-1810" file="ch06_02.htm" sect="6.2. Semantics">
<primary>arrays</primary>
<secondary>@_ arrays</secondary>
</indexterm>

<indexterm id="INDEX-1811" file="ch06_02.htm" sect="6.2. Semantics">
<primary sortas="@atsign">@ (at sign)</primary>
<secondary sortas="@atsignunderscore">@_ arrays</secondary>
</indexterm>

<indexterm id="INDEX-1812" file="ch06_02.htm" sect="6.2. Semantics">
<primary>passing by reference</primary>
</indexterm>

<indexterm id="INDEX-1813" file="ch06_02.htm" sect="6.2. Semantics">
<primary>references</primary>
<secondary>passing by</secondary>
</indexterm>

<indexterm id="INDEX-1814" file="ch06_02.htm" sect="6.2. Semantics">
<primary>return value, subroutine</primary>
</indexterm>

<indexterm id="INDEX-1815" file="ch06_02.htm" sect="6.2. Semantics">
<primary>subroutines</primary>
<secondary>return values</secondary>
</indexterm>

<indexterm id="INDEX-1816" file="ch06_02.htm" sect="6.2. Semantics">
<primary>scalar context</primary>
<secondary>subroutines, calling and evaluating in</secondary>
</indexterm>

<indexterm id="INDEX-1817" file="ch06_02.htm" sect="6.2. Semantics">
<primary>list context</primary>
<secondary>subroutines, calling and evaluating in</secondary>
</indexterm>

<indexterm id="INDEX-1818" file="ch06_02.htm" sect="6.2.1. Tricks with Parameter Lists">
<primary>subroutines</primary>
<secondary>parameter lists, working with</secondary>
</indexterm>

<indexterm id="INDEX-1819" file="ch06_02.htm" sect="6.2.1. Tricks with Parameter Lists">
<primary>parameters</primary>
<secondary>subroutines</secondary>
<tertiary>working with</tertiary>
</indexterm>

<indexterm id="INDEX-1820" file="ch06_02.htm" sect="6.2.1. Tricks with Parameter Lists">
<primary>passing by value, copying @_ values to my list</primary>
</indexterm>

<indexterm id="INDEX-1821" file="ch06_02.htm" sect="6.2.1. Tricks with Parameter Lists">
<primary>arrays</primary>
<secondary>@_ arrays</secondary>
<tertiary>copying values to my list</tertiary>
</indexterm>

<indexterm id="INDEX-1822" file="ch06_02.htm" sect="6.2.1. Tricks with Parameter Lists">
<primary>names</primary>
<secondary>parameters, not requiring</secondary>
</indexterm>

<indexterm id="INDEX-1823" file="ch06_02.htm" sect="6.2.1. Tricks with Parameter Lists">
<primary>upcase function</primary>
</indexterm>

<indexterm id="INDEX-1824" file="ch06_02.htm" sect="6.2.1. Tricks with Parameter Lists">
<primary>parameters</primary>
<secondary>subroutines</secondary>
<tertiary>changing in place</tertiary>
</indexterm>

<indexterm id="INDEX-1825" file="ch06_02.htm" sect="6.2.2. Error Indications">
<primary>errors</primary>
<secondary>subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1826" file="ch06_02.htm" sect="6.2.2. Error Indications">
<primary>subroutines</primary>
<secondary>errors, indicating</secondary>
</indexterm>

<indexterm id="INDEX-1827" file="ch06_02.htm" sect="6.2.2. Error Indications">
<primary>exceptions</primary>
<secondary>raising to indicate subroutine errors</secondary>
</indexterm>

<indexterm id="INDEX-1828" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>recursion of subroutines</primary>
</indexterm>

<indexterm id="INDEX-1829" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>subroutines</primary>
<secondary>scoping issues</secondary>
</indexterm>

<indexterm id="INDEX-1830" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>scope</primary>
<secondary>subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1831" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>lexical variables</primary>
<secondary>accessing from functions</secondary>
</indexterm>

<indexterm id="INDEX-1832" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>static variables</primary>
<secondary>variables</secondary>
<tertiary>static</tertiary>
</indexterm>

<indexterm id="INDEX-1833" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>C/C++ languages</primary>
<secondary>static variables</secondary>
</indexterm>

<indexterm id="INDEX-1834" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>lexical variables</primary>
<secondary>persistence across function calls</secondary>
</indexterm>

<indexterm id="INDEX-1835" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>BEGIN blocks</primary>
<secondary>initializing variables before calling subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1836" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>INIT blocks</primary>
<secondary>initializing variables before calling subroutine</secondary>
</indexterm>

<indexterm id="INDEX-1837" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>initializing</primary>
<secondary>variables before calling subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1838" file="ch06_02.htm" sect="6.2.3. Scoping Issues">
<primary>variables</primary>
<secondary>initializing before calling subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1839" file="ch06_03.htm" sect="6.3. Passing References">
<primary>references</primary>
<secondary>passing</secondary>
</indexterm>

<indexterm id="INDEX-1840" file="ch06_03.htm" sect="6.3. Passing References">
<primary>passing references</primary>
</indexterm>

<indexterm id="INDEX-1841" file="ch06_03.htm" sect="6.3. Passing References">
<primary>subroutines</primary>
<secondary>passing references in</secondary>
</indexterm>

<indexterm id="INDEX-1842" file="ch06_03.htm" sect="6.3. Passing References">
<primary>arrays</primary>
<secondary>passing by reference into or out of functions</secondary>
</indexterm>

<indexterm id="INDEX-1843" file="ch06_03.htm" sect="6.3. Passing References">
<primary>sets</primary>
<secondary>intersection</secondary>
</indexterm>

<indexterm id="INDEX-1844" file="ch06_03.htm" sect="6.3. Passing References">
<primary>intersection of sets</primary>
</indexterm>

<indexterm id="INDEX-1845" file="ch06_03.htm" sect="6.3. Passing References">
<primary>hashes</primary>
<secondary>passing by reference into or out of functions</secondary>
</indexterm>

<indexterm id="INDEX-1846" file="ch06_03.htm" sect="6.3. Passing References">
<primary>functions</primary>
<secondary>references, using for both input and output</secondary>
</indexterm>

<indexterm id="INDEX-1847" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>prototyping</primary>
</indexterm>

<indexterm id="INDEX-1848" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>prototypes</primary>
</indexterm>

<indexterm id="INDEX-1849" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>star</primary>
<see>asterisk</see>
</indexterm>

<indexterm id="INDEX-1850" file="ch06_04.htm" sect="6.4. Prototypes">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="subroutine">for subroutine names</secondary>
<tertiary>omitting in prototypes</tertiary>
</indexterm>

<indexterm id="INDEX-1851" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>prototypes</primary>
<secondary sortas="@ampersand">&amp; (ampersand), omitting from subroutine names</secondary>
</indexterm>

<indexterm id="INDEX-1852" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>built-in functions</primary>
<secondary>subroutines, prototyping to emulate</secondary>
</indexterm>

<indexterm id="INDEX-1853" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>prototypes</primary>
<secondary>built-in functions, emulating</secondary>
</indexterm>

<indexterm id="INDEX-1854" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>characters</primary>
<secondary sortas=" prototype">prototype</secondary>
</indexterm>

<indexterm id="INDEX-1855" file="ch06_04.htm" sect="6.4. Prototypes">
<primary sortas="@at">@ (at sign)</primary>
<secondary>prototype character</secondary>
</indexterm>

<indexterm id="INDEX-1856" file="ch06_04.htm" sect="6.4. Prototypes">
<primary sortas="@percent">% (percent sign)</primary>
<secondary>prototype character</secondary>
</indexterm>

<indexterm id="INDEX-1857" file="ch06_04.htm" sect="6.4. Prototypes">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary>prototype character</secondary>
</indexterm>

<indexterm id="INDEX-1858" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>sub keyword</primary>
</indexterm>

<indexterm id="INDEX-1859" file="ch06_04.htm" sect="6.4. Prototypes">
<primary sortas="@dollar">$ (dollar sign); prototype character</primary>
</indexterm>

<indexterm id="INDEX-1860" file="ch06_04.htm" sect="6.4. Prototypes">
<primary sortas="@asterisk">* (asterisk)</primary>
<secondary>prototype character</secondary>
</indexterm>

<indexterm id="INDEX-1861" file="ch06_04.htm" sect="6.4. Prototypes">
<primary>filehandles</primary>
<secondary>passing</secondary>
</indexterm>

<indexterm id="INDEX-1862" file="ch06_04.htm" sect="6.4.1. Inlining Constant Functions">
<primary>prototypes</primary>
<secondary>inlining constant functions</secondary>
</indexterm>

<indexterm id="INDEX-1863" file="ch06_04.htm" sect="6.4.1. Inlining Constant Functions">
<primary>constants</primary>
<secondary>inlining constant functions</secondary>
</indexterm>

<indexterm id="INDEX-1864" file="ch06_04.htm" sect="6.4.1. Inlining Constant Functions">
<primary>inlining constant functions</primary>
</indexterm>

<indexterm id="INDEX-1865" file="ch06_04.htm" sect="6.4.1. Inlining Constant Functions">
<primary>subroutines</primary>
<secondary>redefining, inlining and</secondary>
</indexterm>

<indexterm id="INDEX-1866" file="ch06_04.htm" sect="6.4.1. Inlining Constant Functions">
<primary>inlining constant functions</primary>
<secondary>preventing inlining</secondary>
</indexterm>

<indexterm id="INDEX-1867" file="ch06_04.htm" sect="6.4.2. Care with Prototypes">
<primary>prototypes</primary>
<secondary>careful use of</secondary>
</indexterm>

<indexterm id="INDEX-1868" file="ch06_04.htm" sect="6.4.2. Care with Prototypes">
<primary>subroutines</primary>
<secondary>prototyping, careful use of</secondary>
</indexterm>

<indexterm id="INDEX-1869" file="ch06_04.htm" sect="6.4.2. Care with Prototypes">
<primary>unary operators</primary>
<secondary>prototyping functions as</secondary>
</indexterm>

<indexterm id="INDEX-1872" file="ch06_05.htm" sect="6.5. Subroutine Attributes">
<primary>attributes</primary>
</indexterm>

<indexterm id="INDEX-1873" file="ch06_05.htm" sect="6.5. Subroutine Attributes">
<primary>attributes</primary>
<secondary>subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1874" file="ch06_05.htm" sect="6.5. Subroutine Attributes">
<primary>use attributes pragma</primary>
</indexterm>

<indexterm id="INDEX-1875" file="ch06_05.htm" sect="6.5. Subroutine Attributes">
<primary>locked attribute (subroutines)</primary>
</indexterm>

<indexterm id="INDEX-1876" file="ch06_05.htm" sect="6.5. Subroutine Attributes">
<primary>method attribute (subroutines)</primary>
</indexterm>

<indexterm id="INDEX-1877" file="ch06_05.htm" sect="6.5. Subroutine Attributes">
<primary>lvalues</primary>
<secondary>lvalue attribute, subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1878" file="ch06_05.htm" sect="6.5.1. The locked and method Attributes">
<primary>names</primary>
<secondary>attributes, subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1879" file="ch06_05.htm" sect="6.5.1. The locked and method Attributes">
<primary>attributes</primary>
<secondary>subroutines</secondary>
<tertiary>names, syntax for</tertiary>
</indexterm>

<indexterm id="INDEX-1880" file="ch06_05.htm" sect="6.5.2. The lvalue Attribute">
<primary>lvalues</primary>
<secondary>lvalue attribute, subroutines</secondary>
</indexterm>

<indexterm id="INDEX-1884" file="ch07_01.htm" sect="7. Formats">
<primary>formats</primary>
</indexterm>

<indexterm id="INDEX-1885" file="ch07_01.htm" sect="7. Formats">
<primary>reports, generating</primary>
</indexterm>

<indexterm id="INDEX-1886" file="ch07_01.htm" sect="7. Formats">
<primary>charts, generating</primary>
</indexterm>

<indexterm id="INDEX-1887" file="ch07_01.htm" sect="7. Formats">
<primary>formats</primary>
<secondary>declaring</secondary>
</indexterm>

<indexterm id="INDEX-1888" file="ch07_01.htm" sect="7. Formats">
<primary>declaring</primary>
<secondary>formats</secondary>
</indexterm>

<indexterm id="INDEX-1889" file="ch07_01.htm" sect="7. Formats">
<primary>filehandles</primary>
<secondary>formats associated with, default names of</secondary>
</indexterm>

<indexterm id="INDEX-1890" file="ch07_01.htm" sect="7. Formats">
<primary>names</primary>
<secondary>formats associated with filehandles</secondary>
</indexterm>

<indexterm id="INDEX-1891" file="ch07_01.htm" sect="7. Formats">
<primary>output record formats, declaring</primary>
</indexterm>

<indexterm id="INDEX-1892" file="ch07_01.htm" sect="7. Formats">
<primary>justification </primary>
</indexterm>

<indexterm id="INDEX-1893" file="ch07_01.htm" sect="7. Formats">
<primary>picture lines </primary>
</indexterm>

<indexterm id="INDEX-1894" file="ch07_01.htm" sect="7. Formats">
<primary sortas="@at">@ (at sign) </primary>
<secondary sortas="picture">in picture lines </secondary>
</indexterm>

<indexterm id="INDEX-1895" file="ch07_01.htm" sect="7. Formats">
<primary sortas="@caret">^ (caret) </primary>
<secondary sortas="picture">in picture lines </secondary>
</indexterm>

<indexterm id="INDEX-1896" file="ch07_01.htm" sect="7. Formats">
<primary sortas="@sharp"># (sharp) </primary>
<secondary sortas="formats">in formats </secondary>
</indexterm>

<indexterm id="INDEX-1897" file="ch07_01.htm" sect="7. Formats">
<primary>numbers</primary>
<secondary>justifying by decimal point</secondary>
</indexterm>

<indexterm id="INDEX-1898" file="ch07_01.htm" sect="7. Formats">
<primary>decimal points, lining up </primary>
</indexterm>

<indexterm id="INDEX-1899" file="ch07_01.htm" sect="7. Formats">
<primary>locales</primary>
<secondary>decimal points in formats</secondary>
</indexterm>

<indexterm id="INDEX-1900" file="ch07_01.htm" sect="7. Formats">
<primary>whitespace characters</primary>
<secondary sortas="formats">in formats</secondary>
</indexterm>

<indexterm id="INDEX-1901" file="ch07_01.htm" sect="7. Formats">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcolon">$: ($FORMAT_LINE_BREAK_CHARACTERS)</secondary>
</indexterm>

<indexterm id="INDEX-1902" file="ch07_01.htm" sect="7. Formats">
<primary>variable-length records </primary>
</indexterm>

<indexterm id="INDEX-1903" file="ch07_01.htm" sect="7. Formats">
<primary>records, variable-length </primary>
</indexterm>

<indexterm id="INDEX-1904" file="ch07_01.htm" sect="7. Formats">
<primary sortas="@tilde">~ (tilde) </primary>
<secondary sortas="suppress">to suppress blank lines </secondary>
</indexterm>

<indexterm id="INDEX-1905" file="ch07_01.htm" sect="7. Formats">
<primary>formats</primary>
<secondary>top-of-form processing</secondary>
</indexterm>

<indexterm id="INDEX-1906" file="ch07_01.htm" sect="7. Formats">
<primary>top-of-form processing </primary>
</indexterm>

<indexterm id="INDEX-1907" file="ch07_01.htm" sect="7. Formats">
<primary>filehandles</primary>
<secondary>ending with _TOP</secondary>
</indexterm>

<indexterm id="INDEX-1908" file="ch07_01.htm" sect="7. Formats">
<primary>lexical variables</primary>
</indexterm>

<indexterm id="INDEX-1909" file="ch07_01.htm" sect="7. Formats">
<primary>formats</primary>
<secondary>lexical variables in</secondary>
</indexterm>

<indexterm id="INDEX-1910" file="ch07_01.htm" sect="7. Formats">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarminus">$- ($FORMAT_LINES_LEFT)</secondary>
</indexterm>

<indexterm id="INDEX-1911" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>variables </primary>
<secondary>format</secondary>
</indexterm>

<indexterm id="INDEX-1912" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollartilde">$~ ($FORMAT_NAME) </secondary>
</indexterm>

<indexterm id="INDEX-1913" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaret">$^ ($FORMAT_TOP_NAME) </secondary>
</indexterm>

<indexterm id="INDEX-1914" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarpercent">$% ($FORMAT_PAGE_NUMBER) </secondary>
</indexterm>

<indexterm id="INDEX-1915" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarequal">$= ($FORMAT_LINES_PER_PAGE) </secondary>
</indexterm>

<indexterm id="INDEX-1916" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarvertical">$| ($OUTPUT_AUTOFLUSH) </secondary>
</indexterm>

<indexterm id="INDEX-1917" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretL">$^L ($FORMAT_LINEFEED) </secondary>
</indexterm>

<indexterm id="INDEX-1918" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>select function </primary>
<secondary sortas="format">for format variables </secondary>
</indexterm>

<indexterm id="INDEX-1919" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>formats</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-1920" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>select function</primary>
<secondary>for format variables</secondary>
</indexterm>

<indexterm id="INDEX-1921" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>English module</primary>
</indexterm>

<indexterm id="INDEX-1922" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>FileHandle module</primary>
</indexterm>

<indexterm id="INDEX-1923" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>numbers</primary>
<secondary>commas, inserting into</secondary>
</indexterm>

<indexterm id="INDEX-1924" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary sortas="centering">for centering </secondary>
</indexterm>

<indexterm id="INDEX-1925" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>centering </primary>
</indexterm>

<indexterm id="INDEX-1926" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@right">&gt; (right angle bracket) </primary>
<secondary sortas="right justification">for right justification </secondary>
</indexterm>

<indexterm id="INDEX-1927" file="ch07_01.htm" sect="7.1. Format Variables">
<primary sortas="@left">&lt;</primary>
<secondary sortas=" (left angle bracket) ;left justification">for left justification </secondary>
</indexterm>

<indexterm id="INDEX-1928" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>right justification </primary>
</indexterm>

<indexterm id="INDEX-1929" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>left justification </primary>
</indexterm>

<indexterm id="INDEX-1930" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>more than sign</primary>
<see>&gt; </see>
</indexterm>

<indexterm id="INDEX-1931" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>fmt (Unix utility)</primary>
</indexterm>

<indexterm id="INDEX-1932" file="ch07_01.htm" sect="7.1. Format Variables">
<primary>formats</primary>
<secondary>fmt (Unix utility)</secondary>
</indexterm>

<indexterm id="INDEX-1933" file="ch07_02.htm" sect="7.2. Footers">
<primary>formats</primary>
<secondary>footers</secondary>
</indexterm>

<indexterm id="INDEX-1934" file="ch07_02.htm" sect="7.2. Footers">
<primary>footers </primary>
</indexterm>

<indexterm id="INDEX-1935" file="ch07_02.htm" sect="7.2. Footers">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaret">$^ ($FORMAT_TOP_NAME) </secondary>
</indexterm>

<indexterm id="INDEX-1936" file="ch07_02.htm" sect="7.2. Footers">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarminus">$- ($FORMAT_LINES_LEFT)</secondary>
</indexterm>

<indexterm id="INDEX-1937" file="ch07_02.htm" sect="7.2. Footers">
<primary>headers, format names</primary>
</indexterm>

<indexterm id="INDEX-1938" file="ch07_02.htm" sect="7.2.1. Accessing Formatting Internals">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretA">$^A ($ACCUMULATOR) </secondary>
</indexterm>

<indexterm id="INDEX-1939" file="ch07_02.htm" sect="7.2.1. Accessing Formatting Internals">
<primary>formats</primary>
<secondary>accessing formatting internals</secondary>
</indexterm>

<indexterm id="INDEX-1940" file="ch07_02.htm" sect="7.2.1. Accessing Formatting Internals">
<primary>formline operator</primary>
</indexterm>

<indexterm id="INDEX-1941" file="ch07_02.htm" sect="7.2.1. Accessing Formatting Internals">
<primary>wrapping text</primary>
</indexterm>

<indexterm id="INDEX-1942" file="ch07_02.htm" sect="7.2.1. Accessing Formatting Internals">
<primary>FileHandle module</primary>
</indexterm>

<indexterm id="INDEX-1943" file="ch07_02.htm" sect="7.2.1. Accessing Formatting Internals">
<primary>text</primary>
<secondary>wrapping</secondary>
</indexterm>

<indexterm id="INDEX-1945" file="ch08_01.htm" sect="8. References">
<primary>typeglobs</primary>
</indexterm>

<indexterm id="INDEX-1946" file="ch08_01.htm" sect="8. References">
<primary>eval function</primary>
</indexterm>

<indexterm id="INDEX-1947" file="ch08_01.htm" sect="8. References">
<primary>variables</primary>
<seealso>references</seealso>
</indexterm>

<indexterm id="INDEX-1948" file="ch08_01.htm" sect="8. References">
<primary>references</primary>
</indexterm>

<indexterm id="INDEX-1949" file="ch08_01.htm" sect="8. References">
<primary>data structures</primary>
<secondary>flat, linear in Perl</secondary>
</indexterm>

<indexterm id="INDEX-1950" file="ch08_01.htm" sect="8. References">
<primary>indirection</primary>
</indexterm>

<indexterm id="INDEX-1951" file="ch08_01.htm" sect="8. References">
<primary>pointers (C language)</primary>
</indexterm>

<indexterm id="INDEX-1952" file="ch08_01.htm" sect="8. References">
<primary>references</primary>
<secondary>indirection</secondary>
</indexterm>

<indexterm id="INDEX-1953" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>references</primary>
<secondary>defining</secondary>
</indexterm>

<indexterm id="INDEX-1954" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>symbolic references</primary>
</indexterm>

<indexterm id="INDEX-1955" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>hard references</primary>
</indexterm>

<indexterm id="INDEX-1956" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>referents</primary>
</indexterm>

<indexterm id="INDEX-1957" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>symbol tables</primary>
<secondary>symbolic references naming entries in</secondary>
</indexterm>

<indexterm id="INDEX-1958" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>scalars</primary>
<secondary>hard references as</secondary>
</indexterm>

<indexterm id="INDEX-1959" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>anonymous</primary>
<secondary>referents</secondary>
</indexterm>

<indexterm id="INDEX-1960" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>values</primary>
<secondary>referencing</secondary>
</indexterm>

<indexterm id="INDEX-1961" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>dereferencing</primary>
</indexterm>

<indexterm id="INDEX-1962" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>dereferencing</primary>
<seealso>references</seealso>
</indexterm>

<indexterm id="INDEX-1963" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>implicit referencing or dereferencing</primary>
</indexterm>

<indexterm id="INDEX-1964" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>filehandles</primary>
<secondary>implicit referencing in</secondary>
</indexterm>

<indexterm id="INDEX-1965" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>passing by reference</primary>
<secondary>prototypes declaring function calls as</secondary>
</indexterm>

<indexterm id="INDEX-1966" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>bless function</primary>
<secondary>reference as argument for</secondary>
</indexterm>

<indexterm id="INDEX-1967" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>lock function</primary>
<secondary>reference as argument for</secondary>
</indexterm>

<indexterm id="INDEX-1968" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>prototypes</primary>
<secondary>implicit pass-by-reference in</secondary>
</indexterm>

<indexterm id="INDEX-1969" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>references</primary>
<secondary sortas="data structures">to data structures</secondary>
</indexterm>

<indexterm id="INDEX-1970" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>data structures</primary>
<secondary>references to</secondary>
</indexterm>

<indexterm id="INDEX-1971" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>arrays</primary>
<secondary>references to</secondary>
</indexterm>

<indexterm id="INDEX-1972" file="ch08_01.htm" sect="8.1. What Is a Reference?">
<primary>hashes</primary>
<secondary>references to</secondary>
</indexterm>

<indexterm id="INDEX-1974" file="ch08_02.htm" sect="8.2. Creating References">
<primary>references</primary>
<secondary>creating</secondary>
</indexterm>

<indexterm id="INDEX-1975" file="ch08_02.htm" sect="8.2. Creating References">
<primary>hard references</primary>
</indexterm>

<indexterm id="INDEX-1976" file="ch08_02.htm" sect="8.2.1. The Backslash Operator">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary>reference operator</secondary>
</indexterm>

<indexterm id="INDEX-1977" file="ch08_02.htm" sect="8.2.1. The Backslash Operator">
<primary>references</primary>
<secondary>creating</secondary>
<tertiary sortas="backslash operator">with backslash operator</tertiary>
</indexterm>

<indexterm id="INDEX-1978" file="ch08_02.htm" sect="8.2.2. Anonymous Data">
<primary>references</primary>
<secondary sortas="anonymous data">to anonymous data</secondary>
</indexterm>

<indexterm id="INDEX-1979" file="ch08_02.htm" sect="8.2.2. Anonymous Data">
<primary>variables</primary>
<secondary>anonymous</secondary>
</indexterm>

<indexterm id="INDEX-1980" file="ch08_02.htm" sect="8.2.2.1. The anonymous array composer">
<primary>arrays</primary>
<secondary>anonymous, references to</secondary>
</indexterm>

<indexterm id="INDEX-1981" file="ch08_02.htm" sect="8.2.2.1. The anonymous array composer">
<primary sortas="@brackets">[] (brackets) ;array composer</primary>
</indexterm>

<indexterm id="INDEX-1982" file="ch08_02.htm" sect="8.2.2.1. The anonymous array composer">
<primary>anonymous</primary>
<secondary>array composer</secondary>
</indexterm>

<indexterm id="INDEX-1983" file="ch08_02.htm" sect="8.2.2.2. The anonymous hash composer">
<primary>hashes</primary>
<secondary>anonymous, references to</secondary>
</indexterm>

<indexterm id="INDEX-1984" file="ch08_02.htm" sect="8.2.2.2. The anonymous hash composer">
<primary sortas="@braces">{} (braces) ;hash composer</primary>
</indexterm>

<indexterm id="INDEX-1985" file="ch08_02.htm" sect="8.2.2.2. The anonymous hash composer">
<primary>anonymous</primary>
<secondary>hash composer</secondary>
</indexterm>

<indexterm id="INDEX-1986" file="ch08_02.htm" sect="8.2.2.3. The anonymous subroutine composer">
<primary>anonymous</primary>
<secondary>subroutine composer</secondary>
</indexterm>

<indexterm id="INDEX-1987" file="ch08_02.htm" sect="8.2.2.3. The anonymous subroutine composer">
<primary>sub declaration</primary>
</indexterm>

<indexterm id="INDEX-1988" file="ch08_02.htm" sect="8.2.2.3. The anonymous subroutine composer">
<primary>subroutines</primary>
<secondary>anonymous</secondary>
<tertiary>references to</tertiary>
</indexterm>

<indexterm id="INDEX-1990" file="ch08_02.htm" sect="8.2.3. Object Constructors">
<primary>constructors</primary>
</indexterm>

<indexterm id="INDEX-1991" file="ch08_02.htm" sect="8.2.3. Object Constructors">
<primary>objects</primary>
<secondary>constructors</secondary>
<see>constructors</see>
</indexterm>

<indexterm id="INDEX-1992" file="ch08_02.htm" sect="8.2.3. Object Constructors">
<primary>subroutines</primary>
<secondary>returning references</secondary>
</indexterm>

<indexterm id="INDEX-1993" file="ch08_02.htm" sect="8.2.3. Object Constructors">
<primary>bless operator</primary>
</indexterm>

<indexterm id="INDEX-1994" file="ch08_02.htm" sect="8.2.3. Object Constructors">
<primary>references</primary>
<secondary sortas="objects">to objects</secondary>
</indexterm>

<indexterm id="INDEX-1995" file="ch08_02.htm" sect="8.2.4. Handle References">
<primary>handles</primary>
<secondary>references to</secondary>
</indexterm>

<indexterm id="INDEX-1996" file="ch08_02.htm" sect="8.2.4. Handle References">
<primary>filehandles</primary>
<secondary>references to</secondary>
</indexterm>

<indexterm id="INDEX-1997" file="ch08_02.htm" sect="8.2.4. Handle References">
<primary>references</primary>
<secondary sortas="filehandles">to filehandles</secondary>
</indexterm>

<indexterm id="INDEX-1998" file="ch08_02.htm" sect="8.2.4. Handle References">
<primary>typeglobs</primary>
<secondary>filehandle references, creating</secondary>
</indexterm>

<indexterm id="INDEX-1999" file="ch08_02.htm" sect="8.2.4. Handle References">
<primary>typeglobs</primary>
<secondary>references to typeglobs vs.</secondary>
</indexterm>

<indexterm id="INDEX-2000" file="ch08_02.htm" sect="8.2.4. Handle References">
<primary>typeglobs</primary>
<secondary> anonymous</secondary>
</indexterm>

<indexterm id="INDEX-2001" file="ch08_02.htm" sect="8.2.4. Handle References">
<primary>filehandles</primary>
<secondary> anonymous</secondary>
</indexterm>

<indexterm id="INDEX-2002" file="ch08_02.htm" sect="8.2.5. Symbol Table References">
<primary>references</primary>
<secondary sortas="symbol tables">to symbol tables</secondary>
</indexterm>

<indexterm id="INDEX-2003" file="ch08_02.htm" sect="8.2.5. Symbol Table References">
<primary>symbol tables</primary>
<secondary>references to</secondary>
</indexterm>

<indexterm id="INDEX-2004" file="ch08_02.htm" sect="8.2.5. Symbol Table References">
<primary>typeglobs</primary>
<secondary>IO\:\:Handle object</secondary>
</indexterm>

<indexterm id="INDEX-2006" file="ch08_03.htm" sect="8.3. Using Hard References">
<primary>hard references</primary>
<secondary>using</secondary>
</indexterm>

<indexterm id="INDEX-2007" file="ch08_03.htm" sect="8.3. Using Hard References">
<primary>dereferencing</primary>
</indexterm>

<indexterm id="INDEX-2008" file="ch08_03.htm" sect="8.3.1. Using a Variable as a Variable Name">
<primary>variables</primary>
</indexterm>

<indexterm id="INDEX-2009" file="ch08_03.htm" sect="8.3.1. Using a Variable as a Variable Name">
<primary>dereferencing</primary>
</indexterm>

<indexterm id="INDEX-2010" file="ch08_03.htm" sect="8.3.2. Using a BLOCK as a Variable Name">
<primary>blocks</primary>
</indexterm>

<indexterm id="INDEX-2011" file="ch08_03.htm" sect="8.3.3. Using the Arrow Operator">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="@hyphenright">-&gt; (arrow) operator</secondary>
</indexterm>

<indexterm id="INDEX-2012" file="ch08_03.htm" sect="8.3.3. Using the Arrow Operator">
<primary>arrow (-&gt;</primary>
<secondary>) operator</secondary>
</indexterm>

<indexterm id="INDEX-2013" file="ch08_03.htm" sect="8.3.3. Using the Arrow Operator">
<primary>dereferencing</primary>
</indexterm>

<indexterm id="INDEX-2014" file="ch08_03.htm" sect="8.3.3. Using the Arrow Operator">
<primary>dereferencing</primary>
<secondary>operator for</secondary>
<see>arrow operator</see>
</indexterm>

<indexterm id="INDEX-2015" file="ch08_03.htm" sect="8.3.3. Using the Arrow Operator">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="@hyphenright">-&gt;(arrow) operator</secondary>
</indexterm>

<indexterm id="INDEX-2016" file="ch08_03.htm" sect="8.3.4. Using Object Methods">
<primary>object</primary>
<secondary>methods</secondary>
</indexterm>

<indexterm id="INDEX-2017" file="ch08_03.htm" sect="8.3.4. Using Object Methods">
<primary>encapsulation</primary>
</indexterm>

<indexterm id="INDEX-2018" file="ch08_03.htm" sect="8.3.4. Using Object Methods">
<primary>methods</primary>
</indexterm>

<indexterm id="INDEX-2019" file="ch08_03.htm" sect="8.3.4. Using Object Methods">
<primary>references</primary>
<secondary sortas="objects">to objects</secondary>
</indexterm>

<indexterm id="INDEX-2020" file="ch08_03.htm" sect="8.3.5. Pseudohashes">
<primary>pseudohashes</primary>
</indexterm>

<indexterm id="INDEX-2021" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>list context</primary>
<secondary>backslash operator, supplying</secondary>
</indexterm>

<indexterm id="INDEX-2022" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>ref operator</primary>
</indexterm>

<indexterm id="INDEX-2023" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>references</primary>
<secondary>stringifying</secondary>
</indexterm>

<indexterm id="INDEX-2024" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>stringifying</primary>
<secondary>references</secondary>
</indexterm>

<indexterm id="INDEX-2025" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>bless operator</primary>
</indexterm>

<indexterm id="INDEX-2026" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>objects</primary>
<secondary>stringifying</secondary>
</indexterm>

<indexterm id="INDEX-2027" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>stringifying</primary>
<secondary>objects</secondary>
</indexterm>

<indexterm id="INDEX-2028" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>typeglobs</primary>
</indexterm>

<indexterm id="INDEX-2029" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>variables</primary>
<secondary>my</secondary>
<see>my declarations</see>
</indexterm>

<indexterm id="INDEX-2030" file="ch08_03.htm" sect="8.3.6. Other Tricks You Can Do with Hard References">
<primary>strings</primary>
<secondary>printing values in</secondary>
</indexterm>

<indexterm id="INDEX-2031" file="ch08_03.htm" sect="8.3.7. Closures">
<primary>hard references</primary>
<secondary>using</secondary>
<tertiary>closures</tertiary>
</indexterm>

<indexterm id="INDEX-2032" file="ch08_03.htm" sect="8.3.7. Closures">
<primary>closures</primary>
</indexterm>

<indexterm id="INDEX-2033" file="ch08_03.htm" sect="8.3.7. Closures">
<primary>my declarations</primary>
<secondary>closures and</secondary>
</indexterm>

<indexterm id="INDEX-2034" file="ch08_03.htm" sect="8.3.7. Closures">
<primary>callbacks</primary>
</indexterm>

<indexterm id="INDEX-2035" file="ch08_03.htm" sect="8.3.7. Closures">
<primary>functions</primary>
<secondary>generation of</secondary>
</indexterm>

<indexterm id="INDEX-2036" file="ch08_03.htm" sect="8.3.7. Closures">
<primary>methods</primary>
<secondary>references to</secondary>
</indexterm>

<indexterm id="INDEX-2037" file="ch08_03.htm" sect="8.3.7. Closures">
<primary>objects</primary>
<secondary>methods, references to</secondary>
</indexterm>

<indexterm id="INDEX-2038" file="ch08_03.htm" sect="8.3.7. Closures">
<primary>objects</primary>
<secondary>methods, references to</secondary>
<seealso>closures</seealso>
</indexterm>

<indexterm id="INDEX-2039" file="ch08_03.htm" sect="8.3.7.1. Closures as function templates">
<primary>closures</primary>
<secondary sortas="function templates">as function templates</secondary>
</indexterm>

<indexterm id="INDEX-2040" file="ch08_03.htm" sect="8.3.7.1. Closures as function templates">
<primary>function templates, closures as</primary>
</indexterm>

<indexterm id="INDEX-2041" file="ch08_03.htm" sect="8.3.7.1. Closures as function templates">
<primary>prototypes</primary>
<secondary>closures, giving to</secondary>
</indexterm>

<indexterm id="INDEX-2042" file="ch08_03.htm" sect="8.3.7.2. Nested subroutines">
<primary>closures</primary>
<secondary>nested subroutines, emulating with</secondary>
</indexterm>

<indexterm id="INDEX-2043" file="ch08_03.htm" sect="8.3.7.2. Nested subroutines">
<primary>nested subroutines</primary>
</indexterm>

<indexterm id="INDEX-2044" file="ch08_03.htm" sect="8.3.7.2. Nested subroutines">
<primary>subroutines</primary>
<secondary>nested</secondary>
</indexterm>

<indexterm id="INDEX-2048" file="ch08_04.htm" sect="8.4. Symbolic References">
<primary>symbolic references</primary>
</indexterm>

<indexterm id="INDEX-2049" file="ch08_04.htm" sect="8.4. Symbolic References">
<primary>references</primary>
<secondary>symbolic</secondary>
</indexterm>

<indexterm id="INDEX-2050" file="ch08_04.htm" sect="8.4. Symbolic References">
<primary>strict pragma</primary>
</indexterm>

<indexterm id="INDEX-2051" file="ch08_04.htm" sect="8.4. Symbolic References">
<primary>lexical variables</primary>
<secondary>symbolic references and</secondary>
</indexterm>

<indexterm id="INDEX-2052" file="ch08_05.htm" sect="8.5. Braces, Brackets, and Quoting">
<primary sortas="@double">" (double quotes)</primary>
</indexterm>

<indexterm id="INDEX-2053" file="ch08_05.htm" sect="8.5. Braces, Brackets, and Quoting">
<primary>references</primary>
<secondary>braces, brackets and quoting in</secondary>
</indexterm>

<indexterm id="INDEX-2054" file="ch08_05.htm" sect="8.5. Braces, Brackets, and Quoting">
<primary sortas="@braces">{} (braces)</primary>
</indexterm>

<indexterm id="INDEX-2055" file="ch08_05.htm" sect="8.5. Braces, Brackets, and Quoting">
<primary>quotation marks</primary>
<seealso>" (double quotes) and ' (single quotes) under Symbols</seealso>
</indexterm>

<indexterm id="INDEX-2056" file="ch08_05.htm" sect="8.5.1. References Don't Work as Hash Keys">
<primary>hashes</primary>
<secondary>references as keys</secondary>
</indexterm>

<indexterm id="INDEX-2057" file="ch08_05.htm" sect="8.5.1. References Don't Work as Hash Keys">
<primary>strings</primary>
<secondary>references and</secondary>
</indexterm>

<indexterm id="INDEX-2058" file="ch08_05.htm" sect="8.5.1. References Don't Work as Hash Keys">
<primary>references</primary>
<secondary>stringifying</secondary>
</indexterm>

<indexterm id="INDEX-2059" file="ch08_05.htm" sect="8.5.1. References Don't Work as Hash Keys">
<primary>stringifying</primary>
<secondary>references</secondary>
</indexterm>

<indexterm id="INDEX-2060" file="ch08_05.htm" sect="8.5.1. References Don't Work as Hash Keys">
<primary>tying variables</primary>
</indexterm>

<indexterm id="INDEX-2061" file="ch08_05.htm" sect="8.5.2. Garbage Collection, Circular References, &#10;and Weak References">
<primary>references</primary>
<secondary>weak</secondary>
</indexterm>

<indexterm id="INDEX-2062" file="ch08_05.htm" sect="8.5.2. Garbage Collection, Circular References, &#10;and Weak References">
<primary>weak references</primary>
</indexterm>

<indexterm id="INDEX-2063" file="ch08_05.htm" sect="8.5.2. Garbage Collection, Circular References, &#10;and Weak References">
<primary>caching</primary>
</indexterm>

<indexterm id="INDEX-2064" file="ch08_05.htm" sect="8.5.2. Garbage Collection, Circular References, &#10;and Weak References">
<primary>memory </primary>
<secondary>garbage collection</secondary>
</indexterm>

<indexterm id="INDEX-2065" file="ch08_05.htm" sect="8.5.2. Garbage Collection, Circular References, &#10;and Weak References">
<primary>garbage collection</primary>
</indexterm>

<indexterm id="INDEX-2066" file="ch08_05.htm" sect="8.5.2. Garbage Collection, Circular References, &#10;and Weak References">
<primary>deallocating memory</primary>
</indexterm>

<indexterm id="INDEX-2067" file="ch08_05.htm" sect="8.5.2. Garbage Collection, Circular References, &#10;and Weak References">
<primary>circular references</primary>
</indexterm>

<indexterm id="INDEX-2068" file="ch08_05.htm" sect="8.5.2. Garbage Collection, Circular References, &#10;and Weak References">
<primary>references</primary>
<secondary>circular, and memory</secondary>
</indexterm>

<indexterm id="INDEX-2070" file="ch09_01.htm" sect="9. Data Structures">
<primary>data structures</primary>
</indexterm>

<indexterm id="INDEX-2071" file="ch09_01.htm" sect="9. Data Structures">
<primary>stacks</primary>
</indexterm>

<indexterm id="INDEX-2072" file="ch09_01.htm" sect="9. Data Structures">
<primary>queues</primary>
</indexterm>

<indexterm id="INDEX-2073" file="ch09_01.htm" sect="9. Data Structures">
<primary>shift function</primary>
</indexterm>

<indexterm id="INDEX-2074" file="ch09_01.htm" sect="9. Data Structures">
<primary>unshift function</primary>
</indexterm>

<indexterm id="INDEX-2075" file="ch09_01.htm" sect="9. Data Structures">
<primary>push function</primary>
</indexterm>

<indexterm id="INDEX-2076" file="ch09_01.htm" sect="9. Data Structures">
<primary>pop function</primary>
</indexterm>

<indexterm id="INDEX-2077" file="ch09_01.htm" sect="9. Data Structures">
<primary>hashes</primary>
<secondary>flat lookup tables, providing access to</secondary>
</indexterm>

<indexterm id="INDEX-2078" file="ch09_01.htm" sect="9. Data Structures">
<primary>complex data structures</primary>
<secondary>creating in Perl</secondary>
</indexterm>

<indexterm id="INDEX-2079" file="ch09_01.htm" sect="9.1. Arrays of Arrays">
<primary>lists</primary>
<secondary>nested</secondary>
</indexterm>

<indexterm id="INDEX-2080" file="ch09_01.htm" sect="9.1. Arrays of Arrays">
<primary>nested</primary>
<secondary>lists</secondary>
</indexterm>

<indexterm id="INDEX-2081" file="ch09_01.htm" sect="9.1. Arrays of Arrays">
<primary>arrays</primary>
<secondary>nested</secondary>
</indexterm>

<indexterm id="INDEX-2082" file="ch09_01.htm" sect="9.1. Arrays of Arrays">
<primary>nested</primary>
<secondary>arrays</secondary>
</indexterm>

<indexterm id="INDEX-2083" file="ch09_01.htm" sect="9.1. Arrays of Arrays">
<primary>multidimensional arrays</primary>
</indexterm>

<indexterm id="INDEX-2084" file="ch09_01.htm" sect="9.1. Arrays of Arrays">
<primary>arrays</primary>
<secondary>multidimensional</secondary>
</indexterm>

<indexterm id="INDEX-2085" file="ch09_01.htm" sect="9.1. Arrays of Arrays">
<primary>tables</primary>
<seealso>multidimensional arrays</seealso>
</indexterm>

<indexterm id="INDEX-2086" file="ch09_01.htm" sect="9.1.1. Creating and Accessing a Two-Dimensional Array">
<primary>two-dimensional arrays</primary>
<secondary>creating and accessing</secondary>
</indexterm>

<indexterm id="INDEX-2087" file="ch09_01.htm" sect="9.1.1. Creating and Accessing a Two-Dimensional Array">
<primary>arrays</primary>
<secondary>nested</secondary>
<tertiary>two-dimensional arrays, creating and accessing</tertiary>
</indexterm>

<indexterm id="INDEX-2088" file="ch09_01.htm" sect="9.1.1. Creating and Accessing a Two-Dimensional Array">
<primary>references</primary>
<secondary sortas="multidimensional arrays">in multidimsional arrays</secondary>
</indexterm>

<indexterm id="INDEX-2089" file="ch09_01.htm" sect="9.1.2. Growing Your Own">
<primary>two-dimensional arrays</primary>
<secondary>creating your own</secondary>
</indexterm>

<indexterm id="INDEX-2090" file="ch09_01.htm" sect="9.1.2. Growing Your Own">
<primary>assignment</primary>
<secondary>elements, two-dimsional arrays</secondary>
</indexterm>

<indexterm id="INDEX-2091" file="ch09_01.htm" sect="9.1.2. Growing Your Own">
<primary>appending</primary>
<secondary>elements to arrays</secondary>
</indexterm>

<indexterm id="INDEX-2092" file="ch09_01.htm" sect="9.1.3. Access and Printing">
<primary>accessing</primary>
<secondary>multidimensional arrays</secondary>
</indexterm>

<indexterm id="INDEX-2093" file="ch09_01.htm" sect="9.1.3. Access and Printing">
<primary>printing</primary>
<secondary>multidimensional arrays</secondary>
</indexterm>

<indexterm id="INDEX-2094" file="ch09_01.htm" sect="9.1.3. Access and Printing">
<primary>references</primary>
<secondary>stringifying</secondary>
</indexterm>

<indexterm id="INDEX-2095" file="ch09_01.htm" sect="9.1.3. Access and Printing">
<primary>stringifying</primary>
<secondary>references</secondary>
</indexterm>

<indexterm id="INDEX-2096" file="ch09_01.htm" sect="9.1.3. Access and Printing">
<primary>dereferencing</primary>
<secondary>array elements</secondary>
</indexterm>

<indexterm id="INDEX-2097" file="ch09_01.htm" sect="9.1.4. Slices">
<primary>slices of multidimensional arrays</primary>
</indexterm>

<indexterm id="INDEX-2098" file="ch09_01.htm" sect="9.1.4. Slices">
<primary>accessing</primary>
<secondary>slices of multidimensional arrays</secondary>
</indexterm>

<indexterm id="INDEX-2099" file="ch09_01.htm" sect="9.1.4. Slices">
<primary>loops</primary>
<secondary>extracting slices, multidimensional arrays</secondary>
</indexterm>

<indexterm id="INDEX-2100" file="ch09_01.htm" sect="9.1.4. Slices">
<primary>anonymous</primary>
<secondary>arrays</secondary>
<tertiary>two-dimensional array slice</tertiary>
</indexterm>

<indexterm id="INDEX-2101" file="ch09_01.htm" sect="9.1.4. Slices">
<primary>Perl Data Language (PDL) module</primary>
</indexterm>

<indexterm id="INDEX-2102" file="ch09_01.htm" sect="9.1.5. Common Mistakes">
<primary>troubleshooting, multidimensional arrays</primary>
</indexterm>

<indexterm id="INDEX-2103" file="ch09_01.htm" sect="9.1.5. Common Mistakes">
<primary>references</primary>
<secondary>stringifying</secondary>
</indexterm>

<indexterm id="INDEX-2104" file="ch09_01.htm" sect="9.1.5. Common Mistakes">
<primary>stringifying</primary>
<secondary>references</secondary>
</indexterm>

<indexterm id="INDEX-2105" file="ch09_01.htm" sect="9.1.5. Common Mistakes">
<primary>data organization in Perl</primary>
</indexterm>

<indexterm id="INDEX-2106" file="ch09_01.htm" sect="9.1.5. Common Mistakes">
<primary>hashes</primary>
<secondary>Perl data organization in</secondary>
</indexterm>

<indexterm id="INDEX-2107" file="ch09_01.htm" sect="9.1.5. Common Mistakes">
<primary>lists</primary>
<secondary>ordered, data records in arrays</secondary>
</indexterm>

<indexterm id="INDEX-2108" file="ch09_01.htm" sect="9.1.5. Common Mistakes">
<primary>references</primary>
<secondary>to hashes</secondary>
</indexterm>

<indexterm id="INDEX-2109" file="ch09_01.htm" sect="9.1.5. Common Mistakes">
<primary>key/value pairs, hashes</primary>
<secondary>organizing and accessing data in</secondary>
</indexterm>

<indexterm id="INDEX-2113" file="ch09_02.htm" sect="9.2. Hashes of Arrays">
<primary>arrays</primary>
<secondary>hashes of</secondary>
</indexterm>

<indexterm id="INDEX-2114" file="ch09_02.htm" sect="9.2. Hashes of Arrays">
<primary>hashes</primary>
<secondary>of arrays</secondary>
</indexterm>

<indexterm id="INDEX-2115" file="ch09_02.htm" sect="9.2. Hashes of Arrays">
<primary>data structures</primary>
<secondary>hashes of arrays</secondary>
</indexterm>

<indexterm id="INDEX-2116" file="ch09_02.htm" sect="9.2. Hashes of Arrays">
<primary>printing</primary>
<secondary>multidimensional arrays</secondary>
</indexterm>

<indexterm id="INDEX-2117" file="ch09_02.htm" sect="9.2.1. Composition of a Hash of Arrays">
<primary>anonymous</primary>
<secondary>arrays</secondary>
<tertiary>hash of, creating</tertiary>
</indexterm>

<indexterm id="INDEX-2118" file="ch09_02.htm" sect="9.2.2. Generation of a Hash of Arrays">
<primary>hashes</primary>
<secondary sortas="arrays">of arrays</secondary>
<tertiary>generating</tertiary>
</indexterm>

<indexterm id="INDEX-2119" file="ch09_02.htm" sect="9.2.3. Access and Printing of a Hash of Arrays">
<primary>hashes</primary>
<secondary>of arrays</secondary>
<tertiary>access and printing of</tertiary>
</indexterm>

<indexterm id="INDEX-2120" file="ch09_02.htm" sect="9.2.3. Access and Printing of a Hash of Arrays">
<primary>accessing</primary>
<secondary>hashes of arrays</secondary>
</indexterm>

<indexterm id="INDEX-2121" file="ch09_02.htm" sect="9.2.3. Access and Printing of a Hash of Arrays">
<primary>printing</primary>
<secondary>hashes of arrays</secondary>
</indexterm>

<indexterm id="INDEX-2122" file="ch09_02.htm" sect="9.2.3. Access and Printing of a Hash of Arrays">
<primary>indexing arrays</primary>
</indexterm>

<indexterm id="INDEX-2123" file="ch09_02.htm" sect="9.2.3. Access and Printing of a Hash of Arrays">
<primary>sorting</primary>
<secondary>arrays in hashes of</secondary>
</indexterm>

<indexterm id="INDEX-2127" file="ch09_03.htm" sect="9.3. Arrays of Hashes">
<primary>arrays</primary>
<secondary sortas="hashes">of hashes</secondary>
</indexterm>

<indexterm id="INDEX-2128" file="ch09_03.htm" sect="9.3. Arrays of Hashes">
<primary>hashes</primary>
<secondary>of arrays</secondary>
</indexterm>

<indexterm id="INDEX-2129" file="ch09_03.htm" sect="9.3. Arrays of Hashes">
<primary>data structures</primary>
<secondary>arrays of hashes</secondary>
</indexterm>

<indexterm id="INDEX-2130" file="ch09_03.htm" sect="9.3.1. Composition of an Array of Hashes">
<primary>anonymous</primary>
<secondary>hashes</secondary>
<tertiary>array of, creating</tertiary>
</indexterm>

<indexterm id="INDEX-2131" file="ch09_03.htm" sect="9.3.2. Generation of an Array of Hashes">
<primary>arrays</primary>
<secondary sortas="hashes">of hashes</secondary>
<tertiary>generating</tertiary>
</indexterm>

<indexterm id="INDEX-2132" file="ch09_03.htm" sect="9.3.2. Generation of an Array of Hashes">
<primary>hashes</primary>
<secondary>of arrays</secondary>
<tertiary>generating</tertiary>
</indexterm>

<indexterm id="INDEX-2133" file="ch09_03.htm" sect="9.3.2. Generation of an Array of Hashes">
<primary>appending</primary>
<secondary>members to existing hash</secondary>
</indexterm>

<indexterm id="INDEX-2134" file="ch09_03.htm" sect="9.3.3. Access and Printing of an Array of Hashes">
<primary>arrays</primary>
<secondary sortas="hashes">of hashes</secondary>
<tertiary>accessing and printing</tertiary>
</indexterm>

<indexterm id="INDEX-2135" file="ch09_03.htm" sect="9.3.3. Access and Printing of an Array of Hashes">
<primary>printing</primary>
<secondary>arrays of hashes</secondary>
</indexterm>

<indexterm id="INDEX-2136" file="ch09_03.htm" sect="9.3.3. Access and Printing of an Array of Hashes">
<primary>accessing</primary>
<secondary>array of hashes</secondary>
</indexterm>

<indexterm id="INDEX-2140" file="ch09_04.htm" sect="9.4. Hashes of Hashes">
<primary>multidimensional hashes</primary>
</indexterm>

<indexterm id="INDEX-2141" file="ch09_04.htm" sect="9.4. Hashes of Hashes">
<primary>hashes</primary>
<secondary>multidimensional</secondary>
</indexterm>

<indexterm id="INDEX-2142" file="ch09_04.htm" sect="9.4. Hashes of Hashes">
<primary>data structures</primary>
<secondary>multidimensional hashes</secondary>
</indexterm>

<indexterm id="INDEX-2143" file="ch09_04.htm" sect="9.4. Hashes of Hashes">
<primary>printing</primary>
<secondary>multidimensional arrays</secondary>
</indexterm>

<indexterm id="INDEX-2144" file="ch09_04.htm" sect="9.4.1. Composition of a Hash of Hashes">
<primary>anonymous</primary>
<secondary>hashes</secondary>
<tertiary>adding to multidimensional hashes</tertiary>
</indexterm>

<indexterm id="INDEX-2145" file="ch09_04.htm" sect="9.4.2. Generation of a Hash of Hashes">
<primary>hashes</primary>
<secondary>multidimensional</secondary>
<tertiary>generation of</tertiary>
</indexterm>

<indexterm id="INDEX-2146" file="ch09_04.htm" sect="9.4.2. Generation of a Hash of Hashes">
<primary>multidimensional hashes</primary>
<secondary>generation of</secondary>
</indexterm>

<indexterm id="INDEX-2147" file="ch09_04.htm" sect="9.4.3. Access and Printing of a Hash of Hashes">
<primary>multidimensional hashes</primary>
<secondary>accessing and printing</secondary>
</indexterm>

<indexterm id="INDEX-2148" file="ch09_04.htm" sect="9.4.3. Access and Printing of a Hash of Hashes">
<primary>hashes</primary>
<secondary>multidimensional</secondary>
<tertiary>accessing and printing</tertiary>
</indexterm>

<indexterm id="INDEX-2149" file="ch09_04.htm" sect="9.4.3. Access and Printing of a Hash of Hashes">
<primary>printing</primary>
<secondary>multidimensional hashes</secondary>
</indexterm>

<indexterm id="INDEX-2150" file="ch09_04.htm" sect="9.4.3. Access and Printing of a Hash of Hashes">
<primary>accessing</primary>
<secondary>multidimensional hashes</secondary>
</indexterm>

<indexterm id="INDEX-2151" file="ch09_04.htm" sect="9.4.3. Access and Printing of a Hash of Hashes">
<primary>each function</primary>
</indexterm>

<indexterm id="INDEX-2152" file="ch09_04.htm" sect="9.4.3. Access and Printing of a Hash of Hashes">
<primary>sorting</primary>
<secondary>hashes</secondary>
</indexterm>

<indexterm id="INDEX-2156" file="ch09_05.htm" sect="9.5. Hashes of Functions">
<primary>data structures</primary>
<secondary>hashes of functions</secondary>
</indexterm>

<indexterm id="INDEX-2157" file="ch09_05.htm" sect="9.5. Hashes of Functions">
<primary>functions</primary>
<secondary>hashes of</secondary>
</indexterm>

<indexterm id="INDEX-2158" file="ch09_05.htm" sect="9.5. Hashes of Functions">
<primary>commands</primary>
<secondary>hashes of functions, storing in</secondary>
</indexterm>

<indexterm id="INDEX-2159" file="ch09_05.htm" sect="9.5. Hashes of Functions">
<primary>references</primary>
<secondary sortas="functions">to functions</secondary>
<tertiary>storing in data structures</tertiary>
</indexterm>

<indexterm id="INDEX-2160" file="ch09_05.htm" sect="9.5. Hashes of Functions">
<primary>dereferencing</primary>
<secondary>hash values as functions</secondary>
</indexterm>

<indexterm id="INDEX-2161" file="ch09_06.htm" sect="9.6. More Elaborate Records">
<primary>records</primary>
<secondary sortas="various">of various data structures</secondary>
</indexterm>

<indexterm id="INDEX-2162" file="ch09_06.htm" sect="9.6. More Elaborate Records">
<primary>data structures</primary>
<secondary>records of elaborate</secondary>
</indexterm>

<indexterm id="INDEX-2163" file="ch09_06.htm" sect="9.6. More Elaborate Records">
<primary>references</primary>
<secondary sortas="hashes">to hashes</secondary>
<tertiary>multidimensional hashes</tertiary>
</indexterm>

<indexterm id="INDEX-2164" file="ch09_06.htm" sect="9.6.1. Composition, Access, and Printing of&#10;More Elaborate Records">
<primary>records</primary>
<secondary sortas="various">of various data structures</secondary>
<tertiary>composing, accessing, and printing</tertiary>
</indexterm>

<indexterm id="INDEX-2165" file="ch09_06.htm" sect="9.6.1. Composition, Access, and Printing of&#10;More Elaborate Records">
<primary>accessing</primary>
<secondary>records of elaborate data structures</secondary>
</indexterm>

<indexterm id="INDEX-2166" file="ch09_06.htm" sect="9.6.1. Composition, Access, and Printing of&#10;More Elaborate Records">
<primary>printing</primary>
<secondary>multidimensional hashes</secondary>
</indexterm>

<indexterm id="INDEX-2167" file="ch09_06.htm" sect="9.6.3. Generation of a Hash of Complex Records">
<primary>hashes</primary>
<secondary sortas="complex">of complex records</secondary>
</indexterm>

<indexterm id="INDEX-2168" file="ch09_06.htm" sect="9.6.3. Generation of a Hash of Complex Records">
<primary>records</primary>
<secondary sortas="various">of various data structures</secondary>
<tertiary>generating hash of</tertiary>
</indexterm>

<indexterm id="INDEX-2169" file="ch09_06.htm" sect="9.6.3. Generation of a Hash of Complex Records">
<primary>loading data structures</primary>
</indexterm>

<indexterm id="INDEX-2172" file="ch09_07.htm" sect="9.7. Saving Data Structures">
<primary>data structures</primary>
<secondary>saving</secondary>
</indexterm>

<indexterm id="INDEX-2173" file="ch09_07.htm" sect="9.7. Saving Data Structures">
<primary>Data::Dumper</primary>
</indexterm>

<indexterm id="INDEX-2174" file="ch09_07.htm" sect="9.7. Saving Data Structures">
<primary>saving, data structures</primary>
</indexterm>

<indexterm id="INDEX-2175" file="ch09_07.htm" sect="9.7. Saving Data Structures">
<primary>data structures</primary>
<secondary>stringifying</secondary>
</indexterm>

<indexterm id="INDEX-2176" file="ch09_07.htm" sect="9.7. Saving Data Structures">
<primary>stringifying</primary>
<secondary>data
structures</secondary>
</indexterm>

<indexterm id="INDEX-2178" file="ch10_01.htm" sect="10. Packages">
<primary>packages</primary>
</indexterm>

<indexterm id="INDEX-2179" file="ch10_01.htm" sect="10. Packages">
<primary>abstraction</primary>
</indexterm>

<indexterm id="INDEX-2180" file="ch10_01.htm" sect="10. Packages">
<primary>namespace</primary>
<see>packages</see>
</indexterm>

<indexterm id="INDEX-2181" file="ch10_01.htm" sect="10. Packages">
<primary>modules</primary>
</indexterm>

<indexterm id="INDEX-2182" file="ch10_01.htm" sect="10. Packages">
<primary>pragmas</primary>
</indexterm>

<indexterm id="INDEX-2183" file="ch10_01.htm" sect="10. Packages">
<primary sortas="pm file">.pm file extension</primary>
</indexterm>

<indexterm id="INDEX-2184" file="ch10_01.htm" sect="10. Packages">
<primary>files</primary>
<secondary>Perl module, housing in single</secondary>
</indexterm>

<indexterm id="INDEX-2185" file="ch10_01.htm" sect="10. Packages">
<primary>use command</primary>
</indexterm>

<indexterm id="INDEX-2186" file="ch10_01.htm" sect="10. Packages">
<primary>CPAN (Comprehensive Perl
Archive Network)</primary>
</indexterm>

<indexterm id="INDEX-2187" file="ch10_01.htm" sect="10. Packages">
<primary>modules</primary>
<secondary>CPAN, storing in</secondary>
</indexterm>

<indexterm id="INDEX-2188" file="ch10_01.htm" sect="10. Packages">
<primary>CPAN</primary>
</indexterm>

<indexterm id="INDEX-2189" file="ch10_01.htm" sect="10. Packages">
<primary>classes</primary>
</indexterm>

<indexterm id="INDEX-2190" file="ch10_01.htm" sect="10. Packages">
<primary>object</primary>
<secondary>classes</secondary>
</indexterm>

<indexterm id="INDEX-2191" file="ch10_01.htm" sect="10. Packages">
<primary>object-oriented programming</primary>
</indexterm>

<indexterm id="INDEX-2192" file="ch10_01.htm" sect="10. Packages">
<primary>modules</primary>
<secondary>classes vs.</secondary>
</indexterm>

<indexterm id="INDEX-2193" file="ch10_01.htm" sect="10. Packages">
<primary>classes</primary>
<secondary>modules vs.</secondary>
</indexterm>

<indexterm id="INDEX-2194" file="ch10_01.htm" sect="10. Packages">
<primary>inheritance</primary>
<secondary>class</secondary>
</indexterm>

<indexterm id="INDEX-2195" file="ch10_01.htm" sect="10. Packages">
<primary>object-oriented programming</primary>
<secondary>references in Perl, emulating</secondary>
</indexterm>

<indexterm id="INDEX-2196" file="ch10_01.htm" sect="10. Packages">
<primary>references</primary>
<secondary>object-oriented programming and</secondary>
</indexterm>

<indexterm id="INDEX-2197" file="ch10_01.htm" sect="10. Packages">
<primary>declarations</primary>
<secondary>package</secondary>
</indexterm>

<indexterm id="INDEX-2198" file="ch10_01.htm" sect="10. Packages">
<primary>symbol tables</primary>
<secondary>current package, determining use of</secondary>
</indexterm>

<indexterm id="INDEX-2199" file="ch10_01.htm" sect="10. Packages">
<primary>package declaration</primary>
</indexterm>

<indexterm id="INDEX-2200" file="ch10_01.htm" sect="10. Packages">
<primary>main package</primary>
</indexterm>

<indexterm id="INDEX-2201" file="ch10_01.htm" sect="10. Packages">
<primary>variables</primary>
<secondary>packages, associating with</secondary>
</indexterm>

<indexterm id="INDEX-2202" file="ch10_01.htm" sect="10. Packages">
<primary>global variables</primary>
<secondary>package variables as</secondary>
</indexterm>

<indexterm id="INDEX-2203" file="ch10_01.htm" sect="10. Packages">
<primary>scopes</primary>
<secondary>package declarations</secondary>
</indexterm>

<indexterm id="INDEX-2204" file="ch10_01.htm" sect="10. Packages">
<primary>variables</primary>
<secondary>my</secondary>
<see>my
declarations</see>
</indexterm>

<indexterm id="INDEX-2205" file="ch10_01.htm" sect="10. Packages">
<primary>variables</primary>
<secondary>our</secondary>
<see>our
declarations</see>
</indexterm>

<indexterm id="INDEX-2206" file="ch10_01.htm" sect="10. Packages">
<primary>scopes</primary>
<secondary>my variables</secondary>
</indexterm>

<indexterm id="INDEX-2207" file="ch10_01.htm" sect="10. Packages">
<primary>blocks</primary>
<secondary>package declarations, span of</secondary>
</indexterm>

<indexterm id="INDEX-2208" file="ch10_01.htm" sect="10. Packages">
<primary>packages</primary>
<secondary>identifiers</secondary>
</indexterm>

<indexterm id="INDEX-2209" file="ch10_01.htm" sect="10. Packages">
<primary>labels</primary>
<secondary>packages and</secondary>
</indexterm>

<indexterm id="INDEX-2210" file="ch10_01.htm" sect="10. Packages">
<primary>identifiers, package</primary>
</indexterm>

<indexterm id="INDEX-2211" file="ch10_01.htm" sect="10. Packages">
<primary sortas="@colon">: (colon) </primary>
<secondary sortas="@coloncolon">:: for package identifiers</secondary>
</indexterm>

<indexterm id="INDEX-2212" file="ch10_01.htm" sect="10. Packages">
<primary>single quotes (')</primary>
<secondary sortas="package">as package delimiters</secondary>
</indexterm>

<indexterm id="INDEX-2213" file="ch10_01.htm" sect="10. Packages">
<primary>packages</primary>
<secondary>delimiters for</secondary>
</indexterm>

<indexterm id="INDEX-2214" file="ch10_01.htm" sect="10. Packages">
<primary>symbol tables</primary>
<secondary sortas="packages">for packages</secondary>
</indexterm>

<indexterm id="INDEX-2215" file="ch10_01.htm" sect="10. Packages">
<primary>identifiers, package</primary>
<secondary sortas="package">in package symbol table</secondary>
</indexterm>

<indexterm id="INDEX-2216" file="ch10_01.htm" sect="10. Packages">
<primary>names</primary>
<secondary>packages</secondary>
</indexterm>

<indexterm id="INDEX-2217" file="ch10_01.htm" sect="10. Packages">
<primary>_ (underscore)</primary>
<secondary>in variable names</secondary>
</indexterm>

<indexterm id="INDEX-2218" file="ch10_01.htm" sect="10. Packages">
<primary>signal handlers</primary>
<secondary>defining as strings</secondary>
</indexterm>

<indexterm id="INDEX-2219" file="ch10_01.htm" sect="10. Packages">
<primary>eval function</primary>
<secondary>packages and</secondary>
</indexterm>

<indexterm id="INDEX-2220" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>symbol tables</primary>
</indexterm>

<indexterm id="INDEX-2221" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>packages</primary>
<secondary>symbol tables for</secondary>
</indexterm>

<indexterm id="INDEX-2222" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>hashes</primary>
<secondary>symbol tables</secondary>
</indexterm>

<indexterm id="INDEX-2223" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>names</primary>
<secondary>symbol tables</secondary>
</indexterm>

<indexterm id="INDEX-2224" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>symbol tables</primary>
<secondary>containing references to other symbol tables</secondary>
</indexterm>

<indexterm id="INDEX-2225" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>references</primary>
<secondary sortas="symbol tables">in symbol tables to other symbol tables</secondary>
</indexterm>

<indexterm id="INDEX-2226" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>typeglobs</primary>
<secondary sortas="symbol tables">in symbol table hashes</secondary>
</indexterm>

<indexterm id="INDEX-2227" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>hashes</primary>
<secondary>symbol tables</secondary>
<tertiary>typeglobs in</tertiary>
</indexterm>

<indexterm id="INDEX-2228" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>key/value pairs, hashes</primary>
<secondary>symbol tables</secondary>
</indexterm>

<indexterm id="INDEX-2229" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>dereferencing</primary>
<secondary>typeglobs</secondary>
</indexterm>

<indexterm id="INDEX-2230" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>hashes</primary>
<secondary>symbol tables</secondary>
<tertiary>key/value pairs in</tertiary>
</indexterm>

<indexterm id="INDEX-2231" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>variables</primary>
<secondary>dumping with V command</secondary>
</indexterm>

<indexterm id="INDEX-2232" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>aliases</primary>
<secondary>symbol table key, assignment to typeglob</secondary>
</indexterm>

<indexterm id="INDEX-2233" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>importing</primary>
<secondary>symbols from one package to another</secondary>
</indexterm>

<indexterm id="INDEX-2234" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>references</primary>
<secondary>to subroutines</secondary>
<tertiary>retrieving from or passing to</tertiary>
</indexterm>

<indexterm id="INDEX-2235" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>subroutines</primary>
<secondary>references to</secondary>
<tertiary>retrieving from or passing to</tertiary>
</indexterm>

<indexterm id="INDEX-2236" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>scalars</primary>
<secondary>constants</secondary>
</indexterm>

<indexterm id="INDEX-2237" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>scalars</primary>
<secondary>constants</secondary>
<seealso>constants</seealso>
</indexterm>

<indexterm id="INDEX-2238" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>constants</primary>
</indexterm>

<indexterm id="INDEX-2239" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>constant pragma</primary>
</indexterm>

<indexterm id="INDEX-2240" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>anonymous</primary>
<secondary>subroutines</secondary>
<tertiary>giving names at run time</tertiary>
</indexterm>

<indexterm id="INDEX-2241" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>subroutines</primary>
<secondary>constant</secondary>
</indexterm>

<indexterm id="INDEX-2242" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>typeglobs</primary>
<secondary>symbol table aliasing with</secondary>
</indexterm>

<indexterm id="INDEX-2243" file="ch10_01.htm" sect="10.1. Symbol Tables">
<primary>references</primary>
<secondary sortas="symbol table entries">to symbol table entries</secondary>
</indexterm>

<indexterm id="INDEX-2247" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>AUTOLOAD subroutine</primary>
</indexterm>

<indexterm id="INDEX-2248" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>functions</primary>
<secondary>autoloading</secondary>
</indexterm>

<indexterm id="INDEX-2249" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>subroutines</primary>
<secondary>autoloading</secondary>
</indexterm>

<indexterm id="INDEX-2250" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>packages</primary>
<seealso>modules</seealso>
</indexterm>

<indexterm id="INDEX-2251" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>modules</primary>
<seealso>packages</seealso>
</indexterm>

<indexterm id="INDEX-2252" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>undefined subroutines, calling with AUTOLOAD</primary>
</indexterm>

<indexterm id="INDEX-2253" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>definitions</primary>
<secondary>subroutines</secondary>
<tertiary>loading with AUTOLOAD</tertiary>
</indexterm>

<indexterm id="INDEX-2254" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>goto function</primary>
</indexterm>

<indexterm id="INDEX-2255" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>closures</primary>
<secondary>assigning to glob to define subroutine</secondary>
</indexterm>

<indexterm id="INDEX-2256" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>AutoSplit module</primary>
</indexterm>

<indexterm id="INDEX-2257" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>AutoLoader module</primary>
</indexterm>

<indexterm id="INDEX-2258" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>SelfLoader module</primary>
</indexterm>

<indexterm id="INDEX-2259" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>autosplitting</primary>
</indexterm>

<indexterm id="INDEX-2260" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>modules</primary>
<secondary>splitting into separate files</secondary>
</indexterm>

<indexterm id="INDEX-2261" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>.al filename extensions</primary>
</indexterm>

<indexterm id="INDEX-2262" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>files</primary>
<secondary>modules, autoloading</secondary>
</indexterm>

<indexterm id="INDEX-2263" file="ch10_02.htm" sect="10.2. Autoloading">
<primary>DynaLoader
module</primary>
</indexterm>

<indexterm id="INDEX-2268" file="ch11_01.htm" sect="11. Modules">
<primary>modules</primary>
</indexterm>

<indexterm id="INDEX-2269" file="ch11_01.htm" sect="11. Modules">
<primary>exporting</primary>
</indexterm>

<indexterm id="INDEX-2270" file="ch11_01.htm" sect="11. Modules">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
</indexterm>

<indexterm id="INDEX-2271" file="ch11_01.htm" sect="11. Modules">
<primary>documentation, standard modules</primary>
</indexterm>

<indexterm id="INDEX-2272" file="ch11_01.htm" sect="11. Modules">
<primary>perldoc command</primary>
</indexterm>

<indexterm id="INDEX-2273" file="ch11_01.htm" sect="11. Modules">
<primary>man command</primary>
</indexterm>

<indexterm id="INDEX-2274" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>object-oriented modules</primary>
</indexterm>

<indexterm id="INDEX-2275" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>classes</primary>
<secondary>definitions of</secondary>
<tertiary>object-oriented modules as</tertiary>
</indexterm>

<indexterm id="INDEX-2276" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>definitions</primary>
<secondary>classes (object-oriented modules as)</secondary>
</indexterm>

<indexterm id="INDEX-2277" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>import function</primary>
</indexterm>

<indexterm id="INDEX-2278" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>symbols</primary>
<secondary>importing into current package</secondary>
</indexterm>

<indexterm id="INDEX-2279" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>names</primary>
<secondary>modules</secondary>
</indexterm>

<indexterm id="INDEX-2280" file="ch11_01.htm" sect="11.1. Using Modules">
<primary sortas="INC array">@INC array</primary>
</indexterm>

<indexterm id="INDEX-2281" file="ch11_01.htm" sect="11.1. Using Modules">
<primary sortas="INC hash">%INC hash</primary>
</indexterm>

<indexterm id="INDEX-2282" file="ch11_01.htm" sect="11.1. Using Modules">
<primary sortas="@colon">: (colon)</primary>
<secondary>:: in module names, translating to system directory separators</secondary>
</indexterm>

<indexterm id="INDEX-2283" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>operating systems</primary>
<secondary>module names, translating to directory names</secondary>
</indexterm>

<indexterm id="INDEX-2284" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>identifiers</primary>
<secondary>Perl modules</secondary>
</indexterm>

<indexterm id="INDEX-2285" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>lib pragma</primary>
</indexterm>

<indexterm id="INDEX-2286" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>BEGIN blocks</primary>
<secondary>modifications to @INC array, handling with</secondary>
</indexterm>

<indexterm id="INDEX-2287" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>hashes</primary>
<secondary>%INC for modules</secondary>
</indexterm>

<indexterm id="INDEX-2288" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>key/value pairs, hashes</primary>
<secondary>modules, %INC hash</secondary>
</indexterm>

<indexterm id="INDEX-2289" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>pathnames</primary>
<secondary>module installed on Windows system</secondary>
</indexterm>

<indexterm id="INDEX-2290" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>capitalization</primary>
<secondary>module
names</secondary>
</indexterm>

<indexterm id="INDEX-2291" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>names</primary>
<secondary>modules</secondary>
<tertiary>capitalization
in</tertiary>
</indexterm>

<indexterm id="INDEX-2292" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>use declaration</primary>
<secondary>modules</secondary>
</indexterm>

<indexterm id="INDEX-2293" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>require function</primary>
</indexterm>

<indexterm id="INDEX-2294" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>pragmas</primary>
<secondary>modules and</secondary>
</indexterm>

<indexterm id="INDEX-2295" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>no declaration</primary>
</indexterm>

<indexterm id="INDEX-2296" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>.pm files</primary>
<secondary>loading associated files with</secondary>
</indexterm>

<indexterm id="INDEX-2297" file="ch11_01.htm" sect="11.1. Using Modules">
<primary>POSIX module</primary>
<secondary>getting exported functions and variables with</secondary>
</indexterm>

<indexterm id="INDEX-2298" file="ch11_02.htm" sect="11.2. Creating Modules">
<primary>modules</primary>
<secondary>creating</secondary>
</indexterm>

<indexterm id="INDEX-2299" file="ch11_02.htm" sect="11.2. Creating Modules">
<primary>object-oriented modules</primary>
<secondary>method calls, allowing</secondary>
</indexterm>

<indexterm id="INDEX-2300" file="ch11_02.htm" sect="11.2. Creating Modules">
<primary>exporting symbols</primary>
</indexterm>

<indexterm id="INDEX-2301" file="ch11_02.htm" sect="11.2. Creating Modules">
<primary>symbols</primary>
<secondary>exporting from modules</secondary>
</indexterm>

<indexterm id="INDEX-2302" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>Exporter module</primary>
<secondary>module privacy and</secondary>
</indexterm>

<indexterm id="INDEX-2303" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>modules</primary>
<secondary>creating</secondary>
<tertiary>privacy and the Exporter</tertiary>
</indexterm>

<indexterm id="INDEX-2304" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>privacy</primary>
<secondary>Perl modules and</secondary>
</indexterm>

<indexterm id="INDEX-2305" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>namespace</primary>
<secondary>modules and</secondary>
</indexterm>

<indexterm id="INDEX-2306" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>contract between module and user</primary>
</indexterm>

<indexterm id="INDEX-2307" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>variables</primary>
<secondary>modules, exporting to programs</secondary>
</indexterm>

<indexterm id="INDEX-2308" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>functions</primary>
<secondary>modules, exporting to programs</secondary>
</indexterm>

<indexterm id="INDEX-2309" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>polluting your namespace</primary>
</indexterm>

<indexterm id="INDEX-2310" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>importing symbols</primary>
<seealso>Exporter module; exporting symbols</seealso>
</indexterm>

<indexterm id="INDEX-2311" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>exporting symbols</primary>
</indexterm>

<indexterm id="INDEX-2312" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>inheritance</primary>
<secondary>modules, from Exporter class</secondary>
</indexterm>

<indexterm id="INDEX-2313" file="ch11_02.htm" sect="11.2.1. Module Privacy and the Exporter">
<primary>symbols</primary>
<secondary>leaving off export list or deleting from import list</secondary>
</indexterm>

<indexterm id="INDEX-2314" file="ch11_02.htm" sect="11.2.1.1. Exporting without using Exporter's import method">
<primary>exporting symbols</primary>
<secondary>without using import method from Exporter</secondary>
</indexterm>

<indexterm id="INDEX-2315" file="ch11_02.htm" sect="11.2.1.1. Exporting without using Exporter's import method">
<primary>import function</primary>
</indexterm>

<indexterm id="INDEX-2316" file="ch11_02.htm" sect="11.2.1.1. Exporting without using Exporter's import method">
<primary>export_to_level method</primary>
</indexterm>

<indexterm id="INDEX-2317" file="ch11_02.htm" sect="11.2.1.2. Version checking">
<primary>modules</primary>
<secondary>creating</secondary>
<tertiary>version checking</tertiary>
</indexterm>

<indexterm id="INDEX-2318" file="ch11_02.htm" sect="11.2.1.2. Version checking">
<primary>version</primary>
<secondary>module, checking for</secondary>
</indexterm>

<indexterm id="INDEX-2319" file="ch11_02.htm" sect="11.2.1.3. Managing unknown symbols">
<primary>modules</primary>
<secondary>creating</secondary>
<tertiary>symbol exportation, preventing</tertiary>
</indexterm>

<indexterm id="INDEX-2320" file="ch11_02.htm" sect="11.2.1.3. Managing unknown symbols">
<primary>symbols, exporting</primary>
<secondary>prevention of</secondary>
</indexterm>

<indexterm id="INDEX-2321" file="ch11_02.htm" sect="11.2.1.3. Managing unknown symbols">
<primary>export_fail method</primary>
</indexterm>

<indexterm id="INDEX-2322" file="ch11_02.htm" sect="11.2.1.3. Managing unknown symbols">
<primary>errors</primary>
<secondary>failed symbol exports</secondary>
</indexterm>

<indexterm id="INDEX-2323" file="ch11_02.htm" sect="11.2.1.4. Tag-handling utility functions">
<primary>tags, symbol sets, Exporter</primary>
</indexterm>

<indexterm id="INDEX-2328" file="ch11_03.htm" sect="11.3. Overriding Built-in Functions">
<primary>built-in functions</primary>
<secondary>overriding</secondary>
</indexterm>

<indexterm id="INDEX-2329" file="ch11_03.htm" sect="11.3. Overriding Built-in Functions">
<primary>modules</primary>
<secondary>built-in functions, overriding</secondary>
</indexterm>

<indexterm id="INDEX-2330" file="ch11_03.htm" sect="11.3. Overriding Built-in Functions">
<primary>overriding functions</primary>
</indexterm>

<indexterm id="INDEX-2331" file="ch11_03.htm" sect="11.3. Overriding Built-in Functions">
<primary>functions</primary>
<secondary>overriding</secondary>
</indexterm>

<indexterm id="INDEX-2332" file="ch11_03.htm" sect="11.3. Overriding Built-in Functions">
<primary>subs pragma</primary>
<secondary>overriding built-in functions with</secondary>
</indexterm>

<indexterm id="INDEX-2333" file="ch11_03.htm" sect="11.3. Overriding Built-in Functions">
<primary>CORE pseudopackage</primary>
</indexterm>

<indexterm id="INDEX-2334" file="ch11_03.htm" sect="11.3. Overriding Built-in Functions">
<primary>CORE::GLOBAL pseudopackage</primary>
</indexterm>

<indexterm id="INDEX-2336" file="ch12_01.htm" sect="12. Objects">
<primary>objects</primary>
</indexterm>

<indexterm id="INDEX-2337" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>object-oriented programming</primary>
</indexterm>

<indexterm id="INDEX-2338" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>OOP</primary>
<see>object-oriented programming</see>
</indexterm>

<indexterm id="INDEX-2339" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>data structures</primary>
<secondary>objects</secondary>
<see>objects</see>
</indexterm>

<indexterm id="INDEX-2340" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>instances</primary>
</indexterm>

<indexterm id="INDEX-2341" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>classes</primary>
</indexterm>

<indexterm id="INDEX-2342" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>methods</primary>
</indexterm>

<indexterm id="INDEX-2343" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>instance methods</primary>
</indexterm>

<indexterm id="INDEX-2344" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>class methods</primary>
</indexterm>

<indexterm id="INDEX-2345" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>constructors</primary>
</indexterm>

<indexterm id="INDEX-2346" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>inheritance</primary>
</indexterm>

<indexterm id="INDEX-2347" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>base classes</primary>
</indexterm>

<indexterm id="INDEX-2348" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>parent classes</primary>
</indexterm>

<indexterm id="INDEX-2349" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>subclasses</primary>
</indexterm>

<indexterm id="INDEX-2350" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>superclasses</primary>
</indexterm>

<indexterm id="INDEX-2351" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>derived classes</primary>
</indexterm>

<indexterm id="INDEX-2352" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>polymorphism</primary>
</indexterm>

<indexterm id="INDEX-2353" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>encapsulation</primary>
</indexterm>

<indexterm id="INDEX-2354" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>privacy</primary>
</indexterm>

<indexterm id="INDEX-2355" file="ch12_01.htm" sect="12.1. Brief Refresher on Object-Oriented Lingo">
<primary>interfaces</primary>
</indexterm>

<indexterm id="INDEX-2356" file="ch12_02.htm" sect="12.2. Perl's Object System">
<primary>objects</primary>
<secondary>Perl object system</secondary>
</indexterm>

<indexterm id="INDEX-2357" file="ch12_02.htm" sect="12.2. Perl's Object System">
<primary>references</primary>
<secondary sortas="objects">for objects</secondary>
</indexterm>

<indexterm id="INDEX-2358" file="ch12_02.htm" sect="12.2. Perl's Object System">
<primary>referents</primary>
<secondary>objects as</secondary>
</indexterm>

<indexterm id="INDEX-2359" file="ch12_02.htm" sect="12.2. Perl's Object System">
<primary>classes</primary>
<secondary>packages as</secondary>
</indexterm>

<indexterm id="INDEX-2360" file="ch12_02.htm" sect="12.2. Perl's Object System">
<primary>methods</primary>
<secondary>subroutines as</secondary>
</indexterm>

<indexterm id="INDEX-2361" file="ch12_02.htm" sect="12.2. Perl's Object System">
<primary>subroutines</primary>
</indexterm>

<indexterm id="INDEX-2362" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>methods</primary>
<secondary>invoking</secondary>
</indexterm>

<indexterm id="INDEX-2363" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>executing</primary>
<secondary>methods</secondary>
</indexterm>

<indexterm id="INDEX-2364" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>abstraction</primary>
<secondary sortas="object-oriented programming">in object-oriented programming</secondary>
</indexterm>

<indexterm id="INDEX-2365" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>object-oriented programming</primary>
<secondary>abstraction in</secondary>
</indexterm>

<indexterm id="INDEX-2366" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>indirection</primary>
<secondary>between class use and implementation</secondary>
</indexterm>

<indexterm id="INDEX-2367" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>invocant</primary>
</indexterm>

<indexterm id="INDEX-2368" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>class methods</primary>
<secondary>package names as invocants for</secondary>
</indexterm>

<indexterm id="INDEX-2369" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>instance methods</primary>
<secondary>object references as invocants for</secondary>
</indexterm>

<indexterm id="INDEX-2370" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>references</primary>
<secondary sortas="objects">to objects</secondary>
<tertiary>invocants for instance methods</tertiary>
</indexterm>

<indexterm id="INDEX-2371" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>methods</primary>
<secondary>invoking</secondary>
<tertiary>explicitly or implicitly</tertiary>
</indexterm>

<indexterm id="INDEX-2372" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>explicit method invocations</primary>
</indexterm>

<indexterm id="INDEX-2373" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>implicit method invocation</primary>
</indexterm>

<indexterm id="INDEX-2374" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>methods</primary>
<secondary>subroutines vs.</secondary>
</indexterm>

<indexterm id="INDEX-2375" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>subroutines</primary>
<secondary>methods vs.</secondary>
</indexterm>

<indexterm id="INDEX-2376" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>packages</primary>
<secondary>methods and subroutines, resolving for</secondary>
</indexterm>

<indexterm id="INDEX-2377" file="ch12_03.htm" sect="12.3. Method Invocation">
<primary>typeglobs</primary>
<secondary>subroutines, resolving to</secondary>
</indexterm>

<indexterm id="INDEX-2378" file="ch12_03.htm" sect="12.3.1. Method Invocation Using the Arrow Operator">
<primary>methods</primary>
<secondary>invoking</secondary>
<tertiary>using arrow operator</tertiary>
</indexterm>

<indexterm id="INDEX-2379" file="ch12_03.htm" sect="12.3.1. Method Invocation Using the Arrow Operator">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="@hyphenright">-&gt; (arrow) operator</secondary>
<tertiary>method invocation with</tertiary>
</indexterm>

<indexterm id="INDEX-2380" file="ch12_03.htm" sect="12.3.1. Method Invocation Using the Arrow Operator">
<primary>arrow (-&gt;</primary>
<secondary>) operator</secondary>
</indexterm>

<indexterm id="INDEX-2381" file="ch12_03.htm" sect="12.3.2. Method Invocation Using Indirect Objects">
<primary>methods</primary>
<secondary>invoking</secondary>
<tertiary sortas="indirect objects">using indirect objects</tertiary>
</indexterm>

<indexterm id="INDEX-2382" file="ch12_03.htm" sect="12.3.2. Method Invocation Using Indirect Objects">
<primary>indirect object syntax</primary>
</indexterm>

<indexterm id="INDEX-2383" file="ch12_03.htm" sect="12.3.2. Method Invocation Using Indirect Objects">
<primary>indirect object slot</primary>
</indexterm>

<indexterm id="INDEX-2384" file="ch12_03.htm" sect="12.3.3. Syntactic Snafus with Indirect Objects">
<primary>indirect object syntax</primary>
<secondary>ambiguities in</secondary>
</indexterm>

<indexterm id="INDEX-2385" file="ch12_03.htm" sect="12.3.3. Syntactic Snafus with Indirect Objects">
<primary>precedence</primary>
<secondary>logical operators</secondary>
</indexterm>

<indexterm id="INDEX-2386" file="ch12_03.htm" sect="12.3.3. Syntactic Snafus with Indirect Objects">
<primary>logical operators</primary>
<secondary>precedence of</secondary>
</indexterm>

<indexterm id="INDEX-2387" file="ch12_03.htm" sect="12.3.3. Syntactic Snafus with Indirect Objects">
<primary sortas="@ampersand">&amp;</primary>
<secondary sortas="@ampersandampersand">&amp;&amp; (logical and) operator</secondary>
</indexterm>

<indexterm id="INDEX-2388" file="ch12_03.htm" sect="12.3.3. Syntactic Snafus with Indirect Objects">
<primary sortas="and ampersandampersand">and (&amp;&amp;) logical operator</primary>
<secondary>precedence, and operator vs. &amp;&amp;</secondary>
</indexterm>

<indexterm id="INDEX-2389" file="ch12_03.htm" sect="12.3.3. Syntactic Snafus with Indirect Objects">
<primary>or operator</primary>
<secondary>precedence, or vs.  ||</secondary>
</indexterm>

<indexterm id="INDEX-2390" file="ch12_03.htm" sect="12.3.3. Syntactic Snafus with Indirect Objects">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="@ampersandampersand">&amp;&amp; (logical and) operator</secondary>
</indexterm>

<indexterm id="INDEX-2391" file="ch12_03.htm" sect="12.3.3. Syntactic Snafus with Indirect Objects">
<primary>| (vertical bar)</primary>
<secondary sortas="@verticalvertical">|| (logical or) operator</secondary>
</indexterm>

<indexterm id="INDEX-2392" file="ch12_03.htm" sect="12.3.4. Package-Quoted Classes">
<primary>quoting</primary>
<secondary>packages</secondary>
</indexterm>

<indexterm id="INDEX-2393" file="ch12_03.htm" sect="12.3.4. Package-Quoted Classes">
<primary>packages</primary>
<secondary>quoting</secondary>
</indexterm>

<indexterm id="INDEX-2394" file="ch12_03.htm" sect="12.3.4. Package-Quoted Classes">
<primary>classes</primary>
<secondary>quoting packages for</secondary>
</indexterm>

<indexterm id="INDEX-2395" file="ch12_03.htm" sect="12.3.4. Package-Quoted Classes">
<primary>subroutines</primary>
<secondary>classes with same names</secondary>
</indexterm>

<indexterm id="INDEX-2396" file="ch12_03.htm" sect="12.3.4. Package-Quoted Classes">
<primary>names</primary>
<secondary>classes, distinguishing from subroutines</secondary>
</indexterm>

<indexterm id="INDEX-2401" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>constructors</primary>
</indexterm>

<indexterm id="INDEX-2402" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>objects</primary>
<secondary>constructors</secondary>
</indexterm>

<indexterm id="INDEX-2403" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>references</primary>
<secondary>objects as</secondary>
</indexterm>

<indexterm id="INDEX-2404" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>bless function</primary>
</indexterm>

<indexterm id="INDEX-2405" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>packages</primary>
<secondary>bless function arguments</secondary>
</indexterm>

<indexterm id="INDEX-2406" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>anonymous</primary>
<secondary>hashes</secondary>
<tertiary>data structue for objects</tertiary>
</indexterm>

<indexterm id="INDEX-2407" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>data structures</primary>
<secondary sortas="objects">for objects</secondary>
</indexterm>

<indexterm id="INDEX-2408" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>hashes</primary>
<secondary>anonymous</secondary>
<tertiary>references to</tertiary>
</indexterm>

<indexterm id="INDEX-2409" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>references</primary>
<secondary>blessing</secondary>
</indexterm>

<indexterm id="INDEX-2410" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>ref function</primary>
</indexterm>

<indexterm id="INDEX-2411" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>reftype function</primary>
</indexterm>

<indexterm id="INDEX-2412" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>classes</primary>
<secondary>objects, giving to</secondary>
</indexterm>

<indexterm id="INDEX-2413" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>constructors</primary>
<secondary>bless function and</secondary>
</indexterm>

<indexterm id="INDEX-2414" file="ch12_04.htm" sect="12.4. Object Construction">
<primary>bless function</primary>
<secondary>constructors, using with</secondary>
</indexterm>

<indexterm id="INDEX-2415" file="ch12_04.htm" sect="12.4.1. Inheritable Constructors">
<primary>objects</primary>
<secondary>constructors</secondary>
<tertiary>inheritable</tertiary>
</indexterm>

<indexterm id="INDEX-2416" file="ch12_04.htm" sect="12.4.1. Inheritable Constructors">
<primary>constructors</primary>
<secondary>inheritable</secondary>
</indexterm>

<indexterm id="INDEX-2417" file="ch12_04.htm" sect="12.4.1. Inheritable Constructors">
<primary>inheritance</primary>
<secondary>constructors</secondary>
</indexterm>

<indexterm id="INDEX-2418" file="ch12_04.htm" sect="12.4.1. Inheritable Constructors">
<primary>class methods</primary>
<secondary>constructors as</secondary>
</indexterm>

<indexterm id="INDEX-2419" file="ch12_04.htm" sect="12.4.1. Inheritable Constructors">
<primary>methods</primary>
<secondary>invoking</secondary>
<tertiary>subroutine calls vs.</tertiary>
</indexterm>

<indexterm id="INDEX-2420" file="ch12_04.htm" sect="12.4.1. Inheritable Constructors">
<primary>subroutines</primary>
<secondary>calling, method invocations vs.</secondary>
</indexterm>

<indexterm id="INDEX-2421" file="ch12_04.htm" sect="12.4.1. Inheritable Constructors">
<primary>constructors</primary>
<secondary>class names or objects, working with</secondary>
</indexterm>

<indexterm id="INDEX-2422" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>objects</primary>
<secondary>constructors</secondary>
<tertiary>initializers</tertiary>
</indexterm>

<indexterm id="INDEX-2423" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>constructors</primary>
<secondary>initializers</secondary>
</indexterm>

<indexterm id="INDEX-2424" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>initializing</primary>
<secondary>objects</secondary>
</indexterm>

<indexterm id="INDEX-2425" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>properties</primary>
</indexterm>

<indexterm id="INDEX-2426" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>attributes</primary>
</indexterm>

<indexterm id="INDEX-2427" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>accessor methods</primary>
</indexterm>

<indexterm id="INDEX-2428" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>member data</primary>
</indexterm>

<indexterm id="INDEX-2429" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>instance variables</primary>
</indexterm>

<indexterm id="INDEX-2430" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>constructors</primary>
<secondary>naming</secondary>
</indexterm>

<indexterm id="INDEX-2431" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>names</primary>
<secondary>constructors</secondary>
</indexterm>

<indexterm id="INDEX-2432" file="ch12_04.htm" sect="12.4.2. Initializers">
<primary>base classes</primary>
<secondary>constructors and</secondary>
</indexterm>

<indexterm id="INDEX-2435" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>class inheritance</primary>
</indexterm>

<indexterm id="INDEX-2436" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>inheritance</primary>
<secondary>class</secondary>
</indexterm>

<indexterm id="INDEX-2437" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>classes</primary>
<secondary>inheritance among</secondary>
</indexterm>

<indexterm id="INDEX-2438" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary sortas="ISA array">@ISA array</primary>
</indexterm>

<indexterm id="INDEX-2439" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>empty subclass test</primary>
</indexterm>

<indexterm id="INDEX-2440" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>inheritance</primary>
<secondary>class</secondary>
<tertiary>single or multiple</tertiary>
</indexterm>

<indexterm id="INDEX-2441" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>single inheritance</primary>
</indexterm>

<indexterm id="INDEX-2442" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>multiple inheritance</primary>
</indexterm>

<indexterm id="INDEX-2443" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>subroutines</primary>
<secondary>method resolution, steps for</secondary>
</indexterm>

<indexterm id="INDEX-2444" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>methods</primary>
<secondary>searching for</secondary>
<tertiary>class inheritance</tertiary>
</indexterm>

<indexterm id="INDEX-2445" file="ch12_05.htm" sect="12.5. Class Inheritance">
<primary>debugging</primary>
<secondary>Perl, using C compiler -DDEBUGGING option</secondary>
</indexterm>

<indexterm id="INDEX-2446" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary sortas="ISA array">@ISA array</primary>
<secondary>inheritance through</secondary>
</indexterm>

<indexterm id="INDEX-2447" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary>objects</primary>
<secondary>inheritance, through @ISA array</secondary>
</indexterm>

<indexterm id="INDEX-2448" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary>inheritance</primary>
<secondary sortas="ISA array">through @ISA array</secondary>
</indexterm>

<indexterm id="INDEX-2449" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary>packages</primary>
<secondary sortas="ISA">in @ISA array, inheritance through</secondary>
</indexterm>

<indexterm id="INDEX-2450" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary>methods</primary>
<secondary>searching for</secondary>
<tertiary>inheritance through @ISA array</tertiary>
</indexterm>

<indexterm id="INDEX-2451" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary>use base declarations</primary>
</indexterm>

<indexterm id="INDEX-2452" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary>classes</primary>
<secondary sortas="ISA">@ISA array, including with base pragma</secondary>
</indexterm>

<indexterm id="INDEX-2453" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary>use fields declarations</primary>
</indexterm>

<indexterm id="INDEX-2454" file="ch12_05.htm" sect="12.5.1. Inheritance Through @ISA">
<primary>modules</primary>
<secondary>class system and</secondary>
</indexterm>

<indexterm id="INDEX-2455" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>classes</primary>
<secondary>base</secondary>
<see>base classes</see>
</indexterm>

<indexterm id="INDEX-2456" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>overriding</primary>
<secondary>base class methods</secondary>
</indexterm>

<indexterm id="INDEX-2457" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>base classes</primary>
<secondary>overriding methods of</secondary>
</indexterm>

<indexterm id="INDEX-2458" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>methods</primary>
<secondary>overriding</secondary>
</indexterm>

<indexterm id="INDEX-2459" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>SUPER pseudoclass</primary>
</indexterm>

<indexterm id="INDEX-2460" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>classes</primary>
<secondary>inheritance among</secondary>
<tertiary>overridden methods, accessing</tertiary>
</indexterm>

<indexterm id="INDEX-2461" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>accessing</primary>
<secondary>overridden methods</secondary>
</indexterm>

<indexterm id="INDEX-2462" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>derived classes</primary>
<secondary>methods as wrappers around base class methods</secondary>
</indexterm>

<indexterm id="INDEX-2463" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>SUPER pseudoclass</primary>
</indexterm>

<indexterm id="INDEX-2464" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>CORE pseudopackage</primary>
</indexterm>

<indexterm id="INDEX-2465" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>built-in methods</primary>
<secondary>overridden, calling via CORE pseudopackage</secondary>
</indexterm>

<indexterm id="INDEX-2466" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>mulitple inheritance, SUPER pseudopackage, working with</primary>
</indexterm>

<indexterm id="INDEX-2467" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>Class::Multimethods module</primary>
</indexterm>

<indexterm id="INDEX-2468" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>methods</primary>
<secondary>adding to an existing class</secondary>
</indexterm>

<indexterm id="INDEX-2469" file="ch12_05.htm" sect="12.5.2. Accessing Overridden Methods">
<primary>packages</primary>
<secondary>adding methods to existing</secondary>
</indexterm>

<indexterm id="INDEX-2470" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>classes</primary>
<secondary>inheritance among</secondary>
<tertiary>UNIVERSAL class and</tertiary>
</indexterm>

<indexterm id="INDEX-2471" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>UNIVERSAL class</primary>
</indexterm>

<indexterm id="INDEX-2472" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>methods</primary>
<secondary sortas="universal">in UNIVERSAL class</secondary>
</indexterm>

<indexterm id="INDEX-2473" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>isa method</primary>
</indexterm>

<indexterm id="INDEX-2474" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>can method</primary>
</indexterm>

<indexterm id="INDEX-2475" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>multiple inheritance</primary>
<secondary>methods, invoking all overridden base class</secondary>
</indexterm>

<indexterm id="INDEX-2476" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>overridden methods, base class, invoking all</primary>
</indexterm>

<indexterm id="INDEX-2477" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>base class</primary>
<secondary>overridden methods, invoking all</secondary>
</indexterm>

<indexterm id="INDEX-2478" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>VERSION method</primary>
</indexterm>

<indexterm id="INDEX-2479" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>classes</primary>
<secondary>version number, returning</secondary>
</indexterm>

<indexterm id="INDEX-2480" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>UNIVERSAL class</primary>
<secondary>methods, adding to</secondary>
</indexterm>

<indexterm id="INDEX-2481" file="ch12_05.htm" sect="12.5.3. UNIVERSAL: The Ultimate Ancestor Class">
<primary>methods</primary>
<secondary>UINVERSAL class</secondary>
<tertiary>adding to</tertiary>
</indexterm>

<indexterm id="INDEX-2484" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>AUTOLOAD subroutine</primary>
</indexterm>

<indexterm id="INDEX-2485" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>AUTOLOAD method</primary>
</indexterm>

<indexterm id="INDEX-2486" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>methods </primary>
<secondary>autoloading</secondary>
</indexterm>

<indexterm id="INDEX-2487" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>subroutines</primary>
<secondary>autoloading</secondary>
</indexterm>

<indexterm id="INDEX-2488" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>functions</primary>
<secondary>autoloading</secondary>
</indexterm>

<indexterm id="INDEX-2489" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>classes</primary>
<secondary>inheritance among</secondary>
<tertiary>method autoloading</tertiary>
</indexterm>

<indexterm id="INDEX-2490" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>multiple inheritance</primary>
<secondary>AUTOLOAD subroutine and</secondary>
</indexterm>

<indexterm id="INDEX-2491" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>predeclaring subroutines</primary>
</indexterm>

<indexterm id="INDEX-2492" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>subroutines</primary>
<secondary>declaring in package for AUTOLOAD management</secondary>
</indexterm>

<indexterm id="INDEX-2493" file="ch12_05.htm" sect="12.5.4. Method Autoloading">
<primary>use subs declarations</primary>
</indexterm>

<indexterm id="INDEX-2494" file="ch12_05.htm" sect="12.5.5. Private Methods">
<primary>classes</primary>
<secondary>inheritance among</secondary>
<tertiary>private methods, avoiding with</tertiary>
</indexterm>

<indexterm id="INDEX-2495" file="ch12_05.htm" sect="12.5.5. Private Methods">
<primary>private methods, ignoring inheritance with</primary>
</indexterm>

<indexterm id="INDEX-2496" file="ch12_05.htm" sect="12.5.5. Private Methods">
<primary>methods</primary>
<secondary>private methods, ignoring inheritance with</secondary>
</indexterm>

<indexterm id="INDEX-2497" file="ch12_05.htm" sect="12.5.5. Private Methods">
<primary>lexical variables</primary>
<secondary>file-scoped, storing anonymous subroutine in</secondary>
</indexterm>

<indexterm id="INDEX-2498" file="ch12_05.htm" sect="12.5.5. Private Methods">
<primary>modules</primary>
<secondary>classes, storing in for privacy</secondary>
</indexterm>

<indexterm id="INDEX-2502" file="ch12_06.htm" sect="12.6. Instance Destructors">
<primary>objects</primary>
<secondary>instance destructors</secondary>
</indexterm>

<indexterm id="INDEX-2503" file="ch12_06.htm" sect="12.6. Instance Destructors">
<primary>destructors</primary>
</indexterm>

<indexterm id="INDEX-2504" file="ch12_06.htm" sect="12.6. Instance Destructors">
<primary>memory</primary>
<secondary>management, destructors and</secondary>
</indexterm>

<indexterm id="INDEX-2505" file="ch12_06.htm" sect="12.6. Instance Destructors">
<primary>nested</primary>
<secondary>destruction</secondary>
</indexterm>

<indexterm id="INDEX-2506" file="ch12_06.htm" sect="12.6. Instance Destructors">
<primary>objects</primary>
<secondary>storing within other objects vs. inheritance</secondary>
</indexterm>

<indexterm id="INDEX-2507" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>destructors</primary>
<secondary>garbage collection with</secondary>
</indexterm>

<indexterm id="INDEX-2508" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>objects</primary>
<secondary>instance destructors</secondary>
<tertiary>garbage collection with</tertiary>
</indexterm>

<indexterm id="INDEX-2509" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>garbage collection</primary>
<secondary sortas="destroy">with DESTROY methods</secondary>
</indexterm>

<indexterm id="INDEX-2510" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>references</primary>
<secondary>weakening or breaking</secondary>
</indexterm>

<indexterm id="INDEX-2511" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>WeakRef module</primary>
</indexterm>

<indexterm id="INDEX-2512" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>container classes holding pointers to self-referential data structures</primary>
</indexterm>

<indexterm id="INDEX-2513" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>data structures</primary>
<secondary>self-referential, container classes holding pointers to</secondary>
</indexterm>

<indexterm id="INDEX-2514" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>circular references</primary>
<secondary>breaking</secondary>
</indexterm>

<indexterm id="INDEX-2515" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>PERL_DESTRUCT_LEVEL variable</primary>
</indexterm>

<indexterm id="INDEX-2516" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>environment variables</primary>
<secondary>PERL_DESTRUCT_LEVEL</secondary>
</indexterm>

<indexterm id="INDEX-2517" file="ch12_06.htm" sect="12.6.1. Garbage Collection with DESTROY Methods">
<primary>interpreters</primary>
<secondary>object destruction at shutdown</secondary>
</indexterm>

<indexterm id="INDEX-2518" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>objects</primary>
<secondary>instance data, managing</secondary>
</indexterm>

<indexterm id="INDEX-2519" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>instance data</primary>
<secondary>managing</secondary>
</indexterm>

<indexterm id="INDEX-2520" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>methods</primary>
<secondary>Perl classes inheritance of</secondary>
</indexterm>

<indexterm id="INDEX-2521" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>hashes</primary>
<secondary>anonymous</secondary>
<tertiary>data structure for objects</tertiary>
</indexterm>

<indexterm id="INDEX-2522" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>accessor methods</primary>
<secondary>creating</secondary>
</indexterm>

<indexterm id="INDEX-2523" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>instance variables</primary>
<secondary>separate functions, writing for each</secondary>
</indexterm>

<indexterm id="INDEX-2524" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>attributes</primary>
<secondary>subclass, overriding superclass ancestor</secondary>
</indexterm>

<indexterm id="INDEX-2525" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>subclasses</primary>
<secondary>attributes, overriding superclass ancestors</secondary>
</indexterm>

<indexterm id="INDEX-2526" file="ch12_07.htm" sect="12.7. Managing Instance Data">
<primary>Struct::Class module</primary>
</indexterm>

<indexterm id="INDEX-2527" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>objects</primary>
<secondary>instance data, managing</secondary>
</indexterm>

<indexterm id="INDEX-2528" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>use fields pragma</primary>
<secondary>field declarations with</secondary>
</indexterm>

<indexterm id="INDEX-2529" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>field declarations with use fields pragma</primary>
</indexterm>

<indexterm id="INDEX-2530" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>declarations</primary>
<secondary>fields with use fields pragma</secondary>
</indexterm>

<indexterm id="INDEX-2531" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>arrays</primary>
<secondary>anonymous, objects implemented as</secondary>
</indexterm>

<indexterm id="INDEX-2532" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>arrays</primary>
<secondary>anonymous, objects implemented as</secondary>
<tertiary>use fields pragma, overcoming problems with</tertiary>
</indexterm>

<indexterm id="INDEX-2533" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>pseudohashes</primary>
<secondary>use fields pragma, using with</secondary>
</indexterm>

<indexterm id="INDEX-2534" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>key mapping, pseudohashes</primary>
</indexterm>

<indexterm id="INDEX-2535" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>mapping keys, pseudohashes</primary>
</indexterm>

<indexterm id="INDEX-2536" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>accessor methods</primary>
<secondary>pseudohashes and</secondary>
</indexterm>

<indexterm id="INDEX-2537" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>pseudohashes</primary>
<secondary>implementing classes with</secondary>
<tertiary>inheritance and</tertiary>
</indexterm>

<indexterm id="INDEX-2538" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>inheritance</primary>
<secondary>classes and objects</secondary>
<tertiary>pseudohash implementation and</tertiary>
</indexterm>

<indexterm id="INDEX-2539" file="ch12_07.htm" sect="12.7.1. Field Declarations with use fields">
<primary>use base declarations</primary>
<secondary>pseudohash implementations, requirement with</secondary>
</indexterm>

<indexterm id="INDEX-2543" file="ch12_07.htm" sect="12.7.2. Generating Classes with Class::Struct">
<primary>objects</primary>
<secondary>instance data, managing</secondary>
<tertiary>generating classes with Class::Struct</tertiary>
</indexterm>

<indexterm id="INDEX-2544" file="ch12_07.htm" sect="12.7.2. Generating Classes with Class::Struct">
<primary>instance data</primary>
<secondary>managing</secondary>
<tertiary>generating classes with Class::Struct</tertiary>
</indexterm>

<indexterm id="INDEX-2545" file="ch12_07.htm" sect="12.7.2. Generating Classes with Class::Struct">
<primary>classes</primary>
<secondary>generating with Class::Struct module</secondary>
</indexterm>

<indexterm id="INDEX-2546" file="ch12_07.htm" sect="12.7.2. Generating Classes with Class::Struct">
<primary>structs</primary>
<secondary> emulating</secondary>
</indexterm>

<indexterm id="INDEX-2547" file="ch12_07.htm" sect="12.7.2. Generating Classes with Class::Struct">
<primary>declarations</primary>
<secondary> structs</secondary>
</indexterm>

<indexterm id="INDEX-2548" file="ch12_07.htm" sect="12.7.3. Generating Accessors with Autoloading">
<primary>objects</primary>
<secondary>instance data, managing</secondary>
<tertiary>generating accessors with autoloading</tertiary>
</indexterm>

<indexterm id="INDEX-2549" file="ch12_07.htm" sect="12.7.3. Generating Accessors with Autoloading">
<primary>autoloading</primary>
<secondary>generating accessors with</secondary>
</indexterm>

<indexterm id="INDEX-2550" file="ch12_07.htm" sect="12.7.3. Generating Accessors with Autoloading">
<primary>accessor methods</primary>
<secondary>generating with autoloading</secondary>
</indexterm>

<indexterm id="INDEX-2551" file="ch12_07.htm" sect="12.7.3. Generating Accessors with Autoloading">
<primary>instance data</primary>
<secondary>managing</secondary>
<tertiary>generating accesors with autoloading</tertiary>
</indexterm>

<indexterm id="INDEX-2552" file="ch12_07.htm" sect="12.7.4. Generating Accessors with Closures">
<primary>accessor methods</primary>
<secondary>generating with closures</secondary>
</indexterm>

<indexterm id="INDEX-2553" file="ch12_07.htm" sect="12.7.4. Generating Accessors with Closures">
<primary>closures</primary>
<secondary>generating accessor methods with</secondary>
</indexterm>

<indexterm id="INDEX-2554" file="ch12_07.htm" sect="12.7.4. Generating Accessors with Closures">
<primary>objects</primary>
<secondary>instance data, managing</secondary>
<tertiary>generating accesors with closures</tertiary>
</indexterm>

<indexterm id="INDEX-2555" file="ch12_07.htm" sect="12.7.4. Generating Accessors with Closures">
<primary>instance data</primary>
<secondary>managing</secondary>
<tertiary>generating accessors with closures</tertiary>
</indexterm>

<indexterm id="INDEX-2556" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>objects</primary>
<secondary>instance data, managing</secondary>
<tertiary>private objects, using closures for</tertiary>
</indexterm>

<indexterm id="INDEX-2557" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>closures</primary>
<secondary>private objects, using for</secondary>
</indexterm>

<indexterm id="INDEX-2558" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>private objects, closures, using for</primary>
</indexterm>

<indexterm id="INDEX-2559" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>instance data</primary>
<secondary>managing</secondary>
<tertiary>using closures for private objects</tertiary>
</indexterm>

<indexterm id="INDEX-2560" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>encapsulation</primary>
<secondary>objects in closures</secondary>
</indexterm>

<indexterm id="INDEX-2561" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>access checks, setting in constructor</primary>
</indexterm>

<indexterm id="INDEX-2562" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>constructors</primary>
<secondary>access checks, setting in</secondary>
</indexterm>

<indexterm id="INDEX-2563" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>Tie::SecureHash module</primary>
</indexterm>

<indexterm id="INDEX-2564" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>hashes</primary>
<secondary>restricted, implementing</secondary>
</indexterm>

<indexterm id="INDEX-2565" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>inheritance</primary>
<secondary>restricted access and</secondary>
</indexterm>

<indexterm id="INDEX-2566" file="ch12_07.htm" sect="12.7.5. Using Closures for Private Objects">
<primary>Class::Contract module</primary>
</indexterm>

<indexterm id="INDEX-2571" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>objects</primary>
<secondary>instance data, managing</secondary>
<tertiary>new features, Perl 5.6</tertiary>
</indexterm>

<indexterm id="INDEX-2572" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>instance data</primary>
<secondary>managing</secondary>
<tertiary>new features, Perl 5.6</tertiary>
</indexterm>

<indexterm id="INDEX-2573" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>lvalues</primary>
<secondary>methods, declaring to indicate return of</secondary>
</indexterm>

<indexterm id="INDEX-2574" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>declarations</primary>
<secondary>methods</secondary>
<tertiary>lvalues, indicating return of</tertiary>
</indexterm>

<indexterm id="INDEX-2575" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>methods</primary>
<secondary>declarations</secondary>
<tertiary>lvalues, indicating return of</tertiary>
</indexterm>

<indexterm id="INDEX-2576" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>attributes</primary>
<secondary>lvalue, subroutines</secondary>
</indexterm>

<indexterm id="INDEX-2577" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>subroutines</primary>
<secondary>lvalue attribute</secondary>
</indexterm>

<indexterm id="INDEX-2578" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>threads</primary>
<secondary>locked and method attributes, using</secondary>
</indexterm>

<indexterm id="INDEX-2579" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>locked attribute</primary>
</indexterm>

<indexterm id="INDEX-2580" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>method attribute</primary>
</indexterm>

<indexterm id="INDEX-2581" file="ch12_07.htm" sect="12.7.6. New Tricks">
<primary>attributes</primary>
<secondary>locked and method, using with threads</secondary>
</indexterm>

<indexterm id="INDEX-2584" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>objects</primary>
<secondary>class data, managing</secondary>
</indexterm>

<indexterm id="INDEX-2585" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>classes</primary>
<secondary>data, managing for</secondary>
</indexterm>

<indexterm id="INDEX-2586" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>state</primary>
<secondary>common, sharing by class objects</secondary>
</indexterm>

<indexterm id="INDEX-2587" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>variables</primary>
<secondary>class</secondary>
</indexterm>

<indexterm id="INDEX-2588" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>attributes</primary>
<secondary>class, storing state for</secondary>
</indexterm>

<indexterm id="INDEX-2589" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>package variable, storing class data in</primary>
</indexterm>

<indexterm id="INDEX-2590" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>methods</primary>
<secondary>class data, working like accessors</secondary>
</indexterm>

<indexterm id="INDEX-2591" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>accessor methods</primary>
<secondary>class data methods, working like</secondary>
</indexterm>

<indexterm id="INDEX-2592" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>debugging</primary>
<secondary>debug level, setting through class or instances</secondary>
</indexterm>

<indexterm id="INDEX-2593" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>package variable</primary>
<secondary>wrapping declaration in block scope</secondary>
</indexterm>

<indexterm id="INDEX-2594" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>inheritance</primary>
<secondary>class accessors</secondary>
</indexterm>

<indexterm id="INDEX-2595" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>classes</primary>
<secondary>data, managing for</secondary>
<tertiary>storing references to class data in object itself</tertiary>
</indexterm>

<indexterm id="INDEX-2596" file="ch12_08.htm" sect="12.8. Managing Class Data">
<primary>state</primary>
<secondary>inheritance with class data accessor methods</secondary>
</indexterm>

<indexterm id="INDEX-2600" file="ch13_01.htm" sect="13. Overloading">
<primary>overloading</primary>
</indexterm>

<indexterm id="INDEX-2601" file="ch13_01.htm" sect="13. Overloading">
<primary>operators</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-2602" file="ch13_01.htm" sect="13. Overloading">
<primary>references</primary>
<secondary sortas="overloading">to objects</secondary>
<tertiary>overloading and</tertiary>
</indexterm>

<indexterm id="INDEX-2603" file="ch13_01.htm" sect="13. Overloading">
<primary>Math::BigInt module</primary>
</indexterm>

<indexterm id="INDEX-2604" file="ch13_01.htm" sect="13. Overloading">
<primary>integers</primary>
<secondary>Math::BigInt module</secondary>
</indexterm>

<indexterm id="INDEX-2605" file="ch13_01.htm" sect="13.1. The overload Pragma">
<primary>overloading</primary>
<secondary>overload pragma</secondary>
</indexterm>

<indexterm id="INDEX-2606" file="ch13_01.htm" sect="13.1. The overload Pragma">
<primary>use overload pragma</primary>
</indexterm>

<indexterm id="INDEX-2607" file="ch13_01.htm" sect="13.1. The overload Pragma">
<primary>handlers</primary>
<secondary>overload</secondary>
</indexterm>

<indexterm id="INDEX-2608" file="ch13_01.htm" sect="13.1. The overload Pragma">
<primary>unary operators</primary>
<secondary>class handler, invoking</secondary>
</indexterm>

<indexterm id="INDEX-2609" file="ch13_01.htm" sect="13.1. The overload Pragma">
<primary>binary operators</primary>
<secondary>class handler, invoking</secondary>
</indexterm>

<indexterm id="INDEX-2610" file="ch13_01.htm" sect="13.1. The overload Pragma">
<primary>trinary operator</primary>
<secondary>overloading, not working with</secondary>
</indexterm>

<indexterm id="INDEX-2611" file="ch13_02.htm" sect="13.2. Overload Handlers">
<primary>overload handlers</primary>
</indexterm>

<indexterm id="INDEX-2612" file="ch13_02.htm" sect="13.2. Overload Handlers">
<primary>handlers</primary>
<secondary>overload</secondary>
</indexterm>

<indexterm id="INDEX-2613" file="ch13_02.htm" sect="13.2. Overload Handlers">
<primary>arithmetic</primary>
<secondary>overloaded objects and</secondary>
</indexterm>

<indexterm id="INDEX-2614" file="ch13_02.htm" sect="13.2. Overload Handlers">
<primary>subtraction</primary>
<secondary>overloaded objects</secondary>
</indexterm>

<indexterm id="INDEX-2615" file="ch13_02.htm" sect="13.2. Overload Handlers">
<primary>addition</primary>
<secondary>overloaded plus (+) operator</secondary>
</indexterm>

<indexterm id="INDEX-2616" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
</indexterm>

<indexterm id="INDEX-2617" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>overloading</primary>
<secondary>overloadable operators</secondary>
</indexterm>

<indexterm id="INDEX-2618" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>pseudo-operators, overloading and</primary>
</indexterm>

<indexterm id="INDEX-2619" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>conversion operators</tertiary>
</indexterm>

<indexterm id="INDEX-2620" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary sortas="@double">" (double quotes)</primary>
<secondary>conversion operator, stringification</secondary>
</indexterm>

<indexterm id="INDEX-2621" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>0+ (numification) operator</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>conversion operators</primary>
<secondary>stringification</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>stringification</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>conversion operators</primary>
<secondary>numification (nonnumeric variable converted to number)</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>numbers</primary>
<secondary>converting nonnumeric variables to</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>conversion operators</primary>
<secondary>Boolean context, interpreting object in</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>Boolean context</primary>
<secondary>bool conversion operator</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>handlers</primary>
<secondary>overloading</secondary>
<tertiary>as_string handler</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>arithmetic operators</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>arithmetic operators</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>autogeneration, overloading</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>overloading</primary>
<secondary>autogeneration of</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>overloading, autogeneration of</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary sortas="@dot">. (dot)</primary>
<secondary>(concatenation) operator</secondary>
<tertiary>autogeneration via stringification handler</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>concatenation (.) operator</primary>
<secondary>autogeneration via stringification handler</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>logical operators</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>logical negation operator </tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary sortas="@bang">! (bang)</primary>
<secondary>! (logical negation) operator</secondary>
<tertiary>overloading</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>negation operator (!), overloading</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>short-circuit operators</primary>
<secondary>overloading and</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>bitwise operators</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>bitwise operators</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>assignment operators</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>assignment operators</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>autogeneration, overloading</primary>
<secondary>autoincrement and autodecrement</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>magical autodecrement and autoincrement</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>autodecrement (--) operator</primary>
<secondary>magical</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>autoincrement (++) operator</primary>
<secondary>magical</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>comparision operators</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>comparison operators</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>sorting</primary>
<secondary>overloading and</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>overloading</primary>
<secondary>sorting and</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>mathematical functions, overloading</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>overlaoding</primary>
<secondary>mathematical functions</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>iterative operator, overloading</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>iterative operator</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>dereference operators</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>dereference operators, overloading</primary>
</indexterm>

<indexterm id="INDEX-" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>pseudohashes</primary>
<secondary>simulating with overload function</secondary>
</indexterm>

<indexterm id="INDEX-2622" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>overloading</primary>
<secondary>circular references, avoiding</secondary>
</indexterm>

<indexterm id="INDEX-2623" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>references</primary>
<secondary>circular</secondary>
<tertiary sortas="overloading">in overloading</tertiary>
</indexterm>

<indexterm id="INDEX-2624" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>circular references</primary>
<secondary>overloading, avoiding in</secondary>
</indexterm>

<indexterm id="INDEX-2625" file="ch13_03.htm" sect="13.3. Overloadable Operators">
<primary>operators</primary>
<secondary>overloadable</secondary>
<tertiary>circular references, problems with</tertiary>
</indexterm>

<indexterm id="INDEX-2628" file="ch13_04.htm" sect="13.4. The Copy Constructor (=)">
<primary>overloading</primary>
<secondary>copy constructor (=)</secondary>
</indexterm>

<indexterm id="INDEX-2629" file="ch13_04.htm" sect="13.4. The Copy Constructor (=)">
<primary>copy constructor</primary>
</indexterm>

<indexterm id="INDEX-2630" file="ch13_04.htm" sect="13.4. The Copy Constructor (=)">
<primary>assignment operators</primary>
<secondary>overloading</secondary>
<seealso>copy constructor</seealso>
</indexterm>

<indexterm id="INDEX-2631" file="ch13_04.htm" sect="13.4. The Copy Constructor (=)">
<primary>mutators, copying and</primary>
</indexterm>

<indexterm id="INDEX-2632" file="ch13_05.htm" sect="13.5. When an Overload Handler Is Missing (nomethod and fallback)">
<primary>handlers</primary>
<secondary>overload</secondary>
<tertiary>missing</tertiary>
</indexterm>

<indexterm id="INDEX-2633" file="ch13_05.htm" sect="13.5. When an Overload Handler Is Missing (nomethod and fallback)">
<primary>overloading</primary>
<secondary>nonmethod and fallback</secondary>
</indexterm>

<indexterm id="INDEX-2634" file="ch13_05.htm" sect="13.5. When an Overload Handler Is Missing (nomethod and fallback)">
<primary>nomethod overloading key</primary>
</indexterm>

<indexterm id="INDEX-2635" file="ch13_05.htm" sect="13.5. When an Overload Handler Is Missing (nomethod and fallback)">
<primary>fallback overloading key</primary>
</indexterm>

<indexterm id="INDEX-2636" file="ch13_05.htm" sect="13.5. When an Overload Handler Is Missing (nomethod and fallback)">
<primary>autogeneration, overloading</primary>
<secondary>preventing</secondary>
</indexterm>

<indexterm id="INDEX-2637" file="ch13_06.htm" sect="13.6. Overloading Constants">
<primary>constants</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-2638" file="ch13_06.htm" sect="13.6. Overloading Constants">
<primary>overloading</primary>
<secondary>constants</secondary>
</indexterm>

<indexterm id="INDEX-2639" file="ch13_06.htm" sect="13.6. Overloading Constants">
<primary>import method</primary>
<secondary>overloading constants</secondary>
</indexterm>

<indexterm id="INDEX-2640" file="ch13_06.htm" sect="13.6. Overloading Constants">
<primary>q// (pattern match) operator</primary>
</indexterm>

<indexterm id="INDEX-2641" file="ch13_06.htm" sect="13.6. Overloading Constants">
<primary>concatenation (.) operator</primary>
<secondary>string constants, overloading</secondary>
</indexterm>

<indexterm id="INDEX-2642" file="ch13_07.htm" sect="13.7. Public Overload Functions">
<primary>functions</primary>
<secondary sortas="overloading">for overloading</secondary>
</indexterm>

<indexterm id="INDEX-2643" file="ch13_07.htm" sect="13.7. Public Overload Functions">
<primary>overloading</primary>
<secondary>functions for</secondary>
</indexterm>

<indexterm id="INDEX-2644" file="ch13_07.htm" sect="13.7. Public Overload Functions">
<primary>StrVal (overload::StrVal)</primary>
</indexterm>

<indexterm id="INDEX-2645" file="ch13_07.htm" sect="13.7. Public Overload Functions">
<primary>Overloaded (overload::Overloaded)</primary>
</indexterm>

<indexterm id="INDEX-2646" file="ch13_07.htm" sect="13.7. Public Overload Functions">
<primary>Method (overload::Method)</primary>
</indexterm>

<indexterm id="INDEX-2647" file="ch13_08.htm" sect="13.8. Inheritance and Overloading">
<primary>overloading</primary>
<secondary>inheritance and</secondary>
</indexterm>

<indexterm id="INDEX-2648" file="ch13_08.htm" sect="13.8. Inheritance and Overloading">
<primary>inheritance</primary>
<secondary>overloading and</secondary>
</indexterm>

<indexterm id="INDEX-2649" file="ch13_09.htm" sect="13.9. Run-Time Overloading">
<primary>overloading</primary>
<secondary sortas="run time">at run time</secondary>
</indexterm>

<indexterm id="INDEX-2650" file="ch13_10.htm" sect="13.10. Overloading Diagnostics">
<primary>debugging</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-2651" file="ch13_10.htm" sect="13.10. Overloading Diagnostics">
<primary>overloading</primary>
<secondary>diagnostics</secondary>
</indexterm>

<indexterm id="INDEX-2654" file="ch14_01.htm" sect="14. Tied Variables">
<primary>binding</primary>
<secondary>variables to packages</secondary>
</indexterm>

<indexterm id="INDEX-2655" file="ch14_01.htm" sect="14. Tied Variables">
<primary>tie function</primary>
</indexterm>

<indexterm id="INDEX-2656" file="ch14_01.htm" sect="14. Tied Variables">
<primary>untie function</primary>
</indexterm>

<indexterm id="INDEX-2657" file="ch14_01.htm" sect="14. Tied Variables">
<primary>variables</primary>
<secondary>tying</secondary>
</indexterm>

<indexterm id="INDEX-2658" file="ch14_01.htm" sect="14. Tied Variables">
<primary>tying variables</primary>
</indexterm>

<indexterm id="INDEX-2659" file="ch14_01.htm" sect="14. Tied Variables">
<primary>funny characters</primary>
</indexterm>

<indexterm id="INDEX-2660" file="ch14_01.htm" sect="14. Tied Variables">
<primary>characters</primary>
<secondary>funny characters preceding variable names</secondary>
</indexterm>

<indexterm id="INDEX-2661" file="ch14_01.htm" sect="14. Tied Variables">
<primary>hashes</primary>
<secondary>tying</secondary>
</indexterm>

<indexterm id="INDEX-2662" file="ch14_01.htm" sect="14. Tied Variables">
<primary>databases</primary>
<secondary>tying hash variables to</secondary>
</indexterm>

<indexterm id="INDEX-2663" file="ch14_01.htm" sect="14. Tied Variables">
<primary>dbmopen function</primary>
</indexterm>

<indexterm id="INDEX-2664" file="ch14_01.htm" sect="14. Tied Variables">
<primary>dbmclose function</primary>
</indexterm>

<indexterm id="INDEX-2665" file="ch14_01.htm" sect="14. Tied Variables">
<primary>typeglobs</primary>
<secondary>variables, tying to classes via</secondary>
</indexterm>

<indexterm id="INDEX-2666" file="ch14_01.htm" sect="14. Tied Variables">
<primary>tied function</primary>
</indexterm>

<indexterm id="INDEX-2667" file="ch14_01.htm" sect="14. Tied Variables">
<primary>objects</primary>
<secondary>tied variables, underlying</secondary>
</indexterm>

<indexterm id="INDEX-2668" file="ch14_01.htm" sect="14. Tied Variables">
<primary>bless function</primary>
<secondary>tie vs.</secondary>
</indexterm>

<indexterm id="INDEX-2669" file="ch14_01.htm" sect="14. Tied Variables">
<primary>constructors</primary>
<secondary>tied variable classes</secondary>
</indexterm>

<indexterm id="INDEX-2670" file="ch14_01.htm" sect="14. Tied Variables">
<primary>classes</primary>
<secondary>implementing tie</secondary>
</indexterm>

<indexterm id="INDEX-2671" file="ch14_01.htm" sect="14. Tied Variables">
<primary>tie function</primary>
<secondary>use or require declarations and</secondary>
</indexterm>

<indexterm id="INDEX-2672" file="ch14_01.htm" sect="14. Tied Variables">
<primary>use declarations</primary>
<secondary>tie function and</secondary>
</indexterm>

<indexterm id="INDEX-2673" file="ch14_01.htm" sect="14. Tied Variables">
<primary>require declarations</primary>
<secondary>tie function and</secondary>
</indexterm>

<indexterm id="INDEX-2674" file="ch14_01.htm" sect="14. Tied Variables">
<primary>dbmopen function</primary>
<secondary>use declarations with</secondary>
</indexterm>

<indexterm id="INDEX-2675" file="ch14_01.htm" sect="14. Tied Variables">
<primary>methods</primary>
<secondary>called by tied variables</secondary>
</indexterm>

<indexterm id="INDEX-2676" file="ch14_01.htm" sect="14. Tied Variables">
<primary>names</primary>
<secondary>methods, tied variables</secondary>
</indexterm>

<indexterm id="INDEX-2677" file="ch14_01.htm" sect="14. Tied Variables">
<primary>capitalization</primary>
<secondary>method names, tied variables</secondary>
</indexterm>

<indexterm id="INDEX-2678" file="ch14_01.htm" sect="14.1. Tying Scalars">
<primary>tying variables</primary>
<secondary>scalars</secondary>
</indexterm>

<indexterm id="INDEX-2679" file="ch14_01.htm" sect="14.1. Tying Scalars">
<primary>variables</primary>
<secondary>tying</secondary>
<tertiary>scalars</tertiary>
</indexterm>

<indexterm id="INDEX-2680" file="ch14_01.htm" sect="14.1. Tying Scalars">
<primary>scalars</primary>
<secondary>tying</secondary>
</indexterm>

<indexterm id="INDEX-2681" file="ch14_01.htm" sect="14.1. Tying Scalars">
<primary>untie function</primary>
<secondary>outstanding references, not eliminating</secondary>
</indexterm>

<indexterm id="INDEX-2682" file="ch14_01.htm" sect="14.1. Tying Scalars">
<primary>Tie::Scalar module</primary>
</indexterm>

<indexterm id="INDEX-2683" file="ch14_01.htm" sect="14.1. Tying Scalars">
<primary>Tie::StdScalar module</primary>
</indexterm>

<indexterm id="INDEX-2684" file="ch14_01.htm" sect="14.1.1. Scalar-Tying Methods">
<primary>scalars</primary>
<secondary>tying</secondary>
<tertiary>methods for</tertiary>
</indexterm>

<indexterm id="INDEX-2685" file="ch14_01.htm" sect="14.1.1. Scalar-Tying Methods">
<primary>methods</primary>
<secondary>tying scalars</secondary>
</indexterm>

<indexterm id="INDEX-2686" file="ch14_01.htm" sect="14.1.1. Scalar-Tying Methods">
<primary>classes</primary>
<secondary>scalar-tying</secondary>
</indexterm>

<indexterm id="INDEX-2687" file="ch14_01.htm" sect="14.1.1. Scalar-Tying Methods">
<primary>references</primary>
<secondary sortas="tied scalar variables">to tied scalar variables</secondary>
</indexterm>

<indexterm id="INDEX-2688" file="ch14_01.htm" sect="14.1.1. Scalar-Tying Methods">
<primary>Carp module</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_01.htm" sect="14.1.1. Scalar-Tying Methods">
<primary>flock function</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_01.htm" sect="14.1.1. Scalar-Tying Methods">
<primary>assignment</primary>
<secondary sortas="tied">of tied variables</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_01.htm" sect="14.1.1. Scalar-Tying Methods">
<primary>garbage collection</primary>
<secondary>objects associated with tied variables</secondary>
</indexterm>

<indexterm id="INDEX-2692" file="ch14_01.htm" sect="14.1.2. Magical Counter Variables">
<primary>scalars</primary>
<secondary>tying</secondary>
<tertiary>magical counter variables</tertiary>
</indexterm>

<indexterm id="INDEX-2693" file="ch14_01.htm" sect="14.1.2. Magical Counter Variables">
<primary>magical counter variables</primary>
</indexterm>

<indexterm id="INDEX-2694" file="ch14_01.htm" sect="14.1.2. Magical Counter Variables">
<primary>counters, magical counter variables</primary>
</indexterm>

<indexterm id="INDEX-2695" file="ch14_01.htm" sect="14.1.2. Magical Counter Variables">
<primary>Tie::Counter module</primary>
</indexterm>

<indexterm id="INDEX-2696" file="ch14_01.htm" sect="14.1.3. Magically Banishing $_">
<primary>scalars</primary>
<secondary>tying</secondary>
<tertiary>preventing unlocalized use of $_ variables</tertiary>
</indexterm>

<indexterm id="INDEX-2697" file="ch14_01.htm" sect="14.1.3. Magically Banishing $_">
<primary>no declarations</primary>
</indexterm>

<indexterm id="INDEX-2698" file="ch14_01.htm" sect="14.1.3. Magically Banishing $_">
<primary>Underscore module</primary>
</indexterm>

<indexterm id="INDEX-2702" file="ch14_02.htm" sect="14.2. Tying Arrays">
<primary>arrays</primary>
<secondary>tying</secondary>
</indexterm>

<indexterm id="INDEX-2703" file="ch14_02.htm" sect="14.2. Tying Arrays">
<primary>variables</primary>
<secondary>tying</secondary>
<tertiary>arrays</tertiary>
</indexterm>

<indexterm id="INDEX-2704" file="ch14_02.htm" sect="14.2. Tying Arrays">
<primary>tying variables</primary>
<secondary>arrays</secondary>
</indexterm>

<indexterm id="INDEX-2705" file="ch14_02.htm" sect="14.2. Tying Arrays">
<primary>methods</primary>
<secondary>classes implementing tied arrays</secondary>
</indexterm>

<indexterm id="INDEX-2706" file="ch14_02.htm" sect="14.2. Tying Arrays">
<primary>Tie::Array module</primary>
</indexterm>

<indexterm id="INDEX-2707" file="ch14_02.htm" sect="14.2. Tying Arrays">
<primary>Tie::StdArray module</primary>
</indexterm>

<indexterm id="INDEX-2708" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>methods</primary>
<secondary>array-tying</secondary>
</indexterm>

<indexterm id="INDEX-2709" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>arrays</primary>
<secondary>tying</secondary>
<tertiary>methods for</tertiary>
</indexterm>

<indexterm id="INDEX-2710" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>bounded array, creating</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>references</primary>
<secondary sortas="tied arrays">to tied arrays</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>accessing</primary>
<secondary>elements, tied arrays</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>assignment</primary>
<secondary>tied array element</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>POP method</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>Tie::Array module</primary>
<secondary>SPLICE subroutine, using</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_02.htm" sect="14.2.1. Array-Tying Methods">
<primary>splicing tied arrays</primary>
</indexterm>

<indexterm id="INDEX-2713" file="ch14_02.htm" sect="14.2.2. Notational Convenience">
<primary>arrays</primary>
<secondary>tying</secondary>
<tertiary>notational convenience</tertiary>
</indexterm>

<indexterm id="INDEX-2714" file="ch14_02.htm" sect="14.2.2. Notational Convenience">
<primary>notational convenience, tied arrays</primary>
</indexterm>

<indexterm id="INDEX-2715" file="ch14_02.htm" sect="14.2.2. Notational Convenience">
<primary>functions</primary>
<secondary>interpolating</secondary>
</indexterm>

<indexterm id="INDEX-2716" file="ch14_02.htm" sect="14.2.2. Notational Convenience">
<primary>interpolation</primary>
<secondary>functions</secondary>
</indexterm>

<indexterm id="INDEX-2720" file="ch14_03.htm" sect="14.3. Tying Hashes">
<primary>variables</primary>
<secondary>tying</secondary>
<tertiary>hashes</tertiary>
</indexterm>

<indexterm id="INDEX-2721" file="ch14_03.htm" sect="14.3. Tying Hashes">
<primary>tying variables</primary>
<secondary>hashes</secondary>
</indexterm>

<indexterm id="INDEX-2722" file="ch14_03.htm" sect="14.3. Tying Hashes">
<primary>hashes</primary>
<secondary>tying</secondary>
</indexterm>

<indexterm id="INDEX-2723" file="ch14_03.htm" sect="14.3. Tying Hashes">
<primary>classes</primary>
<secondary>implementing tied hashes</secondary>
</indexterm>

<indexterm id="INDEX-2724" file="ch14_03.htm" sect="14.3. Tying Hashes">
<primary>methods</primary>
<secondary>classes implementing tied hashes</secondary>
</indexterm>

<indexterm id="INDEX-2725" file="ch14_03.htm" sect="14.3. Tying Hashes">
<primary>key/value pairs, hashes</primary>
<secondary>deleting</secondary>
</indexterm>

<indexterm id="INDEX-2726" file="ch14_03.htm" sect="14.3. Tying Hashes">
<primary>Tie::Hash module</primary>
</indexterm>

<indexterm id="INDEX-2727" file="ch14_03.htm" sect="14.3. Tying Hashes">
<primary>Tie::StdHash module</primary>
</indexterm>

<indexterm id="INDEX-2728" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>methods</primary>
<secondary>hash-tying</secondary>
</indexterm>

<indexterm id="INDEX-2729" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>hashes</primary>
<secondary>tying</secondary>
<tertiary>methods for</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>cat command (Unix)</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>clearing hashes</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>exists function</primary>
<secondary>invoking on hash</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>keys function</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>values function</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>each function</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_03.htm" sect="14.3.1. Hash-Tying Methods">
<primary>scalar context</primary>
<secondary>keys function, calling in</secondary>
</indexterm>

<indexterm id="INDEX-2733" file="ch14_04.htm" sect="14.4. Tying Filehandles">
<primary>variables</primary>
<secondary>tying</secondary>
<tertiary>filehandles</tertiary>
</indexterm>

<indexterm id="INDEX-2734" file="ch14_04.htm" sect="14.4. Tying Filehandles">
<primary>filehandles</primary>
<secondary>tying</secondary>
</indexterm>

<indexterm id="INDEX-2735" file="ch14_04.htm" sect="14.4. Tying Filehandles">
<primary>tying variables</primary>
<secondary>filehandles</secondary>
</indexterm>

<indexterm id="INDEX-2736" file="ch14_04.htm" sect="14.4. Tying Filehandles">
<primary>classes</primary>
<secondary>implementing tied filehandles</secondary>
</indexterm>

<indexterm id="INDEX-2737" file="ch14_04.htm" sect="14.4. Tying Filehandles">
<primary>methods</primary>
<secondary>classes implementing tied filehandles</secondary>
</indexterm>

<indexterm id="INDEX-2738" file="ch14_04.htm" sect="14.4. Tying Filehandles">
<primary>syswrite function</primary>
</indexterm>

<indexterm id="INDEX-2739" file="ch14_04.htm" sect="14.4. Tying Filehandles">
<primary>reversing print and printf statements (tied filehandles)</primary>
</indexterm>

<indexterm id="INDEX-2740" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>filehandle-tying</primary>
</indexterm>

<indexterm id="INDEX-2741" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>filehandles</primary>
<secondary>tying</secondary>
<tertiary>methods for</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>typeglobs</primary>
<secondary>autovivification of</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>autovivification</primary>
<secondary>typeglobs</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>print function</primary>
<secondary>implementing to tied filehandle</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>READLINE method</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>angle operator</primary>
<secondary>reading filehandle from</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>GETC method</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>closing tied filehandles</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>SEEK method</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>tell function</primary>
<secondary>using on tied filehandle</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>printf function</primary>
<secondary>using on tied filehandle</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>sprintf function</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>read function</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>sysread function</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>syswrite function</primary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>eof function</primary>
<secondary>tied filehandle, using on</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>file descriptors</primary>
<secondary>returning for tied filehandles</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>fileno</primary>
<see>file descriptors</see>
</indexterm>

<indexterm id="INDEX-2742" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>overloading</primary>
<secondary>stringifying</secondary>
</indexterm>

<indexterm id="INDEX-2743" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>stringifying operator</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-2744" file="ch14_04.htm" sect="14.4.1. Filehandle-Tying Methods">
<primary>debugging</primary>
<secondary>turning on in tied filehandle</secondary>
</indexterm>

<indexterm id="INDEX-2745" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>filehandles</primary>
<secondary>tying</secondary>
<tertiary>creative filehandles</tertiary>
</indexterm>

<indexterm id="INDEX-2746" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>pipes</primary>
<secondary>double-ended, opening with tied filehandle</secondary>
</indexterm>

<indexterm id="INDEX-2747" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>double-ended pipe, opening with tied filehandle</primary>
</indexterm>

<indexterm id="INDEX-2748" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>Tie::DevNull module</primary>
</indexterm>

<indexterm id="INDEX-2749" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>Tie::DevRandom module</primary>
</indexterm>

<indexterm id="INDEX-2750" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>Tie::Tee module</primary>
</indexterm>

<indexterm id="INDEX-2751" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>tee program, Unix</primary>
</indexterm>

<indexterm id="INDEX-2752" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>null device, Unix</primary>
</indexterm>

<indexterm id="INDEX-2753" file="ch14_04.htm" sect="14.4.2. Creative Filehandles">
<primary>random numbers</primary>
<secondary>producing as handles or scalars</secondary>
</indexterm>

<indexterm id="INDEX-2759" file="ch14_05.htm" sect="14.5. A Subtle Untying Trap">
<primary>variables</primary>
<secondary>tying</secondary>
<tertiary>untying trap</tertiary>
</indexterm>

<indexterm id="INDEX-2760" file="ch14_05.htm" sect="14.5. A Subtle Untying Trap">
<primary>untying trap</primary>
</indexterm>

<indexterm id="INDEX-2761" file="ch14_05.htm" sect="14.5. A Subtle Untying Trap">
<primary>tying variables</primary>
<secondary>untying trap</secondary>
</indexterm>

<indexterm id="INDEX-2762" file="ch14_05.htm" sect="14.5. A Subtle Untying Trap">
<primary>untie function</primary>
</indexterm>

<indexterm id="INDEX-2763" file="ch14_05.htm" sect="14.5. A Subtle Untying Trap">
<primary>objects</primary>
<secondary>tied variables, underlying</secondary>
<tertiary>breaking reference to</tertiary>
</indexterm>

<indexterm id="INDEX-2764" file="ch14_05.htm" sect="14.5. A Subtle Untying Trap">
<primary>references</primary>
<secondary sortas="tied variable objects">to tied variable objects, breaking</secondary>
</indexterm>

<indexterm id="INDEX-2765" file="ch14_05.htm" sect="14.5. A Subtle Untying Trap">
<primary>warnings</primary>
<secondary sortas="remaining">about remaining references to tied objects</secondary>
</indexterm>

<indexterm id="INDEX-2766" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>modules</primary>
<secondary>tie modules on CPAN</secondary>
</indexterm>

<indexterm id="INDEX-2767" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>tie modules on CPAN</primary>
</indexterm>

<indexterm id="INDEX-2768" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>tie modules on</secondary>
</indexterm>

<indexterm id="INDEX-2772" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>MLDBM module</primary>
</indexterm>

<indexterm id="INDEX-2773" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>DBM file</primary>
<secondary>storing complex data values in</secondary>
</indexterm>

<indexterm id="INDEX-2774" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>storing complex data values in DBM file</primary>
</indexterm>

<indexterm id="INDEX-2775" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>relational databases</primary>
<secondary>hashes, tying to</secondary>
</indexterm>

<indexterm id="INDEX-2776" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>Tie::DBI module</primary>
</indexterm>

<indexterm id="INDEX-2777" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>Tie::Persistent module</primary>
</indexterm>

<indexterm id="INDEX-2778" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>persistent data structures, providing via tie</primary>
</indexterm>

<indexterm id="INDEX-2779" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>data structures</primary>
<secondary>persistent, providing via tie</secondary>
</indexterm>

<indexterm id="INDEX-2780" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>encapsulation</primary>
<secondary>namespace-based</secondary>
</indexterm>

<indexterm id="INDEX-2781" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>namespace</primary>
<secondary>encapsulation based on</secondary>
</indexterm>

<indexterm id="INDEX-2782" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>Tie::SecureHash module</primary>
</indexterm>

<indexterm id="INDEX-2783" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>syslog, filehandle tying to</primary>
</indexterm>

<indexterm id="INDEX-2784" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>filehandles</primary>
<secondary>syslog tying output to</secondary>
</indexterm>

<indexterm id="INDEX-2785" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>Tie::Syslog module</primary>
</indexterm>

<indexterm id="INDEX-2786" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>bit vector, providing array interface to</primary>
</indexterm>

<indexterm id="INDEX-2787" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>Tie::VecArray module</primary>
</indexterm>

<indexterm id="INDEX-2788" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>variables</primary>
<secondary>watch points, placing on</secondary>
</indexterm>

<indexterm id="INDEX-2789" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>watch points, placing on Perl variables</primary>
</indexterm>

<indexterm id="INDEX-2790" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>Tie::Watch module</primary>
</indexterm>

<indexterm id="INDEX-2791" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>registry (Microsoft Windows), manipulating</primary>
</indexterm>

<indexterm id="INDEX-2792" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>Microsoft Windows</primary>
<secondary>registry, manipulating</secondary>
</indexterm>

<indexterm id="INDEX-2793" file="ch14_06.htm" sect="14.6. Tie Modules on CPAN">
<primary>Win32::TieRegistry module</primary>
</indexterm>

<indexterm id="INDEX-2799" file="ch15_01.htm" sect="15. Unicode">
<primary>Unicode</primary>
</indexterm>

<indexterm id="INDEX-2800" file="ch15_01.htm" sect="15. Unicode">
<primary>character sets</primary>
<secondary>Unicode</secondary>
</indexterm>

<indexterm id="INDEX-2801" file="ch15_01.htm" sect="15. Unicode">
<primary>internationalization</primary>
<secondary>textual data, with Unicode</secondary>
</indexterm>

<indexterm id="INDEX-2802" file="ch15_01.htm" sect="15. Unicode">
<primary>text</primary>
<secondary>Unicode as international medium for</secondary>
</indexterm>

<indexterm id="INDEX-2803" file="ch15_01.htm" sect="15. Unicode">
<primary>bytes</primary>
<secondary>characters vs.</secondary>
</indexterm>

<indexterm id="INDEX-2804" file="ch15_01.htm" sect="15. Unicode">
<primary>characters</primary>
<secondary>bytes vs.</secondary>
</indexterm>

<indexterm id="INDEX-2805" file="ch15_01.htm" sect="15. Unicode">
<primary>data</primary>
<secondary>byte-oriented vs. character-oriented</secondary>
</indexterm>

<indexterm id="INDEX-2806" file="ch15_01.htm" sect="15.1. Building Character">
<primary>octets</primary>
<see>bytes</see>
</indexterm>

<indexterm id="INDEX-2807" file="ch15_01.htm" sect="15.1. Building Character">
<primary>width</primary>
<secondary>character representation</secondary>
</indexterm>

<indexterm id="INDEX-2808" file="ch15_01.htm" sect="15.1. Building Character">
<primary>octal numbers</primary>
<secondary>characters, representing</secondary>
</indexterm>

<indexterm id="INDEX-2809" file="ch15_01.htm" sect="15.1. Building Character">
<primary>UTF-8</primary>
<secondary>variable-length character encoding</secondary>
</indexterm>

<indexterm id="INDEX-2810" file="ch15_01.htm" sect="15.1. Building Character">
<primary>characters</primary>
<secondary>converting between fixed 8-bit and variable-length UTF-8</secondary>
</indexterm>

<indexterm id="INDEX-2811" file="ch15_01.htm" sect="15.1. Building Character">
<primary>variable-length UTF-8 characters</primary>
</indexterm>

<indexterm id="INDEX-2812" file="ch15_01.htm" sect="15.1. Building Character">
<primary>fixed 8-bit chracters</primary>
</indexterm>

<indexterm id="INDEX-2813" file="ch15_01.htm" sect="15.1. Building Character">
<primary>utf8 (Perl version)</primary>
</indexterm>

<indexterm id="INDEX-2814" file="ch15_01.htm" sect="15.1. Building Character">
<primary>IP addresses</primary>
<secondary>UTF-8 representation of</secondary>
</indexterm>

<indexterm id="INDEX-2815" file="ch15_01.htm" sect="15.1. Building Character">
<primary>gethostbyaddr function</primary>
<secondary>converting characters back into bytes</secondary>
</indexterm>

<indexterm id="INDEX-2816" file="ch15_01.htm" sect="15.1. Building Character">
<primary>wide-character APIs, system calls using</primary>
</indexterm>

<indexterm id="INDEX-2817" file="ch15_01.htm" sect="15.1. Building Character">
<primary>Microsoft Windows</primary>
<secondary>system calls using wide-character APIs</secondary>
</indexterm>

<indexterm id="INDEX-2818" file="ch15_01.htm" sect="15.1. Building Character">
<primary>interfaces</primary>
<secondary>byte vs. character semantics in</secondary>
</indexterm>

<indexterm id="INDEX-2819" file="ch15_01.htm" sect="15.1. Building Character">
<primary sortas="C native">-C (native wide characters) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-2820" file="ch15_01.htm" sect="15.1. Building Character">
<primary>$ variables</primary>
<secondary>${^WIDE_SYSTEM_CALLS}</secondary>
</indexterm>

<indexterm id="INDEX-2821" file="ch15_01.htm" sect="15.1. Building Character">
<primary>utf8 strings, converting to/from byte strings</primary>
</indexterm>

<indexterm id="INDEX-2822" file="ch15_01.htm" sect="15.1. Building Character">
<primary>code</primary>
<secondary>mixing character semantics with byte semantics</secondary>
</indexterm>

<indexterm id="INDEX-2823" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>character semantics, effects of</primary>
</indexterm>

<indexterm id="INDEX-2824" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>use bytes pragma</primary>
</indexterm>

<indexterm id="INDEX-2825" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>built-in operators</primary>
<secondary>character semantics, operating on</secondary>
</indexterm>

<indexterm id="INDEX-2826" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>utf8 pragma</primary>
</indexterm>

<indexterm id="INDEX-2827" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>functions</primary>
<secondary>byte-oriented wrappers for</secondary>
</indexterm>

<indexterm id="INDEX-2828" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>length function</primary>
<secondary>byte-oriented wrapper for</secondary>
</indexterm>

<indexterm id="INDEX-2829" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>Unicode</primary>
<secondary>editors for</secondary>
</indexterm>

<indexterm id="INDEX-2830" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>literals</primary>
<secondary>UTF-8, enabling use in</secondary>
</indexterm>

<indexterm id="INDEX-2831" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>ASCII characters</primary>
<secondary>converting to Unicode</secondary>
</indexterm>

<indexterm id="INDEX-2832" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>use charnames pragma</primary>
</indexterm>

<indexterm id="INDEX-2833" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>named</primary>
<secondary>characters, inserting</secondary>
</indexterm>

<indexterm id="INDEX-2834" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>identifiers</primary>
<secondary>Unicode alphanumeric characters, containing</secondary>
</indexterm>

<indexterm id="INDEX-2835" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>canonicalization</primary>
<secondary>characters, information on</secondary>
</indexterm>

<indexterm id="INDEX-2836" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>regular expressions</primary>
<secondary>characters, matching instead of bytes</secondary>
</indexterm>

<indexterm id="INDEX-2837" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>Tengwar script</primary>
</indexterm>

<indexterm id="INDEX-2838" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>\C, matching single byte in C language</primary>
</indexterm>

<indexterm id="INDEX-2839" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>character classes</primary>
<secondary>matching against character properties in Unicode</secondary>
</indexterm>

<indexterm id="INDEX-2840" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>\w</primary>
<secondary>matching ideograph with</secondary>
</indexterm>

<indexterm id="INDEX-2841" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>ideographs</primary>
<secondary>matching with \w</secondary>
</indexterm>

<indexterm id="INDEX-2842" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>\p (matches property)</primary>
</indexterm>

<indexterm id="INDEX-2843" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>\P (doesn't match property)</primary>
</indexterm>

<indexterm id="INDEX-2844" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>character classes</primary>
<secondary>predefined, availability of</secondary>
</indexterm>

<indexterm id="INDEX-2845" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>patterns (and regular expressions)</primary>
<secondary>Unicode properties, matching on</secondary>
</indexterm>

<indexterm id="INDEX-2846" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>combining character sequence, \X, matching with</primary>
</indexterm>

<indexterm id="INDEX-2847" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>\X</primary>
<secondary>matching extended Unicode sequence with</secondary>
</indexterm>

<indexterm id="INDEX-2848" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>tr/// (transliteration) operator</primary>
<secondary>characters, transliterating with</secondary>
</indexterm>

<indexterm id="INDEX-2849" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>case</primary>
<secondary>translation operators, using Unicode tables</secondary>
</indexterm>

<indexterm id="INDEX-2850" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>titlecase</primary>
<secondary>ucfirst, translating to</secondary>
</indexterm>

<indexterm id="INDEX-2851" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>uc operator</primary>
</indexterm>

<indexterm id="INDEX-2852" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>ucfirst operator</primary>
</indexterm>

<indexterm id="INDEX-2853" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>Unicode</primary>
<secondary>case translation tables</secondary>
</indexterm>

<indexterm id="INDEX-2854" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>properties</primary>
<secondary>case, Unicode</secondary>
</indexterm>

<indexterm id="INDEX-2855" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>operators</primary>
<secondary>positions or lengths, switching to character positions</secondary>
</indexterm>

<indexterm id="INDEX-2856" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>positions</primary>
<secondary>operators switching to character positions</secondary>
</indexterm>

<indexterm id="INDEX-2857" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>integers</primary>
<secondary>converting to UTF-8 characters</secondary>
</indexterm>

<indexterm id="INDEX-2858" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>UTF-8 characters</primary>
<secondary>converting to integers</secondary>
</indexterm>

<indexterm id="INDEX-2859" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>converting</primary>
<secondary>between integers and UTF-8 characters</secondary>
</indexterm>

<indexterm id="INDEX-2860" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>pack function</primary>
<secondary>unpack function, Unicode characters and</secondary>
</indexterm>

<indexterm id="INDEX-2861" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>chr function</primary>
</indexterm>

<indexterm id="INDEX-2862" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>ord function</primary>
</indexterm>

<indexterm id="INDEX-2863" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>scalar reverse function</primary>
</indexterm>

<indexterm id="INDEX-2864" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>Unicode</primary>
<secondary>properties database</secondary>
</indexterm>

<indexterm id="INDEX-2865" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>properties</primary>
<secondary>Unicode database of</secondary>
</indexterm>

<indexterm id="INDEX-2866" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>Unicode</primary>
<secondary>summary of, accessing</secondary>
</indexterm>

<indexterm id="INDEX-2867" file="ch15_02.htm" sect="15.2. Effects of Character Semantics">
<primary>Unicode</primary>
<secondary>Unicode Standard, Version 3.0</secondary>
</indexterm>

<indexterm id="INDEX-2868" file="ch15_03.htm" sect="15.3. Caution, [ren2bold] Working">
<primary>Perl</primary>
<secondary>use of Unicode, caveats on</secondary>
</indexterm>

<indexterm id="INDEX-2869" file="ch15_03.htm" sect="15.3. Caution, [ren2bold] Working">
<primary>Unicode</primary>
<secondary>use in Perl, caveats on</secondary>
</indexterm>

<indexterm id="INDEX-2872" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>IPC (interprocess communication)</primary>
</indexterm>

<indexterm id="INDEX-2873" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>processes</primary>
<secondary>interprocess communication</secondary>
</indexterm>

<indexterm id="INDEX-2874" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>invoking</primary>
<see>executing </see>
</indexterm>

<indexterm id="INDEX-2875" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>signals</primary>
</indexterm>

<indexterm id="INDEX-2876" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>processes</primary>
<secondary>interprocess communication</secondary>
<tertiary sortas="Internet">on the Internet</tertiary>
</indexterm>

<indexterm id="INDEX-2877" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>sockets</primary>
<secondary>protocols and</secondary>
</indexterm>

<indexterm id="INDEX-2878" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>System V IPC syscalls</primary>
</indexterm>

<indexterm id="INDEX-2879" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>processes</primary>
<secondary>interprocess communication</secondary>
<tertiary>between processes on same machine</tertiary>
</indexterm>

<indexterm id="INDEX-2880" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>IPC (interprocess communication)</primary>
<secondary>between processes on same machine</secondary>
</indexterm>

<indexterm id="INDEX-2881" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>porting</primary>
<secondary>information on</secondary>
</indexterm>

<indexterm id="INDEX-2882" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>perlport documentation</primary>
</indexterm>

<indexterm id="INDEX-2883" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>Microsoft Windows</primary>
<secondary>porting information (perlwin32)</secondary>
</indexterm>

<indexterm id="INDEX-2884" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>perlwin32 documentation</primary>
</indexterm>

<indexterm id="INDEX-2885" file="ch16_01.htm" sect="16. Interprocess Communication">
<primary>perlfork documentation</primary>
</indexterm>

<indexterm id="INDEX-2886" file="ch16_01.htm" sect="16.1. Signals">
<primary>signals</primary>
</indexterm>

<indexterm id="INDEX-2887" file="ch16_01.htm" sect="16.1. Signals">
<primary>IPC (interprocess communication)</primary>
<secondary>signals</secondary>
</indexterm>

<indexterm id="INDEX-2888" file="ch16_01.htm" sect="16.1. Signals">
<primary sortas="SIG">%SIG hash </primary>
</indexterm>

<indexterm id="INDEX-2889" file="ch16_01.htm" sect="16.1. Signals">
<primary>hashes</primary>
<secondary>%SIG, references to signal handlers</secondary>
</indexterm>

<indexterm id="INDEX-2890" file="ch16_01.htm" sect="16.1. Signals">
<primary>references</primary>
<secondary sortas="signal">to signal handlers (user-defined)</secondary>
</indexterm>

<indexterm id="INDEX-2891" file="ch16_01.htm" sect="16.1. Signals">
<primary>kill function</primary>
</indexterm>

<indexterm id="INDEX-2892" file="ch16_01.htm" sect="16.1. Signals">
<primary>signals</primary>
<secondary>sources of</secondary>
</indexterm>

<indexterm id="INDEX-2893" file="ch16_01.htm" sect="16.1. Signals">
<primary>keyboard sequences, generating signals with</primary>
</indexterm>

<indexterm id="INDEX-2894" file="ch16_01.htm" sect="16.1. Signals">
<primary>Control-C or Control-Z, generating signals with</primary>
</indexterm>

<indexterm id="INDEX-2895" file="ch16_01.htm" sect="16.1. Signals">
<primary>kernels</primary>
<secondary>generating signals</secondary>
</indexterm>

<indexterm id="INDEX-2896" file="ch16_01.htm" sect="16.1. Signals">
<primary>hard references</primary>
<secondary>%SIG array</secondary>
</indexterm>

<indexterm id="INDEX-2897" file="ch16_01.htm" sect="16.1. Signals">
<primary>functions</primary>
<secondary>signal-handling</secondary>
</indexterm>

<indexterm id="INDEX-2898" file="ch16_01.htm" sect="16.1. Signals">
<primary>handlers</primary>
<secondary sortas="signals">for signals</secondary>
</indexterm>

<indexterm id="INDEX-2899" file="ch16_01.htm" sect="16.1. Signals">
<primary>quit signals, handler for</primary>
</indexterm>

<indexterm id="INDEX-2900" file="ch16_01.htm" sect="16.1. Signals">
<primary>interrupt signals, handler for</primary>
</indexterm>

<indexterm id="INDEX-2901" file="ch16_01.htm" sect="16.1. Signals">
<primary>intercept signals, handler for</primary>
</indexterm>

<indexterm id="INDEX-2902" file="ch16_01.htm" sect="16.1. Signals">
<primary> Control-C</primary>
<secondary>signals, handler for</secondary>
</indexterm>

<indexterm id="INDEX-2903" file="ch16_01.htm" sect="16.1. Signals">
<primary>core dumps, signals triggering in C library</primary>
</indexterm>

<indexterm id="INDEX-2904" file="ch16_01.htm" sect="16.1. Signals">
<primary>signals</primary>
<secondary>core dumps, triggering in C library</secondary>
</indexterm>

<indexterm id="INDEX-2905" file="ch16_01.htm" sect="16.1. Signals">
<primary>C language</primary>
<secondary>library, signals triggering core dumps in</secondary>
</indexterm>

<indexterm id="INDEX-2906" file="ch16_01.htm" sect="16.1. Signals">
<primary>die function</primary>
<secondary>quit signal handling and</secondary>
</indexterm>

<indexterm id="INDEX-2907" file="ch16_01.htm" sect="16.1. Signals">
<primary>signals</primary>
<secondary>trapping with sigtrap pragma</secondary>
</indexterm>

<indexterm id="INDEX-2908" file="ch16_01.htm" sect="16.1. Signals">
<primary>sigtrap pragma</primary>
</indexterm>

<indexterm id="INDEX-2909" file="ch16_01.htm" sect="16.1. Signals">
<primary>trapping signals</primary>
</indexterm>

<indexterm id="INDEX-2910" file="ch16_01.htm" sect="16.1. Signals">
<primary>sigtrap pragma</primary>
</indexterm>

<indexterm id="INDEX-2911" file="ch16_01.htm" sect="16.1. Signals">
<primary>IGNORE pseudosignal</primary>
</indexterm>

<indexterm id="INDEX-2912" file="ch16_01.htm" sect="16.1. Signals">
<primary>DEFAULT pseudosignal</primary>
</indexterm>

<indexterm id="INDEX-2913" file="ch16_01.htm" sect="16.1. Signals">
<primary>operating systems</primary>
<secondary>signals and default behaviors of</secondary>
</indexterm>

<indexterm id="INDEX-2914" file="ch16_01.htm" sect="16.1. Signals">
<primary>names</primary>
<secondary>signals</secondary>
</indexterm>

<indexterm id="INDEX-2915" file="ch16_01.htm" sect="16.1. Signals">
<primary>kill function</primary>
</indexterm>

<indexterm id="INDEX-2916" file="ch16_01.htm" sect="16.1. Signals">
<primary>Config module</primary>
<secondary>operating system mapping between signal names and numbers</secondary>
</indexterm>

<indexterm id="INDEX-2917" file="ch16_01.htm" sect="16.1. Signals">
<primary>scopes</primary>
<secondary>signal handling</secondary>
</indexterm>

<indexterm id="INDEX-2918" file="ch16_01.htm" sect="16.1. Signals">
<primary>local</primary>
<secondary>signal handler assignment</secondary>
</indexterm>

<indexterm id="INDEX-2919" file="ch16_01.htm" sect="16.1. Signals">
<primary>process groups</primary>
</indexterm>

<indexterm id="INDEX-2920" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>signals</primary>
<secondary>signaling process groups</secondary>
</indexterm>

<indexterm id="INDEX-2921" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>processes</primary>
<secondary>signaling process groups</secondary>
</indexterm>

<indexterm id="INDEX-2922" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>groups</primary>
<secondary>processes</secondary>
</indexterm>

<indexterm id="INDEX-2923" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>identifiers</primary>
<secondary>process group ID</secondary>
</indexterm>

<indexterm id="INDEX-2924" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>setprgp function</primary>
</indexterm>

<indexterm id="INDEX-2925" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>existence</primary>
<secondary>of a process</secondary>
</indexterm>

<indexterm id="INDEX-2926" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>processes</primary>
<secondary>checking for existence</secondary>
</indexterm>

<indexterm id="INDEX-2927" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>kill function</primary>
<secondary>Microsoft systems and</secondary>
</indexterm>

<indexterm id="INDEX-2928" file="ch16_01.htm" sect="16.1.1. Signaling Process Groups">
<primary>Microsoft Windows</primary>
<secondary>signal number 0 on</secondary>
</indexterm>

<indexterm id="INDEX-2929" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>signals</primary>
<secondary>zombie processes, reaping</secondary>
</indexterm>

<indexterm id="INDEX-2930" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>reaping zombie processes</primary>
</indexterm>

<indexterm id="INDEX-2931" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>processes</primary>
<secondary>zombie</secondary>
</indexterm>

<indexterm id="INDEX-2932" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>zombie processes, reaping</primary>
</indexterm>

<indexterm id="INDEX-2933" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>kernels</primary>
<secondary>autoreaping zombies on</secondary>
</indexterm>

<indexterm id="INDEX-2934" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>fork function</primary>
<secondary>zombie processes and</secondary>
</indexterm>

<indexterm id="INDEX-2935" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>sigaction function </primary>
</indexterm>

<indexterm id="INDEX-2936" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>kernels</primary>
<secondary>signal reliability on</secondary>
</indexterm>

<indexterm id="INDEX-2937" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>System V IPC syscalls</primary>
<secondary>reliable signals, not supporting</secondary>
</indexterm>

<indexterm id="INDEX-2938" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>operating systems</primary>
<secondary>signal reliability on</secondary>
</indexterm>

<indexterm id="INDEX-2939" file="ch16_01.htm" sect="16.1.2. Reaping Zombies">
<primary>syscalls</primary>
<secondary>signal interruption of</secondary>
</indexterm>

<indexterm id="INDEX-2940" file="ch16_01.htm" sect="16.1.3. Timing Out Slow Operations">
<primary>signals</primary>
<secondary>timing out slow operations</secondary>
</indexterm>

<indexterm id="INDEX-2941" file="ch16_01.htm" sect="16.1.3. Timing Out Slow Operations">
<primary>syscalls</primary>
<secondary>restarting</secondary>
</indexterm>

<indexterm id="INDEX-2942" file="ch16_01.htm" sect="16.1.3. Timing Out Slow Operations">
<primary>timing out slow operations</primary>
</indexterm>

<indexterm id="INDEX-2943" file="ch16_01.htm" sect="16.1.3. Timing Out Slow Operations">
<primary>ALRM signal</primary>
</indexterm>

<indexterm id="INDEX-2944" file="ch16_01.htm" sect="16.1.3. Timing Out Slow Operations">
<primary>flock function</primary>
<secondary>alarms and</secondary>
</indexterm>

<indexterm id="INDEX-2945" file="ch16_01.htm" sect="16.1.4. Blocking Signals">
<primary>signals</primary>
<secondary>blocking</secondary>
</indexterm>

<indexterm id="INDEX-2946" file="ch16_01.htm" sect="16.1.4. Blocking Signals">
<primary>blocking signals</primary>
</indexterm>

<indexterm id="INDEX-2947" file="ch16_01.htm" sect="16.1.4. Blocking Signals">
<primary>POSIX module</primary>
<secondary>signal blocking with</secondary>
</indexterm>

<indexterm id="INDEX-2948" file="ch16_01.htm" sect="16.1.4. Blocking Signals">
<primary>sigprocmask syscall</primary>
</indexterm>

<indexterm id="INDEX-2951" file="ch16_02.htm" sect="16.2. Files">
<primary>files</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
</indexterm>

<indexterm id="INDEX-2952" file="ch16_02.htm" sect="16.2. Files">
<primary>processes</primary>
<secondary>interprocess communication</secondary>
<tertiary>files</tertiary>
</indexterm>

<indexterm id="INDEX-2953" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>files</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
<tertiary>locking mechanisms</tertiary>
</indexterm>

<indexterm id="INDEX-2954" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>locking files</primary>
</indexterm>

<indexterm id="INDEX-2955" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>race conditions</primary>
<secondary>file locking and</secondary>
</indexterm>

<indexterm id="INDEX-2956" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>flock function</primary>
</indexterm>

<indexterm id="INDEX-2957" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>operating systems</primary>
<secondary>flock support on</secondary>
</indexterm>

<indexterm id="INDEX-2958" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>locking files</primary>
<secondary>shared and exclusive locks</secondary>
</indexterm>

<indexterm id="INDEX-2959" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>shared file locks</primary>
</indexterm>

<indexterm id="INDEX-2960" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>exclusive file locks</primary>
</indexterm>

<indexterm id="INDEX-2961" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>blocking, shared locks</primary>
</indexterm>

<indexterm id="INDEX-2962" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>filehandles</primary>
<secondary>file locks on</secondary>
</indexterm>

<indexterm id="INDEX-2963" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>locking files</primary>
<secondary>dissolving locks by closing files</secondary>
</indexterm>

<indexterm id="INDEX-2964" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>exclusive file locks</primary>
<secondary>obtaining</secondary>
</indexterm>

<indexterm id="INDEX-2965" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>sysopen function</primary>
</indexterm>

<indexterm id="INDEX-2966" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>semaphore file, use in file locking</primary>
</indexterm>

<indexterm id="INDEX-2967" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>DBM files</primary>
<secondary>locking</secondary>
</indexterm>

<indexterm id="INDEX-2968" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>locking files</primary>
<secondary>DBM files</secondary>
</indexterm>

<indexterm id="INDEX-2969" file="ch16_02.htm" sect="16.2.1. File Locking">
<primary>GDMB files (GNU DBM), locking</primary>
</indexterm>

<indexterm id="INDEX-2970" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>files</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
<tertiary>passing filehandles</tertiary>
</indexterm>

<indexterm id="INDEX-2971" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>filehandles</primary>
<secondary>passing in IPC</secondary>
</indexterm>

<indexterm id="INDEX-2972" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>fork function</primary>
<secondary>child processes, inheriting parent filehandles</secondary>
</indexterm>

<indexterm id="INDEX-2973" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>STDIN, STDOUT, and STDERR filehandles</primary>
<secondary>passing filehandles to new programs through</secondary>
</indexterm>

<indexterm id="INDEX-2974" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>STDIN, STDOUT, and STDERR filehandles</primary>
</indexterm>

<indexterm id="INDEX-2975" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>filehandles</primary>
<secondary>passing in IPC</secondary>
<tertiary>through standard filehandles</tertiary>
</indexterm>

<indexterm id="INDEX-2976" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>file descriptors</primary>
<secondary>filehandles, passing with</secondary>
</indexterm>

<indexterm id="INDEX-2977" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>exec function</primary>
<secondary>filehandles, leaving open across calls</secondary>
</indexterm>

<indexterm id="INDEX-2978" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>fcntl syscall</primary>
<secondary>filehandle close-on exec flag, manipulating</secondary>
</indexterm>

<indexterm id="INDEX-2979" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>file descriptors</primary>
<secondary>passing through environment variable or command-line option</secondary>
</indexterm>

<indexterm id="INDEX-2980" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>open function</primary>
<secondary>converting file descriptor to filehandle</secondary>
</indexterm>

<indexterm id="INDEX-2981" file="ch16_02.htm" sect="16.2.2. Passing Filehandles ">
<primary>operating systems</primary>
<secondary>fork operator, support for </secondary>
</indexterm>

<indexterm id="INDEX-2986" file="ch16_03.htm" sect="16.3. Pipes">
<primary>interprocess communication</primary>
<secondary>pipes</secondary>
</indexterm>

<indexterm id="INDEX-2987" file="ch16_03.htm" sect="16.3. Pipes">
<primary>pipes</primary>
<secondary>in interprocess communication</secondary>
</indexterm>

<indexterm id="INDEX-2988" file="ch16_03.htm" sect="16.3. Pipes">
<primary>input</primary>
<secondary>pipes</secondary>
</indexterm>

<indexterm id="INDEX-2989" file="ch16_03.htm" sect="16.3. Pipes">
<primary>output</primary>
<secondary>pipes</secondary>
</indexterm>

<indexterm id="INDEX-2990" file="ch16_03.htm" sect="16.3. Pipes">
<primary>input</primary>
<secondary>pipes</secondary>
</indexterm>

<indexterm id="INDEX-2991" file="ch16_03.htm" sect="16.3. Pipes">
<primary>output</primary>
<secondary>pipes</secondary>
</indexterm>

<indexterm id="INDEX-2992" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>anonymous</primary>
<secondary>pipes</secondary>
</indexterm>

<indexterm id="INDEX-2993" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>open function</primary>
<secondary>pipes, opening with</secondary>
</indexterm>

<indexterm id="INDEX-2994" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>child processes</primary>
<secondary>starting writeable</secondary>
</indexterm>

<indexterm id="INDEX-2995" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>pipelines</primary>
<secondary>multistage, for output</secondary>
</indexterm>

<indexterm id="INDEX-2996" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>shells</primary>
<secondary>pipe commands with special characters, handling</secondary>
</indexterm>

<indexterm id="INDEX-2997" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>shells</primary>
<secondary>avoiding with multi-argument piped open</secondary>
</indexterm>

<indexterm id="INDEX-2998" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>output</primary>
<secondary>pipes</secondary>
<tertiary>STDOUT as pipe to another program</tertiary>
</indexterm>

<indexterm id="INDEX-2999" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>child processes</primary>
<secondary>readable, starting</secondary>
</indexterm>

<indexterm id="INDEX-3000" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>pipelines</primary>
<secondary>multistage, for input</secondary>
</indexterm>

<indexterm id="INDEX-3001" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>input</primary>
<secondary>pipes</secondary>
<tertiary>multistage pipelines</tertiary>
</indexterm>

<indexterm id="INDEX-3002" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary sortas="@backtick">` (backtick) </primary>
</indexterm>

<indexterm id="INDEX-3003" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>open function </primary>
</indexterm>

<indexterm id="INDEX-3004" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>close function </primary>
</indexterm>

<indexterm id="INDEX-3005" file="ch16_03.htm" sect="16.3.1. Anonymous Pipes">
<primary>fork syscall </primary>
</indexterm>

<indexterm id="INDEX-3007" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>pipes</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
<tertiary>process talking to itself</tertiary>
</indexterm>

<indexterm id="INDEX-3008" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>open function</primary>
<secondary>forking open</secondary>
</indexterm>

<indexterm id="INDEX-3009" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>fork function</primary>
<secondary>fork-open</secondary>
</indexterm>

<indexterm id="INDEX-3010" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>pseudocommands, piping</primary>
</indexterm>

<indexterm id="INDEX-3011" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary sortas="@vertical">| (vertical bar) </primary>
<secondary sortas="@verticalhyphen">|- piping pseudocommand </secondary>
</indexterm>

<indexterm id="INDEX-3012" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary sortas="@vertical">| (vertical bar) </primary>
<secondary sortas="@hyphenvertical">-| piping pseudocommand </secondary>
</indexterm>

<indexterm id="INDEX-3013" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>shells</primary>
<secondary>bypassing with -| piping pseudocommand</secondary>
</indexterm>

<indexterm id="INDEX-3014" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>setgid function </primary>
</indexterm>

<indexterm id="INDEX-3015" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>setuid function </primary>
</indexterm>

<indexterm id="INDEX-3016" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>UID (user ID)</primary>
<secondary>assumed</secondary>
</indexterm>

<indexterm id="INDEX-3017" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>gid (group ID)</primary>
<secondary>assumed</secondary>
</indexterm>

<indexterm id="INDEX-3018" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>output</primary>
<secondary>pipes</secondary>
<tertiary>filtering</tertiary>
</indexterm>

<indexterm id="INDEX-3019" file="ch16_03.htm" sect="16.3.2. Talking to Yourself">
<primary>filtering output with forking open</primary>
</indexterm>

<indexterm id="INDEX-3020" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>in interprocess communication</primary>
<secondary>bidirectional communication</secondary>
</indexterm>

<indexterm id="INDEX-3021" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>bidirectional communication, pipes</primary>
</indexterm>

<indexterm id="INDEX-3022" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>input</primary>
<secondary>pipes</secondary>
<tertiary>bidirectional</tertiary>
</indexterm>

<indexterm id="INDEX-3023" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>output</primary>
<secondary>pipes</secondary>
<tertiary>bidirectional</tertiary>
</indexterm>

<indexterm id="INDEX-3024" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>Open2, Open3 library modules </primary>
</indexterm>

<indexterm id="INDEX-3025" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>input</primary>
<secondary>pipes</secondary>
<tertiary>tridirectional</tertiary>
</indexterm>

<indexterm id="INDEX-3026" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>output</primary>
<secondary>pipes</secondary>
<tertiary>tridirectional</tertiary>
</indexterm>

<indexterm id="INDEX-3027" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>buffering</primary>
<secondary>bi-directional pipes, problems with</secondary>
</indexterm>

<indexterm id="INDEX-3028" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>tty</primary>
</indexterm>

<indexterm id="INDEX-3029" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>IO::Pty module</primary>
</indexterm>

<indexterm id="INDEX-3030" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>Expect module</primary>
</indexterm>

<indexterm id="INDEX-3031" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>function call</primary>
<secondary>pipe, low-level for bi-directional communication</secondary>
</indexterm>

<indexterm id="INDEX-3032" file="ch16_03.htm" sect="16.3.3. Bidirectional Communication ">
<primary>socketpair syscall</primary>
</indexterm>

<indexterm id="INDEX-3035" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>named</primary>
<secondary>pipes</secondary>
</indexterm>

<indexterm id="INDEX-3036" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>FIFOs</primary>
</indexterm>

<indexterm id="INDEX-3037" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>pipes</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
<tertiary>named pipes</tertiary>
</indexterm>

<indexterm id="INDEX-3038" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>mkfifo function</primary>
</indexterm>

<indexterm id="INDEX-3039" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>Win32::Pipe module</primary>
</indexterm>

<indexterm id="INDEX-3040" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>Microsoft Windows</primary>
<secondary>Win32::Pipe module</secondary>
</indexterm>

<indexterm id="INDEX-3041" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>-p file test operator</primary>
</indexterm>

<indexterm id="INDEX-3042" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>file test operators</primary>
<secondary>-p, checking for FIFO</secondary>
</indexterm>

<indexterm id="INDEX-3043" file="ch16_03.htm" sect="16.3.4. Named Pipes">
<primary>sysopen function</primary>
</indexterm>

<indexterm id="INDEX-3048" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>System V IPC</primary>
</indexterm>

<indexterm id="INDEX-3049" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>processes</primary>
<secondary>interprocess communication</secondary>
<tertiary>System V IPC</tertiary>
</indexterm>

<indexterm id="INDEX-3050" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>semaphore files</primary>
<secondary>System V IPC</secondary>
</indexterm>

<indexterm id="INDEX-3051" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>messages</primary>
<secondary>System V IPC</secondary>
</indexterm>

<indexterm id="INDEX-3052" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>shared memory, System V IPC</primary>
</indexterm>

<indexterm id="INDEX-3053" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>memory</primary>
<secondary>shared, System V IPC</secondary>
</indexterm>

<indexterm id="INDEX-3054" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>mmap syscall</primary>
</indexterm>

<indexterm id="INDEX-3055" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>shared memory, System V IPC</primary>
<secondary>controlled access to</secondary>
</indexterm>

<indexterm id="INDEX-3056" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>memory</primary>
<secondary>shared, System V IPC</secondary>
<tertiary>controlled access to</tertiary>
</indexterm>

<indexterm id="INDEX-3057" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>IPC::Shareable module</primary>
</indexterm>

<indexterm id="INDEX-3058" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>semaphore files</primary>
<secondary>shared memory</secondary>
</indexterm>

<indexterm id="INDEX-3059" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>ShMem package</primary>
</indexterm>

<indexterm id="INDEX-3060" file="ch16_04.htm" sect="16.4. System V IPC">
<primary>destructors</primary>
<secondary>shared memory and semaphore</secondary>
</indexterm>

<indexterm id="INDEX-3063" file="ch16_05.htm" sect="16.5. Sockets">
<primary>processes</primary>
<secondary>interprocess communication</secondary>
<tertiary>sockets</tertiary>
</indexterm>

<indexterm id="INDEX-3064" file="ch16_05.htm" sect="16.5. Sockets">
<primary>sockets</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
</indexterm>

<indexterm id="INDEX-3065" file="ch16_05.htm" sect="16.5. Sockets">
<primary>NFS (network filesystems)</primary>
<secondary>limitations of</secondary>
</indexterm>

<indexterm id="INDEX-3066" file="ch16_05.htm" sect="16.5. Sockets">
<primary>sockets</primary>
<secondary>TCP and</secondary>
</indexterm>

<indexterm id="INDEX-3067" file="ch16_05.htm" sect="16.5. Sockets">
<primary>datagrams</primary>
</indexterm>

<indexterm id="INDEX-3068" file="ch16_05.htm" sect="16.5. Sockets">
<primary>UDP packets</primary>
</indexterm>

<indexterm id="INDEX-3069" file="ch16_05.htm" sect="16.5. Sockets">
<primary>TCP</primary>
<secondary>over Internet-domain sockets</secondary>
</indexterm>

<indexterm id="INDEX-3070" file="ch16_05.htm" sect="16.5. Sockets">
<primary>virtual circuits (as TCP streams)</primary>
</indexterm>

<indexterm id="INDEX-3071" file="ch16_05.htm" sect="16.5. Sockets">
<primary>IP (Internet Protocol)</primary>
</indexterm>

<indexterm id="INDEX-3072" file="ch16_05.htm" sect="16.5. Sockets">
<primary>DNS (domain name server)</primary>
</indexterm>

<indexterm id="INDEX-3073" file="ch16_05.htm" sect="16.5. Sockets">
<primary>sockets</primary>
<secondary>Unix-domain sockets</secondary>
</indexterm>

<indexterm id="INDEX-3074" file="ch16_05.htm" sect="16.5. Sockets">
<primary>functions</primary>
<secondary>socket-related in Perl</secondary>
</indexterm>

<indexterm id="INDEX-3075" file="ch16_05.htm" sect="16.5. Sockets">
<primary>sockets</primary>
<secondary>functions (Perl), dealing with</secondary>
</indexterm>

<indexterm id="INDEX-3076" file="ch16_05.htm" sect="16.5. Sockets">
<primary>Socket module</primary>
</indexterm>

<indexterm id="INDEX-3077" file="ch16_05.htm" sect="16.5. Sockets">
<primary>IO::Socket module</primary>
</indexterm>

<indexterm id="INDEX-3078" file="ch16_05.htm" sect="16.5. Sockets">
<primary sortas="T switch">-T (taint checking) switch</primary>
</indexterm>

<indexterm id="INDEX-3079" file="ch16_05.htm" sect="16.5. Sockets">
<primary>operating systems</primary>
<secondary>sockets, support for</secondary>
</indexterm>

<indexterm id="INDEX-3080" file="ch16_05.htm" sect="16.5. Sockets">
<primary>Internet services, CPAN modules for</primary>
</indexterm>

<indexterm id="INDEX-3081" file="ch16_05.htm" sect="16.5. Sockets">
<primary>networking modules</primary>
</indexterm>

<indexterm id="INDEX-3082" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>sockets</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
<tertiary>networking clients</tertiary>
</indexterm>

<indexterm id="INDEX-3083" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>networking</primary>
<secondary>clients</secondary>
</indexterm>

<indexterm id="INDEX-3084" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>Internet TCP clients/servers </primary>
</indexterm>

<indexterm id="INDEX-3085" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>TCP clients/servers </primary>
</indexterm>

<indexterm id="INDEX-3086" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>clients, TCP </primary>
</indexterm>

<indexterm id="INDEX-3087" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>servers, TCP </primary>
</indexterm>

<indexterm id="INDEX-3088" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>IO::Socket::INET module</primary>
</indexterm>

<indexterm id="INDEX-3089" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>Socket module</primary>
<secondary>networking client, connecting to server</secondary>
</indexterm>

<indexterm id="INDEX-3090" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>shutdown syscall</primary>
</indexterm>

<indexterm id="INDEX-3091" file="ch16_05.htm" sect="16.5.1. Networking Clients ">
<primary>closing</primary>
<secondary>server connections (half-close)</secondary>
</indexterm>

<indexterm id="INDEX-3092" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>sockets</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
<tertiary>networking servers</tertiary>
</indexterm>

<indexterm id="INDEX-3093" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>servers, networking</primary>
</indexterm>

<indexterm id="INDEX-3094" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>networking</primary>
<secondary>servers</secondary>
</indexterm>

<indexterm id="INDEX-3095" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>getpeername function</primary>
</indexterm>

<indexterm id="INDEX-3096" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>clients, networking</primary>
<secondary>getting name of</secondary>
</indexterm>

<indexterm id="INDEX-3097" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>servers, networking</primary>
<secondary>forking clones to handle incoming connections</secondary>
</indexterm>

<indexterm id="INDEX-3098" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>select syscall</primary>
<secondary>multiplexing I/O between clients</secondary>
</indexterm>

<indexterm id="INDEX-3099" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>fork function</primary>
<secondary>servers, cloning themselves with</secondary>
</indexterm>

<indexterm id="INDEX-3100" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>zombie processes, reaping</primary>
<secondary>servers</secondary>
</indexterm>

<indexterm id="INDEX-3101" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>reaping zombie processes</primary>
<secondary>servers</secondary>
</indexterm>

<indexterm id="INDEX-3102" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>STDIN, STDOUT, and STDERR</primary>
<secondary>reassigning to client connection</secondary>
</indexterm>

<indexterm id="INDEX-3103" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>perl interpreter program </primary>
<secondary sortas="T">-T switch </secondary>
</indexterm>

<indexterm id="INDEX-3104" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary sortas="T switch">-T (taint checking) switch</primary>
</indexterm>

<indexterm id="INDEX-3105" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>taint checking </primary>
</indexterm>

<indexterm id="INDEX-3106" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>CRLF</primary>
<secondary sortas="Internet">in Internet programs</secondary>
</indexterm>

<indexterm id="INDEX-3107" file="ch16_05.htm" sect="16.5.2. Networking Servers">
<primary>line terminators, Internet programs</primary>
</indexterm>

<indexterm id="INDEX-3111" file="ch16_05.htm" sect="16.5.3. Message Passing">
<primary>sockets</primary>
<secondary sortas="interprocess">in interprocess communication</secondary>
<tertiary>message passing</tertiary>
</indexterm>

<indexterm id="INDEX-3112" file="ch16_05.htm" sect="16.5.3. Message Passing">
<primary>messages</primary>
<secondary>passing with UDP</secondary>
</indexterm>

<indexterm id="INDEX-3113" file="ch16_05.htm" sect="16.5.3. Message Passing">
<primary>UDP</primary>
<secondary>passing messages with</secondary>
</indexterm>

<indexterm id="INDEX-3114" file="ch16_05.htm" sect="16.5.3. Message Passing">
<primary>time</primary>
<secondary>UDP program, getting from other machines</secondary>
</indexterm>

<indexterm id="INDEX-3119" file="ch17_01.htm" sect="17. Threads">
<primary>threads</primary>
</indexterm>

<indexterm id="INDEX-3120" file="ch17_01.htm" sect="17. Threads">
<primary>multithreading</primary>
</indexterm>

<indexterm id="INDEX-3121" file="ch17_01.htm" sect="17.1. The Process Model">
<primary>threads</primary>
<secondary>process model</secondary>
</indexterm>

<indexterm id="INDEX-3122" file="ch17_01.htm" sect="17.1. The Process Model">
<primary>processes</primary>
<secondary>process model, threads</secondary>
</indexterm>

<indexterm id="INDEX-3123" file="ch17_01.htm" sect="17.1. The Process Model">
<primary>logical</primary>
<secondary>separation, parent and child processes</secondary>
</indexterm>

<indexterm id="INDEX-3124" file="ch17_01.htm" sect="17.1. The Process Model">
<primary>copy-on-write semantics</primary>
</indexterm>

<indexterm id="INDEX-3125" file="ch17_01.htm" sect="17.1. The Process Model">
<primary>Microsoft Windows</primary>
<secondary>fork operation, cloning interpreter objects</secondary>
</indexterm>

<indexterm id="INDEX-3126" file="ch17_01.htm" sect="17.1. The Process Model">
<primary>forks</primary>
<secondary>cloned interpreter on Windows</secondary>
</indexterm>

<indexterm id="INDEX-3127" file="ch17_01.htm" sect="17.1. The Process Model">
<primary>interpreters</primary>
<secondary>threads</secondary>
</indexterm>

<indexterm id="INDEX-3128" file="ch17_01.htm" sect="17.1. The Process Model">
<primary>ithreads</primary>
</indexterm>

<indexterm id="INDEX-3129" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>threads</primary>
<secondary>thread model</secondary>
</indexterm>

<indexterm id="INDEX-3130" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>multiprocessing</primary>
<secondary>thread model</secondary>
</indexterm>

<indexterm id="INDEX-3131" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>kernels</primary>
<secondary>threads and</secondary>
</indexterm>

<indexterm id="INDEX-3132" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>modules</primary>
<secondary>thread safety and</secondary>
</indexterm>

<indexterm id="INDEX-3133" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>semaphores</primary>
<secondary>thread safety and</secondary>
</indexterm>

<indexterm id="INDEX-3134" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>operating systems</primary>
<secondary>threading libraries</secondary>
</indexterm>

<indexterm id="INDEX-3135" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>scheduling and preemption policies, threads</primary>
</indexterm>

<indexterm id="INDEX-3136" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>signals</primary>
<secondary>threads, delivering to</secondary>
</indexterm>

<indexterm id="INDEX-3137" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>Perl</primary>
<secondary>thread programming in</secondary>
</indexterm>

<indexterm id="INDEX-3138" file="ch17_02.htm" sect="17.2. The Thread Model">
<primary>Thread::Semaphore module</primary>
</indexterm>

<indexterm id="INDEX-3139" file="ch17_02.htm" sect="17.2.1. The Thread Module">
<primary>Thread module</primary>
</indexterm>

<indexterm id="INDEX-3140" file="ch17_02.htm" sect="17.2.1. The Thread Module">
<primary>methods</primary>
<secondary>Thread class</secondary>
</indexterm>

<indexterm id="INDEX-3141" file="ch17_02.htm" sect="17.2.1. The Thread Module">
<primary>class methods</primary>
<secondary>Thread class</secondary>
</indexterm>

<indexterm id="INDEX-3142" file="ch17_02.htm" sect="17.2.1. The Thread Module">
<primary>object methods</primary>
<secondary>Thread objects</secondary>
</indexterm>

<indexterm id="INDEX-3143" file="ch17_02.htm" sect="17.2.1. The Thread Module">
<primary>functions</primary>
<secondary>Thread module</secondary>
</indexterm>

<indexterm id="INDEX-3144" file="ch17_02.htm" sect="17.2.1.1. Thread creation">
<primary>Thread module</primary>
<secondary>thread creation</secondary>
</indexterm>

<indexterm id="INDEX-3145" file="ch17_02.htm" sect="17.2.1.1. Thread creation">
<primary>Thread method</primary>
</indexterm>

<indexterm id="INDEX-3146" file="ch17_02.htm" sect="17.2.1.1. Thread creation">
<primary>async function</primary>
</indexterm>

<indexterm id="INDEX-3147" file="ch17_02.htm" sect="17.2.1.1. Thread creation">
<primary>new method</primary>
</indexterm>

<indexterm id="INDEX-3148" file="ch17_02.htm" sect="17.2.1.1. Thread creation">
<primary>closures</primary>
<secondary>threads</secondary>
</indexterm>

<indexterm id="INDEX-3149" file="ch17_02.htm" sect="17.2.1.2. Thread destruction">
<primary>Thread module</primary>
<secondary>thread destruction</secondary>
</indexterm>

<indexterm id="INDEX-3150" file="ch17_02.htm" sect="17.2.1.2. Thread destruction">
<primary>exit function</primary>
<secondary>threads and</secondary>
</indexterm>

<indexterm id="INDEX-3151" file="ch17_02.htm" sect="17.2.1.2. Thread destruction">
<primary>destroying threads</primary>
<secondary>join method</secondary>
</indexterm>

<indexterm id="INDEX-3152" file="ch17_02.htm" sect="17.2.1.2. Thread destruction">
<primary>join method</primary>
</indexterm>

<indexterm id="INDEX-3153" file="ch17_02.htm" sect="17.2.1.3. Catching exceptions from join">
<primary>join method</primary>
<secondary>catching exceptions from</secondary>
</indexterm>

<indexterm id="INDEX-3154" file="ch17_02.htm" sect="17.2.1.3. Catching exceptions from join">
<primary>Thread module</primary>
<secondary>join method, catching exceptions from</secondary>
</indexterm>

<indexterm id="INDEX-3155" file="ch17_02.htm" sect="17.2.1.3. Catching exceptions from join">
<primary>exceptions</primary>
<secondary>threads, catching</secondary>
</indexterm>

<indexterm id="INDEX-3156" file="ch17_02.htm" sect="17.2.1.3. Catching exceptions from join">
<primary>eval method</primary>
<secondary>threads, catching exceptions with</secondary>
</indexterm>

<indexterm id="INDEX-3157" file="ch17_02.htm" sect="17.2.1.4. The detach method">
<primary>Thread module</primary>
<secondary>detach method, shutting down threads with</secondary>
</indexterm>

<indexterm id="INDEX-3158" file="ch17_02.htm" sect="17.2.1.4. The detach method">
<primary>detach method</primary>
</indexterm>

<indexterm id="INDEX-3159" file="ch17_02.htm" sect="17.2.1.4. The detach method">
<primary>destroying threads</primary>
<secondary>detach method</secondary>
</indexterm>

<indexterm id="INDEX-3160" file="ch17_02.htm" sect="17.2.1.4. The detach method">
<primary>exceptions</primary>
<secondary sortas="detached">in detached child threads</secondary>
</indexterm>

<indexterm id="INDEX-3161" file="ch17_02.htm" sect="17.2.1.5. Identifying threads">
<primary>Thread module</primary>
<secondary>identifying threads</secondary>
</indexterm>

<indexterm id="INDEX-3162" file="ch17_02.htm" sect="17.2.1.5. Identifying threads">
<primary>identifiers</primary>
<secondary>thread IDs</secondary>
</indexterm>

<indexterm id="INDEX-3163" file="ch17_02.htm" sect="17.2.1.5. Identifying threads">
<primary>tid method</primary>
</indexterm>

<indexterm id="INDEX-3164" file="ch17_02.htm" sect="17.2.1.5. Identifying threads">
<primary>self method, thread accessing own thread object</primary>
</indexterm>

<indexterm id="INDEX-3165" file="ch17_02.htm" sect="17.2.1.5. Identifying threads">
<primary>equal method</primary>
</indexterm>

<indexterm id="INDEX-3166" file="ch17_02.htm" sect="17.2.1.5. Identifying threads">
<primary>comparing</primary>
<secondary>thread objects</secondary>
</indexterm>

<indexterm id="INDEX-3167" file="ch17_02.htm" sect="17.2.1.6. Listing current threads">
<primary>list method</primary>
<secondary>current thread objects in process</secondary>
</indexterm>

<indexterm id="INDEX-3168" file="ch17_02.htm" sect="17.2.1.7. Yielding the processor">
<primary>Thread module</primary>
<secondary>yielding the processor</secondary>
</indexterm>

<indexterm id="INDEX-3169" file="ch17_02.htm" sect="17.2.1.7. Yielding the processor">
<primary>yield function</primary>
</indexterm>

<indexterm id="INDEX-3170" file="ch17_02.htm" sect="17.2.1.7. Yielding the processor">
<primary>CPU, yielding (threads)</primary>
</indexterm>

<indexterm id="INDEX-3171" file="ch17_02.htm" sect="17.2.1.7. Yielding the processor">
<primary>processor</primary>
<see>CPU</see>
</indexterm>

<indexterm id="INDEX-3173" file="ch17_02.htm" sect="17.2.2. Data Access">
<primary>thread model</primary>
<secondary>data access</secondary>
</indexterm>

<indexterm id="INDEX-3174" file="ch17_02.htm" sect="17.2.2. Data Access">
<primary>data access</primary>
<secondary>threads</secondary>
</indexterm>

<indexterm id="INDEX-3175" file="ch17_02.htm" sect="17.2.2. Data Access">
<primary>global variables</primary>
<secondary>threads, accessing in</secondary>
</indexterm>

<indexterm id="INDEX-3176" file="ch17_02.htm" sect="17.2.2. Data Access">
<primary>lexical variables</primary>
<secondary>threads, accessing in</secondary>
</indexterm>

<indexterm id="INDEX-3177" file="ch17_02.htm" sect="17.2.2. Data Access">
<primary>package variables</primary>
<secondary>threads, no protection in</secondary>
</indexterm>

<indexterm id="INDEX-3178" file="ch17_02.htm" sect="17.2.2.1. Synchronizing access with lock">
<primary>data access</primary>
<secondary>threads</secondary>
<tertiary>synchronizing with lock</tertiary>
</indexterm>

<indexterm id="INDEX-3179" file="ch17_02.htm" sect="17.2.2.1. Synchronizing access with lock">
<primary>synchronization</primary>
<secondary>data access in threads</secondary>
</indexterm>

<indexterm id="INDEX-3180" file="ch17_02.htm" sect="17.2.2.1. Synchronizing access with lock">
<primary>lock function</primary>
<secondary>data access control in threads</secondary>
</indexterm>

<indexterm id="INDEX-3181" file="ch17_02.htm" sect="17.2.2.1. Synchronizing access with lock">
<primary>references</primary>
<secondary>locking</secondary>
</indexterm>

<indexterm id="INDEX-3182" file="ch17_02.htm" sect="17.2.2.1. Synchronizing access with lock">
<primary>blocking calls, lock, threads</primary>
</indexterm>

<indexterm id="INDEX-3183" file="ch17_02.htm" sect="17.2.2.1. Synchronizing access with lock">
<primary>recursivity</primary>
<secondary>locks</secondary>
</indexterm>

<indexterm id="INDEX-3184" file="ch17_02.htm" sect="17.2.2.1. Synchronizing access with lock">
<primary>data access</primary>
<secondary>threads</secondary>
<tertiary>unlocking</tertiary>
</indexterm>

<indexterm id="INDEX-3185" file="ch17_02.htm" sect="17.2.2.2. Deadlock">
<primary>data access</primary>
<secondary>threads</secondary>
<tertiary>deadlock</tertiary>
</indexterm>

<indexterm id="INDEX-3186" file="ch17_02.htm" sect="17.2.2.2. Deadlock">
<primary>deadlock in threads</primary>
</indexterm>

<indexterm id="INDEX-3187" file="ch17_02.htm" sect="17.2.2.3. Locking subroutines">
<primary>subroutines</primary>
<secondary>locking for threads</secondary>
</indexterm>

<indexterm id="INDEX-3188" file="ch17_02.htm" sect="17.2.2.3. Locking subroutines">
<primary>locking subroutines</primary>
</indexterm>

<indexterm id="INDEX-3189" file="ch17_02.htm" sect="17.2.2.3. Locking subroutines">
<primary>data access</primary>
<secondary>threads</secondary>
<tertiary>locking subroutines</tertiary>
</indexterm>

<indexterm id="INDEX-3190" file="ch17_02.htm" sect="17.2.2.4. The locked attribute">
<primary>subroutines</primary>
<secondary>locking for threads</secondary>
<tertiary>locked attribute</tertiary>
</indexterm>

<indexterm id="INDEX-3191" file="ch17_02.htm" sect="17.2.2.4. The locked attribute">
<primary>locked attribute, subroutines</primary>
</indexterm>

<indexterm id="INDEX-3192" file="ch17_02.htm" sect="17.2.2.4. The locked attribute">
<primary>attributes</primary>
<secondary>locked, subroutines</secondary>
</indexterm>

<indexterm id="INDEX-3193" file="ch17_02.htm" sect="17.2.2.5. Locking methods">
<primary>methods</primary>
<secondary>object methods</secondary>
<tertiary>locking</tertiary>
</indexterm>

<indexterm id="INDEX-3194" file="ch17_02.htm" sect="17.2.2.5. Locking methods">
<primary>object methods</primary>
<secondary>locking</secondary>
</indexterm>

<indexterm id="INDEX-3195" file="ch17_02.htm" sect="17.2.2.5. Locking methods">
<primary>locking methods</primary>
</indexterm>

<indexterm id="INDEX-3196" file="ch17_02.htm" sect="17.2.2.5. Locking methods">
<primary>data access</primary>
<secondary>threads</secondary>
<tertiary>locking methods</tertiary>
</indexterm>

<indexterm id="INDEX-3197" file="ch17_02.htm" sect="17.2.2.6. Condition variables">
<primary>data access</primary>
<secondary>threads</secondary>
<tertiary>condition variables</tertiary>
</indexterm>

<indexterm id="INDEX-3198" file="ch17_02.htm" sect="17.2.2.6. Condition variables">
<primary>condition variables</primary>
</indexterm>

<indexterm id="INDEX-3199" file="ch17_02.htm" sect="17.2.2.6. Condition variables">
<primary>variables</primary>
<secondary>condition variables</secondary>
</indexterm>

<indexterm id="INDEX-3200" file="ch17_02.htm" sect="17.2.2.6. Condition variables">
<primary>CPU</primary>
<secondary>condition variables allowing threads to relinquish</secondary>
</indexterm>

<indexterm id="INDEX-3201" file="ch17_02.htm" sect="17.2.2.6. Condition variables">
<primary>Thread::Semaphore module</primary>
</indexterm>

<indexterm id="INDEX-3202" file="ch17_02.htm" sect="17.2.2.6. Condition variables">
<primary>thread model</primary>
<secondary>control, passing between threads</secondary>
</indexterm>

<indexterm id="INDEX-3203" file="ch17_02.htm" sect="17.2.3. Other Thread Modules">
<primary>modules</primary>
<secondary>thread modules</secondary>
</indexterm>

<indexterm id="INDEX-3204" file="ch17_02.htm" sect="17.2.3.1. Queues">
<primary>Thread::Queue module</primary>
</indexterm>

<indexterm id="INDEX-3205" file="ch17_02.htm" sect="17.2.3.1. Queues">
<primary>queues, Thread::Queue module</primary>
</indexterm>

<indexterm id="INDEX-3206" file="ch17_02.htm" sect="17.2.3.1. Queues">
<primary>enqueue method</primary>
</indexterm>

<indexterm id="INDEX-3207" file="ch17_02.htm" sect="17.2.3.1. Queues">
<primary>scope</primary>
<secondary sortas="threads">in threads</secondary>
</indexterm>

<indexterm id="INDEX-3208" file="ch17_02.htm" sect="17.2.3.2. Semaphores">
<primary>Thread::Semaphore module</primary>
</indexterm>

<indexterm id="INDEX-3209" file="ch17_02.htm" sect="17.2.3.2. Semaphores">
<primary>semaphores</primary>
<secondary>Thread::Semaphore module</secondary>
</indexterm>

<indexterm id="INDEX-3210" file="ch17_02.htm" sect="17.2.3.2. Semaphores">
<primary>down method</primary>
</indexterm>

<indexterm id="INDEX-3211" file="ch17_02.htm" sect="17.2.3.2. Semaphores">
<primary>up method</primary>
</indexterm>

<indexterm id="INDEX-3212" file="ch17_02.htm" sect="17.2.3.3. Other standard threading modules">
<primary>Thread::Signal module</primary>
</indexterm>

<indexterm id="INDEX-3213" file="ch17_02.htm" sect="17.2.3.3. Other standard threading modules">
<primary>signals</primary>
<secondary>Thread::Signal module</secondary>
</indexterm>

<indexterm id="INDEX-3214" file="ch17_02.htm" sect="17.2.3.3. Other standard threading modules">
<primary>core dumps</primary>
<secondary>Thread::Signal module, preventing with</secondary>
</indexterm>

<indexterm id="INDEX-3220" file="ch18_01.htm" sect="18. Compiling">
<primary>compiling</primary>
</indexterm>

<indexterm id="INDEX-3221" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>compiling</primary>
<secondary>life cycle of Perl programs</secondary>
</indexterm>

<indexterm id="INDEX-3222" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>Perl</primary>
<secondary>programs, life cycle of</secondary>
</indexterm>

<indexterm id="INDEX-3223" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>life cycle, Perl programs</primary>
</indexterm>

<indexterm id="INDEX-3224" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>life cycle, Perl programs</primary>
<secondary>compilation phase</secondary>
</indexterm>

<indexterm id="INDEX-3225" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>compiling</primary>
<secondary>life cycle, Perl programs</secondary>
<tertiary>compile phase</tertiary>
</indexterm>

<indexterm id="INDEX-3226" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>parse trees</primary>
</indexterm>

<indexterm id="INDEX-3227" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>BEGIN blocks</primary>
</indexterm>

<indexterm id="INDEX-3228" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>CHECK blocks</primary>
</indexterm>

<indexterm id="INDEX-3229" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>INIT blocks</primary>
</indexterm>

<indexterm id="INDEX-3230" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>END blocks</primary>
</indexterm>

<indexterm id="INDEX-3231" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>Perl interpreter</primary>
</indexterm>

<indexterm id="INDEX-3232" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>life cycle, Perl programs</primary>
<secondary>code generation phase</secondary>
</indexterm>

<indexterm id="INDEX-3233" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>compiling</primary>
<secondary>life cycle, Perl programs</secondary>
<tertiary>code generation phase</tertiary>
</indexterm>

<indexterm id="INDEX-3234" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>code generation</primary>
</indexterm>

<indexterm id="INDEX-3235" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>bytecode</primary>
</indexterm>

<indexterm id="INDEX-3236" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>executable image file</primary>
</indexterm>

<indexterm id="INDEX-3237" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>parse trees</primary>
<secondary>reconstruction of</secondary>
</indexterm>

<indexterm id="INDEX-3238" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>life cycle, Perl programs</primary>
<secondary>parse tree reconstruction</secondary>
</indexterm>

<indexterm id="INDEX-3239" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>compiling</primary>
<secondary>life cycle, Perl programs</secondary>
<tertiary>parse tree reconstruction</tertiary>
</indexterm>

<indexterm id="INDEX-3240" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>life cycle, Perl programs</primary>
<secondary>execution phase</secondary>
</indexterm>

<indexterm id="INDEX-3241" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>execution</primary>
<secondary>Perl programs</secondary>
</indexterm>

<indexterm id="INDEX-3242" file="ch18_01.htm" sect="18.1. The Life Cycle of a Perl Program">
<primary>run phase</primary>
</indexterm>

<indexterm id="INDEX-3243" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>compiling</primary>
<secondary>compiling your code</secondary>
</indexterm>

<indexterm id="INDEX-3244" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>run phase vs. run time</primary>
</indexterm>

<indexterm id="INDEX-3245" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>compile phase vs. compile time</primary>
</indexterm>

<indexterm id="INDEX-3246" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>lexer</primary>
<seealso>lexical analysis</seealso>
</indexterm>

<indexterm id="INDEX-3247" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>lexical analysis</primary>
<secondary>in the Perl compiler</secondary>
</indexterm>

<indexterm id="INDEX-3248" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>parsing</primary>
<secondary>in the Perl compiler</secondary>
</indexterm>

<indexterm id="INDEX-3249" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>optimizing</primary>
<secondary>in the Perl compiler</secondary>
</indexterm>

<indexterm id="INDEX-3250" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>tokens</primary>
</indexterm>

<indexterm id="INDEX-3251" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>opcodes</primary>
</indexterm>

<indexterm id="INDEX-3252" file="ch18_02.htm" sect="18.2. Compiling Your Code">
<primary>parse trees</primary>
</indexterm>

<indexterm id="INDEX-3254" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>executing</primary>
<secondary>code</secondary>
</indexterm>

<indexterm id="INDEX-3255" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>interpreter, Perl</primary>
</indexterm>

<indexterm id="INDEX-3256" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>virtual machine, Perl</primary>
</indexterm>

<indexterm id="INDEX-3257" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>Perl virtual machine</primary>
</indexterm>

<indexterm id="INDEX-3258" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>opcodes</primary>
</indexterm>

<indexterm id="INDEX-3259" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>push-pop (PP) codes</primary>
</indexterm>

<indexterm id="INDEX-3260" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>stacks</primary>
<secondary>Perl virtuall machine</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>operand stack</primary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>save stack</primary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>localized values, saving</primary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>scopes</primary>
<secondary>scope stack</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>context stack</primary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>jumpenv stack</primary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>return stack</primary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>mark stack</primary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>recursive lexical pad stacks</primary>
</indexterm>

<indexterm id="INDEX-" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>lexical variables</primary>
<secondary>recursive lexical pad stack</secondary>
</indexterm>

<indexterm id="INDEX-3261" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>C language</primary>
<secondary>C stack, storing C variables on</secondary>
</indexterm>

<indexterm id="INDEX-3262" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>interpreter, Perl</primary>
</indexterm>

<indexterm id="INDEX-3263" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>Perl virtual machine</primary>
</indexterm>

<indexterm id="INDEX-3264" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>threads</primary>
<secondary>multiple, in single interpreter</secondary>
</indexterm>

<indexterm id="INDEX-3265" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>interpreter, Perl</primary>
<secondary>multiple, running</secondary>
</indexterm>

<indexterm id="INDEX-3266" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>mod_perl module</primary>
</indexterm>

<indexterm id="INDEX-3267" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>ithreads</primary>
<secondary>Perl API to</secondary>
</indexterm>

<indexterm id="INDEX-3268" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>Apache web server</primary>
<secondary>mod_perl extension</secondary>
</indexterm>

<indexterm id="INDEX-3269" file="ch18_03.htm" sect="18.3. Executing Your Code">
<primary>interpreter, Perl</primary>
<secondary>embedding in applications</secondary>
</indexterm>

<indexterm id="INDEX-3271" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>parse trees</primary>
<secondary>internal, keeping</secondary>
</indexterm>

<indexterm id="INDEX-3272" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>compiler, Perl</primary>
<secondary>backends for</secondary>
</indexterm>

<indexterm id="INDEX-3273" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>backends, compiler</primary>
</indexterm>

<indexterm id="INDEX-3274" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>C language</primary>
<secondary>accesing Perl from enclosing framework</secondary>
</indexterm>

<indexterm id="INDEX-3275" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>code generators</primary>
</indexterm>

<indexterm id="INDEX-3276" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>modules</primary>
<secondary>backend</secondary>
</indexterm>

<indexterm id="INDEX-3277" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>backends, compiler</primary>
<secondary>modules</secondary>
</indexterm>

<indexterm id="INDEX-3278" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>debugging</primary>
<secondary>backend modules for</secondary>
</indexterm>

<indexterm id="INDEX-3279" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>modules</primary>
<secondary>backend, calling</secondary>
</indexterm>

<indexterm id="INDEX-3280" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>backends, compiler</primary>
<secondary>modules, calling</secondary>
</indexterm>

<indexterm id="INDEX-3281" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>O module</primary>
</indexterm>

<indexterm id="INDEX-3282" file="ch18_04.htm" sect="18.4. Compiler Backends">
<primary>perlcc command</primary>
</indexterm>

<indexterm id="INDEX-3283" file="ch18_05.htm" sect="18.5. Code Generators">
<primary>code generators</primary>
</indexterm>

<indexterm id="INDEX-3284" file="ch18_05.htm" sect="18.5.1. The Bytecode Generator">
<primary>code generators</primary>
<secondary>bytecode generator</secondary>
</indexterm>

<indexterm id="INDEX-3285" file="ch18_05.htm" sect="18.5.1. The Bytecode Generator">
<primary>B::Bytecode module</primary>
</indexterm>

<indexterm id="INDEX-3286" file="ch18_05.htm" sect="18.5.1. The Bytecode Generator">
<primary>perlcc command</primary>
<secondary>pbyscript resulting from</secondary>
</indexterm>

<indexterm id="INDEX-3287" file="ch18_05.htm" sect="18.5.1. The Bytecode Generator">
<primary>Byteloader module</primary>
</indexterm>

<indexterm id="INDEX-3288" file="ch18_05.htm" sect="18.5.1. The Bytecode Generator">
<primary>source code</primary>
<secondary>filter for</secondary>
</indexterm>

<indexterm id="INDEX-3289" file="ch18_05.htm" sect="18.5.1. The Bytecode Generator">
<primary>parse trees</primary>
<secondary>original, reconstituting and splicing into current parse tree</secondary>
</indexterm>

<indexterm id="INDEX-3290" file="ch18_05.htm" sect="18.5.2. The C Code Generators">
<primary>code generators</primary>
<secondary>C Code generators</secondary>
</indexterm>

<indexterm id="INDEX-3291" file="ch18_05.htm" sect="18.5.2. The C Code Generators">
<primary>C language</primary>
<secondary>C code generators</secondary>
</indexterm>

<indexterm id="INDEX-3292" file="ch18_05.htm" sect="18.5.2. The C Code Generators">
<primary>B::C and B::CC modules </primary>
</indexterm>

<indexterm id="INDEX-3294" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>source code</primary>
<secondary>development tools for</secondary>
</indexterm>

<indexterm id="INDEX-3295" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>O module</primary>
</indexterm>

<indexterm id="INDEX-3296" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>B::Lint module</primary>
</indexterm>

<indexterm id="INDEX-3297" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>lint (C program verifier)</primary>
</indexterm>

<indexterm id="INDEX-3298" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>B::Xref module</primary>
</indexterm>

<indexterm id="INDEX-3299" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>variables</primary>
<secondary>B::Xref module, cross-references with C</secondary>
</indexterm>

<indexterm id="INDEX-3300" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>subroutines</primary>
<secondary>B::Xref module, cross-references with C</secondary>
</indexterm>

<indexterm id="INDEX-3301" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>formats</primary>
<secondary>B::Xref module, cross-references with C</secondary>
</indexterm>

<indexterm id="INDEX-3302" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>B::Deparse module</primary>
</indexterm>

<indexterm id="INDEX-3303" file="ch18_06.htm" sect="18.6. Code Development Tools">
<primary>binary files</primary>
<secondary>decompiling with B::Deparse module</secondary>
</indexterm>

<indexterm id="INDEX-3304" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>compilers, Perl</primary>
<secondary>interpreters, interaction with</secondary>
</indexterm>

<indexterm id="INDEX-3305" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>interpreter, Perl</primary>
<secondary>compiler, interaction with</secondary>
</indexterm>

<indexterm id="INDEX-3306" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>subroutines</primary>
<secondary>named, compiler/interpreter interaction</secondary>
</indexterm>

<indexterm id="INDEX-3307" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>BEGIN blocks</primary>
<secondary>order of running</secondary>
</indexterm>

<indexterm id="INDEX-3308" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>INIT blocks</primary>
<secondary>order of running</secondary>
</indexterm>

<indexterm id="INDEX-3309" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>CHECK blocks</primary>
<secondary>order of running</secondary>
</indexterm>

<indexterm id="INDEX-3310" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>END blocks</primary>
<secondary>order of running</secondary>
</indexterm>

<indexterm id="INDEX-3311" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>BEGIN blocks</primary>
<secondary>altering compiler parsing of file</secondary>
</indexterm>

<indexterm id="INDEX-3312" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>END blocks</primary>
<secondary>skipping</secondary>
</indexterm>

<indexterm id="INDEX-3313" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>END block</primary>
<secondary>exit value of program, modifying</secondary>
</indexterm>

<indexterm id="INDEX-3314" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>INIT blocks</primary>
<secondary>order of running</secondary>
</indexterm>

<indexterm id="INDEX-3315" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>compilation</primary>
<secondary>order of</secondary>
</indexterm>

<indexterm id="INDEX-3316" file="ch18_07.htm" sect="18.7. Avant-Garde Compiler, Retro Interpreter">
<primary>execution</primary>
<secondary>code, order of</secondary>
</indexterm>

<indexterm id="INDEX-3320" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>commands</primary>
<secondary>processing</secondary>
</indexterm>

<indexterm id="INDEX-3321" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>commands</primary>
<secondary>processing</secondary>
<seealso>interpreters; Perl interpreter</seealso>
</indexterm>

<indexterm id="INDEX-3322" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>executing</primary>
<secondary>Perl programs</secondary>
</indexterm>

<indexterm id="INDEX-3323" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>interpreters</primary>
<secondary sortas="commands">for commands</secondary>
</indexterm>

<indexterm id="INDEX-3324" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>operating systems</primary>
<secondary>command interpreters for</secondary>
</indexterm>

<indexterm id="INDEX-3325" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>processing shell commands</primary>
</indexterm>

<indexterm id="INDEX-3326" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>switches, command-line</primary>
</indexterm>

<indexterm id="INDEX-3327" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>scripts</primary>
<secondary>Perl, searching for and compiling</secondary>
</indexterm>

<indexterm id="INDEX-3328" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>switches, command-line</primary>
<secondary>-e switches</secondary>
</indexterm>

<indexterm id="INDEX-3329" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>interpreter, Perl</primary>
<secondary>invoking with #! (shebang) line</secondary>
</indexterm>

<indexterm id="INDEX-3330" file="ch19_01.htm" sect="19.1. Command Processing">
<primary sortas="@sharp"># (sharp)</primary>
<secondary sortas="@sharpbang notation">#! (shebang) notation</secondary>
</indexterm>

<indexterm id="INDEX-3331" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>operating systems</primary>
<secondary>invoking interpreters with #! line</secondary>
</indexterm>

<indexterm id="INDEX-3332" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>standard input</primary>
<secondary>scripts, passing by</secondary>
</indexterm>

<indexterm id="INDEX-3333" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>Perl interpreter</primary>
<secondary sortas="x">-x switch</secondary>
</indexterm>

<indexterm id="INDEX-3334" file="ch19_01.htm" sect="19.1. Command Processing">
<primary sortas="x extract">-x (extract program) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3335" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>Unix</primary>
<secondary>truncating kernel interpretation of #! line</secondary>
</indexterm>

<indexterm id="INDEX-3336" file="ch19_01.htm" sect="19.1. Command Processing">
<primary sortas="I include">-I (include path) command-line switch,</primary>
</indexterm>

<indexterm id="INDEX-3337" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>Perl interpreter</primary>
<secondary sortas="I">-I switch</secondary>
</indexterm>

<indexterm id="INDEX-3338" file="ch19_01.htm" sect="19.1. Command Processing">
<primary sortas="0 command-line">-0 command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3339" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>Perl interpreter</primary>
<secondary sortas="@zero">-0 switch</secondary>
</indexterm>

<indexterm id="INDEX-3340" file="ch19_01.htm" sect="19.1. Command Processing">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="@hyphenasteriskhyphen">-*- for emacs</secondary>
</indexterm>

<indexterm id="INDEX-3341" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>emacs</primary>
<secondary sortas="@hyphenasteriskhyphen">-*- sequences</secondary>
</indexterm>

<indexterm id="INDEX-3342" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>env program, starting Perl with</primary>
</indexterm>

<indexterm id="INDEX-3343" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>version</primary>
<secondary>of Perl</secondary>
<tertiary>placing in #! line</tertiary>
</indexterm>

<indexterm id="INDEX-3344" file="ch19_01.htm" sect="19.1. Command Processing">
<primary>shells</primary>
<secondary>Bourne shell (sh)</secondary>
</indexterm>

<indexterm id="INDEX-3345" file="ch19_01.htm" sect="19.1. Command Processing">
<primary sortas="bin sh">/bin/sh</primary>
</indexterm>

<indexterm id="INDEX-3346" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>operating systems</primary>
<secondary>#! technique, simulating on non-Unix systems</secondary>
</indexterm>

<indexterm id="INDEX-3347" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary sortas="@sharp"># (sharp)</primary>
<secondary sortas="@sharpbang notation">#! (shebang) notation</secondary>
<tertiary>simulating on non-Unix systems</tertiary>
</indexterm>

<indexterm id="INDEX-3348" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>Macintosh operating system</primary>
<secondary>invoking Perl application on</secondary>
</indexterm>

<indexterm id="INDEX-3349" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>MS-DOS operating system, invoking Perl applications on</primary>
</indexterm>

<indexterm id="INDEX-3350" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>dosish.h file</primary>
</indexterm>

<indexterm id="INDEX-3351" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>OS/2 operating system</primary>
<secondary>invoking Perl applications on</secondary>
</indexterm>

<indexterm id="INDEX-3352" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>VMS operating system</primary>
<secondary>invoking Perl applications on</secondary>
</indexterm>

<indexterm id="INDEX-3353" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>Microsoft Windows</primary>
<secondary>ActiveState Perl distribution, installing</secondary>
</indexterm>

<indexterm id="INDEX-3354" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>ActiveState Perl distribution</primary>
<secondary>installing on Windows systems</secondary>
</indexterm>

<indexterm id="INDEX-3355" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>quotation marks</primary>
<secondary sortas="non-Unix">on non-Unix systems</secondary>
</indexterm>

<indexterm id="INDEX-3356" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>interpreters</primary>
<secondary sortas="commands">for commands</secondary>
<tertiary>quoting on Unix systems</tertiary>
</indexterm>

<indexterm id="INDEX-3357" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>Microsoft Windows</primary>
<secondary>Windows NT, quoting on</secondary>
</indexterm>

<indexterm id="INDEX-3358" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>Macintosh operating system</primary>
<secondary>quoting on</secondary>
</indexterm>

<indexterm id="INDEX-3359" file="ch19_01.htm" sect="19.1.1. #! and Quoting on Non-Unix Systems">
<primary>control characters</primary>
<secondary>non-ASCII on Macintosh</secondary>
</indexterm>

<indexterm id="INDEX-3360" file="ch19_01.htm" sect="19.1.2. Location of Perl">
<primary>command processing</primary>
<secondary>location of Perl</secondary>
</indexterm>

<indexterm id="INDEX-3361" file="ch19_01.htm" sect="19.1.2. Location of Perl">
<primary>Perl</primary>
<secondary>location of</secondary>
</indexterm>

<indexterm id="INDEX-3362" file="ch19_01.htm" sect="19.1.2. Location of Perl">
<primary>version</primary>
<secondary sortas="Perl">of Perl</secondary>
<tertiary>specifying</tertiary>
</indexterm>

<indexterm id="INDEX-3363" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>switches, command-line</primary>
</indexterm>

<indexterm id="INDEX-3364" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>options</primary>
<see>switches, command-line</see>
</indexterm>

<indexterm id="INDEX-3365" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>flags</primary>
<see>switches, command-line</see>
</indexterm>

<indexterm id="INDEX-3366" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary>switches</secondary>
</indexterm>

<indexterm id="INDEX-3367" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="@hyphenhyphen">-- command-line switch</secondary>
</indexterm>

<indexterm id="INDEX-3368" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="@hyphenhyphen">-- switch</secondary>
</indexterm>

<indexterm id="INDEX-3369" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="@zero">-0 switch</secondary>
</indexterm>

<indexterm id="INDEX-3370" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="0 switch">-0 switch, perl</primary>
</indexterm>

<indexterm id="INDEX-3371" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarslash">$/ ($INPUT_RECORD_SEPARATOR)</secondary>
</indexterm>

<indexterm id="INDEX-3372" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>record delimiter</primary>
<see>$/ variable</see>
</indexterm>

<indexterm id="INDEX-3373" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>octal numbers</primary>
<secondary>specifying $/ as</secondary>
</indexterm>

<indexterm id="INDEX-3374" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>paragraph mode</primary>
</indexterm>

<indexterm id="INDEX-3375" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>slurping files</primary>
<secondary>Perl, setting value for</secondary>
</indexterm>

<indexterm id="INDEX-3376" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="a switch">-a switch</secondary>
</indexterm>

<indexterm id="INDEX-3377" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="a autosplit">-a (autosplit) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3378" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>autosplit mode</primary>
</indexterm>

<indexterm id="INDEX-3379" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="F pattern">-F (pattern to split on)command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3380" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="F">-F switch</secondary>
</indexterm>

<indexterm id="INDEX-3381" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>field separator, specifying different</primary>
</indexterm>

<indexterm id="INDEX-3382" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="c">-c switch</secondary>
</indexterm>

<indexterm id="INDEX-3383" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="c check">-c (check syntax) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3384" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>scripts</primary>
<secondary>checking syntax of</secondary>
</indexterm>

<indexterm id="INDEX-3385" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>syntax, checking</primary>
</indexterm>

<indexterm id="INDEX-3386" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>wide character APIs, enabling Perl use of on target system</primary>
</indexterm>

<indexterm id="INDEX-3387" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="d switch">-d switch</secondary>
</indexterm>

<indexterm id="INDEX-3388" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="d debug">-d (debug) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3389" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="d debug">-d (debug) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3390" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>debugging</primary>
</indexterm>

<indexterm id="INDEX-3391" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>scripts</primary>
<secondary>debugging</secondary>
</indexterm>

<indexterm id="INDEX-3392" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>scripts</primary>
<secondary>debugging</secondary>
<seealso>debugging</seealso>
</indexterm>

<indexterm id="INDEX-3393" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="D switch">-D switch</secondary>
</indexterm>

<indexterm id="INDEX-3394" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="D debugging">-D (debugging) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3395" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarcaretD">$^D
($DEBUGGING)</secondary>
</indexterm>

<indexterm id="INDEX-3396" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>configuration, Perl, for debugging</primary>
</indexterm>

<indexterm id="INDEX-3397" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="e">-e switch</secondary>
</indexterm>

<indexterm id="INDEX-3398" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="e execute">-e (execute) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3399" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>scripts</primary>
<secondary>building with -e switch</secondary>
</indexterm>

<indexterm id="INDEX-3400" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>writing</primary>
<secondary>scripts</secondary>
<see>scripts</see>
</indexterm>

<indexterm id="INDEX-3401" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="F">-F switch</secondary>
</indexterm>

<indexterm id="INDEX-3402" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="F pattern">-F (pattern to split on) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3403" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>patterns</primary>
<secondary>autosplitting via -a switch</secondary>
</indexterm>

<indexterm id="INDEX-3404" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>shells</primary>
<secondary>quotes, passing through</secondary>
</indexterm>

<indexterm id="INDEX-3405" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="h">-h switch</secondary>
</indexterm>

<indexterm id="INDEX-3406" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="h help">-h (help) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3407" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="i">-i switch</secondary>
</indexterm>

<indexterm id="INDEX-3408" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="i in place">-i (in-place editing) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3409" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>angle operator</primary>
</indexterm>

<indexterm id="INDEX-3410" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>inplace editing ($^I, $INPLACE_EDIT)</primary>
</indexterm>

<indexterm id="INDEX-3411" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>input</primary>
<secondary>files, locating end with eof</secondary>
</indexterm>

<indexterm id="INDEX-3412" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>backup files</primary>
</indexterm>

<indexterm id="INDEX-3413" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="I">-I switch</secondary>
</indexterm>

<indexterm id="INDEX-3414" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="I include">-I (include path) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3415" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>directories</primary>
<secondary>prepending to @INC</secondary>
</indexterm>

<indexterm id="INDEX-3416" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="INC array">@INC array;prepending directories to</primary>
</indexterm>

<indexterm id="INDEX-3417" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>prepending, directories to @INC</primary>
</indexterm>

<indexterm id="INDEX-3418" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="l">-l switch</secondary>
</indexterm>

<indexterm id="INDEX-3419" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="l automatic">-l (automatic line ending) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3420" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>automatic, line-end processing</primary>
</indexterm>

<indexterm id="INDEX-3421" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>line-end processing, automatic</primary>
</indexterm>

<indexterm id="INDEX-3422" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarbackslash">$\ ($OUPUT_RECORD_SEPARATOR)</secondary>
</indexterm>

<indexterm id="INDEX-3423" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="m">-m switch</secondary>
</indexterm>

<indexterm id="INDEX-3424" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="m use module">-m (use module)command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3425" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="M use module2">-M (use module) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3426" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="M">-M switch</secondary>
</indexterm>

<indexterm id="INDEX-3427" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>pragmas</primary>
</indexterm>

<indexterm id="INDEX-3428" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="n">-n switch</secondary>
</indexterm>

<indexterm id="INDEX-3429" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="n loop">-n (loop) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3430" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="p">-p switch</secondary>
</indexterm>

<indexterm id="INDEX-3431" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="p print">-p (print while looping) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3432" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="P">-P switch</secondary>
</indexterm>

<indexterm id="INDEX-3433" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="P2">-P (C preprocessor) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3434" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>C preprocessor</primary>
</indexterm>

<indexterm id="INDEX-3435" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="s">-s switch</secondary>
</indexterm>

<indexterm id="INDEX-3436" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="s switch">-s (switch) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3437" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="S">-S switch</secondary>
</indexterm>

<indexterm id="INDEX-3438" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="S search">-S (search for script) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3439" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>PATH environment variable </primary>
</indexterm>

<indexterm id="INDEX-3440" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>searching</primary>
<secondary sortas="scripts">for scripts</secondary>
</indexterm>

<indexterm id="INDEX-3441" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>scripts</primary>
<secondary>searching for</secondary>
</indexterm>

<indexterm id="INDEX-3442" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="T">-T switch</secondary>
</indexterm>

<indexterm id="INDEX-3443" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="T taint">-T (taint checking) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3444" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>taint checking</primary>
</indexterm>

<indexterm id="INDEX-3445" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="u">-u switch </secondary>
</indexterm>

<indexterm id="INDEX-3446" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="u dump">-u (dump core) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3447" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>core files </primary>
</indexterm>

<indexterm id="INDEX-3448" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>files</primary>
<secondary>core</secondary>
</indexterm>

<indexterm id="INDEX-3449" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>scripts</primary>
<secondary>dumping core files</secondary>
</indexterm>

<indexterm id="INDEX-3450" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="U">-U switch </secondary>
</indexterm>

<indexterm id="INDEX-3451" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="U unsafe">-U (unsafe) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3452" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>unsafe operations</primary>
</indexterm>

<indexterm id="INDEX-3453" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="v">-v switch</secondary>
</indexterm>

<indexterm id="INDEX-3454" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="v version">-v (version) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3455" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="V">-V switch</secondary>
</indexterm>

<indexterm id="INDEX-3456" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="V2 version">-V (version) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3457" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="w">-w switch</secondary>
</indexterm>

<indexterm id="INDEX-3458" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>warning messages</primary>
</indexterm>

<indexterm id="INDEX-3459" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="w command">-w command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3460" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="x">-x switch</secondary>
</indexterm>

<indexterm id="INDEX-3461" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="x extract">-x (extract program) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3462" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>message</primary>
<secondary>script embedded
in</secondary>
</indexterm>

<indexterm id="INDEX-3463" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>scripts</primary>
<secondary>embedding in
messages</secondary>
</indexterm>

<indexterm id="INDEX-3464" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>Perl interpreter</primary>
<secondary sortas="X">-X switch</secondary>
</indexterm>

<indexterm id="INDEX-3465" file="ch19_01.htm" sect="19.1.3. Switches">
<primary sortas="X warning">-X (warning disabling) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3466" file="ch19_01.htm" sect="19.1.3. Switches">
<primary>warnings</primary>
<secondary>disabling unconditionally and permanently</secondary>
</indexterm>

<indexterm id="INDEX-3470" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>environment variables</primary>
</indexterm>

<indexterm id="INDEX-3471" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>shells</primary>
<secondary>environment variables, using with</secondary>
</indexterm>

<indexterm id="INDEX-3472" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>subshells, environment variables, using with</primary>
</indexterm>

<indexterm id="INDEX-3473" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>HOME variable</primary>
</indexterm>

<indexterm id="INDEX-3474" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>chdir command, calling without argument</primary>
</indexterm>

<indexterm id="INDEX-3475" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>natural languages</primary>
<secondary>environment variables controlling Perl handling of</secondary>
</indexterm>

<indexterm id="INDEX-3476" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>LOGDIR variable</primary>
</indexterm>

<indexterm id="INDEX-3477" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>PATH environment variable</primary>
</indexterm>

<indexterm id="INDEX-3478" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>libraries</primary>
<secondary>Perl library files, searching for</secondary>
</indexterm>

<indexterm id="INDEX-3479" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>PERL5LIB environment variable</primary>
</indexterm>

<indexterm id="INDEX-3480" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>switches, command-line</primary>
<secondary>default, taking switches as</secondary>
</indexterm>

<indexterm id="INDEX-3481" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>PERL5OPT environment variable</primary>
</indexterm>

<indexterm id="INDEX-3482" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>PERL5DB environment variable</primary>
</indexterm>

<indexterm id="INDEX-3483" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>debugging</primary>
<secondary>debugger code, command for loading</secondary>
</indexterm>

<indexterm id="INDEX-3484" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>Microsoft Windows</primary>
<secondary>shell, setting alternative for Perl use</secondary>
</indexterm>

<indexterm id="INDEX-3485" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>PERL5SHELL environment variable</primary>
</indexterm>

<indexterm id="INDEX-3486" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>shells</primary>
<secondary>alternative for Perl, Windows systems</secondary>
</indexterm>

<indexterm id="INDEX-3487" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>COMSPEC environment variable</primary>
</indexterm>

<indexterm id="INDEX-3488" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>malloc function</primary>
<secondary>PERL_DEBUG_MSTATS environment variable, using with</secondary>
</indexterm>

<indexterm id="INDEX-3489" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>memory</primary>
<secondary>statistics on, displaying</secondary>
</indexterm>

<indexterm id="INDEX-3490" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>PERL_DEBUG_MSTATS environment variable</primary>
</indexterm>

<indexterm id="INDEX-3491" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>debugging</primary>
<secondary>global destruction of objects other references, controlling</secondary>
</indexterm>

<indexterm id="INDEX-3492" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>PERL_DESTRUCT_LEVEL environment variable</primary>
</indexterm>

<indexterm id="INDEX-3493" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>destructors</primary>
<secondary>controlling</secondary>
</indexterm>

<indexterm id="INDEX-3494" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>objects</primary>
<secondary>destruction of (global), controlling</secondary>
</indexterm>

<indexterm id="INDEX-3495" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>references</primary>
<secondary>destruction of, controlling</secondary>
</indexterm>

<indexterm id="INDEX-3496" file="ch19_02.htm" sect="19.2. Environment Variables">
<primary>environment variables</primary>
<secondary>modules, Perl use of</secondary>
</indexterm>

<indexterm id="INDEX-3498" file="ch20_01.htm" sect="20. The Perl Debugger">
<primary>debugging</primary>
</indexterm>

<indexterm id="INDEX-3499" file="ch20_01.htm" sect="20. The Perl Debugger">
<primary sortas="s switch">-s (switch) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3500" file="ch20_01.htm" sect="20. The Perl Debugger">
<primary>Perl interpreter</primary>
<secondary sortas="s">-s switch</secondary>
</indexterm>

<indexterm id="INDEX-3501" file="ch20_01.htm" sect="20. The Perl Debugger">
<primary>Perl interpreter</primary>
<secondary sortas="d switch">-d switch</secondary>
</indexterm>

<indexterm id="INDEX-3502" file="ch20_01.htm" sect="20. The Perl Debugger">
<primary sortas="d debug">-d (debug) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3503" file="ch20_01.htm" sect="20. The Perl Debugger">
<primary>troubleshooting</primary>
<seealso>debugging</seealso>
</indexterm>

<indexterm id="INDEX-3504" file="ch20_01.htm" sect="20. The Perl Debugger">
<primary>use warnings pragma</primary>
</indexterm>

<indexterm id="INDEX-3505" file="ch20_01.htm" sect="20. The Perl Debugger">
<primary>breakpoints</primary>
<secondary>setting for debugger</secondary>
</indexterm>

<indexterm id="INDEX-3506" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>commands</primary>
<secondary>history, debugger and</secondary>
</indexterm>

<indexterm id="INDEX-3507" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>history, command</primary>
</indexterm>

<indexterm id="INDEX-3508" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>numbers</primary>
<secondary>command</secondary>
<see>command history, debugger and</see>
</indexterm>

<indexterm id="INDEX-3509" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary sortas="multiline">for multiline commands</secondary>
</indexterm>

<indexterm id="INDEX-3510" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>source code</primary>
<secondary>window around breakpoint, examining</secondary>
</indexterm>

<indexterm id="INDEX-3511" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary sortas="@equal">= (equal sign)</primary>
<secondary sortas="@equalequalright">==&gt; current line marker</secondary>
</indexterm>

<indexterm id="INDEX-3512" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>tracing, stack backtrace (debugger command)</primary>
</indexterm>

<indexterm id="INDEX-3513" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>stacks</primary>
<secondary>backtracing with T command</secondary>
</indexterm>

<indexterm id="INDEX-3514" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary sortas="@dollar">$ (dollar sign)</primary>
<secondary sortas="debugger">in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3515" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary sortas="@at">@ (at sign)</primary>
<secondary sortas="debugger">in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3516" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary sortas="@dot">. (dot)</primary>
<secondary sortas="debugger">in debugger command</secondary>
</indexterm>

<indexterm id="INDEX-3517" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>void context</primary>
<secondary>recognizing in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3518" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>scalar context</primary>
<secondary>recognizing in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3519" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>list context</primary>
<secondary>recognizing in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3520" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>debugging</primary>
<secondary>controlling from programs</secondary>
</indexterm>

<indexterm id="INDEX-3521" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>programs</primary>
<secondary>controlling debugger from</secondary>
</indexterm>

<indexterm id="INDEX-3522" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>compile time, controlling debugger during</primary>
</indexterm>

<indexterm id="INDEX-3523" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>PERLDB_OPTS environment variable</primary>
<secondary>AutoTrace option, tracing compile-phase statements</secondary>
</indexterm>

<indexterm id="INDEX-3524" file="ch20_01.htm" sect="20.1. Using the Debugger">
<primary>breakpoints</primary>
<secondary>setting on load</secondary>
</indexterm>

<indexterm id="INDEX-3525" file="ch20_02.htm" sect="20.2. Debugger Commands">
<primary>debugging</primary>
<secondary>Perl debugger commands</secondary>
</indexterm>

<indexterm id="INDEX-3526" file="ch20_02.htm" sect="20.2. Debugger Commands">
<primary>commands</primary>
<secondary>debugger</secondary>
</indexterm>

<indexterm id="INDEX-3527" file="ch20_02.htm" sect="20.2. Debugger Commands">
<primary sortas="@semicolon">[semi] (semicolon)</primary>
<secondary>in debugger commands</secondary>
</indexterm>

<indexterm id="INDEX-3528" file="ch20_02.htm" sect="20.2. Debugger Commands">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary>entering continued commands in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3529" file="ch20_02.htm" sect="20.2.1. Stepping and Running">
<primary>programs</primary>
<secondary>stepping through with debugger</secondary>
</indexterm>

<indexterm id="INDEX-3530" file="ch20_02.htm" sect="20.2.1. Stepping and Running">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>stepping and running</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch20_02.htm" sect="20.2.1. Stepping and Running">
<primary>stepping through code</primary>
</indexterm>

<indexterm id="INDEX-" file="ch20_02.htm" sect="20.2.1. Stepping and Running">
<primary>subroutine calls</primary>
<secondary>executing without stepping through</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch20_02.htm" sect="20.2.1. Stepping and Running">
<primary sortas="@dot">. (dot)</primary>
<secondary sortas="debugger">in debugger command</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch20_02.htm" sect="20.2.1. Stepping and Running">
<primary>return value</primary>
<secondary>currently executing subroutine, displaying in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3531" file="ch20_02.htm" sect="20.2.2. Breakpoints">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>breakpoints</tertiary>
</indexterm>

<indexterm id="INDEX-3532" file="ch20_02.htm" sect="20.2.2. Breakpoints">
<primary>breakpoints</primary>
<secondary>setting with debugger commands</secondary>
</indexterm>

<indexterm id="INDEX-3533" file="ch20_02.htm" sect="20.2.2. Breakpoints">
<primary>breakpoints</primary>
<secondary>deleting</secondary>
</indexterm>

<indexterm id="INDEX-3534" file="ch20_02.htm" sect="20.2.2. Breakpoints">
<primary>deleting</primary>
<secondary>breakpoints</secondary>
</indexterm>

<indexterm id="INDEX-3535" file="ch20_02.htm" sect="20.2.2. Breakpoints">
<primary>breakpoints</primary>
<secondary>listing all</secondary>
</indexterm>

<indexterm id="INDEX-3536" file="ch20_02.htm" sect="20.2.2. Breakpoints">
<primary>actions (debugger)</primary>
<secondary>listing all</secondary>
</indexterm>

<indexterm id="INDEX-3537" file="ch20_02.htm" sect="20.2.3. Tracing">
<primary>tracing</primary>
<secondary>stack backtrace, debugger T command</secondary>
</indexterm>

<indexterm id="INDEX-3538" file="ch20_02.htm" sect="20.2.3. Tracing">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>tracing</tertiary>
</indexterm>

<indexterm id="INDEX-3539" file="ch20_02.htm" sect="20.2.3. Tracing">
<primary>toggling trace mode (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3540" file="ch20_02.htm" sect="20.2.3. Tracing">
<primary>watch expressions</primary>
</indexterm>

<indexterm id="INDEX-3541" file="ch20_02.htm" sect="20.2.3. Tracing">
<primary>breakpoints</primary>
<secondary>watch expressions, causing</secondary>
</indexterm>

<indexterm id="INDEX-3542" file="ch20_02.htm" sect="20.2.4. Display">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary sortas="display">for display</tertiary>
</indexterm>

<indexterm id="INDEX-3543" file="ch20_02.htm" sect="20.2.4. Display">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary sortas="display">for display</tertiary>
</indexterm>

<indexterm id="INDEX-3544" file="ch20_02.htm" sect="20.2.4. Display">
<primary>printing</primary>
<secondary>nested data structures</secondary>
</indexterm>

<indexterm id="INDEX-3545" file="ch20_02.htm" sect="20.2.4. Display">
<primary>nested</primary>
<secondary>data structures, printed</secondary>
</indexterm>

<indexterm id="INDEX-3546" file="ch20_02.htm" sect="20.2.4. Display">
<primary>list context</primary>
<secondary>evaluating expressions in (debugger)</secondary>
</indexterm>

<indexterm id="INDEX-3547" file="ch20_02.htm" sect="20.2.4. Display">
<primary>variables</primary>
<secondary>package, displaying</secondary>
</indexterm>

<indexterm id="INDEX-3548" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>locating code</tertiary>
</indexterm>

<indexterm id="INDEX-3549" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary>code</primary>
<secondary>extracting and displaying with debugger</secondary>
</indexterm>

<indexterm id="INDEX-3550" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary>listing code</primary>
</indexterm>

<indexterm id="INDEX-3551" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary sortas="@hyphen">- (hyphen)</primary>
<secondary sortas="debugger commands">in debugger commands</secondary>
</indexterm>

<indexterm id="INDEX-3552" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary>filenames</primary>
<secondary>viewing different program or eval statement</secondary>
</indexterm>

<indexterm id="INDEX-3553" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary>patterns</primary>
<secondary>debugger, commands for matching</secondary>
</indexterm>

<indexterm id="INDEX-3554" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary>m// (matching) operator</primary>
</indexterm>

<indexterm id="INDEX-3555" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary sortas="@slash">/ (slash)</primary>
<secondary>debugger command</secondary>
</indexterm>

<indexterm id="INDEX-3556" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary>m?? (match) operator</primary>
</indexterm>

<indexterm id="INDEX-3557" file="ch20_02.htm" sect="20.2.5. Locating Code">
<primary>subroutines</primary>
<secondary>debugger command for pattern match listings</secondary>
</indexterm>

<indexterm id="INDEX-3558" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>actions and</tertiary>
</indexterm>

<indexterm id="INDEX-3559" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary>actions (debugger)</primary>
<secondary>command execution, specifying from debugger</secondary>
</indexterm>

<indexterm id="INDEX-3560" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary>deleting</primary>
<secondary>all debugger actions</secondary>
</indexterm>

<indexterm id="INDEX-3561" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary sortas="@lessthan">&lt; (left angle bracket)</primary>
<secondary sortas="debugger">in debugger commands</secondary>
</indexterm>

<indexterm id="INDEX-3562" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary sortas="@right">&gt; (right angle bracket)</primary>
<secondary sortas="debugger commands">in debugger commands</secondary>
</indexterm>

<indexterm id="INDEX-3563" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary sortas="@braces">{ (braces)</primary>
<secondary sortas="debugger commands">in debugger commands</secondary>
</indexterm>

<indexterm id="INDEX-3564" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary sortas="@bang">! (bang)</primary>
<secondary sortas="debugger commands">in debugger commands</secondary>
</indexterm>

<indexterm id="INDEX-3565" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary sortas="@bang">! (bang)</primary>
<secondary sortas="@bangbang">!! debugger command</secondary>
</indexterm>

<indexterm id="INDEX-3566" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary>shells</primary>
<secondary>debugger commands and</secondary>
</indexterm>

<indexterm id="INDEX-3567" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary>debugger command</secondary>
</indexterm>

<indexterm id="INDEX-3568" file="ch20_02.htm" sect="20.2.6. Actions and Command Execution">
<primary sortas="@vertical">| (vertical bar)</primary>
<secondary sortas="@verticalvertical">|| debugger command</secondary>
</indexterm>

<indexterm id="INDEX-3569" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>quitting debugger</tertiary>
</indexterm>

<indexterm id="INDEX-3570" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>quitting</primary>
<secondary>Perl debugger</secondary>
</indexterm>

<indexterm id="INDEX-3571" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>exiting</primary>
<secondary>Perl debugger</secondary>
</indexterm>

<indexterm id="INDEX-3572" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>restarting debugger</tertiary>
</indexterm>

<indexterm id="INDEX-3573" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary sortas="@equal">= (equal sign)</primary>
<secondary>debugger command</secondary>
</indexterm>

<indexterm id="INDEX-3574" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>aliases</primary>
<secondary>debugger command for</secondary>
</indexterm>

<indexterm id="INDEX-3575" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>man command</primary>
</indexterm>

<indexterm id="INDEX-3576" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>documentation, viewing</tertiary>
</indexterm>

<indexterm id="INDEX-3577" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>documentation</primary>
<secondary>default system viewer, calling</secondary>
</indexterm>

<indexterm id="INDEX-3578" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>perldoc command</primary>
<secondary>debugger invoking</secondary>
</indexterm>

<indexterm id="INDEX-3579" file="ch20_02.htm" sect="20.2.7. Miscellaneous Commands">
<primary>commands</primary>
<secondary>debugger</secondary>
<tertiary>options, manipulating</tertiary>
</indexterm>

<indexterm id="INDEX-3582" file="ch20_03.htm" sect="20.3. Debugger Customization">
<primary>customization</primary>
<secondary>debugger</secondary>
</indexterm>

<indexterm id="INDEX-3583" file="ch20_03.htm" sect="20.3. Debugger Customization">
<primary>debugging</primary>
<secondary>debugger customization</secondary>
</indexterm>

<indexterm id="INDEX-3584" file="ch20_03.htm" sect="20.3. Debugger Customization">
<primary>PERLDB_OPTS environment variable</primary>
<secondary>debugger customization via</secondary>
</indexterm>

<indexterm id="INDEX-3585" file="ch20_03.htm" sect="20.3.1. Editor Support for Debugging">
<primary>editors, support for debugging</primary>
</indexterm>

<indexterm id="INDEX-3586" file="ch20_03.htm" sect="20.3.1. Editor Support for Debugging">
<primary>customization</primary>
<secondary>debugger</secondary>
<tertiary>editor support for</tertiary>
</indexterm>

<indexterm id="INDEX-3587" file="ch20_03.htm" sect="20.3.1. Editor Support for Debugging">
<primary>Term::ReadKey module</primary>
</indexterm>

<indexterm id="INDEX-3588" file="ch20_03.htm" sect="20.3.1. Editor Support for Debugging">
<primary>Term::ReadLine module</primary>
</indexterm>

<indexterm id="INDEX-3589" file="ch20_03.htm" sect="20.3.1. Editor Support for Debugging">
<primary>emacs</primary>
<secondary>editor support for debugger</secondary>
</indexterm>

<indexterm id="INDEX-3590" file="ch20_03.htm" sect="20.3.1. Editor Support for Debugging">
<primary>vi editor</primary>
<secondary>debugger, support for</secondary>
</indexterm>

<indexterm id="INDEX-3591" file="ch20_03.htm" sect="20.3.2. Customizing with Init Files">
<primary>customization</primary>
<secondary>debugger</secondary>
<tertiary>init files, using</tertiary>
</indexterm>

<indexterm id="INDEX-3592" file="ch20_03.htm" sect="20.3.2. Customizing with Init Files">
<primary>initialization</primary>
<secondary>debugger, customizing with init files</secondary>
</indexterm>

<indexterm id="INDEX-3593" file="ch20_03.htm" sect="20.3.2. Customizing with Init Files">
<primary>PERL5DB environment variable</primary>
<secondary>debugger, customizing with</secondary>
</indexterm>

<indexterm id="INDEX-3594" file="ch20_03.htm" sect="20.3.2. Customizing with Init Files">
<primary>variables</primary>
<secondary>debugger, customizing</secondary>
</indexterm>

<indexterm id="INDEX-3595" file="ch20_03.htm" sect="20.3.2. Customizing with Init Files">
<primary>functions</primary>
<secondary>debugger, calling internal</secondary>
</indexterm>

<indexterm id="INDEX-3596" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>customization</primary>
<secondary>debugger</secondary>
<tertiary>debugger options</tertiary>
</indexterm>

<indexterm id="INDEX-3597" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>debugging</primary>
<secondary>debugger, customizing</secondary>
<tertiary>options</tertiary>
</indexterm>

<indexterm id="INDEX-3598" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>shells</primary>
<secondary>spawning, characters for</secondary>
</indexterm>

<indexterm id="INDEX-3599" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>commands</primary>
<secondary>recalling, debugger option</secondary>
</indexterm>

<indexterm id="INDEX-3600" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>recallCommand option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3601" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>pager option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3602" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>tkRunning option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3603" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>signal level option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3604" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>warnLevel option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3605" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>dieLevel option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3606" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>verbosity</primary>
<secondary>debugger, setting levels of</secondary>
</indexterm>

<indexterm id="INDEX-3607" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>AutoTrace option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3608" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>LineInfo option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3609" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>inhibit_exit option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3610" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>exiting</primary>
<secondary>debugger</secondary>
</indexterm>

<indexterm id="INDEX-3611" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>PrintRet option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3612" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>ornaments option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3613" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>screen appearance of command line</primary>
</indexterm>

<indexterm id="INDEX-3614" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>command line</primary>
<secondary>screen appearance of</secondary>
</indexterm>

<indexterm id="INDEX-3615" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>frame option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3616" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>messages</primary>
<secondary>printing on entry and exit from subroutines</secondary>
</indexterm>

<indexterm id="INDEX-3617" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>maxTraceLen option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3618" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>truncating argument list</primary>
</indexterm>

<indexterm id="INDEX-3619" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>arrayDepth option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3620" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>hashDepth option (debugger)</primary>
</indexterm>

<indexterm id="INDEX-3621" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>output</primary>
<secondary>array and hash, changing style (debugger)</secondary>
</indexterm>

<indexterm id="INDEX-3622" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>arrays</primary>
<secondary>output style, changing in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3623" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>hashes</primary>
<secondary>output style, changing in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3624" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>printing</primary>
<secondary>typeglob contents</secondary>
</indexterm>

<indexterm id="INDEX-3625" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>typeglobs</primary>
<secondary>printing contents of</secondary>
</indexterm>

<indexterm id="INDEX-3626" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>symbol tables</primary>
<secondary>displaying for packages</secondary>
</indexterm>

<indexterm id="INDEX-3627" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>packages</primary>
<secondary>symbol tables</secondary>
<tertiary>displaying</tertiary>
</indexterm>

<indexterm id="INDEX-3628" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>addresses</primary>
<secondary>reused, displaying contents of</secondary>
</indexterm>

<indexterm id="INDEX-3629" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>reused addresses, displaying contents of</primary>
</indexterm>

<indexterm id="INDEX-3630" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>strings</primary>
<secondary>display, changing in debugger</secondary>
</indexterm>

<indexterm id="INDEX-3631" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>quotation marks</primary>
<secondary>strings</secondary>
<tertiary>changing style of string display</tertiary>
</indexterm>

<indexterm id="INDEX-3632" file="ch20_03.htm" sect="20.3.3. Debugger Options">
<primary>variables</primary>
<secondary>package, memory usage</secondary>
</indexterm>

<indexterm id="INDEX-3637" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>debugging</primary>
<secondary>debugger, unattended execution</secondary>
</indexterm>

<indexterm id="INDEX-3638" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>execution</primary>
<secondary>unattended, debugger</secondary>
</indexterm>

<indexterm id="INDEX-3639" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>terminal, setting for debugging I/O</primary>
</indexterm>

<indexterm id="INDEX-3640" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>Term::Rendezvous module</primary>
</indexterm>

<indexterm id="INDEX-3641" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>input</primary>
<secondary>debugger, setting</secondary>
</indexterm>

<indexterm id="INDEX-3642" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>output</primary>
<secondary>debugger, setting</secondary>
</indexterm>

<indexterm id="INDEX-3643" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>ReadLine module, disabling support to debugger</primary>
</indexterm>

<indexterm id="INDEX-3644" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>noninteractive mode, putting debugger in</primary>
</indexterm>

<indexterm id="INDEX-3645" file="ch20_04.htm" sect="20.4. Unattended Execution">
<primary>environment variables</primary>
<secondary>PERLDB_OPTS, setting debugger options with</secondary>
</indexterm>

<indexterm id="INDEX-3646" file="ch20_05.htm" sect="20.5. Debugger Support">
<primary>debugging</primary>
<secondary>debugger support, Perl</secondary>
</indexterm>

<indexterm id="INDEX-3647" file="ch20_05.htm" sect="20.5.1. Writing Your Own Debugger">
<primary>functions</primary>
<secondary>debugger customization</secondary>
</indexterm>

<indexterm id="INDEX-3648" file="ch20_05.htm" sect="20.5.1. Writing Your Own Debugger">
<primary>customization</primary>
<secondary>debugger</secondary>
<tertiary>functions for</tertiary>
</indexterm>

<indexterm id="INDEX-3649" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>perl interpreter program </primary>
<secondary sortas="d switch">-d switch </secondary>
</indexterm>

<indexterm id="INDEX-3650" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary sortas="d switch">-d switch, perl </primary>
</indexterm>

<indexterm id="INDEX-3651" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>DProf</primary>
<see>Devel::Dprof module</see>
</indexterm>

<indexterm id="INDEX-3652" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>Devel::Dprof module</primary>
<secondary>profiling subroutine execution with</secondary>
</indexterm>

<indexterm id="INDEX-3653" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>Devel::Dprof module</primary>
</indexterm>

<indexterm id="INDEX-3654" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>efficiency</primary>
<secondary>profiling</secondary>
</indexterm>

<indexterm id="INDEX-3655" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>speed</primary>
<see>efficiency</see>
</indexterm>

<indexterm id="INDEX-3656" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>profiler, Perl</primary>
</indexterm>

<indexterm id="INDEX-3657" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>timing</primary>
<secondary>comparing for subroutines' execution</secondary>
</indexterm>

<indexterm id="INDEX-3658" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>dbprofpp program</primary>
</indexterm>

<indexterm id="INDEX-3660" file="ch20_06.htm" sect="20.6. The Perl Profiler">
<primary>Devel::SmallProf module</primary>
</indexterm>

<indexterm id="INDEX-3664" file="ch21_01.htm" sect="21. Internals and Externals">
<primary>guts</primary>
</indexterm>

<indexterm id="INDEX-3665" file="ch21_01.htm" sect="21. Internals and Externals">
<primary>bytecode</primary>
</indexterm>

<indexterm id="INDEX-3666" file="ch21_01.htm" sect="21. Internals and Externals">
<primary>compilation</primary>
</indexterm>

<indexterm id="INDEX-3667" file="ch21_01.htm" sect="21. Internals and Externals">
<primary>C language</primary>
<secondary>Perl extensions and</secondary>
</indexterm>

<indexterm id="INDEX-3668" file="ch21_01.htm" sect="21. Internals and Externals">
<primary>embedding Perl</primary>
<secondary>perl interpreter program</secondary>
</indexterm>

<indexterm id="INDEX-3669" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary>lexical analysis</primary>
</indexterm>

<indexterm id="INDEX-3670" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary>tokenization</primary>
<seealso>lexical analysis</seealso>
</indexterm>

<indexterm id="INDEX-3671" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary>parsing</primary>
</indexterm>

<indexterm id="INDEX-3672" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary>compilation phase, processing Perl program</primary>
</indexterm>

<indexterm id="INDEX-3673" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary>opcodes</primary>
</indexterm>

<indexterm id="INDEX-3674" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary sortas="c check">-c (check syntax) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-3675" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary>BEGIN blocks</primary>
</indexterm>

<indexterm id="INDEX-3676" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary>CHECK blocks</primary>
</indexterm>

<indexterm id="INDEX-3677" file="ch21_01.htm" sect="21.1. How Perl Works">
<primary>use statement</primary>
</indexterm>

<indexterm id="INDEX-3678" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>data types</primary>
<secondary>internal, Perl and C</secondary>
</indexterm>

<indexterm id="INDEX-3679" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>SV (internal scalar value)</primary>
</indexterm>

<indexterm id="INDEX-3680" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>AV (internal array value)</primary>
</indexterm>

<indexterm id="INDEX-3681" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>IV (internal integer value)</primary>
</indexterm>

<indexterm id="INDEX-3682" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>integers</primary>
<secondary>IV (internal integer values)</secondary>
</indexterm>

<indexterm id="INDEX-3683" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>HV (internal hash value)</primary>
</indexterm>

<indexterm id="INDEX-3684" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>UV (internal unsigned integer value)</primary>
</indexterm>

<indexterm id="INDEX-3685" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>NV (internal double value)</primary>
</indexterm>

<indexterm id="INDEX-3686" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>PV (internal string value)</primary>
</indexterm>

<indexterm id="INDEX-3687" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>RV (internal reference value)</primary>
</indexterm>

<indexterm id="INDEX-3688" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>GV (internal glob value)</primary>
</indexterm>

<indexterm id="INDEX-3689" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>typedefs (C language)</primary>
</indexterm>

<indexterm id="INDEX-3690" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>arrays</primary>
<secondary>AV (array value) typedef in C, corresponding to</secondary>
</indexterm>

<indexterm id="INDEX-3691" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>scalars</primary>
<secondary>SV (scalar value) in C</secondary>
</indexterm>

<indexterm id="INDEX-3692" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>hashes</primary>
<secondary>HV (hash value) typedef in C</secondary>
</indexterm>

<indexterm id="INDEX-3693" file="ch21_02.htm" sect="21.2. Internal Data Types">
<primary>integers</primary>
<secondary>IV typedef in C</secondary>
</indexterm>

<indexterm id="INDEX-3694" file="ch21_03.htm" sect="21.3. Extending Perl (Using C from Perl)">
<primary>C language</primary>
<secondary>Perl, extending with</secondary>
</indexterm>

<indexterm id="INDEX-3695" file="ch21_03.htm" sect="21.3. Extending Perl (Using C from Perl)">
<primary>Perl</primary>
<secondary>C, using from</secondary>
</indexterm>

<indexterm id="INDEX-3696" file="ch21_03.htm" sect="21.3. Extending Perl (Using C from Perl)">
<primary>extending Perl</primary>
</indexterm>

<indexterm id="INDEX-3697" file="ch21_03.htm" sect="21.3. Extending Perl (Using C from Perl)">
<primary>XSUBs</primary>
<seealso>XS</seealso>
</indexterm>

<indexterm id="INDEX-3698" file="ch21_03.htm" sect="21.3. Extending Perl (Using C from Perl)">
<primary>XSUBs</primary>
<secondary>wrapping subroutines for Perl</secondary>
</indexterm>

<indexterm id="INDEX-3699" file="ch21_03.htm" sect="21.3. Extending Perl (Using C from Perl)">
<primary>dynamic linking</primary>
<secondary>C source code from Perl</secondary>
</indexterm>

<indexterm id="INDEX-3700" file="ch21_03.htm" sect="21.3. Extending Perl (Using C from Perl)">
<primary>subroutines</primary>
<secondary>external (XSUBs)</secondary>
</indexterm>

<indexterm id="INDEX-3701" file="ch21_03.htm" sect="21.3. Extending Perl (Using C from Perl)">
<primary>XS language</primary>
<secondary>external subroutines, wrapping</secondary>
</indexterm>

<indexterm id="INDEX-3702" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>XS language</primary>
<secondary>functions, mapping between C and Perl</secondary>
</indexterm>

<indexterm id="INDEX-3703" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>extending Perl</primary>
<secondary>XSUBs and XS language, wrapping Perl in</secondary>
</indexterm>

<indexterm id="INDEX-3704" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>Perl</primary>
<secondary>C, using from</secondary>
<tertiary>XSUBs and XS language</tertiary>
</indexterm>

<indexterm id="INDEX-3705" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>C language</primary>
<secondary>Perl, extending with</secondary>
<tertiary>XSUBs and XS language</tertiary>
</indexterm>

<indexterm id="INDEX-3706" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>XSUBs</primary>
<seealso>XS</seealso>
</indexterm>

<indexterm id="INDEX-3707" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>xsubpp compiler</primary>
</indexterm>

<indexterm id="INDEX-3708" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>SWIG</primary>
</indexterm>

<indexterm id="INDEX-3709" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>SWIG system</primary>
<secondary>XSUBs, automatically generating</secondary>
</indexterm>

<indexterm id="INDEX-3710" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>h2xs utility</primary>
</indexterm>

<indexterm id="INDEX-3711" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>functions</primary>
<secondary>Perl, wrapping around C</secondary>
</indexterm>

<indexterm id="INDEX-3712" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>C language</primary>
<secondary>Perl functions, wrapping around</secondary>
</indexterm>

<indexterm id="INDEX-3713" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>static linking</primary>
</indexterm>

<indexterm id="INDEX-3714" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>dynamic linking</primary>
</indexterm>

<indexterm id="INDEX-3715" file="ch21_03.htm" sect="21.3.1. XS and XSUBs">
<primary>typemap</primary>
</indexterm>

<indexterm id="INDEX-3716" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>extending Perl</primary>
<secondary>extensions, creating</secondary>
</indexterm>

<indexterm id="INDEX-3717" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>Perl</primary>
<secondary>C, using from</secondary>
<tertiary>creating extensions</tertiary>
</indexterm>

<indexterm id="INDEX-3718" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>C language</primary>
<secondary>Perl, extending with</secondary>
<tertiary>creating extensions</tertiary>
</indexterm>

<indexterm id="INDEX-3719" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>h2xs utility</primary>
</indexterm>

<indexterm id="INDEX-3720" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>Makefile.PL</primary>
</indexterm>

<indexterm id="INDEX-3721" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>modules</primary>
<secondary>testing</secondary>
</indexterm>

<indexterm id="INDEX-3722" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>test.pl</primary>
</indexterm>

<indexterm id="INDEX-" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>MANIFEST file</primary>
</indexterm>

<indexterm id="INDEX-" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>Exporter</primary>
</indexterm>

<indexterm id="INDEX-" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>DynaLoader</primary>
</indexterm>

<indexterm id="INDEX-" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>bootstrapping modules</primary>
</indexterm>

<indexterm id="INDEX-3723" file="ch21_03.htm" sect="21.3.2. Creating Extensions">
<primary>blib</primary>
</indexterm>

<indexterm id="INDEX-3727" file="ch21_03.htm" sect="21.3.3. XSUB Input and Output">
<primary>input</primary>
<secondary>XSUBs</secondary>
</indexterm>

<indexterm id="INDEX-3728" file="ch21_03.htm" sect="21.3.3. XSUB Input and Output">
<primary>output</primary>
<secondary>XSUBs</secondary>
</indexterm>

<indexterm id="INDEX-3729" file="ch21_03.htm" sect="21.3.3. XSUB Input and Output">
<primary>XSUBs</primary>
<secondary>input and output</secondary>
</indexterm>

<indexterm id="INDEX-3730" file="ch21_03.htm" sect="21.3.3. XSUB Input and Output">
<primary>extending Perl</primary>
<secondary>XSUB input and output</secondary>
</indexterm>

<indexterm id="INDEX-3731" file="ch21_03.htm" sect="21.3.3. XSUB Input and Output">
<primary>Perl</primary>
<secondary>C, extending with</secondary>
<tertiary>XSUB input and output</tertiary>
</indexterm>

<indexterm id="INDEX-3732" file="ch21_03.htm" sect="21.3.3. XSUB Input and Output">
<primary>C language</primary>
<secondary>Perl, using from</secondary>
<tertiary>XSUB input and output</tertiary>
</indexterm>

<indexterm id="INDEX-3733" file="ch21_03.htm" sect="21.3.3. XSUB Input and Output">
<primary>modules</primary>
<secondary>testing</secondary>
</indexterm>

<indexterm id="INDEX-3734" file="ch21_03.htm" sect="21.3.3. XSUB Input and Output">
<primary>test.pl</primary>
</indexterm>

<indexterm id="INDEX-3735" file="ch21_03.htm" sect="21.3.4. Using Functions from an External C Library">
<primary>extending Perl</primary>
<secondary>using functions from external C libraby</secondary>
</indexterm>

<indexterm id="INDEX-3736" file="ch21_03.htm" sect="21.3.4. Using Functions from an External C Library">
<primary>C language</primary>
<secondary>Perl, extending with</secondary>
<tertiary>external C library, using functions from</tertiary>
</indexterm>

<indexterm id="INDEX-3737" file="ch21_03.htm" sect="21.3.4. Using Functions from an External C Library">
<primary>Perl</primary>
<secondary>C, using from</secondary>
<tertiary>external C library functions, using</tertiary>
</indexterm>

<indexterm id="INDEX-3738" file="ch21_03.htm" sect="21.3.4. Using Functions from an External C Library">
<primary>math library, C language</primary>
</indexterm>

<indexterm id="INDEX-3739" file="ch21_03.htm" sect="21.3.4. Using Functions from an External C Library">
<primary>libraries</primary>
<secondary>math library, C</secondary>
</indexterm>

<indexterm id="INDEX-3743" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>embedding Perl</primary>
</indexterm>

<indexterm id="INDEX-3744" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>Perl</primary>
<secondary>embedding in C</secondary>
</indexterm>

<indexterm id="INDEX-3745" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>C language</primary>
<secondary>Perl, using from</secondary>
</indexterm>

<indexterm id="INDEX-3746" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>IPC::Open2</primary>
</indexterm>

<indexterm id="INDEX-3747" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>IPC::Open3</primary>
</indexterm>

<indexterm id="INDEX-3748" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>interpreter, Perl</primary>
<secondary>accessing from C</secondary>
</indexterm>

<indexterm id="INDEX-3749" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>popen function (C language)</primary>
</indexterm>

<indexterm id="INDEX-3750" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>interpreter, Perl</primary>
<secondary>persistent</secondary>
</indexterm>

<indexterm id="INDEX-3751" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>persistent Perl interpreter</primary>
</indexterm>

<indexterm id="INDEX-3752" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>Apache web server</primary>
</indexterm>

<indexterm id="INDEX-3753" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>mod_perl module</primary>
</indexterm>

<indexterm id="INDEX-3754" file="ch21_04.htm" sect="21.4. Embedding Perl (Using Perl from C)">
<primary>perlembed manpage</primary>
</indexterm>

<indexterm id="INDEX-3755" file="ch21_04.htm" sect="21.4.1. Compiling Embedded Programs">
<primary>embedding Perl</primary>
<secondary>compiling embedded programs</secondary>
</indexterm>

<indexterm id="INDEX-3756" file="ch21_04.htm" sect="21.4.1. Compiling Embedded Programs">
<primary>compiling</primary>
<secondary>embedded Perl program (in C)</secondary>
</indexterm>

<indexterm id="INDEX-3757" file="ch21_04.htm" sect="21.4.1. Compiling Embedded Programs">
<primary>Perl</primary>
<secondary>embedding in C</secondary>
<tertiary>compiling embedded programs</tertiary>
</indexterm>

<indexterm id="INDEX-3758" file="ch21_04.htm" sect="21.4.1. Compiling Embedded Programs">
<primary>C language</primary>
<secondary>Perl, using from</secondary>
<tertiary>compiling embedded Perl programs</tertiary>
</indexterm>

<indexterm id="INDEX-3759" file="ch21_04.htm" sect="21.4.1. Compiling Embedded Programs">
<primary>%Config hash</primary>
</indexterm>

<indexterm id="INDEX-3760" file="ch21_04.htm" sect="21.4.1. Compiling Embedded Programs">
<primary>ExtUtils::Embed module</primary>
</indexterm>

<indexterm id="INDEX-3761" file="ch21_04.htm" sect="21.4.2. Adding a Perl Interpreter to Your C Program">
<primary>interpreter, Perl</primary>
<secondary>adding to C program</secondary>
</indexterm>

<indexterm id="INDEX-3762" file="ch21_04.htm" sect="21.4.2. Adding a Perl Interpreter to Your C Program">
<primary>embedding Perl</primary>
<secondary>adding Perl interpreter to C program</secondary>
</indexterm>

<indexterm id="INDEX-3763" file="ch21_04.htm" sect="21.4.2. Adding a Perl Interpreter to Your C Program">
<primary>C language</primary>
<secondary>Perl, using from</secondary>
<tertiary>adding Perl interpreter</tertiary>
</indexterm>

<indexterm id="INDEX-3764" file="ch21_04.htm" sect="21.4.2. Adding a Perl Interpreter to Your C Program">
<primary>Perl</primary>
<secondary>embedding in C</secondary>
<tertiary>Perl interpreter, adding to C program</tertiary>
</indexterm>

<indexterm id="INDEX-3765" file="ch21_04.htm" sect="21.4.3. Calling a Perl Subroutine from C">
<primary>subroutines</primary>
<secondary>Perl, calling from C</secondary>
</indexterm>

<indexterm id="INDEX-3766" file="ch21_04.htm" sect="21.4.3. Calling a Perl Subroutine from C">
<primary>Perl</primary>
<secondary>embedding in C</secondary>
<tertiary>Perl subroutine, calling from C</tertiary>
</indexterm>

<indexterm id="INDEX-3767" file="ch21_04.htm" sect="21.4.3. Calling a Perl Subroutine from C">
<primary>C language</primary>
<secondary>Perl, using from</secondary>
<tertiary>Perl subroutine, calling from</tertiary>
</indexterm>

<indexterm id="INDEX-3768" file="ch21_04.htm" sect="21.4.4. Evaluating a Perl Statement from C">
<primary>statements</primary>
<secondary>Perl, evaluating from C</secondary>
</indexterm>

<indexterm id="INDEX-3769" file="ch21_04.htm" sect="21.4.4. Evaluating a Perl Statement from C">
<primary>Perl</primary>
<secondary>embedding in C</secondary>
<tertiary>Perl statement, evaluating from C</tertiary>
</indexterm>

<indexterm id="INDEX-3770" file="ch21_04.htm" sect="21.4.4. Evaluating a Perl Statement from C">
<primary>C language</primary>
<secondary>Perl, using from</secondary>
<tertiary>Perl statement, evaluating</tertiary>
</indexterm>

<indexterm id="INDEX-3771" file="ch21_04.htm" sect="21.4.4. Evaluating a Perl Statement from C">
<primary>embedding Perl</primary>
<secondary>evaluating Perl statement from C</secondary>
</indexterm>

<indexterm id="INDEX-3772" file="ch21_04.htm" sect="21.4.4. Evaluating a Perl Statement from C">
<primary>eval_sv and eval_pv functions</primary>
</indexterm>

<indexterm id="INDEX-3773" file="ch21_04.htm" sect="21.4.4. Evaluating a Perl Statement from C">
<primary>perlapi manpage</primary>
</indexterm>

<indexterm id="INDEX-3774" file="ch21_04.htm" sect="21.4.4. Evaluating a Perl Statement from C">
<primary>scalars</primary>
<secondary>Perl, converting to C types</secondary>
</indexterm>

<indexterm id="INDEX-3775" file="ch21_04.htm" sect="21.4.4. Evaluating a Perl Statement from C">
<primary>perlembed manpage</primary>
<secondary>eval_sv function, demonstrating</secondary>
</indexterm>

<indexterm id="INDEX-3776" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>Perl</primary>
<secondary>embedding in C</secondary>
<tertiary>Perl stack, manipulating from C</tertiary>
</indexterm>

<indexterm id="INDEX-3777" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>C language</primary>
<secondary>Perl, running from</secondary>
<tertiary>Perl stack, manipulating</tertiary>
</indexterm>

<indexterm id="INDEX-3778" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>embedding Perl</primary>
<secondary>Perl stack, manipulating from C</secondary>
</indexterm>

<indexterm id="INDEX-3779" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>stacks</primary>
<secondary>Perl, manipulating from C</secondary>
</indexterm>

<indexterm id="INDEX-3780" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>data types</primary>
<secondary>converting between C and Perl</secondary>
</indexterm>

<indexterm id="INDEX-3781" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>converting</primary>
<secondary>data types between C and Perl</secondary>
</indexterm>

<indexterm id="INDEX-3782" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>perlcall manpage</primary>
</indexterm>

<indexterm id="INDEX-3783" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>integers</primary>
<secondary>exponentiation</secondary>
</indexterm>

<indexterm id="INDEX-3784" file="ch21_04.htm" sect="21.4.5. Fiddling with the Perl Stack from C">
<primary>exponentiation of integers</primary>
</indexterm>

<indexterm id="INDEX-3788" file="ch22_01.htm" sect="22. CPAN">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
</indexterm>

<indexterm id="INDEX-3789" file="ch22_01.htm" sect="22. CPAN">
<primary>Perl</primary>
<secondary>CPAN (Comprehensive Perl Archive Network)</secondary>
</indexterm>

<indexterm id="INDEX-3790" file="ch22_01.htm" sect="22. CPAN">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>subdirectories</secondary>
</indexterm>

<indexterm id="INDEX-3791" file="ch22_01.htm" sect="22. CPAN">
<primary>doc directory (CPAN), official Perl manpages</primary>
</indexterm>

<indexterm id="INDEX-3792" file="ch22_01.htm" sect="22. CPAN">
<primary>manpages</primary>
<secondary>CPAN doc subdirectory, containing</secondary>
</indexterm>

<indexterm id="INDEX-3793" file="ch22_01.htm" sect="22. CPAN">
<primary>modules</primary>
<secondary>CPAN directory for</secondary>
</indexterm>

<indexterm id="INDEX-3794" file="ch22_01.htm" sect="22. CPAN">
<primary>ports</primary>
<secondary>Perl, to operating systems</secondary>
</indexterm>

<indexterm id="INDEX-3795" file="ch22_01.htm" sect="22. CPAN">
<primary>operating systems</primary>
<secondary>Perl ports to</secondary>
</indexterm>

<indexterm id="INDEX-3796" file="ch22_01.htm" sect="22. CPAN">
<primary>scripts</primary>
<secondary>Perl, CPAN directory of</secondary>
</indexterm>

<indexterm id="INDEX-3797" file="ch22_01.htm" sect="22. CPAN">
<primary>src directory (CPAN)</primary>
</indexterm>

<indexterm id="INDEX-3798" file="ch22_01.htm" sect="22. CPAN">
<primary>source code</primary>
<secondary>CPAN, for Perl distribution</secondary>
</indexterm>

<indexterm id="INDEX-3799" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>modules</primary>
<secondary>CPAN</secondary>
</indexterm>

<indexterm id="INDEX-3800" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>modules directory</secondary>
</indexterm>

<indexterm id="INDEX-3801" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>bundles</primary>
</indexterm>

<indexterm id="INDEX-3802" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>modules</primary>
<secondary>CPAN</secondary>
<tertiary>categories of</tertiary>
</indexterm>

<indexterm id="INDEX-3803" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>modules</secondary>
<tertiary>categories of modules</tertiary>
</indexterm>

<indexterm id="INDEX-3804" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Java, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3805" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>pod</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3806" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>source filters</primary>
</indexterm>

<indexterm id="INDEX-3807" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>core modules, Perl</primary>
</indexterm>

<indexterm id="INDEX-3808" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>language extensions, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3809" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>compiler, Perl</primary>
<secondary>modules related to</secondary>
</indexterm>

<indexterm id="INDEX-3810" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>development support, modules for</primary>
</indexterm>

<indexterm id="INDEX-3811" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>operating systems</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3812" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>PalmPilot, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3813" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>serial ports, Perl modules for </primary>
</indexterm>

<indexterm id="INDEX-3814" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>hardware drivers, Perl modules for interacting with</primary>
</indexterm>

<indexterm id="INDEX-3815" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>networking</primary>
<secondary>modules implementing network protocols</secondary>
</indexterm>

<indexterm id="INDEX-3816" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Internet protocols, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3817" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>modems, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3818" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>household appliances, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3819" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>math, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3820" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>statistics, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3821" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>algorithms</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3822" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>data structures</primary>
</indexterm>

<indexterm id="INDEX-3823" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>dates</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3824" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>times, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3825" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>object-oriented programming</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3826" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>PDL (Perl Data Language)</primary>
</indexterm>

<indexterm id="INDEX-3827" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>POE (Perl Object Environment)</primary>
</indexterm>

<indexterm id="INDEX-3828" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>DBI (Database Interface)</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3829" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>DBD (Database drivers)</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3830" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>databases</primary>
<secondary>Perl modules for operating</secondary>
</indexterm>

<indexterm id="INDEX-3831" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>databases</primary>
<secondary>see also DBI</secondary>
</indexterm>

<indexterm id="INDEX-3832" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Curses, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3833" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>command-line editing</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3834" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Perl/Tk</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3835" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Tk</primary>
<seealso>Perl/Tk</seealso>
</indexterm>

<indexterm id="INDEX-3836" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Gtk, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3837" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Gnome, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3838" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Sx, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3839" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Qt, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3840" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>GUIs</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3841" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>programming languages</primary>
<secondary>Perl modules for interfacing with or emulating</secondary>
</indexterm>

<indexterm id="INDEX-3842" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Perl</primary>
<secondary>models to interface or emulate other languages</secondary>
</indexterm>

<indexterm id="INDEX-3843" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>files</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3844" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>directories</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3845" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>text</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3846" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>hyphenating text, Perl module for</primary>
</indexterm>

<indexterm id="INDEX-3847" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>wrapping text</primary>
<secondary>Perl module for</secondary>
</indexterm>

<indexterm id="INDEX-3848" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>parsing</primary>
<secondary>text, Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3849" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>stemming text, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3850" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>searching</primary>
<secondary>text</secondary>
<tertiary>Perl modules for</tertiary>
</indexterm>

<indexterm id="INDEX-3851" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Postscript, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3852" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>fonts</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3853" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>XML, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3854" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>RTF</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3855" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>option processing, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3856" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>command-line switches</primary>
<secondary>see also option processing</secondary>
</indexterm>

<indexterm id="INDEX-3857" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>command-line flags</primary>
<secondary>see also option processing</secondary>
</indexterm>

<indexterm id="INDEX-3858" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>configuration files, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3859" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>internationalization</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3860" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>locale</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3861" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>localization</primary>
<seealso>locale</seealso>
</indexterm>

<indexterm id="INDEX-3862" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>authentication, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3863" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>authorization, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3864" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>security</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3865" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>encryption</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3866" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>passwords</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3867" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>message digests, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3868" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>users</primary>
<secondary>authenticating, Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3869" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>web</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3870" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>HTML</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3871" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>HTTP</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3872" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>CGI</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3873" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>MIME, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3874" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Apache web server</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3875" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>servers</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3876" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>daemons</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3877" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>zipping, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3878" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>tarring, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3879" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>file conversions, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3880" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>graphs, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3881" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>GIFs, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3882" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>VRML, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3883" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Gimp</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3884" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>mail</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3885" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>email</primary>
<seealso>mail</seealso>
</indexterm>

<indexterm id="INDEX-3886" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Usenet</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3887" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>netnews</primary>
<seealso>Usenet</seealso>
</indexterm>

<indexterm id="INDEX-3888" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>IO::modules</primary>
</indexterm>

<indexterm id="INDEX-3889" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>logfiles, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3890" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>files</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3891" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>networking</primary>
<secondary>services, Perl module for interacting with</secondary>
</indexterm>

<indexterm id="INDEX-3892" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Expect</primary>
</indexterm>

<indexterm id="INDEX-3893" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Microsoft Windows</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3894" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>ASP</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3895" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>OSBC</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-3896" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>OLE, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3897" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>Windows</primary>
<see>Microsoft Windows</see>
</indexterm>

<indexterm id="INDEX-3898" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>astronomy, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3899" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>biology, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3900" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>chemistry, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3901" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>credit cards, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3902" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>mortgages, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3903" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>audio, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3904" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>video, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3905" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>MIDI, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3906" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>weather, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3907" file="ch22_01.htm" sect="22.1. The CPAN modules Directory">
<primary>games, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-3910" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>tarballs (.tar.gz files)</primary>
<seealso>tar files</seealso>
</indexterm>

<indexterm id="INDEX-3911" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>Makefile.PL</primary>
</indexterm>

<indexterm id="INDEX-3912" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>modules</secondary>
<tertiary>installing and building</tertiary>
</indexterm>

<indexterm id="INDEX-3913" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>PPM (Perl Package Manager)</primary>
</indexterm>

<indexterm id="INDEX-3914" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>modules</primary>
<secondary>CPAN</secondary>
<tertiary>making available to programs</tertiary>
</indexterm>

<indexterm id="INDEX-3915" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>perlmodinstall manpage</primary>
</indexterm>

<indexterm id="INDEX-3916" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>installation</primary>
<secondary>modules, CPAN</secondary>
</indexterm>

<indexterm id="INDEX-3917" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>CPAN module</primary>
<secondary>installing modules with</secondary>
</indexterm>

<indexterm id="INDEX-3918" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>ActiveState Perl distribution</primary>
<secondary>PPM (Perl Package Manager)</secondary>
</indexterm>

<indexterm id="INDEX-3919" file="ch22_02.htm" sect="22.2. Using CPAN Modules">
<primary>PPM (Perl Package Manager)</primary>
</indexterm>

<indexterm id="INDEX-3920" file="ch22_02.htm" sect="22.2.1. Decompressing and Unpacking CPAN Modules">
<primary>modules</primary>
<secondary>CPAN</secondary>
<tertiary>decompressing and unpacking</tertiary>
</indexterm>

<indexterm id="INDEX-3921" file="ch22_02.htm" sect="22.2.1. Decompressing and Unpacking CPAN Modules">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>modules</secondary>
<tertiary>decompressing and unpacking</tertiary>
</indexterm>

<indexterm id="INDEX-3922" file="ch22_02.htm" sect="22.2.1. Decompressing and Unpacking CPAN Modules">
<primary>decompressing CPAN modules</primary>
</indexterm>

<indexterm id="INDEX-3923" file="ch22_02.htm" sect="22.2.1. Decompressing and Unpacking CPAN Modules">
<primary>unpacking CPAN modules</primary>
</indexterm>

<indexterm id="INDEX-3924" file="ch22_02.htm" sect="22.2.1. Decompressing and Unpacking CPAN Modules">
<primary>Unix system</primary>
<secondary>CPAN modules, installing on</secondary>
</indexterm>

<indexterm id="INDEX-3925" file="ch22_02.htm" sect="22.2.1. Decompressing and Unpacking CPAN Modules">
<primary>Microsoft Windows</primary>
<secondary>CPAN modules, installing on</secondary>
</indexterm>

<indexterm id="INDEX-3926" file="ch22_02.htm" sect="22.2.2. Building CPAN Modules">
<primary>building CPAN modules</primary>
</indexterm>

<indexterm id="INDEX-3927" file="ch22_02.htm" sect="22.2.2. Building CPAN Modules">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>modules</secondary>
<tertiary>building</tertiary>
</indexterm>

<indexterm id="INDEX-3928" file="ch22_02.htm" sect="22.2.2. Building CPAN Modules">
<primary>modules</primary>
<secondary>CPAN</secondary>
<tertiary>building</tertiary>
</indexterm>

<indexterm id="INDEX-3929" file="ch22_02.htm" sect="22.2.3. Installing CPAN Modules into the Perl Library">
<primary>Perl library</primary>
</indexterm>

<indexterm id="INDEX-3930" file="ch22_02.htm" sect="22.2.3. Installing CPAN Modules into the Perl Library">
<primary>libraries</primary>
<secondary>Perl, installing modules into</secondary>
</indexterm>

<indexterm id="INDEX-3931" file="ch22_02.htm" sect="22.2.3. Installing CPAN Modules into the Perl Library">
<primary>modules</primary>
<secondary>CPAN</secondary>
<tertiary>installing into Perl library</tertiary>
</indexterm>

<indexterm id="INDEX-3932" file="ch22_02.htm" sect="22.2.3. Installing CPAN Modules into the Perl Library">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>modules</secondary>
<tertiary>installing into Perl library</tertiary>
</indexterm>

<indexterm id="INDEX-3933" file="ch22_02.htm" sect="22.2.3. Installing CPAN Modules into the Perl Library">
<primary>installation</primary>
<secondary>modules, CPAN</secondary>
<tertiary sortas="Perl library">into Perl library</tertiary>
</indexterm>

<indexterm id="INDEX-3934" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>MakeMaker</primary>
</indexterm>

<indexterm id="INDEX-3935" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>ExtUtils::MakeMaker</primary>
<seealso>MakeMaker</seealso>
</indexterm>

<indexterm id="INDEX-3936" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>Makefile.PL</primary>
</indexterm>

<indexterm id="INDEX-3937" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>PAUSE</primary>
</indexterm>

<indexterm id="INDEX-3938" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>modules</primary>
<secondary>CPAN</secondary>
<tertiary>creating</tertiary>
</indexterm>

<indexterm id="INDEX-3939" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>modules</secondary>
<tertiary>creating</tertiary>
</indexterm>

<indexterm id="INDEX-3940" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>h2xs</primary>
</indexterm>

<indexterm id="INDEX-3941" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>MakeMaker</primary>
</indexterm>

<indexterm id="INDEX-3942" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>ExtUtils::MakeMaker</primary>
<seealso>MakeMaker</seealso>
</indexterm>

<indexterm id="INDEX-3943" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>modules</primary>
<secondary>testing</secondary>
</indexterm>

<indexterm id="INDEX-3944" file="ch22_03.htm" sect="22.3. Creating CPAN Modules">
<primary>testing modules</primary>
</indexterm>

<indexterm id="INDEX-3945" file="ch22_03.htm" sect="22.3.1. Internal Testing">
<primary>testing modules</primary>
<secondary>internal testing</secondary>
</indexterm>

<indexterm id="INDEX-3946" file="ch22_03.htm" sect="22.3.2. External Testing">
<primary>testing modules</primary>
<secondary>external testing</secondary>
</indexterm>

<indexterm id="INDEX-3951" file="ch23_01.htm" sect="23. Security">
<primary>security</primary>
</indexterm>

<indexterm id="INDEX-3952" file="ch23_01.htm" sect="23. Security">
<primary>taint</primary>
<secondary>taint mode, using</secondary>
</indexterm>

<indexterm id="INDEX-3953" file="ch23_01.htm" sect="23. Security">
<primary>source code</primary>
<secondary>foreign code, executing</secondary>
</indexterm>

<indexterm id="INDEX-3954" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>security</primary>
<secondary>handling insecure data</secondary>
</indexterm>

<indexterm id="INDEX-3955" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>data</primary>
<secondary>insecure, handling</secondary>
</indexterm>

<indexterm id="INDEX-3956" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>security</primary>
<secondary>insecure data, handling</secondary>
</indexterm>

<indexterm id="INDEX-3957" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>setuid program</primary>
</indexterm>

<indexterm id="INDEX-3958" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>setgid program</primary>
</indexterm>

<indexterm id="INDEX-3959" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>users</primary>
<secondary>granting limited privileges to</secondary>
</indexterm>

<indexterm id="INDEX-3960" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>permissions</primary>
<secondary>users, granting limited</secondary>
</indexterm>

<indexterm id="INDEX-3961" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>taint</primary>
<secondary>taint mode</secondary>
<tertiary>programs needing to run with</tertiary>
</indexterm>

<indexterm id="INDEX-3962" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>perl interpreter program </primary>
<secondary sortas="T">-T switch</secondary>
</indexterm>

<indexterm id="INDEX-3963" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary sortas="T switch">-T switch, perl</primary>
</indexterm>

<indexterm id="INDEX-3964" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>taint</primary>
<secondary>taint mode</secondary>
<tertiary>automatic enabling of</tertiary>
</indexterm>

<indexterm id="INDEX-3965" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>identifiers</primary>
<secondary>effective user or group IDs, differing from real</secondary>
</indexterm>

<indexterm id="INDEX-3966" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>set-id programs</primary>
</indexterm>

<indexterm id="INDEX-3967" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>taint</primary>
<secondary>taint mode</secondary>
<tertiary>enabling explicitly with -T switch</tertiary>
</indexterm>

<indexterm id="INDEX-3968" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>daemons</primary>
<secondary>taint mode, importance of enabling for</secondary>
</indexterm>

<indexterm id="INDEX-3969" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>servers</primary>
<secondary>taint mode, importance of enabling for</secondary>
</indexterm>

<indexterm id="INDEX-3970" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>CGI scripts</primary>
<secondary>taint mode, necessity of running under</secondary>
</indexterm>

<indexterm id="INDEX-3971" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>scripts</primary>
<secondary>CGI, taint mode and</secondary>
</indexterm>

<indexterm id="INDEX-3972" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>taint</primary>
<secondary>taint checks</secondary>
</indexterm>

<indexterm id="INDEX-3973" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>environment variables</primary>
<secondary>taint checking</secondary>
</indexterm>

<indexterm id="INDEX-3974" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>checking, taint</primary>
</indexterm>

<indexterm id="INDEX-3975" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>debugging</primary>
<seealso>taint</seealso>
</indexterm>

<indexterm id="INDEX-3976" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>variables</primary>
<secondary>taint and</secondary>
</indexterm>

<indexterm id="INDEX-3977" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>arrays</primary>
<secondary>taint in</secondary>
</indexterm>

<indexterm id="INDEX-3978" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>hashes</primary>
<secondary>taint in</secondary>
</indexterm>

<indexterm id="INDEX-3979" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>insecure dependency errors</primary>
</indexterm>

<indexterm id="INDEX-3980" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>errors</primary>
<secondary>insecure data</secondary>
</indexterm>

<indexterm id="INDEX-3981" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>exceptions</primary>
<secondary>insecure data</secondary>
</indexterm>

<indexterm id="INDEX-3982" file="ch23_01.htm" sect="23.1. Handling Insecure Data">
<primary>indirect objects</primary>
<secondary>explicit path, passing in slot</secondary>
</indexterm>

<indexterm id="INDEX-3983" file="ch23_01.htm" sect="23.1.1. Detecting and Laundering Tainted Data">
<primary>testing</primary>
<secondary sortas="tainted">for tainted data</secondary>
</indexterm>

<indexterm id="INDEX-3984" file="ch23_01.htm" sect="23.1.1. Detecting and Laundering Tainted Data">
<primary>data</primary>
<secondary>insecure, handling</secondary>
<tertiary>detecting and laundering tainted data</tertiary>
</indexterm>

<indexterm id="INDEX-3985" file="ch23_01.htm" sect="23.1.1. Detecting and Laundering Tainted Data">
<primary>security</primary>
<secondary>insecure data, handling</secondary>
<tertiary>detecting and laundering tainted data</tertiary>
</indexterm>

<indexterm id="INDEX-3986" file="ch23_01.htm" sect="23.1.1. Detecting and Laundering Tainted Data">
<primary>taint</primary>
<secondary>tainted data, detecting and laundering</secondary>
</indexterm>

<indexterm id="INDEX-3987" file="ch23_01.htm" sect="23.1.1. Detecting and Laundering Tainted Data">
<primary>patterns (and regular expressions)</primary>
<secondary sortas="untainting">for untainting data</secondary>
</indexterm>

<indexterm id="INDEX-3991" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>environment</primary>
<secondary>cleaning up</secondary>
</indexterm>

<indexterm id="INDEX-3992" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>security</primary>
<secondary>insecure data, handling</secondary>
<tertiary>environment, cleaning up</tertiary>
</indexterm>

<indexterm id="INDEX-3993" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>data</primary>
<secondary>insecure, handling</secondary>
<tertiary>environment, cleaning up</tertiary>
</indexterm>

<indexterm id="INDEX-3994" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>PATH environment variable</primary>
<secondary>security and</secondary>
</indexterm>

<indexterm id="INDEX-3995" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>shells</primary>
<secondary>environment variables as security hazards</secondary>
</indexterm>

<indexterm id="INDEX-3996" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>open function</primary>
<secondary sortas="pipes">for pipes, security risks posed by</secondary>
</indexterm>

<indexterm id="INDEX-3997" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>pipes</primary>
<secondary>open function, security risks posed by</secondary>
</indexterm>

<indexterm id="INDEX-3998" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>filenames</primary>
<secondary>external data in, security risks of</secondary>
</indexterm>

<indexterm id="INDEX-3999" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary>newlines</primary>
<secondary sortas="filenames">in filenames, security risks of</secondary>
</indexterm>

<indexterm id="INDEX-4000" file="ch23_01.htm" sect="23.1.2. Cleaning Up Your Environment">
<primary sortas="@semicolon">; (semicolon)</primary>
<secondary sortas="filenames">in filenames, security risks of</secondary>
</indexterm>

<indexterm id="INDEX-4001" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary>data</primary>
<secondary>insecure, handling</secondary>
<tertiary>command and file access under reduced privileges</tertiary>
</indexterm>

<indexterm id="INDEX-4002" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary>security</primary>
<secondary>insecure data, handling</secondary>
<tertiary>command and file access under reduced privileges</tertiary>
</indexterm>

<indexterm id="INDEX-4003" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary>commands</primary>
<secondary>accessing under reduced privileges</secondary>
</indexterm>

<indexterm id="INDEX-4004" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary>files</primary>
<secondary>accessing under reduced privileges</secondary>
</indexterm>

<indexterm id="INDEX-4005" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary>identifiers</primary>
<secondary>effective UID or GID, setting back to real</secondary>
</indexterm>

<indexterm id="INDEX-4006" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary>set-id program</primary>
<secondary>dangerous operations, UID and GID setting to real</secondary>
</indexterm>

<indexterm id="INDEX-4007" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary sortas="@backtick">` (backtick)</primary>
<secondary>security and</secondary>
</indexterm>

<indexterm id="INDEX-4008" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary>shells</primary>
<secondary>avoiding use of</secondary>
</indexterm>

<indexterm id="INDEX-4009" file="ch23_01.htm" sect="23.1.3. Accessing Commands and Files Under&#10;Reduced Privileges">
<primary>forking</primary>
<secondary>pipe open, avoiding shell in</secondary>
</indexterm>

<indexterm id="INDEX-4016" file="ch23_02.htm" sect="23.2. Handling Timing Glitches">
<primary>security</primary>
<secondary>timing glitches, handling</secondary>
</indexterm>

<indexterm id="INDEX-4017" file="ch23_02.htm" sect="23.2. Handling Timing Glitches">
<primary>timing</primary>
<secondary>glitches, handling</secondary>
</indexterm>

<indexterm id="INDEX-4018" file="ch23_02.htm" sect="23.2. Handling Timing Glitches">
<primary>multiprocessing</primary>
<secondary>processer access, unpredictability of</secondary>
</indexterm>

<indexterm id="INDEX-4019" file="ch23_02.htm" sect="23.2. Handling Timing Glitches">
<primary>CPU</primary>
<secondary>access in multitasking environment</secondary>
</indexterm>

<indexterm id="INDEX-4020" file="ch23_02.htm" sect="23.2. Handling Timing Glitches">
<primary>processes</primary>
<secondary>multitasking environments, CPU access</secondary>
</indexterm>

<indexterm id="INDEX-4021" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>Unix</primary>
<secondary>security bugs</secondary>
</indexterm>

<indexterm id="INDEX-4022" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>debugging</primary>
<secondary>Unix security bugs</secondary>
</indexterm>

<indexterm id="INDEX-4023" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>security</primary>
<secondary>timing glitches, handling</secondary>
<tertiary>Unix kernel security bugs</tertiary>
</indexterm>

<indexterm id="INDEX-4024" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>timing</primary>
<secondary>glitches, handling</secondary>
<tertiary>Unix kernel security bugs</tertiary>
</indexterm>

<indexterm id="INDEX-4025" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary sortas="@sharp"># (sharp)</primary>
<secondary sortas="@sharpbang notation">#! (shebang) notation</secondary>
<tertiary>security problems caused by</tertiary>
</indexterm>

<indexterm id="INDEX-4026" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>set-id programs</primary>
<secondary>Unix kernel bugs, security problems with</secondary>
</indexterm>

<indexterm id="INDEX-4027" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>kernels</primary>
<secondary>Unix, set-id script bug in</secondary>
</indexterm>

<indexterm id="INDEX-4028" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>symbolic links</primary>
<secondary>security risks in Unix</secondary>
</indexterm>

<indexterm id="INDEX-4029" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>wrappers</primary>
<secondary>C, around set-id scripts</secondary>
</indexterm>

<indexterm id="INDEX-4030" file="ch23_02.htm" sect="23.2.1. Unix Kernel Security Bugs">
<primary>C language</primary>
<secondary>wrapper programs</secondary>
</indexterm>

<indexterm id="INDEX-4031" file="ch23_02.htm" sect="23.2.2. Handling Race Conditions">
<primary>timing</primary>
<secondary>glitches in</secondary>
<tertiary>race conditions, handling</tertiary>
</indexterm>

<indexterm id="INDEX-4032" file="ch23_02.htm" sect="23.2.2. Handling Race Conditions">
<primary>race conditions</primary>
<secondary>handling</secondary>
</indexterm>

<indexterm id="INDEX-4033" file="ch23_02.htm" sect="23.2.2. Handling Race Conditions">
<primary>security</primary>
<secondary>timing glitches, handling</secondary>
<tertiary>race conditions</tertiary>
</indexterm>

<indexterm id="INDEX-4034" file="ch23_02.htm" sect="23.2.2. Handling Race Conditions">
<primary>file tests</primary>
<secondary>race conditions with</secondary>
</indexterm>

<indexterm id="INDEX-4035" file="ch23_02.htm" sect="23.2.2. Handling Race Conditions">
<primary>overwriting existing files, race conditions and</primary>
</indexterm>

<indexterm id="INDEX-4036" file="ch23_02.htm" sect="23.2.2. Handling Race Conditions">
<primary>sysopen command</primary>
<secondary>file overwriting, controlling</secondary>
</indexterm>

<indexterm id="INDEX-4037" file="ch23_02.htm" sect="23.2.2. Handling Race Conditions">
<primary>filehandles</primary>
<secondary>use instead of filenames, security benefits of</secondary>
</indexterm>

<indexterm id="INDEX-4038" file="ch23_02.htm" sect="23.2.2. Handling Race Conditions">
<primary>stat function</primary>
<secondary>filehandles, calling on</secondary>
</indexterm>

<indexterm id="INDEX-4042" file="ch23_02.htm" sect="23.2.3. Temporary Files">
<primary>temporary files, security risks with</primary>
</indexterm>

<indexterm id="INDEX-4043" file="ch23_02.htm" sect="23.2.3. Temporary Files">
<primary>security</primary>
<secondary>timing glitches, handling</secondary>
<tertiary>temporary files</tertiary>
</indexterm>

<indexterm id="INDEX-4044" file="ch23_02.htm" sect="23.2.3. Temporary Files">
<primary>timing</primary>
<secondary>glitches, handling</secondary>
<tertiary>temporary files</tertiary>
</indexterm>

<indexterm id="INDEX-4045" file="ch23_02.htm" sect="23.2.3. Temporary Files">
<primary>identifiers</primary>
<secondary>PIDs, guessing</secondary>
</indexterm>

<indexterm id="INDEX-4046" file="ch23_02.htm" sect="23.2.3. Temporary Files">
<primary>functions</primary>
<secondary>temporary filenames, generating</secondary>
</indexterm>

<indexterm id="INDEX-4047" file="ch23_02.htm" sect="23.2.3. Temporary Files">
<primary>names</primary>
<secondary>temporary files, generating</secondary>
</indexterm>

<indexterm id="INDEX-4048" file="ch23_02.htm" sect="23.2.3. Temporary Files">
<primary>File::Temp module, dealing  with race conditions</primary>
</indexterm>

<indexterm id="INDEX-4049" file="ch23_02.htm" sect="23.2.3. Temporary Files">
<primary>fcntl function</primary>
<secondary>security risks associated with</secondary>
</indexterm>

<indexterm id="INDEX-4055" file="ch23_03.htm" sect="23.3. Handling Insecure Code">
<primary>scripts</primary>
<secondary>insecure</secondary>
</indexterm>

<indexterm id="INDEX-4056" file="ch23_03.htm" sect="23.3. Handling Insecure Code">
<primary>security</primary>
<secondary>insecure code, handling</secondary>
</indexterm>

<indexterm id="INDEX-4057" file="ch23_03.htm" sect="23.3. Handling Insecure Code">
<primary>code</primary>
<secondary>insecure, handling</secondary>
</indexterm>

<indexterm id="INDEX-4058" file="ch23_03.htm" sect="23.3. Handling Insecure Code">
<primary>taint</primary>
<secondary>taint checking code</secondary>
</indexterm>

<indexterm id="INDEX-4059" file="ch23_03.htm" sect="23.3. Handling Insecure Code">
<primary>quarantining suspicious code</primary>
</indexterm>

<indexterm id="INDEX-4060" file="ch23_03.htm" sect="23.3.1. Safe Compartments">
<primary>Safe module</primary>
</indexterm>

<indexterm id="INDEX-4061" file="ch23_03.htm" sect="23.3.1. Safe Compartments">
<primary>safe compartments for insecure code</primary>
</indexterm>

<indexterm id="INDEX-4062" file="ch23_03.htm" sect="23.3.1. Safe Compartments">
<primary>security</primary>
<secondary>insecure code, handling</secondary>
<tertiary>safe compartments for</tertiary>
</indexterm>

<indexterm id="INDEX-4063" file="ch23_03.htm" sect="23.3.1. Safe Compartments">
<primary>code</primary>
<secondary>insecure, handling</secondary>
<tertiary>safe compartments for</tertiary>
</indexterm>

<indexterm id="INDEX-4064" file="ch23_03.htm" sect="23.3.1. Safe Compartments">
<primary>Safe module</primary>
<secondary>insecure code, handling with</secondary>
</indexterm>

<indexterm id="INDEX-4065" file="ch23_03.htm" sect="23.3.1.1. Restricting namespace access">
<primary>chroot syscall</primary>
</indexterm>

<indexterm id="INDEX-4066" file="ch23_03.htm" sect="23.3.1.1. Restricting namespace access">
<primary>namespaces</primary>
<secondary>access, restricting with Safe module</secondary>
</indexterm>

<indexterm id="INDEX-4067" file="ch23_03.htm" sect="23.3.1.1. Restricting namespace access">
<primary>variables</primary>
<secondary>fully-qualified, accessing from outside package</secondary>
</indexterm>

<indexterm id="INDEX-4068" file="ch23_03.htm" sect="23.3.1.1. Restricting namespace access">
<primary>reval method, running suspicious code with</primary>
</indexterm>

<indexterm id="INDEX-4069" file="ch23_03.htm" sect="23.3.1.1. Restricting namespace access">
<primary>eval method</primary>
<secondary>restricted (reval)</secondary>
</indexterm>

<indexterm id="INDEX-4070" file="ch23_03.htm" sect="23.3.1.2. Restricting operator access">
<primary>Safe module</primary>
<secondary>insecure code, handling</secondary>
<tertiary>restricting operator access</tertiary>
</indexterm>

<indexterm id="INDEX-4071" file="ch23_03.htm" sect="23.3.1.2. Restricting operator access">
<primary>operators</primary>
<secondary>access, restricting with Safe module</secondary>
</indexterm>

<indexterm id="INDEX-4072" file="ch23_03.htm" sect="23.3.1.3. Safe examples">
<primary>code</primary>
<secondary>insecure, handling</secondary>
<tertiary>safe examples</tertiary>
</indexterm>

<indexterm id="INDEX-4073" file="ch23_03.htm" sect="23.3.1.3. Safe examples">
<primary>CGI scripts</primary>
<secondary>input, evaluating (Safe module)</secondary>
</indexterm>

<indexterm id="INDEX-4078" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>security</primary>
<secondary>code masquerading as data</secondary>
</indexterm>

<indexterm id="INDEX-4079" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>data</primary>
<secondary>insecure, handling</secondary>
<tertiary>code masquerading as data</tertiary>
</indexterm>

<indexterm id="INDEX-4080" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>code</primary>
<secondary>insecure, handling</secondary>
<tertiary>code masquerading as data</tertiary>
</indexterm>

<indexterm id="INDEX-4081" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>shells</primary>
<secondary>security pitfalls with use, avoiding</secondary>
</indexterm>

<indexterm id="INDEX-4082" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>system function</primary>
<secondary>list argument form, avoiding shell with</secondary>
</indexterm>

<indexterm id="INDEX-4083" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>exec function</primary>
<secondary>list argument form, avoiding shell with</secondary>
</indexterm>

<indexterm id="INDEX-4084" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>open function</primary>
<secondary>piped</secondary>
<tertiary>list argument form, avoiding shell with</tertiary>
</indexterm>

<indexterm id="INDEX-4085" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>patterns (and regular expressions)</primary>
<secondary>security concerns</secondary>
</indexterm>

<indexterm id="INDEX-4086" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>denial-of-service problems (patterns and regular expressions), security concerns</primary>
</indexterm>

<indexterm id="INDEX-4087" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>core dumps</primary>
<secondary>denial-of-service problems with pattern matching</secondary>
</indexterm>

<indexterm id="INDEX-4088" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>alarm function</primary>
<secondary>pattern match, timing out</secondary>
</indexterm>

<indexterm id="INDEX-4089" file="ch23_03.htm" sect="23.3.2. Code Masquerading as Data">
<primary>BSD::Resource module, per-process resource limits, setting</primary>
</indexterm>

<indexterm id="INDEX-4096" file="ch24_01.htm" sect="24. Common Practices">
<primary>programming, Perl</primary>
</indexterm>

<indexterm id="INDEX-4097" file="ch24_01.htm" sect="24. Common Practices">
<primary>Perl</primary>
<secondary>programming, common practices</secondary>
</indexterm>

<indexterm id="INDEX-4098" file="ch24_01.htm" sect="24.1. Common Goofs for Novices">
<primary>programming, Perl</primary>
<secondary>common mistakes of novices</secondary>
</indexterm>

<indexterm id="INDEX-4099" file="ch24_01.htm" sect="24.1. Common Goofs for Novices">
<primary>novice programmers, common mistakes of</primary>
</indexterm>

<indexterm id="INDEX-4100" file="ch24_01.htm" sect="24.1. Common Goofs for Novices">
<primary>troubleshooting</primary>
<secondary>scripts</secondary>
<tertiary>common mistakes of novices</tertiary>
</indexterm>

<indexterm id="INDEX-4101" file="ch24_01.htm" sect="24.1. Common Goofs for Novices">
<primary>scripts</primary>
<secondary>Perl</secondary>
<tertiary>common mistakes of novices</tertiary>
</indexterm>

<indexterm id="INDEX-4102" file="ch24_01.htm" sect="24.1. Common Goofs for Novices">
<primary>FAQ, Perl online</primary>
</indexterm>

<indexterm id="INDEX-4103" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary sortas="@comma">, (comma)</primary>
<secondary>error in print statements</secondary>
</indexterm>

<indexterm id="INDEX-4104" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>print statements</primary>
<secondary>comma error in</secondary>
</indexterm>

<indexterm id="INDEX-4105" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary sortas="@equal">=</primary>
<secondary sortas="@equalequal">== (equal to) operator</secondary>
</indexterm>

<indexterm id="INDEX-4106" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary sortas="@bang">! (bang)</primary>
<secondary sortas="@bangequal">!= (not equal to) operator </secondary>
</indexterm>

<indexterm id="INDEX-4107" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>ne operator </primary>
</indexterm>

<indexterm id="INDEX-4108" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>eq operator </primary>
</indexterm>

<indexterm id="INDEX-4109" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>comparing</primary>
<secondary>strings</secondary>
</indexterm>

<indexterm id="INDEX-4110" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>strings</primary>
<secondary>operators</secondary>
</indexterm>

<indexterm id="INDEX-4111" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary sortas="@semicolon">[semi] (semicolon)</primary>
<secondary>errors, omitting trailing</secondary>
</indexterm>

<indexterm id="INDEX-4112" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>here documents</primary>
<secondary>semicolon (;), omitting trailing</secondary>
</indexterm>

<indexterm id="INDEX-4113" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary sortas="@braces">{} braces</primary>
</indexterm>

<indexterm id="INDEX-4114" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>backreferences</primary>
</indexterm>

<indexterm id="INDEX-4115" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>m// (match) operator</primary>
</indexterm>

<indexterm id="INDEX-4116" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>s// (substitution) operator</primary>
</indexterm>

<indexterm id="INDEX-4117" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>match (m//) operator</primary>
</indexterm>

<indexterm id="INDEX-4118" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>substitute (s//) operator</primary>
</indexterm>

<indexterm id="INDEX-4119" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>local function</primary>
<secondary>common programming errors with</secondary>
</indexterm>

<indexterm id="INDEX-4120" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>variables</primary>
<secondary>local</secondary>
<tertiary>common programming errors with</tertiary>
</indexterm>

<indexterm id="INDEX-4121" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>do loops</primary>
</indexterm>

<indexterm id="INDEX-4122" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary>loops</primary>
</indexterm>

<indexterm id="INDEX-4123" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary sortas="@parens">() (parentheses)</primary>
</indexterm>

<indexterm id="INDEX-4124" file="ch24_01.htm" sect="24.1.1. Universal Blunders">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollar caret">$^ ($FORMAT_TOP_NAME)</secondary>
</indexterm>

<indexterm id="INDEX-4125" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>list context</primary>
<secondary>operations behaving differently in</secondary>
</indexterm>

<indexterm id="INDEX-4126" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>scalar context</primary>
<secondary>operations behaving differently in</secondary>
</indexterm>

<indexterm id="INDEX-4127" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>barewords</primary>
<secondary>avoiding, reasons for</secondary>
</indexterm>

<indexterm id="INDEX-4128" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>use declarations</primary>
<secondary>use strict</secondary>
</indexterm>

<indexterm id="INDEX-4129" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>angle operator</primary>
</indexterm>

<indexterm id="INDEX-4130" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>functions</primary>
<secondary>default arguments, avoiding errors with</secondary>
</indexterm>

<indexterm id="INDEX-4131" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>my declarations</primary>
<secondary>local, using instead of</secondary>
</indexterm>

<indexterm id="INDEX-4132" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>local</primary>
<secondary>variables</secondary>
<tertiary>my declarations, using for</tertiary>
</indexterm>

<indexterm id="INDEX-4133" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>variables</primary>
<secondary>local</secondary>
<tertiary>my declarations, using instead of local function</tertiary>
</indexterm>

<indexterm id="INDEX-4134" file="ch24_01.htm" sect="24.1.2. Frequently Ignored Advice">
<primary>local function</primary>
<secondary>my declaration, using instead of</secondary>
</indexterm>

<indexterm id="INDEX-4135" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>C language</primary>
<secondary>programming, differences from Perl</secondary>
</indexterm>

<indexterm id="INDEX-4136" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>troubleshooting</primary>
<secondary>C code</secondary>
</indexterm>

<indexterm id="INDEX-4137" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>if statements</primary>
<secondary>C language, differences from Perl</secondary>
</indexterm>

<indexterm id="INDEX-4138" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>break command (in C)</primary>
</indexterm>

<indexterm id="INDEX-4139" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>continue command (in C)</primary>
</indexterm>

<indexterm id="INDEX-4140" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>last command</primary>
<secondary>do {} while construct, not taking</secondary>
</indexterm>

<indexterm id="INDEX-4141" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>next command</primary>
<secondary>do {} while construct, not taking</secondary>
</indexterm>

<indexterm id="INDEX-4142" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>switch statement</primary>
<secondary>Perl vs. C programming</secondary>
</indexterm>

<indexterm id="INDEX-4143" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>variables</primary>
<secondary>Perl vs. C, names of</secondary>
</indexterm>

<indexterm id="INDEX-4144" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>comments</primary>
<secondary>Perl vs. C syntax for</secondary>
</indexterm>

<indexterm id="INDEX-4145" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>addresses</primary>
<secondary>C language, Perl vs.</secondary>
</indexterm>

<indexterm id="INDEX-4146" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary> variable</primary>
<secondary>Perl, C language vs.</secondary>
</indexterm>

<indexterm id="INDEX-4147" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>syscalls</primary>
<secondary>Perl, C language vs.</secondary>
</indexterm>

<indexterm id="INDEX-4148" file="ch24_01.htm" sect="24.1.3. C Traps">
<primary>signal handlers</primary>
<secondary>%SIG, Perl vs. C language</secondary>
</indexterm>

<indexterm id="INDEX-4149" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary>shells</primary>
<secondary>programming, Perl vs.</secondary>
</indexterm>

<indexterm id="INDEX-4150" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary>troubleshooting</primary>
<secondary>shell code</secondary>
</indexterm>

<indexterm id="INDEX-4151" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary>variables</primary>
<secondary>shell programming, Perl vs.</secondary>
</indexterm>

<indexterm id="INDEX-4152" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary>foreach loops</primary>
<secondary>loop variable, Perl vs. shell programming</secondary>
</indexterm>

<indexterm id="INDEX-4153" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary sortas="@backtick">` (backtick) operator</primary>
<secondary>shell programming, Perl vs.</secondary>
</indexterm>

<indexterm id="INDEX-4154" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary>substitution, shells versus Perl</primary>
</indexterm>

<indexterm id="INDEX-4155" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary>scripts</primary>
<secondary>interpretation, shells vs. Perl</secondary>
</indexterm>

<indexterm id="INDEX-4156" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary>program arguments, shell vs. Perl</primary>
</indexterm>

<indexterm id="INDEX-4157" file="ch24_01.htm" sect="24.1.4. Shell Traps">
<primary>environment variables</primary>
<secondary>shells vs. Perl</secondary>
</indexterm>

<indexterm id="INDEX-4158" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>programming, Perl</primary>
<secondary>common mistakes by novices</secondary>
<tertiary>Perl traps, previous versions</tertiary>
</indexterm>

<indexterm id="INDEX-4159" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>versions</primary>
<secondary>Perl</secondary>
<tertiary>changes between release 4 and 5</tertiary>
</indexterm>

<indexterm id="INDEX-4160" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary sortas="@at">@ (at sign)</primary>
<secondary>changes in use, Perl versions</secondary>
</indexterm>

<indexterm id="INDEX-4161" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>barewords</primary>
<secondary>Perl versions, changes in</secondary>
</indexterm>

<indexterm id="INDEX-4162" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>subroutines</primary>
<secondary>barewords, confusing with</secondary>
</indexterm>

<indexterm id="INDEX-4163" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>identifiers</primary>
<secondary>starting with underscore (_), changes in Perl versions</secondary>
</indexterm>

<indexterm id="INDEX-4164" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary sortas="@underscore">_ (underscore)</primary>
<secondary>Perl versions, changes in use</secondary>
</indexterm>

<indexterm id="INDEX-4165" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary sortas="@colon">: (colon)</primary>
<secondary sortas="@coloncolon">:: for package identifiers</secondary>
</indexterm>

<indexterm id="INDEX-4166" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>patterns</primary>
<secondary>replacements, changes in Perl versions</secondary>
</indexterm>

<indexterm id="INDEX-4167" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>splice function</primary>
<secondary>Perl versions, changes in</secondary>
</indexterm>

<indexterm id="INDEX-4168" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>precedence</primary>
<secondary>Perl versions, changes in</secondary>
</indexterm>

<indexterm id="INDEX-4169" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>assignment operators</primary>
<secondary>precedence, Perl versions, differences in</secondary>
</indexterm>

<indexterm id="INDEX-4170" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>formats</primary>
<secondary>argument lists for, evaluating in list context</secondary>
</indexterm>

<indexterm id="INDEX-4171" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>goto function</primary>
<secondary>Perl versions, changes in</secondary>
</indexterm>

<indexterm id="INDEX-4172" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>whitespaces</primary>
<secondary>use as variable name or delimiter for quote construct, changes in</secondary>
</indexterm>

<indexterm id="INDEX-4173" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>caller function</primary>
<secondary>Perl versions, changes in return value</secondary>
</indexterm>

<indexterm id="INDEX-4174" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>m//g operator</primary>
<secondary>Perl versions, changes in</secondary>
</indexterm>

<indexterm id="INDEX-4175" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>subroutines</primary>
<secondary>sorting, reverse disallowed as name for</secondary>
</indexterm>

<indexterm id="INDEX-4176" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>reverse, disallowing as sort subroutine name</primary>
</indexterm>

<indexterm id="INDEX-4177" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>taintperl program</primary>
</indexterm>

<indexterm id="INDEX-4178" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>strings</primary>
<secondary>double-quoted</secondary>
<tertiary>changes in Perl versions</tertiary>
</indexterm>

<indexterm id="INDEX-4179" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>negative array subscripts, counting from end of array</primary>
</indexterm>

<indexterm id="INDEX-4180" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>arrays</primary>
<secondary>negative subscripts, counting from end of array</secondary>
</indexterm>

<indexterm id="INDEX-4181" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary sortas="@comma">, (comma)</primary>
<secondary>operator</secondary>
<tertiary sortas="scalar">in scalar context</tertiary>
</indexterm>

<indexterm id="INDEX-4182" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>scalar context</primary>
<secondary>comma operator in</secondary>
</indexterm>

<indexterm id="INDEX-4183" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>arrays</primary>
<secondary>tied, delete function and</secondary>
</indexterm>

<indexterm id="INDEX-4184" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>delete function</primary>
<secondary>tied arrays, not returning deleted value for</secondary>
</indexterm>

<indexterm id="INDEX-4185" file="ch24_01.htm" sect="24.1.5. Previous Perl Traps">
<primary>foreach loops</primary>
<secondary>Perl versions, changes in</secondary>
</indexterm>

<indexterm id="INDEX-4192" file="ch24_02.htm" sect="24.2. Efficiency">
<primary>programming, Perl</primary>
<secondary>efficiency</secondary>
</indexterm>

<indexterm id="INDEX-4193" file="ch24_02.htm" sect="24.2. Efficiency">
<primary>performance</primary>
<secondary>Perl programs, efficiency in</secondary>
</indexterm>

<indexterm id="INDEX-4194" file="ch24_02.htm" sect="24.2. Efficiency">
<primary>scripts</primary>
<secondary>Perl</secondary>
<tertiary>performance of</tertiary>
</indexterm>

<indexterm id="INDEX-4195" file="ch24_02.htm" sect="24.2. Efficiency">
<primary>efficiency</primary>
<see>performance </see>
</indexterm>

<indexterm id="INDEX-4196" file="ch24_02.htm" sect="24.2. Efficiency">
<primary>speed</primary>
<see>performance </see>
</indexterm>

<indexterm id="INDEX-4197" file="ch24_02.htm" sect="24.2. Efficiency">
<primary>optimizing</primary>
<secondary>performance and</secondary>
</indexterm>

<indexterm id="INDEX-4198" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>hashes</primary>
<secondary>instead of linear searches</secondary>
</indexterm>

<indexterm id="INDEX-4199" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>searching</primary>
<secondary>linear, versus hashes</secondary>
</indexterm>

<indexterm id="INDEX-4200" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>subscripting </primary>
</indexterm>

<indexterm id="INDEX-4201" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>foreach loops </primary>
</indexterm>

<indexterm id="INDEX-4202" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>goto function </primary>
</indexterm>

<indexterm id="INDEX-4203" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>printf function </primary>
</indexterm>

<indexterm id="INDEX-4204" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>print function </primary>
</indexterm>

<indexterm id="INDEX-4205" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarampersand">$&amp; ($MATCH)</secondary>
</indexterm>

<indexterm id="INDEX-4206" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarapostrophe">$' ($POSTMATCH)</secondary>
</indexterm>

<indexterm id="INDEX-4207" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarbacquote">$` ($PREMATCH)</secondary>
</indexterm>

<indexterm id="INDEX-4208" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>eval function</primary>
</indexterm>

<indexterm id="INDEX-4209" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>strings</primary>
<secondary>eval function and</secondary>
</indexterm>

<indexterm id="INDEX-4210" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>eval function</primary>
<secondary>loops and</secondary>
</indexterm>

<indexterm id="INDEX-4211" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>loops</primary>
<secondary>eval function within</secondary>
</indexterm>

<indexterm id="INDEX-4212" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>next operator</primary>
<secondary>next if construct</secondary>
</indexterm>

<indexterm id="INDEX-4213" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>quantifiers </primary>
</indexterm>

<indexterm id="INDEX-4214" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>length </primary>
<secondary sortas="strings">of strings </secondary>
</indexterm>

<indexterm id="INDEX-4215" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>subroutines</primary>
<secondary>performance and</secondary>
</indexterm>

<indexterm id="INDEX-4216" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>getc function </primary>
</indexterm>

<indexterm id="INDEX-4217" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>substr function </primary>
</indexterm>

<indexterm id="INDEX-4218" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>last operator </primary>
</indexterm>

<indexterm id="INDEX-4219" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>switch statement </primary>
</indexterm>

<indexterm id="INDEX-4220" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>print function </primary>
</indexterm>

<indexterm id="INDEX-4221" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>strings</primary>
<secondary>concatenating</secondary>
</indexterm>

<indexterm id="INDEX-4222" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>concatenation (.) operator </primary>
</indexterm>

<indexterm id="INDEX-4223" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary sortas="@dot">. (dot) ;concatenation operator </primary>
</indexterm>

<indexterm id="INDEX-4224" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>split function </primary>
</indexterm>

<indexterm id="INDEX-4225" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>arrays</primary>
<secondary>performance and</secondary>
</indexterm>

<indexterm id="INDEX-4226" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>pre-extending arrays </primary>
</indexterm>

<indexterm id="INDEX-4227" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>undef function </primary>
</indexterm>

<indexterm id="INDEX-4228" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>eof function </primary>
</indexterm>

<indexterm id="INDEX-4229" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary sortas="etc passwd">/etc/passwd file </primary>
</indexterm>

<indexterm id="INDEX-4230" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary sortas="etc group">/etc/group file </primary>
</indexterm>

<indexterm id="INDEX-4231" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>syscalls</primary>
<secondary>performance and</secondary>
</indexterm>

<indexterm id="INDEX-4232" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>system function</primary>
<secondary>performance and</secondary>
</indexterm>

<indexterm id="INDEX-4233" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>pwd command (Unix) </primary>
</indexterm>

<indexterm id="INDEX-4234" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>metacharacters </primary>
</indexterm>

<indexterm id="INDEX-4235" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>sticky bit </primary>
</indexterm>

<indexterm id="INDEX-4236" file="ch24_02.htm" sect="24.2.1. Time Efficiency">
<primary>perl interpreter program</primary>
<secondary>sticky bit</secondary>
</indexterm>

<indexterm id="INDEX-4237" file="ch24_02.htm" sect="24.2.2. Space Efficiency">
<primary>memory</primary>
<secondary>efficiency of</secondary>
</indexterm>

<indexterm id="INDEX-4238" file="ch24_02.htm" sect="24.2.3. Programmer Efficiency">
<primary>code</primary>
<secondary>effienciency of</secondary>
</indexterm>

<indexterm id="INDEX-4239" file="ch24_02.htm" sect="24.2.5. Porter Efficiency">
<primary>porting, efficiency of </primary>
</indexterm>

<indexterm id="INDEX-4240" file="ch24_02.htm" sect="24.2.6. User Efficiency">
<primary>user efficiency, Perl programming</primary>
</indexterm>

<indexterm id="INDEX-4241" file="ch24_02.htm" sect="24.2.6. User Efficiency">
<primary>GUI, using PerlTk</primary>
</indexterm>

<indexterm id="INDEX-4242" file="ch24_02.htm" sect="24.2.6. User Efficiency">
<primary>Perl/Tk</primary>
</indexterm>

<indexterm id="INDEX-4243" file="ch24_02.htm" sect="24.2.6. User Efficiency">
<primary>Tk</primary>
<seealso>Perl/Tk</seealso>
</indexterm>

<indexterm id="INDEX-4244" file="ch24_02.htm" sect="24.2.6. User Efficiency">
<primary>error messages</primary>
<secondary>user efficiency, improving with</secondary>
</indexterm>

<indexterm id="INDEX-4248" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>scripts</primary>
<secondary>Perl</secondary>
<tertiary>programming with style</tertiary>
</indexterm>

<indexterm id="INDEX-4249" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>programming, Perl</primary>
<secondary>programming with style</secondary>
</indexterm>

<indexterm id="INDEX-4250" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>style, programming with</primary>
</indexterm>

<indexterm id="INDEX-4251" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary sortas="@braces">{} (braces) </primary>
</indexterm>

<indexterm id="INDEX-4252" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>whitespace </primary>
</indexterm>

<indexterm id="INDEX-4253" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary sortas="@parens">() (parentheses) </primary>
</indexterm>

<indexterm id="INDEX-4254" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>last function </primary>
</indexterm>

<indexterm id="INDEX-4255" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>loops </primary>
</indexterm>

<indexterm id="INDEX-4256" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>labels</primary>
<secondary sortas="loops">with loops</secondary>
</indexterm>

<indexterm id="INDEX-4257" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>grep function </primary>
</indexterm>

<indexterm id="INDEX-4258" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>map function </primary>
</indexterm>

<indexterm id="INDEX-4259" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary sortas="@backtick">` (backtick);operator </primary>
</indexterm>

<indexterm id="INDEX-4260" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary sortas="@underscore">_ (underscore) </primary>
<secondary sortas="variable">in variable names </secondary>
</indexterm>

<indexterm id="INDEX-4261" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>names</primary>
<secondary>variable</secondary>
</indexterm>

<indexterm id="INDEX-4262" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>variables</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-4263" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>packages</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-4264" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>modules</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-4265" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>names</primary>
<secondary>modules/packages</secondary>
</indexterm>

<indexterm id="INDEX-4266" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>capitalization</primary>
<secondary>package/module names</secondary>
</indexterm>

<indexterm id="INDEX-4267" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>functions</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-4268" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>methods</primary>
<secondary>names for</secondary>
</indexterm>

<indexterm id="INDEX-4269" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>and operator </primary>
</indexterm>

<indexterm id="INDEX-4270" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>or operator </primary>
</indexterm>

<indexterm id="INDEX-4271" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>error messages </primary>
</indexterm>

<indexterm id="INDEX-4272" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>STDERR filehandle </primary>
</indexterm>

<indexterm id="INDEX-4273" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>code</primary>
<secondary>reusing</secondary>
</indexterm>

<indexterm id="INDEX-4274" file="ch24_03.htm" sect="24.3. Programming with Style">
<primary>reusing code </primary>
</indexterm>

<indexterm id="INDEX-4278" file="ch24_04.htm" sect="24.4. Fluent Perl">
<primary>programming, Perl</primary>
<secondary>fluent</secondary>
</indexterm>

<indexterm id="INDEX-4279" file="ch24_04.htm" sect="24.4. Fluent Perl">
<primary>scripts</primary>
<secondary>Perl</secondary>
<tertiary>idiomatic Perl, using</tertiary>
</indexterm>

<indexterm id="INDEX-4280" file="ch24_04.htm" sect="24.4. Fluent Perl">
<primary>idioms, Perl</primary>
</indexterm>

<indexterm id="INDEX-4284" file="ch24_05.htm" sect="24.5. Program Generation">
<primary>programming, Perl</primary>
<secondary>program generation</secondary>
</indexterm>

<indexterm id="INDEX-4285" file="ch24_05.htm" sect="24.5. Program Generation">
<primary>generators, Perl programs</primary>
</indexterm>

<indexterm id="INDEX-4286" file="ch24_05.htm" sect="24.5.1. Generating Other Languages in Perl">
<primary>programming, Perl</primary>
<secondary>program generators</secondary>
<tertiary>other languages in Perl</tertiary>
</indexterm>

<indexterm id="INDEX-4287" file="ch24_05.htm" sect="24.5.1. Generating Other Languages in Perl">
<primary>generators, Perl programs</primary>
<secondary>other languages in Perl</secondary>
</indexterm>

<indexterm id="INDEX-4288" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary>programming, Perl</primary>
<secondary>program generation</secondary>
<tertiary>generating Perl in other languages</tertiary>
</indexterm>

<indexterm id="INDEX-4289" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary>generators, Perl programs</primary>
<secondary sortas="other">in other languages</secondary>
</indexterm>

<indexterm id="INDEX-4290" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary>preprocessing Perl</primary>
</indexterm>

<indexterm id="INDEX-4291" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary sortas="line">#line directive</primary>
</indexterm>

<indexterm id="INDEX-4292" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary sortas="file">__FILE__; setting</primary>
</indexterm>

<indexterm id="INDEX-4293" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary sortas="line">__LINE__; setting</primary>
</indexterm>

<indexterm id="INDEX-4294" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary sortas="end">__END__; use of</primary>
</indexterm>

<indexterm id="INDEX-4295" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary>Control-D as eof</primary>
</indexterm>

<indexterm id="INDEX-4296" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary sortas="d">^D (Control-D) as eof</primary>
</indexterm>

<indexterm id="INDEX-4297" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary>Control-Z as eof</primary>
</indexterm>

<indexterm id="INDEX-4298" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary sortas="z">^Z (Control-Z) as eof</primary>
</indexterm>

<indexterm id="INDEX-4299" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary>languages</primary>
<secondary>translating</secondary>
</indexterm>

<indexterm id="INDEX-4300" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary>converting</primary>
<secondary>between languages</secondary>
</indexterm>

<indexterm id="INDEX-4301" file="ch24_05.htm" sect="24.5.2. Generating Perl in Other Languages">
<primary>translating between languages </primary>
</indexterm>

<indexterm id="INDEX-4302" file="ch24_05.htm" sect="24.5.3. Source Filters">
<primary>source code</primary>
<secondary>filters for</secondary>
</indexterm>

<indexterm id="INDEX-4303" file="ch24_05.htm" sect="24.5.3. Source Filters">
<primary>filters</primary>
<secondary>source code</secondary>
</indexterm>

<indexterm id="INDEX-4304" file="ch24_05.htm" sect="24.5.3. Source Filters">
<primary>programming, Perl</primary>
<secondary>program generators</secondary>
<tertiary>source filters</tertiary>
</indexterm>

<indexterm id="INDEX-4305" file="ch24_05.htm" sect="24.5.3. Source Filters">
<primary>generators, Perl programs</primary>
<secondary>source filters</secondary>
</indexterm>

<indexterm id="INDEX-4310" file="ch25_01.htm" sect="25. Portable Perl">
<primary>programming, Perl</primary>
<secondary>portability</secondary>
</indexterm>

<indexterm id="INDEX-4311" file="ch25_01.htm" sect="25. Portable Perl">
<primary>portability, Perl programs</primary>
</indexterm>

<indexterm id="INDEX-4312" file="ch25_01.htm" sect="25. Portable Perl">
<primary>operating systems</primary>
<secondary>Perl program portability</secondary>
</indexterm>

<indexterm id="INDEX-4313" file="ch25_01.htm" sect="25. Portable Perl">
<primary sortas="@dollarsign">$ (dollar sign)</primary>
<secondary sortas="@dollarsignvariables">$ variables</secondary>
<tertiary sortas="@dollarsigncaretO">$^O variable</tertiary>
</indexterm>

<indexterm id="INDEX-4314" file="ch25_01.htm" sect="25. Portable Perl">
<primary>%Config hash</primary>
</indexterm>

<indexterm id="INDEX-4315" file="ch25_01.htm" sect="25. Portable Perl">
<primary>functions</primary>
<secondary>Perl, varying across platforms</secondary>
</indexterm>

<indexterm id="INDEX-4316" file="ch25_01.htm" sect="25.1. Newlines">
<primary>newlines</primary>
<secondary>Perl program portability and</secondary>
</indexterm>

<indexterm id="INDEX-4317" file="ch25_01.htm" sect="25.1. Newlines">
<primary>carriage returns</primary>
<seealso>newlines</seealso>
</indexterm>

<indexterm id="INDEX-4318" file="ch25_01.htm" sect="25.1. Newlines">
<primary>CRLF</primary>
<seealso>newlines</seealso>
</indexterm>

<indexterm id="INDEX-4319" file="ch25_01.htm" sect="25.1. Newlines">
<primary>\n</primary>
<seealso>newlines</seealso>
</indexterm>

<indexterm id="INDEX-4320" file="ch25_01.htm" sect="25.1. Newlines">
<primary>sockets</primary>
<secondary>newlines, sending across</secondary>
</indexterm>

<indexterm id="INDEX-4321" file="ch25_01.htm" sect="25.1. Newlines">
<primary>operating systems</primary>
<secondary>newlines, variations in</secondary>
</indexterm>

<indexterm id="INDEX-4322" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>width</primary>
<secondary sortas="numbers">of numbers</secondary>
</indexterm>

<indexterm id="INDEX-4323" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>numbers</primary>
<secondary>width of</secondary>
</indexterm>

<indexterm id="INDEX-4324" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>integers</primary>
<secondary>computer storage, order of</secondary>
</indexterm>

<indexterm id="INDEX-4325" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>floating-point numbers</primary>
<secondary>computer storage, order of</secondary>
</indexterm>

<indexterm id="INDEX-4326" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>big-endian</primary>
</indexterm>

<indexterm id="INDEX-4327" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>little-endian</primary>
</indexterm>

<indexterm id="INDEX-4328" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>32-bit systems</primary>
</indexterm>

<indexterm id="INDEX-4329" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>64-bit systems</primary>
</indexterm>

<indexterm id="INDEX-4330" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>number width</primary>
</indexterm>

<indexterm id="INDEX-4331" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>pack</primary>
</indexterm>

<indexterm id="INDEX-4332" file="ch25_02.htm" sect="25.2. Endianness and Number Width">
<primary>unpack</primary>
</indexterm>

<indexterm id="INDEX-4333" file="ch25_03.htm" sect="25.3. Files and Filesystems">
<primary>portability</primary>
<secondary sortas="files and filesystems">of files and filesystems</secondary>
</indexterm>

<indexterm id="INDEX-4334" file="ch25_03.htm" sect="25.3. Files and Filesystems">
<primary>files</primary>
<secondary>path components, separators for</secondary>
</indexterm>

<indexterm id="INDEX-4335" file="ch25_03.htm" sect="25.3. Files and Filesystems">
<primary>filesystems, portability</primary>
</indexterm>

<indexterm id="INDEX-4336" file="ch25_03.htm" sect="25.3. Files and Filesystems">
<primary>File::Spec module</primary>
</indexterm>

<indexterm id="INDEX-4337" file="ch25_03.htm" sect="25.3. Files and Filesystems">
<primary>File::Basename module</primary>
</indexterm>

<indexterm id="INDEX-4338" file="ch25_03.htm" sect="25.3. Files and Filesystems">
<primary>programming, Perl</primary>
<secondary>file-manipulating programs, writing portable</secondary>
</indexterm>

<indexterm id="INDEX-4339" file="ch25_03.htm" sect="25.3. Files and Filesystems">
<primary>AutoSplit, portability of</primary>
</indexterm>

<indexterm id="INDEX-4340" file="ch25_04.htm" sect="25.4. System Interaction">
<primary>operating systems</primary>
<secondary>GUIs, relying on</secondary>
</indexterm>

<indexterm id="INDEX-4341" file="ch25_04.htm" sect="25.4. System Interaction">
<primary>files</primary>
<secondary>portably opening</secondary>
</indexterm>

<indexterm id="INDEX-4342" file="ch25_04.htm" sect="25.4. System Interaction">
<primary sortas="ENV hash">%ENV hash</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4343" file="ch25_04.htm" sect="25.4. System Interaction">
<primary>environment variables</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4344" file="ch25_04.htm" sect="25.4. System Interaction">
<primary>signals</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4345" file="ch25_04.htm" sect="25.4. System Interaction">
<primary>portability</primary>
<secondary sortas="signals">of signals</secondary>
</indexterm>

<indexterm id="INDEX-4346" file="ch25_04.htm" sect="25.4. System Interaction">
<primary>filenames</primary>
<secondary>globbing</secondary>
</indexterm>

<indexterm id="INDEX-4347" file="ch25_04.htm" sect="25.4. System Interaction">
<primary>globbing filenames</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4348" file="ch25_04.htm" sect="25.4. System Interaction">
<primary>$!, portability of</primary>
</indexterm>

<indexterm id="INDEX-4349" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>IPC (interprocess communication)</primary>
<secondary>portability and</secondary>
</indexterm>

<indexterm id="INDEX-4350" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>system function</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4351" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>exec function</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4352" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>fork function</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4353" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>pipe function</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4354" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>backticks</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4355" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>open function</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4356" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>mail</primary>
<secondary>sending, portability and</secondary>
</indexterm>

<indexterm id="INDEX-4357" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>System V IPC</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4358" file="ch25_05.htm" sect="25.5. Interprocess Communication (IPC)">
<primary>modules</primary>
<secondary>CPAN</secondary>
<tertiary>mail, sending</tertiary>
</indexterm>

<indexterm id="INDEX-4359" file="ch25_06.htm" sect="25.6. External Subroutines (XS)">
<primary>XS language</primary>
<secondary>code, portability of</secondary>
</indexterm>

<indexterm id="INDEX-4360" file="ch25_06.htm" sect="25.6. External Subroutines (XS)">
<primary>external subroutines</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4361" file="ch25_06.htm" sect="25.6. External Subroutines (XS)">
<primary>subroutines</primary>
<secondary>external</secondary>
<tertiary>portability of</tertiary>
</indexterm>

<indexterm id="INDEX-4362" file="ch25_07.htm" sect="25.7. Standard Modules">
<primary>modules</primary>
<secondary>CPAN</secondary>
<tertiary>portability of</tertiary>
</indexterm>

<indexterm id="INDEX-4363" file="ch25_07.htm" sect="25.7. Standard Modules">
<primary>CPAN module</primary>
<secondary>portability of</secondary>
</indexterm>

<indexterm id="INDEX-4364" file="ch25_07.htm" sect="25.7. Standard Modules">
<primary>DBM modules, portability of</primary>
</indexterm>

<indexterm id="INDEX-4365" file="ch25_08.htm" sect="25.8. Dates and Times">
<primary>dates, portability of</primary>
</indexterm>

<indexterm id="INDEX-4366" file="ch25_08.htm" sect="25.8. Dates and Times">
<primary>times, portability of</primary>
</indexterm>

<indexterm id="INDEX-4367" file="ch25_09.htm" sect="25.9. Internationalization">
<primary>character sets, portability of</primary>
</indexterm>

<indexterm id="INDEX-4368" file="ch25_09.htm" sect="25.9. Internationalization">
<primary>internationalization</primary>
</indexterm>

<indexterm id="INDEX-4372" file="ch26_01.htm" sect="26. Plain Old Documentation">
<primary>pod format</primary>
</indexterm>

<indexterm id="INDEX-4373" file="ch26_01.htm" sect="26. Plain Old Documentation">
<primary>documentation,embedded in Perl programs</primary>
<seealso>pod</seealso>
</indexterm>

<indexterm id="INDEX-4374" file="ch26_01.htm" sect="26.1. Pod in a Nutshell">
<primary>pod translators</primary>
</indexterm>

<indexterm id="INDEX-4375" file="ch26_01.htm" sect="26.1. Pod in a Nutshell">
<primary>comments</primary>
<secondary> multiline</secondary>
</indexterm>

<indexterm id="INDEX-4376" file="ch26_01.htm" sect="26.1.2. Pod Directives">
<primary>directives (pod)</primary>
</indexterm>

<indexterm id="INDEX-4377" file="ch26_01.htm" sect="26.1.2. Pod Directives">
<primary>commands</primary>
<secondary sortas="pod">in pod</secondary>
</indexterm>

<indexterm id="INDEX-4378" file="ch26_01.htm" sect="26.1.2. Pod Directives">
<primary>pod</primary>
<secondary>directives</secondary>
</indexterm>

<indexterm id="INDEX-4379" file="ch26_02.htm" sect="26.2. Pod Translators and Modules">
<primary>pod translators</primary>
</indexterm>

<indexterm id="INDEX-4380" file="ch26_02.htm" sect="26.2. Pod Translators and Modules">
<primary>pod modules</primary>
</indexterm>

<indexterm id="INDEX-4381" file="ch27_01.htm" sect="27.1. History Made Practical">
<primary>history of Perl </primary>
</indexterm>

<indexterm id="INDEX-4382" file="ch27_01.htm" sect="27.1. History Made Practical">
<primary>Perl, history of </primary>
</indexterm>

<indexterm id="INDEX-4383" file="ch27_01.htm" sect="27.1. History Made Practical">
<primary>complementation</primary>
<see>negation </see>
</indexterm>

<indexterm id="INDEX-4384" file="ch27_01.htm" sect="27.1. History Made Practical">
<primary>creation time</primary>
<see>modification time, file </see>
</indexterm>

<indexterm id="INDEX-4385" file="ch27_02.htm" sect="27.2. Perl Poetry">
<primary>poetry in Perl </primary>
</indexterm>

<indexterm id="INDEX-4386" file="ch28_01.htm" sect="28.1.6. Per-Package Special Functions">
<primary>variables</primary>
<secondary>special</secondary>
</indexterm>

<indexterm id="INDEX-4387" file="ch28_01.htm" sect="28.1.6. Per-Package Special Functions">
<primary>special variables</primary>
</indexterm>

<indexterm id="INDEX-4388" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@underscore">_(underscore)</primary>
<secondary>global filehandle</secondary>
</indexterm>

<indexterm id="INDEX-4389" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>backreferences</primary>
</indexterm>

<indexterm id="INDEX-4390" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>numbered variables</primary>
</indexterm>

<indexterm id="INDEX-4391" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollar1">$1 et al</secondary>
</indexterm>

<indexterm id="INDEX-4392" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarbracket1">$[ (index of first array variable)</secondary>
</indexterm>

<indexterm id="INDEX-4393" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>characters</primary>
<secondary sortas="@dollarbracket1">$[ variable</secondary>
</indexterm>

<indexterm id="INDEX-4394" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>arrays</primary>
<secondary>first element of</secondary>
</indexterm>

<indexterm id="INDEX-4395" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>strings</primary>
<secondary>first character of</secondary>
</indexterm>

<indexterm id="INDEX-4396" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarsharp">$#</secondary>
<tertiary>obsolete variable for numeric output</tertiary>
</indexterm>

<indexterm id="INDEX-4397" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarasterisk">$*</secondary>
</indexterm>

<indexterm id="INDEX-4398" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarA">$a and $b (sort variables)</secondary>
</indexterm>

<indexterm id="INDEX-4399" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>sort</primary>
<secondary> variables</secondary>
</indexterm>

<indexterm id="INDEX-4400" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarcaretA">$^A ($ACCUMULATOR)</secondary>
</indexterm>

<indexterm id="INDEX-4401" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="ACCUMULATOR">$ACCUMULATOR</primary>
</indexterm>

<indexterm id="INDEX-4402" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarunderscore">$_ ($ARG)</secondary>
</indexterm>

<indexterm id="INDEX-4403" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="ARG">$ARG</primary>
</indexterm>

<indexterm id="INDEX-4404" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>pattern space</primary>
</indexterm>

<indexterm id="INDEX-4405" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@at">@ (at sign)</primary>
<secondary sortas="@atunderscore">@_ array</secondary>
</indexterm>

<indexterm id="INDEX-4406" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>subroutines</primary>
<secondary> arguments</secondary>
</indexterm>

<indexterm id="INDEX-4407" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>parameters</primary>
<see>arguments</see>
</indexterm>

<indexterm id="INDEX-4408" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>formal arguments</primary>
</indexterm>

<indexterm id="INDEX-4409" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>arguments</primary>
<secondary>formal</secondary>
</indexterm>

<indexterm id="INDEX-4410" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>ARGV filehandle</primary>
</indexterm>

<indexterm id="INDEX-4411" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="ARGV variable">$ARGV variable</primary>
</indexterm>

<indexterm id="INDEX-4412" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="ARGV array">@ARGV array</primary>
</indexterm>

<indexterm id="INDEX-4413" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>ARGVOUT filehandle</primary>
</indexterm>

<indexterm id="INDEX-4414" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarcaretT">$^T ($BASETIME)</secondary>
</indexterm>

<indexterm id="INDEX-4415" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="BASETIME">$BASETIME</primary>
</indexterm>

<indexterm id="INDEX-4416" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>basetime ($^T)</primary>
</indexterm>

<indexterm id="INDEX-4417" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>time base ($^T)</primary>
</indexterm>

<indexterm id="INDEX-4418" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarquestion">$? ($CHILD_ERROR)</secondary>
</indexterm>

<indexterm id="INDEX-4419" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="CHILD_ERROR">$CHILD_ERROR</primary>
</indexterm>

<indexterm id="INDEX-4420" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>errors</primary>
<secondary sortas="@dollarquestion">$? variable for</secondary>
</indexterm>

<indexterm id="INDEX-4421" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>exit status</primary>
</indexterm>

<indexterm id="INDEX-4422" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>status of exiting process</primary>
</indexterm>

<indexterm id="INDEX-4423" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>wait system call</primary>
</indexterm>

<indexterm id="INDEX-4424" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="c check">-c (check syntax) command-line switch</primary>
</indexterm>

<indexterm id="INDEX-4425" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarcaretC">$^C ($COMPILING)</secondary>
</indexterm>

<indexterm id="INDEX-4426" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>perlcc</primary>
</indexterm>

<indexterm id="INDEX-4427" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>compiler</primary>
</indexterm>

<indexterm id="INDEX-4428" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>DATA filehandle</primary>
</indexterm>

<indexterm id="INDEX-4429" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="END token">__END__ token</primary>
</indexterm>

<indexterm id="INDEX-4430" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="DATA token">__DATA__ token</primary>
</indexterm>

<indexterm id="INDEX-4431" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarcaretD">$^D ($DEBUGGING)</secondary>
</indexterm>

<indexterm id="INDEX-4432" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="DEBUGGING">$DEBUGGING</primary>
</indexterm>

<indexterm id="INDEX-4433" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>debugging flags</primary>
</indexterm>

<indexterm id="INDEX-4434" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>effective GID (group ID)</primary>
</indexterm>

<indexterm id="INDEX-4435" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>GID (group ID), effective</primary>
</indexterm>

<indexterm id="INDEX-4436" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarparen">$) ($EFFECTIVE_GROUP_ID)</secondary>
</indexterm>

<indexterm id="INDEX-4437" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="EFFECTIVE_GROUP_ID">$EFFECTIVE_GROUP_ID</primary>
</indexterm>

<indexterm id="INDEX-4438" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarright">$&gt; ($EFFECTIVE_USER_ID)</secondary>
</indexterm>

<indexterm id="INDEX-4439" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="EFFECTIVE_USER_ID">$EFFECTIVE_USER_ID</primary>
</indexterm>

<indexterm id="INDEX-4440" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>real UID</primary>
<see>$&lt; variable</see>
</indexterm>

<indexterm id="INDEX-4441" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>effective UID ($EFFECTIVE_USER_ID)</primary>
<seealso>$&lt; and $&gt; variables</seealso>
</indexterm>

<indexterm id="INDEX-4442" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>UID (user ID)</primary>
<seealso>$&lt; and $&gt; variables</seealso>
</indexterm>

<indexterm id="INDEX-4443" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="ENV hash">%ENV hash</primary>
</indexterm>

<indexterm id="INDEX-4444" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>environment variables</primary>
</indexterm>

<indexterm id="INDEX-4445" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>variables</primary>
<secondary>environment</secondary>
</indexterm>

<indexterm id="INDEX-4446" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>errors</primary>
<secondary sortas="@dollarat">$@ variable for</secondary>
</indexterm>

<indexterm id="INDEX-4447" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarat">$@ ($EVAL_ERROR)</secondary>
</indexterm>

<indexterm id="INDEX-4448" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="EVAL_ERROR">$EVAL_ERROR</primary>
</indexterm>

<indexterm id="INDEX-4449" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>processes</primary>
<secondary>variables for</secondary>
</indexterm>

<indexterm id="INDEX-4450" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretS">$^S ($EXCEPTIONS_BEING_CAUGHT)</secondary>
</indexterm>

<indexterm id="INDEX-4451" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="EXCEPTIONS_BEING_CAUGHT">$EXCEPTIONS_BEING_CAUGHT</primary>
</indexterm>

<indexterm id="INDEX-4452" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretX">$^X ($EXECUTABLE_NAME)</secondary>
</indexterm>

<indexterm id="INDEX-4453" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="EXECUTABLE_NAME">$EXECUTABLE_NAME</primary>
</indexterm>

<indexterm id="INDEX-4454" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>program name</primary>
<secondary> of perl executable</secondary>
</indexterm>

<indexterm id="INDEX-4455" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>@EXPORT array</primary>
</indexterm>

<indexterm id="INDEX-4456" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>@EXPORT_OK array</primary>
</indexterm>

<indexterm id="INDEX-4457" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>%EXPORT_TAGS hash</primary>
</indexterm>

<indexterm id="INDEX-4458" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretE">$^E ($EXTENDED_OS_ERROR)</secondary>
</indexterm>

<indexterm id="INDEX-4459" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="EXTENDED_OS_ERROR">$EXTENDED_OS_ERROR</primary>
</indexterm>

<indexterm id="INDEX-4460" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="F array">@F array</primary>
</indexterm>

<indexterm id="INDEX-4461" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>-a switch, perl</primary>
</indexterm>

<indexterm id="INDEX-4462" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>perl interpreter program </primary>
<secondary sortas="a switch">-a switch</secondary>
</indexterm>

<indexterm id="INDEX-4463" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="w switch">-w switch, Perl</primary>
</indexterm>

<indexterm id="INDEX-4464" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>%FIELDS hash</primary>
</indexterm>

<indexterm id="INDEX-4465" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>form feed</primary>
</indexterm>

<indexterm id="INDEX-4466" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretL">$^L ($FORMAT_FORMFEED)</secondary>
</indexterm>

<indexterm id="INDEX-4467" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="FORMAT_FORMFEED">$FORMAT_FORMFEED</primary>
</indexterm>

<indexterm id="INDEX-4468" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarhyphen">$- ($FORMAT_LINES_LEFT)</secondary>
</indexterm>

<indexterm id="INDEX-4469" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="FORMAT_LINES_LEFT">$FORMAT_LINES_LEFT</primary>
</indexterm>

<indexterm id="INDEX-4470" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarequal">$= ($FORMAT_LINES_PER_PAGE)</secondary>
</indexterm>

<indexterm id="INDEX-4471" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="FORMAT_LINES_PER_PAGE">$FORMAT_LINES_PER_PAGE</primary>
</indexterm>

<indexterm id="INDEX-4472" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcolon">$: ($FORMAT_LINE_BREAK_CHARACTERS)</secondary>
</indexterm>

<indexterm id="INDEX-4473" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="FORMAT_LINE_BREAK_CHARACTERS">$FORMAT_LINE_BREAK_CHARACTERS</primary>
</indexterm>

<indexterm id="INDEX-4474" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>continuation lines</primary>
</indexterm>

<indexterm id="INDEX-4475" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>strings</primary>
<secondary>breaking</secondary>
<see>$: variable</see>
</indexterm>

<indexterm id="INDEX-4476" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollartilde">$~ ($FORMAT_NAME)</secondary>
</indexterm>

<indexterm id="INDEX-4477" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="FORMAT_NAME">$FORMAT_NAME</primary>
</indexterm>

<indexterm id="INDEX-4478" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>format</primary>
</indexterm>

<indexterm id="INDEX-4479" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>pages</primary>
</indexterm>

<indexterm id="INDEX-4480" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>page numbers</primary>
</indexterm>

<indexterm id="INDEX-4481" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>numbers</primary>
<secondary sortas="pages">for pages</secondary>
</indexterm>

<indexterm id="INDEX-4482" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarpercent">$% ($FORMAT_PAGE_NUMBER)</secondary>
</indexterm>

<indexterm id="INDEX-4483" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="FORMAT_PAGE_NUMBER">$FORMAT_PAGE_NUMBER</primary>
</indexterm>

<indexterm id="INDEX-4484" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaret">$^ ($FORMAT_TOP_NAME)</secondary>
</indexterm>

<indexterm id="INDEX-4485" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="FORMAT_TOP_NAME">$FORMAT_TOP_NAME</primary>
</indexterm>

<indexterm id="INDEX-4486" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>top-of-page processing</primary>
</indexterm>

<indexterm id="INDEX-4487" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>filehandles</primary>
<secondary>ending with _TOP</secondary>
</indexterm>

<indexterm id="INDEX-4488" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretH">$^H</secondary>
</indexterm>

<indexterm id="INDEX-4489" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>hints, compiler</primary>
</indexterm>

<indexterm id="INDEX-4490" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>compiler hints</primary>
</indexterm>

<indexterm id="INDEX-4491" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>%INC hash</primary>
</indexterm>

<indexterm id="INDEX-4492" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>require operator</primary>
</indexterm>

<indexterm id="INDEX-4493" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>filenames</primary>
<secondary>%INC hash of</secondary>
</indexterm>

<indexterm id="INDEX-4494" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="INC array">@INC array</primary>
</indexterm>

<indexterm id="INDEX-4495" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>path for library searches, %INC</primary>
</indexterm>

<indexterm id="INDEX-4496" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>search path</primary>
<secondary> %INC</secondary>
</indexterm>

<indexterm id="INDEX-4497" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretI">$^I ($INPLACE_EDIT)</secondary>
</indexterm>

<indexterm id="INDEX-4498" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="INPLACE_EDIT">$INPLACE_EDIT</primary>
</indexterm>

<indexterm id="INDEX-4499" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>inplace edits with $^I</primary>
</indexterm>

<indexterm id="INDEX-4500" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollardot">$. ($INPUT_LINE_NUMBER)</secondary>
</indexterm>

<indexterm id="INDEX-4501" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="INPUT_LINE_NUMBER">$INPUT_LINE_NUMBER</primary>
</indexterm>

<indexterm id="INDEX-4502" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>line numbers</primary>
<secondary> of input file</secondary>
</indexterm>

<indexterm id="INDEX-4503" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarslash">$/ ($INPUT_RECORD_SEPARATOR)</secondary>
</indexterm>

<indexterm id="INDEX-4504" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="INPUT_RECORD_SEPARATOR">$INPUT_RECORD_SEPARATOR</primary>
</indexterm>

<indexterm id="INDEX-4505" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>paragraph mode</primary>
</indexterm>

<indexterm id="INDEX-4506" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>RS (awk variable)</primary>
<see>$INPUT_RECORD_SEPARATOR</see>
</indexterm>

<indexterm id="INDEX-4507" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>record mode</primary>
</indexterm>

<indexterm id="INDEX-4508" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>@ISA array</primary>
</indexterm>

<indexterm id="INDEX-4509" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>@+ array of ending positions</primary>
</indexterm>

<indexterm id="INDEX-4510" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>length</primary>
<secondary> of matched string</secondary>
</indexterm>

<indexterm id="INDEX-4511" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>LENGTH (awk variable)</primary>
<see>@+</see>
</indexterm>

<indexterm id="INDEX-4512" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@at">@ (at sign)</primary>
<secondary sortas="@atminus">@- array of starting positions</secondary>
</indexterm>

<indexterm id="INDEX-4513" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>starting position of matched string</primary>
</indexterm>

<indexterm id="INDEX-4514" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>RSTART (awk variable)</primary>
<see>@-</see>
</indexterm>

<indexterm id="INDEX-4515" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarplus">$+ ($LAST_PAREN_MATCH)</secondary>
</indexterm>

<indexterm id="INDEX-4516" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="LAST_PAREN_MATCH">$LAST_PAREN_MATCH</primary>
</indexterm>

<indexterm id="INDEX-4517" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcomma">$, ($LIST_SEPARATOR)</secondary>
</indexterm>

<indexterm id="INDEX-4518" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="LIST_SEPARATOR">$LIST_SEPARATOR</primary>
</indexterm>

<indexterm id="INDEX-4519" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretM">$^M</secondary>
</indexterm>

<indexterm id="INDEX-4520" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>trapping out-of-memory errors</primary>
</indexterm>

<indexterm id="INDEX-4521" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>malloc errors</primary>
</indexterm>

<indexterm id="INDEX-4522" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>memory</primary>
<secondary>running out of</secondary>
</indexterm>

<indexterm id="INDEX-4523" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>errors</primary>
<secondary>out-of-memory errors</secondary>
</indexterm>

<indexterm id="INDEX-4524" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>out of memory errors</primary>
</indexterm>

<indexterm id="INDEX-4525" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarampersand">$&amp; ($MATCH)</secondary>
</indexterm>

<indexterm id="INDEX-4526" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="MATCH">$MATCH</primary>
</indexterm>

<indexterm id="INDEX-4527" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarbracket2">$] ($PERL_VERSION)</secondary>
</indexterm>

<indexterm id="INDEX-4528" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="PERL_VERSION">$PERL_VERSION</primary>
</indexterm>

<indexterm id="INDEX-4529" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>version, Perl</primary>
</indexterm>

<indexterm id="INDEX-4530" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretO">$^O ($OSNAME)</secondary>
</indexterm>

<indexterm id="INDEX-4531" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="OSNAME">$OSNAME</primary>
</indexterm>

<indexterm id="INDEX-4532" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>$OSNAME</primary>
<see>$^O variable</see>
</indexterm>

<indexterm id="INDEX-4533" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>operating system name</primary>
</indexterm>

<indexterm id="INDEX-4534" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarbang">$! ($OS_ERROR)</secondary>
</indexterm>

<indexterm id="INDEX-4535" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="OS_ERROR">$OS_ERROR</primary>
</indexterm>

<indexterm id="INDEX-4536" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>errors</primary>
<secondary sortas="@dollarbang">$! variable for</secondary>
</indexterm>

<indexterm id="INDEX-4537" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>errno</primary>
<see>$OS_ERROR</see>
</indexterm>

<indexterm id="INDEX-4538" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarvertical">$| ($OUTPUT_AUTOFLUSH)</secondary>
</indexterm>

<indexterm id="INDEX-4539" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="OUTPUT_AUTOFLUSH">$OUTPUT_AUTOFLUSH</primary>
</indexterm>

<indexterm id="INDEX-4540" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>commands</primary>
<secondary>buffering</secondary>
</indexterm>

<indexterm id="INDEX-4541" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>flushing buffers</primary>
</indexterm>

<indexterm id="INDEX-4542" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>autoflushing buffers</primary>
</indexterm>

<indexterm id="INDEX-4543" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>records </primary>
<secondary>input, separator for</secondary>
<see>$/ variable</see>
</indexterm>

<indexterm id="INDEX-4544" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>input </primary>
<secondary>record separator</secondary>
<see>$/ variable</see>
</indexterm>

<indexterm id="INDEX-4545" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>records </primary>
<secondary>output, separator for</secondary>
<see>$\ variable</see>
</indexterm>

<indexterm id="INDEX-4546" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>output </primary>
<secondary>record separator</secondary>
<see>$\ variable</see>
</indexterm>

<indexterm id="INDEX-4547" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>output </primary>
<secondary>field separator</secondary>
<see>$, variable</see>
</indexterm>

<indexterm id="INDEX-4548" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcomma">$, ($OUTPUT_FIELD_SEPARATOR)</secondary>
</indexterm>

<indexterm id="INDEX-4549" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="OUTPUT_FIELD_SEPARATOR">$OUTPUT_FIELD_SEPARATOR</primary>
</indexterm>

<indexterm id="INDEX-4550" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarbackslash">$\ ($OUTPUT_RECORD_SEPARATOR)</secondary>
</indexterm>

<indexterm id="INDEX-4551" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="OUTPUT_RECORD_SEPARATOR">$OUTPUT_RECORD_SEPARATOR</primary>
</indexterm>

<indexterm id="INDEX-4552" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretP">$^P ($PERLDB)</secondary>
</indexterm>

<indexterm id="INDEX-4553" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="PERLDB">$PERLDB</primary>
</indexterm>

<indexterm id="INDEX-4554" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretV">$^V ($PERL_VERSION)</secondary>
</indexterm>

<indexterm id="INDEX-4555" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="PERL_VERSION">$PERL_VERSION</primary>
</indexterm>

<indexterm id="INDEX-4556" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>version</primary>
<secondary> of Perl ($^V)</secondary>
</indexterm>

<indexterm id="INDEX-4557" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>revision</primary>
<see>version</see>
</indexterm>

<indexterm id="INDEX-4558" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>v-strings</primary>
<secondary> in $^V</secondary>
</indexterm>

<indexterm id="INDEX-4559" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarapostrophe">$' ($POSTMATCH)</secondary>
</indexterm>

<indexterm id="INDEX-4560" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="POSTMATCH">$POSTMATCH</primary>
</indexterm>

<indexterm id="INDEX-4561" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarbacktick">$` ($PREMATCH)</secondary>
</indexterm>

<indexterm id="INDEX-4562" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="PREMATCH">$PREMATCH</primary>
</indexterm>

<indexterm id="INDEX-4563" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollardollar">$$ ($PROCESS_ID)</secondary>
</indexterm>

<indexterm id="INDEX-4564" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="PROCESS_ID">$PROCESS_ID</primary>
</indexterm>

<indexterm id="INDEX-4565" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>PID (process ID)</primary>
</indexterm>

<indexterm id="INDEX-4566" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollar@0">$0 ($PROGRAM_NAME)</secondary>
</indexterm>

<indexterm id="INDEX-4567" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="PROGRAM_NAME">$PROGRAM_NAME</primary>
</indexterm>

<indexterm id="INDEX-4568" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>names</primary>
<secondary>program</secondary>
<see>$0 variable</see>
</indexterm>

<indexterm id="INDEX-4569" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>scripts</primary>
<secondary>names of</secondary>
<see>$0 variable</see>
</indexterm>

<indexterm id="INDEX-4570" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>program name</primary>
<secondary> of perl script</secondary>
</indexterm>

<indexterm id="INDEX-4571" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>GID (group ID)</primary>
<seealso>$( variable[semi] $) variable</seealso>
</indexterm>

<indexterm id="INDEX-4572" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>real GID</primary>
<see>$( variable</see>
</indexterm>

<indexterm id="INDEX-4573" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>effective GID</primary>
<see>$) variable</see>
</indexterm>

<indexterm id="INDEX-4574" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarparens1">$( ($REAL_GROUP_ID)</secondary>
</indexterm>

<indexterm id="INDEX-4575" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="REAL_GROUP_ID">$REAL_GROUP_ID</primary>
</indexterm>

<indexterm id="INDEX-4576" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarparens2">$) ($EFFECTIVE_GROUP_ID)</secondary>
</indexterm>

<indexterm id="INDEX-4577" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="EFFECTIVE_GROUP_ID">$EFFECTIVE_GROUP_ID</primary>
</indexterm>

<indexterm id="INDEX-4578" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarleft">$&lt; ($REAL_USER_ID)</secondary>
</indexterm>

<indexterm id="INDEX-4579" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="REAL_USER_ID">$REAL_USER_ID</primary>
</indexterm>

<indexterm id="INDEX-4580" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>%SIG hash</primary>
</indexterm>

<indexterm id="INDEX-4581" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>signals</primary>
<secondary> %SIG hash</secondary>
</indexterm>

<indexterm id="INDEX-4582" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>warning messages</primary>
<secondary> intercepting</secondary>
</indexterm>

<indexterm id="INDEX-4583" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>exceptions</primary>
<secondary> intercepting</secondary>
</indexterm>

<indexterm id="INDEX-4584" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>STDERR filehandle</primary>
</indexterm>

<indexterm id="INDEX-4585" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>STDIN filehandle</primary>
</indexterm>

<indexterm id="INDEX-4586" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>STDOUT filehandle</primary>
</indexterm>

<indexterm id="INDEX-4587" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarsemicolon">$[semi] ($SUBSCRIPT_SEPARATOR)</secondary>
</indexterm>

<indexterm id="INDEX-4588" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="SUBSCRIPT_SEPARATOR">$SUBSCRIPT_SEPARATOR</primary>
</indexterm>

<indexterm id="INDEX-4589" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>subscript separator</primary>
<see>$[semi] variable</see>
</indexterm>

<indexterm id="INDEX-4590" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>arrays </primary>
<secondary>subscript separator</secondary>
<see>$[semi] variable</see>
</indexterm>

<indexterm id="INDEX-4591" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretF">$^F ($SYSTEM_FD_MAX)</secondary>
</indexterm>

<indexterm id="INDEX-4592" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="SYSTEM_FD_MAX">$SYSTEM_FD_MAX</primary>
</indexterm>

<indexterm id="INDEX-4593" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>close-on-exec flag</primary>
</indexterm>

<indexterm id="INDEX-4594" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarcaretW">$^W ($WARNING)</secondary>
</indexterm>

<indexterm id="INDEX-4595" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="WARNING">$WARNING</primary>
</indexterm>

<indexterm id="INDEX-4596" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>lexical warnings</primary>
<secondary> ${^WARNING_BITS}</secondary>
</indexterm>

<indexterm id="INDEX-4597" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>warnings</primary>
<secondary> lexical; ${^WARNING_BITS}</secondary>
</indexterm>

<indexterm id="INDEX-4598" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarbracecaretWA">${^WARNING_BITS}</secondary>
</indexterm>

<indexterm id="INDEX-4599" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="WARNING_BITS">${^WARNING_BITS}</primary>
</indexterm>

<indexterm id="INDEX-4600" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>utf8</primary>
<secondary> globally switching interfaces to</secondary>
</indexterm>

<indexterm id="INDEX-4601" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary>wide, syscalls</primary>
</indexterm>

<indexterm id="INDEX-4602" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="@dollar variables">$ variables </primary>
<secondary sortas="@dollarbracecaretWI">${^WIDE_SYSTEM_CALLS}</secondary>
</indexterm>

<indexterm id="INDEX-4603" file="ch28_02.htm" sect="28.2. Special Variables in Alphabetical Order">
<primary sortas="WIDE_SYSTEM_CALLS">${^WIDE_SYSTEM_CALLS}</primary>
</indexterm>

<indexterm id="INDEX-4604" file="ch29_01.htm" sect="29. Functions">
<primary>functions</primary>
</indexterm>

<indexterm id="INDEX-4605" file="ch29_01.htm" sect="29. Functions">
<primary>functions</primary>
<seealso>under specific function name</seealso>
</indexterm>

<indexterm id="INDEX-4606" file="ch29_01.htm" sect="29. Functions">
<primary>lists</primary>
<secondary sortas="function">as function arguments</secondary>
</indexterm>

<indexterm id="INDEX-4607" file="ch29_01.htm" sect="29. Functions">
<primary>lists</primary>
<secondary>flattening</secondary>
</indexterm>

<indexterm id="INDEX-4608" file="ch29_01.htm" sect="29. Functions">
<primary sortas="@parens">() (parentheses)</primary>
<secondary sortas="functions">in functions</secondary>
</indexterm>

<indexterm id="INDEX-4609" file="ch29_01.htm" sect="29. Functions">
<primary>whitespace</primary>
</indexterm>

<indexterm id="INDEX-4610" file="ch29_01.htm" sect="29. Functions">
<primary>precedence</primary>
</indexterm>

<indexterm id="INDEX-4611" file="ch29_01.htm" sect="29. Functions">
<primary>order</primary>
<secondary sortas="function">of function precedence</secondary>
</indexterm>

<indexterm id="INDEX-4612" file="ch29_01.htm" sect="29. Functions">
<primary>switches</primary>
<secondary sortas="w switch">-w switch</secondary>
</indexterm>

<indexterm id="INDEX-4613" file="ch29_01.htm" sect="29. Functions">
<primary>C language</primary>
<secondary>library functions</secondary>
</indexterm>

<indexterm id="INDEX-4614" file="ch29_01.htm" sect="29. Functions">
<primary>functions</primary>
<secondary>C library</secondary>
</indexterm>

<indexterm id="INDEX-4615" file="ch29_01.htm" sect="29. Functions">
<primary>documentation</primary>
<secondary>C library functions</secondary>
</indexterm>

<indexterm id="INDEX-4616" file="ch29_01.htm" sect="29. Functions">
<primary>functions</primary>
<secondary sortas="list">in list or scalar context</secondary>
</indexterm>

<indexterm id="INDEX-4617" file="ch29_01.htm" sect="29. Functions">
<primary>scalar context</primary>
<secondary>functions in</secondary>
</indexterm>

<indexterm id="INDEX-4618" file="ch29_01.htm" sect="29. Functions">
<primary>list context</primary>
<secondary>functions in</secondary>
</indexterm>

<indexterm id="INDEX-4619" file="ch29_01.htm" sect="29. Functions">
<primary>bytes</primary>
<secondary>characters vs.</secondary>
</indexterm>

<indexterm id="INDEX-4620" file="ch29_01.htm" sect="29. Functions">
<primary>characters</primary>
<secondary>bytes vs.</secondary>
</indexterm>

<indexterm id="INDEX-4621" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>functions</primary>
<secondary>by category</secondary>
</indexterm>

<indexterm id="INDEX-4622" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>categories</primary>
<secondary sortas="functions">of functions</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>scalars</primary>
<secondary>functions for manipulating</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>regular expressions</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>patterns (and regular expressions)</primary>
<secondary>functions for matching</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>numbers</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>arrays</primary>
<secondary>processing, functions for</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>lists</primary>
<secondary>processing, functions for</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>hashes</primary>
<secondary>processing, functions for</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>input</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>output</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>data</primary>
<secondary>fixed-length, functions for</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>records</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>files</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>filehandles</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>directories</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>flow of program control, functions for</primary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>scope</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>miscellaneous functions</primary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>processes</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>groups</primary>
<secondary>processes</secondary>
<tertiary>functions dealing with</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>modules</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>classes</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>objects</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>sockets</primary>
<secondary>low-level access, functions for</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>System V IPC</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>users, information about, functions for getting</primary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>groups</primary>
<secondary>users</secondary>
<tertiary>functions dealing with</tertiary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>login names</primary>
<secondary>functions dealing with</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>networking</primary>
<secondary>network information, functions for retrieving</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_01.htm" sect="29.1. Perl Functions by Category">
<primary>time</primary>
<secondary>Perl functions for</secondary>
</indexterm>

<indexterm id="INDEX-4625" file="ch29_02.htm" sect="29.2. Perl Functions in Alphabetical Order">
<primary>functions</primary>
<secondary>returning tainted data</secondary>
</indexterm>

<indexterm id="INDEX-4626" file="ch29_02.htm" sect="29.2. Perl Functions in Alphabetical Order">
<primary>taint</primary>
<secondary>functions returning tainted data</secondary>
</indexterm>

<indexterm id="INDEX-4627" file="ch29_02.htm" sect="29.2. Perl Functions in Alphabetical Order">
<primary>exceptions</primary>
<secondary>functions raising</secondary>
</indexterm>

<indexterm id="INDEX-4628" file="ch29_02.htm" sect="29.2. Perl Functions in Alphabetical Order">
<primary>lport manpage, function portability information</primary>
</indexterm>

<indexterm id="INDEX-4629" file="ch29_02.htm" sect="29.2. Perl Functions in Alphabetical Order">
<primary>portability</primary>
<secondary>functions, information on</secondary>
</indexterm>

<indexterm id="INDEX-4630" file="ch29_02.htm" sect="29.2.1. abs">
<primary>abs (absolute value) function</primary>
</indexterm>

<indexterm id="INDEX-4631" file="ch29_02.htm" sect="29.2.2. accept ">
<primary>accept function</primary>
</indexterm>

<indexterm id="INDEX-4632" file="ch29_02.htm" sect="29.2.2. accept ">
<primary>sockets</primary>
<secondary>accepting connections from clients</secondary>
</indexterm>

<indexterm id="INDEX-4633" file="ch29_02.htm" sect="29.2.3. alarm">
<primary>alarm function</primary>
</indexterm>

<indexterm id="INDEX-4634" file="ch29_02.htm" sect="29.2.3. alarm">
<primary>SIGALRM signal</primary>
</indexterm>

<indexterm id="INDEX-4635" file="ch29_02.htm" sect="29.2.3. alarm">
<primary>timing</primary>
<secondary sortas="alarms">with alarms</secondary>
</indexterm>

<indexterm id="INDEX-4636" file="ch29_02.htm" sect="29.2.3. alarm">
<primary>syscall function</primary>
</indexterm>

<indexterm id="INDEX-4637" file="ch29_02.htm" sect="29.2.3. alarm">
<primary>itimer routines</primary>
</indexterm>

<indexterm id="INDEX-4638" file="ch29_02.htm" sect="29.2.3. alarm">
<primary>Timer::HiRes module</primary>
</indexterm>

<indexterm id="INDEX-4639" file="ch29_02.htm" sect="29.2.4. atan2">
<primary>arctangents</primary>
</indexterm>

<indexterm id="INDEX-4640" file="ch29_02.htm" sect="29.2.4. atan2">
<primary>atan function</primary>
</indexterm>

<indexterm id="INDEX-4641" file="ch29_02.htm" sect="29.2.4. atan2">
<primary>tan function</primary>
</indexterm>

<indexterm id="INDEX-4642" file="ch29_02.htm" sect="29.2.4. atan2">
<primary>tangent</primary>
</indexterm>

<indexterm id="INDEX-4643" file="ch29_02.htm" sect="29.2.4. atan2">
<primary>pi</primary>
</indexterm>

<indexterm id="INDEX-4644" file="ch29_02.htm" sect="29.2.5. bind">
<primary>bind function</primary>
</indexterm>

<indexterm id="INDEX-4645" file="ch29_02.htm" sect="29.2.5. bind">
<primary>naming, socket</primary>
</indexterm>

<indexterm id="INDEX-4646" file="ch29_02.htm" sect="29.2.5. bind">
<primary>sockets</primary>
<secondary>attaching address to</secondary>
</indexterm>

<indexterm id="INDEX-4647" file="ch29_02.htm" sect="29.2.5. bind">
<primary>addresses</primary>
<secondary>socket names as</secondary>
</indexterm>

<indexterm id="INDEX-4648" file="ch29_02.htm" sect="29.2.6. binmode">
<primary>binmode function</primary>
</indexterm>

<indexterm id="INDEX-4649" file="ch29_02.htm" sect="29.2.6. binmode">
<primary>files</primary>
<secondary>read in binary mode</secondary>
</indexterm>

<indexterm id="INDEX-4650" file="ch29_02.htm" sect="29.2.6. binmode">
<primary>binary</primary>
<secondary>mode on filehandles</secondary>
</indexterm>

<indexterm id="INDEX-4651" file="ch29_02.htm" sect="29.2.6. binmode">
<primary>disciplines</primary>
<secondary>filehandles, setting up with binmode</secondary>
</indexterm>

<indexterm id="INDEX-4652" file="ch29_02.htm" sect="29.2.7. bless">
<primary>bless function</primary>
</indexterm>

<indexterm id="INDEX-4653" file="ch29_02.htm" sect="29.2.7. bless">
<primary>objects</primary>
<secondary>blessing</secondary>
</indexterm>

<indexterm id="INDEX-4654" file="ch29_02.htm" sect="29.2.7. bless">
<primary>packages</primary>
<secondary>blessing objects into</secondary>
</indexterm>

<indexterm id="INDEX-4655" file="ch29_02.htm" sect="29.2.8. caller">
<primary>caller function</primary>
</indexterm>

<indexterm id="INDEX-4656" file="ch29_02.htm" sect="29.2.8. caller">
<primary>subroutine call stack</primary>
</indexterm>

<indexterm id="INDEX-4657" file="ch29_02.htm" sect="29.2.8. caller">
<primary>stacks</primary>
<secondary>subroutines, current calls</secondary>
</indexterm>

<indexterm id="INDEX-4658" file="ch29_02.htm" sect="29.2.8. caller">
<primary>DB package</primary>
<secondary>caller function</secondary>
</indexterm>

<indexterm id="INDEX-4659" file="ch29_02.htm" sect="29.2.9. chdir">
<primary>chdir function</primary>
</indexterm>

<indexterm id="INDEX-4660" file="ch29_02.htm" sect="29.2.9. chdir">
<primary>directories</primary>
<secondary>changing working</secondary>
</indexterm>

<indexterm id="INDEX-4661" file="ch29_02.htm" sect="29.2.9. chdir">
<primary>home directory</primary>
</indexterm>

<indexterm id="INDEX-4662" file="ch29_02.htm" sect="29.2.10. chmod">
<primary>files</primary>
<secondary>permissions</secondary>
<see>permissions, file</see>
</indexterm>

<indexterm id="INDEX-4663" file="ch29_02.htm" sect="29.2.10. chmod">
<primary>chmod function</primary>
</indexterm>

<indexterm id="INDEX-4664" file="ch29_02.htm" sect="29.2.10. chmod">
<primary>File::chmod module</primary>
</indexterm>

<indexterm id="INDEX-4665" file="ch29_02.htm" sect="29.2.11. chomp">
<primary>chomp function</primary>
</indexterm>

<indexterm id="INDEX-4666" file="ch29_02.htm" sect="29.2.11. chomp">
<primary>characters</primary>
<secondary>deleting</secondary>
</indexterm>

<indexterm id="INDEX-4667" file="ch29_02.htm" sect="29.2.11. chomp">
<primary>deleting</primary>
<secondary>characters</secondary>
</indexterm>

<indexterm id="INDEX-4668" file="ch29_02.htm" sect="29.2.11. chomp">
<primary>stripping</primary>
<see>deleting characters</see>
</indexterm>

<indexterm id="INDEX-4669" file="ch29_02.htm" sect="29.2.11. chomp">
<primary>newlines</primary>
<secondary>chomp function, deleting with</secondary>
</indexterm>

<indexterm id="INDEX-4670" file="ch29_02.htm" sect="29.2.12. chop">
<primary>chop function</primary>
</indexterm>

<indexterm id="INDEX-4671" file="ch29_02.htm" sect="29.2.12. chop">
<primary>chop function</primary>
<seealso>chomp function</seealso>
</indexterm>

<indexterm id="INDEX-4672" file="ch29_02.htm" sect="29.2.12. chop">
<primary>lists</primary>
<secondary>chopping</secondary>
</indexterm>

<indexterm id="INDEX-4673" file="ch29_02.htm" sect="29.2.12. chop">
<primary>substr function</primary>
<secondary>chop function and</secondary>
</indexterm>

<indexterm id="INDEX-4674" file="ch29_02.htm" sect="29.2.13. chown">
<primary>chown function</primary>
</indexterm>

<indexterm id="INDEX-4675" file="ch29_02.htm" sect="29.2.13. chown">
<primary>files</primary>
<secondary>ownership and group, changing</secondary>
</indexterm>

<indexterm id="INDEX-4676" file="ch29_02.htm" sect="29.2.13. chown">
<primary>ownership, file</primary>
</indexterm>

<indexterm id="INDEX-4677" file="ch29_02.htm" sect="29.2.13. chown">
<primary>UID (user ID)</primary>
</indexterm>

<indexterm id="INDEX-4678" file="ch29_02.htm" sect="29.2.13. chown">
<primary>GID (group ID)</primary>
</indexterm>

<indexterm id="INDEX-4679" file="ch29_02.htm" sect="29.2.13. chown">
<primary>user ID</primary>
<see>UID</see>
</indexterm>

<indexterm id="INDEX-4680" file="ch29_02.htm" sect="29.2.13. chown">
<primary>group ID</primary>
<see>GID</see>
</indexterm>

<indexterm id="INDEX-4681" file="ch29_02.htm" sect="29.2.14. chr">
<primary>converting</primary>
<secondary>ASCII value to character</secondary>
</indexterm>

<indexterm id="INDEX-4682" file="ch29_02.htm" sect="29.2.14. chr">
<primary>converting</primary>
<secondary>Unicode value to character</secondary>
</indexterm>

<indexterm id="INDEX-4683" file="ch29_02.htm" sect="29.2.14. chr">
<primary>chr function</primary>
</indexterm>

<indexterm id="INDEX-4684" file="ch29_02.htm" sect="29.2.14. chr">
<primary>characters</primary>
<secondary>getting from ASCII values</secondary>
</indexterm>

<indexterm id="INDEX-4685" file="ch29_02.htm" sect="29.2.14. chr">
<primary>characters</primary>
<secondary>getting from Unicode values</secondary>
</indexterm>

<indexterm id="INDEX-4686" file="ch29_02.htm" sect="29.2.14. chr">
<primary>ASCII</primary>
<secondary>converting to characters</secondary>
</indexterm>

<indexterm id="INDEX-4687" file="ch29_02.htm" sect="29.2.14. chr">
<primary>Unicode</primary>
<secondary>converting to characters</secondary>
</indexterm>

<indexterm id="INDEX-4688" file="ch29_02.htm" sect="29.2.14. chr">
<primary>Unicode</primary>
<secondary>smiley face</secondary>
</indexterm>

<indexterm id="INDEX-4689" file="ch29_02.htm" sect="29.2.15. chroot">
<primary>chroot function</primary>
</indexterm>

<indexterm id="INDEX-4690" file="ch29_02.htm" sect="29.2.15. chroot">
<primary>directories</primary>
<secondary>root, redefining</secondary>
</indexterm>

<indexterm id="INDEX-4691" file="ch29_02.htm" sect="29.2.15. chroot">
<primary>root directory, redefining</primary>
</indexterm>

<indexterm id="INDEX-4692" file="ch29_02.htm" sect="29.2.15. chroot">
<primary sortas="@slash">/ (slash)</primary>
<secondary>root directory</secondary>
</indexterm>

<indexterm id="INDEX-4693" file="ch29_02.htm" sect="29.2.16. close">
<primary>close function</primary>
</indexterm>

<indexterm id="INDEX-4694" file="ch29_02.htm" sect="29.2.16. close">
<primary>files</primary>
<secondary>closing</secondary>
</indexterm>

<indexterm id="INDEX-4695" file="ch29_02.htm" sect="29.2.16. close">
<primary>sockets</primary>
<secondary>closing</secondary>
</indexterm>

<indexterm id="INDEX-4696" file="ch29_02.htm" sect="29.2.16. close">
<primary>pipes</primary>
<secondary>closing</secondary>
</indexterm>

<indexterm id="INDEX-4697" file="ch29_02.htm" sect="29.2.16. close">
<primary>open function</primary>
<secondary sortas="@dollardot">$. and</secondary>
</indexterm>

<indexterm id="INDEX-4698" file="ch29_02.htm" sect="29.2.16. close">
<primary>line counter</primary>
<see>$. variable</see>
</indexterm>

<indexterm id="INDEX-4699" file="ch29_02.htm" sect="29.2.16. close">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollardot">$. ($INPUT_LINE_NUMBER)</secondary>
<tertiary>resetting with close function</tertiary>
</indexterm>

<indexterm id="INDEX-4700" file="ch29_02.htm" sect="29.2.16. close">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarquestion">$? ($CHILD_ERROR)</secondary>
<tertiary>close function and</tertiary>
</indexterm>

<indexterm id="INDEX-4701" file="ch29_02.htm" sect="29.2.17. closedir">
<primary>closedir function</primary>
</indexterm>

<indexterm id="INDEX-4702" file="ch29_02.htm" sect="29.2.17. closedir">
<primary>directories</primary>
<secondary>closing</secondary>
</indexterm>

<indexterm id="INDEX-4703" file="ch29_02.htm" sect="29.2.18. connect">
<primary>connect function</primary>
</indexterm>

<indexterm id="INDEX-4704" file="ch29_02.htm" sect="29.2.18. connect">
<primary>sockets </primary>
<secondary>connecting</secondary>
</indexterm>

<indexterm id="INDEX-4705" file="ch29_02.htm" sect="29.2.19. cos                                                ">
<primary>cos function (cosines)</primary>
</indexterm>

<indexterm id="INDEX-4706" file="ch29_02.htm" sect="29.2.20. crypt">
<primary>crypt function</primary>
</indexterm>

<indexterm id="INDEX-4707" file="ch29_02.htm" sect="29.2.20. crypt">
<primary>encryption</primary>
</indexterm>

<indexterm id="INDEX-4708" file="ch29_02.htm" sect="29.2.20. crypt">
<primary>passwords</primary>
<secondary>crypt function and</secondary>
</indexterm>

<indexterm id="INDEX-4709" file="ch29_02.htm" sect="29.2.20. crypt">
<primary>decryption</primary>
<see>encryption</see>
</indexterm>

<indexterm id="INDEX-4710" file="ch29_02.htm" sect="29.2.21. dbmclose">
<primary>DBM files</primary>
<secondary>dbmclose and dbmopen functions</secondary>
</indexterm>

<indexterm id="INDEX-4711" file="ch29_02.htm" sect="29.2.21. dbmclose">
<primary>untie function</primary>
</indexterm>

<indexterm id="INDEX-4712" file="ch29_02.htm" sect="29.2.22. dbmopen">
<primary>hashes</primary>
<secondary>binding DBM files to</secondary>
</indexterm>

<indexterm id="INDEX-4713" file="ch29_02.htm" sect="29.2.22. dbmopen">
<primary>binding</primary>
<secondary>DBM file to hash</secondary>
</indexterm>

<indexterm id="INDEX-4714" file="ch29_02.htm" sect="29.2.22. dbmopen">
<primary>locking files</primary>
<secondary>DBM files</secondary>
</indexterm>

<indexterm id="INDEX-4715" file="ch29_02.htm" sect="29.2.22. dbmopen">
<primary>associative arrays</primary>
<see>hashes</see>
</indexterm>

<indexterm id="INDEX-4716" file="ch29_02.htm" sect="29.2.22. dbmopen">
<primary>arrays</primary>
<secondary>associative</secondary>
<see>hashes</see>
</indexterm>

<indexterm id="INDEX-4717" file="ch29_02.htm" sect="29.2.23. defined">
<primary>real values, testing for with defined function</primary>
</indexterm>

<indexterm id="INDEX-4718" file="ch29_02.htm" sect="29.2.23. defined">
<primary>defined function</primary>
</indexterm>

<indexterm id="INDEX-4719" file="ch29_02.htm" sect="29.2.23. defined">
<primary>undef (value)</primary>
</indexterm>

<indexterm id="INDEX-4720" file="ch29_02.htm" sect="29.2.23. defined">
<primary>testing</primary>
<secondary sortas="defined">if defined</secondary>
</indexterm>

<indexterm id="INDEX-4721" file="ch29_02.htm" sect="29.2.24. delete">
<primary>deleting</primary>
<secondary>hash elements</secondary>
</indexterm>

<indexterm id="INDEX-4722" file="ch29_02.htm" sect="29.2.24. delete">
<primary>delete function</primary>
</indexterm>

<indexterm id="INDEX-4723" file="ch29_02.htm" sect="29.2.24. delete">
<primary>hashes</primary>
<secondary>deleting values from</secondary>
</indexterm>

<indexterm id="INDEX-4724" file="ch29_02.htm" sect="29.2.24. delete">
<primary sortas="ENV hash">%ENV hash</primary>
<secondary>deleting from</secondary>
</indexterm>

<indexterm id="INDEX-4725" file="ch29_02.htm" sect="29.2.24. delete">
<primary>DBM files</primary>
<secondary>deleting from</secondary>
</indexterm>

<indexterm id="INDEX-4726" file="ch29_02.htm" sect="29.2.25. die">
<primary>die function</primary>
</indexterm>

<indexterm id="INDEX-4727" file="ch29_02.htm" sect="29.2.25. die">
<primary>exceptions</primary>
<secondary>die function and</secondary>
</indexterm>

<indexterm id="INDEX-4728" file="ch29_02.htm" sect="29.2.25. die">
<primary>eval function</primary>
<secondary>die function and</secondary>
</indexterm>

<indexterm id="INDEX-4729" file="ch29_02.htm" sect="29.2.26. do (block)">
<primary>do BLOCK operator</primary>
</indexterm>

<indexterm id="INDEX-4730" file="ch29_02.htm" sect="29.2.27. do (file)">
<primary>do FILE operator</primary>
</indexterm>

<indexterm id="INDEX-4731" file="ch29_02.htm" sect="29.2.27. do (file)">
<primary>files</primary>
<secondary>do FILE operator</secondary>
</indexterm>

<indexterm id="INDEX-4732" file="ch29_02.htm" sect="29.2.28. do (subroutine)">
<primary>subroutines</primary>
<secondary>do SUBROUTINE operator</secondary>
</indexterm>

<indexterm id="INDEX-4733" file="ch29_02.htm" sect="29.2.28. do (subroutine)">
<primary>do SUBROUTINE operator</primary>
</indexterm>

<indexterm id="INDEX-4734" file="ch29_02.htm" sect="29.2.29. dump">
<primary>dump function</primary>
</indexterm>

<indexterm id="INDEX-4735" file="ch29_02.htm" sect="29.2.29. dump">
<primary>core dumps</primary>
<secondary>dump function for</secondary>
</indexterm>

<indexterm id="INDEX-4736" file="ch29_02.htm" sect="29.2.29. dump">
<primary>programs</primary>
<secondary>core dump of</secondary>
</indexterm>

<indexterm id="INDEX-4737" file="ch29_02.htm" sect="29.2.30. each">
<primary>each function</primary>
</indexterm>

<indexterm id="INDEX-4738" file="ch29_02.htm" sect="29.2.30. each">
<primary>hashes</primary>
<secondary>returning key/value pairs</secondary>
</indexterm>

<indexterm id="INDEX-4739" file="ch29_02.htm" sect="29.2.30. each">
<primary>key/value pairs, hashes</primary>
<secondary>returning with each function</secondary>
</indexterm>

<indexterm id="INDEX-4740" file="ch29_02.htm" sect="29.2.31. eof">
<primary>eof function</primary>
</indexterm>

<indexterm id="INDEX-4741" file="ch29_02.htm" sect="29.2.31. eof">
<primary>while loop</primary>
<secondary>eof function in</secondary>
</indexterm>

<indexterm id="INDEX-4742" file="ch29_02.htm" sect="29.2.31. eof">
<primary>files</primary>
<secondary>end-of-file</secondary>
</indexterm>

<indexterm id="INDEX-4743" file="ch29_02.htm" sect="29.2.32. eval">
<primary>eval function</primary>
</indexterm>

<indexterm id="INDEX-4744" file="ch29_02.htm" sect="29.2.32. eval">
<primary>try block</primary>
</indexterm>

<indexterm id="INDEX-4745" file="ch29_02.htm" sect="29.2.32. eval">
<primary>exceptions</primary>
<secondary>trapping</secondary>
</indexterm>

<indexterm id="INDEX-4746" file="ch29_02.htm" sect="29.2.32. eval">
<primary>trapping</primary>
<secondary>exceptions</secondary>
</indexterm>

<indexterm id="INDEX-4747" file="ch29_02.htm" sect="29.2.32. eval">
<primary>files</primary>
<secondary>renaming, program for</secondary>
</indexterm>

<indexterm id="INDEX-4748" file="ch29_02.htm" sect="29.2.33. exec">
<primary>exec function</primary>
</indexterm>

<indexterm id="INDEX-4749" file="ch29_02.htm" sect="29.2.33. exec">
<primary>scripts</primary>
<secondary>terminating with exec</secondary>
</indexterm>

<indexterm id="INDEX-4750" file="ch29_02.htm" sect="29.2.33. exec">
<primary>execvp function (in C)</primary>
</indexterm>

<indexterm id="INDEX-4751" file="ch29_02.htm" sect="29.2.33. exec">
<primary>metacharacters</primary>
<secondary sortas="exec">in exec arguments</secondary>
</indexterm>

<indexterm id="INDEX-4752" file="ch29_02.htm" sect="29.2.33. exec">
<primary>execv function (in C)</primary>
</indexterm>

<indexterm id="INDEX-4753" file="ch29_02.htm" sect="29.2.34. exists">
<primary>exists function</primary>
</indexterm>

<indexterm id="INDEX-4754" file="ch29_02.htm" sect="29.2.34. exists">
<primary>arrays</primary>
<secondary>exists function and</secondary>
</indexterm>

<indexterm id="INDEX-4755" file="ch29_02.htm" sect="29.2.34. exists">
<primary>hashes</primary>
<secondary>exists function and</secondary>
</indexterm>

<indexterm id="INDEX-4756" file="ch29_02.htm" sect="29.2.34. exists">
<primary>autovivification</primary>
</indexterm>

<indexterm id="INDEX-4757" file="ch29_02.htm" sect="29.2.35. exit">
<primary>exit function</primary>
</indexterm>

<indexterm id="INDEX-4758" file="ch29_02.htm" sect="29.2.35. exit">
<primary>programs</primary>
<secondary>exiting</secondary>
</indexterm>

<indexterm id="INDEX-4759" file="ch29_02.htm" sect="29.2.35. exit">
<primary>subroutines</primary>
<secondary>aborting with exit</secondary>
</indexterm>

<indexterm id="INDEX-4760" file="ch29_02.htm" sect="29.2.35. exit">
<primary>die function</primary>
<secondary>exit function versus</secondary>
</indexterm>

<indexterm id="INDEX-4761" file="ch29_02.htm" sect="29.2.36. exp">
<primary>exp function</primary>
</indexterm>

<indexterm id="INDEX-4762" file="ch29_02.htm" sect="29.2.37. fcntl">
<primary>fcntl function</primary>
</indexterm>

<indexterm id="INDEX-4763" file="ch29_02.htm" sect="29.2.37. fcntl">
<primary>0 but true</primary>
<secondary> -w exemption</secondary>
</indexterm>

<indexterm id="INDEX-4764" file="ch29_02.htm" sect="29.2.37. fcntl">
<primary>0 but true</primary>
</indexterm>

<indexterm id="INDEX-4765" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>fileno function</primary>
</indexterm>

<indexterm id="INDEX-4766" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>file descriptors</primary>
</indexterm>

<indexterm id="INDEX-4767" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>open function</primary>
<secondary>fileno function and</secondary>
</indexterm>

<indexterm id="INDEX-4768" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>select function</primary>
</indexterm>

<indexterm id="INDEX-4769" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>STDIN filehandle</primary>
</indexterm>

<indexterm id="INDEX-4770" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>STDOUT filehandle</primary>
</indexterm>

<indexterm id="INDEX-4771" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>STDERR filehandle</primary>
</indexterm>

<indexterm id="INDEX-4772" file="ch29_02.htm" sect="29.2.38. fileno">
<primary sortas="Fvariable">$^F variable</primary>
</indexterm>

<indexterm id="INDEX-4773" file="ch29_02.htm" sect="29.2.38. fileno">
<primary sortas="@dollarcaret F">$^F variable</primary>
</indexterm>

<indexterm id="INDEX-4774" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>input</primary>
<seealso>STDIN filehandle</seealso>
</indexterm>

<indexterm id="INDEX-4775" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>output</primary>
<seealso>STDOUT filehandle</seealso>
</indexterm>

<indexterm id="INDEX-4776" file="ch29_02.htm" sect="29.2.38. fileno">
<primary>errors</primary>
<seealso>STDERR filehandle</seealso>
</indexterm>

<indexterm id="INDEX-4777" file="ch29_02.htm" sect="29.2.39. flock">
<primary>flock function</primary>
</indexterm>

<indexterm id="INDEX-4778" file="ch29_02.htm" sect="29.2.39. flock">
<primary>locking files</primary>
<secondary>flock function</secondary>
</indexterm>

<indexterm id="INDEX-4779" file="ch29_02.htm" sect="29.2.39. flock">
<primary>fork function</primary>
<secondary>locks, inheriting across calls to</secondary>
</indexterm>

<indexterm id="INDEX-4780" file="ch29_02.htm" sect="29.2.40. fork">
<primary>fork function</primary>
</indexterm>

<indexterm id="INDEX-4781" file="ch29_02.htm" sect="29.2.40. fork">
<primary>process ID (pid)</primary>
<secondary>returning with fork</secondary>
</indexterm>

<indexterm id="INDEX-4782" file="ch29_02.htm" sect="29.2.40. fork">
<primary>child processes</primary>
<secondary>ID, returning</secondary>
</indexterm>

<indexterm id="INDEX-4783" file="ch29_02.htm" sect="29.2.40. fork">
<primary>processes</primary>
<secondary>fork function</secondary>
</indexterm>

<indexterm id="INDEX-4784" file="ch29_02.htm" sect="29.2.40. fork">
<primary>parent processes</primary>
<see>processes</see>
</indexterm>

<indexterm id="INDEX-4785" file="ch29_02.htm" sect="29.2.40. fork">
<primary>buffering</primary>
<secondary>unflushed buffers in Perl versions</secondary>
</indexterm>

<indexterm id="INDEX-4786" file="ch29_02.htm" sect="29.2.40. fork">
<primary>exit function</primary>
</indexterm>

<indexterm id="INDEX-4787" file="ch29_02.htm" sect="29.2.41. format">
<primary>format function</primary>
<secondary>declaration</secondary>
</indexterm>

<indexterm id="INDEX-4788" file="ch29_02.htm" sect="29.2.41. format">
<primary>picture lines</primary>
</indexterm>

<indexterm id="INDEX-4789" file="ch29_02.htm" sect="29.2.41. format">
<primary>names</primary>
<secondary>format</secondary>
<see>format names</see>
</indexterm>

<indexterm id="INDEX-4790" file="ch29_02.htm" sect="29.2.41. format">
<primary>write function</primary>
<secondary>format function, declaring named sequence of picture lines</secondary>
</indexterm>

<indexterm id="INDEX-4791" file="ch29_02.htm" sect="29.2.41. format">
<primary>symbol tables</primary>
<secondary>format name identifiers in</secondary>
</indexterm>

<indexterm id="INDEX-4792" file="ch29_02.htm" sect="29.2.42. formline">
<primary>formline function</primary>
</indexterm>

<indexterm id="INDEX-4793" file="ch29_02.htm" sect="29.2.42. formline">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarcaretA">$^A ($ACCUMULATOR)</secondary>
<tertiary>formline function output</tertiary>
</indexterm>

<indexterm id="INDEX-4794" file="ch29_02.htm" sect="29.2.42. formline">
<primary>output</primary>
<secondary>format output accumulator</secondary>
</indexterm>

<indexterm id="INDEX-4795" file="ch29_02.htm" sect="29.2.42. formline">
<primary>format function</primary>
<secondary>output accumulator</secondary>
</indexterm>

<indexterm id="INDEX-4796" file="ch29_02.htm" sect="29.2.42. formline">
<primary sortas="@doublequotes">" (double quotes)</primary>
<secondary sortas="formline">in formline arguments</secondary>
</indexterm>

<indexterm id="INDEX-4797" file="ch29_02.htm" sect="29.2.42. formline">
<primary>quotation marks</primary>
<secondary sortas="formline">in formline arguments</secondary>
</indexterm>

<indexterm id="INDEX-4798" file="ch29_02.htm" sect="29.2.43. getc">
<primary>getc function</primary>
</indexterm>

<indexterm id="INDEX-4799" file="ch29_02.htm" sect="29.2.43. getc">
<primary>characters</primary>
<secondary>single-character input</secondary>
</indexterm>

<indexterm id="INDEX-4800" file="ch29_02.htm" sect="29.2.43. getc">
<primary>STDIN filehandle</primary>
<secondary>reading single characters from</secondary>
</indexterm>

<indexterm id="INDEX-4801" file="ch29_02.htm" sect="29.2.43. getc">
<primary>input</primary>
<secondary>single-character, buffered and unbuffered</secondary>
</indexterm>

<indexterm id="INDEX-4802" file="ch29_02.htm" sect="29.2.43. getc">
<primary>buffering</primary>
<secondary>single-character input and</secondary>
</indexterm>

<indexterm id="INDEX-4803" file="ch29_02.htm" sect="29.2.43. getc">
<primary>cbreak option</primary>
</indexterm>

<indexterm id="INDEX-4804" file="ch29_02.htm" sect="29.2.43. getc">
<primary>Term::ReadKey modlue</primary>
</indexterm>

<indexterm id="INDEX-4805" file="ch29_02.htm" sect="29.2.43. getc">
<primary>POSIX module</primary>
<secondary>getattr function</secondary>
</indexterm>

<indexterm id="INDEX-4806" file="ch29_02.htm" sect="29.2.44. getgrent">
<primary>getgrent function</primary>
</indexterm>

<indexterm id="INDEX-4807" file="ch29_02.htm" sect="29.2.44. getgrent">
<primary>setgrent function</primary>
</indexterm>

<indexterm id="INDEX-4808" file="ch29_02.htm" sect="29.2.44. getgrent">
<primary>endgrent function</primary>
</indexterm>

<indexterm id="INDEX-4809" file="ch29_02.htm" sect="29.2.44. getgrent">
<primary sortas="etc group">/etc/group file</primary>
</indexterm>

<indexterm id="INDEX-4810" file="ch29_02.htm" sect="29.2.44. getgrent">
<primary>groups</primary>
<secondary>users</secondary>
<tertiary>members, login names</tertiary>
</indexterm>

<indexterm id="INDEX-4811" file="ch29_02.htm" sect="29.2.44. getgrent">
<primary>names</primary>
<secondary>login</secondary>
<see>login names</see>
</indexterm>

<indexterm id="INDEX-4812" file="ch29_02.htm" sect="29.2.44. getgrent">
<primary>login names</primary>
<secondary>getgrent function</secondary>
</indexterm>

<indexterm id="INDEX-4813" file="ch29_02.htm" sect="29.2.44. getgrent">
<primary>User::grent module</primary>
</indexterm>

<indexterm id="INDEX-4814" file="ch29_02.htm" sect="29.2.45. getgrgid">
<primary>getgrgid function</primary>
</indexterm>

<indexterm id="INDEX-4815" file="ch29_02.htm" sect="29.2.45. getgrgid">
<primary>GID (group ID) </primary>
<secondary>looking up files by</secondary>
</indexterm>

<indexterm id="INDEX-4816" file="ch29_02.htm" sect="29.2.45. getgrgid">
<primary>login names</primary>
<secondary>getgrgid function, returning</secondary>
</indexterm>

<indexterm id="INDEX-4817" file="ch29_02.htm" sect="29.2.46. getgrnam">
<primary>getgrnam function</primary>
</indexterm>

<indexterm id="INDEX-4818" file="ch29_02.htm" sect="29.2.46. getgrnam">
<primary>group name</primary>
</indexterm>

<indexterm id="INDEX-4819" file="ch29_02.htm" sect="29.2.46. getgrnam">
<primary>groups</primary>
<secondary>users</secondary>
<tertiary>group name</tertiary>
</indexterm>

<indexterm id="INDEX-4820" file="ch29_02.htm" sect="29.2.46. getgrnam">
<primary>names</primary>
<secondary>group names</secondary>
</indexterm>

<indexterm id="INDEX-4821" file="ch29_02.htm" sect="29.2.46. getgrnam">
<primary>login names</primary>
<secondary>getgrnam function, returning</secondary>
</indexterm>

<indexterm id="INDEX-4822" file="ch29_02.htm" sect="29.2.47. gethostbyaddr">
<primary>gethostbyaddr function</primary>
</indexterm>

<indexterm id="INDEX-4823" file="ch29_02.htm" sect="29.2.47. gethostbyaddr">
<primary>addresses</primary>
<secondary>network, translating to names</secondary>
</indexterm>

<indexterm id="INDEX-4824" file="ch29_02.htm" sect="29.2.47. gethostbyaddr">
<primary>names</primary>
<secondary>getting from network addresses</secondary>
</indexterm>

<indexterm id="INDEX-4825" file="ch29_02.htm" sect="29.2.47. gethostbyaddr">
<primary>hostnames</primary>
<secondary>getting from network addresses</secondary>
</indexterm>

<indexterm id="INDEX-4826" file="ch29_02.htm" sect="29.2.47. gethostbyaddr">
<primary>networking</primary>
<secondary>network addresses, translating into names</secondary>
</indexterm>

<indexterm id="INDEX-4827" file="ch29_02.htm" sect="29.2.47. gethostbyaddr">
<primary>Socket module</primary>
<secondary>inet_ntoa function</secondary>
</indexterm>

<indexterm id="INDEX-4828" file="ch29_02.htm" sect="29.2.47. gethostbyaddr">
<primary>inet_ntoa function</primary>
</indexterm>

<indexterm id="INDEX-4829" file="ch29_02.htm" sect="29.2.47. gethostbyaddr">
<primary>IP addresses</primary>
<secondary>using v-string notation for</secondary>
</indexterm>

<indexterm id="INDEX-4830" file="ch29_02.htm" sect="29.2.48. gethostbyname">
<primary>gethostbyname function</primary>
</indexterm>

<indexterm id="INDEX-4831" file="ch29_02.htm" sect="29.2.48. gethostbyname">
<primary>hostnames</primary>
<secondary>translating to addresses</secondary>
</indexterm>

<indexterm id="INDEX-4832" file="ch29_02.htm" sect="29.2.48. gethostbyname">
<primary>names</primary>
<secondary>hostnames, translating to network addresses</secondary>
</indexterm>

<indexterm id="INDEX-4833" file="ch29_02.htm" sect="29.2.48. gethostbyname">
<primary>addresses</primary>
<secondary>network, getting from hostnames</secondary>
</indexterm>

<indexterm id="INDEX-4834" file="ch29_02.htm" sect="29.2.49. gethostent">
<primary>gethostent function</primary>
</indexterm>

<indexterm id="INDEX-4835" file="ch29_02.htm" sect="29.2.49. gethostent">
<primary sortas="etc hosts">/etc/hosts file</primary>
</indexterm>

<indexterm id="INDEX-4836" file="ch29_02.htm" sect="29.2.49. gethostent">
<primary>sethostent function</primary>
</indexterm>

<indexterm id="INDEX-4837" file="ch29_02.htm" sect="29.2.49. gethostent">
<primary>endhostent function</primary>
</indexterm>

<indexterm id="INDEX-4838" file="ch29_02.htm" sect="29.2.49. gethostent">
<primary>portability</primary>
<secondary>scripts using gethostent function</secondary>
</indexterm>

<indexterm id="INDEX-4839" file="ch29_02.htm" sect="29.2.49. gethostent">
<primary>Net::hostent module</primary>
</indexterm>

<indexterm id="INDEX-4840" file="ch29_02.htm" sect="29.2.50. getlogin">
<primary>getlogin function</primary>
</indexterm>

<indexterm id="INDEX-4841" file="ch29_02.htm" sect="29.2.50. getlogin">
<primary>getpwuid function</primary>
</indexterm>

<indexterm id="INDEX-4842" file="ch29_02.htm" sect="29.2.50. getlogin">
<primary sortas="etc utmp">/etc/utmp file</primary>
</indexterm>

<indexterm id="INDEX-4843" file="ch29_02.htm" sect="29.2.50. getlogin">
<primary>login names</primary>
<secondary>getlogin function for</secondary>
</indexterm>

<indexterm id="INDEX-4844" file="ch29_02.htm" sect="29.2.51. getnetbyaddr">
<primary>getnetbyaddr function</primary>
</indexterm>

<indexterm id="INDEX-4845" file="ch29_02.htm" sect="29.2.51. getnetbyaddr">
<primary>addresses</primary>
<secondary>network, translating to names</secondary>
</indexterm>

<indexterm id="INDEX-4846" file="ch29_02.htm" sect="29.2.51. getnetbyaddr">
<primary>networking</primary>
<secondary>network addresses</secondary>
<tertiary>translating to names</tertiary>
</indexterm>

<indexterm id="INDEX-4847" file="ch29_02.htm" sect="29.2.51. getnetbyaddr">
<primary>names</primary>
<secondary>network addresses, getting from</secondary>
</indexterm>

<indexterm id="INDEX-4848" file="ch29_02.htm" sect="29.2.51. getnetbyaddr">
<primary>Net::netent module</primary>
</indexterm>

<indexterm id="INDEX-4849" file="ch29_02.htm" sect="29.2.52. getnetbyname">
<primary>getnetbyname function</primary>
</indexterm>

<indexterm id="INDEX-4850" file="ch29_02.htm" sect="29.2.52. getnetbyname">
<primary>hostnames</primary>
<secondary>translating to addresses</secondary>
</indexterm>

<indexterm id="INDEX-4851" file="ch29_02.htm" sect="29.2.52. getnetbyname">
<primary>names</primary>
<secondary>translating to network addresses</secondary>
</indexterm>

<indexterm id="INDEX-4852" file="ch29_02.htm" sect="29.2.52. getnetbyname">
<primary>addresses</primary>
<secondary>getting from hostnames</secondary>
</indexterm>

<indexterm id="INDEX-4853" file="ch29_02.htm" sect="29.2.53. getnetent">
<primary>getnetent function</primary>
</indexterm>

<indexterm id="INDEX-4854" file="ch29_02.htm" sect="29.2.53. getnetent">
<primary sortas="etc networks">/etc/networks file</primary>
</indexterm>

<indexterm id="INDEX-4855" file="ch29_02.htm" sect="29.2.53. getnetent">
<primary>networks file</primary>
<see>/etc/networks file</see>
</indexterm>

<indexterm id="INDEX-4856" file="ch29_02.htm" sect="29.2.53. getnetent">
<primary>utmp file</primary>
<see>/etc/utmp file</see>
</indexterm>

<indexterm id="INDEX-4857" file="ch29_02.htm" sect="29.2.53. getnetent">
<primary>hosts file</primary>
<see>/etc/hosts file</see>
</indexterm>

<indexterm id="INDEX-4858" file="ch29_02.htm" sect="29.2.53. getnetent">
<primary>IP addresses</primary>
<secondary>network names and</secondary>
</indexterm>

<indexterm id="INDEX-4859" file="ch29_02.htm" sect="29.2.54. getpeername">
<primary>getpeername function</primary>
</indexterm>

<indexterm id="INDEX-4860" file="ch29_02.htm" sect="29.2.54. getpeername">
<primary>sockets</primary>
<secondary>getting packed sockaddr address</secondary>
</indexterm>

<indexterm id="INDEX-4861" file="ch29_02.htm" sect="29.2.54. getpeername">
<primary>packed sockaddr</primary>
</indexterm>

<indexterm id="INDEX-4862" file="ch29_02.htm" sect="29.2.55. getpgrp">
<primary>getpgrp function</primary>
</indexterm>

<indexterm id="INDEX-4863" file="ch29_02.htm" sect="29.2.55. getpgrp">
<primary>process ID (pid) </primary>
<secondary>getting process group from</secondary>
</indexterm>

<indexterm id="INDEX-4864" file="ch29_02.htm" sect="29.2.55. getpgrp">
<primary>process group</primary>
</indexterm>

<indexterm id="INDEX-4865" file="ch29_02.htm" sect="29.2.56. getppid">
<primary>getppid function</primary>
</indexterm>

<indexterm id="INDEX-4866" file="ch29_02.htm" sect="29.2.56. getppid">
<primary>process ID (pid)</primary>
<secondary>returning</secondary>
</indexterm>

<indexterm id="INDEX-4867" file="ch29_02.htm" sect="29.2.56. getppid">
<primary>init program</primary>
</indexterm>

<indexterm id="INDEX-4868" file="ch29_02.htm" sect="29.2.57. getpriority">
<primary>getpriority function</primary>
</indexterm>

<indexterm id="INDEX-4869" file="ch29_02.htm" sect="29.2.57. getpriority">
<primary>processes</primary>
<secondary>returning priority of</secondary>
</indexterm>

<indexterm id="INDEX-4870" file="ch29_02.htm" sect="29.2.57. getpriority">
<primary>groups</primary>
<secondary>process</secondary>
<tertiary>returning priority of</tertiary>
</indexterm>

<indexterm id="INDEX-4871" file="ch29_02.htm" sect="29.2.57. getpriority">
<primary>priority, process</primary>
</indexterm>

<indexterm id="INDEX-4872" file="ch29_02.htm" sect="29.2.58. getprotobyname">
<primary>getprotobyname function</primary>
</indexterm>

<indexterm id="INDEX-4873" file="ch29_02.htm" sect="29.2.58. getprotobyname">
<primary>protocols, name/number translations</primary>
</indexterm>

<indexterm id="INDEX-4874" file="ch29_02.htm" sect="29.2.58. getprotobyname">
<primary>names</primary>
<secondary>protocols, translating to/from numbers</secondary>
</indexterm>

<indexterm id="INDEX-4875" file="ch29_02.htm" sect="29.2.59. getprotobynumber">
<primary>getprotobynumber function</primary>
</indexterm>

<indexterm id="INDEX-4876" file="ch29_02.htm" sect="29.2.59. getprotobynumber">
<primary>numbers</primary>
<secondary>protocol</secondary>
</indexterm>

<indexterm id="INDEX-4877" file="ch29_02.htm" sect="29.2.59. getprotobynumber">
<primary>Net::proto module</primary>
</indexterm>

<indexterm id="INDEX-4878" file="ch29_02.htm" sect="29.2.60. getprotoent">
<primary>getprotoent function</primary>
</indexterm>

<indexterm id="INDEX-4879" file="ch29_02.htm" sect="29.2.60. getprotoent">
<primary>setprotoent function</primary>
</indexterm>

<indexterm id="INDEX-4880" file="ch29_02.htm" sect="29.2.60. getprotoent">
<primary>endprotoent function</primary>
</indexterm>

<indexterm id="INDEX-4881" file="ch29_02.htm" sect="29.2.60. getprotoent">
<primary sortas="etc protocols">/etc/protocols file</primary>
</indexterm>

<indexterm id="INDEX-4882" file="ch29_02.htm" sect="29.2.61. getpwent">
<primary>getpwent function</primary>
</indexterm>

<indexterm id="INDEX-4883" file="ch29_02.htm" sect="29.2.61. getpwent">
<primary>setpwent function</primary>
</indexterm>

<indexterm id="INDEX-4884" file="ch29_02.htm" sect="29.2.61. getpwent">
<primary>endpwent function</primary>
</indexterm>

<indexterm id="INDEX-4885" file="ch29_02.htm" sect="29.2.61. getpwent">
<primary sortas="etc passwd">/etc/passwd file</primary>
</indexterm>

<indexterm id="INDEX-4886" file="ch29_02.htm" sect="29.2.61. getpwent">
<primary>passwords</primary>
<secondary>passwd file</secondary>
</indexterm>

<indexterm id="INDEX-4887" file="ch29_02.htm" sect="29.2.62. getpwnam">
<primary>getpwnam function</primary>
</indexterm>

<indexterm id="INDEX-4888" file="ch29_02.htm" sect="29.2.62. getpwnam">
<primary>names</primary>
<secondary>users</secondary>
</indexterm>

<indexterm id="INDEX-4889" file="ch29_02.htm" sect="29.2.62. getpwnam">
<primary>username, passwd file entry from</primary>
</indexterm>

<indexterm id="INDEX-4890" file="ch29_02.htm" sect="29.2.62. getpwnam">
<primary>shadow, password entries</primary>
</indexterm>

<indexterm id="INDEX-4891" file="ch29_02.htm" sect="29.2.63. getpwuid">
<primary>getpwuid function</primary>
</indexterm>

<indexterm id="INDEX-4892" file="ch29_02.htm" sect="29.2.63. getpwuid">
<primary>UID (user ID)</primary>
<secondary>passwd file entry from</secondary>
</indexterm>

<indexterm id="INDEX-4893" file="ch29_02.htm" sect="29.2.63. getpwuid">
<primary>identifiers</primary>
<seealso>UID; GID</seealso>
</indexterm>

<indexterm id="INDEX-4894" file="ch29_02.htm" sect="29.2.63. getpwuid">
<primary>User::pwent module</primary>
</indexterm>

<indexterm id="INDEX-4895" file="ch29_02.htm" sect="29.2.64. getservbyname">
<primary>getservbyname function</primary>
</indexterm>

<indexterm id="INDEX-4896" file="ch29_02.htm" sect="29.2.64. getservbyname">
<primary>ports</primary>
<secondary>name/number translations for</secondary>
</indexterm>

<indexterm id="INDEX-4897" file="ch29_02.htm" sect="29.2.64. getservbyname">
<primary>numbers</primary>
<secondary>port, getting name for</secondary>
</indexterm>

<indexterm id="INDEX-4898" file="ch29_02.htm" sect="29.2.64. getservbyname">
<primary>names</primary>
<secondary>ports, getting from  number</secondary>
</indexterm>

<indexterm id="INDEX-4899" file="ch29_02.htm" sect="29.2.64. getservbyname">
<primary>service port name/number translations</primary>
</indexterm>

<indexterm id="INDEX-4900" file="ch29_02.htm" sect="29.2.65. getservbyport">
<primary>getservbyport function</primary>
</indexterm>

<indexterm id="INDEX-4901" file="ch29_02.htm" sect="29.2.65. getservbyport">
<primary>names</primary>
<secondary>protocols, getting from port numbers</secondary>
</indexterm>

<indexterm id="INDEX-4902" file="ch29_02.htm" sect="29.2.65. getservbyport">
<primary>numbers</primary>
<secondary>ports, getting protocol names from</secondary>
</indexterm>

<indexterm id="INDEX-4903" file="ch29_02.htm" sect="29.2.66. getservent">
<primary>getservent function</primary>
</indexterm>

<indexterm id="INDEX-4904" file="ch29_02.htm" sect="29.2.66. getservent">
<primary>setservent function</primary>
</indexterm>

<indexterm id="INDEX-4905" file="ch29_02.htm" sect="29.2.66. getservent">
<primary>endservent function</primary>
</indexterm>

<indexterm id="INDEX-4906" file="ch29_02.htm" sect="29.2.66. getservent">
<primary sortas="etc services">/etc/services file</primary>
</indexterm>

<indexterm id="INDEX-4907" file="ch29_02.htm" sect="29.2.67. getsockname">
<primary>getsockname function</primary>
</indexterm>

<indexterm id="INDEX-4908" file="ch29_02.htm" sect="29.2.67. getsockname">
<primary>addresses</primary>
<secondary>packed socket</secondary>
</indexterm>

<indexterm id="INDEX-4909" file="ch29_02.htm" sect="29.2.67. getsockname">
<primary>sockets</primary>
<secondary>functions for</secondary>
</indexterm>

<indexterm id="INDEX-4910" file="ch29_02.htm" sect="29.2.68. getsockopt">
<primary>getsockopt function</primary>
</indexterm>

<indexterm id="INDEX-4911" file="ch29_02.htm" sect="29.2.69. glob">
<primary>glob function</primary>
</indexterm>

<indexterm id="INDEX-4912" file="ch29_02.htm" sect="29.2.69. glob">
<primary>filenames</primary>
<secondary>expansions of</secondary>
</indexterm>

<indexterm id="INDEX-4913" file="ch29_02.htm" sect="29.2.69. glob">
<primary>tilde, home directory expansion of</primary>
</indexterm>

<indexterm id="INDEX-4914" file="ch29_02.htm" sect="29.2.69. glob">
<primary>expansion, filename</primary>
</indexterm>

<indexterm id="INDEX-4915" file="ch29_02.htm" sect="29.2.70. gmtime">
<primary>gmtime function</primary>
</indexterm>

<indexterm id="INDEX-4916" file="ch29_02.htm" sect="29.2.70. gmtime">
<primary>Greenwich Mean Time (GMT)</primary>
</indexterm>

<indexterm id="INDEX-4917" file="ch29_02.htm" sect="29.2.70. gmtime">
<primary>time</primary>
<secondary>Greenwich Mean (GMT)</secondary>
</indexterm>

<indexterm id="INDEX-4918" file="ch29_02.htm" sect="29.2.70. gmtime">
<primary>converting</primary>
<secondary>time</secondary>
</indexterm>

<indexterm id="INDEX-4919" file="ch29_02.htm" sect="29.2.71. goto">
<primary>goto function</primary>
</indexterm>

<indexterm id="INDEX-4920" file="ch29_02.htm" sect="29.2.71. goto">
<primary>labels</primary>
<secondary sortas="goto">with goto statement</secondary>
</indexterm>

<indexterm id="INDEX-4921" file="ch29_02.htm" sect="29.2.71. goto">
<primary>subroutines</primary>
<secondary>substituting with goto</secondary>
</indexterm>

<indexterm id="INDEX-4922" file="ch29_02.htm" sect="29.2.72. grep">
<primary>grep function</primary>
</indexterm>

<indexterm id="INDEX-4923" file="ch29_02.htm" sect="29.2.72. grep">
<primary>searching</primary>
<secondary>grep function for</secondary>
</indexterm>

<indexterm id="INDEX-4924" file="ch29_02.htm" sect="29.2.72. grep">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarunderscore">$_ ($ARG)</secondary>
<tertiary>grep function and</tertiary>
</indexterm>

<indexterm id="INDEX-4925" file="ch29_02.htm" sect="29.2.72. grep">
<primary>patterns (and regular expressions)</primary>
<secondary>grep function and</secondary>
</indexterm>

<indexterm id="INDEX-4926" file="ch29_02.htm" sect="29.2.73. hex">
<primary>hex function</primary>
</indexterm>

<indexterm id="INDEX-4927" file="ch29_02.htm" sect="29.2.73. hex">
<primary>numbers</primary>
<secondary>hexadecimal</secondary>
</indexterm>

<indexterm id="INDEX-4928" file="ch29_02.htm" sect="29.2.73. hex">
<primary>hexadecimal numbers</primary>
</indexterm>

<indexterm id="INDEX-4929" file="ch29_02.htm" sect="29.2.73. hex">
<primary>converting</primary>
<secondary>hexadecimal numbers to decimal</secondary>
</indexterm>

<indexterm id="INDEX-4930" file="ch29_02.htm" sect="29.2.74. import">
<primary>import function</primary>
</indexterm>

<indexterm id="INDEX-4931" file="ch29_02.htm" sect="29.2.74. import">
<primary>modules</primary>
<secondary>exporting names to other modules</secondary>
</indexterm>

<indexterm id="INDEX-4932" file="ch29_02.htm" sect="29.2.75. index">
<primary>index function</primary>
</indexterm>

<indexterm id="INDEX-4933" file="ch29_02.htm" sect="29.2.75. index">
<primary>strings</primary>
<secondary>index function</secondary>
</indexterm>

<indexterm id="INDEX-4934" file="ch29_02.htm" sect="29.2.75. index">
<primary>searching</primary>
<secondary sortas="substrings">for substrings</secondary>
</indexterm>

<indexterm id="INDEX-4935" file="ch29_02.htm" sect="29.2.76. int">
<primary>int function</primary>
</indexterm>

<indexterm id="INDEX-4936" file="ch29_02.htm" sect="29.2.76. int">
<primary>numbers</primary>
<secondary>truncating with int</secondary>
</indexterm>

<indexterm id="INDEX-4937" file="ch29_02.htm" sect="29.2.76. int">
<primary>truncating numbers</primary>
</indexterm>

<indexterm id="INDEX-4938" file="ch29_02.htm" sect="29.2.76. int">
<primary>integers</primary>
</indexterm>

<indexterm id="INDEX-4939" file="ch29_02.htm" sect="29.2.77. ioctl">
<primary>ioctl function</primary>
</indexterm>

<indexterm id="INDEX-4940" file="ch29_02.htm" sect="29.2.77. ioctl">
<primary>input</primary>
<secondary>ioctl function</secondary>
</indexterm>

<indexterm id="INDEX-4941" file="ch29_02.htm" sect="29.2.77. ioctl">
<primary>output</primary>
<secondary>ioctl function</secondary>
</indexterm>

<indexterm id="INDEX-4942" file="ch29_02.htm" sect="29.2.77. ioctl">
<primary>syscalls</primary>
<secondary>ioctl and fcntl returns</secondary>
</indexterm>

<indexterm id="INDEX-4943" file="ch29_02.htm" sect="29.2.78. join">
<primary>converting</primary>
<secondary>list values to strings</secondary>
</indexterm>

<indexterm id="INDEX-4944" file="ch29_02.htm" sect="29.2.78. join">
<primary>join function</primary>
</indexterm>

<indexterm id="INDEX-4945" file="ch29_02.htm" sect="29.2.78. join">
<primary>strings</primary>
<secondary>joining</secondary>
</indexterm>

<indexterm id="INDEX-4946" file="ch29_02.htm" sect="29.2.79. keys">
<primary>keys function</primary>
</indexterm>

<indexterm id="INDEX-4947" file="ch29_02.htm" sect="29.2.79. keys">
<primary>hashes</primary>
<secondary>keys, returning list of</secondary>
</indexterm>

<indexterm id="INDEX-4948" file="ch29_02.htm" sect="29.2.79. keys">
<primary>sorting</primary>
<secondary>keys and values, hashes</secondary>
</indexterm>

<indexterm id="INDEX-4949" file="ch29_02.htm" sect="29.2.79. keys">
<primary>values</primary>
<secondary>hashes, sorting</secondary>
</indexterm>

<indexterm id="INDEX-4950" file="ch29_02.htm" sect="29.2.80. kill">
<primary>kill function</primary>
</indexterm>

<indexterm id="INDEX-4951" file="ch29_02.htm" sect="29.2.80. kill">
<primary>terminating</primary>
<secondary>processes</secondary>
</indexterm>

<indexterm id="INDEX-4952" file="ch29_02.htm" sect="29.2.80. kill">
<primary>processes</primary>
<secondary>killing</secondary>
</indexterm>

<indexterm id="INDEX-4953" file="ch29_02.htm" sect="29.2.80. kill">
<primary>stopping</primary>
<see>terminating</see>
</indexterm>

<indexterm id="INDEX-4954" file="ch29_02.htm" sect="29.2.80. kill">
<primary>ending</primary>
<see>terminating</see>
</indexterm>

<indexterm id="INDEX-4955" file="ch29_02.htm" sect="29.2.80. kill">
<primary>signals</primary>
<secondary>killing processes with</secondary>
</indexterm>

<indexterm id="INDEX-4956" file="ch29_02.htm" sect="29.2.80. kill">
<primary>System V IPC</primary>
<secondary>killing proces groups</secondary>
</indexterm>

<indexterm id="INDEX-4957" file="ch29_02.htm" sect="29.2.80. kill">
<primary>groups</primary>
<secondary>process</secondary>
<tertiary>killing</tertiary>
</indexterm>

<indexterm id="INDEX-4958" file="ch29_02.htm" sect="29.2.81. last">
<primary>loops</primary>
<secondary>last operator</secondary>
</indexterm>

<indexterm id="INDEX-4959" file="ch29_02.htm" sect="29.2.81. last">
<primary>last operator</primary>
</indexterm>

<indexterm id="INDEX-4960" file="ch29_02.htm" sect="29.2.81. last">
<primary>blocks</primary>
<secondary>loops and</secondary>
</indexterm>

<indexterm id="INDEX-4961" file="ch29_02.htm" sect="29.2.82. lc">
<primary>lc function</primary>
</indexterm>

<indexterm id="INDEX-4962" file="ch29_02.htm" sect="29.2.82. lc">
<primary>strings</primary>
<secondary>capitalization of</secondary>
<see>capitalization</see>
</indexterm>

<indexterm id="INDEX-4963" file="ch29_02.htm" sect="29.2.82. lc">
<primary>capitalization</primary>
<secondary>lc and lcfirst functions</secondary>
</indexterm>

<indexterm id="INDEX-4964" file="ch29_02.htm" sect="29.2.82. lc">
<primary>perllocale manpage</primary>
</indexterm>

<indexterm id="INDEX-4965" file="ch29_02.htm" sect="29.2.82. lc">
<primary>locales</primary>
<secondary>Unicode and</secondary>
</indexterm>

<indexterm id="INDEX-4966" file="ch29_02.htm" sect="29.2.82. lc">
<primary>Unicode</primary>
<secondary>locales and</secondary>
</indexterm>

<indexterm id="INDEX-4967" file="ch29_02.htm" sect="29.2.83. lcfirst">
<primary>lcfirst function</primary>
</indexterm>

<indexterm id="INDEX-4968" file="ch29_02.htm" sect="29.2.84. length">
<primary>length function</primary>
</indexterm>

<indexterm id="INDEX-4969" file="ch29_02.htm" sect="29.2.84. length">
<primary>characters</primary>
<secondary>length in</secondary>
</indexterm>

<indexterm id="INDEX-4970" file="ch29_02.htm" sect="29.2.84. length">
<primary>scalars</primary>
<secondary>characters, length of</secondary>
</indexterm>

<indexterm id="INDEX-4971" file="ch29_02.htm" sect="29.2.85. link">
<primary>link function</primary>
</indexterm>

<indexterm id="INDEX-4972" file="ch29_02.htm" sect="29.2.85. link">
<primary>filenames</primary>
<secondary>linking with hard links</secondary>
</indexterm>

<indexterm id="INDEX-4973" file="ch29_02.htm" sect="29.2.85. link">
<primary>hard links, filenames</primary>
</indexterm>

<indexterm id="INDEX-4974" file="ch29_02.htm" sect="29.2.86. listen">
<primary>listen function</primary>
</indexterm>

<indexterm id="INDEX-4975" file="ch29_02.htm" sect="29.2.86. listen">
<primary>sockets</primary>
<secondary>listen function for</secondary>
</indexterm>

<indexterm id="INDEX-4976" file="ch29_02.htm" sect="29.2.87. local">
<primary>local function</primary>
</indexterm>

<indexterm id="INDEX-4977" file="ch29_02.htm" sect="29.2.87. local">
<primary>local declaration</primary>
</indexterm>

<indexterm id="INDEX-4978" file="ch29_02.htm" sect="29.2.87. local">
<primary>variables</primary>
<secondary>localizing existing</secondary>
</indexterm>

<indexterm id="INDEX-4979" file="ch29_02.htm" sect="29.2.87. local">
<primary>local</primary>
<secondary>variables</secondary>
</indexterm>

<indexterm id="INDEX-4980" file="ch29_02.htm" sect="29.2.87. local">
<primary>global variables</primary>
<secondary>localizing</secondary>
</indexterm>

<indexterm id="INDEX-4981" file="ch29_02.htm" sect="29.2.87. local">
<primary>arrays</primary>
<secondary>elements, giving temporary values to</secondary>
</indexterm>

<indexterm id="INDEX-4982" file="ch29_02.htm" sect="29.2.87. local">
<primary>hashes</primary>
<secondary>elements, giving temporary values to</secondary>
</indexterm>

<indexterm id="INDEX-4983" file="ch29_02.htm" sect="29.2.87. local">
<primary>typeglobs</primary>
<secondary>local function, using with</secondary>
</indexterm>

<indexterm id="INDEX-4984" file="ch29_02.htm" sect="29.2.87. local">
<primary>filehandles</primary>
<secondary>local, creating</secondary>
</indexterm>

<indexterm id="INDEX-4985" file="ch29_02.htm" sect="29.2.88. localtime">
<primary>localtime function</primary>
</indexterm>

<indexterm id="INDEX-4986" file="ch29_02.htm" sect="29.2.88. localtime">
<primary>time</primary>
<secondary sortas="local">for local timezone</secondary>
</indexterm>

<indexterm id="INDEX-4987" file="ch29_02.htm" sect="29.2.88. localtime">
<primary>converting</primary>
<secondary>time</secondary>
</indexterm>

<indexterm id="INDEX-4988" file="ch29_02.htm" sect="29.2.88. localtime">
<primary>timelocal subroutine</primary>
</indexterm>

<indexterm id="INDEX-4989" file="ch29_02.htm" sect="29.2.88. localtime">
<primary>subroutines</primary>
<secondary>timelocal</secondary>
</indexterm>

<indexterm id="INDEX-4990" file="ch29_02.htm" sect="29.2.88. localtime">
<primary>date function</primary>
<see>localtime function</see>
</indexterm>

<indexterm id="INDEX-4991" file="ch29_02.htm" sect="29.2.88. localtime">
<primary>POSIX module</primary>
<secondary>strftime function</secondary>
</indexterm>

<indexterm id="INDEX-4992" file="ch29_02.htm" sect="29.2.89. lock">
<primary>locking</primary>
</indexterm>

<indexterm id="INDEX-4993" file="ch29_02.htm" sect="29.2.89. lock">
<primary>threads</primary>
<secondary>locking</secondary>
</indexterm>

<indexterm id="INDEX-4994" file="ch29_02.htm" sect="29.2.89. lock">
<primary>threads</primary>
</indexterm>

<indexterm id="INDEX-4995" file="ch29_02.htm" sect="29.2.90. log">
<primary>log function</primary>
</indexterm>

<indexterm id="INDEX-4996" file="ch29_02.htm" sect="29.2.90. log">
<primary>logarithm</primary>
</indexterm>

<indexterm id="INDEX-4997" file="ch29_02.htm" sect="29.2.91. lstat">
<primary>lstat function</primary>
</indexterm>

<indexterm id="INDEX-4998" file="ch29_02.htm" sect="29.2.91. lstat">
<primary>lstat function</primary>
<seealso>stat function</seealso>
</indexterm>

<indexterm id="INDEX-4999" file="ch29_02.htm" sect="29.2.91. lstat">
<primary>symbolic links</primary>
<secondary>lstat function and</secondary>
</indexterm>

<indexterm id="INDEX-5000" file="ch29_02.htm" sect="29.2.92. m//">
<primary>patterns (and regular expressions)</primary>
<seealso>m// operator[semi] m?? operator</seealso>
</indexterm>

<indexterm id="INDEX-5001" file="ch29_02.htm" sect="29.2.92. m//">
<primary>match (m//) operator</primary>
</indexterm>

<indexterm id="INDEX-5002" file="ch29_02.htm" sect="29.2.92. m//">
<primary>m// (match) operator</primary>
</indexterm>

<indexterm id="INDEX-5003" file="ch29_02.htm" sect="29.2.92. m//">
<primary sortas="@slash">/ (slash) </primary>
<secondary sortas="@slashslash">// operator==&gt;match operator</secondary>
</indexterm>

<indexterm id="INDEX-5004" file="ch29_02.htm" sect="29.2.93. map">
<primary sortas="@dollar variables">$ variables</primary>
<secondary sortas="@dollarunderscore">$_ ($ARG)</secondary>
<tertiary>map function and</tertiary>
</indexterm>

<indexterm id="INDEX-5005" file="ch29_02.htm" sect="29.2.93. map">
<primary>map function</primary>
</indexterm>

<indexterm id="INDEX-5006" file="ch29_02.htm" sect="29.2.93. map">
<primary>lists</primary>
<secondary>map function and</secondary>
</indexterm>

<indexterm id="INDEX-5007" file="ch29_02.htm" sect="29.2.94. mkdir">
<primary>mkdir function</primary>
</indexterm>

<indexterm id="INDEX-5008" file="ch29_02.htm" sect="29.2.94. mkdir">
<primary>directories</primary>
<secondary>creating</secondary>
</indexterm>

<indexterm id="INDEX-5009" file="ch29_02.htm" sect="29.2.95. msgctl">
<primary>messages</primary>
<secondary>functions for</secondary>
</indexterm>

<indexterm id="INDEX-5010" file="ch29_02.htm" sect="29.2.95. msgctl">
<primary>msgctl function</primary>
</indexterm>

<indexterm id="INDEX-5011" file="ch29_02.htm" sect="29.2.95. msgctl">
<primary>System V IPC</primary>
<secondary>messages, syscalls for</secondary>
</indexterm>

<indexterm id="INDEX-5012" file="ch29_02.htm" sect="29.2.96. msgget">
<primary>msgget function</primary>
</indexterm>

<indexterm id="INDEX-5013" file="ch29_02.htm" sect="29.2.97. msgrcv">
<primary>msgrcv function</primary>
</indexterm>

<indexterm id="INDEX-5014" file="ch29_02.htm" sect="29.2.98. msgsnd">
<primary>msgsnd function</primary>
</indexterm>

<indexterm id="INDEX-5015" file="ch29_02.htm" sect="29.2.99. my">
<primary>my declarations</primary>
</indexterm>

<indexterm id="INDEX-5016" file="ch29_02.htm" sect="29.2.99. my">
<primary>variables</primary>
<secondary>private</secondary>
<see>local variables</see>
</indexterm>

<indexterm id="INDEX-5017" file="ch29_02.htm" sect="29.2.99. my">
<primary>private variables</primary>
<see>local variables</see>
</indexterm>

<indexterm id="INDEX-5018" file="ch29_02.htm" sect="29.2.99. my">
<primary>scope</primary>
<secondary>private variables</secondary>
<see>lexical variables</see>
</indexterm>

<indexterm id="INDEX-5019" file="ch29_02.htm" sect="29.2.99. my">
<primary>lexical variables</primary>
</indexterm>

<indexterm id="INDEX-5020" file="ch29_02.htm" sect="29.2.99. my">
<primary>variables</primary>
<secondary>lexical scoping</secondary>
</indexterm>

<indexterm id="INDEX-5021" file="ch29_02.htm" sect="29.2.99. my">
<primary>subroutines</primary>
<secondary>lexically scoped</secondary>
</indexterm>

<indexterm id="INDEX-5022" file="ch29_02.htm" sect="29.2.99. my">
<primary>data types</primary>
<secondary>TYPE declarations in Perl</secondary>
</indexterm>

<indexterm id="INDEX-5023" file="ch29_02.htm" sect="29.2.99. my">
<primary>classes</primary>
<secondary>pseudohash implementations of</secondary>
</indexterm>

<indexterm id="INDEX-5024" file="ch29_02.htm" sect="29.2.99. my">
<primary>pseudohashes</primary>
<secondary>implementing classes with</secondary>
</indexterm>

<indexterm id="INDEX-5025" file="ch29_02.htm" sect="29.2.99. my">
<primary>attributes</primary>
<secondary>class</secondary>
</indexterm>

<indexterm id="INDEX-5026" file="ch29_02.htm" sect="29.2.100. new">
<primary>new method</primary>
</indexterm>

<indexterm id="INDEX-5027" file="ch29_02.htm" sect="29.2.100. new">
<primary>constructors</primary>
<secondary>new method</secondary>
</indexterm>

<indexterm id="INDEX-5028" file="ch29_02.htm" sect="29.2.101. next">
<primary>loops</primary>
<secondary>next operator</secondary>
</indexterm>

<indexterm id="INDEX-5029" file="ch29_02.htm" sect="29.2.101. next">
<primary>next operator</primary>
</indexterm>

<indexterm id="INDEX-5030" file="ch29_02.htm" sect="29.2.102. no">
<primary>no declaration</primary>
</indexterm>

<indexterm id="INDEX-5031" file="ch29_02.htm" sect="29.2.103. oct">
<primary>oct function</primary>
</indexterm>

<indexterm id="INDEX-5032" file="ch29_02.htm" sect="29.2.103. oct">
<primary>octal numbers</primary>
</indexterm>

<indexterm id="INDEX-5033" file="ch29_02.htm" sect="29.2.103. oct">
<primary>numbers</primary>
<secondary>octal</secondary>
</indexterm>

<indexterm id="INDEX-5034" file="ch29_02.htm" sect="29.2.103. oct">
<primary>strings</primary>
<secondary>hexadecimal</secondary>
<see>hexadecimal numbers</see>
</indexterm>

<indexterm id="INDEX-5035" file="ch29_02.htm" sect="29.2.103. oct">
<primary>strings</primary>
<secondary>octal</secondary>
<see>octal numbers</see>
</indexterm>

<indexterm id="INDEX-5036" file="ch29_02.htm" sect="29.2.103. oct">
<primary>strings</primary>
<secondary>binary</secondary>
<see>binary numbers</see>
</indexterm>

<indexterm id="INDEX-5037" file="ch29_02.htm" sect="29.2.103. oct">
<primary>converting</primary>
<secondary>octal numbers to decimal</secondary>
</indexterm>

<indexterm id="INDEX-5038" file="ch29_02.htm" sect="29.2.103. oct">
<primary>stat</primary>
<secondary> file permissions as octal</secondary>
</indexterm>

<indexterm id="INDEX-5039" file="ch29_02.htm" sect="29.2.104. open">
<primary>open function</primary>
</indexterm>

<indexterm id="INDEX-5040" file="ch29_02.htm" sect="29.2.104. open">
<primary>files</primary>
<secondary>open function</secondary>
</indexterm>

<indexterm id="INDEX-5041" file="ch29_02.htm" sect="29.2.104. open">
<primary>filehandles</primary>
<secondary>open function</secondary>
</indexterm>

<indexterm id="INDEX-5042" file="ch29_02.htm" sect="29.2.104. open">
<primary>indirect filehandles</primary>
</indexterm>

<indexterm id="INDEX-5043" file="ch29_02.htm" sect="29.2.104. open">
<primary>autovivification</primary>
<secondary> of filehandles</secondary>
</indexterm>

<indexterm id="INDEX-5044" file="ch29_02.htm" sect="29.2.104. open">
<primary>references</primary>
<secondary sortas="filehandles">to filehandles</secondary>
</indexterm>

<indexterm id="INDEX-5045" file="ch29_02.htm" sect="29.2.104. open">
<primary>filenames</primary>
<secondary>mode, separating from</secondary>
</indexterm>

<indexterm id="INDEX-5046" file="ch29_02.htm" sect="29.2.104. open">
<primary sortas="@greaterthan">&gt; (right angle bracket)</primary>
<secondary sortas="filenames">in filenames</secondary>
</indexterm>

<indexterm id="INDEX-5047" file="ch29_02.htm" sect="29.2.104. open">
<primary sortas="@lessthan">&lt; (left angle bracket)</primary>
<secondary sortas="filenames">in filenames</secondary>
</indexterm>

<indexterm id="INDEX-5048" file="ch29_02.htm" sect="29.2.104. open">
<primary sortas="@plus">+ (plus)</primary>
<secondary sortas="filenames">in filenames</secondary>
</indexterm>

<indexterm id="INDEX-5049" file="ch29_02.htm" sect="29.2.104. open">
<primary sortas="@verticalbar">| (vertical bar)</primary>
<secondary sortas="filenames">in filenames</secondary>
</indexterm>

<indexterm id="INDEX-5050" file="ch29_02.htm" sect="29.2.104. open">
<primary>open function</primary>
<secondary>modes in three-argument form</secondary>
</indexterm>

<indexterm id="INDEX-5051" file="ch29_02.htm" sect="29.2.104. open">
<primary>modes, opening files in</primary>
</indexterm>

<indexterm id="INDEX-5052" file="ch29_02.htm" sect="29.2.104. open">
<primary>input</primary>
<secondary>files, open mode for</secondary>
</indexterm>

<indexterm id="INDEX-5053" file="ch29_02.htm" sect="29.2.104. open">
<primary>output</primary>
<secondary>files, open mode for</secondary>
</indexterm>

<indexterm id="INDEX-5054" file="ch29_02.htm" sect="29.2.104. open">
<primary>writing to files</primary>
<secondary>open mode and</secondary>
</indexterm>

<indexterm id="INDEX-5055" file="ch29_02.htm" sect="29.2.104. open">
<primary>reading files</primary>
<secondary>open mode and</secondary>
</indexterm>

<indexterm id="INDEX-5056" file="ch29_02.htm" sect="29.2.104. open">
<primary>pipes</primary>
<secondary>read-only filehandles, opening</secondary>
</indexterm>

<indexterm id="INDEX-5057" file="ch29_02.htm" sect="29.2.104. open">
<primary>filehandles</primary>
<secondary>piped, explicitly closing</secondary>
</indexterm>

<indexterm id="INDEX-5058" file="ch29_02.htm" sect="29.2.104. open">
<primary>shells</primary>
<secondary>pipe commands with shell metacharacters, passing to</secondary>
</indexterm>

<indexterm id="INDEX-5059" file="ch29_02.htm" sect="29.2.104. open">
<primary>metacharacters</primary>
<secondary>shell, in pipe commands</secondary>
</indexterm>

<indexterm id="INDEX-5060" file="ch29_02.htm" sect="29.2.104. open">
<primary>open function</primary>
<secondary>piped (two-argument form)</secondary>
</indexterm>

<indexterm id="INDEX-5061" file="ch29_02.htm" sect="29.2.104. open">
<primary>forks</primary>
<secondary>open command, two-argument form</secondary>
</indexterm>

<indexterm id="INDEX-5062" file="ch29_02.htm" sect="29.2.104. open">
<primary>open function</primary>
<secondary>fork-open</secondary>
</indexterm>

<indexterm id="INDEX-5063" file="ch29_02.htm" sect="29.2.104. open">
<primary>forks</primary>
<secondary>fork open</secondary>
</indexterm>

<indexterm id="INDEX-5064" file="ch29_02.htm" sect="29.2.104. open">
<primary sortas="@ampersand">&amp; (ampersand)</primary>
<secondary sortas="filenames">in filenames</secondary>
</indexterm>

<indexterm id="INDEX-5065" file="ch29_02.htm" sect="29.2.104. open">
<primary>filenames</primary>
<secondary>&amp; (ampersand) in</secondary>
</indexterm>

<indexterm id="INDEX-5066" file="ch29_02.htm" sect="29.2.104. open">
<primary>filehandles</primary>
<secondary>duplicating, reasons for</secondary>
</indexterm>

<indexterm id="INDEX-5067" file="ch29_02.htm" sect="29.2.104. open">
<primary sortas="@ampersand">&amp;</primary>
<secondary sortas="@ampersandequal">&amp;=</secondary>
<tertiary>in filenames</tertiary>
</indexterm>

<indexterm id="INDEX-5068" file="ch29_02.htm" sect="29.2.104. open">
<primary>forks</primary>
</indexterm>

<indexterm id="INDEX-5069" file="ch29_02.htm" sect="29.2.104. open">
<primary>processes</primary>
<secondary>ID (pid)</secondary>
</indexterm>

<indexterm id="INDEX-5070" file="ch29_02.htm" sect="29.2.104. open">
<primary>identifiers</primary>
<secondary>processes (pid)</secondary>
</indexterm>

<indexterm id="INDEX-5071" file="ch29_02.htm" sect="29.2.104. open">
<primary>pid</primary>
<see>processes</see>
</indexterm>

<indexterm id="INDEX-5072" file="ch29_02.htm" sect="29.2.104. open">
<primary>sysopen function</primary>
</indexterm>

<indexterm id="INDEX-5073" file="ch29_02.htm" sect="29.2.104. open">
<primary>binmode</primary>
</indexterm>

<indexterm id="INDEX-5074" file="ch29_02.htm" sect="29.2.104. open">
<primary>files</primary>
<secondary>text/binary distinction</secondary>
</indexterm>

<indexterm id="INDEX-5075" file="ch29_02.htm" sect="29.2.104. open">
<primary>binary</primary>
<secondary>files</secondary>
</indexterm>

<indexterm id="INDEX-5076" file="ch29_02.htm" sect="29.2.104. open">
<primary>disciplines</primary>
</indexterm>

<indexterm id="INDEX-5077" file="ch29_02.htm" sect="29.2.104. open">
<primary>stacks</primary>
<secondary>disciplines</secondary>
</indexterm>

<indexterm id="INDEX-5078" file="ch29_02.htm" sect="29.2.105. opendir">
<primary>opendir function</primary>
</indexterm>

<indexterm id="INDEX-5079" file="ch29_02.htm" sect="29.2.105. opendir">
<primary>directories</primary>
<secondary>opendir function</secondary>
</indexterm>

<indexterm id="INDEX-5080" file="ch29_02.htm" sect="29.2.106. ord">
<primary>ord function</primary>
</indexterm>

<indexterm id="INDEX-5081" file="ch29_02.htm" sect="29.2.106. ord">
<primary>characters</primary>
<secondary>getting ASCII values of</secondary>
</indexterm>

<indexterm id="INDEX-5082" file="ch29_02.htm" sect="29.2.106. ord">
<primary>ASCII</primary>
<secondary>values for characters</secondary>
</indexterm>

<indexterm id="INDEX-5083" file="ch29_02.htm" sect="29.2.106. ord">
<primary>converting</primary>
<secondary>characters to ASCII values</secondary>
</indexterm>

<indexterm id="INDEX-5084" file="ch29_02.htm" sect="29.2.107. our">
<primary>our function</primary>
</indexterm>

<indexterm id="INDEX-5085" file="ch29_02.htm" sect="29.2.107. our">
<primary>our declarations</primary>
</indexterm>

<indexterm id="INDEX-5086" file="ch29_02.htm" sect="29.2.107. our">
<primary>global variables</primary>
<secondary>declaring</secondary>
</indexterm>

<indexterm id="INDEX-5087" file="ch29_02.htm" sect="29.2.107. our">
<primary>package variables</primary>
<secondary>declaring</secondary>
</indexterm>

<indexterm id="INDEX-5088" file="ch29_02.htm" sect="29.2.107. our">
<primary>global declarations</primary>
<seealso>our declarations</seealso>
</indexterm>

<indexterm id="INDEX-5089" file="ch29_02.htm" sect="29.2.107. our">
<primary>attributes</primary>
<secondary>variable interpolation and</secondary>
</indexterm>

<indexterm id="INDEX-5090" file="ch29_02.htm" sect="29.2.108. pack">
<primary>converting</primary>
<secondary>list values to strings</secondary>
</indexterm>

<indexterm id="INDEX-5091" file="ch29_02.htm" sect="29.2.108. pack">
<primary>pack function</primary>
</indexterm>

<indexterm id="INDEX-5092" file="ch29_02.htm" sect="29.2.108. pack">
<primary>binary</primary>
<secondary>pack function</secondary>
</indexterm>

<indexterm id="INDEX-5093" file="ch29_02.htm" sect="29.2.108. pack">
<primary>strings</primary>
<secondary>list values, converting to</secondary>
</indexterm>

<indexterm id="INDEX-5094" file="ch29_02.htm" sect="29.2.108. pack">
<primary>formats</primary>
<secondary>pack/unpack</secondary>
</indexterm>

<indexterm id="INDEX-5095" file="ch29_02.htm" sect="29.2.108. pack">
<primary>templates, strings</primary>
</indexterm>

<indexterm id="INDEX-" file="ch29_02.htm" sect="29.2.108. pack">
<primary>templates, characters for pack/unpack</primary>
</indexterm>

<indexterm id="INDEX-" file="ch29_02.htm" sect="29.2.108. pack">
<primary>characters</primary>
<secondary sortas="formats">in formats</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_02.htm" sect="29.2.108. pack">
<primary>formats</primary>
<secondary>characters in</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_02.htm" sect="29.2.108. pack">
<primary>pack function</primary>
<secondary>template characters for</secondary>
</indexterm>

<indexterm id="INDEX-" file="ch29_02.htm" sect="29.2.108. pack">
<primary>unpack function</primary>
<secondary>template characters for</secondary>
</indexterm>

<indexterm id="INDEX-5096" file="ch29_02.htm" sect="29.2.108. pack">
<primary>pointers</primary>
<secondary sortas="strings">to strings</secondary>
</indexterm>

<indexterm id="INDEX-5097" file="ch29_02.htm" sect="29.2.108. pack">
<primary>integers</primary>
<secondary>formats</secondary>
</indexterm>

<indexterm id="INDEX-5098" file="ch29_02.htm" sect="29.2.108. pack">
<primary>formats</primary>
<secondary>integers</secondary>
</indexterm>

<indexterm id="INDEX-5099" file="ch29_02.htm" sect="29.2.108. pack">
<primary>ints</primary>
</indexterm>

<indexterm id="INDEX-5100" file="ch29_02.htm" sect="29.2.108. pack">
<primary>longs</primary>
</indexterm>

<indexterm id="INDEX-5101" file="ch29_02.htm" sect="29.2.108. pack">
<primary>long longs</primary>
</indexterm>

<indexterm id="INDEX-5102" file="ch29_02.htm" sect="29.2.108. pack">
<primary>floating-point numbers</primary>
</indexterm>

<indexterm id="INDEX-5103" file="ch29_02.htm" sect="29.2.108. pack">
<primary>C language</primary>
<secondary>structs</secondary>
</indexterm>

<indexterm id="INDEX-5104" file="ch29_02.htm" sect="29.2.108. pack">
<primary>structs</primary>
<secondary>formatting</secondary>
</indexterm>

<indexterm id="INDEX-5110" file="ch29_02.htm" sect="29.2.109. package">
<primary>package declaration</primary>
</indexterm>

<indexterm id="INDEX-5111" file="ch29_02.htm" sect="29.2.109. package">
<primary>declarations</primary>
<secondary>package</secondary>
</indexterm>

<indexterm id="INDEX-5112" file="ch29_02.htm" sect="29.2.109. package">
<primary>symbol tables</primary>
<secondary>packages</secondary>
</indexterm>

<indexterm id="INDEX-5113" file="ch29_02.htm" sect="29.2.110. pipe">
<primary>pipe function</primary>
</indexterm>

<indexterm id="INDEX-5114" file="ch29_02.htm" sect="29.2.111. pop">
<primary>pop function</primary>
</indexterm>

<indexterm id="INDEX-5115" file="ch29_02.htm" sect="29.2.111. pop">
<primary>deleting</primary>
<secondary>array elements</secondary>
</indexterm>

<indexterm id="INDEX-5116" file="ch29_02.htm" sect="29.2.111. pop">
<primary>arrays</primary>
<secondary>pop function and</secondary>
</indexterm>

<indexterm id="INDEX-5117" file="ch29_02.htm" sect="29.2.112. pos">
<primary>pos function</primary>
</indexterm>

<indexterm id="INDEX-5118" file="ch29_02.htm" sect="29.2.112. pos">
<primary>m// (match) operator</primary>
<secondary>pos function and</secondary>
</indexterm>

<indexterm id="INDEX-5119" file="ch29_02.htm" sect="29.2.112. pos">
<primary>match (m//) operator</primary>
<secondary>pos function and</secondary>
</indexterm>

<indexterm id="INDEX-5120" file="ch29_02.htm" sect="29.2.112. pos">
<primary>offsets</primary>
<secondary sortas="m">for m// successes</secondary>
</indexterm>

<indexterm id="INDEX-5121" file="ch29_02.htm" sect="29.2.113. print">
<primary>writing</primary>
<secondary>data via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5122" file="ch29_02.htm" sect="29.2.113. print">
<primary>print function</primary>
</indexterm>

<indexterm id="INDEX-5123" file="ch29_02.htm" sect="29.2.113. print">
<primary>STDOUT filehandle</primary>
<secondary>printing to</secondary>
</indexterm>

<indexterm id="INDEX-5124" file="ch29_02.htm" sect="29.2.113. print">
<primary>strings</primary>
<secondary>printing</secondary>
</indexterm>

<indexterm id="INDEX-5125" file="ch29_02.htm" sect="29.2.113. print">
<primary>select function</primary>
</indexterm>

<indexterm id="INDEX-5126" file="ch29_02.htm" sect="29.2.114. printf">
<primary>writing</primary>
<secondary>data via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5127" file="ch29_02.htm" sect="29.2.114. printf">
<primary>printf function</primary>
</indexterm>

<indexterm id="INDEX-5128" file="ch29_02.htm" sect="29.2.116. push">
<primary>push function</primary>
</indexterm>

<indexterm id="INDEX-5129" file="ch29_02.htm" sect="29.2.116. push">
<primary>appending</primary>
<secondary>elements to arrays</secondary>
</indexterm>

<indexterm id="INDEX-5130" file="ch29_02.htm" sect="29.2.116. push">
<primary>arrays</primary>
<secondary>appending elements to</secondary>
</indexterm>

<indexterm id="INDEX-5131" file="ch29_02.htm" sect="29.2.118. quotemeta">
<primary>quotemeta function</primary>
</indexterm>

<indexterm id="INDEX-5132" file="ch29_02.htm" sect="29.2.118. quotemeta">
<primary>metacharacters</primary>
<secondary>escaping with quotemeta</secondary>
</indexterm>

<indexterm id="INDEX-5133" file="ch29_02.htm" sect="29.2.118. quotemeta">
<primary sortas="@backslash">\ (backslash)</primary>
<secondary>quotemeta function for</secondary>
</indexterm>

<indexterm id="INDEX-5134" file="ch29_02.htm" sect="29.2.119. rand">
<primary>rand function</primary>
</indexterm>

<indexterm id="INDEX-5135" file="ch29_02.htm" sect="29.2.119. rand">
<primary>random numbers</primary>
</indexterm>

<indexterm id="INDEX-5136" file="ch29_02.htm" sect="29.2.119. rand">
<primary>numbers</primary>
<secondary>random</secondary>
</indexterm>

<indexterm id="INDEX-5137" file="ch29_02.htm" sect="29.2.119. rand">
<primary>floating-point numbers</primary>
<secondary>rand function, returning</secondary>
</indexterm>

<indexterm id="INDEX-5138" file="ch29_02.htm" sect="29.2.120. read">
<primary>read function</primary>
</indexterm>

<indexterm id="INDEX-5139" file="ch29_02.htm" sect="29.2.120. read">
<primary>bytes</primary>
<secondary>reading</secondary>
</indexterm>

<indexterm id="INDEX-5140" file="ch29_02.htm" sect="29.2.120. read">
<primary>filehandles</primary>
<secondary>reading bytes of data from</secondary>
</indexterm>

<indexterm id="INDEX-5141" file="ch29_02.htm" sect="29.2.120. read">
<primary>offsets</primary>
<secondary>read function and</secondary>
</indexterm>

<indexterm id="INDEX-5142" file="ch29_02.htm" sect="29.2.121. readdir">
<primary>readdir function</primary>
</indexterm>

<indexterm id="INDEX-5143" file="ch29_02.htm" sect="29.2.121. readdir">
<primary>directories</primary>
<secondary>reading entries from</secondary>
</indexterm>

<indexterm id="INDEX-5144" file="ch29_02.htm" sect="29.2.123. readlink">
<primary>readlink function</primary>
</indexterm>

<indexterm id="INDEX-5145" file="ch29_02.htm" sect="29.2.123. readlink">
<primary>symbolic links</primary>
<secondary>getting filenames from</secondary>
</indexterm>

<indexterm id="INDEX-5146" file="ch29_02.htm" sect="29.2.123. readlink">
<primary>filenames</primary>
<secondary>getting from symbolic links</secondary>
</indexterm>

<indexterm id="INDEX-5147" file="ch29_02.htm" sect="29.2.123. readlink">
<primary>links</primary>
<seealso>symbolic links</seealso>
</indexterm>

<indexterm id="INDEX-5148" file="ch29_02.htm" sect="29.2.124. readpipe">
<primary>qx// (quote construct) operator</primary>
</indexterm>

<indexterm id="INDEX-5149" file="ch29_02.htm" sect="29.2.125. recv">
<primary>recv function</primary>
</indexterm>

<indexterm id="INDEX-5150" file="ch29_02.htm" sect="29.2.125. recv">
<primary>sockets</primary>
<secondary>receiving messages on</secondary>
</indexterm>

<indexterm id="INDEX-5151" file="ch29_02.htm" sect="29.2.125. recv">
<primary>messages</primary>
<secondary>receiving on sockets</secondary>
</indexterm>

<indexterm id="INDEX-5152" file="ch29_02.htm" sect="29.2.126. redo">
<primary>redo operator</primary>
</indexterm>

<indexterm id="INDEX-5153" file="ch29_02.htm" sect="29.2.126. redo">
<primary>loops</primary>
<secondary>redo operator and</secondary>
</indexterm>

<indexterm id="INDEX-5154" file="ch29_02.htm" sect="29.2.127. ref">
<primary>ref function</primary>
</indexterm>

<indexterm id="INDEX-5155" file="ch29_02.htm" sect="29.2.127. ref">
<primary>references</primary>
<secondary>checking for</secondary>
</indexterm>

<indexterm id="INDEX-5156" file="ch29_02.htm" sect="29.2.128. rename">
<primary>rename function</primary>
</indexterm>

<indexterm id="INDEX-5157" file="ch29_02.htm" sect="29.2.128. rename">
<primary>names</primary>
<secondary sortas="files">for files==&gt;filenames</secondary>
</indexterm>

<indexterm id="INDEX-5158" file="ch29_02.htm" sect="29.2.128. rename">
<primary>files</primary>
<secondary>changing name of</secondary>
</indexterm>

<indexterm id="INDEX-5159" file="ch29_02.htm" sect="29.2.128. rename">
<primary>filenames</primary>
<secondary>changing name of</secondary>
</indexterm>

<indexterm id="INDEX-5160" file="ch29_02.htm" sect="29.2.129. require">
<primary>require operator</primary>
</indexterm>

<indexterm id="INDEX-5161" file="ch29_02.htm" sect="29.2.130. reset">
<primary>reset function</primary>
</indexterm>

<indexterm id="INDEX-5162" file="ch29_02.htm" sect="29.2.130. reset">
<primary>loops</primary>
<secondary>reset function and</secondary>
</indexterm>

<indexterm id="INDEX-5163" file="ch29_02.htm" sect="29.2.130. reset">
<primary>match (??) operator, reset function and</primary>
</indexterm>

<indexterm id="INDEX-5164" file="ch29_02.htm" sect="29.2.130. reset">
<primary>m?? operator</primary>
<secondary>reset function and</secondary>
</indexterm>

<indexterm id="INDEX-5165" file="ch29_02.htm" sect="29.2.130. reset">
<primary>variables</primary>
<secondary>resetting values of</secondary>
</indexterm>

<indexterm id="INDEX-5166" file="ch29_02.htm" sect="29.2.131. return">
<primary>return function</primary>
</indexterm>

<indexterm id="INDEX-5167" file="ch29_02.htm" sect="29.2.131. return">
<primary>subroutines</primary>
<secondary>return function</secondary>
</indexterm>

<indexterm id="INDEX-5168" file="ch29_02.htm" sect="29.2.132. reverse">
<primary>reverse function</primary>
</indexterm>

<indexterm id="INDEX-5169" file="ch29_02.htm" sect="29.2.132. reverse">
<primary>lists</primary>
<secondary>returning elements in reverse order</secondary>
</indexterm>

<indexterm id="INDEX-5170" file="ch29_02.htm" sect="29.2.132. reverse">
<primary>hashes</primary>
<secondary>inverting</secondary>
</indexterm>

<indexterm id="INDEX-5171" file="ch29_02.htm" sect="29.2.132. reverse">
<primary>inverting arrays and hashes</primary>
</indexterm>

<indexterm id="INDEX-5172" file="ch29_02.htm" sect="29.2.133. rewinddir">
<primary>rewinddir function</primary>
</indexterm>

<indexterm id="INDEX-5173" file="ch29_02.htm" sect="29.2.133. rewinddir">
<primary>directories</primary>
<secondary>rewinddir function</secondary>
</indexterm>

<indexterm id="INDEX-5174" file="ch29_02.htm" sect="29.2.134. rindex">
<primary>rindex function</primary>
</indexterm>

<indexterm id="INDEX-5175" file="ch29_02.htm" sect="29.2.134. rindex">
<primary>strings</primary>
<secondary>rindex function</secondary>
</indexterm>

<indexterm id="INDEX-5176" file="ch29_02.htm" sect="29.2.134. rindex">
<primary>searching</primary>
<secondary sortas="substrings">for substrings</secondary>
</indexterm>

<indexterm id="INDEX-5177" file="ch29_02.htm" sect="29.2.135. rmdir">
<primary>rmdir function</primary>
</indexterm>

<indexterm id="INDEX-5178" file="ch29_02.htm" sect="29.2.135. rmdir">
<primary>removing</primary>
<see>deleting</see>
</indexterm>

<indexterm id="INDEX-5179" file="ch29_02.htm" sect="29.2.135. rmdir">
<primary>erasing</primary>
<see>deleting</see>
</indexterm>

<indexterm id="INDEX-5180" file="ch29_02.htm" sect="29.2.135. rmdir">
<primary>directories</primary>
<secondary>deleting</secondary>
</indexterm>

<indexterm id="INDEX-5181" file="ch29_02.htm" sect="29.2.135. rmdir">
<primary>deleting</primary>
<secondary>directories</secondary>
</indexterm>

<indexterm id="INDEX-5182" file="ch29_02.htm" sect="29.2.137. scalar">
<primary>scalar pseudofunction</primary>
</indexterm>

<indexterm id="INDEX-5183" file="ch29_02.htm" sect="29.2.137. scalar">
<primary>list context</primary>
<secondary>forcing scalar context instead</secondary>
</indexterm>

<indexterm id="INDEX-5184" file="ch29_02.htm" sect="29.2.137. scalar">
<primary>scalar context</primary>
<secondary>forcing</secondary>
</indexterm>

<indexterm id="INDEX-5185" file="ch29_02.htm" sect="29.2.138. seek">
<primary>seek function</primary>
</indexterm>

<indexterm id="INDEX-5186" file="ch29_02.htm" sect="29.2.138. seek">
<primary>filehandles</primary>
<secondary>positioning file pointer for</secondary>
</indexterm>

<indexterm id="INDEX-5187" file="ch29_02.htm" sect="29.2.138. seek">
<primary>offsets</primary>
<secondary>seek function</secondary>
</indexterm>

<indexterm id="INDEX-5188" file="ch29_02.htm" sect="29.2.139. seekdir">
<primary>seekdir function</primary>
</indexterm>

<indexterm id="INDEX-5189" file="ch29_02.htm" sect="29.2.139. seekdir">
<primary>directories</primary>
<secondary>seekdir function</secondary>
</indexterm>

<indexterm id="INDEX-5190" file="ch29_02.htm" sect="29.2.140. select (output filehandle)">
<primary>select function</primary>
</indexterm>

<indexterm id="INDEX-5191" file="ch29_02.htm" sect="29.2.140. select (output filehandle)">
<primary>filehandles</primary>
<secondary>selecting for output</secondary>
</indexterm>

<indexterm id="INDEX-5192" file="ch29_02.htm" sect="29.2.140. select (output filehandle)">
<primary>output</primary>
<secondary>selecting filehandles for</secondary>
</indexterm>

<indexterm id="INDEX-5193" file="ch29_02.htm" sect="29.2.140. select (output filehandle)">
<primary>top-of-form processing</primary>
</indexterm>

<indexterm id="INDEX-5194" file="ch29_02.htm" sect="29.2.141. select (ready file descriptors)">
<primary>select function</primary>
</indexterm>

<indexterm id="INDEX-5195" file="ch29_02.htm" sect="29.2.141. select (ready file descriptors)">
<primary>output</primary>
<secondary>checking file descriptors for</secondary>
</indexterm>

<indexterm id="INDEX-5196" file="ch29_02.htm" sect="29.2.141. select (ready file descriptors)">
<primary>input</primary>
<secondary>checking file descriptors for</secondary>
</indexterm>

<indexterm id="INDEX-5197" file="ch29_02.htm" sect="29.2.141. select (ready file descriptors)">
<primary>ready file descriptors</primary>
</indexterm>

<indexterm id="INDEX-5198" file="ch29_02.htm" sect="29.2.141. select (ready file descriptors)">
<primary>file descriptors</primary>
</indexterm>

<indexterm id="INDEX-5199" file="ch29_02.htm" sect="29.2.141. select (ready file descriptors)">
<primary>bitmasks</primary>
</indexterm>

<indexterm id="INDEX-5200" file="ch29_02.htm" sect="29.2.141. select (ready file descriptors)">
<primary>sleep function</primary>
<secondary>select function instead of</secondary>
</indexterm>

<indexterm id="INDEX-5201" file="ch29_02.htm" sect="29.2.142. semctl">
<primary>semctl function</primary>
</indexterm>

<indexterm id="INDEX-5202" file="ch29_02.htm" sect="29.2.142. semctl">
<primary>semaphores</primary>
<secondary>functions for</secondary>
</indexterm>

<indexterm id="INDEX-5203" file="ch29_02.htm" sect="29.2.142. semctl">
<primary>System V IPC</primary>
<secondary>functions for semaphores</secondary>
</indexterm>

<indexterm id="INDEX-5204" file="ch29_02.htm" sect="29.2.143. semget">
<primary>semget function</primary>
</indexterm>

<indexterm id="INDEX-5205" file="ch29_02.htm" sect="29.2.143. semget">
<primary>identifiers</primary>
<secondary>semaphores</secondary>
</indexterm>

<indexterm id="INDEX-5206" file="ch29_02.htm" sect="29.2.144. semop">
<primary>semop function</primary>
</indexterm>

<indexterm id="INDEX-5207" file="ch29_02.htm" sect="29.2.145. send">
<primary>send function</primary>
</indexterm>

<indexterm id="INDEX-5208" file="ch29_02.htm" sect="29.2.145. send">
<primary>sockets</primary>
<secondary>sending messages on</secondary>
</indexterm>

<indexterm id="INDEX-5209" file="ch29_02.htm" sect="29.2.145. send">
<primary>messages</primary>
<secondary>sending on sockets</secondary>
</indexterm>

<indexterm id="INDEX-5210" file="ch29_02.htm" sect="29.2.146. setpgrp">
<primary>setpgrp function</primary>
</indexterm>

<indexterm id="INDEX-5211" file="ch29_02.htm" sect="29.2.146. setpgrp">
<primary>processes </primary>
<secondary>getting group for</secondary>
</indexterm>

<indexterm id="INDEX-5212" file="ch29_02.htm" sect="29.2.146. setpgrp">
<primary>pid (process ID) </primary>
<secondary>getting process group</secondary>
</indexterm>

<indexterm id="INDEX-5213" file="ch29_02.htm" sect="29.2.146. setpgrp">
<primary>process group</primary>
</indexterm>

<indexterm id="INDEX-5214" file="ch29_02.htm" sect="29.2.147. setpriority">
<primary>setpriority function</primary>
</indexterm>

<indexterm id="INDEX-5215" file="ch29_02.htm" sect="29.2.147. setpriority">
<primary>priority, process</primary>
</indexterm>

<indexterm id="INDEX-5216" file="ch29_02.htm" sect="29.2.147. setpriority">
<primary>processes</primary>
<secondary>priority, setting</secondary>
</indexterm>

<indexterm id="INDEX-5217" file="ch29_02.htm" sect="29.2.148. setsockopt">
<primary>setsockopt function</primary>
</indexterm>

<indexterm id="INDEX-5218" file="ch29_02.htm" sect="29.2.148. setsockopt">
<primary>sockets</primary>
<secondary>setting options</secondary>
</indexterm>

<indexterm id="INDEX-5219" file="ch29_02.htm" sect="29.2.149. shift">
<primary>shift function</primary>
</indexterm>

<indexterm id="INDEX-5220" file="ch29_02.htm" sect="29.2.149. shift">
<primary>deleting</primary>
<secondary>array elements</secondary>
</indexterm>

<indexterm id="INDEX-5221" file="ch29_02.htm" sect="29.2.149. shift">
<primary>arrays</primary>
<secondary>deleting elements of</secondary>
</indexterm>

<indexterm id="INDEX-5222" file="ch29_02.htm" sect="29.2.150. shmctl">
<primary>shmctl function</primary>
</indexterm>

<indexterm id="INDEX-5223" file="ch29_02.htm" sect="29.2.150. shmctl">
<primary>System V IPC</primary>
<secondary>shared memory, functions for</secondary>
</indexterm>

<indexterm id="INDEX-5224" file="ch29_02.htm" sect="29.2.150. shmctl">
<primary>shared memory, System V IPC</primary>
<secondary>functions for</secondary>
</indexterm>

<indexterm id="INDEX-5225" file="ch29_02.htm" sect="29.2.151. shmget">
<primary>shmget function</primary>
</indexterm>

<indexterm id="INDEX-5226" file="ch29_02.htm" sect="29.2.151. shmget">
<primary>memory</primary>
<secondary>shared memory segment ID</secondary>
</indexterm>

<indexterm id="INDEX-5227" file="ch29_02.htm" sect="29.2.151. shmget">
<primary>identifiers</primary>
<secondary>shared memory segments</secondary>
</indexterm>

<indexterm id="INDEX-5228" file="ch29_02.htm" sect="29.2.152. shmread">
<primary>shmread function</primary>
</indexterm>

<indexterm id="INDEX-5229" file="ch29_02.htm" sect="29.2.152. shmread">
<primary>reading</primary>
<secondary>shared memory segment ID</secondary>
</indexterm>

<indexterm id="INDEX-5230" file="ch29_02.htm" sect="29.2.153. shmwrite">
<primary>shmwrite function</primary>
</indexterm>

<indexterm id="INDEX-5231" file="ch29_02.htm" sect="29.2.153. shmwrite">
<primary>writing</primary>
<secondary sortas="shared">to shared memory segment ID</secondary>
</indexterm>

<indexterm id="INDEX-5232" file="ch29_02.htm" sect="29.2.154. shutdown">
<primary>shutdown function</primary>
</indexterm>

<indexterm id="INDEX-5233" file="ch29_02.htm" sect="29.2.154. shutdown">
<primary>sockets</primary>
<secondary>shutting down connection</secondary>
</indexterm>

<indexterm id="INDEX-5234" file="ch29_02.htm" sect="29.2.154. shutdown">
<primary>connections</primary>
<secondary>shutting down</secondary>
</indexterm>

<indexterm id="INDEX-5235" file="ch29_02.htm" sect="29.2.154. shutdown">
<primary>sockets</primary>
<secondary>closing one side</secondary>
</indexterm>

<indexterm id="INDEX-5236" file="ch29_02.htm" sect="29.2.154. shutdown">
<primary sortas="half-close">&gt;shutdown</primary>
</indexterm>

<indexterm id="INDEX-5237" file="ch29_02.htm" sect="29.2.155. sin">
<primary>sin function (sine)</primary>
</indexterm>

<indexterm id="INDEX-5238" file="ch29_02.htm" sect="29.2.156. sleep">
<primary>sleep function</primary>
</indexterm>

<indexterm id="INDEX-5239" file="ch29_02.htm" sect="29.2.156. sleep">
<primary>time</primary>
<secondary>sleeping</secondary>
</indexterm>

<indexterm id="INDEX-5240" file="ch29_02.htm" sect="29.2.156. sleep">
<primary>scripts</primary>
<secondary>pausing</secondary>
</indexterm>

<indexterm id="INDEX-5241" file="ch29_02.htm" sect="29.2.156. sleep">
<primary>pausing scripts</primary>
</indexterm>

<indexterm id="INDEX-5242" file="ch29_02.htm" sect="29.2.157. socket">
<primary>sockets</primary>
<secondary>opening with socket function</secondary>
</indexterm>

<indexterm id="INDEX-5243" file="ch29_02.htm" sect="29.2.157. socket">
<primary>opening</primary>
<secondary>sockets</secondary>
</indexterm>

<indexterm id="INDEX-5244" file="ch29_02.htm" sect="29.2.158. socketpair">
<primary>socketpair function</primary>
</indexterm>

<indexterm id="INDEX-5245" file="ch29_02.htm" sect="29.2.159. sort">
<primary>sorting</primary>
<secondary>sort function</secondary>
</indexterm>

<indexterm id="INDEX-5246" file="ch29_02.htm" sect="29.2.159. sort">
<primary>comparison operators</primary>
<secondary>sort function and</secondary>
</indexterm>

<indexterm id="INDEX-5247" file="ch29_02.htm" sect="29.2.159. sort">
<primary>lists</primary>
<secondary>sorting</secondary>
</indexterm>

<indexterm id="INDEX-5248" file="ch29_02.htm" sect="29.2.159. sort">
<primary>sorting</primary>
<secondary>lists</secondary>
</indexterm>

<indexterm id="INDEX-5249" file="ch29_02.htm" sect="29.2.159. sort">
<primary>cmp operator</primary>
</indexterm>

<indexterm id="INDEX-5250" file="ch29_02.htm" sect="29.2.159. sort">
<primary sortas="@greaterthan">&lt; (left angle bracket)</primary>
<secondary sortas="@leftequalright">&lt;=&gt; (comparison) operator</secondary>
</indexterm>

<indexterm id="INDEX-5252" file="ch29_02.htm" sect="29.2.160. splice">
<primary>splice function</primary>
</indexterm>

<indexterm id="INDEX-5253" file="ch29_02.htm" sect="29.2.160. splice">
<primary>arrays</primary>
<secondary>deleting elements of</secondary>
</indexterm>

<indexterm id="INDEX-5254" file="ch29_02.htm" sect="29.2.160. splice">
<primary>arrays</primary>
<secondary>replacing/removing elements</secondary>
</indexterm>

<indexterm id="INDEX-5255" file="ch29_02.htm" sect="29.2.160. splice">
<primary>replacing array elements</primary>
</indexterm>

<indexterm id="INDEX-5256" file="ch29_02.htm" sect="29.2.160. splice">
<primary>deleting</primary>
<secondary>array elements</secondary>
</indexterm>

<indexterm id="INDEX-5257" file="ch29_02.htm" sect="29.2.161. split">
<primary>converting</primary>
<secondary>strings to list values</secondary>
</indexterm>

<indexterm id="INDEX-5258" file="ch29_02.htm" sect="29.2.161. split">
<primary>patterns (and regular expressions)</primary>
<secondary>split function</secondary>
</indexterm>

<indexterm id="INDEX-5259" file="ch29_02.htm" sect="29.2.161. split">
<primary>split function</primary>
</indexterm>

<indexterm id="INDEX-5260" file="ch29_02.htm" sect="29.2.161. split">
<primary>strings</primary>
<secondary>splitting into substrings</secondary>
</indexterm>

<indexterm id="INDEX-5261" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>sprintf function</primary>
</indexterm>

<indexterm id="INDEX-5262" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>formats</primary>
<secondary sortas="strings">for strings</secondary>
</indexterm>

<indexterm id="INDEX-5263" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>strings</primary>
<secondary>formats for</secondary>
</indexterm>

<indexterm id="INDEX-5264" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>printf function</primary>
</indexterm>

<indexterm id="INDEX-5265" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>converting</primary>
<secondary>decimal numbers to binary digits or octals</secondary>
</indexterm>

<indexterm id="INDEX-5266" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>converting</primary>
<secondary>decimal numbers to octal or hexadecimal</secondary>
</indexterm>

<indexterm id="INDEX-5267" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>integers</primary>
<secondary>formats for</secondary>
</indexterm>

<indexterm id="INDEX-5268" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>shorts</primary>
</indexterm>

<indexterm id="INDEX-5269" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>unsigned shorts</primary>
</indexterm>

<indexterm id="INDEX-5270" file="ch29_02.htm" sect="29.2.162. sprintf">
<primary>vectors, strings as</primary>
</indexterm>

<indexterm id="INDEX-5274" file="ch29_02.htm" sect="29.2.163. sqrt">
<primary>sqrt function (square root)</primary>
</indexterm>

<indexterm id="INDEX-5275" file="ch29_02.htm" sect="29.2.164. srand">
<primary>srand function</primary>
</indexterm>

<indexterm id="INDEX-5276" file="ch29_02.htm" sect="29.2.164. srand">
<primary>seed, random number</primary>
</indexterm>

<indexterm id="INDEX-5277" file="ch29_02.htm" sect="29.2.164. srand">
<primary>random numbers</primary>
</indexterm>

<indexterm id="INDEX-5278" file="ch29_02.htm" sect="29.2.164. srand">
<primary>numbers </primary>
<secondary>random</secondary>
</indexterm>

<indexterm id="INDEX-5279" file="ch29_02.htm" sect="29.2.164. srand">
<primary>security</primary>
</indexterm>

<indexterm id="INDEX-5280" file="ch29_02.htm" sect="29.2.164. srand">
<primary>cryptography</primary>
</indexterm>

<indexterm id="INDEX-5281" file="ch29_02.htm" sect="29.2.164. srand">
<primary>passwords</primary>
</indexterm>

<indexterm id="INDEX-5282" file="ch29_02.htm" sect="29.2.165. stat">
<primary>stat function</primary>
</indexterm>

<indexterm id="INDEX-5283" file="ch29_02.htm" sect="29.2.165. stat">
<primary>files</primary>
<secondary>getting statistics of</secondary>
</indexterm>

<indexterm id="INDEX-5284" file="ch29_02.htm" sect="29.2.165. stat">
<primary>time</primary>
<secondary>file access/modification</secondary>
</indexterm>

<indexterm id="INDEX-5285" file="ch29_02.htm" sect="29.2.165. stat">
<primary>modification time, file</primary>
</indexterm>

<indexterm id="INDEX-5286" file="ch29_02.htm" sect="29.2.165. stat">
<primary>files</primary>
<secondary>access and modification times</secondary>
</indexterm>

<indexterm id="INDEX-5287" file="ch29_02.htm" sect="29.2.165. stat">
<primary>access time, file</primary>
</indexterm>

<indexterm id="INDEX-5288" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="dev">$dev file statistic</primary>
</indexterm>

<indexterm id="INDEX-5289" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="ino">$ino file statistic</primary>
</indexterm>

<indexterm id="INDEX-5290" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="mode">$mode file statistic</primary>
</indexterm>

<indexterm id="INDEX-5291" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="nlink">$nlink file statistic</primary>
</indexterm>

<indexterm id="INDEX-5292" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="uid">$uid file statistic</primary>
</indexterm>

<indexterm id="INDEX-5293" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="gid">$gid file statistic</primary>
</indexterm>

<indexterm id="INDEX-5294" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="rdev">$rdev file statistic</primary>
</indexterm>

<indexterm id="INDEX-5295" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="size">$size file statistic</primary>
</indexterm>

<indexterm id="INDEX-5296" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="atime">$atime file statistic</primary>
</indexterm>

<indexterm id="INDEX-5297" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="mtime">$mtime file statistic</primary>
</indexterm>

<indexterm id="INDEX-5298" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="ctime">$ctime file statistic</primary>
</indexterm>

<indexterm id="INDEX-5299" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="blksize">$blksize file statistic</primary>
</indexterm>

<indexterm id="INDEX-5300" file="ch29_02.htm" sect="29.2.165. stat">
<primary sortas="blocks">$blocks file statistic</primary>
</indexterm>

<indexterm id="INDEX-5301" file="ch29_02.htm" sect="29.2.166. study">
<primary>study function</primary>
</indexterm>

<indexterm id="INDEX-5302" file="ch29_02.htm" sect="29.2.166. study">
<primary>patterns (and regular expressions)</primary>
<secondary>study function</secondary>
</indexterm>

<indexterm id="INDEX-5303" file="ch29_02.htm" sect="29.2.166. study">
<primary>strings </primary>
<secondary>study function and</secondary>
</indexterm>

<indexterm id="INDEX-5304" file="ch29_02.htm" sect="29.2.167. sub">
<primary>sub declaration</primary>
</indexterm>

<indexterm id="INDEX-5305" file="ch29_02.htm" sect="29.2.167. sub">
<primary>declaring</primary>
<secondary>subroutines</secondary>
</indexterm>

<indexterm id="INDEX-5306" file="ch29_02.htm" sect="29.2.167. sub">
<primary>subroutines</primary>
<secondary>declaring</secondary>
</indexterm>

<indexterm id="INDEX-5307" file="ch29_02.htm" sect="29.2.168. substr">
<primary>substr function</primary>
</indexterm>

<indexterm id="INDEX-5308" file="ch29_02.htm" sect="29.2.168. substr">
<primary>strings </primary>
<secondary>extracting substrings</secondary>
</indexterm>

<indexterm id="INDEX-5309" file="ch29_02.htm" sect="29.2.168. substr">
<primary>extracting substrings</primary>
</indexterm>

<indexterm id="INDEX-5310" file="ch29_02.htm" sect="29.2.169. symlink">
<primary>symlink function</primary>
</indexterm>

<indexterm id="INDEX-5311" file="ch29_02.htm" sect="29.2.169. symlink">
<primary>files</primary>
<secondary>symbolically linking</secondary>
</indexterm>

<indexterm id="INDEX-5312" file="ch29_02.htm" sect="29.2.169. symlink">
<primary>filenames</primary>
<secondary>linking symbolically</secondary>
</indexterm>

<indexterm id="INDEX-5313" file="ch29_02.htm" sect="29.2.169. symlink">
<primary>symbolic links</primary>
</indexterm>

<indexterm id="INDEX-5314" file="ch29_02.htm" sect="29.2.170. syscall">
<primary>syscall function</primary>
</indexterm>

<indexterm id="INDEX-5315" file="ch29_02.htm" sect="29.2.170. syscall">
<primary>lists </primary>
<secondary>syscall function with</secondary>
</indexterm>

<indexterm id="INDEX-5316" file="ch29_02.htm" sect="29.2.170. syscall">
<primary>system calls</primary>
</indexterm>

<indexterm id="INDEX-5317" file="ch29_02.htm" sect="29.2.171. sysopen">
<primary>sysopen function</primary>
</indexterm>

<indexterm id="INDEX-5318" file="ch29_02.htm" sect="29.2.171. sysopen">
<primary>opening</primary>
<secondary>files via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5319" file="ch29_02.htm" sect="29.2.171. sysopen">
<primary>files</primary>
<secondary>opening via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5320" file="ch29_02.htm" sect="29.2.171. sysopen">
<primary>permissions</primary>
</indexterm>

<indexterm id="INDEX-5321" file="ch29_02.htm" sect="29.2.171. sysopen">
<primary>files</primary>
<secondary>permissions</secondary>
</indexterm>

<indexterm id="INDEX-5322" file="ch29_02.htm" sect="29.2.172. sysread">
<primary>sysread function</primary>
</indexterm>

<indexterm id="INDEX-5323" file="ch29_02.htm" sect="29.2.172. sysread">
<primary>files </primary>
<secondary>reading via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5324" file="ch29_02.htm" sect="29.2.172. sysread">
<primary>reading </primary>
<secondary>data via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5325" file="ch29_02.htm" sect="29.2.172. sysread">
<primary>bytes</primary>
<secondary>reading</secondary>
</indexterm>

<indexterm id="INDEX-5326" file="ch29_02.htm" sect="29.2.174. system">
<primary>system function</primary>
</indexterm>

<indexterm id="INDEX-5327" file="ch29_02.htm" sect="29.2.174. system">
<primary>programs</primary>
<secondary>executing</secondary>
</indexterm>

<indexterm id="INDEX-5328" file="ch29_02.htm" sect="29.2.174. system">
<primary>scripts</primary>
<secondary>executing</secondary>
</indexterm>

<indexterm id="INDEX-5329" file="ch29_02.htm" sect="29.2.174. system">
<primary>executing</primary>
<secondary>other programs from Perl</secondary>
</indexterm>

<indexterm id="INDEX-5330" file="ch29_02.htm" sect="29.2.175. syswrite">
<primary>syswrite function</primary>
</indexterm>

<indexterm id="INDEX-5331" file="ch29_02.htm" sect="29.2.175. syswrite">
<primary>files</primary>
<secondary>writing via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5332" file="ch29_02.htm" sect="29.2.175. syswrite">
<primary>writing</primary>
<secondary>data via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5333" file="ch29_02.htm" sect="29.2.176. tell">
<primary>tell function</primary>
</indexterm>

<indexterm id="INDEX-5334" file="ch29_02.htm" sect="29.2.176. tell">
<primary>files</primary>
<secondary>returning current position for</secondary>
</indexterm>

<indexterm id="INDEX-5335" file="ch29_02.htm" sect="29.2.176. tell">
<primary>seek function</primary>
<seealso>tell function</seealso>
</indexterm>

<indexterm id="INDEX-5336" file="ch29_02.htm" sect="29.2.177. telldir">
<primary>telldir function</primary>
</indexterm>

<indexterm id="INDEX-5337" file="ch29_02.htm" sect="29.2.178. tie">
<primary>tie function</primary>
</indexterm>

<indexterm id="INDEX-5338" file="ch29_02.htm" sect="29.2.178. tie">
<primary>classes</primary>
<secondary>package</secondary>
</indexterm>

<indexterm id="INDEX-5339" file="ch29_02.htm" sect="29.2.178. tie">
<primary>binding</primary>
<secondary>variables to packages</secondary>
</indexterm>

<indexterm id="INDEX-5340" file="ch29_02.htm" sect="29.2.178. tie">
<primary>variables</primary>
<secondary>tying</secondary>
</indexterm>

<indexterm id="INDEX-5341" file="ch29_02.htm" sect="29.2.178. tie">
<primary>packages</primary>
<secondary>tying variables to</secondary>
</indexterm>

<indexterm id="INDEX-5342" file="ch29_02.htm" sect="29.2.179. tied">
<primary>tied function</primary>
</indexterm>

<indexterm id="INDEX-5343" file="ch29_02.htm" sect="29.2.180. time">
<primary>time function</primary>
</indexterm>

<indexterm id="INDEX-5344" file="ch29_02.htm" sect="29.2.180. time">
<primary>time</primary>
</indexterm>

<indexterm id="INDEX-5345" file="ch29_02.htm" sect="29.2.181. times">
<primary>times function</primary>
</indexterm>

<indexterm id="INDEX-5346" file="ch29_02.htm" sect="29.2.181. times">
<primary>users</primary>
<secondary>CPU times</secondary>
</indexterm>

<indexterm id="INDEX-5347" file="ch29_02.htm" sect="29.2.181. times">
<primary>CPU time</primary>
</indexterm>

<indexterm id="INDEX-5348" file="ch29_02.htm" sect="29.2.181. times">
<primary>performance</primary>
<secondary>measuring</secondary>
</indexterm>

<indexterm id="INDEX-5349" file="ch29_02.htm" sect="29.2.182. tr///">
<primary>tr/// (transliteration) operator</primary>
</indexterm>

<indexterm id="INDEX-5350" file="ch29_02.htm" sect="29.2.182. tr///">
<primary>translation</primary>
</indexterm>

<indexterm id="INDEX-5351" file="ch29_02.htm" sect="29.2.183. truncate">
<primary>truncate function</primary>
</indexterm>

<indexterm id="INDEX-5352" file="ch29_02.htm" sect="29.2.183. truncate">
<primary>files</primary>
<secondary>truncating</secondary>
</indexterm>

<indexterm id="INDEX-5353" file="ch29_02.htm" sect="29.2.184. uc">
<primary>uc function</primary>
</indexterm>

<indexterm id="INDEX-5354" file="ch29_02.htm" sect="29.2.184. uc">
<primary>capitalization</primary>
</indexterm>

<indexterm id="INDEX-5355" file="ch29_02.htm" sect="29.2.184. uc">
<primary>characters </primary>
<secondary>case of</secondary>
<see>capitalization</see>
</indexterm>

<indexterm id="INDEX-5356" file="ch29_02.htm" sect="29.2.185. ucfirst">
<primary>ucfirst function</primary>
</indexterm>

<indexterm id="INDEX-5357" file="ch29_02.htm" sect="29.2.185. ucfirst">
<primary>initial caps</primary>
<see>capitalization</see>
</indexterm>

<indexterm id="INDEX-5358" file="ch29_02.htm" sect="29.2.186. umask">
<primary>umask function</primary>
</indexterm>

<indexterm id="INDEX-5359" file="ch29_02.htm" sect="29.2.186. umask">
<primary>processes</primary>
<secondary>umask for</secondary>
</indexterm>

<indexterm id="INDEX-5360" file="ch29_02.htm" sect="29.2.186. umask">
<primary>permissions</primary>
</indexterm>

<indexterm id="INDEX-5361" file="ch29_02.htm" sect="29.2.186. umask">
<primary>files</primary>
<secondary>permissions</secondary>
</indexterm>

<indexterm id="INDEX-5362" file="ch29_02.htm" sect="29.2.187. undef">
<primary>undef function</primary>
</indexterm>

<indexterm id="INDEX-5363" file="ch29_02.htm" sect="29.2.187. undef">
<primary>values</primary>
<secondary>undefining</secondary>
</indexterm>

<indexterm id="INDEX-5364" file="ch29_02.htm" sect="29.2.188. unlink">
<primary>unlink function</primary>
</indexterm>

<indexterm id="INDEX-5365" file="ch29_02.htm" sect="29.2.188. unlink">
<primary>files</primary>
<secondary>deleting</secondary>
</indexterm>

<indexterm id="INDEX-5366" file="ch29_02.htm" sect="29.2.188. unlink">
<primary>deleting</primary>
<secondary>files</secondary>
</indexterm>

<indexterm id="INDEX-5367" file="ch29_02.htm" sect="29.2.188. unlink">
<primary>directories</primary>
<secondary>deleting</secondary>
</indexterm>

<indexterm id="INDEX-5368" file="ch29_02.htm" sect="29.2.188. unlink">
<primary>deleting</primary>
<secondary>directories</secondary>
</indexterm>

<indexterm id="INDEX-5369" file="ch29_02.htm" sect="29.2.189. unpack">
<primary>unpack function</primary>
</indexterm>

<indexterm id="INDEX-5370" file="ch29_02.htm" sect="29.2.189. unpack">
<primary>strings</primary>
<secondary>converting to list values</secondary>
</indexterm>

<indexterm id="INDEX-5371" file="ch29_02.htm" sect="29.2.189. unpack">
<primary>converting</primary>
<secondary>strings to list values</secondary>
</indexterm>

<indexterm id="INDEX-5372" file="ch29_02.htm" sect="29.2.189. unpack">
<primary>checksums</primary>
</indexterm>

<indexterm id="INDEX-5373" file="ch29_02.htm" sect="29.2.189. unpack">
<primary>percent sign (%)</primary>
<see>% (percent sign)</see>
</indexterm>

<indexterm id="INDEX-5374" file="ch29_02.htm" sect="29.2.189. unpack">
<primary sortas="@percent">% (percent sign) </primary>
<secondary sortas="checksums">for checksums</secondary>
</indexterm>

<indexterm id="INDEX-5375" file="ch29_02.htm" sect="29.2.190. unshift">
<primary>adding additional array elements</primary>
</indexterm>

<indexterm id="INDEX-5376" file="ch29_02.htm" sect="29.2.190. unshift">
<primary>unshift function</primary>
</indexterm>

<indexterm id="INDEX-5377" file="ch29_02.htm" sect="29.2.190. unshift">
<primary>prepending elements to arrays</primary>
</indexterm>

<indexterm id="INDEX-5378" file="ch29_02.htm" sect="29.2.190. unshift">
<primary>arrays</primary>
<secondary>prepending elements to</secondary>
</indexterm>

<indexterm id="INDEX-5379" file="ch29_02.htm" sect="29.2.191. untie">
<primary>untie function</primary>
</indexterm>

<indexterm id="INDEX-5380" file="ch29_02.htm" sect="29.2.191. untie">
<primary>classes</primary>
<secondary>package</secondary>
</indexterm>

<indexterm id="INDEX-5381" file="ch29_02.htm" sect="29.2.191. untie">
<primary>binding</primary>
<secondary>variables to packages</secondary>
</indexterm>

<indexterm id="INDEX-5382" file="ch29_02.htm" sect="29.2.191. untie">
<primary>variables</primary>
<secondary>binding to packages</secondary>
</indexterm>

<indexterm id="INDEX-5383" file="ch29_02.htm" sect="29.2.191. untie">
<primary>packages</primary>
<secondary>binding variables to</secondary>
</indexterm>

<indexterm id="INDEX-5384" file="ch29_02.htm" sect="29.2.192. use">
<primary>pragmas</primary>
</indexterm>

<indexterm id="INDEX-5385" file="ch29_02.htm" sect="29.2.192. use">
<primary>packages</primary>
<secondary>importing semantics to</secondary>
</indexterm>

<indexterm id="INDEX-5386" file="ch29_02.htm" sect="29.2.192. use">
<primary>semantics</primary>
</indexterm>

<indexterm id="INDEX-5387" file="ch29_02.htm" sect="29.2.192. use">
<primary>importing</primary>
<secondary>semantics into package</secondary>
</indexterm>

<indexterm id="INDEX-5388" file="ch29_02.htm" sect="29.2.193. utime">
<primary>utime function</primary>
</indexterm>

<indexterm id="INDEX-5389" file="ch29_02.htm" sect="29.2.193. utime">
<primary>time</primary>
<secondary>file access/modification</secondary>
</indexterm>

<indexterm id="INDEX-5390" file="ch29_02.htm" sect="29.2.193. utime">
<primary>modification time, file</primary>
</indexterm>

<indexterm id="INDEX-5391" file="ch29_02.htm" sect="29.2.193. utime">
<primary>files</primary>
<secondary>access and modification times</secondary>
</indexterm>

<indexterm id="INDEX-5392" file="ch29_02.htm" sect="29.2.193. utime">
<primary>access time, file</primary>
</indexterm>

<indexterm id="INDEX-5393" file="ch29_02.htm" sect="29.2.194. values">
<primary>values function</primary>
</indexterm>

<indexterm id="INDEX-5394" file="ch29_02.htm" sect="29.2.194. values">
<primary>hashes</primary>
<secondary>returning values of</secondary>
</indexterm>

<indexterm id="INDEX-5395" file="ch29_02.htm" sect="29.2.195. vec">
<primary>vec function</primary>
</indexterm>

<indexterm id="INDEX-5396" file="ch29_02.htm" sect="29.2.195. vec">
<primary>vectors, strings as</primary>
</indexterm>

<indexterm id="INDEX-5397" file="ch29_02.htm" sect="29.2.195. vec">
<primary>strings</primary>
<secondary>vec function and</secondary>
</indexterm>

<indexterm id="INDEX-5398" file="ch29_02.htm" sect="29.2.195. vec">
<primary>integers</primary>
<secondary>strings as vectors of</secondary>
</indexterm>

<indexterm id="INDEX-5399" file="ch29_02.htm" sect="29.2.195. vec">
<primary>unsigned integers, lists of, storing</primary>
</indexterm>

<indexterm id="INDEX-5400" file="ch29_02.htm" sect="29.2.196. wait">
<primary>wait function</primary>
</indexterm>

<indexterm id="INDEX-5401" file="ch29_02.htm" sect="29.2.196. wait">
<primary>processes</primary>
<secondary>waiting for</secondary>
</indexterm>

<indexterm id="INDEX-5402" file="ch29_02.htm" sect="29.2.196. wait">
<primary>child processes</primary>
<seealso>processes</seealso>
</indexterm>

<indexterm id="INDEX-5403" file="ch29_02.htm" sect="29.2.197. waitpid">
<primary>waitpid function</primary>
</indexterm>

<indexterm id="INDEX-5404" file="ch29_02.htm" sect="29.2.197. waitpid">
<primary>process ID (pid)</primary>
<secondary>waitpid function</secondary>
</indexterm>

<indexterm id="INDEX-5405" file="ch29_02.htm" sect="29.2.198. wantarray">
<primary>wantarray function</primary>
</indexterm>

<indexterm id="INDEX-5406" file="ch29_02.htm" sect="29.2.198. wantarray">
<primary>context</primary>
<secondary>void</secondary>
</indexterm>

<indexterm id="INDEX-5407" file="ch29_02.htm" sect="29.2.198. wantarray">
<primary>void context</primary>
</indexterm>

<indexterm id="INDEX-5408" file="ch29_02.htm" sect="29.2.199. warn">
<primary>warn function</primary>
</indexterm>

<indexterm id="INDEX-5409" file="ch29_02.htm" sect="29.2.199. warn">
<primary>warning messages</primary>
</indexterm>

<indexterm id="INDEX-5410" file="ch29_02.htm" sect="29.2.199. warn">
<primary>errors</primary>
<secondary>warn function, producing error messages</secondary>
</indexterm>

<indexterm id="INDEX-5411" file="ch29_02.htm" sect="29.2.200. write">
<primary>writing</primary>
<secondary>data via low-level system call</secondary>
</indexterm>

<indexterm id="INDEX-5412" file="ch29_02.htm" sect="29.2.200. write">
<primary>write function</primary>
</indexterm>

<indexterm id="INDEX-5413" file="ch29_02.htm" sect="29.2.200. write">
<primary>top-of-form processing</primary>
</indexterm>

<indexterm id="INDEX-5414" file="ch29_02.htm" sect="29.2.201. y//">
<primary>y/// (transliteration) operator</primary>
</indexterm>

<indexterm id="INDEX-5415" file="ch29_02.htm" sect="29.2.201. y//">
<primary>translation</primary>
</indexterm>

<indexterm id="INDEX-5416" file="ch29_02.htm" sect="29.2.201. y//">
<primary>tr/// (transliteration) operator</primary>
</indexterm>

<indexterm id="INDEX-5418" file="ch31_02.htm" sect="31.2. use autouse">
<primary>autouse pragma</primary>
</indexterm>

<indexterm id="INDEX-5419" file="ch31_03.htm" sect="31.3. use base">
<primary>use base pragma</primary>
</indexterm>

<indexterm id="INDEX-5420" file="ch31_03.htm" sect="31.3. use base">
<primary sortas="ISA">@ISA array</primary>
<secondary>use base pragma and</secondary>
</indexterm>

<indexterm id="INDEX-5421" file="ch31_04.htm" sect="31.4. use blib">
<primary>use blib pragma</primary>
</indexterm>

<indexterm id="INDEX-5422" file="ch31_04.htm" sect="31.4. use blib">
<primary>blib pragma</primary>
</indexterm>

<indexterm id="INDEX-5423" file="ch31_10.htm" sect="31.10. use filetest">
<primary>security, of file test operators</primary>
</indexterm>

<indexterm id="INDEX-5424" file="ch32_01.htm" sect="32. Standard Modules">
<primary>modules</primary>
<secondary>standard</secondary>
</indexterm>

<indexterm id="INDEX-5425" file="ch32_01.htm" sect="32.1. Listings by Type">
<primary>capitalization</primary>
<secondary sortas="module">in module names</secondary>
</indexterm>

<indexterm id="INDEX-5426" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>data types</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5427" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary sortas="data">for data types</tertiary>
</indexterm>

<indexterm id="INDEX-5428" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>Class::Struct module</primary>
</indexterm>

<indexterm id="INDEX-5429" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>integers</primary>
<secondary>standard modules for arithmetic with</secondary>
</indexterm>

<indexterm id="INDEX-5430" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>Math::BigFloat module</primary>
</indexterm>

<indexterm id="INDEX-5431" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>floating-point numbers</primary>
<secondary>Math::BigFloat module </secondary>
</indexterm>

<indexterm id="INDEX-5432" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>Math::BigInt module</primary>
</indexterm>

<indexterm id="INDEX-5433" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>Math::Complex module</primary>
</indexterm>

<indexterm id="INDEX-5434" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>Math::Trig module</primary>
</indexterm>

<indexterm id="INDEX-5435" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>trigonometry, Math::Trig module</primary>
</indexterm>

<indexterm id="INDEX-5436" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>overloading</primary>
<secondary>overload module</secondary>
</indexterm>

<indexterm id="INDEX-5437" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>operators</primary>
<secondary>overloading</secondary>
</indexterm>

<indexterm id="INDEX-5438" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>symbol tables</primary>
<secondary>Symbol module</secondary>
</indexterm>

<indexterm id="INDEX-5439" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>typeglobs</primary>
<secondary>anonymous</secondary>
<tertiary>generating with Symbol module</tertiary>
</indexterm>

<indexterm id="INDEX-5440" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>time</primary>
<secondary>Time::Local module</secondary>
</indexterm>

<indexterm id="INDEX-5441" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>time function</primary>
</indexterm>

<indexterm id="INDEX-5442" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>localtime function</primary>
</indexterm>

<indexterm id="INDEX-5443" file="ch32_01.htm" sect="32.1.1. Data Types">
<primary>gmtime function</primary>
</indexterm>

<indexterm id="INDEX-5444" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>text, manipulating with</tertiary>
</indexterm>

<indexterm id="INDEX-5445" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>text</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-5446" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>Search::Dict module</primary>
</indexterm>

<indexterm id="INDEX-5447" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>Text::Abbrev module</primary>
</indexterm>

<indexterm id="INDEX-5448" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>abbreviations, text</primary>
</indexterm>

<indexterm id="INDEX-5449" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>Text::ParseWords module</primary>
</indexterm>

<indexterm id="INDEX-5450" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>tokens</primary>
<secondary>parsing text into list of</secondary>
</indexterm>

<indexterm id="INDEX-5451" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>arrays</primary>
<secondary>parsing text into</secondary>
</indexterm>

<indexterm id="INDEX-5452" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>Text::Wrap module</primary>
</indexterm>

<indexterm id="INDEX-5453" file="ch32_01.htm" sect="32.1.2. String Processing, Language Text Processing, Parsing, and Searching">
<primary>wrapping text</primary>
</indexterm>

<indexterm id="INDEX-5454" file="ch32_01.htm" sect="32.1.3. Option, Argument, Parameter, and Configuration&#10;File Processing">
<primary>command line</primary>
<secondary>modules for processing</secondary>
</indexterm>

<indexterm id="INDEX-5455" file="ch32_01.htm" sect="32.1.3. Option, Argument, Parameter, and Configuration&#10;File Processing">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>command-line processing</tertiary>
</indexterm>

<indexterm id="INDEX-5456" file="ch32_01.htm" sect="32.1.3. Option, Argument, Parameter, and Configuration&#10;File Processing">
<primary>Getopt::Long module</primary>
</indexterm>

<indexterm id="INDEX-5457" file="ch32_01.htm" sect="32.1.3. Option, Argument, Parameter, and Configuration&#10;File Processing">
<primary>option processing</primary>
<secondary>Perl modules for</secondary>
</indexterm>

<indexterm id="INDEX-5458" file="ch32_01.htm" sect="32.1.3. Option, Argument, Parameter, and Configuration&#10;File Processing">
<primary>Getopt::Std module</primary>
</indexterm>

<indexterm id="INDEX-5459" file="ch32_01.htm" sect="32.1.3. Option, Argument, Parameter, and Configuration&#10;File Processing">
<primary>switches, command-line</primary>
<secondary>single character, processing with clustering</secondary>
</indexterm>

<indexterm id="INDEX-5460" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>files</primary>
<secondary>modules for cross-platform access methods</secondary>
</indexterm>

<indexterm id="INDEX-5461" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>files, cross-platform methods of access</tertiary>
</indexterm>

<indexterm id="INDEX-5462" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>Cwd module</primary>
</indexterm>

<indexterm id="INDEX-5463" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>directories</primary>
<secondary>current working, getting pathname of</secondary>
</indexterm>

<indexterm id="INDEX-5464" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Basename module</primary>
</indexterm>

<indexterm id="INDEX-5465" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>basename, files</primary>
</indexterm>

<indexterm id="INDEX-5466" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::CheckTree module</primary>
</indexterm>

<indexterm id="INDEX-5467" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>directories</primary>
<secondary>file test checks on trees</secondary>
</indexterm>

<indexterm id="INDEX-5468" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Compare module</primary>
</indexterm>

<indexterm id="INDEX-5469" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>comparing</primary>
<secondary>files</secondary>
</indexterm>

<indexterm id="INDEX-5470" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Copy module</primary>
</indexterm>

<indexterm id="INDEX-5471" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>copying filenames or filehandles</primary>
</indexterm>

<indexterm id="INDEX-5472" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::DosGlob module</primary>
</indexterm>

<indexterm id="INDEX-5473" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>Microsoft Windows</primary>
<secondary>fileglobbing, File::DosGlob module</secondary>
</indexterm>

<indexterm id="INDEX-5474" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>globbing filenames</primary>
</indexterm>

<indexterm id="INDEX-5475" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Find module</primary>
</indexterm>

<indexterm id="INDEX-5476" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>find function</primary>
<secondary>traversing file trees like</secondary>
</indexterm>

<indexterm id="INDEX-5477" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>Unix systems</primary>
<secondary>fileglobbing</secondary>
</indexterm>

<indexterm id="INDEX-5478" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Glob module</primary>
</indexterm>

<indexterm id="INDEX-5479" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Path module</primary>
</indexterm>

<indexterm id="INDEX-5480" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>directories</primary>
<secondary>creating or removing portably</secondary>
</indexterm>

<indexterm id="INDEX-5481" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Spec module</primary>
</indexterm>

<indexterm id="INDEX-5482" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>object-oriented programming</primary>
<secondary>portable filename operations</secondary>
</indexterm>

<indexterm id="INDEX-5483" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Spec::Functions module</primary>
</indexterm>

<indexterm id="INDEX-5484" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Spec::Mac module</primary>
</indexterm>

<indexterm id="INDEX-5485" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>Macintosh operating system</primary>
<secondary>File::Spec::Mac module</secondary>
</indexterm>

<indexterm id="INDEX-5486" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>OS2 operating system</primary>
<secondary>File::Spec::OS2 module</secondary>
</indexterm>

<indexterm id="INDEX-5487" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Spec::OS2 module</primary>
</indexterm>

<indexterm id="INDEX-5488" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Spec::Unix module</primary>
</indexterm>

<indexterm id="INDEX-5489" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>Unix systems</primary>
<secondary>File::Spec::Unix module</secondary>
</indexterm>

<indexterm id="INDEX-5490" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Spec::VMS module</primary>
</indexterm>

<indexterm id="INDEX-5491" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>VMS operating system</primary>
<secondary>File::Spec::VMS module</secondary>
</indexterm>

<indexterm id="INDEX-5492" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Spec::VMS module</primary>
</indexterm>

<indexterm id="INDEX-5493" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::Spec::Win32 module</primary>
</indexterm>

<indexterm id="INDEX-5494" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>Microsoft Windows</primary>
<secondary>File::Spec::Win32 module</secondary>
</indexterm>

<indexterm id="INDEX-5495" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>File::stat module</primary>
</indexterm>

<indexterm id="INDEX-5496" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>stat function</primary>
</indexterm>

<indexterm id="INDEX-5497" file="ch32_01.htm" sect="32.1.4. Filenames, Filesystems, and File Locking">
<primary>lstat function</primary>
</indexterm>

<indexterm id="INDEX-5498" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IPC (interprocess communication)</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5499" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>object-oriented file, directory, and IPC access</tertiary>
</indexterm>

<indexterm id="INDEX-5500" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>object-oriented programming</primary>
<secondary>modules for file, directory, and IPC access</secondary>
</indexterm>

<indexterm id="INDEX-5501" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>directories</primary>
<secondary>DirHandle module</secondary>
</indexterm>

<indexterm id="INDEX-5502" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>handles</primary>
<secondary>directories</secondary>
</indexterm>

<indexterm id="INDEX-5503" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>FileHandle module</primary>
</indexterm>

<indexterm id="INDEX-5504" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IO module</primary>
</indexterm>

<indexterm id="INDEX-5505" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IO::Dir module</primary>
</indexterm>

<indexterm id="INDEX-5506" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>directories</primary>
<secondary>IO::Dir module</secondary>
</indexterm>

<indexterm id="INDEX-5507" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IO::File module</primary>
</indexterm>

<indexterm id="INDEX-5508" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>filehandles</primary>
<secondary>object methods for, using</secondary>
</indexterm>

<indexterm id="INDEX-5509" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IO::Handle module</primary>
</indexterm>

<indexterm id="INDEX-5510" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IO::Pipe module</primary>
</indexterm>

<indexterm id="INDEX-5511" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>pipes</primary>
<secondary>IO::Pipe module</secondary>
</indexterm>

<indexterm id="INDEX-5512" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IO::Poll module</primary>
</indexterm>

<indexterm id="INDEX-5513" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>poll function</primary>
</indexterm>

<indexterm id="INDEX-5514" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IO::Seekable module</primary>
</indexterm>

<indexterm id="INDEX-5515" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>seekable I/O objects</primary>
</indexterm>

<indexterm id="INDEX-5516" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>IO::Select module</primary>
</indexterm>

<indexterm id="INDEX-5517" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>select function</primary>
</indexterm>

<indexterm id="INDEX-5518" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>SelectSaver module</primary>
</indexterm>

<indexterm id="INDEX-5519" file="ch32_01.htm" sect="32.1.5. Filehandle, Directory Handle, and&#10;Stream I/O Utilities">
<primary>filehandles</primary>
<secondary>SelectSaver module</secondary>
</indexterm>

<indexterm id="INDEX-5520" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>internationalization</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5521" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>locales</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5522" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>internationalization and locales</tertiary>
</indexterm>

<indexterm id="INDEX-5523" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>bytes module</primary>
</indexterm>

<indexterm id="INDEX-5524" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>charnames module</primary>
</indexterm>

<indexterm id="INDEX-5525" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>I18N::Collate module</primary>
</indexterm>

<indexterm id="INDEX-5526" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>locale module</primary>
</indexterm>

<indexterm id="INDEX-5527" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>utf8 module</primary>
</indexterm>

<indexterm id="INDEX-5528" file="ch32_01.htm" sect="32.1.6. Internationalization and Locale">
<primary>Unicode</primary>
<secondary>support for, turning on</secondary>
</indexterm>

<indexterm id="INDEX-5529" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>operating systems</primary>
<secondary>interfaces to, manipulating</secondary>
</indexterm>

<indexterm id="INDEX-5530" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>operating system interfaces, manipulating</tertiary>
</indexterm>

<indexterm id="INDEX-5531" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>Fcntl module</primary>
</indexterm>

<indexterm id="INDEX-5532" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>C language</primary>
<secondary>fcntl.h definitions, loading as Perl constants</secondary>
</indexterm>

<indexterm id="INDEX-5533" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>constants</primary>
<secondary>Perl, loading fcntl.h definitions as</secondary>
</indexterm>

<indexterm id="INDEX-5534" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>POSIX module</primary>
</indexterm>

<indexterm id="INDEX-5535" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>shell module</primary>
</indexterm>

<indexterm id="INDEX-5536" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>signal handling</primary>
<secondary>sigtrap module</secondary>
</indexterm>

<indexterm id="INDEX-5537" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>Sys::Hostname module</primary>
</indexterm>

<indexterm id="INDEX-5538" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>hostnames</primary>
<secondary>Sys::Hostname module</secondary>
</indexterm>

<indexterm id="INDEX-5539" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>Sys::Syslog module</primary>
</indexterm>

<indexterm id="INDEX-5540" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>C language</primary>
<secondary>syslog functions, using in Perl</secondary>
</indexterm>

<indexterm id="INDEX-5541" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>Time::gmtime module</primary>
</indexterm>

<indexterm id="INDEX-5542" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>Time::localtime module</primary>
</indexterm>

<indexterm id="INDEX-5543" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>localtime function</primary>
</indexterm>

<indexterm id="INDEX-5544" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>Time::tm module</primary>
</indexterm>

<indexterm id="INDEX-5545" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>User::grent module</primary>
</indexterm>

<indexterm id="INDEX-5546" file="ch32_01.htm" sect="32.1.7. Operating System Interfaces">
<primary>User::pwent module</primary>
</indexterm>

<indexterm id="INDEX-5547" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>networking and interprocess communication</tertiary>
</indexterm>

<indexterm id="INDEX-5548" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>networking</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5549" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IPC (interprocess communication)</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5550" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IO::Socket module</primary>
</indexterm>

<indexterm id="INDEX-5551" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>sockets</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5552" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IO::Socket::INET module</primary>
</indexterm>

<indexterm id="INDEX-5553" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IO::Socket::UNIX module</primary>
</indexterm>

<indexterm id="INDEX-5554" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>Unix systems</primary>
<secondary>sockets for</secondary>
</indexterm>

<indexterm id="INDEX-5555" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IPC::Msg module</primary>
</indexterm>

<indexterm id="INDEX-5556" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>messages</primary>
<secondary>IPC::Msg module</secondary>
</indexterm>

<indexterm id="INDEX-5557" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IPC::Open2 module</primary>
</indexterm>

<indexterm id="INDEX-5558" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IPC::Open3 module</primary>
</indexterm>

<indexterm id="INDEX-5559" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IPC::Semaphore module</primary>
</indexterm>

<indexterm id="INDEX-5560" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>semaphores</primary>
<secondary>IPC::Semaphore module</secondary>
</indexterm>

<indexterm id="INDEX-5561" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>IPC::SysV module</primary>
</indexterm>

<indexterm id="INDEX-5562" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>System V IPC</primary>
<secondary>IPC::SysV module</secondary>
</indexterm>

<indexterm id="INDEX-5563" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>constants</primary>
<secondary>System V IPC, defining for</secondary>
</indexterm>

<indexterm id="INDEX-5564" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>Net::hostent module</primary>
</indexterm>

<indexterm id="INDEX-5565" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>gethost* functions, overriding built-in</primary>
</indexterm>

<indexterm id="INDEX-5566" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>Net::netent module</primary>
</indexterm>

<indexterm id="INDEX-5567" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>getnet* functions, overriding built-in</primary>
</indexterm>

<indexterm id="INDEX-5568" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>Net::Ping module</primary>
</indexterm>

<indexterm id="INDEX-5569" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>hosts (remote), checking for reachability</primary>
</indexterm>

<indexterm id="INDEX-5570" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>Net::protoent module</primary>
</indexterm>

<indexterm id="INDEX-5571" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>getproto* functions, overriding built-in</primary>
</indexterm>

<indexterm id="INDEX-5572" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>Net::servent module</primary>
</indexterm>

<indexterm id="INDEX-5573" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>getserv* functions, overriding built-in</primary>
</indexterm>

<indexterm id="INDEX-5574" file="ch32_01.htm" sect="32.1.8. Networking and Interprocess Communication">
<primary>Socket module</primary>
</indexterm>

<indexterm id="INDEX-5575" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>web, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-5576" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>World Wide Web (WWW)</primary>
<see>web</see>
</indexterm>

<indexterm id="INDEX-5577" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>CGI module</primary>
</indexterm>

<indexterm id="INDEX-5578" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>HTML</primary>
<secondary>CGI module, generation of</secondary>
</indexterm>

<indexterm id="INDEX-5579" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>CGI::Apache module</primary>
</indexterm>

<indexterm id="INDEX-5580" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>Apache web server</primary>
<secondary>CGI::Apache module</secondary>
</indexterm>

<indexterm id="INDEX-5581" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>CGI::Carp module</primary>
</indexterm>

<indexterm id="INDEX-5582" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>errors</primary>
<secondary>writing to httpd or other CGI errors logs</secondary>
</indexterm>

<indexterm id="INDEX-5583" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>CGI::Cookie module</primary>
</indexterm>

<indexterm id="INDEX-5584" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>HTTP</primary>
<secondary>cookies, setting and getting</secondary>
</indexterm>

<indexterm id="INDEX-5585" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>cookies (HTTP), setting and getting</primary>
</indexterm>

<indexterm id="INDEX-5586" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>CGI::Fast module</primary>
</indexterm>

<indexterm id="INDEX-5587" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>Fast CGI protocol, using</primary>
</indexterm>

<indexterm id="INDEX-5588" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>CGI::Pretty module</primary>
</indexterm>

<indexterm id="INDEX-5589" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>HTML</primary>
<secondary>code, producing nicely formatted</secondary>
</indexterm>

<indexterm id="INDEX-5590" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>CGI::Push module</primary>
</indexterm>

<indexterm id="INDEX-5591" file="ch32_01.htm" sect="32.1.9. World Wide Web">
<primary>server-push CGI scripting</primary>
</indexterm>

<indexterm id="INDEX-5592" file="ch32_01.htm" sect="32.1.10. DBM Interfaces">
<primary>DBM files</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5593" file="ch32_01.htm" sect="32.1.10. DBM Interfaces">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>DBM file management libraries, loading</tertiary>
</indexterm>

<indexterm id="INDEX-5594" file="ch32_01.htm" sect="32.1.10. DBM Interfaces">
<primary>AnyDBM_File module</primary>
</indexterm>

<indexterm id="INDEX-5595" file="ch32_01.htm" sect="32.1.10. DBM Interfaces">
<primary>DB_File module</primary>
</indexterm>

<indexterm id="INDEX-5596" file="ch32_01.htm" sect="32.1.10. DBM Interfaces">
<primary>GDBM_File module</primary>
</indexterm>

<indexterm id="INDEX-5597" file="ch32_01.htm" sect="32.1.10. DBM Interfaces">
<primary>NDBM_File module</primary>
</indexterm>

<indexterm id="INDEX-5598" file="ch32_01.htm" sect="32.1.10. DBM Interfaces">
<primary>SDBM_File module</primary>
</indexterm>

<indexterm id="INDEX-5599" file="ch32_01.htm" sect="32.1.11. User Interfaces">
<primary>user interfaces, modules providing</primary>
</indexterm>

<indexterm id="INDEX-5600" file="ch32_01.htm" sect="32.1.11. User Interfaces">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>user interfaces, providing</tertiary>
</indexterm>

<indexterm id="INDEX-5601" file="ch32_01.htm" sect="32.1.11. User Interfaces">
<primary>Term::Cap module</primary>
</indexterm>

<indexterm id="INDEX-5602" file="ch32_01.htm" sect="32.1.11. User Interfaces">
<primary>Term::Complete module</primary>
</indexterm>

<indexterm id="INDEX-5603" file="ch32_01.htm" sect="32.1.11. User Interfaces">
<primary>words</primary>
<secondary>lists of, doing programmable command completion on</secondary>
</indexterm>

<indexterm id="INDEX-5604" file="ch32_01.htm" sect="32.1.11. User Interfaces">
<primary>Term::ReadLine module</primary>
</indexterm>

<indexterm id="INDEX-5605" file="ch32_01.htm" sect="32.1.11. User Interfaces">
<primary>readline packages</primary>
</indexterm>

<indexterm id="INDEX-5606" file="ch32_01.htm" sect="32.1.12. Authentication, Security, and Encryption">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>security, dealing with</tertiary>
</indexterm>

<indexterm id="INDEX-5607" file="ch32_01.htm" sect="32.1.12. Authentication, Security, and Encryption">
<primary>security</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5608" file="ch32_01.htm" sect="32.1.12. Authentication, Security, and Encryption">
<primary>authentication, Perl modules for</primary>
</indexterm>

<indexterm id="INDEX-5609" file="ch32_01.htm" sect="32.1.12. Authentication, Security, and Encryption">
<primary>encryption</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5610" file="ch32_01.htm" sect="32.1.12. Authentication, Security, and Encryption">
<primary>Opcode module</primary>
</indexterm>

<indexterm id="INDEX-5611" file="ch32_01.htm" sect="32.1.12. Authentication, Security, and Encryption">
<primary>ops module</primary>
</indexterm>

<indexterm id="INDEX-5612" file="ch32_01.htm" sect="32.1.12. Authentication, Security, and Encryption">
<primary>Safe module</primary>
</indexterm>

<indexterm id="INDEX-5613" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>Perl</primary>
<secondary>extensions and internals, modules for</secondary>
</indexterm>

<indexterm id="INDEX-5614" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>extending Perl</primary>
<secondary>extensions, creating</secondary>
</indexterm>

<indexterm id="INDEX-5615" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>Perl language extensions and externals</tertiary>
</indexterm>

<indexterm id="INDEX-5616" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>attributes</primary>
<secondary>attributes module</secondary>
</indexterm>

<indexterm id="INDEX-5617" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>subroutines</primary>
<secondary>atrributes, getting and setting</secondary>
</indexterm>

<indexterm id="INDEX-5618" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>variables</primary>
<secondary>attributes, getting and setting</secondary>
</indexterm>

<indexterm id="INDEX-5619" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>attrs module (obsolete)</primary>
</indexterm>

<indexterm id="INDEX-5620" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>base module</primary>
</indexterm>

<indexterm id="INDEX-5621" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>inheritance</primary>
<secondary>base class, establishing at compile time</secondary>
</indexterm>

<indexterm id="INDEX-5622" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>classes</primary>
<secondary>inheritance among</secondary>
<tertiary>base module</tertiary>
</indexterm>

<indexterm id="INDEX-5623" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>Data::Dumper module</primary>
</indexterm>

<indexterm id="INDEX-5624" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>serializing Perl data structures</primary>
</indexterm>

<indexterm id="INDEX-5625" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>DB module</primary>
</indexterm>

<indexterm id="INDEX-5626" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>debugging</primary>
<secondary>DB module</secondary>
</indexterm>

<indexterm id="INDEX-5627" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>Devel::DProf module</primary>
</indexterm>

<indexterm id="INDEX-5628" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>profiling, Devel::DProf module</primary>
</indexterm>

<indexterm id="INDEX-5629" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>XS language</primary>
<secondary>debugging tools for</secondary>
</indexterm>

<indexterm id="INDEX-5630" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>Devel::Peek module</primary>
</indexterm>

<indexterm id="INDEX-5631" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>debugging</primary>
<secondary>Devel::Peek module for XS programs</secondary>
</indexterm>

<indexterm id="INDEX-5632" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>diagnostics module</primary>
</indexterm>

<indexterm id="INDEX-5633" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>verbosity</primary>
<secondary>warnings, forcing in</secondary>
</indexterm>

<indexterm id="INDEX-5634" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>warnings</primary>
<secondary>verbosity, forcing in</secondary>
</indexterm>

<indexterm id="INDEX-5635" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>Dumpvalue module</primary>
</indexterm>

<indexterm id="INDEX-5636" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>data</primary>
<secondary>screen dump, providing</secondary>
</indexterm>

<indexterm id="INDEX-5637" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>English module</primary>
</indexterm>

<indexterm id="INDEX-5638" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>punctuation variables, English module, handling with</primary>
</indexterm>

<indexterm id="INDEX-5639" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>Env module</primary>
</indexterm>

<indexterm id="INDEX-5640" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>environment variables</primary>
<secondary>Env module</secondary>
</indexterm>

<indexterm id="INDEX-5641" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>Errno module</primary>
</indexterm>

<indexterm id="INDEX-5642" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>Fatal module</primary>
</indexterm>

<indexterm id="INDEX-5643" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>exceptions</primary>
<secondary>raising on failure</secondary>
</indexterm>

<indexterm id="INDEX-5644" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>fields module</primary>
</indexterm>

<indexterm id="INDEX-5645" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>less module</primary>
</indexterm>

<indexterm id="INDEX-5646" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>re module</primary>
</indexterm>

<indexterm id="INDEX-5647" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>patterns (and regular expressions)</primary>
<secondary>re pragma, altering default behavior of</secondary>
</indexterm>

<indexterm id="INDEX-5648" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>strict module</primary>
</indexterm>

<indexterm id="INDEX-5649" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>subs module</primary>
</indexterm>

<indexterm id="INDEX-5650" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>predeclaring subroutines</primary>
</indexterm>

<indexterm id="INDEX-5651" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>vars modle (obsolete)</primary>
</indexterm>

<indexterm id="INDEX-5652" file="ch32_01.htm" sect="32.1.13. Perl Language Extensions and Internals">
<primary>global variables</primary>
<secondary>predeclaring, vars module</secondary>
</indexterm>

<indexterm id="INDEX-5653" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>base classes and convenience</tertiary>
<see/>
</indexterm>

<indexterm id="INDEX-5654" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>base classes</primary>
</indexterm>

<indexterm id="INDEX-5655" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>Tie::Array module</primary>
</indexterm>

<indexterm id="INDEX-5656" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>arrays</primary>
<secondary>tying</secondary>
<tertiary>Tie::Array module</tertiary>
</indexterm>

<indexterm id="INDEX-5657" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>handles</primary>
<secondary>tied, base class definitons for</secondary>
</indexterm>

<indexterm id="INDEX-5658" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>Tie::Hash module</primary>
</indexterm>

<indexterm id="INDEX-5659" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>hashes</primary>
<secondary>tying</secondary>
<tertiary>Tie::Hash module, providing base class definitions</tertiary>
</indexterm>

<indexterm id="INDEX-5660" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>Tie::RefHash module</primary>
</indexterm>

<indexterm id="INDEX-5661" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>references</primary>
<secondary>hash keys, providing as</secondary>
</indexterm>

<indexterm id="INDEX-5662" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>keys, hash</primary>
<secondary>providing references as</secondary>
</indexterm>

<indexterm id="INDEX-5663" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>Tie::Scalar module</primary>
</indexterm>

<indexterm id="INDEX-5664" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>scalars</primary>
<secondary>tying</secondary>
<tertiary>base class definitions, providing</tertiary>
</indexterm>

<indexterm id="INDEX-5665" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>Tie::SubstrHash module</primary>
</indexterm>

<indexterm id="INDEX-5666" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>UNIVERSAL module</primary>
</indexterm>

<indexterm id="INDEX-5667" file="ch32_01.htm" sect="32.1.14. Convenient Classes">
<primary>base classes</primary>
<secondary>UNIVERSAL module, providing for all classes</secondary>
</indexterm>

<indexterm id="INDEX-5668" file="ch32_01.htm" sect="32.1.15. Warnings and Exceptions">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>warnings and exceptions</tertiary>
</indexterm>

<indexterm id="INDEX-5669" file="ch32_01.htm" sect="32.1.15. Warnings and Exceptions">
<primary>warnings</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5670" file="ch32_01.htm" sect="32.1.15. Warnings and Exceptions">
<primary>exceptions</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5671" file="ch32_01.htm" sect="32.1.15. Warnings and Exceptions">
<primary>Carp module</primary>
</indexterm>

<indexterm id="INDEX-5672" file="ch32_01.htm" sect="32.1.15. Warnings and Exceptions">
<primary>warnings module</primary>
</indexterm>

<indexterm id="INDEX-5673" file="ch32_01.htm" sect="32.1.15. Warnings and Exceptions">
<primary>lexical warnings</primary>
</indexterm>

<indexterm id="INDEX-5674" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>documentation support</tertiary>
</indexterm>

<indexterm id="INDEX-5675" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>documentation</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5676" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Checker module</primary>
</indexterm>

<indexterm id="INDEX-5677" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Functions module</primary>
</indexterm>

<indexterm id="INDEX-5678" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>functions</primary>
<secondary>built-in, listing by type</secondary>
</indexterm>

<indexterm id="INDEX-5679" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>built-in</primary>
<secondary>functions</secondary>
<tertiary>listing by type</tertiary>
</indexterm>

<indexterm id="INDEX-5680" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Html module</primary>
</indexterm>

<indexterm id="INDEX-5681" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>HTML</primary>
<secondary>pod files, converting to</secondary>
</indexterm>

<indexterm id="INDEX-5682" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::InputObjects module</primary>
</indexterm>

<indexterm id="INDEX-5683" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Man module</primary>
</indexterm>

<indexterm id="INDEX-5684" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>manpages</primary>
<secondary>Pod::Man module</secondary>
</indexterm>

<indexterm id="INDEX-5685" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Parser module</primary>
</indexterm>

<indexterm id="INDEX-5686" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>base classes</primary>
<secondary sortas="pod">for pod filters and translators</secondary>
</indexterm>

<indexterm id="INDEX-5687" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Select module</primary>
</indexterm>

<indexterm id="INDEX-5688" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Text module</primary>
</indexterm>

<indexterm id="INDEX-5689" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>text</primary>
<secondary>pod data, converting to formatted ASCII</secondary>
</indexterm>

<indexterm id="INDEX-5690" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Text::Termcap module</primary>
</indexterm>

<indexterm id="INDEX-5691" file="ch32_01.htm" sect="32.1.16. Documentation Support">
<primary>Pod::Usage module</primary>
</indexterm>

<indexterm id="INDEX-5692" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>module installation support</tertiary>
</indexterm>

<indexterm id="INDEX-5693" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>installation</primary>
<secondary>modules supporting</secondary>
</indexterm>

<indexterm id="INDEX-5694" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>AutoLoader module</primary>
</indexterm>

<indexterm id="INDEX-5695" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>subroutines</primary>
<secondary>autoloading</secondary>
</indexterm>

<indexterm id="INDEX-5696" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>AutoSplit module</primary>
</indexterm>

<indexterm id="INDEX-5697" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>packages</primary>
<secondary>splitting for autoloading</secondary>
</indexterm>

<indexterm id="INDEX-5698" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>autouse module</primary>
</indexterm>

<indexterm id="INDEX-5699" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>blib pragma</primary>
</indexterm>

<indexterm id="INDEX-5700" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>libraries</primary>
<secondary>uninstalled extensions from MakeMaker</secondary>
</indexterm>

<indexterm id="INDEX-5701" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>Config module</primary>
</indexterm>

<indexterm id="INDEX-5702" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>CPAN module</primary>
</indexterm>

<indexterm id="INDEX-5703" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>Devel::SelfStubber module</primary>
</indexterm>

<indexterm id="INDEX-5704" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>stubs for modules, generating</primary>
</indexterm>

<indexterm id="INDEX-5705" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>SelfLoader module</primary>
<secondary>Devel::SelfStubber module, using with</secondary>
</indexterm>

<indexterm id="INDEX-5706" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>DynaLoader module</primary>
</indexterm>

<indexterm id="INDEX-5707" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>libraries</primary>
<secondary>C/C++, loading as Perl extensions</secondary>
</indexterm>

<indexterm id="INDEX-5708" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>Exporter module</primary>
</indexterm>

<indexterm id="INDEX-5709" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>modules</primary>
<secondary>importing</secondary>
</indexterm>

<indexterm id="INDEX-5710" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Command module</primary>
</indexterm>

<indexterm id="INDEX-5711" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Embed module</primary>
</indexterm>

<indexterm id="INDEX-5712" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>embedding Perl</primary>
</indexterm>

<indexterm id="INDEX-5713" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Install module</primary>
</indexterm>

<indexterm id="INDEX-5714" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Installed module</primary>
</indexterm>

<indexterm id="INDEX-5715" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>installed modules, inventory of</primary>
</indexterm>

<indexterm id="INDEX-5716" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Liblist module</primary>
</indexterm>

<indexterm id="INDEX-5717" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>libraries</primary>
<secondary>ExtUtils::Liblist module</secondary>
</indexterm>

<indexterm id="INDEX-5718" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::MakeMaker module</primary>
</indexterm>

<indexterm id="INDEX-5719" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>Makefile</primary>
<secondary>creating for Perl extensions</secondary>
</indexterm>

<indexterm id="INDEX-5720" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Manifest module</primary>
</indexterm>

<indexterm id="INDEX-5721" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>MANIFEST file</primary>
</indexterm>

<indexterm id="INDEX-5722" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Mkbootstrap module</primary>
</indexterm>

<indexterm id="INDEX-5723" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>bootstrapping modules</primary>
</indexterm>

<indexterm id="INDEX-5724" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Mksymlists module</primary>
</indexterm>

<indexterm id="INDEX-5725" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::MM_Cygwin module</primary>
</indexterm>

<indexterm id="INDEX-5726" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::MM_OS2 module</primary>
</indexterm>

<indexterm id="INDEX-5727" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::MM_Unix module</primary>
</indexterm>

<indexterm id="INDEX-5728" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::MM_VMS module</primary>
</indexterm>

<indexterm id="INDEX-5729" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::MM_Win32 module</primary>
</indexterm>

<indexterm id="INDEX-5730" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::Packlist module</primary>
</indexterm>

<indexterm id="INDEX-5731" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>ExtUtils::testlib module</primary>
</indexterm>

<indexterm id="INDEX-5732" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>FindBin module</primary>
</indexterm>

<indexterm id="INDEX-5733" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>lib module</primary>
</indexterm>

<indexterm id="INDEX-5734" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>@INC array</primary>
</indexterm>

<indexterm id="INDEX-5735" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>SelfLoader module</primary>
</indexterm>

<indexterm id="INDEX-5736" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>XSLoader module</primary>
</indexterm>

<indexterm id="INDEX-5737" file="ch32_01.htm" sect="32.1.17. Module Installation Support">
<primary>libraries</primary>
<secondary>C/C++, loading as Perl extensions</secondary>
</indexterm>

<indexterm id="INDEX-5738" file="ch32_01.htm" sect="32.1.18. Development Support">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>development support</tertiary>
</indexterm>

<indexterm id="INDEX-5739" file="ch32_01.htm" sect="32.1.18. Development Support">
<primary>Benchmark module</primary>
</indexterm>

<indexterm id="INDEX-5740" file="ch32_01.htm" sect="32.1.18. Development Support">
<primary>comparing</primary>
<secondary>running time of alternate code versions</secondary>
</indexterm>

<indexterm id="INDEX-5741" file="ch32_01.htm" sect="32.1.18. Development Support">
<primary>scripts</primary>
<secondary>Perl</secondary>
<tertiary>test scripts</tertiary>
</indexterm>

<indexterm id="INDEX-5742" file="ch32_01.htm" sect="32.1.18. Development Support">
<primary>Test module</primary>
</indexterm>

<indexterm id="INDEX-5743" file="ch32_01.htm" sect="32.1.18. Development Support">
<primary>Test::Harness module</primary>
</indexterm>

<indexterm id="INDEX-5744" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>modules</primary>
<secondary>standard</secondary>
<tertiary>Perl compiler and code generator</tertiary>
</indexterm>

<indexterm id="INDEX-5745" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>code generation</primary>
</indexterm>

<indexterm id="INDEX-5746" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>compilers, Perl</primary>
<secondary>modules related to</secondary>
</indexterm>

<indexterm id="INDEX-5747" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B module</primary>
</indexterm>

<indexterm id="INDEX-5748" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Asmdata module</primary>
</indexterm>

<indexterm id="INDEX-5749" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Assemble module</primary>
</indexterm>

<indexterm id="INDEX-5750" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Bblock module</primary>
</indexterm>

<indexterm id="INDEX-5751" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Bytecode module</primary>
</indexterm>

<indexterm id="INDEX-5752" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>backends, compiler</primary>
</indexterm>

<indexterm id="INDEX-5753" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::C module</primary>
</indexterm>

<indexterm id="INDEX-5754" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::CC module</primary>
</indexterm>

<indexterm id="INDEX-5755" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Debug module</primary>
</indexterm>

<indexterm id="INDEX-5756" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Deparse module</primary>
</indexterm>

<indexterm id="INDEX-5757" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Disassembler module</primary>
</indexterm>

<indexterm id="INDEX-5758" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Lint module</primary>
</indexterm>

<indexterm id="INDEX-5759" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Showlex module</primary>
</indexterm>

<indexterm id="INDEX-5760" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>lexical variables</primary>
<secondary sortas="functions">in functions or files, showing</secondary>
</indexterm>

<indexterm id="INDEX-5761" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Stash module</primary>
</indexterm>

<indexterm id="INDEX-5762" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Terse module</primary>
</indexterm>

<indexterm id="INDEX-5763" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>B::Xref module</primary>
</indexterm>

<indexterm id="INDEX-5764" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>ByteLoader module</primary>
</indexterm>

<indexterm id="INDEX-5765" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>O module</primary>
</indexterm>

<indexterm id="INDEX-5766" file="ch32_01.htm" sect="32.1.19. Perl Compiler and Code Generator">
<primary>backends, compiler</primary>
<secondary>generic interface to</secondary>
</indexterm>

<indexterm id="INDEX-5767" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>ActiveState Perl distribution</primary>
<secondary>Microsoft-only modules</secondary>
</indexterm>

<indexterm id="INDEX-5768" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Microsoft Windows</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5769" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::ChangeNotify module</primary>
</indexterm>

<indexterm id="INDEX-5770" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::Console module</primary>
</indexterm>

<indexterm id="INDEX-5771" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::Event module</primary>
</indexterm>

<indexterm id="INDEX-5772" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::EventLog module</primary>
</indexterm>

<indexterm id="INDEX-5773" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::File module</primary>
</indexterm>

<indexterm id="INDEX-5774" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::FileSecurity module</primary>
</indexterm>

<indexterm id="INDEX-5775" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>security</primary>
<secondary>Win32::FileSecurity module</secondary>
</indexterm>

<indexterm id="INDEX-5776" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::IPC module</primary>
</indexterm>

<indexterm id="INDEX-5777" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::Internet module</primary>
</indexterm>

<indexterm id="INDEX-5778" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::Mutex module</primary>
</indexterm>

<indexterm id="INDEX-5779" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::NetAdmin module</primary>
</indexterm>

<indexterm id="INDEX-5780" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>networking</primary>
<secondary>Win32 network modules</secondary>
</indexterm>

<indexterm id="INDEX-5781" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::NetResource module</primary>
</indexterm>

<indexterm id="INDEX-5782" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::ODBC module</primary>
</indexterm>

<indexterm id="INDEX-5783" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::OLE module</primary>
</indexterm>

<indexterm id="INDEX-5784" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::OLE::Const module</primary>
</indexterm>

<indexterm id="INDEX-5785" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::OLE::Enum module</primary>
</indexterm>

<indexterm id="INDEX-5786" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::OLE::NLS module</primary>
</indexterm>

<indexterm id="INDEX-5787" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::OLE::Variant module</primary>
</indexterm>

<indexterm id="INDEX-5788" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::PerfLib module</primary>
</indexterm>

<indexterm id="INDEX-5789" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::Process module</primary>
</indexterm>

<indexterm id="INDEX-5790" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::Semaphore module</primary>
</indexterm>

<indexterm id="INDEX-5791" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>semaphores</primary>
<secondary>Win32::Semaphore module</secondary>
</indexterm>

<indexterm id="INDEX-5792" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::Service module</primary>
</indexterm>

<indexterm id="INDEX-5793" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::Sound module</primary>
</indexterm>

<indexterm id="INDEX-5794" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32::TieRegistry module</primary>
</indexterm>

<indexterm id="INDEX-5795" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>registry (Microsoft Windows), manipulating</primary>
</indexterm>

<indexterm id="INDEX-5796" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32API::File module</primary>
</indexterm>

<indexterm id="INDEX-5797" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>files</primary>
<secondary>Win32API::File module</secondary>
</indexterm>

<indexterm id="INDEX-5798" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32API::Net module</primary>
</indexterm>

<indexterm id="INDEX-5799" file="ch32_01.htm" sect="32.1.20. Microsoft-Related Modules">
<primary>Win32API::Registry module</primary>
</indexterm>

<indexterm id="INDEX-5800" file="ch32_02.htm" sect="32.2. Benchmark">
<primary>Benchmark module</primary>
<secondary>comparing running times of alternate code versions</secondary>
</indexterm>

<indexterm id="INDEX-5801" file="ch32_02.htm" sect="32.2. Benchmark">
<primary>timing</primary>
<secondary>running times of alternate code versions, comparing</secondary>
</indexterm>

<indexterm id="INDEX-5804" file="ch32_03.htm" sect="32.3. Carp">
<primary>Carp module</primary>
</indexterm>

<indexterm id="INDEX-5805" file="ch32_03.htm" sect="32.3. Carp">
<primary>errors</primary>
<secondary>Carp module</secondary>
</indexterm>

<indexterm id="INDEX-5806" file="ch32_04.htm" sect="32.4. CGI">
<primary>CGI module</primary>
<secondary>managing HTML forms with</secondary>
</indexterm>

<indexterm id="INDEX-5807" file="ch32_05.htm" sect="32.5. CGI::Carp">
<primary>CGI::Carp module</primary>
</indexterm>

<indexterm id="INDEX-5808" file="ch32_05.htm" sect="32.5. CGI::Carp">
<primary>errors</primary>
<secondary>CGI::Carp module, handling of</secondary>
</indexterm>

<indexterm id="INDEX-5809" file="ch32_06.htm" sect="32.6. Class::Struct">
<primary>Class::Struct module</primary>
</indexterm>

<indexterm id="INDEX-5810" file="ch32_06.htm" sect="32.6. Class::Struct">
<primary>Net::hostent module</primary>
<secondary>Class::Struct, using to create objects and accesors</secondary>
</indexterm>

<indexterm id="INDEX-5811" file="ch32_06.htm" sect="32.6. Class::Struct">
<primary>User::pwent module</primary>
<secondary>Class::Struct, using to create objects and accessors</secondary>
</indexterm>

<indexterm id="INDEX-5812" file="ch32_08.htm" sect="32.8. CPAN">
<primary>CPAN module</primary>
</indexterm>

<indexterm id="INDEX-5813" file="ch32_08.htm" sect="32.8. CPAN">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
<secondary>CPAN module as automated interface to</secondary>
</indexterm>

<indexterm id="INDEX-5814" file="ch32_09.htm" sect="32.9. Cwd">
<primary>Cwd module</primary>
<secondary>current working directory for process, determining</secondary>
</indexterm>

<indexterm id="INDEX-5815" file="ch32_10.htm" sect="32.10. Data::Dumper">
<primary>Data::Dumper module</primary>
</indexterm>

<indexterm id="INDEX-5816" file="ch32_10.htm" sect="32.10. Data::Dumper">
<primary>DBM files</primary>
<secondary>complex data values, storing in</secondary>
</indexterm>

<indexterm id="INDEX-5817" file="ch32_10.htm" sect="32.10. Data::Dumper">
<primary>MLDBM module</primary>
<secondary>Data::Dumper module, using with</secondary>
</indexterm>

<indexterm id="INDEX-5818" file="ch32_10.htm" sect="32.10. Data::Dumper">
<primary>DB_File module</primary>
<secondary>Data::Dumper module, using with</secondary>
</indexterm>

<indexterm id="INDEX-5819" file="ch32_10.htm" sect="32.10. Data::Dumper">
<primary>stringification</primary>
<secondary>modules for</secondary>
</indexterm>

<indexterm id="INDEX-5820" file="ch32_10.htm" sect="32.10. Data::Dumper">
<primary>marshalling modules</primary>
</indexterm>

<indexterm id="INDEX-5822" file="ch33_01.htm" sect="33. Diagnostic Messages">
<primary>diagnostic messages</primary>
<see>error messages[semi] warning messages </see>
</indexterm>

<indexterm id="INDEX-5823" file="ch33_01.htm" sect="33. Diagnostic Messages">
<primary>precedence</primary>
<secondary>diagnostic messages</secondary>
</indexterm>

<indexterm id="INDEX-5824" file="ch33_01.htm" sect="33. Diagnostic Messages">
<primary>warning messages </primary>
</indexterm>

<indexterm id="INDEX-5825" file="ch33_01.htm" sect="33. Diagnostic Messages">
<primary>error messages </primary>
</indexterm>

<indexterm id="INDEX-5826" file="ch33_01.htm" sect="33. Diagnostic Messages">
<primary sortas="w switch">-w switch, perl </primary>
</indexterm>

<indexterm id="INDEX-5827" file="ch33_01.htm" sect="33. Diagnostic Messages">
<primary>perl interpreter program </primary>
<secondary sortas="w switch">-w switch </secondary>
</indexterm>

<indexterm id="INDEX-5828" file="ch33_01.htm" sect="33. Diagnostic Messages">
<primary>errors </primary>
</indexterm>

<indexterm id="INDEX-5829" file="ch33_01.htm" sect="33. Diagnostic Messages">
<primary>bugs </primary>
</indexterm>

<indexterm id="INDEX-5960" file="gloss.htm" sect="Gloss">
<primary>accessor methods</primary>
</indexterm>

<indexterm id="INDEX-5961" file="gloss.htm" sect="Gloss">
<primary>arguments</primary>

  <secondary>actual</secondary>
</indexterm>

<indexterm id="INDEX-5962" file="gloss.htm" sect="Gloss">
<primary>address-of operator (in C)</primary>
</indexterm>

<indexterm id="INDEX-5963" file="gloss.htm" sect="Gloss">
<primary>algorithms</primary>
</indexterm>

<indexterm id="INDEX-5964" file="gloss.htm" sect="Gloss">
<primary>aliases</primary>
</indexterm>

<indexterm id="INDEX-5965" file="gloss.htm" sect="Gloss">
<primary>alternation</primary>
</indexterm>

<indexterm id="INDEX-5966" file="gloss.htm" sect="Gloss">
<primary>anonymous</primary>
</indexterm>

<indexterm id="INDEX-5967" file="gloss.htm" sect="Gloss">
<primary>architecture</primary>
</indexterm>

<indexterm id="INDEX-5968" file="gloss.htm" sect="Gloss">
<primary>arguments</primary>
</indexterm>

<indexterm id="INDEX-5969" file="gloss.htm" sect="Gloss">
<primary>arguments</primary>
<seealso>parameters</seealso>
</indexterm>

<indexterm id="INDEX-5970" file="gloss.htm" sect="Gloss">
<primary sortas="ARGV variable">$ARGV variable</primary>
</indexterm>

<indexterm id="INDEX-5971" file="gloss.htm" sect="Gloss">
<primary>arithmetic operators</primary>
</indexterm>

<indexterm id="INDEX-5972" file="gloss.htm" sect="Gloss">
<primary>arrays</primary>
</indexterm>

<indexterm id="INDEX-5973" file="gloss.htm" sect="Gloss">
<primary>arrays</primary>
<seealso>lists</seealso>
</indexterm>

<indexterm id="INDEX-5974" file="gloss.htm" sect="Gloss">
<primary>list context</primary>
</indexterm>

<indexterm id="INDEX-5975" file="gloss.htm" sect="Gloss">
<primary>array context</primary>
<see>list context</see>
</indexterm>

<indexterm id="INDEX-5976" file="gloss.htm" sect="Gloss">
<primary>ASCII</primary>
</indexterm>

<indexterm id="INDEX-5977" file="gloss.htm" sect="Gloss">
<primary>American Standard Code for Information Interchange</primary>
<see>ASCII</see>
</indexterm>

<indexterm id="INDEX-5978" file="gloss.htm" sect="Gloss">
<primary>assertions (in patterns)</primary>
</indexterm>

<indexterm id="INDEX-5979" file="gloss.htm" sect="Gloss">
<primary>assignment operators</primary>
</indexterm>

<indexterm id="INDEX-5980" file="gloss.htm" sect="Gloss">
<primary>associativity of operators</primary>
</indexterm>

<indexterm id="INDEX-5981" file="gloss.htm" sect="Gloss">
<primary>asynchronous events</primary>
</indexterm>

<indexterm id="INDEX-5982" file="gloss.htm" sect="Gloss">
<primary>atoms</primary>
</indexterm>

<indexterm id="INDEX-5983" file="gloss.htm" sect="Gloss">
<primary>attributes</primary>
</indexterm>

<indexterm id="INDEX-5984" file="gloss.htm" sect="Gloss">
<primary>autogeneration, overloading</primary>
</indexterm>

<indexterm id="INDEX-5985" file="gloss.htm" sect="Gloss">
<primary>autoincrement (++) operator</primary>
</indexterm>

<indexterm id="INDEX-5986" file="gloss.htm" sect="Gloss">
<primary>autoloading</primary>
</indexterm>

<indexterm id="INDEX-5987" file="gloss.htm" sect="Gloss">
<primary>autosplit mode (with -a switch)</primary>
</indexterm>

<indexterm id="INDEX-5988" file="gloss.htm" sect="Gloss">
<primary>autovivification</primary>
</indexterm>

<indexterm id="INDEX-5989" file="gloss.htm" sect="Gloss">
<primary>AV (internal array value)</primary>
</indexterm>

<indexterm id="INDEX-5990" file="gloss.htm" sect="Gloss">
<primary>awk</primary>
</indexterm>

<indexterm id="INDEX-5991" file="gloss.htm" sect="Gloss">
<primary>backreferences</primary>
</indexterm>

<indexterm id="INDEX-5992" file="gloss.htm" sect="Gloss">
<primary>backtracking</primary>
</indexterm>

<indexterm id="INDEX-5993" file="gloss.htm" sect="Gloss">
<primary>backward compatibility</primary>
</indexterm>

<indexterm id="INDEX-5994" file="gloss.htm" sect="Gloss">
<primary>barewords</primary>
</indexterm>

<indexterm id="INDEX-5995" file="gloss.htm" sect="Gloss">
<primary>base classes</primary>
</indexterm>

<indexterm id="INDEX-5996" file="gloss.htm" sect="Gloss">
<primary>big-endian</primary>
</indexterm>

<indexterm id="INDEX-5997" file="gloss.htm" sect="Gloss">
<primary>binary</primary>
</indexterm>

<indexterm id="INDEX-5998" file="gloss.htm" sect="Gloss">
<primary>binary operators</primary>
</indexterm>

<indexterm id="INDEX-5999" file="gloss.htm" sect="Gloss">
<primary>binding</primary>
</indexterm>

<indexterm id="INDEX-6000" file="gloss.htm" sect="Gloss">
<primary>bits</primary>
</indexterm>

<indexterm id="INDEX-6001" file="gloss.htm" sect="Gloss">
<primary>bit-shift operators (&lt;&lt;, &gt;&gt;)</primary>
</indexterm>

<indexterm id="INDEX-6002" file="gloss.htm" sect="Gloss">
<primary>bless function</primary>
</indexterm>

<indexterm id="INDEX-6003" file="gloss.htm" sect="Gloss">
<primary>blocks</primary>
</indexterm>

<indexterm id="INDEX-6004" file="gloss.htm" sect="Gloss">
<primary>buffering</primary>

  <secondary>block</secondary>
</indexterm>

<indexterm id="INDEX-6005" file="gloss.htm" sect="Gloss">
<primary>Boolean</primary>
</indexterm>

<indexterm id="INDEX-6006" file="gloss.htm" sect="Gloss">
<primary>scalar context</primary>

  <secondary>Boolean values and</secondary>
</indexterm>

<indexterm id="INDEX-6007" file="gloss.htm" sect="Gloss">
<primary>breakpoints</primary>
</indexterm>

<indexterm id="INDEX-6008" file="gloss.htm" sect="Gloss">
<primary>broadcasting</primary>
</indexterm>

<indexterm id="INDEX-6009" file="gloss.htm" sect="Gloss">
<primary>BSD (Berkeley Standard Distribution)</primary>
</indexterm>

<indexterm id="INDEX-6010" file="gloss.htm" sect="Gloss">
<primary>buckets</primary>
</indexterm>

<indexterm id="INDEX-6011" file="gloss.htm" sect="Gloss">
<primary>hashes</primary>

  <secondary>buckets</secondary>
</indexterm>

<indexterm id="INDEX-6012" file="gloss.htm" sect="Gloss">
<primary>buffering</primary>
</indexterm>

<indexterm id="INDEX-6013" file="gloss.htm" sect="Gloss">
<primary>built-in</primary>
</indexterm>

<indexterm id="INDEX-6014" file="gloss.htm" sect="Gloss">
<primary>bundles</primary>
</indexterm>

<indexterm id="INDEX-6015" file="gloss.htm" sect="Gloss">
<primary>bytes</primary>
</indexterm>

<indexterm id="INDEX-6016" file="gloss.htm" sect="Gloss">
<primary>bytecode</primary>
</indexterm>

<indexterm id="INDEX-6017" file="gloss.htm" sect="Gloss">
<primary sortas="C7">C language</primary>
</indexterm>

<indexterm id="INDEX-6018" file="gloss.htm" sect="Gloss">
<primary sortas="C7">C language</primary>

  <secondary>preprocessor</secondary>
</indexterm>

<indexterm id="INDEX-6019" file="gloss.htm" sect="Gloss">
<primary>preprocessor (C language)</primary>
</indexterm>

<indexterm id="INDEX-6020" file="gloss.htm" sect="Gloss">
<primary>calling</primary>

  <secondary>by reference</secondary>
</indexterm>

<indexterm id="INDEX-6021" file="gloss.htm" sect="Gloss">
<primary>passing by reference</primary>
</indexterm>

<indexterm id="INDEX-6022" file="gloss.htm" sect="Gloss">
<primary>calling</primary>

  <secondary>by value</secondary>
</indexterm>

<indexterm id="INDEX-6023" file="gloss.htm" sect="Gloss">
<primary>passing by value</primary>
</indexterm>

<indexterm id="INDEX-6024" file="gloss.htm" sect="Gloss">
<primary>callbacks</primary>
</indexterm>

<indexterm id="INDEX-6025" file="gloss.htm" sect="Gloss">
<primary>canonicalization</primary>
</indexterm>

<indexterm id="INDEX-6026" file="gloss.htm" sect="Gloss">
<primary>capturing in patterns</primary>
</indexterm>

<indexterm id="INDEX-6027" file="gloss.htm" sect="Gloss">
<primary>characters</primary>
</indexterm>

<indexterm id="INDEX-6028" file="gloss.htm" sect="Gloss">
<primary>character classes</primary>
</indexterm>

<indexterm id="INDEX-6029" file="gloss.htm" sect="Gloss">
<primary>characters</primary>

  <secondary>properties</secondary>
</indexterm>

<indexterm id="INDEX-6030" file="gloss.htm" sect="Gloss">
<primary>circumfix operator</primary>
</indexterm>

<indexterm id="INDEX-6031" file="gloss.htm" sect="Gloss">
<primary>classes</primary>
</indexterm>

<indexterm id="INDEX-6032" file="gloss.htm" sect="Gloss">
<primary>class methods</primary>
</indexterm>

<indexterm id="INDEX-6033" file="gloss.htm" sect="Gloss">
<primary>methods</primary>
</indexterm>

<indexterm id="INDEX-6034" file="gloss.htm" sect="Gloss">
<primary>clients</primary>
</indexterm>

<indexterm id="INDEX-6035" file="gloss.htm" sect="Gloss">
<primary>clustering in patterns</primary>
</indexterm>

<indexterm id="INDEX-6036" file="gloss.htm" sect="Gloss">
<primary>cloisters</primary>
</indexterm>

<indexterm id="INDEX-6037" file="gloss.htm" sect="Gloss">
<primary>closures</primary>
</indexterm>

<indexterm id="INDEX-6038" file="gloss.htm" sect="Gloss">
<primary>code generators</primary>
</indexterm>

<indexterm id="INDEX-6039" file="gloss.htm" sect="Gloss">
<primary>code subpatterns in regular expressions</primary>
</indexterm>

<indexterm id="INDEX-6040" file="gloss.htm" sect="Gloss">
<primary>collating sequence</primary>
</indexterm>

<indexterm id="INDEX-6041" file="gloss.htm" sect="Gloss">
<primary>shells</primary>

  <secondary>commands in</secondary>
</indexterm>

<indexterm id="INDEX-6042" file="gloss.htm" sect="Gloss">
<primary>buffering</primary>

  <secondary>commands</secondary>
</indexterm>

<indexterm id="INDEX-6043" file="gloss.htm" sect="Gloss">
<primary>commands</primary>

  <secondary>buffering</secondary>
</indexterm>

<indexterm id="INDEX-6044" file="gloss.htm" sect="Gloss">
<primary>autoflushing buffers</primary>
</indexterm>

<indexterm id="INDEX-6045" file="gloss.htm" sect="Gloss">
<primary>names</primary>

  <secondary>commands</secondary>
</indexterm>

<indexterm id="INDEX-6046" file="gloss.htm" sect="Gloss">
<primary>command-line arguments</primary>
</indexterm>

<indexterm id="INDEX-6047" file="gloss.htm" sect="Gloss">
<primary sortas="ARGV array">@ARGV array</primary>
</indexterm>

<indexterm id="INDEX-6048" file="gloss.htm" sect="Gloss">
<primary>comments</primary>
</indexterm>

<indexterm id="INDEX-6049" file="gloss.htm" sect="Gloss">
<primary>compilation units</primary>
</indexterm>

<indexterm id="INDEX-6050" file="gloss.htm" sect="Gloss">
<primary>compile phase</primary>
</indexterm>

<indexterm id="INDEX-6051" file="gloss.htm" sect="Gloss">
<primary>compile time</primary>
</indexterm>

<indexterm id="INDEX-6052" file="gloss.htm" sect="Gloss">
<primary>compilers</primary>
</indexterm>

<indexterm id="INDEX-6053" file="gloss.htm" sect="Gloss">
<primary>constructors</primary>
</indexterm>

<indexterm id="INDEX-6054" file="gloss.htm" sect="Gloss">
<primary>concatenating strings</primary>
</indexterm>

<indexterm id="INDEX-6055" file="gloss.htm" sect="Gloss">
<primary>connections</primary>
</indexterm>

<indexterm id="INDEX-6056" file="gloss.htm" sect="Gloss">
<primary>networking</primary>

  <secondary>connections (between client and server)</secondary>
</indexterm>

<indexterm id="INDEX-6057" file="gloss.htm" sect="Gloss">
<primary>constructors</primary>
</indexterm>

<indexterm id="INDEX-6058" file="gloss.htm" sect="Gloss">
<primary>context</primary>
</indexterm>

<indexterm id="INDEX-6059" file="gloss.htm" sect="Gloss">
<primary>numeric context</primary>
</indexterm>

<indexterm id="INDEX-6060" file="gloss.htm" sect="Gloss">
<primary>Boolean</primary>

  <secondary>context</secondary>
</indexterm>

<indexterm id="INDEX-6061" file="gloss.htm" sect="Gloss">
<primary>scalar context</primary>
</indexterm>

<indexterm id="INDEX-6062" file="gloss.htm" sect="Gloss">
<primary>void context</primary>
</indexterm>

<indexterm id="INDEX-6063" file="gloss.htm" sect="Gloss">
<primary>strings</primary>

  <secondary>context of</secondary>
</indexterm>

<indexterm id="INDEX-6064" file="gloss.htm" sect="Gloss">
<primary>continuation lines</primary>
</indexterm>

<indexterm id="INDEX-6065" file="gloss.htm" sect="Gloss">
<primary>core dumps</primary>
</indexterm>

<indexterm id="INDEX-6066" file="gloss.htm" sect="Gloss">
<primary>CPAN (Comprehensive Perl Archive Network)</primary>
</indexterm>

<indexterm id="INDEX-6067" file="gloss.htm" sect="Gloss">
<primary>cracker</primary>
</indexterm>

<indexterm id="INDEX-6068" file="gloss.htm" sect="Gloss">
<primary>security</primary>

  <secondary>cracking</secondary>
</indexterm>

<indexterm id="INDEX-6069" file="gloss.htm" sect="Gloss">
<primary>current package</primary>
</indexterm>

<indexterm id="INDEX-6070" file="gloss.htm" sect="Gloss">
<primary>packages</primary>

  <secondary>current package</secondary>
</indexterm>

<indexterm id="INDEX-6071" file="gloss.htm" sect="Gloss">
<primary>STDOUT filehandle</primary>
</indexterm>

<indexterm id="INDEX-6072" file="gloss.htm" sect="Gloss">
<primary>output</primary>

  <secondary>currently selected channel</secondary>
</indexterm>

<indexterm id="INDEX-6073" file="gloss.htm" sect="Gloss">
<primary>CV (internal code value)</primary>
</indexterm>

<indexterm id="INDEX-6074" file="gloss.htm" sect="Gloss">
<primary>statements</primary>

  <secondary>dangling</secondary>
</indexterm>

<indexterm id="INDEX-6075" file="gloss.htm" sect="Gloss">
<primary>dangling statements</primary>
</indexterm>

<indexterm id="INDEX-6076" file="gloss.htm" sect="Gloss">
<primary>data structures</primary>
</indexterm>

<indexterm id="INDEX-6077" file="gloss.htm" sect="Gloss">
<primary>data types</primary>
</indexterm>

<indexterm id="INDEX-6078" file="gloss.htm" sect="Gloss">
<primary>objects</primary>
</indexterm>

<indexterm id="INDEX-6079" file="gloss.htm" sect="Gloss">
<primary>datagrams</primary>
</indexterm>

<indexterm id="INDEX-6080" file="gloss.htm" sect="Gloss">
<primary>DBM files</primary>
</indexterm>

<indexterm id="INDEX-6081" file="gloss.htm" sect="Gloss">
<primary>databases</primary>

  <secondary>Data Base Management</secondary>
<see>DBM files</see>
</indexterm>

<indexterm id="INDEX-6082" file="gloss.htm" sect="Gloss">
<primary>declarations</primary>
</indexterm>

<indexterm id="INDEX-6083" file="gloss.htm" sect="Gloss">
<primary>decrementing variables</primary>
</indexterm>

<indexterm id="INDEX-6084" file="gloss.htm" sect="Gloss">
<primary>default values</primary>
</indexterm>

<indexterm id="INDEX-6085" file="gloss.htm" sect="Gloss">
<primary>defined function</primary>
</indexterm>

<indexterm id="INDEX-6086" file="gloss.htm" sect="Gloss">
<primary>definitions</primary>
</indexterm>

<indexterm id="INDEX-6087" file="gloss.htm" sect="Gloss">
<primary>delimiters</primary>
</indexterm>

<indexterm id="INDEX-6088" file="gloss.htm" sect="Gloss">
<primary>dereferencing</primary>
</indexterm>

<indexterm id="INDEX-6089" file="gloss.htm" sect="Gloss">
<primary>derived classes</primary>
</indexterm>

<indexterm id="INDEX-6090" file="gloss.htm" sect="Gloss">
<primary>classes</primary>

  <secondary>derived</secondary>
<see>derived classes</see>
</indexterm>

<indexterm id="INDEX-6091" file="gloss.htm" sect="Gloss">
<primary>descriptors</primary>
<see>file descriptors</see>
</indexterm>

<indexterm id="INDEX-6092" file="gloss.htm" sect="Gloss">
<primary>destructors</primary>
</indexterm>

<indexterm id="INDEX-6093" file="gloss.htm" sect="Gloss">
<primary>destructors</primary>
</indexterm>

<indexterm id="INDEX-6094" file="gloss.htm" sect="Gloss">
<primary>hardware devices</primary>
</indexterm>

<indexterm id="INDEX-6095" file="gloss.htm" sect="Gloss">
<primary>devices (hardware)</primary>
</indexterm>

<indexterm id="INDEX-6096" file="gloss.htm" sect="Gloss">
<primary>directives (pod)</primary>
</indexterm>

<indexterm id="INDEX-6097" file="gloss.htm" sect="Gloss">
<primary>pod</primary>

  <secondary>directives</secondary>
</indexterm>

<indexterm id="INDEX-6098" file="gloss.htm" sect="Gloss">
<primary>directories</primary>

  <secondary>handles</secondary>
</indexterm>

<indexterm id="INDEX-6099" file="gloss.htm" sect="Gloss">
<primary>handles</primary>

  <secondary>directories</secondary>
</indexterm>

<indexterm id="INDEX-6100" file="gloss.htm" sect="Gloss">
<primary>dweomer</primary>
</indexterm>

<indexterm id="INDEX-6101" file="gloss.htm" sect="Gloss">
<primary>dwimmer</primary>
</indexterm>

<indexterm id="INDEX-6102" file="gloss.htm" sect="Gloss">
<primary>dynamic scoping</primary>
</indexterm>

<indexterm id="INDEX-6103" file="gloss.htm" sect="Gloss">
<primary>scopes</primary>

  <secondary>dynamic</secondary>
</indexterm>

<indexterm id="INDEX-6104" file="gloss.htm" sect="Gloss">
<primary>elements in arrays</primary>
</indexterm>

<indexterm id="INDEX-6105" file="gloss.htm" sect="Gloss">
<primary>embedding Perl</primary>
</indexterm>

<indexterm id="INDEX-6106" file="gloss.htm" sect="Gloss">
<primary>empty subclass test</primary>
</indexterm>

<indexterm id="INDEX-6107" file="gloss.htm" sect="Gloss">
<primary>derived classes</primary>

  <secondary>empty subclass test</secondary>
</indexterm>

<indexterm id="INDEX-6108" file="gloss.htm" sect="Gloss">
<primary>values</primary>

  <secondary>changing while copying</secondary>
</indexterm>

<indexterm id="INDEX-6109" file="gloss.htm" sect="Gloss">
<primary>encapsulation</primary>
</indexterm>

<indexterm id="INDEX-6110" file="gloss.htm" sect="Gloss">
<primary>environment</primary>
</indexterm>

<indexterm id="INDEX-6111" file="gloss.htm" sect="Gloss">
<primary>environment variables</primary>
</indexterm>

<indexterm id="INDEX-6112" file="gloss.htm" sect="Gloss">
<primary>EOF (end-of-file)</primary>
</indexterm>

<indexterm id="INDEX-6113" file="gloss.htm" sect="Gloss">
<primary>here documents</primary>

  <secondary>end-of-file</secondary>
</indexterm>

<indexterm id="INDEX-6114" file="gloss.htm" sect="Gloss">
<primary>files</primary>

  <secondary>end-of-file (EOF)</secondary>
</indexterm>

<indexterm id="INDEX-6115" file="gloss.htm" sect="Gloss">
<primary>errno</primary>
</indexterm>

<indexterm id="INDEX-6116" file="gloss.htm" sect="Gloss">
<primary>errno</primary>
<seealso>dollar sign, $! under Symbols; $OS_ERROR</seealso>
</indexterm>

<indexterm id="INDEX-6117" file="gloss.htm" sect="Gloss">
<primary>errors</primary>

  <secondary>number (errno)</secondary>
</indexterm>

<indexterm id="INDEX-6118" file="gloss.htm" sect="Gloss">
<primary>exceptions</primary>
</indexterm>

<indexterm id="INDEX-6119" file="gloss.htm" sect="Gloss">
<primary>fatal errors</primary>
</indexterm>

<indexterm id="INDEX-6120" file="gloss.htm" sect="Gloss">
<primary>exec function</primary>
</indexterm>

<indexterm id="INDEX-6121" file="gloss.htm" sect="Gloss">
<primary>files</primary>

  <secondary>executable</secondary>
</indexterm>

<indexterm id="INDEX-6122" file="gloss.htm" sect="Gloss">
<primary>executable files</primary>
</indexterm>

<indexterm id="INDEX-6123" file="gloss.htm" sect="Gloss">
<primary>programs</primary>

  <secondary>executing</secondary>
</indexterm>

<indexterm id="INDEX-6124" file="gloss.htm" sect="Gloss">
<primary>subroutines</primary>

  <secondary>executing</secondary>
</indexterm>

<indexterm id="INDEX-6125" file="gloss.htm" sect="Gloss">
<primary>execute bit</primary>
</indexterm>

<indexterm id="INDEX-6126" file="gloss.htm" sect="Gloss">
<primary>bits</primary>

  <secondary>execute bits</secondary>
</indexterm>

<indexterm id="INDEX-6127" file="gloss.htm" sect="Gloss">
<primary>exporting symbols</primary>
</indexterm>

<indexterm id="INDEX-6128" file="gloss.htm" sect="Gloss">
<primary>expressions</primary>
</indexterm>

<indexterm id="INDEX-6129" file="gloss.htm" sect="Gloss">
<primary>extending Perl</primary>

  <secondary>extensions, creating</secondary>
</indexterm>

<indexterm id="INDEX-6130" file="gloss.htm" sect="Gloss">
<primary>false values</primary>
</indexterm>

<indexterm id="INDEX-6131" file="gloss.htm" sect="Gloss">
<primary>quotation marks</primary>

  <secondary>false values</secondary>
</indexterm>

<indexterm id="INDEX-6132" file="gloss.htm" sect="Gloss">
<primary>fatal errors</primary>
</indexterm>

<indexterm id="INDEX-6133" file="gloss.htm" sect="Gloss">
<primary>exceptions</primary>

  <secondary>fatal errors, causing</secondary>
</indexterm>

<indexterm id="INDEX-6134" file="gloss.htm" sect="Gloss">
<primary>die function</primary>

  <secondary>fatal errors, causing</secondary>
</indexterm>

<indexterm id="INDEX-6135" file="gloss.htm" sect="Gloss">
<primary>field separator, specifying different</primary>
</indexterm>

<indexterm id="INDEX-6136" file="gloss.htm" sect="Gloss">
<primary>split function</primary>

  <secondary>variable-width fields, extracting with</secondary>
</indexterm>

<indexterm id="INDEX-6137" file="gloss.htm" sect="Gloss">
<primary>unpack function</primary>

  <secondary>fixed-width fields, use with</secondary>
</indexterm>

<indexterm id="INDEX-6138" file="gloss.htm" sect="Gloss">
<primary>FIFOs</primary>
</indexterm>

<indexterm id="INDEX-6139" file="gloss.htm" sect="Gloss">
<primary>files</primary>
</indexterm>

<indexterm id="INDEX-6140" file="gloss.htm" sect="Gloss">
<primary>filesystems</primary>
</indexterm>

<indexterm id="INDEX-6141" file="gloss.htm" sect="Gloss">
<primary>file descriptors</primary>
</indexterm>

<indexterm id="INDEX-6142" file="gloss.htm" sect="Gloss">
<primary>file tests</primary>
</indexterm>

<indexterm id="INDEX-6143" file="gloss.htm" sect="Gloss">
<primary>filehandles</primary>
</indexterm>

<indexterm id="INDEX-6144" file="gloss.htm" sect="Gloss">
<primary>filenames</primary>
</indexterm>

<indexterm id="INDEX-6145" file="gloss.htm" sect="Gloss">
<primary>filesystems</primary>
</indexterm>

<indexterm id="INDEX-6146" file="gloss.htm" sect="Gloss">
<primary>filters</primary>
</indexterm>

<indexterm id="INDEX-6147" file="gloss.htm" sect="Gloss">
<primary>flags</primary>
</indexterm>

<indexterm id="INDEX-6148" file="gloss.htm" sect="Gloss">
<primary>flags</primary>
<seealso>modifiers; switches</seealso>
</indexterm>

<indexterm id="INDEX-6149" file="gloss.htm" sect="Gloss">
<primary>floating-point numbers</primary>
</indexterm>

<indexterm id="INDEX-6150" file="gloss.htm" sect="Gloss">
<primary>numbers</primary>

  <secondary>floating-point</secondary>
<see>floating-point numbers</see>
</indexterm>

<indexterm id="INDEX-6151" file="gloss.htm" sect="Gloss">
<primary>flushing buffers</primary>
</indexterm>

<indexterm id="INDEX-6152" file="gloss.htm" sect="Gloss">
<primary>FMTEYEWTK (Far More Than Everything You Ever Wanted to Know)</primary>
</indexterm>

<indexterm id="INDEX-6153" file="gloss.htm" sect="Gloss">
<primary>fork function</primary>
</indexterm>

<indexterm id="INDEX-6154" file="gloss.htm" sect="Gloss">
<primary>formal arguments</primary>
</indexterm>

<indexterm id="INDEX-6155" file="gloss.htm" sect="Gloss">
<primary>arguments</primary>

  <secondary>formal</secondary>
</indexterm>

<indexterm id="INDEX-6156" file="gloss.htm" sect="Gloss">
<primary sortas="ARGV variable">$ARGV variable</primary>
</indexterm>

<indexterm id="INDEX-6157" file="gloss.htm" sect="Gloss">
<primary>formats</primary>
</indexterm>

<indexterm id="INDEX-6158" file="gloss.htm" sect="Gloss">
<primary>freeware</primary>
</indexterm>

<indexterm id="INDEX-6159" file="gloss.htm" sect="Gloss">
<primary>functions</primary>
</indexterm>

<indexterm id="INDEX-6160" file="gloss.htm" sect="Gloss">
<primary>characters</primary>

  <secondary>funny characters preceding variable names</secondary>
</indexterm>

<indexterm id="INDEX-6161" file="gloss.htm" sect="Gloss">
<primary>funny characters</primary>
</indexterm>

<indexterm id="INDEX-6162" file="gloss.htm" sect="Gloss">
<primary>garbage collection</primary>

  <secondary sortas="globals">of globals</secondary>
</indexterm>

<indexterm id="INDEX-6163" file="gloss.htm" sect="Gloss">
<primary>identifiers</primary>

  <secondary>GID (group ID)</secondary>
</indexterm>

<indexterm id="INDEX-6164" file="gloss.htm" sect="Gloss">
<primary>GID (group ID)</primary>
</indexterm>

<indexterm id="INDEX-6165" file="gloss.htm" sect="Gloss">
<primary>globbing filenames</primary>
</indexterm>

<indexterm id="INDEX-6166" file="gloss.htm" sect="Gloss">
<primary>global (variables)</primary>
</indexterm>

<indexterm id="INDEX-6167" file="gloss.htm" sect="Gloss">
<primary>variables</primary>

  <secondary>global</secondary>
<see>global</see>
</indexterm>

<indexterm id="INDEX-6168" file="gloss.htm" sect="Gloss">
<primary>glue language, Perl as</primary>
</indexterm>

<indexterm id="INDEX-6169" file="gloss.htm" sect="Gloss">
<primary>greedy matching</primary>
</indexterm>

<indexterm id="INDEX-6170" file="gloss.htm" sect="Gloss">
<primary>grep utility</primary>
</indexterm>

<indexterm id="INDEX-6171" file="gloss.htm" sect="Gloss">
<primary>groups</primary>

  <secondary>users</secondary>
</indexterm>

<indexterm id="INDEX-6172" file="gloss.htm" sect="Gloss">
<primary>users</primary>

  <secondary>groups of</secondary>
</indexterm>

<indexterm id="INDEX-6173" file="gloss.htm" sect="Gloss">
<primary>users</primary>

  <secondary>groups of</secondary>
<seealso>GID; groups</seealso>
</indexterm>

<indexterm id="INDEX-6174" file="gloss.htm" sect="Gloss">
<primary>GV (internal glob value)</primary>
</indexterm>

<indexterm id="INDEX-6175" file="gloss.htm" sect="Gloss">
<primary>hacker</primary>
</indexterm>

<indexterm id="INDEX-6176" file="gloss.htm" sect="Gloss">
<primary>handlers</primary>
</indexterm>

<indexterm id="INDEX-6177" file="gloss.htm" sect="Gloss">
<primary>hard references</primary>
</indexterm>

<indexterm id="INDEX-6178" file="gloss.htm" sect="Gloss">
<primary>references</primary>

  <secondary>hard</secondary>
</indexterm>

<indexterm id="INDEX-6179" file="gloss.htm" sect="Gloss">
<primary>references</primary>

  <secondary>hard</secondary>
<seealso>hard references</seealso>
</indexterm>

<indexterm id="INDEX-6180" file="gloss.htm" sect="Gloss">
<primary>hashes</primary>
</indexterm>

<indexterm id="INDEX-6181" file="gloss.htm" sect="Gloss">
<primary>key/value pairs</primary>
<see>hashes, key/value pairs</see>
</indexterm>

<indexterm id="INDEX-6182" file="gloss.htm" sect="Gloss">
<primary>header files</primary>
</indexterm>

<indexterm id="INDEX-6183" file="gloss.htm" sect="Gloss">
<primary>header files</primary>
<seealso>modules</seealso>
</indexterm>

<indexterm id="INDEX-6184" file="gloss.htm" sect="Gloss">
<primary sortas="C7">C language</primary>

  <secondary>header files</secondary>
</indexterm>

<indexterm id="INDEX-6185" file="gloss.htm" sect="Gloss">
<primary>here documents</primary>
</indexterm>

<indexterm id="INDEX-6186" file="gloss.htm" sect="Gloss">
<primary>hexadecimal</primary>
</indexterm>

<indexterm id="INDEX-6187" file="gloss.htm" sect="Gloss">
<primary>home directory</primary>
</indexterm>

<indexterm id="INDEX-6188" file="gloss.htm" sect="Gloss">
<primary>hosts</primary>
</indexterm>

<indexterm id="INDEX-6189" file="gloss.htm" sect="Gloss">
<primary>hubris</primary>
</indexterm>

<indexterm id="INDEX-6190" file="gloss.htm" sect="Gloss">
<primary>HV (internal hash value)</primary>
</indexterm>

<indexterm id="INDEX-6191" file="gloss.htm" sect="Gloss">
<primary>identifiers</primary>
</indexterm>

<indexterm id="INDEX-6192" file="gloss.htm" sect="Gloss">
<primary>impatience</primary>
</indexterm>

<indexterm id="INDEX-6193" file="gloss.htm" sect="Gloss">
<primary>import method</primary>
</indexterm>

<indexterm id="INDEX-6194" file="gloss.htm" sect="Gloss">
<primary>index function</primary>
</indexterm>

<indexterm id="INDEX-6195" file="gloss.htm" sect="Gloss">
<primary>indirect filehandles</primary>
</indexterm>

<indexterm id="INDEX-6196" file="gloss.htm" sect="Gloss">
<primary>filehandles</primary>

  <secondary>indirect</secondary>
</indexterm>

<indexterm id="INDEX-6197" file="gloss.htm" sect="Gloss">
<primary>indirect objects</primary>
</indexterm>

<indexterm id="INDEX-6198" file="gloss.htm" sect="Gloss">
<primary>objects</primary>

  <secondary>indirect</secondary>
<see>indirect objects</see>
</indexterm>

<indexterm id="INDEX-6199" file="gloss.htm" sect="Gloss">
<primary>indirection</primary>
</indexterm>

<indexterm id="INDEX-6200" file="gloss.htm" sect="Gloss">
<primary>indirection</primary>
<seealso>hard references; symbolic references</seealso>
</indexterm>

<indexterm id="INDEX-6201" file="gloss.htm" sect="Gloss">
<primary>infix operators</primary>
</indexterm>

<indexterm id="INDEX-6202" file="gloss.htm" sect="Gloss">
<primary>inheritance</primary>
</indexterm>

<indexterm id="INDEX-6203" file="gloss.htm" sect="Gloss">
<primary>instances</primary>
</indexterm>

<indexterm id="INDEX-6204" file="gloss.htm" sect="Gloss">
<primary>instance data</primary>
</indexterm>

<indexterm id="INDEX-6205" file="gloss.htm" sect="Gloss">
<primary>integers</primary>
</indexterm>

<indexterm id="INDEX-6206" file="gloss.htm" sect="Gloss">
<primary>numbers</primary>

  <secondary>integers</secondary>
<see>integers</see>
</indexterm>

<indexterm id="INDEX-6207" file="gloss.htm" sect="Gloss">
<primary>interfaces</primary>
</indexterm>

<indexterm id="INDEX-6208" file="gloss.htm" sect="Gloss">
<primary>interpolation, variable</primary>
</indexterm>

<indexterm id="INDEX-6209" file="gloss.htm" sect="Gloss">
<primary>interpreter, Perl</primary>
</indexterm>

<indexterm id="INDEX-6210" file="gloss.htm" sect="Gloss">
<primary>invocant</primary>
</indexterm>

<indexterm id="INDEX-6211" file="gloss.htm" sect="Gloss">
<primary>I/O (input/output)</primary>
</indexterm>

<indexterm id="INDEX-6212" file="gloss.htm" sect="Gloss">
<primary>IO (internal I/O object)</primary>
</indexterm>

<indexterm id="INDEX-6213" file="gloss.htm" sect="Gloss">
<primary>IO (internal I/O object)</primary>
<seealso>indirect objects</seealso>
</indexterm>

<indexterm id="INDEX-6214" file="gloss.htm" sect="Gloss">
<primary>IP (Internet Protocol)</primary>
</indexterm>

<indexterm id="INDEX-6215" file="gloss.htm" sect="Gloss">
<primary>is-a</primary>
</indexterm>

<indexterm id="INDEX-6216" file="gloss.htm" sect="Gloss">
<primary>iteration</primary>
</indexterm>

<indexterm id="INDEX-6217" file="gloss.htm" sect="Gloss">
<primary>iteration</primary>
<seealso>loops</seealso>
</indexterm>

<indexterm id="INDEX-6218" file="gloss.htm" sect="Gloss">
<primary>loops</primary>

  <secondary>iteration through</secondary>
</indexterm>

<indexterm id="INDEX-6219" file="gloss.htm" sect="Gloss">
<primary>IV (internal integer values)</primary>
</indexterm>

<indexterm id="INDEX-6220" file="gloss.htm" sect="Gloss">
<primary>integers</primary>

  <secondary>IV (internal integer value)</secondary>
</indexterm>

<indexterm id="INDEX-6221" file="gloss.htm" sect="Gloss">
<primary>JAPH (Just Another Perl Hacker)</primary>
</indexterm>

<indexterm id="INDEX-6222" file="gloss.htm" sect="Gloss">
<primary>hashes</primary>

  <secondary>keys</secondary>
</indexterm>

<indexterm id="INDEX-6223" file="gloss.htm" sect="Gloss">
<primary>keywords</primary>
<see>reserved words</see>
</indexterm>

<indexterm id="INDEX-6224" file="gloss.htm" sect="Gloss">
<primary>labels</primary>
</indexterm>

<indexterm id="INDEX-6225" file="gloss.htm" sect="Gloss">
<primary>statements</primary>

  <secondary>labels for</secondary>
<see>labels</see>
</indexterm>

<indexterm id="INDEX-6226" file="gloss.htm" sect="Gloss">
<primary>laziness</primary>
</indexterm>

<indexterm id="INDEX-6227" file="gloss.htm" sect="Gloss">
<primary>&lt; (left angle bracket)</primary>
<secondary sortas="@leftleft">&lt;&lt; (left-shift) operator</secondary>
</indexterm>

<indexterm id="INDEX-6228" file="gloss.htm" sect="Gloss">
<primary>leftmost longest matching</primary>
</indexterm>

<indexterm id="INDEX-6229" file="gloss.htm" sect="Gloss">
<primary>lexer</primary>
</indexterm>

<indexterm id="INDEX-6230" file="gloss.htm" sect="Gloss">
<primary>lexical analysis</primary>
</indexterm>

<indexterm id="INDEX-6231" file="gloss.htm" sect="Gloss">
<primary>lexical scopes</primary>
</indexterm>

<indexterm id="INDEX-6232" file="gloss.htm" sect="Gloss">
<primary>lexical variables</primary>
</indexterm>

<indexterm id="INDEX-6233" file="gloss.htm" sect="Gloss">
<primary>libraries</primary>
</indexterm>

<indexterm id="INDEX-6234" file="gloss.htm" sect="Gloss">
<primary>LIFO (Last In, First Out)</primary>
</indexterm>

<indexterm id="INDEX-6235" file="gloss.htm" sect="Gloss">
<primary>lines</primary>
</indexterm>

<indexterm id="INDEX-6236" file="gloss.htm" sect="Gloss">
<primary>buffering</primary>

  <secondary>line</secondary>
</indexterm>

<indexterm id="INDEX-6237" file="gloss.htm" sect="Gloss">
<primary>line numbers</primary>
</indexterm>

<indexterm id="INDEX-6238" file="gloss.htm" sect="Gloss">
<primary>links</primary>
</indexterm>

<indexterm id="INDEX-6239" file="gloss.htm" sect="Gloss">
<primary>lists</primary>
</indexterm>

<indexterm id="INDEX-6240" file="gloss.htm" sect="Gloss">
<primary>list context</primary>
</indexterm>

<indexterm id="INDEX-6241" file="gloss.htm" sect="Gloss">
<primary>list operators</primary>
</indexterm>

<indexterm id="INDEX-6242" file="gloss.htm" sect="Gloss">
<primary>literals</primary>
</indexterm>

<indexterm id="INDEX-6243" file="gloss.htm" sect="Gloss">
<primary>little-endian</primary>
</indexterm>

<indexterm id="INDEX-6244" file="gloss.htm" sect="Gloss">
<primary>bytes</primary>

  <secondary>storage locations</secondary>
<see>big-endian; little-endian</see>
</indexterm>

<indexterm id="INDEX-6245" file="gloss.htm" sect="Gloss">
<primary>storage locations</primary>

  <secondary sortas="bytes">for bytes</secondary>
<see>big endian; little endian</see>
</indexterm>

<indexterm id="INDEX-6246" file="gloss.htm" sect="Gloss">
<primary>local</primary>
</indexterm>

<indexterm id="INDEX-6247" file="gloss.htm" sect="Gloss">
<primary>logical operators</primary>
</indexterm>

<indexterm id="INDEX-6248" file="gloss.htm" sect="Gloss">
<primary>lookahead</primary>
</indexterm>

<indexterm id="INDEX-6249" file="gloss.htm" sect="Gloss">
<primary>lookbehind</primary>
</indexterm>

<indexterm id="INDEX-6250" file="gloss.htm" sect="Gloss">
<primary>loops</primary>
</indexterm>

<indexterm id="INDEX-6251" file="gloss.htm" sect="Gloss">
<primary>loops</primary>

  <secondary>control statements in</secondary>
</indexterm>

<indexterm id="INDEX-6252" file="gloss.htm" sect="Gloss">
<primary>loops</primary>

  <secondary>labels for</secondary>
</indexterm>

<indexterm id="INDEX-6253" file="gloss.htm" sect="Gloss">
<primary>labels</primary>

  <secondary>loops and</secondary>
</indexterm>

<indexterm id="INDEX-6254" file="gloss.htm" sect="Gloss">
<primary>lvalues</primary>
</indexterm>

<indexterm id="INDEX-6255" file="gloss.htm" sect="Gloss">
<primary>storage locations</primary>

  <secondary>lvalues for</secondary>
</indexterm>

<indexterm id="INDEX-6256" file="gloss.htm" sect="Gloss">
<primary>storage locations</primary>

  <secondary>lvalues for</secondary>
<seealso>lvalues</seealso>
</indexterm>

<indexterm id="INDEX-6257" file="gloss.htm" sect="Gloss">
<primary>magic</primary>
</indexterm>

<indexterm id="INDEX-6258" file="gloss.htm" sect="Gloss">
<primary>Makefile</primary>
</indexterm>

<indexterm id="INDEX-6259" file="gloss.htm" sect="Gloss">
<primary>man command</primary>
</indexterm>

<indexterm id="INDEX-6260" file="gloss.htm" sect="Gloss">
<primary>man command</primary>
<seealso>perldoc</seealso>
</indexterm>

<indexterm id="INDEX-6261" file="gloss.htm" sect="Gloss">
<primary>manpages</primary>
</indexterm>

<indexterm id="INDEX-6262" file="gloss.htm" sect="Gloss">
<primary>memory</primary>
</indexterm>

<indexterm id="INDEX-6263" file="gloss.htm" sect="Gloss">
<primary>metacharacters</primary>
</indexterm>

<indexterm id="INDEX-6264" file="gloss.htm" sect="Gloss">
<primary>metasymbols</primary>
</indexterm>

<indexterm id="INDEX-6265" file="gloss.htm" sect="Gloss">
<primary>multidimensional arrays</primary>
</indexterm>

<indexterm id="INDEX-6266" file="gloss.htm" sect="Gloss">
<primary>arrays</primary>

  <secondary>multidimensional</secondary>
</indexterm>

<indexterm id="INDEX-6267" file="gloss.htm" sect="Gloss">
<primary>multiple inheritance</primary>
</indexterm>

<indexterm id="INDEX-6268" file="gloss.htm" sect="Gloss">
<primary>named</primary>

  <secondary>pipes</secondary>
</indexterm>

<indexterm id="INDEX-6269" file="gloss.htm" sect="Gloss">
<primary>pipes</primary>

  <secondary>named</secondary>
</indexterm>

<indexterm id="INDEX-6270" file="gloss.htm" sect="Gloss">
<primary>namespaces</primary>
</indexterm>

<indexterm id="INDEX-6271" file="gloss.htm" sect="Gloss">
<primary>NFS (network filesystems)</primary>
</indexterm>

<indexterm id="INDEX-6272" file="gloss.htm" sect="Gloss">
<primary>networking</primary>

  <secondary>network filesystems</secondary>
<see>NFS</see>
</indexterm>

<indexterm id="INDEX-6273" file="gloss.htm" sect="Gloss">
<primary>lists</primary>

  <secondary>null</secondary>
</indexterm>

<indexterm id="INDEX-6274" file="gloss.htm" sect="Gloss">
<primary>null</primary>

  <secondary>values</secondary>
</indexterm>

<indexterm id="INDEX-6275" file="gloss.htm" sect="Gloss">
<primary>offsets</primary>
</indexterm>

<indexterm id="INDEX-6276" file="gloss.htm" sect="Gloss">
<primary>one-liners</primary>
</indexterm>

<indexterm id="INDEX-6277" file="gloss.htm" sect="Gloss">
<primary>programs</primary>

  <secondary>one-liners</secondary>
</indexterm>

<indexterm id="INDEX-6278" file="gloss.htm" sect="Gloss">
<primary>open source software</primary>
</indexterm>

<indexterm id="INDEX-6279" file="gloss.htm" sect="Gloss">
<primary>operating systems</primary>
</indexterm>

<indexterm id="INDEX-6280" file="gloss.htm" sect="Gloss">
<primary>operators</primary>
</indexterm>

<indexterm id="INDEX-6281" file="gloss.htm" sect="Gloss">
<primary>operators</primary>

  <secondary>overloadable</secondary>
</indexterm>

<indexterm id="INDEX-6282" file="gloss.htm" sect="Gloss">
<primary>overloading</primary>
</indexterm>

<indexterm id="INDEX-6283" file="gloss.htm" sect="Gloss">
<primary>packages</primary>
</indexterm>

<indexterm id="INDEX-6284" file="gloss.htm" sect="Gloss">
<primary>polymorphism</primary>
</indexterm>

<indexterm id="INDEX-6285" file="gloss.htm" sect="Gloss">
<primary>ports</primary>
</indexterm>

<indexterm id="INDEX-6286" file="gloss.htm" sect="Gloss">
<primary>precedence</primary>
</indexterm>

<indexterm id="INDEX-6287" file="gloss.htm" sect="Gloss">
<primary>preprocessing Perl</primary>
</indexterm>

<indexterm id="INDEX-6288" file="gloss.htm" sect="Gloss">
<primary>prototypes</primary>
</indexterm>

<indexterm id="INDEX-6289" file="gloss.htm" sect="Gloss">
<primary>pumpkins and pumpkings</primary>
</indexterm>

<indexterm id="INDEX-6290" file="gloss.htm" sect="Gloss">
<primary>scalars</primary>
</indexterm>

<indexterm id="INDEX-6291" file="gloss.htm" sect="Gloss">
<primary>scopes</primary>
</indexterm>

<indexterm id="INDEX-6292" file="gloss.htm" sect="Gloss">
<primary>semaphores</primary>
</indexterm>

<indexterm id="INDEX-6293" file="gloss.htm" sect="Gloss">
<primary>sh (Bourne shell)</primary>
</indexterm>

<indexterm id="INDEX-6294" file="gloss.htm" sect="Gloss">
<primary>shells</primary>
</indexterm>

<indexterm id="INDEX-6295" file="gloss.htm" sect="Gloss">
<primary>slurping files</primary>
</indexterm>

<indexterm id="INDEX-6296" file="gloss.htm" sect="Gloss">
<primary>subscripting</primary>
</indexterm>

<indexterm id="INDEX-6297" file="gloss.htm" sect="Gloss">
<primary>s/// (substitution) operator</primary>
</indexterm>

<indexterm id="INDEX-6298" file="gloss.htm" sect="Gloss">
<primary>substrings</primary>
</indexterm>

<indexterm id="INDEX-6299" file="gloss.htm" sect="Gloss">
<primary>superuser</primary>
</indexterm>

<indexterm id="INDEX-6300" file="gloss.htm" sect="Gloss">
<primary>root user</primary>
</indexterm>

<indexterm id="INDEX-6301" file="gloss.htm" sect="Gloss">
<primary>switch statement</primary>
</indexterm>

<indexterm id="INDEX-6302" file="gloss.htm" sect="Gloss">
<primary>symbolic debugging</primary>
</indexterm>

<indexterm id="INDEX-6303" file="gloss.htm" sect="Gloss">
<primary>symbolic debugging</primary>
<seealso>debugging</seealso>
</indexterm>

<indexterm id="INDEX-6304" file="gloss.htm" sect="Gloss">
<primary>debugging</primary>

  <secondary>symbolic</secondary>
</indexterm>

<indexterm id="INDEX-6305" file="gloss.htm" sect="Gloss">
<primary>symbolic references</primary>
</indexterm>

<indexterm id="INDEX-6306" file="gloss.htm" sect="Gloss">
<primary>synchronization</primary>
</indexterm>

<indexterm id="INDEX-6307" file="gloss.htm" sect="Gloss">
<primary>syntactic sugar</primary>
</indexterm>

<indexterm id="INDEX-6308" file="gloss.htm" sect="Gloss">
<primary>syntax</primary>
</indexterm>

<indexterm id="INDEX-6309" file="gloss.htm" sect="Gloss">
<primary>syscalls</primary>
</indexterm>

<indexterm id="INDEX-6310" file="gloss.htm" sect="Gloss">
<primary>taint checking</primary>
</indexterm>

<indexterm id="INDEX-6311" file="gloss.htm" sect="Gloss">
<primary>TCP</primary>
</indexterm>

<indexterm id="INDEX-6312" file="gloss.htm" sect="Gloss">
<primary>terms</primary>
</indexterm>

<indexterm id="INDEX-6313" file="gloss.htm" sect="Gloss">
<primary>trinary operator</primary>
</indexterm>

<indexterm id="INDEX-6314" file="gloss.htm" sect="Gloss">
<primary>troff</primary>
</indexterm>

<indexterm id="INDEX-6315" file="gloss.htm" sect="Gloss">
<primary>true values</primary>
</indexterm>

<indexterm id="INDEX-6316" file="gloss.htm" sect="Gloss">
<primary>truncating</primary>
</indexterm>

<indexterm id="INDEX-6317" file="gloss.htm" sect="Gloss">
<primary>casting</primary>

  <secondary>data types</secondary>
</indexterm>

<indexterm id="INDEX-6318" file="gloss.htm" sect="Gloss">
<primary>lexical variables</primary>

  <secondary>typed</secondary>
</indexterm>

<indexterm id="INDEX-6319" file="gloss.htm" sect="Gloss">
<primary>typedefs (C language)</primary>
</indexterm>

<indexterm id="INDEX-6320" file="gloss.htm" sect="Gloss">
<primary>UDP</primary>
</indexterm>

<indexterm id="INDEX-6321" file="gloss.htm" sect="Gloss">
<primary>umask function</primary>
</indexterm>

<indexterm id="INDEX-6322" file="gloss.htm" sect="Gloss">
<primary>Unix</primary>
</indexterm>

<indexterm id="INDEX-6323" file="gloss.htm" sect="Gloss">
<primary>v-strings (vector or version)</primary>
</indexterm>

<indexterm id="INDEX-6324" file="gloss.htm" sect="Gloss">
<primary>warnings</primary>
</indexterm>

<indexterm id="INDEX-6325" file="gloss.htm" sect="Gloss">
<primary>watch expressions</primary>
</indexterm>

<indexterm id="INDEX-6326" file="gloss.htm" sect="Gloss">
<primary>whitespace</primary>
</indexterm>

<indexterm id="INDEX-6327" file="gloss.htm" sect="Gloss">
<primary>words</primary>
</indexterm>

<indexterm id="INDEX-6328" file="gloss.htm" sect="Gloss">
<primary>wrappers</primary>
</indexterm>

<indexterm id="INDEX-6329" file="gloss.htm" sect="Gloss">
<primary>zombie processes</primary>
</indexterm>

