<?xml version="1.0"?>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-PREFACE-3-ITERM-2917" file="ch00_03.htm" sect="0.3. Platform Notes">
<primary>POSIX (Portable
Operating System Interface)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-PREFACE-3-ITERM-2918" file="ch00_03.htm" sect="0.3. Platform Notes">
<primary>Portable Operating System
Interface</primary>
<see>POSIX</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2919" file="ch01_01.htm" sect="1.. Introduction">
<primary>strings</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2920" file="ch01_01.htm" sect="1.. Introduction">
<primary>text</primary>
<seealso>strings</seealso>
<see>also
strings</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2921" file="ch01_01.htm" sect="1.. Introduction">
<primary>variables</primary>
<secondary>strings</secondary>
<see>strings</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2922" file="ch01_01.htm" sect="1.. Introduction">
<primary>scalars</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2923" file="ch01_01.htm" sect="1.. Introduction">
<primary>undefined values</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2924" file="ch01_01.htm" sect="1.. Introduction">
<primary>values</primary>
<secondary>definedness</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2925" file="ch01_01.htm" sect="1.. Introduction">
<primary>definedness</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2926" file="ch01_01.htm" sect="1.. Introduction">
<primary>false values</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2927" file="ch01_01.htm" sect="1.. Introduction">
<primary>empty</primary>
<secondary>strings
(&quot;&quot;)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2928" file="ch01_01.htm" sect="1.. Introduction">
<primary>values</primary>
<secondary>false</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2929" file="ch01_01.htm" sect="1.. Introduction">
<primary>single quote (')</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2930" file="ch01_01.htm" sect="1.. Introduction">
<primary>' (single quote)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2931" file="ch01_01.htm" sect="1.. Introduction">
<primary>double quote (&quot;)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2932" file="ch01_01.htm" sect="1.. Introduction">
<primary>&quot; (double quote)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2933" file="ch01_01.htm" sect="1.. Introduction">
<primary>here documents</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2934" file="ch01_01.htm" sect="1.. Introduction">
<primary>q// operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2935" file="ch01_01.htm" sect="1.. Introduction">
<primary>qq// operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2936" file="ch01_01.htm" sect="1.. Introduction">
<primary>delimiters</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2937" file="ch01_01.htm" sect="1.. Introduction">
<primary>[] (square brackets)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2938" file="ch01_01.htm" sect="1.. Introduction">
<primary>square brackets ([])</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2939" file="ch01_01.htm" sect="1.. Introduction">
<primary>{} (curly braces)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2940" file="ch01_01.htm" sect="1.. Introduction">
<primary>curly braces ({})</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2941" file="ch01_01.htm" sect="1.. Introduction">
<primary>( ) (parentheses)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2942" file="ch01_01.htm" sect="1.. Introduction">
<primary>parentheses ( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2943" file="ch01_01.htm" sect="1.. Introduction">
<primary>&lt;&gt; (angle
brackets)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2944" file="ch01_01.htm" sect="1.. Introduction">
<primary>angle brackets
(&lt;&gt;)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2945" file="ch01_01.htm" sect="1.. The Universal Character Code">
<primary>strings</primary>
<secondary>universal character
code</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2946" file="ch01_01.htm" sect="1.. The Universal Character Code">
<primary>universal character
code</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2947" file="ch01_01.htm" sect="1.. The Universal Character Code">
<primary>octets</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2948" file="ch01_01.htm" sect="1.. The Universal Character Code">
<primary>ASCII (American Standard Code for Information
Interchange)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2949" file="ch01_01.htm" sect="1.. The Universal Character Code">
<primary>American
Standard Code for Information
Interchange</primary>
<see>ASCII</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2950" file="ch01_01.htm" sect="1.. Unicode Support in Perl">
<primary>strings</primary>
<secondary>Unicode</secondary>
<tertiary>support
in Perl</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2951" file="ch01_01.htm" sect="1.. Unicode Support in Perl">
<primary>Unicode</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2952" file="ch01_01.htm" sect="1.. Unicode Support in Perl">
<primary>code points,
Unicode</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2953" file="ch01_01.htm" sect="1.. Unicode Support in Perl">
<primary>internationalization</primary>
<secondary>Unicode</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2954" file="ch01_01.htm" sect="1.. Unicode Support in Perl">
<primary>UTF-8</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2955" file="ch01_02.htm" sect="1.1.1. Problem">
<primary>substrings</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2956" file="ch01_02.htm" sect="1.1.1. Problem">
<primary>strings</primary>
<secondary>accessing
substrings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2957" file="ch01_02.htm" sect="1.1.2. Solution">
<primary>substr( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2958" file="ch01_02.htm" sect="1.1.2. Solution">
<primary>unpack( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2959" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>lvaluable functions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2960" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>functions</primary>
<secondary>types
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2961" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>= (equals sign)</primary>
<secondary>=~
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2962" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>equals sign
(=)</primary>
<secondary>=~ operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2963" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>s/// operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2964" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>m// operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2965" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>tr/// operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2966" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>substr( )</primary>
<secondary>operators to use
with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2967" file="ch01_02.htm" sect="1.1.3. Discussion">
<primary>columns</primary>
<secondary>parsing data
by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2970" file="ch01_03.htm" sect="1.2.1. Problem">
<primary>variables</primary>
<secondary>default
values for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2971" file="ch01_03.htm" sect="1.2.1. Problem">
<primary>default values for
variables</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2972" file="ch01_03.htm" sect="1.2.1. Problem">
<primary>values</primary>
<seealso>numbers strings
variables</seealso>
<see>also numbers strings
variables</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2973" file="ch01_03.htm" sect="1.2.2. Solution">
<primary>| (vertical bar)</primary>
<secondary>||=
(assignment) operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2974" file="ch01_03.htm" sect="1.2.2. Solution">
<primary>vertical bar (|)</primary>
<secondary>||=
(assignment) operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2975" file="ch01_03.htm" sect="1.2.2. Solution">
<primary>assignment (||=)
operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2976" file="ch01_03.htm" sect="1.2.3. Discussion">
<primary>defined operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2977" file="ch01_03.htm" sect="1.2.3. Discussion">
<primary>definedness</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2978" file="ch01_03.htm" sect="1.2.3. Discussion">
<primary>values</primary>
<secondary>definedness</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2979" file="ch01_03.htm" sect="1.2.3. Discussion">
<primary>&amp; (ampersand), &amp;&amp;
operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2980" file="ch01_03.htm" sect="1.2.3. Discussion">
<primary>ampersand (&amp;),
&amp;&amp; operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2981" file="ch01_03.htm" sect="1.2.3. Discussion">
<primary>or operator, vs. ||
operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2982" file="ch01_03.htm" sect="1.2.3. Discussion">
<primary>| (vertical
bar)</primary>
<secondary>|| operator</secondary>
<tertiary sortas="or operator">vs. or operator</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2983" file="ch01_03.htm" sect="1.2.3. Discussion">
<primary>vertical bar (|)</primary>
<secondary>||
operator</secondary>
<tertiary sortas="or operator">vs. or
operator</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2986" file="ch01_04.htm" sect="1.3.1. Problem">
<primary>scalars</primary>
<secondary>exchanging values
between</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2987" file="ch01_04.htm" sect="1.3.1. Problem">
<primary>values</primary>
<secondary>exchanging between
scalar variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2988" file="ch01_04.htm" sect="1.3.1. Problem">
<primary>variables</primary>
<secondary>scalars</secondary>
<see>scalars</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2989" file="ch01_04.htm" sect="1.3.2. Solution">
<primary>list assignment</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2990" file="ch01_04.htm" sect="1.3.2. Solution">
<primary>assignment, list</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2991" file="ch01_05.htm" sect="1.4.1. Problem">
<primary>values</primary>
<secondary>converting
strings between</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2992" file="ch01_05.htm" sect="1.4.1. Problem">
<primary>strings</primary>
<secondary>converting</secondary>
<tertiary>characters
and values</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2993" file="ch01_05.htm" sect="1.4.1. Problem">
<primary>characters</primary>
<secondary>converting
between values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2994" file="ch01_05.htm" sect="1.4.1. Problem">
<primary>converting</primary>
<secondary>characters
and values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2995" file="ch01_05.htm" sect="1.4.1. Problem">
<primary>numbers</primary>
<secondary>converting
between characters and values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2996" file="ch01_05.htm" sect="1.4.1. Problem">
<primary>numbers</primary>
<seealso>values</seealso>
<see>also
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2997" file="ch01_05.htm" sect="1.4.1. Problem">
<primary>ASCII (American Standard
Code for Information
Interchange)</primary>
<secondary>characters</secondary>
<see>characters</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2998" file="ch01_05.htm" sect="1.4.2. Solution">
<primary>converting</primary>
<secondary>strings</secondary>
<tertiary sortas="characters and values">between characters and
values</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-2999" file="ch01_05.htm" sect="1.4.3. Discussion">
<primary>chr( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3000" file="ch01_05.htm" sect="1.4.3. Discussion">
<primary>ord( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3001" file="ch01_05.htm" sect="1.4.3. Discussion">
<primary>printf( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3002" file="ch01_05.htm" sect="1.4.3. Discussion">
<primary>sprintf( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3003" file="ch01_05.htm" sect="1.4.3. Discussion">
<primary>pack( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3004" file="ch01_05.htm" sect="1.4.3. Discussion">
<primary>unpack( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3011" file="ch01_06.htm" sect="1.5.1. Problem">
<primary>Unicode</primary>
<secondary>named characters,
using</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3012" file="ch01_06.htm" sect="1.5.3. Discussion">
<primary>use charnames pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3013" file="ch01_06.htm" sect="1.5.3. Discussion">
<primary>charnames</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3014" file="ch01_06.htm" sect="1.5.3. Discussion">
<primary>charnames</primary>
<secondary>charnames::viacode( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3015" file="ch01_06.htm" sect="1.5.3. Discussion">
<primary>charnames</primary>
<secondary>charnames::vianame( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3016" file="ch01_06.htm" sect="1.5.3. Discussion">
<primary>Unicode</primary>
<secondary>character
database</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3017" file="ch01_07.htm" sect="1.6.1. Problem">
<primary>characters</primary>
<secondary>processing
individually</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3018" file="ch01_07.htm" sect="1.6.1. Problem">
<primary>strings</primary>
<secondary>processing
characters individually</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3019" file="ch01_07.htm" sect="1.6.2. Solution">
<primary>split( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3022" file="ch01_08.htm" sect="1.7.1. Problem">
<primary>strings</primary>
<secondary>reversing elements
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3023" file="ch01_08.htm" sect="1.7.1. Problem">
<primary>characters</primary>
<secondary>reversing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3024" file="ch01_08.htm" sect="1.7.1. Problem">
<primary>words</primary>
<secondary>reversing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3025" file="ch01_08.htm" sect="1.7.1. Problem">
<primary>reversing</primary>
<secondary>words or characters
in strings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3026" file="ch01_08.htm" sect="1.7.2. Solution">
<primary>reverse( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3027" file="ch01_08.htm" sect="1.7.2. Solution">
<primary>split( )</primary>
<secondary>using
reverse( ) with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3028" file="ch01_08.htm" sect="1.7.2. Solution">
<primary>join( ), using reverse( )
with</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3029" file="ch01_09.htm" sect="1.8.1. Problem">
<primary>Unicode</primary>
<secondary>strings</secondary>
<tertiary>treating
as single characters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3030" file="ch01_09.htm" sect="1.8.1. Problem">
<primary>strings</primary>
<secondary>Unicode</secondary>
<tertiary>treating
as single characters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3031" file="ch01_09.htm" sect="1.8.3. Discussion">
<primary>diacritics</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3032" file="ch01_09.htm" sect="1.8.3. Discussion">
<primary sortas="X metacharacter">\X
metacharacter</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3033" file="ch01_09.htm" sect="1.8.3. Discussion">
<primary>\
(backslash)</primary>
<secondary>\X
metacharacter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3034" file="ch01_09.htm" sect="1.8.3. Discussion">
<primary>backslash
(\)</primary>
<secondary>\X
metacharacter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3035" file="ch01_10.htm" sect="1.9.1. Problem">
<primary>strings</primary>
<secondary>canonicalizing with
Unicode combined characters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3036" file="ch01_10.htm" sect="1.9.1. Problem">
<primary>Unicode</primary>
<secondary>combined characters,
canonicalizing strings with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3037" file="ch01_10.htm" sect="1.9.2. Solution">
<primary>NFD( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3038" file="ch01_10.htm" sect="1.9.3. Discussion">
<primary>NFC( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3039" file="ch01_10.htm" sect="1.9.3. Discussion">
<primary>NFKD( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3040" file="ch01_10.htm" sect="1.9.3. Discussion">
<primary>NFKC( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3041" file="ch01_11.htm" sect="1.10.1. Problem">
<primary>strings</primary>
<secondary>Unicode</secondary>
<tertiary>treating
as octets</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3042" file="ch01_11.htm" sect="1.10.1. Problem">
<primary>Unicode</primary>
<secondary>strings</secondary>
<tertiary>treating
as octets</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3043" file="ch01_11.htm" sect="1.10.1. Problem">
<primary>octets</primary>
<secondary>treating Unicode
strings as</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3044" file="ch01_11.htm" sect="1.10.2. Solution">
<primary>use bytes pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3045" file="ch01_12.htm" sect="1.11.1. Problem">
<primary>whitespace</primary>
<secondary>expanding and
compressing tabs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3046" file="ch01_12.htm" sect="1.11.1. Problem">
<primary>compressing tabs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3047" file="ch01_12.htm" sect="1.11.1. Problem">
<primary>expanding</primary>
<secondary>tabs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3048" file="ch01_12.htm" sect="1.11.1. Problem">
<primary>tabs</primary>
<see>whitespace</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3049" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>Text::Tabs module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3050" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>$ (dollar
sign)</primary>
<secondary>$` variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3051" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$`
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3052" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>performance</primary>
<secondary>backreferences
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3053" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>$ (dollar
sign)</primary>
<secondary>$1, $2, . . .
(backreferences)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3054" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>dollar
sign ($)</primary>
<secondary>$1, $2, . . .
(backreferences)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3055" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>backreferences</primary>
<secondary>$1, $2, . .
.</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3056" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>$ (dollar
sign)</primary>
<secondary>$&amp; variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3057" file="ch01_12.htm" sect="1.11.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$&amp;
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3058" file="ch01_13.htm" sect="1.12.1. Problem">
<primary>variables</primary>
<secondary>expanding
in user input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3059" file="ch01_13.htm" sect="1.12.1. Problem">
<primary>expanding</primary>
<secondary>variables
in user input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3060" file="ch01_13.htm" sect="1.12.1. Problem">
<primary>input</primary>
<secondary>expanding
variables in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3061" file="ch01_13.htm" sect="1.12.1. Problem">
<primary>strings</primary>
<seealso>variables</seealso>
<see>also
variables</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3062" file="ch01_13.htm" sect="1.12.2. Solution">
<primary>references</primary>
<secondary>symbolic</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3063" file="ch01_13.htm" sect="1.12.3. Discussion">
<primary>forward slash (/)</primary>
<secondary>/e
substitution modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3064" file="ch01_13.htm" sect="1.12.3. Discussion">
<primary sortas="(forward slash)">/(forward slash)</primary>
<secondary>/e substitution
modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3065" file="ch01_13.htm" sect="1.12.3. Discussion">
<primary sortas="e substitution modifier">/e
substitution modifier</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3066" file="ch01_13.htm" sect="1.12.3. Discussion">
<primary>eval( )</primary>
<secondary sortas="substitution">in substitution</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3067" file="ch01_13.htm" sect="1.12.3. Discussion">
<primary>forward slash (/)</primary>
<secondary>/x pattern
modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3068" file="ch01_13.htm" sect="1.12.3. Discussion">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>/x pattern
modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3069" file="ch01_13.htm" sect="1.12.3. Discussion">
<primary sortas="x pattern modifier">/x pattern modifier</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3073" file="ch01_14.htm" sect="1.13.1. Problem">
<primary>capitalization</primary>
<secondary>converting
case</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3074" file="ch01_14.htm" sect="1.13.1. Problem">
<primary>converting</primary>
<secondary>character
case</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3075" file="ch01_14.htm" sect="1.13.1. Problem">
<primary>characters</primary>
<secondary>converting
case</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3076" file="ch01_14.htm" sect="1.13.1. Problem">
<primary>case
sensitivity</primary>
<secondary>converting
case</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3077" file="ch01_14.htm" sect="1.13.1. Problem">
<primary>uppercase,
converting to lowercase</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3078" file="ch01_14.htm" sect="1.13.1. Problem">
<primary>lowercase, converting to
uppercase</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3079" file="ch01_14.htm" sect="1.13.1. Problem">
<primary>strings</primary>
<secondary>converting</secondary>
<tertiary>case</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3080" file="ch01_14.htm" sect="1.13.1. Problem">
<primary>converting</primary>
<secondary>strings</secondary>
<tertiary>case
of</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3081" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>lc( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3082" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>uc( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3083" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>\ (backslash)</primary>
<secondary>\L string
escape</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3084" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>backslash
(\)</primary>
<secondary>\L string
escape</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3085" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>\
(backslash)</primary>
<secondary>\U string
escape</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3086" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>backslash
(\)</primary>
<secondary>\U string
escape</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3087" file="ch01_14.htm" sect="1.13.2. Solution">
<primary sortas="U string escape">\U string escape</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3088" file="ch01_14.htm" sect="1.13.2. Solution">
<primary sortas="L string escape">\L string escape</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3089" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>\ (backslash)</primary>
<secondary>\l string
escape</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3090" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>backslash
(\)</primary>
<secondary>\l string
escape</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3091" file="ch01_14.htm" sect="1.13.2. Solution">
<primary sortas="l string escape">\l string escape</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3092" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>\ (backslash)</primary>
<secondary>\u string
escape</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3093" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>backslash
(\)</primary>
<secondary>\u string
escape</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3094" file="ch01_14.htm" sect="1.13.2. Solution">
<primary sortas="u string escape">\u string escape</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3095" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>lcfirst( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3096" file="ch01_14.htm" sect="1.13.2. Solution">
<primary>ucfirst( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3097" file="ch01_14.htm" sect="1.13.3. Discussion">
<primary>tr/// operator</primary>
<secondary>converting
case with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3098" file="ch01_14.htm" sect="1.13.3. Discussion">
<primary>diacritics</primary>
<secondary>converting case
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3099" file="ch01_15.htm" sect="1.14.1. Problem">
<primary>capitalization</primary>
<secondary>of
titles and headlines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3100" file="ch01_15.htm" sect="1.14.1. Problem">
<primary>case
sensitivity</primary>
<secondary>capitalizing titles and
headlines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3101" file="ch01_15.htm" sect="1.14.1. Problem">
<primary>strings</primary>
<secondary>headlines
and titles, capitalizing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3102" file="ch01_15.htm" sect="1.14.2. Solution">
<primary>tc( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3106" file="ch01_16.htm" sect="1.15.1. Problem">
<primary>strings</primary>
<secondary>interpolating
functions and expressions within</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3107" file="ch01_16.htm" sect="1.15.1. Problem">
<primary>functions</primary>
<secondary>interpolating
within strings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3108" file="ch01_16.htm" sect="1.15.1. Problem">
<primary>expressions,
interpolating within strings</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3109" file="ch01_16.htm" sect="1.15.3. Discussion">
<primary>`
(backtick)</primary>
<secondary>expanding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3110" file="ch01_16.htm" sect="1.15.3. Discussion">
<primary>backtick
(`)</primary>
<secondary>expanding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3114" file="ch01_17.htm" sect="1.16.1. Problem">
<primary>whitespace</primary>
<secondary>indenting
here documents</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3115" file="ch01_17.htm" sect="1.16.1. Problem">
<primary>here
documents</primary>
<secondary>indenting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3116" file="ch01_17.htm" sect="1.16.1. Problem">
<primary>indents</primary>
<see>whitespace</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3117" file="ch01_17.htm" sect="1.16.2. Solution">
<primary>s/// operator</primary>
<secondary>stripping
whitespace with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3118" file="ch01_17.htm" sect="1.16.3. Discussion">
<primary>dequote( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3121" file="ch01_18.htm" sect="1.17.1. Problem">
<primary>strings</primary>
<secondary>reformatting
paragraphs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3122" file="ch01_18.htm" sect="1.17.1. Problem">
<primary>paragraphs</primary>
<secondary>reformatting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3123" file="ch01_18.htm" sect="1.17.1. Problem">
<primary>Text::Wrap
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3124" file="ch01_18.htm" sect="1.17.1. Problem">
<primary>wrapping paragraph
text</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3125" file="ch01_18.htm" sect="1.17.1. Problem">
<primary>words</primary>
<secondary>wrapping
paragraph text</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3126" file="ch01_18.htm" sect="1.17.1. Problem">
<primary>columns</primary>
<secondary>wrapping
paragraphs by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3127" file="ch01_18.htm" sect="1.17.3. Discussion">
<primary>Term::ReadKey module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3128" file="ch01_18.htm" sect="1.17.3. Discussion">
<primary>fmt program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3135" file="ch01_19.htm" sect="1.18.1. Problem">
<primary>characters</primary>
<secondary>escaping</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3136" file="ch01_19.htm" sect="1.18.1. Problem">
<primary>escaping characters</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3137" file="ch01_19.htm" sect="1.18.1. Problem">
<primary>strings</primary>
<secondary>escaping
characters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3138" file="ch01_19.htm" sect="1.18.1. Problem">
<primary>backslash
(\)</primary>
<secondary>escaping
characters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3139" file="ch01_19.htm" sect="1.18.1. Problem">
<primary>\
(backslash)</primary>
<secondary>escaping
characters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3140" file="ch01_19.htm" sect="1.18.3. Discussion">
<primary>command</primary>
<secondary>interpreters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3141" file="ch01_19.htm" sect="1.18.3. Discussion">
<primary>quotemeta( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3142" file="ch01_19.htm" sect="1.18.3. Discussion">
<primary>\ (backslash)</primary>
<secondary>` string
metacharacter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3143" file="ch01_19.htm" sect="1.18.3. Discussion">
<primary>backslash
(\)</primary>
<secondary>` string
metacharacter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3144" file="ch01_19.htm" sect="1.18.3. Discussion">
<primary sortas="Q string metacharacter">` string
metacharacter</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3145" file="ch01_19.htm" sect="1.18.3. Discussion">
<primary>\
(backslash)</primary>
<secondary>\E string
metacharacter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3146" file="ch01_19.htm" sect="1.18.3. Discussion">
<primary>backslash
(\)</primary>
<secondary>\E string
metacharacter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3147" file="ch01_19.htm" sect="1.18.3. Discussion">
<primary sortas="E string metacharacter">\E string
metacharacter</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3148" file="ch01_20.htm" sect="1.19.1. Problem">
<primary>strings</primary>
<secondary>removing leading or
trailing spaces</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3149" file="ch01_20.htm" sect="1.19.1. Problem">
<primary>deleting</primary>
<secondary>whitespace at string
ends</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3150" file="ch01_20.htm" sect="1.19.1. Problem">
<primary>whitespace</primary>
<secondary>deleting leading
or trailing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3151" file="ch01_20.htm" sect="1.19.1. Problem">
<primary>trailing</primary>
<secondary>whitespace,
removing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3152" file="ch01_20.htm" sect="1.19.1. Problem">
<primary>leading
whitespace, removing</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3153" file="ch01_21.htm" sect="1.20.1. Problem">
<primary>values</primary>
<secondary>comma-separated</secondary>
<tertiary>parsing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3154" file="ch01_21.htm" sect="1.20.1. Problem">
<primary>CSV
(comma-separated
values)</primary>
<secondary>parsing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3155" file="ch01_21.htm" sect="1.20.1. Problem">
<primary>parsing</primary>
<secondary>comma-separated
data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3156" file="ch01_21.htm" sect="1.20.1. Problem">
<primary>input</primary>
<secondary>comma-separated,
parsing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3157" file="ch01_21.htm" sect="1.20.1. Problem">
<primary>comma-separated
values</primary>
<see>CSV</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3158" file="ch01_21.htm" sect="1.20.3. Discussion">
<primary>Text::ParseWords
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3159" file="ch01_21.htm" sect="1.20.3. Discussion">
<primary>quotewords( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3160" file="ch01_21.htm" sect="1.20.3. Discussion">
<primary>Text::CSV module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3161" file="ch01_21.htm" sect="1.20.3. Discussion">
<primary>Text::CSV_File module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3162" file="ch01_21.htm" sect="1.20.3. Discussion">
<primary>parse_csv subroutines</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3167" file="ch01_22.htm" sect="1.21.1. Problem">
<primary>variables</primary>
<secondary>constants</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3168" file="ch01_22.htm" sect="1.21.1. Problem">
<primary>constants</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3169" file="ch01_22.htm" sect="1.21.2. Solution">
<primary>use constant pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3170" file="ch01_23.htm" sect="1.22.1. Problem">
<primary>Soundex matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3171" file="ch01_23.htm" sect="1.22.1. Problem">
<primary>matching</primary>
<secondary>Soundex
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3172" file="ch01_23.htm" sect="1.22.1. Problem">
<primary>matching</primary>
<seealso>regular expressions</seealso>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3173" file="ch01_23.htm" sect="1.22.2. Solution">
<primary>Text::Soundex module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3174" file="ch01_23.htm" sect="1.22.2. Solution">
<primary>pattern
matching</primary>
<see>regular expressions</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3175" file="ch01_23.htm" sect="1.22.2. Solution">
<primary>Text::Metaphone
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3176" file="ch01_23.htm" sect="1.22.3. Discussion">
<primary>soundex( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3177" file="ch01_23.htm" sect="1.22.3. Discussion">
<primary>String::Approx module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3178" file="ch01_23.htm" sect="1.22.3. Discussion">
<primary>adist( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3179" file="ch01_24.htm" sect="1.23. Program: fixstyle">
<primary>fixstyle
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3180" file="ch01_24.htm" sect="1.23. Program: fixstyle">
<primary>strings</primary>
<secondary>substituting
specific words</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3181" file="ch01_24.htm" sect="1.23. Program: fixstyle">
<primary>words</primary>
<secondary>substitutions
for specific</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3185" file="ch01_25.htm" sect="1.24. Program: psgrep">
<primary>psgrep program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3186" file="ch01_25.htm" sect="1.24. Program: psgrep">
<primary>strings</primary>
<secondary>psgrep
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-1-ITERM-3187" file="ch01_25.htm" sect="1.24. Program: psgrep">
<primary>typeglobs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3191" file="ch02_01.htm" sect="2.. Introduction">
<primary>numbers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3192" file="ch02_01.htm" sect="2.. Introduction">
<primary>scalars</primary>
<secondary sortas="numbers">as
numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3193" file="ch02_01.htm" sect="2.. Introduction">
<primary>numbers</primary>
<secondary>scalars
as</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3194" file="ch02_01.htm" sect="2.. Introduction">
<primary>strings</primary>
<secondary>converting</secondary>
<tertiary>non-numeric</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3195" file="ch02_01.htm" sect="2.. Introduction">
<primary>non-numeric strings, converting to
numbers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3196" file="ch02_01.htm" sect="2.. Introduction">
<primary>converting</primary>
<secondary>strings</secondary>
<tertiary>non-numeric</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3197" file="ch02_01.htm" sect="2.. Introduction">
<primary>floating-point numbers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3198" file="ch02_01.htm" sect="2.. Introduction">
<primary>numbers</primary>
<secondary>floating-point</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3199" file="ch02_01.htm" sect="2.. Introduction">
<primary>numbers</primary>
<secondary>random</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3200" file="ch02_01.htm" sect="2.. Introduction">
<primary>random</primary>
<secondary>numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3201" file="ch02_02.htm" sect="2.1.1. Problem">
<primary>strings</primary>
<secondary>checking
if valid numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3202" file="ch02_02.htm" sect="2.1.1. Problem">
<primary>numbers</primary>
<secondary>strings
as valid numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3203" file="ch02_02.htm" sect="2.1.1. Problem">
<primary>regular
expressions</primary>
<secondary>checking strings for valid
numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3204" file="ch02_02.htm" sect="2.1.3. Discussion">
<primary>trim( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3205" file="ch02_02.htm" sect="2.1.3. Discussion">
<primary>Regexp::Common module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3206" file="ch02_02.htm" sect="2.1.3. Discussion">
<primary>POSIX::strtod( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3207" file="ch02_02.htm" sect="2.1.3. Discussion">
<primary>is_numeric( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3208" file="ch02_02.htm" sect="2.1.3. Discussion">
<primary>Scalar::Util module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3209" file="ch02_02.htm" sect="2.1.3. Discussion">
<primary>looks_like_number( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3213" file="ch02_03.htm" sect="2.2.1. Problem">
<primary>rounding floating-point
numbers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3214" file="ch02_03.htm" sect="2.2.1. Problem">
<primary>floating-point
numbers</primary>
<secondary>rounding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3215" file="ch02_03.htm" sect="2.2.1. Problem">
<primary>numbers</primary>
<secondary>floating-point</secondary>
<tertiary>rounding</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3216" file="ch02_03.htm" sect="2.2.2. Solution">
<primary>sprintf( )</primary>
<secondary>floating-point
numbers</secondary>
<tertiary>rounding</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3217" file="ch02_03.htm" sect="2.2.2. Solution">
<primary>printf( )</primary>
<secondary>floating-point
numbers, rounding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3218" file="ch02_03.htm" sect="2.2.3. Discussion">
<primary>int( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3219" file="ch02_03.htm" sect="2.2.3. Discussion">
<primary>ceil( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3220" file="ch02_03.htm" sect="2.2.3. Discussion">
<primary>floor( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3221" file="ch02_03.htm" sect="2.2.3. Discussion">
<primary>integers</primary>
<secondary>integer
truncation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3225" file="ch02_04.htm" sect="2.3.1. Problem">
<primary>floating-point
numbers</primary>
<secondary>comparing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3226" file="ch02_04.htm" sect="2.3.1. Problem">
<primary>comparing</primary>
<secondary>floating-point
numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3227" file="ch02_04.htm" sect="2.3.1. Problem">
<primary>numbers</primary>
<secondary>floating-point</secondary>
<tertiary>comparing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3228" file="ch02_04.htm" sect="2.3.2. Solution">
<primary>sprintf( )</primary>
<secondary>floating-point
numbers</secondary>
<tertiary>comparing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3229" file="ch02_04.htm" sect="2.3.3. Discussion">
<primary>comparing</primary>
<secondary>floating-point
numbers</secondary>
<tertiary>currency</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3230" file="ch02_04.htm" sect="2.3.3. Discussion">
<primary>currency, comparing floating-point
numbers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3231" file="ch02_05.htm" sect="2.4.1. Problem">
<primary>numbers</primary>
<secondary>operating on integer
series</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3232" file="ch02_05.htm" sect="2.4.1. Problem">
<primary>integers</primary>
<seealso>numbers</seealso>
<see>also
numbers</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3233" file="ch02_06.htm" sect="2.5.1. Problem">
<primary>Roman numerals</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3234" file="ch02_06.htm" sect="2.5.1. Problem">
<primary>numbers</primary>
<secondary>Roman
numerals</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3235" file="ch02_06.htm" sect="2.5.1. Problem">
<primary>converting</primary>
<secondary>numbers</secondary>
<tertiary>Roman
numerals and</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3236" file="ch02_06.htm" sect="2.5.2. Solution">
<primary>Roman module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3237" file="ch02_06.htm" sect="2.5.3. Discussion">
<primary>roman( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3238" file="ch02_07.htm" sect="2.6.1. Problem">
<primary>random</primary>
<secondary>numbers</secondary>
<tertiary>generating</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3239" file="ch02_07.htm" sect="2.6.1. Problem">
<primary>numbers</primary>
<secondary>random</secondary>
<tertiary>generating</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3240" file="ch02_07.htm" sect="2.6.2. Solution">
<primary>rand( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3241" file="ch02_07.htm" sect="2.6.3. Discussion">
<primary>arrays</primary>
<secondary>randomly selecting
from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3242" file="ch02_07.htm" sect="2.6.3. Discussion">
<primary>passwords</primary>
<secondary>randomly
generating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3243" file="ch02_08.htm" sect="2.7.2. Solution">
<primary>srand( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3244" file="ch02_09.htm" sect="2.8.2. Solution">
<primary>Math::TrulyRandom module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3245" file="ch02_09.htm" sect="2.8.2. Solution">
<primary>Math::Random module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3248" file="ch02_10.htm" sect="2.9.1. Problem">
<primary>biased random numbers,
generating</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3249" file="ch02_10.htm" sect="2.9.1. Problem">
<primary>random</primary>
<secondary>numbers</secondary>
<tertiary>biasing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3250" file="ch02_10.htm" sect="2.9.1. Problem">
<primary>numbers</primary>
<secondary>random</secondary>
<tertiary>biasing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3251" file="ch02_10.htm" sect="2.9.2. Solution">
<primary>gaussian_rand( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3252" file="ch02_10.htm" sect="2.9.2. Solution">
<primary>weighted_rand( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3256" file="ch02_11.htm" sect="2.10.1. Problem">
<primary>numbers</primary>
<secondary>trigonometry</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3257" file="ch02_11.htm" sect="2.10.1. Problem">
<primary>trigonometry</primary>
<secondary>operating in
degrees vs. radians</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3258" file="ch02_11.htm" sect="2.10.1. Problem">
<primary>angles, in degrees vs.
radians</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3259" file="ch02_11.htm" sect="2.10.1. Problem">
<primary>radians, vs.
degrees</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3260" file="ch02_11.htm" sect="2.10.1. Problem">
<primary>converting</primary>
<secondary>degrees and
radians</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3261" file="ch02_11.htm" sect="2.10.2. Solution">
<primary>Math::Trig
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3262" file="ch02_11.htm" sect="2.10.3. Discussion">
<primary>rad2deg( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3263" file="ch02_11.htm" sect="2.10.3. Discussion">
<primary>deg2rad( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3264" file="ch02_12.htm" sect="2.11.1. Problem">
<primary>trigonometry</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3265" file="ch02_12.htm" sect="2.11.2. Solution">
<primary>sin( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3266" file="ch02_12.htm" sect="2.11.2. Solution">
<primary>cos( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3267" file="ch02_12.htm" sect="2.11.2. Solution">
<primary>tan( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3268" file="ch02_12.htm" sect="2.11.2. Solution">
<primary>POSIX module</primary>
<secondary>trigonometric
functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3269" file="ch02_13.htm" sect="2.12.1. Problem">
<primary>logarithms</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3270" file="ch02_13.htm" sect="2.12.1. Problem">
<primary>numbers</primary>
<secondary>logarithms</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3271" file="ch02_13.htm" sect="2.12.2. Solution">
<primary>log( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3272" file="ch02_13.htm" sect="2.12.2. Solution">
<primary>natural logarithms</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3273" file="ch02_13.htm" sect="2.12.2. Solution">
<primary>log10( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3274" file="ch02_13.htm" sect="2.12.3. Discussion">
<primary>log_base( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3275" file="ch02_13.htm" sect="2.12.3. Discussion">
<primary>Math::Complex
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3276" file="ch02_14.htm" sect="2.13.1. Problem">
<primary>arithmetic</primary>
<secondary>matrix
multiplication</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3277" file="ch02_14.htm" sect="2.13.1. Problem">
<primary>matrix
multiplication</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3278" file="ch02_14.htm" sect="2.13.1. Problem">
<primary>arrays</primary>
<secondary>matrix
multiplication</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3279" file="ch02_14.htm" sect="2.13.1. Problem">
<primary>numbers</primary>
<secondary>matrix
multiplication</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3280" file="ch02_14.htm" sect="2.13.1. Problem">
<primary>multiplication</primary>
<secondary>of
matrices</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3281" file="ch02_14.htm" sect="2.13.2. Solution">
<primary>PDL (Perl Data
Language)</primary>
<secondary>modules, matrix
multiplication</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3282" file="ch02_14.htm" sect="2.13.2. Solution">
<primary>PDL (Perl Data
Language)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3283" file="ch02_14.htm" sect="2.13.2. Solution">
<primary>Perl Data
Language</primary>
<see>PDL</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3284" file="ch02_14.htm" sect="2.13.3. Discussion">
<primary>x operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3285" file="ch02_14.htm" sect="2.13.3. Discussion">
<primary>scalar multiplication
operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3286" file="ch02_14.htm" sect="2.13.3. Discussion">
<primary>multiplication</primary>
<secondary>x
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3287" file="ch02_15.htm" sect="2.14.1. Problem">
<primary>complex numbers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3288" file="ch02_15.htm" sect="2.14.1. Problem">
<primary>numbers</primary>
<secondary>complex
(imaginary)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3289" file="ch02_15.htm" sect="2.14.1. Problem">
<primary>imaginary
numbers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3290" file="ch02_15.htm" sect="2.14.1. Problem">
<primary>arithmetic</primary>
<secondary>complex
(imaginary) numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3291" file="ch02_15.htm" sect="2.14.2. Solution">
<primary>Math::Complex
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3292" file="ch02_15.htm" sect="2.14.3. Discussion">
<primary>Math::Trig module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3293" file="ch02_16.htm" sect="2.15.1. Problem">
<primary>converting</primary>
<secondary>numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3294" file="ch02_16.htm" sect="2.15.1. Problem">
<primary>octal</primary>
<secondary>numbers,
converting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3295" file="ch02_16.htm" sect="2.15.1. Problem">
<primary>binary</primary>
<secondary>numbers,
converting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3296" file="ch02_16.htm" sect="2.15.1. Problem">
<primary>hexadecimal
numbers, converting</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3297" file="ch02_16.htm" sect="2.15.1. Problem">
<primary>numbers</primary>
<secondary>converting binary,
octal, and hexadecimal</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3298" file="ch02_16.htm" sect="2.15.2. Solution">
<primary>hex( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3299" file="ch02_16.htm" sect="2.15.2. Solution">
<primary>oct( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3300" file="ch02_16.htm" sect="2.15.3. Discussion">
<primary># (pound sign), with
printf( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3301" file="ch02_16.htm" sect="2.15.3. Discussion">
<primary>pound sign (#),
with printf( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3302" file="ch02_17.htm" sect="2.16.1. Problem">
<primary>comma (,)</primary>
<secondary>in
numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3303" file="ch02_17.htm" sect="2.16.1. Problem">
<primary>,
(comma)</primary>
<secondary>in numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3304" file="ch02_17.htm" sect="2.16.1. Problem">
<primary>numbers</primary>
<secondary>adding commas
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3305" file="ch02_17.htm" sect="2.16.1. Problem">
<primary>parsing</primary>
<secondary>commas into
numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3306" file="ch02_17.htm" sect="2.16.1. Problem">
<primary>dot
(.)</primary>
<secondary>periods in numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3307" file="ch02_17.htm" sect="2.16.1. Problem">
<primary>. (dot)</primary>
<secondary>period in
numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3308" file="ch02_17.htm" sect="2.16.3. Discussion">
<primary>regular expressions</primary>
<secondary>commas in
numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3309" file="ch02_17.htm" sect="2.16.3. Discussion">
<primary>commify( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3310" file="ch02_18.htm" sect="2.17.1. Problem">
<primary>strings</primary>
<secondary>plurals
based on numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3311" file="ch02_18.htm" sect="2.17.1. Problem">
<primary>numbers</primary>
<secondary>plural
words based on</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3312" file="ch02_18.htm" sect="2.17.1. Problem">
<primary>words</primary>
<secondary>pluralizing,
based on numbers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3313" file="ch02_18.htm" sect="2.17.1. Problem">
<primary>pluralizing
words</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3314" file="ch02_18.htm" sect="2.17.2. Solution">
<primary>Lingua::EN::Inflect
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3319" file="ch02_19.htm" sect="2.18. Program: Calculating Prime Factors">
<primary>numbers</primary>
<secondary>primes,
calculating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3320" file="ch02_19.htm" sect="2.18. Program: Calculating Prime Factors">
<primary>calculating
prime numbers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3321" file="ch02_19.htm" sect="2.18. Program: Calculating Prime Factors">
<primary>prime
numbers, calculating</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-2-ITERM-3322" file="ch02_19.htm" sect="2.18. Program: Calculating Prime Factors">
<primary>Math::BigInt
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3324" file="ch03_01.htm" sect="3.. Introduction">
<primary>date
and time values</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3325" file="ch03_01.htm" sect="3.. Introduction">
<primary>time</primary>
<see>date and time
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3326" file="ch03_01.htm" sect="3.. Introduction">
<primary>seconds</primary>
<see>date and time
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3327" file="ch03_01.htm" sect="3.. Introduction">
<primary>minutes</primary>
<see>date and time
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3328" file="ch03_01.htm" sect="3.. Introduction">
<primary>hours</primary>
<see>date
and time values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3329" file="ch03_01.htm" sect="3.. Introduction">
<primary>days</primary>
<see>date and time
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3330" file="ch03_01.htm" sect="3.. Introduction">
<primary>years</primary>
<see>date
and time values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3331" file="ch03_01.htm" sect="3.. Introduction">
<primary>months</primary>
<see>date and time
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3332" file="ch03_01.htm" sect="3.. Introduction">
<primary>time zones</primary>
<see>date
and time values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3333" file="ch03_01.htm" sect="3.. Introduction">
<primary>weeks</primary>
<see>date and time
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3334" file="ch03_01.htm" sect="3.. Introduction">
<primary>time( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3335" file="ch03_01.htm" sect="3.. Introduction">
<primary>date and time values</primary>
<secondary>seconds
passed since Epoch</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3336" file="ch03_01.htm" sect="3.. Introduction">
<primary>POSIX
(Portable Operating System
Interface)</primary>
<secondary>time( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3337" file="ch03_01.htm" sect="3.. Introduction">
<primary>DMYHMS (day, month, year, hour, minute,
seconds)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3338" file="ch03_01.htm" sect="3.. Introduction">
<primary>day, month, year,
hour, minute, seconds (DMYHMS)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3339" file="ch03_01.htm" sect="3.. Introduction">
<primary>date and time
values</primary>
<secondary>years</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3340" file="ch03_01.htm" sect="3.. Introduction">
<primary>localtime( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3341" file="ch03_01.htm" sect="3.. Introduction">
<primary>gmtime( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3342" file="ch03_01.htm" sect="3.. Introduction">
<primary>Time::tm module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3343" file="ch03_01.htm" sect="3.. Introduction">
<primary>Time::localtime module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3344" file="ch03_01.htm" sect="3.. Introduction">
<primary>Time::gmtime module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3345" file="ch03_01.htm" sect="3.. Introduction">
<primary>localtime( )</primary>
<secondary>Time::localtime/Time::gmtime</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3346" file="ch03_01.htm" sect="3.. Introduction">
<primary>gmtime( )</primary>
<secondary>Time::localtime
and Time::gmtime</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3347" file="ch03_01.htm" sect="3.. Introduction">
<primary>Time::Local module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3348" file="ch03_01.htm" sect="3.. Introduction">
<primary>timelocal( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3349" file="ch03_01.htm" sect="3.. Introduction">
<primary>timegm( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3350" file="ch03_01.htm" sect="3.. Introduction">
<primary>Date::DateCalc module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3351" file="ch03_01.htm" sect="3.. Introduction">
<primary>Date::Manip module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3352" file="ch03_02.htm" sect="3.1.1. Problem">
<primary>date
and time values</primary>
<secondary>today's date,
finding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3353" file="ch03_02.htm" sect="3.1.2. Solution">
<primary>localtime( )</primary>
<secondary>today's
date</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3354" file="ch03_02.htm" sect="3.1.3. Discussion">
<primary>POSIX module</primary>
<secondary>today's
date</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3355" file="ch03_02.htm" sect="3.1.3. Discussion">
<primary>strftime( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3356" file="ch03_02.htm" sect="3.1.3. Discussion">
<primary>gmtime( )</primary>
<secondary>today's
date</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3358" file="ch03_03.htm" sect="3.2.1. Problem">
<primary>date
and time values</primary>
<secondary>converting to and from Epoch
seconds</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3359" file="ch03_03.htm" sect="3.2.1. Problem">
<primary>converting</primary>
<secondary>date
and time to and from Epoch seconds</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3360" file="ch03_03.htm" sect="3.2.1. Problem">
<primary>Epoch</primary>
<see>date and time
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3361" file="ch03_03.htm" sect="3.2.2. Solution">
<primary>timelocal( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3362" file="ch03_03.htm" sect="3.2.2. Solution">
<primary>timegm( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3363" file="ch03_03.htm" sect="3.2.2. Solution">
<primary>Time::Local module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3364" file="ch03_03.htm" sect="3.2.2. Solution">
<primary>date and time
values</primary>
<secondary>Time::Local
module</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3365" file="ch03_03.htm" sect="3.2.3. Discussion">
<primary>DMYHMS values</primary>
<see>date and time
values</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3366" file="ch03_04.htm" sect="3.3.2. Solution">
<primary>gmtime( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3367" file="ch03_04.htm" sect="3.3.2. Solution">
<primary>Time::timelocal module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3368" file="ch03_04.htm" sect="3.3.2. Solution">
<primary>Time::gmtime module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3369" file="ch03_04.htm" sect="3.3.2. Solution">
<primary>date and time
values</primary>
<secondary>Time::timelocal
module</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3370" file="ch03_04.htm" sect="3.3.2. Solution">
<primary>date and time
values</primary>
<secondary>Time::gmtime
module</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3373" file="ch03_05.htm" sect="3.4.1. Problem">
<primary>date and time
values</primary>
<secondary>arithmetic with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3374" file="ch03_05.htm" sect="3.4.1. Problem">
<primary>date and time
values</primary>
<secondary>Date::DateCalc</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3375" file="ch03_05.htm" sect="3.4.2. Solution">
<primary>calc_new_date( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3376" file="ch03_05.htm" sect="3.4.2. Solution">
<primary>Date::Calc module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3377" file="ch03_05.htm" sect="3.4.2. Solution">
<primary>calc_new_date_time( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3378" file="ch03_06.htm" sect="3.5.1. Problem">
<primary>date and time values</primary>
<secondary>days,
calculating</secondary>
<tertiary>number between two
dates</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3379" file="ch03_06.htm" sect="3.5.3. Discussion">
<primary>Delta_Days( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3380" file="ch03_06.htm" sect="3.5.3. Discussion">
<primary>Delta_DHMS( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3381" file="ch03_07.htm" sect="3.6.1. Problem">
<primary>date and time values</primary>
<secondary>days,
calculating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3382" file="ch03_07.htm" sect="3.6.2. Solution">
<primary>localtime( )</primary>
<secondary>calculating
days</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3383" file="ch03_07.htm" sect="3.6.2. Solution">
<primary>Day_of_week( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3384" file="ch03_07.htm" sect="3.6.2. Solution">
<primary>Week_Number( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3385" file="ch03_07.htm" sect="3.6.2. Solution">
<primary>Day_of_Year( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3386" file="ch03_07.htm" sect="3.6.2. Solution">
<primary>Date::Calc module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3387" file="ch03_07.htm" sect="3.6.3. Discussion">
<primary>internationalization</primary>
<secondary>localization,
first week of the year</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3388" file="ch03_08.htm" sect="3.7.1. Problem">
<primary>parsing</primary>
<secondary>date and time from
strings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3389" file="ch03_08.htm" sect="3.7.1. Problem">
<primary>strings</primary>
<secondary>parsing date and time
information in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3390" file="ch03_08.htm" sect="3.7.1. Problem">
<primary>date and
time values</primary>
<secondary>parsing information from
strings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3391" file="ch03_08.htm" sect="3.7.2. Solution">
<primary>ParseDate( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3392" file="ch03_08.htm" sect="3.7.2. Solution">
<primary>Date::Manip module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3393" file="ch03_08.htm" sect="3.7.3. Discussion">
<primary>UnixDate( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3394" file="ch03_09.htm" sect="3.8.1. Problem">
<primary>date and time
values</primary>
<secondary>printing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3395" file="ch03_09.htm" sect="3.8.1. Problem">
<primary>printing</primary>
<secondary>date and time
information</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3396" file="ch03_09.htm" sect="3.8.1. Problem">
<primary>printing</primary>
<secondary>;
printf( ))</secondary>
<seealso>print( )</seealso>
<see>also
print( )</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3397" file="ch03_09.htm" sect="3.8.2. Solution">
<primary>localtime( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3398" file="ch03_09.htm" sect="3.8.2. Solution">
<primary>gmtime( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3399" file="ch03_09.htm" sect="3.8.2. Solution">
<primary>strftime( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3400" file="ch03_09.htm" sect="3.8.3. Discussion">
<primary>date and time
values</primary>
<secondary>Date::Manip
module</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3401" file="ch03_10.htm" sect="3.9.1. Problem">
<primary>date and time
values</primary>
<secondary>high-resolution
timers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3402" file="ch03_10.htm" sect="3.9.1. Problem">
<primary>timers,
high-resolution</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3403" file="ch03_10.htm" sect="3.9.1. Problem">
<primary>high-resolution timers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3404" file="ch03_10.htm" sect="3.9.2. Solution">
<primary>Time::HiRes module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3405" file="ch03_10.htm" sect="3.9.2. Solution">
<primary>date and time
values</primary>
<secondary>Time::HiRes
module</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3406" file="ch03_10.htm" sect="3.9.3. Discussion">
<primary>gettimeofday( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3407" file="ch03_10.htm" sect="3.9.3. Discussion">
<primary>time( )</primary>
<secondary>high-res
timers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3408" file="ch03_10.htm" sect="3.9.3. Discussion">
<primary>usleep( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3409" file="ch03_10.htm" sect="3.9.3. Discussion">
<primary>ualarm( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3410" file="ch03_10.htm" sect="3.9.3. Discussion">
<primary>sleep( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3411" file="ch03_10.htm" sect="3.9.3. Discussion">
<primary>alarm( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3412" file="ch03_10.htm" sect="3.9.3. Discussion">
<primary>setitimer( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3413" file="ch03_10.htm" sect="3.9.3. Discussion">
<primary>getitimer( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3414" file="ch03_11.htm" sect="3.10.1. Problem">
<primary>date and time
values</primary>
<secondary>sleeps</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3415" file="ch03_11.htm" sect="3.10.1. Problem">
<primary>sleep( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3416" file="ch03_11.htm" sect="3.10.2. Solution">
<primary>select( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3417" file="ch03_11.htm" sect="3.10.2. Solution">
<primary>Time::HiRes module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3418" file="ch03_12.htm" sect="3.11. Program: hopdelta">
<primary>hopdelta
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3419" file="ch03_12.htm" sect="3.11. Program: hopdelta">
<primary>date and time
values</primary>
<secondary>hopdelta program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3420" file="ch03_12.htm" sect="3.11. Program: hopdelta">
<primary>email</primary>
<secondary>tracking
time path of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3421" file="ch03_12.htm" sect="3.11. Program: hopdelta">
<primary>ParseDate( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3422" file="ch03_12.htm" sect="3.11. Program: hopdelta">
<primary>DateCalc( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3423" file="ch03_12.htm" sect="3.11. Program: hopdelta">
<primary>date and time
values</primary>
<secondary>Date::Manip
module</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-3-ITERM-3424" file="ch03_12.htm" sect="3.11. Program: hopdelta">
<primary>Date::Manip
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3429" file="ch04_01.htm" sect="4.. Introduction">
<primary>arrays</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3430" file="ch04_01.htm" sect="4.. Introduction">
<primary>lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3431" file="ch04_01.htm" sect="4.. Introduction">
<primary>lists</primary>
<secondary sortas="arrays">vs. arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3432" file="ch04_01.htm" sect="4.. Introduction">
<primary>arrays</primary>
<secondary sortas="lists">vs.
lists</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3433" file="ch04_01.htm" sect="4.. Introduction">
<primary>flattened lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3434" file="ch04_01.htm" sect="4.. Introduction">
<primary>lists</primary>
<secondary>flattened</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3435" file="ch04_01.htm" sect="4.. Introduction">
<primary>multidimensional</primary>
<secondary>arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3436" file="ch04_01.htm" sect="4.. Introduction">
<primary>arrays</primary>
<secondary>multidimensional</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3437" file="ch04_01.htm" sect="4.. Introduction">
<primary>elements</primary>
<secondary sortas="arrays (see arrays)">of
arrays</secondary>
<see>arrays</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3438" file="ch04_02.htm" sect="4.1.1. Problem">
<primary>arrays</primary>
<secondary>initializing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3439" file="ch04_02.htm" sect="4.1.1. Problem">
<primary>lists</primary>
<secondary>initializing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3440" file="ch04_02.htm" sect="4.1.1. Problem">
<primary>initializing</primary>
<secondary>arrays and
lists</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3441" file="ch04_02.htm" sect="4.1.2. Solution">
<primary>CSV (comma-separated
values)</primary>
<secondary>initializing arrays
with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3442" file="ch04_02.htm" sect="4.1.2. Solution">
<primary>values</primary>
<secondary>comma-separated</secondary>
<tertiary>initializing
arrays with</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3443" file="ch04_02.htm" sect="4.1.2. Solution">
<primary>arrays</primary>
<secondary>initializing, with
comma-separated values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3444" file="ch04_02.htm" sect="4.1.2. Solution">
<primary>qw( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3445" file="ch04_03.htm" sect="4.2.1. Problem">
<primary>lists</primary>
<secondary>printing with
commas</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3446" file="ch04_03.htm" sect="4.2.1. Problem">
<primary>comma
(,)</primary>
<secondary>printing lists with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3447" file="ch04_03.htm" sect="4.2.1. Problem">
<primary>, (comma)</primary>
<secondary>printing lists
with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3448" file="ch04_03.htm" sect="4.2.1. Problem">
<primary>printing</primary>
<secondary>lists with
commas</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3449" file="ch04_03.htm" sect="4.2.1. Problem">
<primary>arrays</primary>
<secondary>printing elements with
commas</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3450" file="ch04_03.htm" sect="4.2.2. Solution">
<primary>commify_series program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3451" file="ch04_04.htm" sect="4.3.1. Problem">
<primary>arrays</primary>
<secondary>changing size
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3452" file="ch04_04.htm" sect="4.3.1. Problem">
<primary>size</primary>
<secondary>arrays,
changing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3453" file="ch04_04.htm" sect="4.3.2. Solution">
<primary>$ (dollar
sign)</primary>
<secondary>$#ARRAY variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3454" file="ch04_04.htm" sect="4.3.2. Solution">
<primary>dollar sign ($)</primary>
<secondary>$#ARRAY
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3455" file="ch04_04.htm" sect="4.3.2. Solution">
<primary sortas="ARRAY variable">$#ARRAY variable</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3456" file="ch04_04.htm" sect="4.3.3. Discussion">
<primary>arrays</primary>
<secondary>last valid index
($#ARRAY)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3457" file="ch04_05.htm" sect="4.4.1. Problem">
<primary>arrays</primary>
<secondary>sparse,
implementing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3458" file="ch04_05.htm" sect="4.4.1. Problem">
<primary>implementing sparse
arrays</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3461" file="ch04_06.htm" sect="4.5.1. Problem">
<primary>arrays</primary>
<secondary>iterating</secondary>
<tertiary>through
all elements</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3462" file="ch04_06.htm" sect="4.5.1. Problem">
<primary>lists</primary>
<secondary>iterating
through elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3463" file="ch04_06.htm" sect="4.5.3. Discussion">
<primary>loop variables</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3464" file="ch04_06.htm" sect="4.5.3. Discussion">
<primary>iterator variables</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3465" file="ch04_06.htm" sect="4.5.3. Discussion">
<primary>variables</primary>
<secondary>loop (iterator)
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3466" file="ch04_06.htm" sect="4.5.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$_
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3467" file="ch04_06.htm" sect="4.5.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$_ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3468" file="ch04_06.htm" sect="4.5.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$_
variable</secondary>
<tertiary>accidental
clobbering</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3469" file="ch04_06.htm" sect="4.5.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$_ variable</secondary>
<tertiary>accidental
clobbering</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3470" file="ch04_06.htm" sect="4.5.3. Discussion">
<primary>aliases</primary>
<secondary>for list
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3473" file="ch04_07.htm" sect="4.6.1. Problem">
<primary>references</primary>
<secondary>iterating over
arrays by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3474" file="ch04_07.htm" sect="4.6.1. Problem">
<primary>arrays</primary>
<secondary>iterating</secondary>
<tertiary>over
by reference</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3475" file="ch04_07.htm" sect="4.6.1. Problem">
<primary>iterations</primary>
<see>arrays
lists</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3476" file="ch04_08.htm" sect="4.7.1. Problem">
<primary>lists</primary>
<secondary>extracting</secondary>
<tertiary>elements</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3477" file="ch04_08.htm" sect="4.7.1. Problem">
<primary>arrays</primary>
<secondary>extracting</secondary>
<tertiary>elements</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3478" file="ch04_08.htm" sect="4.7.1. Problem">
<primary>unique list elements,
extracting</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3479" file="ch04_08.htm" sect="4.7.1. Problem">
<primary>duplicate list
elements, extracting</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3480" file="ch04_08.htm" sect="4.7.3. Discussion">
<primary>hashes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3481" file="ch04_09.htm" sect="4.8.1. Problem">
<primary>arrays</primary>
<secondary>unions, intersections,
differences</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3482" file="ch04_09.htm" sect="4.8.1. Problem">
<primary>lists</primary>
<secondary>unions, intersections,
differences</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3483" file="ch04_09.htm" sect="4.8.1. Problem">
<primary>unions of
lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3484" file="ch04_09.htm" sect="4.8.1. Problem">
<primary>differences of
lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3485" file="ch04_09.htm" sect="4.8.1. Problem">
<primary>intersections on
lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3486" file="ch04_09.htm" sect="4.8.1. Problem">
<primary>set
theory</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3487" file="ch04_09.htm" sect="4.8.3. Discussion">
<primary>hashes</primary>
<secondary sortas="list unions, intersections, differences">for list unions, intersections,
differences</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3488" file="ch04_09.htm" sect="4.8.3. Discussion">
<primary>hashes</primary>
<secondary>slices
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3489" file="ch04_10.htm" sect="4.9.1. Problem">
<primary>lists</primary>
<secondary>unions,
intersections, differences</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3490" file="ch04_10.htm" sect="4.9.1. Problem">
<primary>differences of
lists</primary>
<secondary>computing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3491" file="ch04_10.htm" sect="4.9.1. Problem">
<primary>unions of
lists</primary>
<secondary>computing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3492" file="ch04_10.htm" sect="4.9.1. Problem">
<primary>intersections on
lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3493" file="ch04_10.htm" sect="4.9.3. Discussion">
<primary>symmetric difference</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3494" file="ch04_10.htm" sect="4.9.3. Discussion">
<primary>simple difference</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3495" file="ch04_10.htm" sect="4.9.3. Discussion">
<primary>differences of lists</primary>
<secondary>simple
and symmetric</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3500" file="ch04_11.htm" sect="4.10.1. Problem">
<primary>arrays</primary>
<secondary>appending
multiple</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3501" file="ch04_11.htm" sect="4.10.1. Problem">
<primary>appending arrays
to each other</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3502" file="ch04_11.htm" sect="4.10.2. Solution">
<primary>push( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3503" file="ch04_12.htm" sect="4.11.1. Problem">
<primary>arrays</primary>
<secondary>reversing elements
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3504" file="ch04_12.htm" sect="4.11.1. Problem">
<primary>reversing</primary>
<secondary>array
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3505" file="ch04_12.htm" sect="4.11.1. Problem">
<primary>lists</primary>
<secondary>reversing elements
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3506" file="ch04_12.htm" sect="4.11.2. Solution">
<primary>reverse( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3507" file="ch04_13.htm" sect="4.12.1. Problem">
<primary>arrays</primary>
<secondary>processing multiple
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3508" file="ch04_13.htm" sect="4.12.1. Problem">
<primary>lists</primary>
<secondary>processing multiple
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3509" file="ch04_13.htm" sect="4.12.2. Solution">
<primary>splice( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3510" file="ch04_13.htm" sect="4.12.3. Discussion">
<primary>@ (at
sign)</primary>
<secondary>splice( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3511" file="ch04_13.htm" sect="4.12.3. Discussion">
<primary>at sign
(@)</primary>
<secondary>splice( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3512" file="ch04_14.htm" sect="4.13.1. Problem">
<primary>arrays</primary>
<secondary>iterating</secondary>
<tertiary>through
elements</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3513" file="ch04_14.htm" sect="4.13.1. Problem">
<primary>lists</primary>
<secondary>iterating
through elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3514" file="ch04_14.htm" sect="4.13.2. Solution">
<primary>last( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3515" file="ch04_14.htm" sect="4.13.2. Solution">
<primary>foreach loop</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3516" file="ch04_14.htm" sect="4.13.3. Discussion">
<primary>List::Util module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3519" file="ch04_15.htm" sect="4.14.1. Problem">
<primary>arrays</primary>
<secondary>extracting</secondary>
<tertiary>subsets</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3520" file="ch04_15.htm" sect="4.14.1. Problem">
<primary>lists</primary>
<secondary>extracting</secondary>
<tertiary>subsets</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3521" file="ch04_15.htm" sect="4.14.1. Problem">
<primary>extracting from
arrays</primary>
<see>arrays</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3522" file="ch04_15.htm" sect="4.14.2. Solution">
<primary>extracting array subsets</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3523" file="ch04_15.htm" sect="4.14.2. Solution">
<primary>grep operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3524" file="ch04_15.htm" sect="4.14.2. Solution">
<primary>arrays</primary>
<secondary>extracting</secondary>
<tertiary>subsets
with grep</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3525" file="ch04_16.htm" sect="4.15.1. Problem">
<primary>arrays</primary>
<secondary>sorting</secondary>
<tertiary>elements
numerically</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3526" file="ch04_16.htm" sect="4.15.1. Problem">
<primary>sorting</primary>
<secondary>array elements
numerically</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3527" file="ch04_16.htm" sect="4.15.2. Solution">
<primary>sort( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3528" file="ch04_16.htm" sect="4.15.2. Solution">
<primary>&lt; (left angle
bracket)</primary>
<secondary>&lt;=&gt; numerical comparison
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3529" file="ch04_16.htm" sect="4.15.2. Solution">
<primary>left angle
bracket (&lt;)</primary>
<secondary>&lt;=&gt; numerical comparison
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3530" file="ch04_16.htm" sect="4.15.2. Solution">
<primary>numerical
comparison (&lt;=&gt;) operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3531" file="ch04_16.htm" sect="4.15.3. Discussion">
<primary>revnum( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3532" file="ch04_17.htm" sect="4.16.1. Problem">
<primary>lists</primary>
<secondary>sorting by
computable field</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3533" file="ch04_17.htm" sect="4.16.1. Problem">
<primary>sorting</primary>
<secondary>arrays
and lists by computable field</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3534" file="ch04_17.htm" sect="4.16.1. Problem">
<primary>arrays</primary>
<secondary>sorting</secondary>
<tertiary>by
computable field</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3535" file="ch04_17.htm" sect="4.16.2. Solution">
<primary>sort( )</primary>
<secondary>by computable
field</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3536" file="ch04_17.htm" sect="4.16.3. Discussion">
<primary>| (vertical bar)</primary>
<secondary>||
operator</secondary>
<tertiary>separating multiple
comparisons</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3537" file="ch04_17.htm" sect="4.16.3. Discussion">
<primary>vertical bar
(|)</primary>
<secondary>|| operator</secondary>
<tertiary>separating
multiple comparisons</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3538" file="ch04_17.htm" sect="4.16.3. Discussion">
<primary>User::pwent
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3539" file="ch04_17.htm" sect="4.16.3. Discussion">
<primary>map( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3543" file="ch04_18.htm" sect="4.17.1. Problem">
<primary>lists</primary>
<secondary>circular</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3544" file="ch04_18.htm" sect="4.17.1. Problem">
<primary>arrays</primary>
<secondary>circular</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3545" file="ch04_18.htm" sect="4.17.1. Problem">
<primary>circular</primary>
<secondary>lists</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3546" file="ch04_18.htm" sect="4.17.2. Solution">
<primary>unshift( ), circular lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3547" file="ch04_18.htm" sect="4.17.2. Solution">
<primary>pop( ), circular lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3548" file="ch04_18.htm" sect="4.17.2. Solution">
<primary>push( )</primary>
<secondary>circular
lists</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3549" file="ch04_18.htm" sect="4.17.2. Solution">
<primary>shift( ), circular
lists</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3550" file="ch04_18.htm" sect="4.17.2. Solution">
<primary>lists</primary>
<secondary>circular</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3551" file="ch04_19.htm" sect="4.18.1. Problem">
<primary>random</primary>
<secondary>randomizing
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3552" file="ch04_19.htm" sect="4.18.1. Problem">
<primary>arrays</primary>
<secondary>randomizing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3553" file="ch04_19.htm" sect="4.18.1. Problem">
<primary>lists</primary>
<secondary>randomizing element
order</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3554" file="ch04_19.htm" sect="4.18.1. Problem">
<primary>sorting</primary>
<secondary>randomizing array
element order</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3555" file="ch04_19.htm" sect="4.18.2. Solution">
<primary>shuffle( )</primary>
<secondary>arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3556" file="ch04_19.htm" sect="4.18.2. Solution">
<primary>List::Util module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3557" file="ch04_20.htm" sect="4.19. Program: words">
<primary>arrays</primary>
<secondary>words
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3558" file="ch04_20.htm" sect="4.19. Program: words">
<primary>lists</primary>
<secondary>words
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3559" file="ch04_20.htm" sect="4.19. Program: words">
<primary>words program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3560" file="ch04_20.htm" sect="4.19. Program: words">
<primary>columns</primary>
<secondary>outputting
text by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3561" file="ch04_20.htm" sect="4.19. Program: words">
<primary>sorting</primary>
<secondary>text into
columns</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3562" file="ch04_20.htm" sect="4.19. Program: words">
<primary>words</primary>
<secondary>sorting
into columns</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3563" file="ch04_20.htm" sect="4.19. Program: words">
<primary>whitespace</primary>
<secondary>sorted
text in columns and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3571" file="ch04_21.htm" sect="4.20. Program: permute">
<primary>permute program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3572" file="ch04_21.htm" sect="4.20. Program: permute">
<primary>arrays</primary>
<secondary>permute
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3573" file="ch04_21.htm" sect="4.20. Program: permute">
<primary>lists</primary>
<secondary>permute
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3574" file="ch04_21.htm" sect="4.20. Program: permute">
<primary>permutations, generating all
possible</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3575" file="ch04_21.htm" sect="4.20. Program: permute">
<primary>memoizing technique</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3576" file="ch04_21.htm" sect="4.20. Program: permute">
<primary>factorial( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-4-ITERM-3577" file="ch04_21.htm" sect="4.20. Program: permute">
<primary>n2perm( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3584" file="ch05_01.htm" sect="5.. Introduction">
<primary>hashes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3585" file="ch05_01.htm" sect="5.. Introduction">
<primary>associative
arrays</primary>
<see>hashes</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3586" file="ch05_01.htm" sect="5.. Introduction">
<primary>% (percent
sign)</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3587" file="ch05_01.htm" sect="5.. Introduction">
<primary>percent sign
(%)</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3588" file="ch05_01.htm" sect="5.. Introduction">
<primary>$ (dollar
sign)</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3589" file="ch05_01.htm" sect="5.. Introduction">
<primary>dollar sign
($)</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3590" file="ch05_01.htm" sect="5.. Introduction">
<primary>indices</primary>
<secondary sortas="hash elements">of hash elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3591" file="ch05_01.htm" sect="5.. Introduction">
<primary>strings</primary>
<secondary>hash element
indices</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3592" file="ch05_01.htm" sect="5.. Introduction">
<primary>hashes</primary>
<secondary>arrays
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3593" file="ch05_01.htm" sect="5.. Introduction">
<primary>initializing</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3594" file="ch05_01.htm" sect="5.. Introduction">
<primary>hashes</primary>
<secondary>initializing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3595" file="ch05_01.htm" sect="5.. Introduction">
<primary>= (equals sign)</primary>
<secondary>=&gt;
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3596" file="ch05_01.htm" sect="5.. Introduction">
<primary>equals sign
(=)</primary>
<secondary>=&gt; operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3597" file="ch05_01.htm" sect="5.. Introduction">
<primary>hash-list
equivalence</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3598" file="ch05_02.htm" sect="5.1.1. Problem">
<primary>hashes</primary>
<secondary>adding elements
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3599" file="ch05_02.htm" sect="5.1.1. Problem">
<primary>elements</primary>
<secondary sortas="hashes (see hashes)">of hashes</secondary>
<see>hashes</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3600" file="ch05_03.htm" sect="5.2.1. Problem">
<primary>hashes</primary>
<secondary>testing for
keys</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3601" file="ch05_03.htm" sect="5.2.2. Solution">
<primary>exists( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3602" file="ch05_05.htm" sect="5.4.1. Problem">
<primary>deleting</primary>
<secondary>hash
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3603" file="ch05_05.htm" sect="5.4.1. Problem">
<primary>hashes</primary>
<secondary>deleting elements
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3604" file="ch05_05.htm" sect="5.4.2. Solution">
<primary>delete( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3605" file="ch05_05.htm" sect="5.4.3. Discussion">
<primary>delete( )</primary>
<secondary>compared
to undef( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3606" file="ch05_05.htm" sect="5.4.3. Discussion">
<primary>undef( ),
compared to delete( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3607" file="ch05_06.htm" sect="5.5.1. Problem">
<primary>traversing
hashes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3608" file="ch05_06.htm" sect="5.5.1. Problem">
<primary>hashes</primary>
<secondary>traversing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3609" file="ch05_06.htm" sect="5.5.2. Solution">
<primary>while loop, traversing
hashes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3610" file="ch05_06.htm" sect="5.5.2. Solution">
<primary>keys( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3611" file="ch05_06.htm" sect="5.5.2. Solution">
<primary>each( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3612" file="ch05_06.htm" sect="5.5.2. Solution">
<primary>foreach loop</primary>
<secondary>traversing
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3613" file="ch05_06.htm" sect="5.5.3. Discussion">
<primary>keys( )</primary>
<secondary>hashes</secondary>
<tertiary>traversing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3614" file="ch05_06.htm" sect="5.5.3. Discussion">
<primary>values( ), traversing
hashes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3615" file="ch05_06.htm" sect="5.5.3. Discussion">
<primary>each( )</primary>
<secondary>hashes</secondary>
<tertiary>traversing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3618" file="ch05_07.htm" sect="5.6.1. Problem">
<primary>printing</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3619" file="ch05_07.htm" sect="5.6.1. Problem">
<primary>hashes</primary>
<secondary>printing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3620" file="ch05_07.htm" sect="5.6.2. Solution">
<primary>map( )</primary>
<secondary>printing
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3621" file="ch05_07.htm" sect="5.6.3. Discussion">
<primary>Dumpvalue module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3622" file="ch05_08.htm" sect="5.7.1. Problem">
<primary>keys( )</primary>
<secondary>hashes</secondary>
<tertiary>ordering
elements</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3623" file="ch05_08.htm" sect="5.7.1. Problem">
<primary>each( )</primary>
<secondary>hashes</secondary>
<tertiary>ordering
elements of</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3624" file="ch05_08.htm" sect="5.7.1. Problem">
<primary>hashes</primary>
<secondary>retrieving in
insertion order</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3625" file="ch05_08.htm" sect="5.7.2. Solution">
<primary>Tie::IxHash module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3626" file="ch05_08.htm" sect="5.7.3. Discussion">
<primary>push( )</primary>
<secondary>Tie::IxHash module
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3627" file="ch05_09.htm" sect="5.8.1. Problem">
<primary>hashes</primary>
<secondary>multiple values per
key</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3628" file="ch05_09.htm" sect="5.8.3. Discussion">
<primary>exists( )</primary>
<secondary>multiple hash key
values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3629" file="ch05_09.htm" sect="5.8.3. Discussion">
<primary>delete( )</primary>
<secondary>multiple hash key
values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3630" file="ch05_10.htm" sect="5.9.1. Problem">
<primary>inverting hashes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3631" file="ch05_10.htm" sect="5.9.1. Problem">
<primary>hashes</primary>
<secondary>inverting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3632" file="ch05_10.htm" sect="5.9.2. Solution">
<primary>reverse( )</primary>
<secondary>inverting
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3633" file="ch05_10.htm" sect="5.9.2. Solution">
<primary>reversing</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3634" file="ch05_10.htm" sect="5.9.3. Discussion">
<primary>foodfind
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3635" file="ch05_11.htm" sect="5.10.1. Problem">
<primary>hashes</primary>
<secondary>sorting
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3636" file="ch05_11.htm" sect="5.10.1. Problem">
<primary>sorting</primary>
<secondary>hash
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3637" file="ch05_11.htm" sect="5.10.2. Solution">
<primary>keys( )</primary>
<secondary>hashes</secondary>
<tertiary>sorting</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3638" file="ch05_11.htm" sect="5.10.2. Solution">
<primary>sort( )</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3639" file="ch05_12.htm" sect="5.11.1. Problem">
<primary>hashes</primary>
<secondary>merging</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3640" file="ch05_12.htm" sect="5.11.1. Problem">
<primary>merging</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3641" file="ch05_12.htm" sect="5.11.3. Discussion">
<primary>each( )</primary>
<secondary>hashes</secondary>
<tertiary>merging</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3642" file="ch05_12.htm" sect="5.11.3. Discussion">
<primary>memory</primary>
<secondary>requirements for
hash merging technique</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3643" file="ch05_13.htm" sect="5.12.1. Problem">
<primary>hashes</primary>
<secondary>comparing keys
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3644" file="ch05_13.htm" sect="5.12.1. Problem">
<primary>comparing</primary>
<secondary>keys of
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3645" file="ch05_13.htm" sect="5.12.2. Solution">
<primary>keys( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3646" file="ch05_14.htm" sect="5.13.2. Solution">
<primary>Tie::RefHash module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3647" file="ch05_14.htm" sect="5.13.2. Solution">
<primary>hashes</primary>
<secondary>references as
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3648" file="ch05_14.htm" sect="5.13.2. Solution">
<primary>references</primary>
<secondary sortas="hash values">as hash values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3649" file="ch05_15.htm" sect="5.14.1. Problem">
<primary>preallocating memory for
hashes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3650" file="ch05_15.htm" sect="5.14.1. Problem">
<primary>memory</primary>
<secondary>preallocating for
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3651" file="ch05_15.htm" sect="5.14.1. Problem">
<primary>hashes</primary>
<secondary>presizing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3652" file="ch05_15.htm" sect="5.14.1. Problem">
<primary>size</primary>
<secondary>hashes, preallocating
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3653" file="ch05_15.htm" sect="5.14.2. Solution">
<primary>keys( )</primary>
<secondary>hashes</secondary>
<tertiary>presizing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3654" file="ch05_15.htm" sect="5.14.3. Discussion">
<primary>performance</primary>
<secondary>presizing
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3655" file="ch05_16.htm" sect="5.15.1. Problem">
<primary>hashes</primary>
<secondary>finding most common
anything</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3656" file="ch05_16.htm" sect="5.15.1. Problem">
<primary>finding</primary>
<secondary>most common
anything</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3657" file="ch05_16.htm" sect="5.15.3. Discussion">
<primary>hashes</primary>
<secondary>counting how often
something appears</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3658" file="ch05_17.htm" sect="5.16.1. Problem">
<primary>data, relationships between</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3659" file="ch05_17.htm" sect="5.16.1. Problem">
<primary>hashes</primary>
<secondary>representing data
relationships</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3660" file="ch05_17.htm" sect="5.16.1. Problem">
<primary>data, relationships
between</primary>
<seealso>variables</seealso>
<see>also
variables</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3661" file="ch05_17.htm" sect="5.16.2. Solution">
<primary>hashes</primary>
<secondary>representing
relationships between data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3662" file="ch05_18.htm" sect="5.17. Program: dutree">
<primary>dutree program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3663" file="ch05_18.htm" sect="5.17. Program: dutree">
<primary>hashes</primary>
<secondary>dutree
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3664" file="ch05_18.htm" sect="5.17. Program: dutree">
<primary>sorting</primary>
<secondary>du
command output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3665" file="ch05_18.htm" sect="5.17. Program: dutree">
<primary>du command,
sorting output of</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3666" file="ch05_18.htm" sect="5.17. Program: dutree">
<primary>whitespace</primary>
<secondary>sorting
du command output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3667" file="ch05_18.htm" sect="5.17. Program: dutree">
<primary>columns</primary>
<secondary>arranging
du command output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-5-ITERM-3668" file="ch05_18.htm" sect="5.17. Program: dutree">
<primary>output( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3676" file="ch06_01.htm" sect="6.. Introduction">
<primary>regular
expressions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3677" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>greedy pattern matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3678" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>regular expressions</primary>
<secondary>greedy
vs. non-greedy matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3679" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>eager pattern matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3680" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>regular expressions</primary>
<secondary>eager
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3681" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>non-greedy
pattern matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3682" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>NFA (non-deterministic finite
automata)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3683" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>non-deterministic
finite automata (NFA)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3684" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>backtracking</primary>
<secondary>in pattern
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3685" file="ch06_01.htm" sect="6.. The Tricky Bits">
<primary>regular
expressions</primary>
<secondary>backtracking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3686" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>regular
expressions</primary>
<secondary>pattern-matching
modifiers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3687" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>forward slash (/)</primary>
<secondary>/i
pattern-matching modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3688" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas=" (forward slash)">/ (forward slash)</primary>
<secondary>/i
pattern-matching modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3689" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas="i pattern-matching modifier">/i pattern-matching
modifier</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3690" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>forward slash (/)</primary>
<secondary>/g
pattern-matching modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3691" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas=" (forward slash)">/ (forward slash)</primary>
<secondary>/g
pattern-matching modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3692" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas="g pattern-matching modifier">/g pattern-matching
modifier</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3693" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>forward slash (/)</primary>
<secondary>/s
pattern-matching modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3694" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas=" (forward slash)">/ (forward slash)</primary>
<secondary>/s
pattern-matching modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3695" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas="s pattern-matching modifier">/s pattern-matching
modifier</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3696" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>forward slash
(/)</primary>
<secondary>/m pattern-matching
modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3697" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>/m pattern-matching
modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3698" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas="m pattern-matching modifier">/m pattern-matching
modifier</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3699" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>forward slash (/)</primary>
<secondary>/e
substitution modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3700" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas="(forward slash)">/(forward slash)</primary>
<secondary>/e substitution
modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3701" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary sortas="e substitution modifier">/e substitution
modifier</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3702" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>$ (dollar
sign)</primary>
<secondary>$* variable
(deprecated)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3703" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>dollar sign
($)</primary>
<secondary>$* variable
(deprecated)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3704" file="ch06_01.htm" sect="6.. Pattern-Matching Modifiers">
<primary>eval( )</primary>
<secondary sortas="substitution">in substitution</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3705" file="ch06_01.htm" sect="6.. Special Variables">
<primary>$ (dollar sign)</primary>
<secondary>$1, $2, . . .
(backreferences)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3706" file="ch06_01.htm" sect="6.. Special Variables">
<primary>dollar
sign ($)</primary>
<secondary>$1, $2, . . .
(backreferences)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3707" file="ch06_01.htm" sect="6.. Special Variables">
<primary>backreferences</primary>
<secondary>\1, \2,
. . .</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3708" file="ch06_01.htm" sect="6.. Special Variables">
<primary>backreferences</primary>
<secondary>$1, $2, . .
.</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3709" file="ch06_01.htm" sect="6.. Special Variables">
<primary>$ (dollar
sign)</primary>
<secondary>$+ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3710" file="ch06_01.htm" sect="6.. Special Variables">
<primary>dollar sign ($)</primary>
<secondary>$+
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3711" file="ch06_01.htm" sect="6.. Special Variables">
<primary>$ (dollar
sign)</primary>
<secondary>$&amp; variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3712" file="ch06_01.htm" sect="6.. Special Variables">
<primary>dollar sign ($)</primary>
<secondary>$&amp;
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3713" file="ch06_01.htm" sect="6.. Special Variables">
<primary>substr( )</primary>
<secondary>pattern matching
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3714" file="ch06_02.htm" sect="6.1.1. Problem">
<primary>regular expressions</primary>
<secondary>copying
and substituting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3715" file="ch06_02.htm" sect="6.1.1. Problem">
<primary>strings</primary>
<secondary>copying and
substituting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3716" file="ch06_02.htm" sect="6.1.1. Problem">
<primary>substitution</primary>
<secondary>within
strings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3717" file="ch06_02.htm" sect="6.1.3. Discussion">
<primary>( )
(parentheses)</primary>
<secondary>substitution</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3718" file="ch06_02.htm" sect="6.1.3. Discussion">
<primary>parentheses
( )</primary>
<secondary>substitution</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3719" file="ch06_03.htm" sect="6.2.1. Problem">
<primary>characters</primary>
<secondary>matching
letters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3720" file="ch06_03.htm" sect="6.2.1. Problem">
<primary>regular
expressions</primary>
<secondary>matching</secondary>
<tertiary>letters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3721" file="ch06_03.htm" sect="6.2.1. Problem">
<primary>strings</primary>
<secondary>matching</secondary>
<tertiary>letters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3725" file="ch06_04.htm" sect="6.3.1. Problem">
<primary>strings</primary>
<secondary>matching</secondary>
<tertiary>words</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3726" file="ch06_04.htm" sect="6.3.1. Problem">
<primary>words</primary>
<secondary>pattern
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3727" file="ch06_04.htm" sect="6.3.1. Problem">
<primary>regular
expressions</primary>
<secondary>matching</secondary>
<tertiary>words</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3728" file="ch06_04.htm" sect="6.3.1. Problem">
<primary>whitespace</primary>
<secondary>matching</secondary>
<tertiary>words</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3729" file="ch06_05.htm" sect="6.4.1. Problem">
<primary>regular
expressions</primary>
<secondary>commenting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3730" file="ch06_05.htm" sect="6.4.1. Problem">
<primary>comments</primary>
<secondary sortas="regular expressions">in regular
expressions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3731" file="ch06_05.htm" sect="6.4.3. Discussion">
<primary>forward slash (/)</primary>
<secondary>/x pattern
modifier</secondary>
<tertiary>comments in regular
expressions</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3732" file="ch06_05.htm" sect="6.4.3. Discussion">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>/x pattern
modifier</secondary>
<tertiary>comments in regular
expressions</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3733" file="ch06_05.htm" sect="6.4.3. Discussion">
<primary sortas="x pattern modifier">/x pattern modifier</primary>
<secondary>comments in
regular expressions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3734" file="ch06_05.htm" sect="6.4.3. Discussion">
<primary>qr// operator</primary>
<secondary>comments in
regular expressions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3737" file="ch06_06.htm" sect="6.5.1. Problem">
<primary>regular
expressions</primary>
<secondary>matching</secondary>
<tertiary>Nth
occurrence</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3738" file="ch06_06.htm" sect="6.5.2. Solution">
<primary sortas="g pattern-matching modifier">/g
pattern-matching modifier</primary>
<secondary>finding Nth
matches</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3739" file="ch06_06.htm" sect="6.5.2. Solution">
<primary>forward slash
(/)</primary>
<secondary>/g pattern-matching
modifier</secondary>
<tertiary>finding Nth
matches</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3740" file="ch06_06.htm" sect="6.5.2. Solution">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>/g pattern-matching
modifier</secondary>
<tertiary>finding Nth
matches</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3741" file="ch06_06.htm" sect="6.5.3. Discussion">
<primary>progressive matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3742" file="ch06_06.htm" sect="6.5.3. Discussion">
<primary>regular
expressions</primary>
<secondary>progressive
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3743" file="ch06_07.htm" sect="6.6.1. Problem">
<primary>regular
expressions</primary>
<secondary>matching</secondary>
<tertiary sortas="multiple lines">within multiple lines</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3744" file="ch06_07.htm" sect="6.6.1. Problem">
<primary>whitespace</primary>
<secondary>matching</secondary>
<tertiary sortas="multiple lines">within multiple lines</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3745" file="ch06_07.htm" sect="6.6.1. Problem">
<primary>line
breaks</primary>
<secondary>matching within multiple
lines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3746" file="ch06_07.htm" sect="6.6.1. Problem">
<primary>newlines</primary>
<see>line breaks
whitespace</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3747" file="ch06_07.htm" sect="6.6.1. Problem">
<primary>carriage
returns</primary>
<see>line breaks whitespace</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3748" file="ch06_07.htm" sect="6.6.2. Solution">
<primary>forward slash (/)</primary>
<secondary>/m
pattern-matching modifier</secondary>
<tertiary>multiple
lines</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3749" file="ch06_07.htm" sect="6.6.2. Solution">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>/m pattern-matching
modifier</secondary>
<tertiary>multiple lines</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3750" file="ch06_07.htm" sect="6.6.2. Solution">
<primary sortas="m pattern-matching modifier">/m
pattern-matching modifier</primary>
<secondary>multiple
lines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3751" file="ch06_07.htm" sect="6.6.2. Solution">
<primary>forward slash (/)</primary>
<secondary>/s
pattern-matching modifier</secondary>
<tertiary>multiple
lines</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3752" file="ch06_07.htm" sect="6.6.2. Solution">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>/s pattern-matching
modifier</secondary>
<tertiary>multiple lines</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3753" file="ch06_07.htm" sect="6.6.2. Solution">
<primary sortas="s pattern-matching modifier">/s
pattern-matching modifier</primary>
<secondary>multiple
lines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3754" file="ch06_07.htm" sect="6.6.3. Discussion">
<primary>$
(dollar sign)</primary>
<secondary>$. variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3755" file="ch06_07.htm" sect="6.6.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$.
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3759" file="ch06_08.htm" sect="6.7.1. Problem">
<primary>pattern separators, reading data
with</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3760" file="ch06_08.htm" sect="6.7.1. Problem">
<primary>input</primary>
<secondary>reading</secondary>
<tertiary>records
with pattern separators</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3761" file="ch06_08.htm" sect="6.7.1. Problem">
<primary>CSV (comma-separated
values)</primary>
<secondary>reading records
from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3762" file="ch06_08.htm" sect="6.7.1. Problem">
<primary>records</primary>
<secondary>reading</secondary>
<tertiary sortas="pattern separators">with pattern
separators</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3763" file="ch06_08.htm" sect="6.7.1. Problem">
<primary>reading</primary>
<secondary>records</secondary>
<tertiary sortas="pattern separators">with pattern
separators</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3764" file="ch06_08.htm" sect="6.7.1. Problem">
<primary>records</primary>
<secondary>comma-separated</secondary>
<see>CSV</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3765" file="ch06_08.htm" sect="6.7.2. Solution">
<primary>split( )</primary>
<secondary>reading records
with pattern separators</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3766" file="ch06_09.htm" sect="6.8.1. Problem">
<primary>line
breaks</primary>
<secondary>extracting ranges of
lines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3767" file="ch06_09.htm" sect="6.8.1. Problem">
<primary>whitespace</primary>
<secondary>extracting
ranges of lines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3768" file="ch06_09.htm" sect="6.8.1. Problem">
<primary>regular
expressions</primary>
<secondary>extracting ranges of
lines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3769" file="ch06_09.htm" sect="6.8.2. Solution">
<primary>dot (.)</primary>
<secondary>. . and . . . range
operators</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3770" file="ch06_09.htm" sect="6.8.2. Solution">
<primary>.
(dot)</primary>
<secondary>. . and . . . range
operators</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3774" file="ch06_10.htm" sect="6.9.1. Problem">
<primary>wildcards (shell) for regular expression
matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3775" file="ch06_10.htm" sect="6.9.1. Problem">
<primary>regular
expressions</primary>
<secondary>matching</secondary>
<tertiary>shell
globs as</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3776" file="ch06_10.htm" sect="6.9.1. Problem">
<primary>shell wildcards
for regular expression matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3777" file="ch06_10.htm" sect="6.9.1. Problem">
<primary>converting</primary>
<secondary>shell wildcards
for regular expression matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3778" file="ch06_10.htm" sect="6.9.3. Discussion">
<primary>File::KGlob
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3779" file="ch06_11.htm" sect="6.10.2. Solution">
<primary>forward slash
(/)</primary>
<secondary>/o pattern-matching
modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3780" file="ch06_11.htm" sect="6.10.2. Solution">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>/o pattern-matching
modifier</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3781" file="ch06_11.htm" sect="6.10.2. Solution">
<primary sortas="o pattern-matching modifier">/o pattern-matching modifier</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3782" file="ch06_11.htm" sect="6.10.3. Discussion">
<primary>qr// operator</primary>
<secondary>interpolated
matches</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3786" file="ch06_12.htm" sect="6.11.1. Problem">
<primary>regular
expressions</primary>
<secondary>testing for invalid
patterns</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3787" file="ch06_12.htm" sect="6.11.2. Solution">
<primary>$ (dollar sign)</primary>
<secondary>$@
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3788" file="ch06_12.htm" sect="6.11.2. Solution">
<primary>dollar sign
($)</primary>
<secondary>$@ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3790" file="ch06_13.htm" sect="6.12.1. Problem">
<primary>capitalization</primary>
<secondary>honoring
locale when matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3791" file="ch06_13.htm" sect="6.12.1. Problem">
<primary>regular expressions</primary>
<secondary>honoring
locale settings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3792" file="ch06_13.htm" sect="6.12.1. Problem">
<primary>locale
settings</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3793" file="ch06_13.htm" sect="6.12.1. Problem">
<primary>case
sensitivity</primary>
<secondary>honoring locale when
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3794" file="ch06_13.htm" sect="6.12.2. Solution">
<primary>use pragmas</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3795" file="ch06_13.htm" sect="6.12.2. Solution">
<primary>use locale pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3796" file="ch06_14.htm" sect="6.13.1. Problem">
<primary>regular expressions</primary>
<secondary>fuzzy
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3797" file="ch06_14.htm" sect="6.13.1. Problem">
<primary>approximate
matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3798" file="ch06_14.htm" sect="6.13.1. Problem">
<primary>fuzzy
matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3799" file="ch06_14.htm" sect="6.13.1. Problem">
<primary>words</primary>
<secondary>fuzzy
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3800" file="ch06_14.htm" sect="6.13.3. Discussion">
<primary>String::Approx
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3801" file="ch06_15.htm" sect="6.14.1. Problem">
<primary>regular
expressions</primary>
<secondary>matching</secondary>
<tertiary sortas="where last pattern ended">from where last pattern
ended</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3802" file="ch06_15.htm" sect="6.14.3. Discussion">
<primary>forward slash (/)</primary>
<secondary>/g
pattern-matching modifier</secondary>
<tertiary>where last pattern
ended</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3803" file="ch06_15.htm" sect="6.14.3. Discussion">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>/g pattern-matching
modifier</secondary>
<tertiary>where last pattern
ended</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3804" file="ch06_15.htm" sect="6.14.3. Discussion">
<primary sortas="g pattern-matching modifier">/g pattern-matching
modifier</primary>
<secondary>where last pattern
ended</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3805" file="ch06_15.htm" sect="6.14.3. Discussion">
<primary>regular
expressions</primary>
<secondary>\G anchor</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3806" file="ch06_15.htm" sect="6.14.3. Discussion">
<primary>\ (backslash)</primary>
<secondary>\G
anchor</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3807" file="ch06_15.htm" sect="6.14.3. Discussion">
<primary>backslash
(\)</primary>
<secondary>\G anchor</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3808" file="ch06_15.htm" sect="6.14.3. Discussion">
<primary sortas="G anchor">\G
anchor</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3809" file="ch06_15.htm" sect="6.14.3. Discussion">
<primary>pos( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3810" file="ch06_16.htm" sect="6.15.1. Problem">
<primary>regular
expressions</primary>
<secondary>greedy vs. non-greedy
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3811" file="ch06_16.htm" sect="6.15.1. Problem">
<primary>non-greedy pattern
matching</primary>
<secondary sortas="greedy pattern matching">vs.
greedy pattern matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3812" file="ch06_16.htm" sect="6.15.1. Problem">
<primary>greedy pattern
matching</primary>
<secondary sortas="non-greedy pattern matching">vs.
non-greedy pattern matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3813" file="ch06_16.htm" sect="6.15.3. Discussion">
<primary>maximal
matching</primary>
<secondary>quantifiers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3814" file="ch06_16.htm" sect="6.15.3. Discussion">
<primary>minimal
matching</primary>
<secondary>quantifiers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3818" file="ch06_17.htm" sect="6.16.1. Problem">
<primary>regular
expressions</primary>
<secondary>doubled words</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3819" file="ch06_17.htm" sect="6.16.1. Problem">
<primary>words</primary>
<secondary>double,
finding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3820" file="ch06_17.htm" sect="6.16.1. Problem">
<primary>double words,
finding</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3821" file="ch06_17.htm" sect="6.16.1. Problem">
<primary>strings</primary>
<secondary>doubled
words, finding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3822" file="ch06_17.htm" sect="6.16.2. Solution">
<primary>$ (dollar sign)</primary>
<secondary>$1, $2, . . .
(backreferences)</secondary>
<tertiary>finding doubled
words</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3823" file="ch06_17.htm" sect="6.16.2. Solution">
<primary>dollar sign
($)</primary>
<secondary>$1, $2, . . .
(backreferences)</secondary>
<tertiary>finding doubled
words</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3824" file="ch06_17.htm" sect="6.16.2. Solution">
<primary>backreferences</primary>
<secondary>\1, \2,
. . .</secondary>
<tertiary>finding doubled
words</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3825" file="ch06_17.htm" sect="6.16.2. Solution">
<primary>backreferences</primary>
<secondary>$1, $2, . .
.</secondary>
<tertiary>finding doubled
words</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3826" file="ch06_17.htm" sect="6.16.2. Solution">
<primary>\
(backslash)</primary>
<secondary>\1, \2, . . .
(backreferences)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3827" file="ch06_17.htm" sect="6.16.2. Solution">
<primary>backslash (\)</primary>
<secondary>\1,
\2, . . . (backreferences)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3828" file="ch06_17.htm" sect="6.16.3. Discussion">
<primary>regular
expressions</primary>
<secondary>backtracking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3829" file="ch06_17.htm" sect="6.16.3. Discussion">
<primary>backtracking</primary>
<secondary>finding doubled
words</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3834" file="ch06_18.htm" sect="6.17.1. Problem">
<primary>regular
expressions</primary>
<secondary>matching</secondary>
<tertiary>nested
patterns</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3835" file="ch06_18.htm" sect="6.17.1. Problem">
<primary>nested</primary>
<secondary>pattern
matching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3836" file="ch06_18.htm" sect="6.17.2. Solution">
<primary>Text::Balanced module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3837" file="ch06_18.htm" sect="6.17.2. Solution">
<primary>extract_bracketed( ), matching nested
patterns</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3838" file="ch06_18.htm" sect="6.17.3. Discussion">
<primary>Regexp::Common
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3839" file="ch06_18.htm" sect="6.17.3. Discussion">
<primary>Text::Balanced
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3840" file="ch06_19.htm" sect="6.18.1. Problem">
<primary>regular
expressions</primary>
<secondary>logical functionality
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3841" file="ch06_19.htm" sect="6.18.1. Problem">
<primary>AND functionality in regular
expressions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3842" file="ch06_19.htm" sect="6.18.1. Problem">
<primary>OR functionality in regular
expressions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3843" file="ch06_19.htm" sect="6.18.1. Problem">
<primary>NOT functionality in regular
expressions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3844" file="ch06_19.htm" sect="6.18.1. Problem">
<primary>logical functionality in
patterns</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3845" file="ch06_19.htm" sect="6.18.1. Problem">
<primary>Boolean connectives in
patterns</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3846" file="ch06_19.htm" sect="6.18.1. Problem">
<primary>HTML forms</primary>
<secondary>Boolean
connectives in patterns</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3847" file="ch06_19.htm" sect="6.18.1. Problem">
<primary>configuration files</primary>
<secondary>Boolean
connectives in patterns</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3848" file="ch06_19.htm" sect="6.18.3. Discussion">
<primary>minimal matching</primary>
<secondary>Boolean
connectives in patterns</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3849" file="ch06_19.htm" sect="6.18.3. Discussion">
<primary>maximal matching</primary>
<secondary>Boolean
connectives in patterns</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3850" file="ch06_19.htm" sect="6.18.3. Discussion">
<primary>regular
expressions</primary>
<secondary>pattern-matching
modifiers</secondary>
<tertiary>Boolean
connectives</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3851" file="ch06_19.htm" sect="6.18.3. Discussion">
<primary>- (minus
sign), modifiers and</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3852" file="ch06_19.htm" sect="6.18.3. Discussion">
<primary>minus
sign (-), modifiers and</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3859" file="ch06_20.htm" sect="6.19.1. Problem">
<primary>regular expressions</primary>
<secondary>email
addresses</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3860" file="ch06_20.htm" sect="6.19.1. Problem">
<primary>email</primary>
<secondary>matching valid
addresses</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3861" file="ch06_20.htm" sect="6.19.1. Problem">
<primary>addresses,
email, matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3862" file="ch06_20.htm" sect="6.19.3. Discussion">
<primary>personal identification number
(PIN)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3863" file="ch06_20.htm" sect="6.19.3. Discussion">
<primary>PIN (personal
identification number)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3864" file="ch06_20.htm" sect="6.19.3. Discussion">
<primary>Email::Valid module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3865" file="ch06_21.htm" sect="6.20.1. Problem">
<primary>abbreviations,
matching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3866" file="ch06_21.htm" sect="6.20.1. Problem">
<primary>regular
expressions</primary>
<secondary>matching</secondary>
<tertiary>abbreviations</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3867" file="ch06_21.htm" sect="6.20.1. Problem">
<primary>words</primary>
<secondary>matching
abbreviations</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3868" file="ch06_21.htm" sect="6.20.2. Solution">
<primary>Text::Abbrev
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3869" file="ch06_21.htm" sect="6.20.3. Discussion">
<primary>Text::Abbrev module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3870" file="ch06_21.htm" sect="6.20.3. Discussion">
<primary>abbrev( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3874" file="ch06_22.htm" sect="6.21. Program: urlify">
<primary>regular expressions</primary>
<secondary>urlify
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3875" file="ch06_22.htm" sect="6.21. Program: urlify">
<primary>urlify
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3876" file="ch06_22.htm" sect="6.21. Program: urlify">
<primary>URLs (Uniform
Resource Locators)</primary>
<secondary>putting HTML links
around</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3877" file="ch06_22.htm" sect="6.21. Program: urlify">
<primary>HTML</primary>
<secondary>putting links around
URLs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3878" file="ch06_23.htm" sect="6.22. Program: tcgrep">
<primary>tcgrep program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3879" file="ch06_23.htm" sect="6.22. Program: tcgrep">
<primary>regular
expressions</primary>
<secondary>tcgrep
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3880" file="ch06_23.htm" sect="6.22. Program: tcgrep">
<primary>finding</primary>
<secondary>patterns</secondary>
<see>regular
expressions</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3881" file="ch06_23.htm" sect="6.22. Program: tcgrep">
<primary>searching for
patterns</primary>
<see>regular expressions</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3882" file="ch06_23.htm" sect="6.22. Program: tcgrep">
<primary>grep program (Unix), Perl rewrite
of</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-6-ITERM-3885" file="ch06_24.htm" sect="6.23. Regular Expression Grab Bag">
<primary>regular
expressions</primary>
<secondary>useful, list
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3888" file="ch07_01.htm" sect="7.. Introduction">
<primary>file
access</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3889" file="ch07_01.htm" sect="7.. Getting a Handle on the File">
<primary>filehandles</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3890" file="ch07_01.htm" sect="7.. Getting a Handle on the File">
<primary>file
access</primary>
<secondary>filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3891" file="ch07_01.htm" sect="7.. Getting a Handle on the File">
<primary>blocking( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3892" file="ch07_01.htm" sect="7.. Getting a Handle on the File">
<primary>IO::File module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3895" file="ch07_01.htm" sect="7.. Standard Filehandles">
<primary>STDIN
filehandle</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3896" file="ch07_01.htm" sect="7.. Standard Filehandles">
<primary>STDOUT
filehandle</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3897" file="ch07_01.htm" sect="7.. Standard Filehandles">
<primary>STDERR
filehandle</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3898" file="ch07_01.htm" sect="7.. Standard Filehandles">
<primary>file
access</primary>
<secondary>filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3899" file="ch07_01.htm" sect="7.. Standard Filehandles">
<primary>filehandles</primary>
<secondary>standard</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3900" file="ch07_01.htm" sect="7.. Standard Filehandles">
<primary>standard
filehandles</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3907" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>I/O
operations</primary>
<secondary>access modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3908" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>file
access</primary>
<secondary>access modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3909" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>open( )</primary>
<secondary>file access
modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3910" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>syscalls</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3911" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>system calls</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3912" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>line input operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3913" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>operators</primary>
<secondary>line
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3914" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>input</primary>
<secondary>line input
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3915" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>records</primary>
<secondary>reading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3916" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>&lt; (left angle
bracket)</primary>
<secondary>&lt;FH&gt; line input
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3917" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>left angle
bracket (&lt;)</primary>
<secondary>&lt;FH&gt; line input
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3918" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>reading</primary>
<secondary>records</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3919" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>&lt; (left angle
bracket)</primary>
<secondary>file-access
modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3920" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>&gt; (right angle
bracket), file-access modes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3921" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>left angle bracket
(&lt;)</primary>
<secondary>file-access modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3922" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>right angle bracket (&gt;), file-access
modes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3923" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>ARGV line input operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3924" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>filehandles</primary>
<secondary>seek
offset</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3925" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>seek offset,
filehandles</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3926" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>close( )</primary>
<secondary>filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3927" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>portability</primary>
<secondary>closing
filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3928" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>STDOUT
filehandle</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3929" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>$ (dollar sign)</primary>
<secondary>$|
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3930" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>dollar sign
($)</primary>
<secondary>$| variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3931" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>buffered input/output</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3932" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>unbuffered input/output</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3933" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>I/O
operations</primary>
<secondary>buffering</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3934" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>I/O layers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3935" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>I/O
layers</primary>
<secondary>unix</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3936" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>unix layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3937" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>I/O
layers</primary>
<secondary>stdio</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3938" file="ch07_01.htm" sect="7.. I/O Operations">
<primary>stdio layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3941" file="ch07_02.htm" sect="7.1.1. Problem">
<primary>opening</primary>
<secondary>files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3942" file="ch07_02.htm" sect="7.1.1. Problem">
<primary>files</primary>
<secondary>opening</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3943" file="ch07_02.htm" sect="7.1.2. Solution">
<primary>open( )</primary>
<secondary>filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3944" file="ch07_02.htm" sect="7.1.2. Solution">
<primary>sysopen( )</primary>
<secondary>filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3945" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>file access</primary>
<secondary>access modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3946" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>&lt; (left angle
bracket)</primary>
<secondary>file-access
modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3947" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>left angle bracket
(&lt;)</primary>
<secondary>file-access modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3948" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>&gt; (right angle bracket), file-access
modes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3949" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>right angle bracket
(&gt;), file-access modes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3950" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>+ (plus sign), file-access
modes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3951" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>plus sign (+),
file-access modes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3952" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>O_
flags</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3953" file="ch07_02.htm" sect="7.1.3. Discussion">
<primary>umask values</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3956" file="ch07_03.htm" sect="7.2.1. Problem">
<primary>filenames</primary>
<secondary>unusual, opening
files with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3957" file="ch07_03.htm" sect="7.2.1. Problem">
<primary>files</primary>
<secondary sortas="unusual filenames, opening">with unusual filenames,
opening</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3958" file="ch07_03.htm" sect="7.2.2. Solution">
<primary>open( )</primary>
<secondary>unusual
filenames</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3959" file="ch07_03.htm" sect="7.2.2. Solution">
<primary>sysopen( )</primary>
<secondary>unusual
filenames</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3960" file="ch07_04.htm" sect="7.3.1. Problem">
<primary>tilde (~), in filenames,
expanding</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3961" file="ch07_04.htm" sect="7.3.1. Problem">
<primary>filenames</primary>
<secondary>expanding tildes
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3962" file="ch07_04.htm" sect="7.3.1. Problem">
<primary>~ (tilde), in
filenames, expanding</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3963" file="ch07_04.htm" sect="7.3.2. Solution">
<primary>glob( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3964" file="ch07_04.htm" sect="7.3.2. Solution">
<primary>substitution</primary>
<secondary>expanding
filenames</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3965" file="ch07_04.htm" sect="7.3.3. Discussion">
<primary>URLs (Uniform Resource
Locators)</primary>
<secondary>expanding tildes in
filenames</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3966" file="ch07_04.htm" sect="7.3.3. Discussion">
<primary>File::Glob module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3967" file="ch07_05.htm" sect="7.4.1. Problem">
<primary>filenames</primary>
<secondary>reporting in
errors</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3968" file="ch07_05.htm" sect="7.4.1. Problem">
<primary>errors</primary>
<secondary>reporting filenames
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3969" file="ch07_05.htm" sect="7.4.1. Problem">
<primary>filehandles</primary>
<secondary>reporting
filenames in errors</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3970" file="ch07_05.htm" sect="7.4.2. Solution">
<primary>filenames</primary>
<secondary>using as
filehandle</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3971" file="ch07_05.htm" sect="7.4.2. Solution">
<primary>filehandles</primary>
<secondary>using filename
as</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3972" file="ch07_05.htm" sect="7.4.2. Solution">
<primary>errors</primary>
<seealso>exceptions</seealso>
<see>also
exceptions</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3973" file="ch07_06.htm" sect="7.5.1. Problem">
<primary>*
(asterisk), typeglobs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3974" file="ch07_06.htm" sect="7.5.1. Problem">
<primary>asterisk (*),
typeglobs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3975" file="ch07_06.htm" sect="7.5.1. Problem">
<primary>filehandles</primary>
<secondary>storing
in variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3976" file="ch07_06.htm" sect="7.5.1. Problem">
<primary>variables</primary>
<secondary>filehandles
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3977" file="ch07_06.htm" sect="7.5.2. Solution">
<primary>open( )</primary>
<secondary>filehandles</secondary>
<tertiary>storing
in variables</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3978" file="ch07_06.htm" sect="7.5.3. Discussion">
<primary>typeglobs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3979" file="ch07_06.htm" sect="7.5.3. Discussion">
<primary>filehandles</primary>
<secondary>autovivified</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3980" file="ch07_06.htm" sect="7.5.3. Discussion">
<primary>print( )</primary>
<secondary>filehandles</secondary>
<tertiary>storing
in variables</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3981" file="ch07_06.htm" sect="7.5.3. Discussion">
<primary>printf( )</primary>
<secondary>storing
filehandles in variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3982" file="ch07_06.htm" sect="7.5.3. Discussion">
<primary>indirect object
notation</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3983" file="ch07_06.htm" sect="7.5.3. Discussion">
<primary>IO::Handle
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3984" file="ch07_06.htm" sect="7.5.3. Discussion">
<primary>getline( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3990" file="ch07_07.htm" sect="7.6.2. Solution">
<primary>Symbol module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3991" file="ch07_07.htm" sect="7.6.2. Solution">
<primary>qualify_to_ref( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3992" file="ch07_08.htm" sect="7.7.1. Problem">
<primary>filehandles</primary>
<secondary>caching</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3993" file="ch07_08.htm" sect="7.7.1. Problem">
<primary>caching open filehandles</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3994" file="ch07_08.htm" sect="7.7.1. Problem">
<primary>file
access</primary>
<secondary>filehandles</secondary>
<tertiary>caching
open</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3995" file="ch07_08.htm" sect="7.7.2. Solution">
<primary>FileCache module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3996" file="ch07_08.htm" sect="7.7.2. Solution">
<primary>open( )</primary>
<secondary>caching open
filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3997" file="ch07_08.htm" sect="7.7.3. Discussion">
<primary>cacheout( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3998" file="ch07_08.htm" sect="7.7.3. Discussion">
<primary>NOFILE
constant</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-3999" file="ch07_09.htm" sect="7.8.1. Problem">
<primary>filehandles</primary>
<secondary>printing to
multiple simultaneously</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4000" file="ch07_09.htm" sect="7.8.1. Problem">
<primary>printing</primary>
<secondary>to multiple
filehandles simultaneously</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4001" file="ch07_09.htm" sect="7.8.1. Problem">
<primary>file
access</primary>
<secondary>filehandles</secondary>
<tertiary>printing
to multiple</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4002" file="ch07_09.htm" sect="7.8.2. Solution">
<primary>foreach
loop</primary>
<secondary>printing to multiple
filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4003" file="ch07_09.htm" sect="7.8.3. Discussion">
<primary>print( )</primary>
<secondary>filehandles</secondary>
<tertiary>outputting
to multiple</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4004" file="ch07_09.htm" sect="7.8.3. Discussion">
<primary>IO::Tee module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4005" file="ch07_10.htm" sect="7.9.1. Problem">
<primary>file access</primary>
<secondary>opening and
closing file descriptors</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4006" file="ch07_10.htm" sect="7.9.1. Problem">
<primary>opening</primary>
<secondary>file
descriptors</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4007" file="ch07_10.htm" sect="7.9.1. Problem">
<primary>close( )</primary>
<secondary>file
descriptors</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4008" file="ch07_10.htm" sect="7.9.1. Problem">
<primary>file
descriptors, opening and closing</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4009" file="ch07_10.htm" sect="7.9.2. Solution">
<primary>&lt; (left angle
bracket)</primary>
<secondary>&lt;&amp;= and &lt;&amp; open
modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4010" file="ch07_10.htm" sect="7.9.2. Solution">
<primary>left angle bracket
(&lt;)</primary>
<secondary>&lt;&amp;= and &lt;&amp; open
modes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4011" file="ch07_10.htm" sect="7.9.2. Solution">
<primary>new_from_fd( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4012" file="ch07_10.htm" sect="7.9.2. Solution">
<primary>IO::Handle module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4013" file="ch07_10.htm" sect="7.9.2. Solution">
<primary>POSIX::close( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4014" file="ch07_10.htm" sect="7.9.3. Discussion">
<primary>MHCONTEXTFD
environment variable</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4015" file="ch07_10.htm" sect="7.9.3. Discussion">
<primary>environment
variables</primary>
<secondary>MHCONTEXTFD</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4016" file="ch07_10.htm" sect="7.9.3. Discussion">
<primary>POSIX::close( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4017" file="ch07_11.htm" sect="7.10.1. Problem">
<primary>copying</primary>
<secondary>filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4018" file="ch07_11.htm" sect="7.10.1. Problem">
<primary>filehandles</primary>
<secondary>copying</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4019" file="ch07_11.htm" sect="7.10.1. Problem">
<primary>file
access</primary>
<secondary>filehandles</secondary>
<tertiary>copying</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4020" file="ch07_11.htm" sect="7.10.1. Problem">
<primary>aliases</primary>
<secondary>for
filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4021" file="ch07_11.htm" sect="7.10.3. Discussion">
<primary>typeglobs</primary>
<secondary>filehandles with,
creating alias for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4022" file="ch07_11.htm" sect="7.10.3. Discussion">
<primary>I/O
layers</primary>
<secondary>stdio</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4023" file="ch07_11.htm" sect="7.10.3. Discussion">
<primary>stdio layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4024" file="ch07_11.htm" sect="7.10.3. Discussion">
<primary>open( )</primary>
<secondary>file descriptors,
creating aliases for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4029" file="ch07_12.htm" sect="7.11.1. Problem">
<primary>files</primary>
<secondary>creating
temporary</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4030" file="ch07_12.htm" sect="7.11.1. Problem">
<primary>creating</primary>
<secondary>temporary
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4031" file="ch07_12.htm" sect="7.11.2. Solution">
<primary>File::Temp module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4032" file="ch07_12.htm" sect="7.11.2. Solution">
<primary>tempfile( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4033" file="ch07_12.htm" sect="7.11.3. Discussion">
<primary>open( )</primary>
<secondary>creating temporary
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4034" file="ch07_13.htm" sect="7.12.1. Problem">
<primary>file access</primary>
<secondary>storing files in
program text</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4035" file="ch07_13.htm" sect="7.12.1. Problem">
<primary>files</primary>
<secondary>storing in program
text</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4036" file="ch07_13.htm" sect="7.12.2. Solution">
<primary sortas="DATA token">__DATA__
token</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4037" file="ch07_13.htm" sect="7.12.2. Solution">
<primary sortas="END token">__END__ token</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4038" file="ch07_13.htm" sect="7.12.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$0
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4039" file="ch07_13.htm" sect="7.12.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$0 variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4040" file="ch07_13.htm" sect="7.12.3. Discussion">
<primary sortas="0 variable">$0
variable</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4041" file="ch07_15.htm" sect="7.14.1. Problem">
<primary>filenames</primary>
<secondary>filtering
as input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4042" file="ch07_15.htm" sect="7.14.1. Problem">
<primary>filtering</primary>
<secondary>filenames
as input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4043" file="ch07_15.htm" sect="7.14.1. Problem">
<primary>file
access</primary>
<secondary>filtering filename
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4044" file="ch07_15.htm" sect="7.14.2. Solution">
<primary>&lt;&gt; (angle
brackets)</primary>
<secondary>line input
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4045" file="ch07_15.htm" sect="7.14.2. Solution">
<primary>angle brackets
(&lt;&gt;)</primary>
<secondary>line input
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4046" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas=" (hyphen)">- (hyphen)</primary>
<secondary>-p command-line option</secondary>
<tertiary>writing filters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4047" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>hyphen (-)</primary>
<secondary>-p command-line option</secondary>
<tertiary>writing filters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4048" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas="p command-line option">-p command-line option</primary>
<secondary>writing filters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4049" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas=" (hyphen)">- (hyphen)</primary>
<secondary>-n command-line
option, writing filters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4050" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>hyphen (-)</primary>
<secondary>-n command-line
option, writing filters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4051" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas="n command-line option, writing filters">-n command-line
option, writing filters</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4052" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>filenames</primary>
<secondary>filtering
as input</secondary>
<tertiary>command-line
options</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4053" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>filtering</primary>
<secondary>filenames
as input</secondary>
<tertiary>command-line
options</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4054" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>file
access</primary>
<secondary>filtering filename
input</secondary>
<tertiary>command-line
options</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4055" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas=" (hyphen)">- (hyphen)</primary>
<secondary>-i command-line
option</secondary>
<tertiary>writing filters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4056" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>hyphen (-)</primary>
<secondary>-i command-line
option</secondary>
<tertiary>writing filters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4057" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas="i command-line option">-i command-line
option</primary>
<secondary>writing filters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4058" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>-
(hyphen)</primary>
<secondary>-a command-line option, writing
filters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4059" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>hyphen
(-)</primary>
<secondary>-a command-line option, writing
filters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4060" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas="a command-line optio, writing filters">-a command-line option, writing
filters</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4061" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas=" (hyphen)">- (hyphen)</primary>
<secondary>-e command-line
option, writing filters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4062" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>hyphen (-)</primary>
<secondary>-e command-line
option, writing filters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4063" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary sortas="e command-line option, writing filters">-e command-line
option, writing filters</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4064" file="ch07_15.htm" sect="7.14.3.2. Command-line options">
<primary>LINE: (implicit loop
label)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4071" file="ch07_16.htm" sect="7.15.1. Problem">
<primary>file
contents</primary>
<secondary>modifying</secondary>
<tertiary>with
temporary files</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4072" file="ch07_16.htm" sect="7.15.1. Problem">
<primary>temporary
files, modifying
files</primary>
<secondary>with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4073" file="ch07_16.htm" sect="7.15.1. Problem">
<primary>editing</primary>
<secondary>files</secondary>
<see>file
contents</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4074" file="ch07_16.htm" sect="7.15.1. Problem">
<primary>modifying
files</primary>
<see>file contents</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4075" file="ch07_16.htm" sect="7.15.1. Problem">
<primary>file access</primary>
<secondary>editing
files</secondary>
<see>file contents</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4076" file="ch07_16.htm" sect="7.15.2. Solution">
<primary>rename( )</primary>
<secondary>modifying
files with temporary files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4077" file="ch07_17.htm" sect="7.16.1. Problem">
<primary>file
contents</primary>
<secondary>modifying</secondary>
<tertiary>with -i
switch</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4078" file="ch07_17.htm" sect="7.16.2. Solution">
<primary sortas="p command-line option">-p command-line
option</primary>
<secondary sortas="modifying files with">modifying
files with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4079" file="ch07_17.htm" sect="7.16.2. Solution">
<primary>-
(hyphen)</primary>
<secondary>-p command-line
option</secondary>
<tertiary>modifying files
with</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4080" file="ch07_17.htm" sect="7.16.2. Solution">
<primary>hyphen
(-)</primary>
<secondary>-p command-line
option</secondary>
<tertiary>modifying files
with</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4081" file="ch07_17.htm" sect="7.16.2. Solution">
<primary sortas="i command-line option">-i
command-line option</primary>
<secondary>modifying files
with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4082" file="ch07_17.htm" sect="7.16.2. Solution">
<primary>-
(hyphen)</primary>
<secondary>-i command-line
option</secondary>
<tertiary>modifying files
with</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4083" file="ch07_17.htm" sect="7.16.2. Solution">
<primary>hyphen
(-)</primary>
<secondary>-i command-line
option</secondary>
<tertiary>modifying files
with</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4084" file="ch07_17.htm" sect="7.16.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$^I
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4085" file="ch07_17.htm" sect="7.16.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$^I variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4086" file="ch07_17.htm" sect="7.16.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$.
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4087" file="ch07_17.htm" sect="7.16.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$. variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4088" file="ch07_18.htm" sect="7.17.1. Problem">
<primary>file
contents</primary>
<secondary>modifying</secondary>
<tertiary>without
temporary files</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4089" file="ch07_18.htm" sect="7.17.1. Problem">
<primary>temporary
files, modifying
files</primary>
<secondary>without</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4090" file="ch07_19.htm" sect="7.18.1. Problem">
<primary>file
access</primary>
<secondary>locking files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4091" file="ch07_19.htm" sect="7.18.1. Problem">
<primary>locking</primary>
<secondary>files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4092" file="ch07_19.htm" sect="7.18.1. Problem">
<primary>blocking file
access</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4093" file="ch07_19.htm" sect="7.18.1. Problem">
<primary>files</primary>
<secondary>locking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4094" file="ch07_19.htm" sect="7.18.2. Solution">
<primary>flock( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4095" file="ch07_19.htm" sect="7.18.2. Solution">
<primary>advisory
locking</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4096" file="ch07_19.htm" sect="7.18.2. Solution">
<primary>locking</primary>
<secondary>files</secondary>
<tertiary>advisory
locking</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4097" file="ch07_19.htm" sect="7.18.2. Solution">
<primary>files</primary>
<secondary>locking</secondary>
<tertiary>advisory
locking</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4098" file="ch07_19.htm" sect="7.18.3. Discussion">
<primary>shared locks</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4099" file="ch07_19.htm" sect="7.18.3. Discussion">
<primary>exclusive locks</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4100" file="ch07_19.htm" sect="7.18.3. Discussion">
<primary>close( )</primary>
<secondary>file
locks</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4101" file="ch07_19.htm" sect="7.18.3. Discussion">
<primary>File::NFSLock
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4102" file="ch07_19.htm" sect="7.18.3. Discussion">
<primary>flock( )</primary>
<secondary>compared to SysV
lockf( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4103" file="ch07_19.htm" sect="7.18.3. Discussion">
<primary>fnctl( ), locking
files</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4108" file="ch07_20.htm" sect="7.19.1. Problem">
<primary>file
access</primary>
<secondary>flushing output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4109" file="ch07_20.htm" sect="7.19.1. Problem">
<primary>flushing output</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4110" file="ch07_20.htm" sect="7.19.1. Problem">
<primary>I/O
operations</primary>
<secondary>flushing
output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4111" file="ch07_20.htm" sect="7.19.1. Problem">
<primary>output</primary>
<secondary>flushing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4112" file="ch07_20.htm" sect="7.19.2. Solution">
<primary>$ (dollar sign)</primary>
<secondary>$|
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4113" file="ch07_20.htm" sect="7.19.2. Solution">
<primary>dollar sign
($)</primary>
<secondary>$| variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4114" file="ch07_20.htm" sect="7.19.2. Solution">
<primary>autoflush( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4115" file="ch07_20.htm" sect="7.19.3. Discussion">
<primary>buffered input/output</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4116" file="ch07_20.htm" sect="7.19.3. Discussion">
<primary>unbuffered input/output</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4117" file="ch07_20.htm" sect="7.19.3. Discussion">
<primary>I/O
operations</primary>
<secondary>buffering</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4118" file="ch07_20.htm" sect="7.19.3. Discussion">
<primary>I/O layers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4119" file="ch07_20.htm" sect="7.19.3. Discussion">
<primary>Unix</primary>
<secondary>I/O
layers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4120" file="ch07_20.htm" sect="7.19.3. Discussion">
<primary>I/O
layers</primary>
<secondary>unix</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4121" file="ch07_20.htm" sect="7.19.3. Discussion">
<primary>unix layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4126" file="ch07_21.htm" sect="7.20.1. Problem">
<primary>I/O
operations</primary>
<secondary>non-blocking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4127" file="ch07_21.htm" sect="7.20.1. Problem">
<primary>non-blocking I/O</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4128" file="ch07_21.htm" sect="7.20.1. Problem">
<primary>filehandles</primary>
<secondary>non-blocking
I/O</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4129" file="ch07_21.htm" sect="7.20.1. Problem">
<primary>file
access</primary>
<secondary>non-blocking
I/O</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4130" file="ch07_21.htm" sect="7.20.2. Solution">
<primary>O_ flags</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4131" file="ch07_21.htm" sect="7.20.2. Solution">
<primary>O_NONBLOCK option</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4132" file="ch07_21.htm" sect="7.20.2. Solution">
<primary>sysopen( )</primary>
<secondary>non-blocking
I/O</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4133" file="ch07_21.htm" sect="7.20.3. Discussion">
<primary>$ (dollar
sign)</primary>
<secondary>$! variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4134" file="ch07_21.htm" sect="7.20.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$!
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4135" file="ch07_22.htm" sect="7.21.1. Problem">
<primary>file
access</primary>
<secondary>unread bytes, determining number
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4136" file="ch07_22.htm" sect="7.21.1. Problem">
<primary>unread bytes, determining
number</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4137" file="ch07_22.htm" sect="7.21.1. Problem">
<primary>bytes, determining number of
unread</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4138" file="ch07_22.htm" sect="7.21.2. Solution">
<primary>FIONREAD call</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4139" file="ch07_22.htm" sect="7.21.2. Solution">
<primary>ioctl( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4143" file="ch07_23.htm" sect="7.22.1. Problem">
<primary>filehandles</primary>
<secondary>reading</secondary>
<tertiary>from
many</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4144" file="ch07_23.htm" sect="7.22.1. Problem">
<primary>file
access</primary>
<secondary>filehandles</secondary>
<tertiary>reading
from multiple</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4145" file="ch07_23.htm" sect="7.22.1. Problem">
<primary>reading</primary>
<secondary>files</secondary>
<see>file
access file contents</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4146" file="ch07_23.htm" sect="7.22.2. Solution">
<primary>select( )</primary>
<secondary>reading from
multiple filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4147" file="ch07_23.htm" sect="7.22.2. Solution">
<primary>IO::Select module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4148" file="ch07_23.htm" sect="7.22.3. Discussion">
<primary>new( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4151" file="ch07_24.htm" sect="7.23.1. Problem">
<primary>file
access</primary>
<secondary>filehandles</secondary>
<tertiary>reading a
line from, without blocking</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4152" file="ch07_24.htm" sect="7.23.1. Problem">
<primary>filehandles</primary>
<secondary>reading</secondary>
<tertiary>a
line from, without blocking</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4153" file="ch07_24.htm" sect="7.23.1. Problem">
<primary>blocking file access</primary>
<secondary>reading
a line from a filehandle without</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4154" file="ch07_24.htm" sect="7.23.2. Solution">
<primary>sysreadline( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4155" file="ch07_24.htm" sect="7.23.2. Solution">
<primary>IO::Handle module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4156" file="ch07_24.htm" sect="7.23.3. Discussion">
<primary>can_read( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4157" file="ch07_25.htm" sect="7.24. Program: netlock">
<primary>locking</primary>
<secondary>files</secondary>
<tertiary>netlock
program</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4158" file="ch07_25.htm" sect="7.24. Program: netlock">
<primary>blocking file
access</primary>
<secondary>netlock program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4159" file="ch07_25.htm" sect="7.24. Program: netlock">
<primary>netlock program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4160" file="ch07_25.htm" sect="7.24. Program: netlock">
<primary>files</primary>
<secondary>locking</secondary>
<tertiary>netlock
program</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4161" file="ch07_25.htm" sect="7.24. Program: netlock">
<primary>file
access</primary>
<secondary>locking files</secondary>
<tertiary>netlock
program</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4162" file="ch07_25.htm" sect="7.24. Program: netlock">
<primary>File::LockDir module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4168" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>lockarea
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4169" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>blocking file
access</primary>
<secondary>region-specific
locks</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4170" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>file
access</primary>
<secondary>locking
files</secondary>
<tertiary>region-specific
locks</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4171" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>locking</primary>
<secondary>region-specific
locks</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4172" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>struct_flock( ), lockarea
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4173" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>$ (dollar
sign)</primary>
<secondary>$^O variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4174" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>dollar sign ($)</primary>
<secondary>$^O
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4175" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>processes</primary>
<secondary>groups</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-7-ITERM-4176" file="ch07_26.htm" sect="7.25. Program: lockarea">
<primary>signals</primary>
<secondary>process
groups</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4182" file="ch08_01.htm" sect="8.. Introduction">
<primary>file
contents</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4183" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>line input operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4184" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>operators</primary>
<secondary>line
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4185" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>input</primary>
<secondary>line input
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4186" file="ch08_01.htm" sect="8.. Basic Operations">
<primary sortas="FH line input operator">&lt;FH&gt; line input
operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4187" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>$ (dollar sign)</primary>
<secondary>$_
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4188" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>dollar sign
($)</primary>
<secondary>$_ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4189" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>$ (dollar sign)</primary>
<secondary>$/
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4190" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>dollar sign
($)</primary>
<secondary>$/ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4191" file="ch08_01.htm" sect="8.. Basic Operations">
<primary sortas="0 command-line option">-0 command-line
option</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4192" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>-
(hyphen)</primary>
<secondary>-0 command-line
option</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4193" file="ch08_01.htm" sect="8.. Basic Operations">
<primary>hyphen
(-)</primary>
<secondary>-0 command-line
option</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4194" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>file contents</primary>
<secondary>I/O
layers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4195" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>I/O
layers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4196" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>I/O
layers</primary>
<secondary>crlf</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4197" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>crlf I/O layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4198" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>I/O
layers</primary>
<secondary>utf8</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4199" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>utf8 I/O layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4200" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>I/O
layers</primary>
<secondary>raw</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4201" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>raw I/O layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4202" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>I/O
layers</primary>
<secondary>bytes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4203" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>bytes I/O layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4204" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>crlf I/O layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4205" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>I/O
layers</primary>
<secondary>crlf</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4206" file="ch08_01.htm" sect="8.. I/O Layers">
<primary>binmode( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4207" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>file contents</primary>
<secondary>fixed-length
records</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4208" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>records</primary>
<secondary>fixed-length</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4209" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>fixed-length records</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4210" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>read( )</primary>
<secondary>I/O
layers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4211" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>read( )</primary>
<secondary>fixed-length
records</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4212" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>truncate( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4213" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>tell( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4214" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>seek( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4215" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>buffered input/output</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4216" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>unbuffered input/output</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4217" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>I/O
operations</primary>
<secondary>buffering</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4218" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>sysread( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4219" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>syswrite( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4220" file="ch08_01.htm" sect="8.. Advanced Operations">
<primary>sysseek( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4221" file="ch08_02.htm" sect="8.1.1. Problem">
<primary>file
contents</primary>
<secondary>reading</secondary>
<tertiary>lines with
continuation characters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4222" file="ch08_02.htm" sect="8.1.1. Problem">
<primary>continuation characters, reading data
with</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4223" file="ch08_02.htm" sect="8.1.1. Problem">
<primary>line
breaks</primary>
<secondary>reading with continuation
characters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4224" file="ch08_03.htm" sect="8.2.1. Problem">
<primary>file
contents</primary>
<secondary>counting lines, paragraphs, and
records</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4225" file="ch08_03.htm" sect="8.2.1. Problem">
<primary>line breaks</primary>
<secondary>lines
in files</secondary>
<tertiary>counting</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4226" file="ch08_03.htm" sect="8.2.1. Problem">
<primary>counting lines in
files</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4227" file="ch08_03.htm" sect="8.2.1. Problem">
<primary>paragraphs</primary>
<secondary>counting
in files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4228" file="ch08_03.htm" sect="8.2.1. Problem">
<primary>records</primary>
<secondary>counting
in files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4229" file="ch08_03.htm" sect="8.2.1. Problem">
<primary>lines</primary>
<secondary>counting in
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4230" file="ch08_03.htm" sect="8.2.2. Solution">
<primary>wc program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4237" file="ch08_04.htm" sect="8.3.1. Problem">
<primary>words</primary>
<secondary>processing all in
file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4238" file="ch08_04.htm" sect="8.3.1. Problem">
<primary>file
contents</primary>
<secondary>processing all words
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4239" file="ch08_04.htm" sect="8.3.2. Solution">
<primary>split( )</primary>
<secondary>processing all
words in file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4240" file="ch08_04.htm" sect="8.3.2. Solution">
<primary>m// operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4241" file="ch08_05.htm" sect="8.4.1. Problem">
<primary>file
contents</primary>
<secondary>reading</secondary>
<tertiary>backwards</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4242" file="ch08_05.htm" sect="8.4.1. Problem">
<primary>paragraphs</primary>
<secondary>reading
files backwards by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4243" file="ch08_05.htm" sect="8.4.1. Problem">
<primary>line
breaks</primary>
<secondary>reading files
backwards</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4244" file="ch08_05.htm" sect="8.4.1. Problem">
<primary>arrays</primary>
<secondary>reading
files backwards</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4245" file="ch08_05.htm" sect="8.4.1. Problem">
<primary>lines</primary>
<secondary>reading
files backward by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4246" file="ch08_05.htm" sect="8.4.2. Solution">
<primary>Tie::File module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4252" file="ch08_06.htm" sect="8.5.1. Problem">
<primary>file
contents</primary>
<secondary>continually growing files,
reading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4253" file="ch08_06.htm" sect="8.5.1. Problem">
<primary>trailing</primary>
<secondary>growing
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4254" file="ch08_06.htm" sect="8.5.3. Discussion">
<primary>clearerr( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4255" file="ch08_06.htm" sect="8.5.3. Discussion">
<primary>IO::Handle module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4256" file="ch08_06.htm" sect="8.5.3. Discussion">
<primary>seek( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4257" file="ch08_06.htm" sect="8.5.3. Discussion">
<primary>File::stat module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4260" file="ch08_07.htm" sect="8.6.1. Problem">
<primary>random</primary>
<secondary>lines in
files</secondary>
<tertiary>selecting</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4261" file="ch08_07.htm" sect="8.6.1. Problem">
<primary>file contents</primary>
<secondary>random lines
from, selecting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4262" file="ch08_07.htm" sect="8.6.1. Problem">
<primary>line
breaks</primary>
<secondary>lines in
files</secondary>
<tertiary>selecting random</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4263" file="ch08_07.htm" sect="8.6.2. Solution">
<primary>rand( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4264" file="ch08_08.htm" sect="8.7.1. Problem">
<primary>random</primary>
<secondary>lines in
files</secondary>
<tertiary>ordering of</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4265" file="ch08_08.htm" sect="8.7.1. Problem">
<primary>file contents</primary>
<secondary>randomizing
line order</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4266" file="ch08_08.htm" sect="8.7.1. Problem">
<primary>line
breaks</primary>
<secondary>lines in
files</secondary>
<tertiary>randomizing order</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4267" file="ch08_08.htm" sect="8.7.1. Problem">
<primary>sorting</primary>
<secondary>randomizing file line
order</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4268" file="ch08_08.htm" sect="8.7.2. Solution">
<primary>List::Util
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4269" file="ch08_08.htm" sect="8.7.2. Solution">
<primary>shuffle( )</primary>
<secondary>lines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4270" file="ch08_09.htm" sect="8.8.1. Problem">
<primary>file
contents</primary>
<secondary>extracting single
line</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4271" file="ch08_09.htm" sect="8.8.1. Problem">
<primary>lines</primary>
<secondary>single,
extracting from file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4272" file="ch08_09.htm" sect="8.8.2. Solution">
<primary>Tie::File
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4273" file="ch08_09.htm" sect="8.8.2. Solution">
<primary>DB_File
module</primary>
<secondary>DB_RECNO access
method</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4276" file="ch08_10.htm" sect="8.9.1. Problem">
<primary>variable-length text fields</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4277" file="ch08_10.htm" sect="8.9.1. Problem">
<primary>file contents</primary>
<secondary>variable-length
text fields</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4278" file="ch08_10.htm" sect="8.9.1. Problem">
<primary>input</primary>
<secondary>extracting
variable-length
fields</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4279" file="ch08_10.htm" sect="8.9.1. Problem">
<primary>records</primary>
<secondary>variable-length</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4280" file="ch08_10.htm" sect="8.9.2. Solution">
<primary>split( )</primary>
<secondary>variable-length
text fields</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4281" file="ch08_10.htm" sect="8.9.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$_
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4282" file="ch08_10.htm" sect="8.9.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$_ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4283" file="ch08_11.htm" sect="8.10.1. Problem">
<primary>deleting</primary>
<secondary>files</secondary>
<tertiary>last
line of</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4284" file="ch08_11.htm" sect="8.10.1. Problem">
<primary>files</primary>
<secondary>deleting</secondary>
<tertiary>last
line of</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4285" file="ch08_11.htm" sect="8.10.1. Problem">
<primary>line
breaks</primary>
<secondary>lines in
files</secondary>
<tertiary>deleting last</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4286" file="ch08_11.htm" sect="8.10.3. Discussion">
<primary>Tie::File module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4287" file="ch08_12.htm" sect="8.11.1. Problem">
<primary>binary</primary>
<secondary>files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4288" file="ch08_12.htm" sect="8.11.1. Problem">
<primary>file contents</primary>
<secondary>processing
binary files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4289" file="ch08_12.htm" sect="8.11.1. Problem">
<primary>files</primary>
<secondary>binary</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4290" file="ch08_12.htm" sect="8.11.2. Solution">
<primary>binmode( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4291" file="ch08_12.htm" sect="8.11.3. Discussion">
<primary>I/O
layers</primary>
<secondary>crlf</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4292" file="ch08_12.htm" sect="8.11.3. Discussion">
<primary>crlf I/O layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4293" file="ch08_12.htm" sect="8.11.3. Discussion">
<primary>I/O
layers</primary>
<secondary>raw</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4294" file="ch08_12.htm" sect="8.11.3. Discussion">
<primary>raw I/O layer</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4295" file="ch08_13.htm" sect="8.12.1. Problem">
<primary>file contents</primary>
<secondary>random
access</secondary>
<tertiary>input/output</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4296" file="ch08_13.htm" sect="8.12.1. Problem">
<primary>random</primary>
<secondary>random-access
I/O</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4297" file="ch08_13.htm" sect="8.12.1. Problem">
<primary>I/O
operations</primary>
<secondary>random-access
I/O</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4298" file="ch08_13.htm" sect="8.12.1. Problem">
<primary>input</primary>
<secondary>random-access
I/O</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4299" file="ch08_13.htm" sect="8.12.1. Problem">
<primary>output</primary>
<secondary>random access
I/O</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4300" file="ch08_13.htm" sect="8.12.1. Problem">
<primary>records</primary>
<secondary>random-access
I/O</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4301" file="ch08_13.htm" sect="8.12.4. See Also">
<primary>read( )</primary>
<secondary>random-access
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4302" file="ch08_14.htm" sect="8.13.1. Problem">
<primary>file contents</primary>
<secondary>random
access</secondary>
<tertiary>updating</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4303" file="ch08_14.htm" sect="8.13.1. Problem">
<primary>random</primary>
<secondary>random-access files,
updating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4304" file="ch08_14.htm" sect="8.13.1. Problem">
<primary>files</primary>
<secondary>random-access,
updating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4305" file="ch08_14.htm" sect="8.13.1. Problem">
<primary>updating
random-access files</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4306" file="ch08_14.htm" sect="8.13.2. Solution">
<primary>pack( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4307" file="ch08_14.htm" sect="8.13.3. Discussion">
<primary>weekearly program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4308" file="ch08_15.htm" sect="8.14.1. Problem">
<primary>file
contents</primary>
<secondary>reading</secondary>
<tertiary>null-terminated
strings from binary files</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4309" file="ch08_15.htm" sect="8.14.1. Problem">
<primary>binary</primary>
<secondary>files</secondary>
<tertiary>reading
null-terminated strings</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4310" file="ch08_15.htm" sect="8.14.1. Problem">
<primary>strings</primary>
<secondary>null-terminated,
reading from binary files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4311" file="ch08_15.htm" sect="8.14.1. Problem">
<primary>files</primary>
<secondary>binary</secondary>
<tertiary>reading
null-terminated strings</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4312" file="ch08_15.htm" sect="8.14.2. Solution">
<primary>&lt;&gt; (angle
brackets)</primary>
<secondary>reading strings from binary
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4313" file="ch08_15.htm" sect="8.14.2. Solution">
<primary>angle brackets
(&lt;&gt;)</primary>
<secondary>reading strings from binary
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4314" file="ch08_15.htm" sect="8.14.3. Discussion">
<primary>bgets program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4315" file="ch08_16.htm" sect="8.15.1. Problem">
<primary>file contents</primary>
<secondary>fixed-length
records</secondary>
<tertiary>reading</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4316" file="ch08_16.htm" sect="8.15.1. Problem">
<primary>fixed-length
records</primary>
<secondary>reading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4317" file="ch08_16.htm" sect="8.15.1. Problem">
<primary>records</primary>
<secondary>fixed-length</secondary>
<tertiary>reading</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4318" file="ch08_16.htm" sect="8.15.2. Solution">
<primary>read( )</primary>
<secondary>fixed-length
records</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4319" file="ch08_16.htm" sect="8.15.2. Solution">
<primary>unpack( )</primary>
<secondary>fixed-length
records</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4320" file="ch08_17.htm" sect="8.16.1. Problem">
<primary>file contents</primary>
<secondary>configuration
files, reading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4321" file="ch08_17.htm" sect="8.16.1. Problem">
<primary>configuration
files</primary>
<secondary>reading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4322" file="ch08_17.htm" sect="8.16.1. Problem">
<primary>files</primary>
<secondary>configuration,
reading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4323" file="ch08_17.htm" sect="8.16.3. Discussion">
<primary>do( )</primary>
<secondary>configuration files,
reading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4324" file="ch08_18.htm" sect="8.17.1. Problem">
<primary>file
contents</primary>
<secondary>testing for
trustworthiness</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4325" file="ch08_18.htm" sect="8.17.1. Problem">
<primary>security</primary>
<secondary>testing
files for trustworthiness</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4326" file="ch08_18.htm" sect="8.17.1. Problem">
<primary>permissions</primary>
<secondary>testing
files for trustworthiness</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4327" file="ch08_18.htm" sect="8.17.2. Solution">
<primary>stat( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4328" file="ch08_18.htm" sect="8.17.3. Discussion">
<primary>is_safe( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4332" file="ch08_19.htm" sect="8.18.1. Problem">
<primary>files</primary>
<secondary>treating</secondary>
<tertiary>as
arrays</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4333" file="ch08_19.htm" sect="8.18.1. Problem">
<primary>arrays</primary>
<secondary>treating files
as</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4334" file="ch08_19.htm" sect="8.18.1. Problem">
<primary>file
contents</primary>
<secondary>treating</secondary>
<tertiary>files as
arrays</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4335" file="ch08_19.htm" sect="8.18.2. Solution">
<primary>Tie::File module</primary>
<secondary>files as
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4336" file="ch08_20.htm" sect="8.19.1. Problem">
<primary>I/O layers</primary>
<secondary>setting
default</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4337" file="ch08_20.htm" sect="8.19.1. Problem">
<primary>setting default
I/O layers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4338" file="ch08_20.htm" sect="8.19.1. Problem">
<primary>file
contents</primary>
<secondary>setting default I/O
layers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4339" file="ch08_20.htm" sect="8.19.2. Solution">
<primary>open pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4340" file="ch08_21.htm" sect="8.20.1. Problem">
<primary>file
contents</primary>
<secondary>reading and writing Unicode from
filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4341" file="ch08_21.htm" sect="8.20.1. Problem">
<primary>filehandles</primary>
<secondary>reading
and writing Unicode from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4342" file="ch08_21.htm" sect="8.20.1. Problem">
<primary>Unicode</primary>
<secondary>reading
and writing from filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4343" file="ch08_21.htm" sect="8.20.2. Solution">
<primary>I/O layers</primary>
<secondary>reading and
writing Unicode from filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4344" file="ch08_21.htm" sect="8.20.3. Discussion">
<primary>Encode module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4345" file="ch08_21.htm" sect="8.20.3. Discussion">
<primary>UTF-8</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4346" file="ch08_21.htm" sect="8.20.3. Discussion">
<primary>memory</primary>
<secondary>encodings
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4350" file="ch08_22.htm" sect="8.21.1. Problem">
<primary>converting</primary>
<secondary>Microsoft
files to Unicode</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4351" file="ch08_22.htm" sect="8.21.1. Problem">
<primary>Unicode</primary>
<secondary>converting
Microsoft files to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4352" file="ch08_22.htm" sect="8.21.1. Problem">
<primary>files</primary>
<secondary>Microsoft,
converting to Unicode</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4353" file="ch08_22.htm" sect="8.21.1. Problem">
<primary>file
contents</primary>
<secondary>converting Microsoft files to
Unicode</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4354" file="ch08_22.htm" sect="8.21.3. Discussion">
<primary>browsers</primary>
<secondary>support for Unicode
fonts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4355" file="ch08_22.htm" sect="8.21.3. Discussion">
<primary>web
browsers</primary>
<see>browsers</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4356" file="ch08_22.htm" sect="8.21.3. Discussion">
<primary>text</primary>
<secondary>editors, support
for Unicode fonts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4357" file="ch08_22.htm" sect="8.21.3. Discussion">
<primary>fonts,
Unicode, support for</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4358" file="ch08_22.htm" sect="8.21.3. Discussion">
<primary sortas="C command-line switch">-C command-line
switch</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4359" file="ch08_22.htm" sect="8.21.3. Discussion">
<primary>-C command-line
switch</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4360" file="ch08_22.htm" sect="8.21.3. Discussion">
<primary>PERL_UNICODE environment
variable</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4361" file="ch08_22.htm" sect="8.21.3. Discussion">
<primary>environment
variables</primary>
<secondary>PERL_UNICODE</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4366" file="ch08_23.htm" sect="8.22.1. Problem">
<primary>file contents</primary>
<secondary>comparing two
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4367" file="ch08_23.htm" sect="8.22.1. Problem">
<primary>files</primary>
<secondary>comparing file
contents</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4368" file="ch08_23.htm" sect="8.22.1. Problem">
<primary>comparing</primary>
<secondary>contents of two
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4369" file="ch08_23.htm" sect="8.22.2. Solution">
<primary>File::Compare
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4370" file="ch08_23.htm" sect="8.22.3. Discussion">
<primary>compare( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4371" file="ch08_23.htm" sect="8.22.3. Discussion">
<primary>filehandles</primary>
<secondary>comparing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4372" file="ch08_23.htm" sect="8.22.3. Discussion">
<primary>comparing</primary>
<secondary>filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4373" file="ch08_23.htm" sect="8.22.3. Discussion">
<primary>Text::Diff
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4374" file="ch08_24.htm" sect="8.23.1. Problem">
<primary>strings</primary>
<secondary>treating as
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4375" file="ch08_24.htm" sect="8.23.1. Problem">
<primary>files</primary>
<secondary>treating</secondary>
<tertiary>strings
as</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4376" file="ch08_24.htm" sect="8.23.1. Problem">
<primary>file
contents</primary>
<secondary>treating</secondary>
<tertiary>strings as
files</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4377" file="ch08_24.htm" sect="8.23.3. Discussion">
<primary>I/O
layers</primary>
<secondary>scalars</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4378" file="ch08_25.htm" sect="8.24. Program: tailwtmp">
<primary>tailwtmp program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4379" file="ch08_25.htm" sect="8.24. Program: tailwtmp">
<primary>wtmp file, adding records
to</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4380" file="ch08_25.htm" sect="8.24. Program: tailwtmp">
<primary>file
contents</primary>
<secondary>adding records to wtmp
file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4381" file="ch08_25.htm" sect="8.24. Program: tailwtmp">
<primary>records</primary>
<secondary>wtmp
file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4382" file="ch08_26.htm" sect="8.25. Program: tctee">
<primary>tctee program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4383" file="ch08_26.htm" sect="8.25. Program: tctee">
<primary>file contents</primary>
<secondary>tctee
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4384" file="ch08_26.htm" sect="8.25. Program: tctee">
<primary>magic open</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4385" file="ch08_26.htm" sect="8.25. Program: tctee">
<primary>ARGV, magic</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4386" file="ch08_26.htm" sect="8.25. Program: tctee">
<primary>magic ARGV</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4387" file="ch08_26.htm" sect="8.25. Program: tctee">
<primary>open( )</primary>
<secondary>magic
open</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4388" file="ch08_27.htm" sect="8.26. Program: laston">
<primary>laston program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4389" file="ch08_27.htm" sect="8.26. Program: laston">
<primary>file contents</primary>
<secondary>viewing lastlog
file information</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4390" file="ch08_27.htm" sect="8.26. Program: laston">
<primary>records</primary>
<secondary>lastlog
file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4391" file="ch08_28.htm" sect="8.27. Program: Flat File Indexes">
<primary>flat
file index program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4392" file="ch08_28.htm" sect="8.27. Program: Flat File Indexes">
<primary>fixed-length
records</primary>
<secondary>flat-file index
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-8-ITERM-4393" file="ch08_28.htm" sect="8.27. Program: Flat File Indexes">
<primary>indices</primary>
<secondary>fixed-length
records program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4398" file="ch09_01.htm" sect="9.. Introduction">
<primary>directories</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4399" file="ch09_01.htm" sect="9.. Introduction">
<primary>file
access</primary>
<seealso>directories file
contents</seealso>
<see>also directories file
contents</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4400" file="ch09_01.htm" sect="9.. Introduction">
<primary>file
contents</primary>
<seealso>directories; file
access</seealso>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4401" file="ch09_01.htm" sect="9.. Introduction">
<primary>filesystem</primary>
<see>directories</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4402" file="ch09_01.htm" sect="9.. Introduction">
<primary>forward slash (/)</primary>
<secondary>root
directory</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4403" file="ch09_01.htm" sect="9.. Introduction">
<primary sortas=" (forwardslash)">/ (forwardslash)</primary>
<secondary>root
directory</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4404" file="ch09_01.htm" sect="9.. Introduction">
<primary>atime field, inode
structure</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4405" file="ch09_01.htm" sect="9.. Introduction">
<primary>ctime field,
inode structure</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4406" file="ch09_01.htm" sect="9.. Introduction">
<primary>mtime
field, inode structure</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4407" file="ch09_01.htm" sect="9.. Introduction">
<primary>inode structure</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4408" file="ch09_01.htm" sect="9.. Introduction">
<primary>stat( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4409" file="ch09_01.htm" sect="9.. Introduction">
<primary>_ (underscore), file stat
cache</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4410" file="ch09_01.htm" sect="9.. Introduction">
<primary>underscore (_), file
stat cache</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4411" file="ch09_01.htm" sect="9.. Introduction">
<primary>File::stat
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4412" file="ch09_01.htm" sect="9.. Introduction">
<primary>file test
operators</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4413" file="ch09_01.htm" sect="9.. Introduction">
<primary>opendir( )</primary>
<secondary>readdir( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4414" file="ch09_01.htm" sect="9.. Introduction">
<primary>closedir( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4415" file="ch09_01.htm" sect="9.. Introduction">
<primary>sorting</primary>
<secondary>directory
contents</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4416" file="ch09_01.htm" sect="9.. Introduction">
<primary>filenames</primary>
<secondary>sorting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4417" file="ch09_01.htm" sect="9.. Introduction">
<primary>directories</primary>
<secondary>sorting contents
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4418" file="ch09_01.htm" sect="9.. Introduction">
<primary>hard links</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4419" file="ch09_01.htm" sect="9.. Introduction">
<primary>symbolic links</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4420" file="ch09_01.htm" sect="9.. Executive Summary">
<primary>directory
handles</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4421" file="ch09_02.htm" sect="9.1.1. Problem">
<primary>directories</primary>
<secondary>timestamps</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4422" file="ch09_02.htm" sect="9.1.1. Problem">
<primary>timestamps</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4423" file="ch09_02.htm" sect="9.1.1. Problem">
<primary>file
access</primary>
<secondary>timestamps</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4424" file="ch09_02.htm" sect="9.1.1. Problem">
<primary>date and time values</primary>
<secondary>file
access timestamps</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4425" file="ch09_02.htm" sect="9.1.2. Solution">
<primary>stat( )</primary>
<secondary>timestamps</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4426" file="ch09_02.htm" sect="9.1.2. Solution">
<primary>utime( ), timestamps</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4427" file="ch09_03.htm" sect="9.2.1. Problem">
<primary>directories</primary>
<secondary>deleting
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4428" file="ch09_03.htm" sect="9.2.1. Problem">
<primary>files</primary>
<secondary>deleting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4429" file="ch09_03.htm" sect="9.2.1. Problem">
<primary>deleting</primary>
<secondary>files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4430" file="ch09_04.htm" sect="9.3.1. Problem">
<primary>file access</primary>
<secondary>copying and
moving files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4431" file="ch09_04.htm" sect="9.3.1. Problem">
<primary>directories</primary>
<secondary>copying and
moving files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4432" file="ch09_04.htm" sect="9.3.1. Problem">
<primary>copying</primary>
<secondary>files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4433" file="ch09_04.htm" sect="9.3.1. Problem">
<primary>File::Copy
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4434" file="ch09_04.htm" sect="9.3.2. Solution">
<primary>File::Copy module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4435" file="ch09_04.htm" sect="9.3.3. Discussion">
<primary>copy( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4436" file="ch09_04.htm" sect="9.3.3. Discussion">
<primary>move( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4437" file="ch09_05.htm" sect="9.4.1. Problem">
<primary>directories</primary>
<secondary>multiple names
for same file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4438" file="ch09_05.htm" sect="9.4.1. Problem">
<primary>filenames</primary>
<secondary>multiple, for same
file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4439" file="ch09_05.htm" sect="9.4.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$;
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4440" file="ch09_05.htm" sect="9.4.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$; variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4441" file="ch09_05.htm" sect="9.4.3. Discussion">
<primary>multidimensional</primary>
<secondary>associative
array emulation syntax</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4442" file="ch09_06.htm" sect="9.5.1. Problem">
<primary>file
access</primary>
<secondary>processing all files in
directories</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4443" file="ch09_06.htm" sect="9.5.1. Problem">
<primary>directories</primary>
<secondary>processing
all files in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4444" file="ch09_06.htm" sect="9.5.1. Problem">
<primary>files</primary>
<secondary>processing
all in directories</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4445" file="ch09_06.htm" sect="9.5.2. Solution">
<primary>opendir( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4446" file="ch09_06.htm" sect="9.5.2. Solution">
<primary>readdir( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4447" file="ch09_06.htm" sect="9.5.3. Discussion">
<primary>rewinddir( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4448" file="ch09_06.htm" sect="9.5.3. Discussion">
<primary>seekdir( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4452" file="ch09_07.htm" sect="9.6.1. Problem">
<primary>filenames</primary>
<secondary>globbing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4453" file="ch09_07.htm" sect="9.6.1. Problem">
<primary>regular expressions</primary>
<secondary>globbing
filenames</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4454" file="ch09_07.htm" sect="9.6.1. Problem">
<primary>globbing</primary>
<see>regular
expressions</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4455" file="ch09_07.htm" sect="9.6.2. Solution">
<primary>glob( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4456" file="ch09_07.htm" sect="9.6.2. Solution">
<primary>&lt;&gt; (angle
brackets)</primary>
<secondary>globbing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4457" file="ch09_07.htm" sect="9.6.2. Solution">
<primary>angle brackets
(&lt;&gt;)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4458" file="ch09_07.htm" sect="9.6.3. Discussion">
<primary>opendir( )</primary>
<secondary>globbing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4459" file="ch09_07.htm" sect="9.6.3. Discussion">
<primary>readdir( )</primary>
<secondary>globbing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4460" file="ch09_08.htm" sect="9.7.1. Problem">
<primary>directories</primary>
<secondary>processing
all files in</secondary>
<tertiary>recursively</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4461" file="ch09_08.htm" sect="9.7.1. Problem">
<primary>recursively processing files in
directories</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4462" file="ch09_08.htm" sect="9.7.1. Problem">
<primary>file
access</primary>
<secondary>processing all files in
directories</secondary>
<tertiary>recursively</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4463" file="ch09_08.htm" sect="9.7.1. Problem">
<primary>processes</primary>
<secondary>recursively
processing files in directories</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4464" file="ch09_08.htm" sect="9.7.2. Solution">
<primary>File::Find
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4465" file="ch09_08.htm" sect="9.7.3. Discussion">
<primary sortas="d file test operator">-d file
test operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4470" file="ch09_09.htm" sect="9.8.1. Problem">
<primary>deleting</primary>
<secondary>directories and
their contents</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4471" file="ch09_09.htm" sect="9.8.1. Problem">
<primary>directories</primary>
<secondary>deleting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4472" file="ch09_09.htm" sect="9.8.2. Solution">
<primary>finddepth( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4473" file="ch09_09.htm" sect="9.8.2. Solution">
<primary>File::Find module</primary>
<secondary>removing
directories recursively</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4474" file="ch09_09.htm" sect="9.8.2. Solution">
<primary>rmtree( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4475" file="ch09_09.htm" sect="9.8.2. Solution">
<primary>File::Path module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4476" file="ch09_09.htm" sect="9.8.3. Discussion">
<primary>rmdir( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4477" file="ch09_09.htm" sect="9.8.3. Discussion">
<primary>unlink( ), removing directories and
contents</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4478" file="ch09_10.htm" sect="9.9.1. Problem">
<primary>filenames</primary>
<secondary>renaming</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4479" file="ch09_10.htm" sect="9.9.1. Problem">
<primary>directories</primary>
<secondary>renaming
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4480" file="ch09_10.htm" sect="9.9.2. Solution">
<primary>foreach loop</primary>
<secondary>renaming
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4481" file="ch09_10.htm" sect="9.9.2. Solution">
<primary>rename( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4482" file="ch09_10.htm" sect="9.9.3. Discussion">
<primary>rename script, example</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4483" file="ch09_11.htm" sect="9.10.1. Problem">
<primary>parsing</primary>
<secondary>filenames</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4484" file="ch09_11.htm" sect="9.10.1. Problem">
<primary>filenames</primary>
<secondary>parsing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4485" file="ch09_11.htm" sect="9.10.1. Problem">
<primary>directories</primary>
<secondary>parsing
filenames</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4486" file="ch09_11.htm" sect="9.10.2. Solution">
<primary>File::Basename
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4487" file="ch09_11.htm" sect="9.10.3. Discussion">
<primary>dirname( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4488" file="ch09_11.htm" sect="9.10.3. Discussion">
<primary>basename( ), splitting
filenames</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4489" file="ch09_11.htm" sect="9.10.3. Discussion">
<primary>fileparse( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4490" file="ch09_11.htm" sect="9.10.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$^O
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4491" file="ch09_11.htm" sect="9.10.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$^O variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4492" file="ch09_12.htm" sect="9.11.1. Problem">
<primary>permissions</primary>
<secondary>symbolic file,
instead of octal values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4493" file="ch09_12.htm" sect="9.11.1. Problem">
<primary>octal</primary>
<secondary>values, working with
symbolic file permissions instead</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4494" file="ch09_12.htm" sect="9.11.2. Solution">
<primary>Stat::lsMode
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4495" file="ch09_12.htm" sect="9.11.3. Discussion">
<primary>File::chmod
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4496" file="ch09_13.htm" sect="9.12. Program: symirror">
<primary>directories</primary>
<secondary>recursively
duplicating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4497" file="ch09_13.htm" sect="9.12. Program: symirror">
<primary>copying</primary>
<secondary>directory
trees</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4498" file="ch09_13.htm" sect="9.12. Program: symirror">
<primary>symbolic
links</primary>
<secondary>duplicating directory
trees</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4499" file="ch09_13.htm" sect="9.12. Program: symirror">
<primary>symirror
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4500" file="ch09_14.htm" sect="9.13. Program: lst">
<primary>lst
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4501" file="ch09_14.htm" sect="9.13. Program: lst">
<primary>directories</primary>
<secondary>sorting
contents of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4502" file="ch09_14.htm" sect="9.13. Program: lst">
<primary>sorting</primary>
<secondary>directory
contents</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-9-ITERM-4503" file="ch09_14.htm" sect="9.13. Program: lst">
<primary>filenames</primary>
<secondary>sorting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4509" file="ch10_01.htm" sect="10.. Introduction">
<primary>subroutines</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4510" file="ch10_01.htm" sect="10.. Introduction">
<primary>sub keyword</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4511" file="ch10_01.htm" sect="10.. Introduction">
<primary>do( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4512" file="ch10_01.htm" sect="10.. Introduction">
<primary>require operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4513" file="ch10_01.htm" sect="10.. Introduction">
<primary>use operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4514" file="ch10_02.htm" sect="10.1.1. Problem">
<primary>subroutines</primary>
<secondary>access
arguments</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4515" file="ch10_02.htm" sect="10.1.1. Problem">
<primary>arguments,
subroutine</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4516" file="ch10_02.htm" sect="10.1.2. Solution">
<primary>@ (at sign)</primary>
<secondary>@_
array</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4517" file="ch10_02.htm" sect="10.1.2. Solution">
<primary>at sign
(@)</primary>
<secondary>@_ array</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4520" file="ch10_03.htm" sect="10.2.1. Problem">
<primary>subroutines</primary>
<secondary>private
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4521" file="ch10_03.htm" sect="10.2.1. Problem">
<primary>variables</primary>
<secondary>private,
for subroutines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4522" file="ch10_03.htm" sect="10.2.1. Problem">
<primary>private</primary>
<secondary>subroutine
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4523" file="ch10_03.htm" sect="10.2.3. Discussion">
<primary>my operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4524" file="ch10_03.htm" sect="10.2.3. Discussion">
<primary>scope of subroutine
variables</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4525" file="ch10_03.htm" sect="10.2.3. Discussion">
<primary>lexical scope</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4529" file="ch10_04.htm" sect="10.3.1. Problem">
<primary>subroutines</primary>
<secondary>persistent
private variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4530" file="ch10_04.htm" sect="10.3.1. Problem">
<primary>variables</primary>
<secondary>persistent private,
for subroutines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4531" file="ch10_04.htm" sect="10.3.1. Problem">
<primary>persistent</primary>
<secondary>private subroutine
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4532" file="ch10_05.htm" sect="10.4.1. Problem">
<primary>subroutines</primary>
<secondary>currently
running, name of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4533" file="ch10_05.htm" sect="10.4.1. Problem">
<primary>names of
current subroutines. determining</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4534" file="ch10_05.htm" sect="10.4.2. Solution">
<primary>caller( )</primary>
<secondary>names of
subroutines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4535" file="ch10_05.htm" sect="10.4.3. Discussion">
<primary sortas="LINE symbol">__LINE__
symbol</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4536" file="ch10_05.htm" sect="10.4.3. Discussion">
<primary sortas="PACKAGE symbol">__PACKAGE__ symbol</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4537" file="ch10_05.htm" sect="10.4.3. Discussion">
<primary sortas="FILE symbol">__FILE__
symbol</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4538" file="ch10_05.htm" sect="10.4.3. Discussion">
<primary>whoami( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4539" file="ch10_05.htm" sect="10.4.3. Discussion">
<primary>whowasi( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4540" file="ch10_06.htm" sect="10.5.1. Problem">
<primary>references</primary>
<secondary>passing arrays and
hashes by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4541" file="ch10_06.htm" sect="10.5.1. Problem">
<primary>arguments,
subroutine</primary>
<secondary>passing by
reference</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4542" file="ch10_06.htm" sect="10.5.1. Problem">
<primary>subroutines</primary>
<secondary>passing arrays
and hashes by reference</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4543" file="ch10_06.htm" sect="10.5.1. Problem">
<primary>passing</primary>
<secondary>arrays and hashes by
reference</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4544" file="ch10_06.htm" sect="10.5.2. Solution">
<primary>backslash
(\)</primary>
<secondary>passing arrays and hashes by
references</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4545" file="ch10_06.htm" sect="10.5.2. Solution">
<primary>backslash
(\)</primary>
<secondary>passing arrays and hashes by
references</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4546" file="ch10_07.htm" sect="10.6.1. Problem">
<primary>subroutines</primary>
<secondary>return context,
detecting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4547" file="ch10_07.htm" sect="10.6.1. Problem">
<primary>return context,
subroutines</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4548" file="ch10_07.htm" sect="10.6.1. Problem">
<primary>scalars</primary>
<secondary>detecting scalar
context</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4549" file="ch10_07.htm" sect="10.6.1. Problem">
<primary>list context,
detecting</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4550" file="ch10_07.htm" sect="10.6.2. Solution">
<primary>wantarray( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4551" file="ch10_08.htm" sect="10.7.1. Problem">
<primary>subroutines</primary>
<secondary>passing by named
parameter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4552" file="ch10_08.htm" sect="10.7.1. Problem">
<primary>arguments,
subroutine</primary>
<secondary>passing by named
parameter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4553" file="ch10_08.htm" sect="10.7.1. Problem">
<primary>passing</primary>
<secondary sortas="named parameter">by named parameter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4554" file="ch10_08.htm" sect="10.7.3. Discussion">
<primary>name-value pairs, passing subroutines by named
parameter</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4555" file="ch10_09.htm" sect="10.8.1. Problem">
<primary>deleting</primary>
<secondary>selected subroutine
return values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4556" file="ch10_09.htm" sect="10.8.1. Problem">
<primary>subroutines</primary>
<secondary>return
values</secondary>
<tertiary>skipping selected</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4557" file="ch10_09.htm" sect="10.8.1. Problem">
<primary>return values,
subroutines</primary>
<secondary>skipping
selected</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4558" file="ch10_09.htm" sect="10.8.3. Discussion">
<primary>scalar operator, list
version</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4559" file="ch10_10.htm" sect="10.9.1. Problem">
<primary>subroutines</primary>
<secondary>return
values</secondary>
<tertiary>returning by
reference</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4560" file="ch10_10.htm" sect="10.9.1. Problem">
<primary>references</primary>
<secondary>returning
subroutines by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4561" file="ch10_10.htm" sect="10.9.1. Problem">
<primary>return
values, subroutines</primary>
<secondary>returning by
reference</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4562" file="ch10_11.htm" sect="10.10.1. Problem">
<primary>subroutines</primary>
<secondary>return
values</secondary>
<tertiary>returning failure</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4563" file="ch10_11.htm" sect="10.10.1. Problem">
<primary>return values,
subroutines</primary>
<secondary>returning
failure</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4564" file="ch10_11.htm" sect="10.10.1. Problem">
<primary>errors</primary>
<secondary>subroutines</secondary>
<tertiary>returning
failure from</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4565" file="ch10_11.htm" sect="10.10.1. Problem">
<primary>failure,
returning from subroutines</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4566" file="ch10_11.htm" sect="10.10.2. Solution">
<primary>return statement</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4567" file="ch10_11.htm" sect="10.10.3. Discussion">
<primary>fcntl( ), return values</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4568" file="ch10_11.htm" sect="10.10.3. Discussion">
<primary>ioctl( )</primary>
<secondary>return
values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4569" file="ch10_12.htm" sect="10.11.1. Problem">
<primary>prototypes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4570" file="ch10_12.htm" sect="10.11.1. Problem">
<primary>subroutines</primary>
<secondary>prototypes
for functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4571" file="ch10_12.htm" sect="10.11.1. Problem">
<primary>arguments,
subroutine</primary>
<secondary>function
prototypes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4572" file="ch10_12.htm" sect="10.11.3.1. Omitting parentheses">
<primary>( )
(parentheses)</primary>
<secondary>prototyping
functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4573" file="ch10_12.htm" sect="10.11.3.1. Omitting parentheses">
<primary>parentheses
( )</primary>
<secondary>prototyping
functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4574" file="ch10_12.htm" sect="10.11.3.2. Mimicking built-ins">
<primary>hashes</primary>
<secondary>adding elements
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4575" file="ch10_12.htm" sect="10.11.3.2. Mimicking built-ins">
<primary>hpush( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4579" file="ch10_13.htm" sect="10.12.1. Problem">
<primary>subroutines</primary>
<secondary>exception
handling</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4580" file="ch10_13.htm" sect="10.12.1. Problem">
<primary>exceptions</primary>
<secondary>handling
in subroutines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4581" file="ch10_13.htm" sect="10.12.1. Problem">
<primary>errors</primary>
<secondary>subroutines</secondary>
<tertiary>exceptions
in</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4582" file="ch10_13.htm" sect="10.12.2. Solution">
<primary>die function</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4583" file="ch10_13.htm" sect="10.12.2. Solution">
<primary>$
(dollar sign)</primary>
<secondary>$@ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4584" file="ch10_13.htm" sect="10.12.2. Solution">
<primary>dollar sign ($)</primary>
<secondary>$@
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4588" file="ch10_14.htm" sect="10.13.1. Problem">
<primary>global values,
saving</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4589" file="ch10_14.htm" sect="10.13.1. Problem">
<primary>subroutines</primary>
<secondary>saving
global values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4590" file="ch10_14.htm" sect="10.13.2. Solution">
<primary>local operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4591" file="ch10_14.htm" sect="10.13.3.1. Using local( ) for temporary values for globals">
<primary>local( )</primary>
<secondary>global
values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4592" file="ch10_14.htm" sect="10.13.3.2. Using local( ) for local handles">
<primary>filehandles</primary>
<secondary>local</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4593" file="ch10_14.htm" sect="10.13.3.2. Using local( ) for local handles">
<primary>filehandles</primary>
<secondary>passing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4594" file="ch10_14.htm" sect="10.13.3.3. Using local( ) on parts of aggregates">
<primary>dynamic scoping</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4595" file="ch10_14.htm" sect="10.13.3.3. Using local( ) on parts of aggregates">
<primary>runtime</primary>
<secondary>scoping</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4596" file="ch10_14.htm" sect="10.13.3.3. Using local( ) on parts of aggregates">
<primary>typeglobs</primary>
<secondary>global
values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4599" file="ch10_15.htm" sect="10.14.1. Problem">
<primary>subroutines</primary>
<secondary>localizing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4600" file="ch10_15.htm" sect="10.14.1. Problem">
<primary>localizing
functions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4601" file="ch10_15.htm" sect="10.14.2. Solution">
<primary>local( )</primary>
<secondary>redefining
functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4602" file="ch10_15.htm" sect="10.14.3. Discussion">
<primary>aliases</primary>
<secondary>for
functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4603" file="ch10_15.htm" sect="10.14.3. Discussion">
<primary>importing from modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4604" file="ch10_15.htm" sect="10.14.3. Discussion">
<primary>modules</primary>
<secondary>importing
from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4607" file="ch10_16.htm" sect="10.15.1. Problem">
<primary>subroutines</primary>
<secondary>trapping
undefined function calls</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4608" file="ch10_16.htm" sect="10.15.1. Problem">
<primary>trapping undefined function
calls</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4609" file="ch10_16.htm" sect="10.15.1. Problem">
<primary>errors</primary>
<secondary>trapping undefined
function calls</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4610" file="ch10_16.htm" sect="10.15.1. Problem">
<primary>exceptions</primary>
<secondary>trapping undefined
function calls</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4611" file="ch10_16.htm" sect="10.15.2. Solution">
<primary>AUTOLOAD mechanism</primary>
<secondary>trapping
undefining function calls</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4612" file="ch10_17.htm" sect="10.16.1. Problem">
<primary>subroutines</primary>
<secondary>nesting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4613" file="ch10_17.htm" sect="10.16.1. Problem">
<primary>nested</primary>
<secondary>subroutines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4614" file="ch10_17.htm" sect="10.16.3. Discussion">
<primary>closures</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4615" file="ch10_17.htm" sect="10.16.3. Discussion">
<primary>inner( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4616" file="ch10_17.htm" sect="10.16.3. Discussion">
<primary>outer( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4617" file="ch10_18.htm" sect="10.17.1. Problem">
<primary>subroutines</primary>
<secondary>writing
switch statement</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4618" file="ch10_18.htm" sect="10.17.1. Problem">
<primary>switch
statement</primary>
<secondary>writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4619" file="ch10_18.htm" sect="10.17.2. Solution">
<primary>Switch module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4620" file="ch10_18.htm" sect="10.17.3. Discussion">
<primary>switch construct</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4623" file="ch10_19.htm" sect="10.18. Program: Sorting Your Mail">
<primary>sorting</primary>
<secondary>mail</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4624" file="ch10_19.htm" sect="10.18. Program: Sorting Your Mail">
<primary>email</primary>
<secondary>sorting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4625" file="ch10_19.htm" sect="10.18. Program: Sorting Your Mail">
<primary>subroutines</primary>
<secondary>email
sorter</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4626" file="ch10_19.htm" sect="10.18. Program: Sorting Your Mail">
<primary>subject, sorting mail
by</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-10-ITERM-4627" file="ch10_19.htm" sect="10.18. Program: Sorting Your Mail">
<primary>date and time values</primary>
<secondary>sorting
mail by</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4632" file="ch11_01.htm" sect="11.. References">
<primary>references</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4633" file="ch11_01.htm" sect="11.. References">
<primary>typed referents</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4634" file="ch11_01.htm" sect="11.. References">
<primary>references</primary>
<secondary>typed</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4635" file="ch11_01.htm" sect="11.. References">
<primary>references</primary>
<secondary>reference
count</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4636" file="ch11_01.htm" sect="11.. References">
<primary sortas=" (hyphen)">- (hyphen)</primary>
<secondary>-&gt; (arrow)
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4637" file="ch11_01.htm" sect="11.. References">
<primary>hyphen
(-)</primary>
<secondary>-&gt; (arrow)
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4638" file="ch11_01.htm" sect="11.. References">
<primary>-
(hyphen)</primary>
<secondary>-&gt; (infix)
notation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4639" file="ch11_01.htm" sect="11.. References">
<primary>hyphen
(-)</primary>
<secondary>-&gt; (infix)
notation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4640" file="ch11_01.htm" sect="11.. References">
<primary>arrow (-&gt;)
operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4641" file="ch11_01.htm" sect="11.. References">
<primary>infix (-&gt;)
notation</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4642" file="ch11_01.htm" sect="11.. References">
<primary>ref( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4643" file="ch11_01.htm" sect="11.. References">
<primary>[] (square
brackets)</primary>
<secondary>creating anonymous arrays and
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4644" file="ch11_01.htm" sect="11.. References">
<primary>square brackets
([])</primary>
<secondary>creating anonymous arrays and
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4645" file="ch11_01.htm" sect="11.. References">
<primary>{} (curly
braces)</primary>
<secondary>creating anonymous arrays and
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4646" file="ch11_01.htm" sect="11.. References">
<primary>curly braces
({})</primary>
<secondary>creating anonymous arrays and
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4647" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>references</primary>
<secondary>anonymous
data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4648" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>anonymous
data</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4649" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>data
structures</primary>
<secondary>complex, creating on the
fly</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4650" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>arrays</primary>
<secondary>anonymous</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4651" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>hashes</primary>
<secondary>anonymous</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4652" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>\
(backslash)</primary>
<secondary>creating
references</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4653" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>backslash
(\)</primary>
<secondary>creating
references</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4654" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>autovivification</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4655" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>references</primary>
<secondary>autovivification</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4656" file="ch11_01.htm" sect="11.. Anonymous Data">
<primary>memory</primary>
<secondary>deallocation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4658" file="ch11_01.htm" sect="11.. Records">
<primary>records</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4659" file="ch11_01.htm" sect="11.. Records">
<primary>hashes</primary>
<secondary sortas="records">as
records</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4660" file="ch11_02.htm" sect="11.1.1. Problem">
<primary>references</primary>
<secondary sortas="arrays">to arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4661" file="ch11_02.htm" sect="11.1.1. Problem">
<primary>arrays</primary>
<secondary>references
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4662" file="ch11_02.htm" sect="11.1.2. Solution">
<primary>@ (at
sign)</primary>
<secondary>references to
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4663" file="ch11_02.htm" sect="11.1.2. Solution">
<primary>at sign
(@)</primary>
<secondary>references to arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4664" file="ch11_02.htm" sect="11.1.3. Discussion">
<primary>\
(backslash)</primary>
<secondary>references to
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4665" file="ch11_02.htm" sect="11.1.3. Discussion">
<primary>backslash
(\)</primary>
<secondary>references to
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4668" file="ch11_03.htm" sect="11.2.1. Problem">
<primary>hashes</primary>
<secondary sortas="arrays">of
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4669" file="ch11_03.htm" sect="11.2.1. Problem">
<primary>arrays</primary>
<secondary>hashes
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4670" file="ch11_03.htm" sect="11.2.1. Problem">
<primary>references</primary>
<secondary>hashes of
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4671" file="ch11_03.htm" sect="11.2.1. Problem">
<primary>references</primary>
<secondary>hashes of
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4672" file="ch11_03.htm" sect="11.2.2. Solution">
<primary>push( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4673" file="ch11_04.htm" sect="11.3.1. Problem">
<primary>references</primary>
<secondary sortas="hashes">to
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4674" file="ch11_04.htm" sect="11.3.1. Problem">
<primary>hashes</primary>
<secondary>references
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4675" file="ch11_04.htm" sect="11.3.1. Problem">
<primary>dereferencing</primary>
<see>references</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4676" file="ch11_05.htm" sect="11.4.1. Problem">
<primary>references</primary>
<secondary sortas="functions">to functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4677" file="ch11_05.htm" sect="11.4.1. Problem">
<primary>functions</primary>
<secondary>references
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4678" file="ch11_05.htm" sect="11.4.3. Discussion">
<primary>closures</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4681" file="ch11_06.htm" sect="11.5.1. Problem">
<primary>references</primary>
<secondary sortas="scalars">to scalars</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4682" file="ch11_06.htm" sect="11.5.1. Problem">
<primary>scalars</primary>
<secondary>references
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4683" file="ch11_06.htm" sect="11.5.2. Solution">
<primary>backslash
(\)</primary>
<secondary>references to
scalars</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4684" file="ch11_06.htm" sect="11.5.2. Solution">
<primary>\
(backslash)</primary>
<secondary>references to
scalars</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4685" file="ch11_07.htm" sect="11.6.1. Problem">
<primary>arrays</primary>
<secondary sortas="scalar references">of scalar references</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4686" file="ch11_07.htm" sect="11.6.1. Problem">
<primary>references</primary>
<secondary>arrays of scalar
references</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4687" file="ch11_07.htm" sect="11.6.1. Problem">
<primary>scalars</primary>
<secondary>arrays of scalar
references</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4688" file="ch11_07.htm" sect="11.6.2. Solution">
<primary>\
(backslash)</primary>
<secondary>creating
arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4689" file="ch11_07.htm" sect="11.6.2. Solution">
<primary>backslash
(\)</primary>
<secondary>creating arrays</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4690" file="ch11_08.htm" sect="11.7.1. Problem">
<primary>closures</primary>
<secondary sortas="objects">as
objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4691" file="ch11_08.htm" sect="11.7.1. Problem">
<primary>objects</primary>
<secondary>closures
as</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4692" file="ch11_08.htm" sect="11.7.1. Problem">
<primary>references</primary>
<secondary>closures as
objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4693" file="ch11_08.htm" sect="11.7.1. Problem">
<primary>records</primary>
<secondary>closures as
objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4694" file="ch11_09.htm" sect="11.8.1. Problem">
<primary>references</primary>
<secondary sortas="methods">to methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4695" file="ch11_09.htm" sect="11.8.1. Problem">
<primary>methods</primary>
<secondary>references
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4696" file="ch11_09.htm" sect="11.8.1. Problem">
<primary>creating</primary>
<secondary>references to
methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4697" file="ch11_10.htm" sect="11.9.1. Problem">
<primary>records</primary>
<secondary>constructing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4699" file="ch11_11.htm" sect="11.10.1. Problem">
<primary>records</primary>
<secondary>reading and writing
to text files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4700" file="ch11_11.htm" sect="11.10.1. Problem">
<primary>file
contents</primary>
<secondary>reading and writing hash records to
file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4701" file="ch11_11.htm" sect="11.10.1. Problem">
<primary>hashes</primary>
<secondary>reading and writing
records to file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4702" file="ch11_11.htm" sect="11.10.1. Problem">
<primary>reading
and writing</primary>
<secondary>hash records to text
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4703" file="ch11_12.htm" sect="11.11.1. Problem">
<primary>printing</primary>
<secondary>data
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4704" file="ch11_12.htm" sect="11.11.1. Problem">
<primary>data
structures</primary>
<secondary>printing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4705" file="ch11_12.htm" sect="11.11.2. Solution">
<primary>x command (Perl
debugger)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4706" file="ch11_12.htm" sect="11.11.2. Solution">
<primary>Data::Dumper
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4709" file="ch11_13.htm" sect="11.12.1. Problem">
<primary>data
structures</primary>
<secondary>copying</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4710" file="ch11_13.htm" sect="11.12.1. Problem">
<primary>copying</primary>
<secondary>data
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4711" file="ch11_13.htm" sect="11.12.2. Solution">
<primary>dclone( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4712" file="ch11_13.htm" sect="11.12.2. Solution">
<primary>Storable module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4713" file="ch11_13.htm" sect="11.12.3. Discussion">
<primary>surface copies</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4714" file="ch11_13.htm" sect="11.12.3. Discussion">
<primary>shallow copies</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4715" file="ch11_13.htm" sect="11.12.3. Discussion">
<primary>copying</primary>
<secondary>surface vs. deep
copies</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4716" file="ch11_13.htm" sect="11.12.3. Discussion">
<primary>deep copies</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4717" file="ch11_14.htm" sect="11.13.1. Problem">
<primary>data structures</primary>
<secondary>storing to
disk</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4718" file="ch11_14.htm" sect="11.13.2. Solution">
<primary>store( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4719" file="ch11_14.htm" sect="11.13.2. Solution">
<primary>retrieve( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4720" file="ch11_14.htm" sect="11.13.3. Discussion">
<primary>nstore( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4721" file="ch11_15.htm" sect="11.14.1. Problem">
<primary>data structures</primary>
<secondary>transparently
persistent</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4722" file="ch11_15.htm" sect="11.14.1. Problem">
<primary>persistent</primary>
<secondary>data
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4723" file="ch11_15.htm" sect="11.14.2. Solution">
<primary>MLDBM module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4724" file="ch11_15.htm" sect="11.14.2. Solution">
<primary>DB_File module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4725" file="ch11_15.htm" sect="11.14.2. Solution">
<primary>GDBM_File module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4726" file="ch11_16.htm" sect="11.15.1. Problem">
<primary>references</primary>
<secondary>weak,
coping with circular data structures using</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4727" file="ch11_16.htm" sect="11.15.1. Problem">
<primary>data
structures</primary>
<secondary>circular, coping with, using weak
references</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4728" file="ch11_16.htm" sect="11.15.3. Description">
<primary>Devel::Peek module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4729" file="ch11_16.htm" sect="11.15.3. Description">
<primary>Dump( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4730" file="ch11_16.htm" sect="11.15.3. Description">
<primary>WeakRef module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4731" file="ch11_16.htm" sect="11.15.3. Description">
<primary>weaken( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4732" file="ch11_16.htm" sect="11.15.3. Description">
<primary>Scalar::Util module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4735" file="ch11_17.htm" sect="11.16. Program: Outlines">
<primary>outline
programs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4736" file="ch11_17.htm" sect="11.16. Program: Outlines">
<primary>data
structures</primary>
<secondary>outlines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4739" file="ch11_18.htm" sect="11.17. Program: Binary Trees">
<primary>records</primary>
<secondary>binary tree
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4740" file="ch11_18.htm" sect="11.17. Program: Binary Trees">
<primary>tree
structures</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4741" file="ch11_18.htm" sect="11.17. Program: Binary Trees">
<primary>binary</primary>
<secondary>trees</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-11-ITERM-4742" file="ch11_18.htm" sect="11.17. Program: Binary Trees">
<primary>data
structures</primary>
<secondary>binary
trees</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4743" file="ch12_01.htm" sect="12.. Introduction">
<primary>packages</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4744" file="ch12_01.htm" sect="12.. Introduction">
<primary>: (colon)</primary>
<secondary>package
names</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4745" file="ch12_01.htm" sect="12.. Introduction">
<primary>colon
(:)</primary>
<secondary>package names</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4746" file="ch12_01.htm" sect="12.. Introduction">
<primary>package
statement</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4747" file="ch12_01.htm" sect="12.. Modules">
<primary>modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4748" file="ch12_01.htm" sect="12.. Modules">
<primary>require operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4749" file="ch12_01.htm" sect="12.. Modules">
<primary>use pragmas</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4750" file="ch12_01.htm" sect="12.. Modules">
<primary>pragmas</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4751" file="ch12_01.htm" sect="12.. Modules">
<primary>importing from modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4752" file="ch12_01.htm" sect="12.. Modules">
<primary sortas="pm filename extension">.pm filename
extension</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4753" file="ch12_01.htm" sect="12.. Modules">
<primary>: (colon)</primary>
<secondary>module
names</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4754" file="ch12_01.htm" sect="12.. Modules">
<primary>colon
(:)</primary>
<secondary>module names</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4755" file="ch12_01.htm" sect="12.. Import/Export Regulations">
<primary>exporting to
modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4756" file="ch12_01.htm" sect="12.. Import/Export Regulations">
<primary>Exporter module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4758" file="ch12_01.htm" sect="12.. Other Kinds of Library Files">
<primary>libraries</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4759" file="ch12_01.htm" sect="12.. Other Kinds of Library Files">
<primary>file extensions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4760" file="ch12_01.htm" sect="12.. Not Reinventing the Wheel">
<primary>CPAN (Comprehensive Perl Archive
Network)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4761" file="ch12_01.htm" sect="12.. Not Reinventing the Wheel">
<primary>Comprehensive Perl Archive
Network</primary>
<see>CPAN</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4762" file="ch12_02.htm" sect="12.1.1. Problem">
<primary>modules</primary>
<secondary>designing
interface for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4763" file="ch12_02.htm" sect="12.1.1. Problem">
<primary>Exporter
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4764" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary sortas="VERSION variable (use pragma)">$VERSION
variable (use pragma)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4765" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary>$
(dollar sign)</primary>
<secondary>$VERSION variable (use
pragma)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4766" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$VERSION variable (use
pragma)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4767" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary sortas="EXPORT array (use pragma)">@EXPORT array
(use pragma)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4768" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary>@ (at
sign)</primary>
<secondary>@EXPORT array (use
pragma)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4769" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary>at sign
(@)</primary>
<secondary>@EXPORT array (use
pragma)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4770" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary sortas="EXPORT_OK array (use pragma)">@EXPORT_OK
array (use pragma)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4771" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary>@ (at
sign)</primary>
<secondary>@EXPORT_OK array (use
pragma)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4772" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary>at sign
(@)</primary>
<secondary>@EXPORT_OK array (use
pragma)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4773" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary sortas="EXPORT_TAGS array (use pragma)">@EXPORT_TAGS array (use pragma)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4774" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary>@ (at sign)</primary>
<secondary>@EXPORT_TAGS
array (use pragma)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4775" file="ch12_02.htm" sect="12.1.3. Discussion">
<primary>at
sign (@)</primary>
<secondary>@EXPORT_TAGS array (use
pragma)</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4778" file="ch12_03.htm" sect="12.2.1. Problem">
<primary>errors</primary>
<secondary>trapping in require
and use statements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4779" file="ch12_03.htm" sect="12.2.1. Problem">
<primary>use
pragmas</primary>
<secondary>trapping errors
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4780" file="ch12_03.htm" sect="12.2.1. Problem">
<primary>require
operator</primary>
<secondary>trapping errors
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4781" file="ch12_03.htm" sect="12.2.1. Problem">
<primary>modules</primary>
<secondary>errors</secondary>
<tertiary>trapping
in use and require statements</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4782" file="ch12_03.htm" sect="12.2.2. Solution">
<primary>eval( )</primary>
<secondary sortas="require and use statements">with require and use
statements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4783" file="ch12_04.htm" sect="12.3.1. Problem">
<primary>runtime</primary>
<secondary>loading
modules at</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4784" file="ch12_04.htm" sect="12.3.1. Problem">
<primary>modules</primary>
<secondary>loading</secondary>
<tertiary sortas="runtime">at runtime</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4785" file="ch12_04.htm" sect="12.3.1. Problem">
<primary>use autouse
pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4786" file="ch12_04.htm" sect="12.3.1. Problem">
<primary>delaying module
loading</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4787" file="ch12_04.htm" sect="12.3.3. Discussion">
<primary>autouse pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4788" file="ch12_04.htm" sect="12.3.3. Discussion">
<primary>( ) (parentheses)</primary>
<secondary>autouse
pragma</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4789" file="ch12_04.htm" sect="12.3.3. Discussion">
<primary>parentheses
( )</primary>
<secondary>autouse pragma</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4794" file="ch12_05.htm" sect="12.4.1. Problem">
<primary>private</primary>
<secondary>module
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4795" file="ch12_05.htm" sect="12.4.1. Problem">
<primary>subroutines</primary>
<secondary>private
for modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4796" file="ch12_05.htm" sect="12.4.1. Problem">
<primary>variables</primary>
<secondary>private,
for modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4797" file="ch12_05.htm" sect="12.4.1. Problem">
<primary>modules</primary>
<secondary>private
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4798" file="ch12_05.htm" sect="12.4.1. Problem">
<primary>packages</primary>
<secondary>private
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4804" file="ch12_06.htm" sect="12.5.1. Problem">
<primary>private</primary>
<secondary>function to
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4805" file="ch12_06.htm" sect="12.5.1. Problem">
<primary>functions</primary>
<secondary>private for
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4806" file="ch12_06.htm" sect="12.5.1. Problem">
<primary>variables</primary>
<secondary>functions private
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4807" file="ch12_07.htm" sect="12.6.1. Problem">
<primary>packages</primary>
<secondary>determining
current calling</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4808" file="ch12_07.htm" sect="12.6.2. Solution">
<primary>caller( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4809" file="ch12_07.htm" sect="12.6.3. Discussion">
<primary sortas="PACKAGE symbol">__PACKAGE__
symbol</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4810" file="ch12_07.htm" sect="12.6.3. Discussion">
<primary>Symbol::qualify( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4811" file="ch12_07.htm" sect="12.6.3. Discussion">
<primary>filehandles</primary>
<secondary>passing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4813" file="ch12_08.htm" sect="12.7.1. Problem">
<primary>modules</primary>
<secondary>automatic
setup and cleanup</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4814" file="ch12_08.htm" sect="12.7.1. Problem">
<primary>cleaning up
after modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4815" file="ch12_08.htm" sect="12.7.1. Problem">
<primary>initializing</primary>
<secondary>modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4816" file="ch12_08.htm" sect="12.7.3. Discussion">
<primary>$ (dollar
sign)</primary>
<secondary>$^F variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4817" file="ch12_08.htm" sect="12.7.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$^F
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4821" file="ch12_09.htm" sect="12.8.1. Problem">
<primary>directories</primary>
<secondary>of
modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4822" file="ch12_09.htm" sect="12.8.1. Problem">
<primary>modules</primary>
<secondary>directories
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4823" file="ch12_09.htm" sect="12.8.2. Solution">
<primary sortas="I command line switch">-I command-line
switch</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4824" file="ch12_09.htm" sect="12.8.2. Solution">
<primary>-
(hyphen)</primary>
<secondary>-I command-line
switch</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4825" file="ch12_09.htm" sect="12.8.2. Solution">
<primary>hyphen
(-)</primary>
<secondary>-I command-line
switch</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4826" file="ch12_09.htm" sect="12.8.3. Discussion">
<primary sortas="INC array">@INC array</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4827" file="ch12_09.htm" sect="12.8.3. Discussion">
<primary>@ (at sign)</primary>
<secondary>@INC
array</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4828" file="ch12_09.htm" sect="12.8.3. Discussion">
<primary>at sign
(@)</primary>
<secondary>@INC array</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4829" file="ch12_09.htm" sect="12.8.3. Discussion">
<primary>PERL5LIB environment
variable</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4830" file="ch12_09.htm" sect="12.8.3. Discussion">
<primary>use lib pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4831" file="ch12_09.htm" sect="12.8.3. Discussion">
<primary>FindBin module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4834" file="ch12_10.htm" sect="12.9.1. Problem">
<primary>modules</primary>
<secondary>preparing
for distribution</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4835" file="ch12_10.htm" sect="12.9.2. Solution">
<primary>h2xs
tool</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4836" file="ch12_10.htm" sect="12.9.3. Discussion">
<primary>XS interface</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4837" file="ch12_10.htm" sect="12.9.3. Discussion">
<primary>CPAN (Comprehensive Perl Archive
Network)</primary>
<secondary>registering as
developer</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4839" file="ch12_11.htm" sect="12.10.1. Problem">
<primary>modules</primary>
<secondary>loading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4840" file="ch12_11.htm" sect="12.10.1. Problem">
<primary>loading
modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4841" file="ch12_11.htm" sect="12.10.2. Solution">
<primary>SelfLoader module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4842" file="ch12_12.htm" sect="12.11.1. Problem">
<primary>AutoLoader module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4845" file="ch12_13.htm" sect="12.12.1. Problem">
<primary>packages</primary>
<secondary>overriding
built-in functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4846" file="ch12_13.htm" sect="12.12.1. Problem">
<primary>subroutines</primary>
<secondary>built-in,
overriding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4847" file="ch12_13.htm" sect="12.12.1. Problem">
<primary>overriding</primary>
<secondary>built-in
functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4848" file="ch12_13.htm" sect="12.12.1. Problem">
<primary>modules</primary>
<secondary>overriding
built-in functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4849" file="ch12_13.htm" sect="12.12.3. Discussion">
<primary>Cwd module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4854" file="ch12_15.htm" sect="12.14.1. Problem">
<primary>errors</primary>
<secondary>reporting
like built-ins</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4855" file="ch12_15.htm" sect="12.14.1. Problem">
<primary>warnings</primary>
<secondary>reporting
like built-ins</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4856" file="ch12_15.htm" sect="12.14.1. Problem">
<primary>modules</primary>
<secondary>errors</secondary>
<tertiary>reporting
like built-ins</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4857" file="ch12_15.htm" sect="12.14.2. Solution">
<primary>Carp module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4858" file="ch12_15.htm" sect="12.14.2. Solution">
<primary>croak( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4859" file="ch12_15.htm" sect="12.14.2. Solution">
<primary>confess( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4860" file="ch12_15.htm" sect="12.14.3. Discussion">
<primary>$ (dollar
sign)</primary>
<secondary>$^W variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4861" file="ch12_15.htm" sect="12.14.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$^W
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4865" file="ch12_16.htm" sect="12.15.1. Problem">
<primary>warnings</primary>
<secondary>customizing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4866" file="ch12_16.htm" sect="12.15.1. Problem">
<primary>customizing</primary>
<secondary>warnings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4867" file="ch12_16.htm" sect="12.15.2. Solution">
<primary>warnings::enabled( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4868" file="ch12_16.htm" sect="12.15.3. Discussion">
<primary>warnings::register
pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4871" file="ch12_17.htm" sect="12.16.1. Problem">
<primary>packages</primary>
<secondary>referring to
indirectly</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4872" file="ch12_17.htm" sect="12.16.1. Problem">
<primary>symbolic
links</primary>
<secondary>to packages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4873" file="ch12_17.htm" sect="12.16.1. Problem">
<primary>references</primary>
<secondary sortas="packages, indirect">to packages, indirect</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4874" file="ch12_17.htm" sect="12.16.2. Solution">
<primary>references</primary>
<secondary>symbolic</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4875" file="ch12_17.htm" sect="12.16.2. Solution">
<primary>symbolic references</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4876" file="ch12_17.htm" sect="12.16.3. Discussion">
<primary>closures</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4877" file="ch12_17.htm" sect="12.16.3. Discussion">
<primary>typeglobs</primary>
<secondary>assigning
references to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4878" file="ch12_18.htm" sect="12.17.1. Problem">
<primary>h2ph
tool, translating C header files</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4879" file="ch12_18.htm" sect="12.17.1. Problem">
<primary>C header files,
translating with h2ph</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4880" file="ch12_18.htm" sect="12.17.1. Problem">
<primary>files</primary>
<secondary>C header,
translating with h2ph</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4881" file="ch12_18.htm" sect="12.17.3. Discussion">
<primary sortas="ph filename extension">.ph filename
extension</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4882" file="ch12_18.htm" sect="12.17.3. Discussion">
<primary>ioctl( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4883" file="ch12_18.htm" sect="12.17.3. Discussion">
<primary>windows</primary>
<secondary>size of,
determining</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4887" file="ch12_19.htm" sect="12.18.1. Problem">
<primary>h2xs
tool</primary>
<secondary>making a module with C
code</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4888" file="ch12_19.htm" sect="12.18.1. Problem">
<primary>modules</primary>
<secondary>writing
in C</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4889" file="ch12_19.htm" sect="12.18.1. Problem">
<primary>C</primary>
<secondary>writing modules
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4890" file="ch12_19.htm" sect="12.18.3. Discussion">
<primary>XS interface</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4894" file="ch12_20.htm" sect="12.19.1. Problem">
<primary>extension modules, C,
building</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4895" file="ch12_20.htm" sect="12.19.1. Problem">
<primary>C</primary>
<secondary>extension modules,
building</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4896" file="ch12_20.htm" sect="12.19.1. Problem">
<primary>building</primary>
<secondary>C extension
modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4897" file="ch12_20.htm" sect="12.19.2. Solution">
<primary>Inline::C module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4898" file="ch12_21.htm" sect="12.20.1. Problem">
<primary>modules</primary>
<secondary>documenting
with pod</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4899" file="ch12_21.htm" sect="12.20.1. Problem">
<primary>comments</primary>
<secondary>pod
documentation for modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4900" file="ch12_21.htm" sect="12.20.1. Problem">
<primary>pod</primary>
<secondary>documentation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4901" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>pod2html</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4902" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>pod2text tools</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4903" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>pod2man</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4904" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>converting</primary>
<secondary>pod into other
languages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4905" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>pod</primary>
<secondary>converting into other
languages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4906" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>whitespace</primary>
<secondary>in pod
documentation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4907" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>paragraphs</primary>
<secondary>in pod
documentation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4908" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary sortas="for escape pod directive">=for escape pod
directive</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4909" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>= (equals sign)</primary>
<secondary>=begin pod
directive</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4910" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>equals sign
(=)</primary>
<secondary>=begin pod directive</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4911" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary sortas="begin pod directive">=begin pod
directive</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4912" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>= (equals
sign)</primary>
<secondary>=end pod directive</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4913" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary>equals sign (=)</primary>
<secondary>=end pod
directive</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4914" file="ch12_21.htm" sect="12.20.3. Discussion">
<primary sortas="end pod directive">=end pod directive</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4918" file="ch12_22.htm" sect="12.21.1. Problem">
<primary>installing</primary>
<secondary>modules
from CPAN</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4919" file="ch12_22.htm" sect="12.21.1. Problem">
<primary>building</primary>
<secondary>modules
from CPAN</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4920" file="ch12_22.htm" sect="12.21.1. Problem">
<primary>CPAN (Comprehensive Perl Archive
Network)</primary>
<secondary>building and installing modules
from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4921" file="ch12_22.htm" sect="12.21.1. Problem">
<primary>modules</primary>
<secondary>CPAN</secondary>
<see>CPAN</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4922" file="ch12_22.htm" sect="12.21.3. Discussion">
<primary>CPANPLUS module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4926" file="ch12_23.htm" sect="12.22. Example: Module Template">
<primary>modules</primary>
<secondary>template
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4927" file="ch12_23.htm" sect="12.22. Example: Module Template">
<primary>templates</primary>
<secondary sortas="modules">for modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4928" file="ch12_24.htm" sect="12.23. Program: Finding Versions and Descriptions of Installed Modules">
<primary>modules</primary>
<secondary>finding
versions and descriptions of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4929" file="ch12_24.htm" sect="12.23. Program: Finding Versions and Descriptions of Installed Modules">
<primary>finding</primary>
<secondary>versions
and descriptions of modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-12-ITERM-4930" file="ch12_24.htm" sect="12.23. Program: Finding Versions and Descriptions of Installed Modules">
<primary>CPANPLUS module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4933" file="ch13_01.htm" sect="13.. Under the Hood">
<primary>object-oriented
programming</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4934" file="ch13_01.htm" sect="13.. Under the Hood">
<primary>objects</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4935" file="ch13_01.htm" sect="13.. Under the Hood">
<primary>classes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4936" file="ch13_01.htm" sect="13.. Under the Hood">
<primary>methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4937" file="ch13_01.htm" sect="13.. Under the Hood">
<primary>bless( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4938" file="ch13_01.htm" sect="13.. Under the Hood">
<primary>ref( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4939" file="ch13_01.htm" sect="13.. Methods">
<primary>methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4940" file="ch13_01.htm" sect="13.. Methods">
<primary>-
(hyphen)</primary>
<secondary>-&gt; (arrow)
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4941" file="ch13_01.htm" sect="13.. Methods">
<primary>hyphen
(-)</primary>
<secondary>-&gt; (arrow)
operator</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4942" file="ch13_01.htm" sect="13.. Methods">
<primary>arrow (-&gt;)
operator</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4943" file="ch13_01.htm" sect="13.. Methods">
<primary>invocant</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4944" file="ch13_01.htm" sect="13.. Methods">
<primary>constructors</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4945" file="ch13_01.htm" sect="13.. Methods">
<primary>objects</primary>
<secondary>constructing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4946" file="ch13_01.htm" sect="13.. Methods">
<primary>destructors</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4947" file="ch13_01.htm" sect="13.. Methods">
<primary>objects</primary>
<secondary>destroying</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4948" file="ch13_01.htm" sect="13.. Methods">
<primary>public methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4949" file="ch13_01.htm" sect="13.. Methods">
<primary>private</primary>
<secondary>methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4950" file="ch13_01.htm" sect="13.. Methods">
<primary>methods</primary>
<secondary>private and
public</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4951" file="ch13_01.htm" sect="13.. Methods">
<primary>class methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4952" file="ch13_01.htm" sect="13.. Methods">
<primary>instance methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4953" file="ch13_01.htm" sect="13.. Methods">
<primary>prototypes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4954" file="ch13_01.htm" sect="13.. Methods">
<primary>AUTOLOAD mechanism</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4955" file="ch13_01.htm" sect="13.. Methods">
<primary>methods</primary>
<secondary>generating with
AUTOLOAD</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4956" file="ch13_01.htm" sect="13.. Methods">
<primary>classes</primary>
<secondary>generating methods
with AUTOLOAD</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4958" file="ch13_01.htm" sect="13.. Inheritance">
<primary>inheritance</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4959" file="ch13_01.htm" sect="13.. Inheritance">
<primary>classes</primary>
<secondary>inheritance</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4960" file="ch13_01.htm" sect="13.. Inheritance">
<primary>superclasses</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4961" file="ch13_01.htm" sect="13.. Inheritance">
<primary>single inheritance</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4962" file="ch13_01.htm" sect="13.. Inheritance">
<primary>multiple inheritance</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4963" file="ch13_01.htm" sect="13.. A Warning on Indirect Object Notation">
<primary>indirect
notation</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4964" file="ch13_01.htm" sect="13.. A Warning on Indirect Object Notation">
<primary>methods</primary>
<secondary>indirect
notation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4967" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>object-oriented
programming</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4968" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>instance methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4969" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>base class</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4970" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>generic classes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4971" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>superclasses</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4972" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>classes</primary>
<secondary>superclasses</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4973" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>classes</primary>
<secondary>generic</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4974" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>class methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4975" file="ch13_01.htm" sect="13.. Some Notes on Object Terminology">
<primary>object methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4976" file="ch13_02.htm" sect="13.1.1. Problem">
<primary>constructors</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4977" file="ch13_02.htm" sect="13.1.1. Problem">
<primary>objects</primary>
<secondary>constructing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4978" file="ch13_02.htm" sect="13.1.2. Solution">
<primary>bless( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4979" file="ch13_02.htm" sect="13.1.2. Solution">
<primary>initializers</primary>
<see>constructors</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4982" file="ch13_03.htm" sect="13.2.1. Problem">
<primary>destructors</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4983" file="ch13_03.htm" sect="13.2.1. Problem">
<primary>objects</primary>
<secondary>destroying</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4984" file="ch13_03.htm" sect="13.2.3. Discussion">
<primary>garbage collection</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4985" file="ch13_03.htm" sect="13.2.3. Discussion">
<primary>memory</primary>
<secondary>garbage
collection</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4988" file="ch13_04.htm" sect="13.3.1. Problem">
<primary>instance
data</primary>
<secondary>managing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4989" file="ch13_04.htm" sect="13.3.1. Problem">
<primary>objects</primary>
<secondary>managing
instance data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4990" file="ch13_04.htm" sect="13.3.1. Problem">
<primary>attributes,
object</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4991" file="ch13_04.htm" sect="13.3.1. Problem">
<primary>object
attributes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4992" file="ch13_04.htm" sect="13.3.3. Discussion">
<primary>methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4993" file="ch13_04.htm" sect="13.3.3. Discussion">
<primary>Alias module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4998" file="ch13_05.htm" sect="13.4.1. Problem">
<primary>class
data</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-4999" file="ch13_05.htm" sect="13.4.1. Problem">
<primary>objects</primary>
<secondary>managing
class data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5000" file="ch13_05.htm" sect="13.4.1. Problem">
<primary>static data
members</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5001" file="ch13_05.htm" sect="13.4.2. Solution">
<primary>class methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5005" file="ch13_06.htm" sect="13.5.1. Problem">
<primary>data
types</primary>
<secondary>classes as structs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5006" file="ch13_06.htm" sect="13.5.1. Problem">
<primary>classes</primary>
<secondary sortas="structs">as structs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5007" file="ch13_06.htm" sect="13.5.1. Problem">
<primary>structs, classes
as</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5008" file="ch13_06.htm" sect="13.5.1. Problem">
<primary>class attributes</primary>
<see>class
data</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5009" file="ch13_06.htm" sect="13.5.2. Solution">
<primary>Class::Struct module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5010" file="ch13_06.htm" sect="13.5.3. Discussion">
<primary>struct( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5011" file="ch13_06.htm" sect="13.5.3. Discussion">
<primary>Net::hostent module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5015" file="ch13_07.htm" sect="13.6.1. Problem">
<primary>objects</primary>
<secondary>cloning parent
objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5016" file="ch13_07.htm" sect="13.6.1. Problem">
<primary>parent
classes</primary>
<secondary>cloning objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5017" file="ch13_07.htm" sect="13.6.1. Problem">
<primary>copying</primary>
<secondary>parent
objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5018" file="ch13_07.htm" sect="13.6.1. Problem">
<primary>constructors</primary>
<secondary>cloning parent
objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5019" file="ch13_08.htm" sect="13.7.1. Problem">
<primary>copy constructors</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5020" file="ch13_08.htm" sect="13.7.2. Solution">
<primary>dclone( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5021" file="ch13_08.htm" sect="13.7.2. Solution">
<primary>Storable module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5022" file="ch13_09.htm" sect="13.8.1. Problem">
<primary>methods</primary>
<secondary>invoking
indirectly</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5023" file="ch13_09.htm" sect="13.8.3. Discussion">
<primary>can( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5024" file="ch13_09.htm" sect="13.8.3. Discussion">
<primary>UNIVERSAL module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5025" file="ch13_10.htm" sect="13.9.1. Problem">
<primary>subclasses, determining
membership</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5026" file="ch13_10.htm" sect="13.9.1. Problem">
<primary>classes</primary>
<secondary>determining subclass
membership</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5027" file="ch13_10.htm" sect="13.9.1. Problem">
<primary>objects</primary>
<secondary>determining subclass
membership</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5028" file="ch13_10.htm" sect="13.9.3. Discussion">
<primary>isa( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5029" file="ch13_10.htm" sect="13.9.3. Discussion">
<primary>VERSION( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5030" file="ch13_11.htm" sect="13.10.1. Problem">
<primary>inheritance</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5031" file="ch13_11.htm" sect="13.10.1. Problem">
<primary>classes</primary>
<secondary>inheritance</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5032" file="ch13_11.htm" sect="13.10.3. Discussion">
<primary>empty</primary>
<secondary>base class
test</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5033" file="ch13_11.htm" sect="13.10.3. Discussion">
<primary>base
class</primary>
<secondary>empty base class
test</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5034" file="ch13_11.htm" sect="13.10.3. Discussion">
<primary>functions</primary>
<secondary sortas="methods">vs. methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5035" file="ch13_11.htm" sect="13.10.3. Discussion">
<primary>methods</primary>
<secondary sortas="functions">vs. functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5036" file="ch13_12.htm" sect="13.11.1. Problem">
<primary>overridden
methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5037" file="ch13_12.htm" sect="13.11.1. Problem">
<primary>methods</primary>
<secondary>overridden</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5038" file="ch13_12.htm" sect="13.11.1. Problem">
<primary>constructors</primary>
<secondary>accessing
overridden methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5039" file="ch13_12.htm" sect="13.11.1. Problem">
<primary>superclasses</primary>
<secondary>accessing
overridden methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5040" file="ch13_12.htm" sect="13.11.1. Problem">
<primary>parent
classes</primary>
<secondary>accessing overridden
methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5041" file="ch13_12.htm" sect="13.11.1. Problem">
<primary>classes</primary>
<secondary>accessing
overridden methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5042" file="ch13_12.htm" sect="13.11.2. Solution">
<primary>SUPER
pseudoclass</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5049" file="ch13_13.htm" sect="13.12.1. Problem">
<primary>AUTOLOAD
mechanism</primary>
<secondary>generating
methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5050" file="ch13_13.htm" sect="13.12.1. Problem">
<primary>methods</primary>
<secondary>generating
with AUTOLOAD</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5051" file="ch13_13.htm" sect="13.12.1. Problem">
<primary>classes</primary>
<secondary>generating
methods with AUTOLOAD</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5055" file="ch13_14.htm" sect="13.13.1. Problem">
<primary>circular</primary>
<secondary>data
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5056" file="ch13_14.htm" sect="13.13.1. Problem">
<primary>garbage
collection</primary>
<secondary>circular data structures
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5057" file="ch13_14.htm" sect="13.13.1. Problem">
<primary>memory</primary>
<secondary>garbage
collection</secondary>
<tertiary>circular data structures
and</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5058" file="ch13_14.htm" sect="13.13.1. Problem">
<primary>class
data</primary>
<secondary>circular data
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5059" file="ch13_14.htm" sect="13.13.1. Problem">
<primary>instance
data</primary>
<secondary>circular data
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5060" file="ch13_14.htm" sect="13.13.1. Problem">
<primary>data
types</primary>
<secondary>circular data
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5061" file="ch13_14.htm" sect="13.13.1. Problem">
<primary>self-referential data
structures</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5062" file="ch13_14.htm" sect="13.13.1. Problem">
<primary>references</primary>
<secondary>self-referential
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5071" file="ch13_15.htm" sect="13.14.1. Problem">
<primary>overloading
operators</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5072" file="ch13_15.htm" sect="13.14.1. Problem">
<primary>operators</primary>
<secondary>overloading</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5073" file="ch13_15.htm" sect="13.14.1. Problem">
<primary>use
overload pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5074" file="ch13_15.htm" sect="13.14.4. Example: Overloaded StrNum Class">
<primary>StrNum class (example)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5075" file="ch13_15.htm" sect="13.14.4. Example: Overloaded StrNum Class">
<primary>strings</primary>
<secondary>numeric operators
with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5076" file="ch13_15.htm" sect="13.14.5. Example: Overloaded FixNum Class">
<primary>FixNum class</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5077" file="ch13_15.htm" sect="13.14.5. Example: Overloaded FixNum Class">
<primary>numbers</primary>
<secondary>decimal
places, controlling</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5078" file="ch13_15.htm" sect="13.14.5. Example: Overloaded FixNum Class">
<primary>output</primary>
<secondary>controlling
decimal places</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5079" file="ch13_15.htm" sect="13.14.5. Example: Overloaded FixNum Class">
<primary>places( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5086" file="ch13_16.htm" sect="13.15.1. Problem">
<primary>variables</primary>
<secondary>magic,
creating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5087" file="ch13_16.htm" sect="13.15.1. Problem">
<primary>creating</primary>
<secondary>magic
variables</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5088" file="ch13_16.htm" sect="13.15.1. Problem">
<primary>magic variables,
creating</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5089" file="ch13_16.htm" sect="13.15.1. Problem">
<primary>objects</primary>
<secondary>tied
objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5090" file="ch13_16.htm" sect="13.15.1. Problem">
<primary>filehandles</primary>
<secondary>tied</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5091" file="ch13_16.htm" sect="13.15.1. Problem">
<primary>handles</primary>
<see>filehandles</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5092" file="ch13_16.htm" sect="13.15.2. Solution">
<primary>tie( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5093" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>FETCH( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5094" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>STORE( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5095" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>TIESCALAR( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5096" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>TIEARRAY( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5097" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>TIEHASH( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5098" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>TIEHANDLE( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5099" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>Tie::Scalar module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5100" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>Tie::Array module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5101" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>Tie::Hash module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5102" file="ch13_16.htm" sect="13.15.3. Discussion">
<primary>Tie::Handle module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5103" file="ch13_16.htm" sect="13.15.4. Tie Example: Outlaw $_">
<primary>$ (dollar sign)</primary>
<secondary>$_
variable</secondary>
<tertiary>outlawing unauthorized
use</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5104" file="ch13_16.htm" sect="13.15.4. Tie Example: Outlaw $_">
<primary>dollar sign
($)</primary>
<secondary>$_ variable</secondary>
<tertiary>outlawing
unauthorized use</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5105" file="ch13_16.htm" sect="13.15.4. Tie Example: Outlaw $_">
<primary>unimport( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5106" file="ch13_16.htm" sect="13.15.4. Tie Example: Outlaw $_">
<primary>outlaw $_ program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5107" file="ch13_16.htm" sect="13.15.4. Tie Example: Outlaw $_">
<primary>nounder_demo program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5108" file="ch13_16.htm" sect="13.15.5. Tie Example: Make a Hash That Always Appends">
<primary>hashes</primary>
<secondary>ties
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5109" file="ch13_16.htm" sect="13.15.5. Tie Example: Make a Hash That Always Appends">
<primary>appendhash_demo program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5110" file="ch13_16.htm" sect="13.15.6. Tie Example: Case-Insensitive Hash">
<primary>capitalization</primary>
<secondary>case-insensitive
hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5111" file="ch13_16.htm" sect="13.15.6. Tie Example: Case-Insensitive Hash">
<primary>case
sensitivity</primary>
<secondary>hashes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5112" file="ch13_16.htm" sect="13.15.6. Tie Example: Case-Insensitive Hash">
<primary>folded_demo program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5113" file="ch13_16.htm" sect="13.15.7. Tie Example: Hash That Allows Lookups by Key or Value">
<primary>hashes</primary>
<secondary>lookups by key or
value</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5114" file="ch13_16.htm" sect="13.15.7. Tie Example: Hash That Allows Lookups by Key or Value">
<primary>references</primary>
<secondary sortas="hash keys">as hash keys</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-13-ITERM-5115" file="ch13_16.htm" sect="13.15.7. Tie Example: Hash That Allows Lookups by Key or Value">
<primary>revhash_demo program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5121" file="ch14_01.htm" sect="14.. Introduction">
<primary>database
access</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5122" file="ch14_01.htm" sect="14.. Introduction">
<primary>access to databases</primary>
<see>database
access</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5123" file="ch14_01.htm" sect="14.. Introduction">
<primary>DBM libraries</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5124" file="ch14_01.htm" sect="14.. Introduction">
<primary>libraries</primary>
<secondary>DBM</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5125" file="ch14_01.htm" sect="14.. Introduction">
<primary>NDBM files</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5126" file="ch14_01.htm" sect="14.. Introduction">
<primary>GDBM files</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5127" file="ch14_01.htm" sect="14.. Introduction">
<primary>SDBM files</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5128" file="ch14_01.htm" sect="14.. Introduction">
<primary>Berkeley DB library</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5129" file="ch14_01.htm" sect="14.. Introduction">
<primary>code size, library</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5130" file="ch14_01.htm" sect="14.. Introduction">
<primary>disk usage, library</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5131" file="ch14_01.htm" sect="14.. Introduction">
<primary>MLDBM module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5132" file="ch14_01.htm" sect="14.. Introduction">
<primary>DBD::SQLite module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5133" file="ch14_02.htm" sect="14.1.1. Problem">
<primary>DBM
files</primary>
<secondary>making and using</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5134" file="ch14_02.htm" sect="14.1.1. Problem">
<primary>database
access</primary>
<secondary>DBM files</secondary>
<tertiary>making and
using</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5135" file="ch14_02.htm" sect="14.1.2. Solution">
<primary>tie( )</primary>
<secondary>DBM
files</secondary>
<tertiary>making and using</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5136" file="ch14_02.htm" sect="14.1.3. Discussion">
<primary>userstats program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5139" file="ch14_03.htm" sect="14.2.1. Problem">
<primary>DBM
files</primary>
<secondary>emptying</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5140" file="ch14_03.htm" sect="14.2.1. Problem">
<primary>deleting</primary>
<secondary>emptying DBM
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5141" file="ch14_03.htm" sect="14.2.1. Problem">
<primary>database
access</primary>
<secondary>DBM
files</secondary>
<tertiary>emptying</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5142" file="ch14_03.htm" sect="14.2.2. Solution">
<primary>tie( )</primary>
<secondary>DBM
files</secondary>
<tertiary>emptying</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5143" file="ch14_04.htm" sect="14.3.1. Problem">
<primary>DBM files</primary>
<secondary>converting
between</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5144" file="ch14_04.htm" sect="14.3.1. Problem">
<primary>converting</primary>
<secondary>DBM
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5145" file="ch14_04.htm" sect="14.3.1. Problem">
<primary>database
access</primary>
<secondary>DBM files</secondary>
<tertiary>converting
between</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5146" file="ch14_04.htm" sect="14.3.2. Solution">
<primary>db2gdbm
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5147" file="ch14_04.htm" sect="14.3.2. Solution">
<primary>DBM
files</primary>
<secondary>GDBM files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5148" file="ch14_04.htm" sect="14.3.2. Solution">
<primary>GDBM files</primary>
<secondary>db2gdbm
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5149" file="ch14_05.htm" sect="14.4.1. Problem">
<primary>merging</primary>
<secondary>DBM
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5150" file="ch14_05.htm" sect="14.4.1. Problem">
<primary>DBM
files</primary>
<secondary>merging</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5151" file="ch14_05.htm" sect="14.4.1. Problem">
<primary>database access</primary>
<secondary>DBM
files</secondary>
<tertiary>merging</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5152" file="ch14_06.htm" sect="14.5.1. Problem">
<primary>sorting</primary>
<secondary>DBM
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5153" file="ch14_06.htm" sect="14.5.1. Problem">
<primary>DBM
files</primary>
<secondary>sorting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5154" file="ch14_06.htm" sect="14.5.1. Problem">
<primary>database access</primary>
<secondary>DBM
files</secondary>
<tertiary>sorting</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5155" file="ch14_06.htm" sect="14.5.2. Solution">
<primary>DB_File module</primary>
<secondary>sorting large
DBM files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5156" file="ch14_06.htm" sect="14.5.3. Description">
<primary>B-tree implementation,
DB_File</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5157" file="ch14_07.htm" sect="14.6.1. Problem">
<primary>DBM files</primary>
<secondary>complex data
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5158" file="ch14_07.htm" sect="14.6.1. Problem">
<primary>database
access</primary>
<secondary>DBM files</secondary>
<tertiary>storing
complex data in</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5159" file="ch14_07.htm" sect="14.6.2. Solution">
<primary>MLDBM module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5160" file="ch14_08.htm" sect="14.7.1. Problem">
<primary>persistent</primary>
<secondary>database
data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5161" file="ch14_08.htm" sect="14.7.1. Problem">
<primary>database
access</primary>
<secondary>persistent data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5162" file="ch14_08.htm" sect="14.7.2. Solution">
<primary>MLDBM module</primary>
<secondary>persistent
data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5163" file="ch14_09.htm" sect="14.8.1. Problem">
<primary>SQL queries</primary>
<secondary>saving results to
Excel or CSV</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5164" file="ch14_09.htm" sect="14.8.1. Problem">
<primary>Excel,
saving SQL query results to</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5165" file="ch14_09.htm" sect="14.8.1. Problem">
<primary>CSV files, saving results of SQL
queries</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5166" file="ch14_09.htm" sect="14.8.2. Solution">
<primary>DBIx::Dump module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5169" file="ch14_10.htm" sect="14.9.1. Problem">
<primary>SQL
queries</primary>
<secondary>executing using
DBI</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5170" file="ch14_10.htm" sect="14.9.1. Problem">
<primary>database
access</primary>
<secondary>SQL</secondary>
<tertiary>queries</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5171" file="ch14_10.htm" sect="14.9.2. Solution">
<primary>DBI module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5172" file="ch14_10.htm" sect="14.9.2. Solution">
<primary>DBD module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5175" file="ch14_11.htm" sect="14.10.1. Problem">
<primary>single quote
(')</primary>
<secondary>escaping</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5176" file="ch14_11.htm" sect="14.10.1. Problem">
<primary>' (single
quote)</primary>
<secondary>escaping</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5177" file="ch14_11.htm" sect="14.10.1. Problem">
<primary>double quote
(&quot;)</primary>
<secondary>escaping</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5178" file="ch14_11.htm" sect="14.10.1. Problem">
<primary>&quot; (double
quote)</primary>
<secondary>escaping</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5179" file="ch14_11.htm" sect="14.10.2. Solution">
<primary>quote( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5180" file="ch14_12.htm" sect="14.11.1. Problem">
<primary>errors</primary>
<secondary>database</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5181" file="ch14_12.htm" sect="14.11.1. Problem">
<primary>database
access</primary>
<secondary>dealing with
errors</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5184" file="ch14_13.htm" sect="14.12.1. Problem">
<primary>SQL
queries</primary>
<secondary>repeating
efficiently</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5185" file="ch14_13.htm" sect="14.12.3. Discussion">
<primary>binding, databases</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5187" file="ch14_14.htm" sect="14.13.1. Problem">
<primary>SQL queries</primary>
<secondary>building
programmatically</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5188" file="ch14_14.htm" sect="14.13.3. Discussion">
<primary>map( )</primary>
<secondary>building SQL
queries programmatically</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5189" file="ch14_15.htm" sect="14.14.1. Problem">
<primary>database
access</primary>
<secondary>SQL</secondary>
<tertiary>queries</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5190" file="ch14_15.htm" sect="14.14.2. Solution">
<primary>do( )</primary>
<secondary>finding number
of rows returned by SQL queries</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5191" file="ch14_16.htm" sect="14.15.1. Problem">
<primary>database access</primary>
<secondary>using
transactions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5192" file="ch14_16.htm" sect="14.15.2. Solution">
<primary>commit( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5193" file="ch14_16.htm" sect="14.15.2. Solution">
<primary>rollback( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5194" file="ch14_17.htm" sect="14.16.1. Problem">
<primary>database access</primary>
<secondary>viewing data
one page at a time</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5195" file="ch14_18.htm" sect="14.17.1. Problem">
<primary>SQL queries</primary>
<secondary>querying CSV
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5196" file="ch14_18.htm" sect="14.17.2. Solution">
<primary>DBD::CSV module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5197" file="ch14_19.htm" sect="14.18.1. Problem">
<primary>SQL queries</primary>
<secondary sortas="database server">without database server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5198" file="ch14_19.htm" sect="14.18.1. Problem">
<primary>servers</primary>
<secondary>database, using SQL
without</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5199" file="ch14_19.htm" sect="14.18.2. Solution">
<primary>DBD::SQLite module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5200" file="ch14_20.htm" sect="14.19. Program: ggh&#x2014;Grep Netscape Global History">
<primary>ggh
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5201" file="ch14_20.htm" sect="14.19. Program: ggh&#x2014;Grep Netscape Global History">
<primary>history.db file,
grepping</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5202" file="ch14_20.htm" sect="14.19. Program: ggh&#x2014;Grep Netscape Global History">
<primary>database
access</primary>
<secondary>ggh program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-14-ITERM-5203" file="ch14_20.htm" sect="14.19. Program: ggh&#x2014;Grep Netscape Global History">
<primary>Netscape history.db
file</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5209" file="ch15_01.htm" sect="15.. Introduction">
<primary>user
interfaces</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5210" file="ch15_01.htm" sect="15.. Introduction">
<primary>line mode interfaces</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5211" file="ch15_01.htm" sect="15.. Introduction">
<primary>full-screen mode</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5212" file="ch15_01.htm" sect="15.. Introduction">
<primary>user interfaces</primary>
<secondary>full-screen
mode</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5213" file="ch15_01.htm" sect="15.. Introduction">
<primary>GUIs (graphical user
interfaces)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5214" file="ch15_01.htm" sect="15.. Introduction">
<primary>graphical user
interfaces (GUIs)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5215" file="ch15_01.htm" sect="15.. Introduction">
<primary>login sessions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5216" file="ch15_01.htm" sect="15.. Introduction">
<primary>curses toolkit</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5217" file="ch15_01.htm" sect="15.. Introduction">
<primary>Tk toolkit</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5218" file="ch15_02.htm" sect="15.1.1. Problem">
<primary>programs</primary>
<secondary>command-line
arguments, parsing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5219" file="ch15_02.htm" sect="15.1.1. Problem">
<primary>command-line
arguments, parsing</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5220" file="ch15_02.htm" sect="15.1.1. Problem">
<primary>parsing</primary>
<secondary>command-line
arguments</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5221" file="ch15_02.htm" sect="15.1.1. Problem">
<primary>characters</primary>
<secondary>parsing
command-line arguments</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5222" file="ch15_02.htm" sect="15.1.1. Problem">
<primary>input</primary>
<secondary>parsing
command-line arguments</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5223" file="ch15_02.htm" sect="15.1.2. Solution">
<primary>Getopt::Std module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5224" file="ch15_02.htm" sect="15.1.2. Solution">
<primary>Getopt::Long
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5225" file="ch15_02.htm" sect="15.1.3. Discussion">
<primary>getopt( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5226" file="ch15_02.htm" sect="15.1.3. Discussion">
<primary>getopts( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5227" file="ch15_02.htm" sect="15.1.3. Discussion">
<primary>GetOptions( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5233" file="ch15_03.htm" sect="15.2.1. Problem">
<primary>interactivity, testing for</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5234" file="ch15_03.htm" sect="15.2.1. Problem">
<primary>programs</primary>
<secondary>testing if running
interactively</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5235" file="ch15_03.htm" sect="15.2.1. Problem">
<primary>user
interfaces</primary>
<secondary>testing programs if running
interactively</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5236" file="ch15_03.htm" sect="15.2.2. Solution">
<primary sortas="t command-line option">-t command-line
option</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5237" file="ch15_03.htm" sect="15.2.2. Solution">
<primary>-
(hyphen)</primary>
<secondary>-t command-line
option</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5238" file="ch15_03.htm" sect="15.2.2. Solution">
<primary>hyphen
(-)</primary>
<secondary>-t command-line
option</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5239" file="ch15_03.htm" sect="15.2.3. Discussion">
<primary>tty devices, testing for</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5240" file="ch15_04.htm" sect="15.3.1. Problem">
<primary>deleting</primary>
<secondary>clearing the
screen</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5241" file="ch15_04.htm" sect="15.3.1. Problem">
<primary>user
interfaces</primary>
<secondary>clearing the
screen</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5242" file="ch15_04.htm" sect="15.3.2. Solution">
<primary>Term::Cap module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5243" file="ch15_04.htm" sect="15.3.2. Solution">
<primary>clear command, clearing the
screen</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5244" file="ch15_05.htm" sect="15.4.1. Problem">
<primary>user interfaces</primary>
<secondary>determining
window size</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5245" file="ch15_05.htm" sect="15.4.1. Problem">
<primary>windows</primary>
<secondary>size of,
determining</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5246" file="ch15_05.htm" sect="15.4.1. Problem">
<primary>size</primary>
<secondary>window or terminal,
determining</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5247" file="ch15_05.htm" sect="15.4.2. Solution">
<primary>Term::ReadKey
module</primary>
<secondary>determining window
size</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5248" file="ch15_05.htm" sect="15.4.3. Discussion">
<primary>GetTerminalSize( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5249" file="ch15_06.htm" sect="15.5.1. Problem">
<primary>text</primary>
<secondary>changing
color</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5250" file="ch15_06.htm" sect="15.5.1. Problem">
<primary>color of text,
changing</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5251" file="ch15_06.htm" sect="15.5.1. Problem">
<primary>user
interfaces</primary>
<secondary>text color</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5252" file="ch15_06.htm" sect="15.5.1. Problem">
<primary>characters</primary>
<secondary>text color,
changing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5253" file="ch15_06.htm" sect="15.5.1. Problem">
<primary>words</primary>
<secondary>text color,
changing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5254" file="ch15_06.htm" sect="15.5.1. Problem">
<primary>strings</primary>
<secondary>text color,
changing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5255" file="ch15_06.htm" sect="15.5.2. Solution">
<primary>Term::ANSIColor
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5256" file="ch15_06.htm" sect="15.5.3. Discussion">
<primary>color( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5257" file="ch15_07.htm" sect="15.6.1. Problem">
<primary>unbuffered input/output</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5258" file="ch15_07.htm" sect="15.6.1. Problem">
<primary>input</primary>
<secondary>reading</secondary>
<tertiary sortas="keyboard">from keyboard</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5259" file="ch15_07.htm" sect="15.6.1. Problem">
<primary>user interfaces</primary>
<secondary>reading from
keyboard</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5260" file="ch15_07.htm" sect="15.6.1. Problem">
<primary>keyboard
input</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5261" file="ch15_07.htm" sect="15.6.2. Solution">
<primary>Term::ReadKey
module</primary>
<secondary>reading from
keyboard</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5262" file="ch15_07.htm" sect="15.6.2. Solution">
<primary>cbreak
mode</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5263" file="ch15_08.htm" sect="15.7.1. Problem">
<primary>bell, ringing</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5264" file="ch15_08.htm" sect="15.7.1. Problem">
<primary>alarm, ringing</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5265" file="ch15_08.htm" sect="15.7.1. Problem">
<primary>user interfaces</primary>
<secondary>ringing
terminal bell</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5266" file="ch15_08.htm" sect="15.7.2. Solution">
<primary>backslash (\)</primary>
<secondary>\a
for terminal bell</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5267" file="ch15_08.htm" sect="15.7.2. Solution">
<primary>\
(backslash)</primary>
<secondary>\a for terminal
bell</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5268" file="ch15_08.htm" sect="15.7.2. Solution">
<primary sortas="a for terminal bell">\a for terminal bell</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5269" file="ch15_08.htm" sect="15.7.3. Discussion">
<primary>visual bell</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5270" file="ch15_09.htm" sect="15.8.1. Problem">
<primary>termios
interface</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5271" file="ch15_09.htm" sect="15.8.1. Problem">
<primary>user
interfaces</primary>
<secondary>manipulating terminal
directly</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5272" file="ch15_09.htm" sect="15.8.1. Problem">
<primary>POSIX (Portable Operating System
Interface)</primary>
<secondary>termios
interface</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5273" file="ch15_09.htm" sect="15.8.1. Problem">
<primary>terminal</primary>
<see>user
interfaces</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5274" file="ch15_09.htm" sect="15.8.3. Description">
<primary>HotKey module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5278" file="ch15_10.htm" sect="15.9.1. Problem">
<primary>input</primary>
<secondary>waiting, checking
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5279" file="ch15_10.htm" sect="15.9.1. Problem">
<primary>keyboard
input</primary>
<secondary>checking for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5280" file="ch15_10.htm" sect="15.9.1. Problem">
<primary>user interfaces</primary>
<secondary>checking for
waiting input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5281" file="ch15_10.htm" sect="15.9.2. Solution">
<primary>Term::ReadKey
module</primary>
<secondary>checking for waiting
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5282" file="ch15_11.htm" sect="15.10.1. Problem">
<primary>input</primary>
<secondary>reading</secondary>
<tertiary>passwords</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5283" file="ch15_11.htm" sect="15.10.1. Problem">
<primary>passwords</primary>
<secondary>reading without
echo</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5284" file="ch15_11.htm" sect="15.10.1. Problem">
<primary>echo and password
input</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5285" file="ch15_11.htm" sect="15.10.1. Problem">
<primary>user
interfaces</primary>
<secondary>reading passwords without
echo</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5286" file="ch15_11.htm" sect="15.10.1. Problem">
<primary>security</primary>
<secondary>reading
passwords without echo</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5287" file="ch15_11.htm" sect="15.10.1. Problem">
<primary>passwords</primary>
<secondary>reading without
echo</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5288" file="ch15_11.htm" sect="15.10.2. Solution">
<primary>Term::ReadKey
module</primary>
<secondary>reading passwords</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5289" file="ch15_11.htm" sect="15.10.2. Solution">
<primary>noecho input mode</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5290" file="ch15_12.htm" sect="15.11.1. Problem">
<primary>editing</primary>
<secondary>input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5291" file="ch15_12.htm" sect="15.11.1. Problem">
<primary>user interfaces</primary>
<secondary>editing
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5292" file="ch15_12.htm" sect="15.11.1. Problem">
<primary>input</primary>
<secondary>editing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5293" file="ch15_12.htm" sect="15.11.1. Problem">
<primary>keyboard input</primary>
<seealso>input</seealso>
<see>also
input</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5294" file="ch15_12.htm" sect="15.11.2. Solution">
<primary>Term::ReadLine
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5295" file="ch15_12.htm" sect="15.11.2. Solution">
<primary>Term::ReadLine::Gnu
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5296" file="ch15_13.htm" sect="15.12.1. Problem">
<primary>user interfaces</primary>
<secondary>managing
screen</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5297" file="ch15_13.htm" sect="15.12.1. Problem">
<primary>screen</primary>
<see>user
interfaces</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5298" file="ch15_13.htm" sect="15.12.2. Solution">
<primary>Curses module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5299" file="ch15_13.htm" sect="15.12.3. Description">
<primary>rep
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5300" file="ch15_13.htm" sect="15.12.3. Description">
<primary>perlmenu module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5301" file="ch15_14.htm" sect="15.13.1. Problem">
<primary>user interfaces</primary>
<secondary>controlling
programs with Expect</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5302" file="ch15_14.htm" sect="15.13.1. Problem">
<primary>Expect module</primary>
<secondary>controlling
programs with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5303" file="ch15_14.htm" sect="15.13.1. Problem">
<primary>programs</primary>
<secondary>controlling with
Expect</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5304" file="ch15_14.htm" sect="15.13.2. Solution">
<primary>Expect module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5305" file="ch15_14.htm" sect="15.13.3. Discussion">
<primary>IO::Pty module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5306" file="ch15_14.htm" sect="15.13.3. Discussion">
<primary>IO::Stty module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5307" file="ch15_14.htm" sect="15.13.3. Discussion">
<primary>input</primary>
<secondary>Expect-controlled
programs and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5308" file="ch15_15.htm" sect="15.14.1. Problem">
<primary>user
interfaces</primary>
<secondary>menus, creating with
Tk</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5309" file="ch15_15.htm" sect="15.14.1. Problem">
<primary>Tk
toolkit</primary>
<secondary>menus</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5310" file="ch15_15.htm" sect="15.14.1. Problem">
<primary>creating</primary>
<secondary>menus
with Tk toolkit</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5311" file="ch15_15.htm" sect="15.14.2. Solution">
<primary>Menubutton widget, Tk</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5312" file="ch15_15.htm" sect="15.14.2. Solution">
<primary>Frame widget, Tk</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5313" file="ch15_15.htm" sect="15.14.3. Discussion">
<primary>labels, menu</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5314" file="ch15_15.htm" sect="15.14.3. Discussion">
<primary>command</primary>
<secondary>entry, menu
items</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5315" file="ch15_15.htm" sect="15.14.3. Discussion">
<primary>checkbutton menu entries</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5316" file="ch15_15.htm" sect="15.14.3. Discussion">
<primary>radiobuttons</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5317" file="ch15_15.htm" sect="15.14.3. Discussion">
<primary>cascading menu
entries</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5318" file="ch15_15.htm" sect="15.14.3. Discussion">
<primary>tear-off menus</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5322" file="ch15_16.htm" sect="15.15.1. Problem">
<primary>user interfaces</primary>
<secondary>dialog boxes,
creating with Tk</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5323" file="ch15_16.htm" sect="15.15.1. Problem">
<primary>Tk
toolkit</primary>
<secondary>dialog boxes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5324" file="ch15_16.htm" sect="15.15.1. Problem">
<primary>dialog boxes with Tk
toolkit</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5325" file="ch15_16.htm" sect="15.15.1. Problem">
<primary>windows</primary>
<secondary>dialog boxes,
creating with Tk</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5326" file="ch15_16.htm" sect="15.15.2. Solution">
<primary>DialogBox widget, Tk</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5327" file="ch15_16.htm" sect="15.15.3. Discussion">
<primary>warn( ), dialog box
for</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5328" file="ch15_17.htm" sect="15.16.1. Problem">
<primary>user interfaces</primary>
<secondary>Tk resize
events</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5329" file="ch15_17.htm" sect="15.16.1. Problem">
<primary>Tk
toolkit</primary>
<secondary>resize events</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5330" file="ch15_17.htm" sect="15.16.1. Problem">
<primary>size</primary>
<secondary>Tk window resize
events</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5331" file="ch15_17.htm" sect="15.16.1. Problem">
<primary>events, Tk
resize</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5332" file="ch15_17.htm" sect="15.16.2. Solution">
<primary>Configure event,
Tk</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5333" file="ch15_17.htm" sect="15.16.2. Solution">
<primary>pack( )</primary>
<secondary>with Tk resize
events</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5334" file="ch15_18.htm" sect="15.17.1. Problem">
<primary>windows</primary>
<secondary>DOS shell,
removing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5335" file="ch15_18.htm" sect="15.17.1. Problem">
<primary>deleting</primary>
<secondary>DOS shell
window</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5336" file="ch15_18.htm" sect="15.17.1. Problem">
<primary>user
interfaces</primary>
<secondary>DOS shell window,
removing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5337" file="ch15_18.htm" sect="15.17.1. Problem">
<primary>DOS shell
window, removing</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5338" file="ch15_18.htm" sect="15.17.1. Problem">
<primary>Tk
toolkit</primary>
<secondary>DOS shell window,
removing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5339" file="ch15_18.htm" sect="15.17.3. Description">
<primary>Win32::Console module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5340" file="ch15_19.htm" sect="15.18.1. Problem">
<primary>user interfaces</primary>
<secondary>graphing
data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5341" file="ch15_19.htm" sect="15.18.1. Problem">
<primary>creating</primary>
<secondary>charts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5342" file="ch15_19.htm" sect="15.18.2. Solution">
<primary>GD::Graph modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5343" file="ch15_20.htm" sect="15.19.1. Problem">
<primary>user interfaces</primary>
<secondary>thumbnailing
images</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5344" file="ch15_20.htm" sect="15.19.1. Problem">
<primary>images</primary>
<secondary>thumbnailing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5345" file="ch15_20.htm" sect="15.19.2. Solution">
<primary>Image::Magick module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5346" file="ch15_20.htm" sect="15.19.3. Discussion">
<primary>Resize( ), thumbnailing
images</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5347" file="ch15_21.htm" sect="15.20.1. Problem">
<primary>user interfaces</primary>
<secondary>adding text
to images</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5348" file="ch15_21.htm" sect="15.20.1. Problem">
<primary>images</primary>
<secondary>adding text
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5349" file="ch15_21.htm" sect="15.20.1. Problem">
<primary>text</primary>
<secondary>adding to
images</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5350" file="ch15_21.htm" sect="15.20.2. Solution">
<primary>GD
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5351" file="ch15_22.htm" sect="15.21.1. Description">
<primary>Term::Cap
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5352" file="ch15_22.htm" sect="15.21.1. Description">
<primary>user
interfaces</primary>
<secondary>tcapdemo
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5353" file="ch15_22.htm" sect="15.21.1. Description">
<primary>tcapdemo
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5357" file="ch15_23.htm" sect="15.22. Program: tkshufflepod">
<primary>Tk
toolkit</primary>
<secondary>tkshufflepod
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5358" file="ch15_23.htm" sect="15.22. Program: tkshufflepod">
<primary>sorting</primary>
<secondary>pod
=head1 sections</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5359" file="ch15_23.htm" sect="15.22. Program: tkshufflepod">
<primary>tkshufflepod
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5360" file="ch15_23.htm" sect="15.22. Program: tkshufflepod">
<primary>modules</primary>
<secondary>documenting
with pod</secondary>
<tertiary>sorting =head1
sections</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5361" file="ch15_23.htm" sect="15.22. Program: tkshufflepod">
<primary>pod</primary>
<secondary>documentation</secondary>
<tertiary>sorting
=head1 sections</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5367" file="ch15_24.htm" sect="15.23. Program: graphbox">
<primary>graphbox program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5368" file="ch15_24.htm" sect="15.23. Program: graphbox">
<primary>GD::Graph
modules</primary>
<secondary>GD::Graph::Bars
module</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5369" file="ch15_24.htm" sect="15.23. Program: graphbox">
<primary>user
interfaces</primary>
<secondary>graphing data</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-15-ITERM-5370" file="ch15_24.htm" sect="15.23. Program: graphbox">
<primary>creating</primary>
<secondary>charts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5372" file="ch16_01.htm" sect="16.. Introduction">
<primary>processes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5373" file="ch16_01.htm" sect="16.. Process Creation">
<primary>processes</primary>
<secondary>creating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5374" file="ch16_01.htm" sect="16.. Process Creation">
<primary>creating</primary>
<secondary>processes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5375" file="ch16_01.htm" sect="16.. Process Creation">
<primary>pipe( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5376" file="ch16_01.htm" sect="16.. Process Creation">
<primary>zombies</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5377" file="ch16_01.htm" sect="16.. Process Creation">
<primary>processes</primary>
<secondary>zombies</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5378" file="ch16_01.htm" sect="16.. Signals">
<primary>signals</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5379" file="ch16_01.htm" sect="16.. Signals">
<primary>processes</primary>
<secondary>signals</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5380" file="ch16_01.htm" sect="16.. Signals">
<primary>SIGINT signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5381" file="ch16_01.htm" sect="16.. Signals">
<primary>SIGQUIT signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5382" file="ch16_01.htm" sect="16.. Signals">
<primary>SIGTERM signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5383" file="ch16_01.htm" sect="16.. Signals">
<primary>SIGUSR1/SIGUSR2
signals</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5384" file="ch16_01.htm" sect="16.. Signals">
<primary>SIGPIPE signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5385" file="ch16_01.htm" sect="16.. Signals">
<primary>SIGALRM signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5386" file="ch16_01.htm" sect="16.. Signals">
<primary>SIGHUP signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5387" file="ch16_01.htm" sect="16.. Signals">
<primary>SIGCHLD signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5388" file="ch16_02.htm" sect="16.1.1. Problem">
<primary>output</primary>
<secondary>gathering from
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5389" file="ch16_02.htm" sect="16.1.1. Problem">
<primary>programs</primary>
<secondary>gathering output
from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5390" file="ch16_02.htm" sect="16.1.1. Problem">
<primary>processes</primary>
<secondary>gathering
output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5391" file="ch16_02.htm" sect="16.1.2. Solution">
<primary>backtick
(`)</primary>
<secondary>gathering program
output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5392" file="ch16_02.htm" sect="16.1.2. Solution">
<primary>`
(backtick)</primary>
<secondary>gathering program
output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5393" file="ch16_03.htm" sect="16.2.1. Problem">
<primary>programs</primary>
<secondary>running
multiple</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5394" file="ch16_03.htm" sect="16.2.1. Problem">
<primary>processes</primary>
<secondary>programs</secondary>
<tertiary>running
multiple</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5395" file="ch16_03.htm" sect="16.2.2. Solution">
<primary>system( )</primary>
<secondary>running multiple
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5396" file="ch16_03.htm" sect="16.2.3. Discussion">
<primary>backtick
(`)</primary>
<secondary>running another
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5397" file="ch16_03.htm" sect="16.2.3. Discussion">
<primary>`
(backtick)</primary>
<secondary>running another
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5398" file="ch16_03.htm" sect="16.2.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$?
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5399" file="ch16_03.htm" sect="16.2.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$? variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5400" file="ch16_03.htm" sect="16.2.3. Discussion">
<primary>$ (dollar
sign)</primary>
<secondary>$? variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5401" file="ch16_03.htm" sect="16.2.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$?
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5402" file="ch16_04.htm" sect="16.3.1. Problem">
<primary>programs</primary>
<secondary>replacing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5403" file="ch16_04.htm" sect="16.3.1. Problem">
<primary>processes</primary>
<secondary>programs</secondary>
<tertiary>replacing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5404" file="ch16_04.htm" sect="16.3.2. Solution">
<primary>exec( )</primary>
<secondary>replacing
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5405" file="ch16_04.htm" sect="16.3.3. Discussion">
<primary>$
(dollar sign)</primary>
<secondary>$$ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5406" file="ch16_04.htm" sect="16.3.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$$
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5407" file="ch16_05.htm" sect="16.4.1. Problem">
<primary>output</primary>
<secondary>writing to
other programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5408" file="ch16_05.htm" sect="16.4.1. Problem">
<primary>input</primary>
<secondary>reading</secondary>
<tertiary sortas="other programs">from other programs</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5409" file="ch16_05.htm" sect="16.4.1. Problem">
<primary>processes</primary>
<secondary>programs</secondary>
<tertiary>reading
from and writing to</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5410" file="ch16_05.htm" sect="16.4.1. Problem">
<primary>programs</primary>
<secondary>reading
from and writing to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5411" file="ch16_05.htm" sect="16.4.1. Problem">
<primary>I/O
operations</primary>
<secondary>reading and writing to other
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5412" file="ch16_05.htm" sect="16.4.2. Solution">
<primary>open( )</primary>
<secondary>reading from other
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5413" file="ch16_05.htm" sect="16.4.2. Solution">
<primary>write( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5414" file="ch16_05.htm" sect="16.4.3. Discussion">
<primary>SIGPIPE
signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5420" file="ch16_06.htm" sect="16.5.1. Problem">
<primary>filtering</primary>
<secondary>output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5421" file="ch16_06.htm" sect="16.5.1. Problem">
<primary>output</primary>
<secondary>filtering</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5422" file="ch16_06.htm" sect="16.5.1. Problem">
<primary>processes</primary>
<secondary>filtering
output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5423" file="ch16_06.htm" sect="16.5.1. Problem">
<primary>programs</primary>
<secondary>filtering
output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5424" file="ch16_06.htm" sect="16.5.2. Solution">
<primary>open( )</primary>
<secondary>filtering
output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5425" file="ch16_06.htm" sect="16.5.3. Discussion">
<primary>STDOUT filehandle</primary>
<secondary>filtering
output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5426" file="ch16_07.htm" sect="16.6.1. Problem">
<primary>input</primary>
<secondary>preprocessing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5427" file="ch16_07.htm" sect="16.6.1. Problem">
<primary>processes</primary>
<secondary>preprocessing
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5428" file="ch16_07.htm" sect="16.6.1. Problem">
<primary>programs</primary>
<secondary>preprocessing
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5429" file="ch16_07.htm" sect="16.6.1. Problem">
<primary>I/O
operations</primary>
<secondary>preprocessing
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5430" file="ch16_07.htm" sect="16.6.2. Solution">
<primary>STDIN
filehandle</primary>
<secondary>preprocessing
input</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5431" file="ch16_07.htm" sect="16.6.3. Discussion">
<primary>magic open</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5432" file="ch16_07.htm" sect="16.6.3. Discussion">
<primary>magic ARGV</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5433" file="ch16_07.htm" sect="16.6.3. Discussion">
<primary>ARGV, magic</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5434" file="ch16_08.htm" sect="16.7.1. Problem">
<primary>errors</primary>
<secondary>reading
STDERR from programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5435" file="ch16_08.htm" sect="16.7.1. Problem">
<primary>STDERR
filehandle</primary>
<secondary>reading from
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5436" file="ch16_08.htm" sect="16.7.1. Problem">
<primary>programs</primary>
<secondary>reading
STDERR from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5437" file="ch16_08.htm" sect="16.7.1. Problem">
<primary>processes</primary>
<secondary>programs</secondary>
<tertiary>reading
STDERR from</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5438" file="ch16_08.htm" sect="16.7.1. Problem">
<primary>input</primary>
<secondary>reading</secondary>
<tertiary>STDERR
from programs</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5444" file="ch16_09.htm" sect="16.8.1. Problem">
<primary>input</primary>
<secondary>controlling for other
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5445" file="ch16_09.htm" sect="16.8.1. Problem">
<primary>programs</primary>
<secondary>controlling
input/output of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5446" file="ch16_09.htm" sect="16.8.1. Problem">
<primary>processes</primary>
<secondary>controlling
input/output</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5447" file="ch16_09.htm" sect="16.8.1. Problem">
<primary>buffered
input/output</primary>
<secondary>controlling for other
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5448" file="ch16_09.htm" sect="16.8.1. Problem">
<primary>I/O
operations</primary>
<secondary>controlling for other
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5449" file="ch16_09.htm" sect="16.8.1. Problem">
<primary>output</primary>
<secondary>controlling
for other programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5450" file="ch16_09.htm" sect="16.8.2. Solution">
<primary>IPC::Open2
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5451" file="ch16_10.htm" sect="16.9.1. Problem">
<primary>errors</primary>
<secondary>controlling
for other programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5452" file="ch16_10.htm" sect="16.9.1. Problem">
<primary>STDERR
filehandle</primary>
<secondary>controlling for other
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5453" file="ch16_10.htm" sect="16.9.1. Problem">
<primary>input</primary>
<secondary>controlling
for other programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5454" file="ch16_10.htm" sect="16.9.2. Solution">
<primary>IPC::Open3
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5455" file="ch16_10.htm" sect="16.9.2. Solution">
<primary>IO::Select
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5456" file="ch16_10.htm" sect="16.9.3. Discussion">
<primary>IO::Select module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5461" file="ch16_11.htm" sect="16.10.1. Problem">
<primary>processes</primary>
<secondary>communicating
between</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5462" file="ch16_11.htm" sect="16.10.2. Solution">
<primary>pipe( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5463" file="ch16_11.htm" sect="16.10.2. Solution">
<primary>fork( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5464" file="ch16_11.htm" sect="16.10.3. Discussion">
<primary>autoflush( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5465" file="ch16_11.htm" sect="16.10.3. Discussion">
<primary>open( )</primary>
<seealso>processes</seealso>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5466" file="ch16_11.htm" sect="16.10.3. Discussion">
<primary>fork( )</primary>
<seealso>processes</seealso>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5468" file="ch16_12.htm" sect="16.11.1. Problem">
<primary>processes</primary>
<secondary>imitating
files with named pipes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5469" file="ch16_12.htm" sect="16.11.1. Problem">
<primary>named
pipes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5470" file="ch16_12.htm" sect="16.11.1. Problem">
<primary>FIFOs (named
pipes)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5474" file="ch16_13.htm" sect="16.12.1. Problem">
<primary>variables</primary>
<secondary>sharing
among different processes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5475" file="ch16_13.htm" sect="16.12.1. Problem">
<primary>sharing
variables among processes</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5476" file="ch16_13.htm" sect="16.12.1. Problem">
<primary>processes</primary>
<secondary>sharing
variables among</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5477" file="ch16_13.htm" sect="16.12.2. Solution">
<primary>SysV IPC</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5478" file="ch16_13.htm" sect="16.12.3. Discussion">
<primary>IPC::Shareable module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5479" file="ch16_13.htm" sect="16.12.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$$
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5480" file="ch16_13.htm" sect="16.12.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$$ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5484" file="ch16_14.htm" sect="16.13.1. Problem">
<primary>signals</primary>
<secondary>listing
available</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5485" file="ch16_14.htm" sect="16.13.1. Problem">
<primary>kill
command</primary>
<secondary>listing available
signals</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5486" file="ch16_14.htm" sect="16.13.1. Problem">
<primary>processes</primary>
<secondary>signals</secondary>
<tertiary>listing
available</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5487" file="ch16_14.htm" sect="16.13.2. Solution">
<primary>kill command</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5488" file="ch16_14.htm" sect="16.13.2. Solution">
<primary>Config module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5489" file="ch16_15.htm" sect="16.14.1. Problem">
<primary>signals</primary>
<secondary>sending</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5490" file="ch16_15.htm" sect="16.14.1. Problem">
<primary>processes</primary>
<secondary>signals</secondary>
<tertiary>sending</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5491" file="ch16_15.htm" sect="16.14.1. Problem">
<primary>kill command</primary>
<secondary>sending
signals</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5492" file="ch16_15.htm" sect="16.14.3. Discussion">
<primary>processes</primary>
<secondary>groups</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5493" file="ch16_15.htm" sect="16.14.3. Discussion">
<primary>signals</primary>
<secondary>process
groups</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5494" file="ch16_16.htm" sect="16.15.1. Problem">
<primary>signal handlers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5495" file="ch16_16.htm" sect="16.15.1. Problem">
<primary>processes</primary>
<secondary>signal
handlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5496" file="ch16_16.htm" sect="16.15.1. Problem">
<primary>installing</primary>
<secondary>signal
handlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5497" file="ch16_16.htm" sect="16.15.1. Problem">
<primary>handlers for signals</primary>
<see>signal
handlers</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5498" file="ch16_16.htm" sect="16.15.1. Problem">
<primary>signals</primary>
<secondary>handlers
for</secondary>
<see>signal handlers</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5499" file="ch16_16.htm" sect="16.15.2. Solution">
<primary sortas="SIG hash">%SIG hash</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5500" file="ch16_16.htm" sect="16.15.2. Solution">
<primary>% (percent sign)</primary>
<secondary>%SIG
hash</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5501" file="ch16_16.htm" sect="16.15.2. Solution">
<primary>percent sign
(%)</primary>
<secondary>%SIG hash</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5502" file="ch16_16.htm" sect="16.15.3. Discussion">
<primary sortas="DIE signal">__DIE__
signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5503" file="ch16_16.htm" sect="16.15.3. Discussion">
<primary sortas="WARN signal">__WARN__ signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5504" file="ch16_17.htm" sect="16.16.1. Problem">
<primary>overriding</primary>
<secondary>signal
handlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5505" file="ch16_17.htm" sect="16.16.1. Problem">
<primary>signal
handlers</primary>
<secondary>overriding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5506" file="ch16_17.htm" sect="16.16.1. Problem">
<primary>processes</primary>
<secondary>signal
handlers</secondary>
<tertiary>overriding</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5507" file="ch16_17.htm" sect="16.16.2. Solution">
<primary>local( )</primary>
<secondary>overriding signal
handlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5508" file="ch16_18.htm" sect="16.17.1. Problem">
<primary>signal
handlers</primary>
<secondary>writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5509" file="ch16_18.htm" sect="16.17.1. Problem">
<primary>processes</primary>
<secondary>signal
handlers</secondary>
<tertiary>writing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5510" file="ch16_18.htm" sect="16.17.1. Problem">
<primary>writing</primary>
<secondary>signal
handlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5514" file="ch16_19.htm" sect="16.18.1. Problem">
<primary>Ctrl-C, catching</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5515" file="ch16_19.htm" sect="16.18.1. Problem">
<primary>processes</primary>
<secondary>catching
Ctrl-C</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5516" file="ch16_19.htm" sect="16.18.2. Solution">
<primary>SIGINT
signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5517" file="ch16_20.htm" sect="16.19.1. Problem">
<primary>zombies</primary>
<secondary>avoiding</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5518" file="ch16_20.htm" sect="16.19.1. Problem">
<primary>processes</primary>
<secondary>zombies</secondary>
<tertiary>avoiding</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5519" file="ch16_20.htm" sect="16.19.1. Problem">
<primary>fork( )</primary>
<secondary>avoiding
zombie processes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5520" file="ch16_20.htm" sect="16.19.2. Solution">
<primary>SIGCHLD
signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5521" file="ch16_20.htm" sect="16.19.3. Discussion">
<primary>waitpid( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5522" file="ch16_20.htm" sect="16.19.3. Discussion">
<primary>wait( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5523" file="ch16_20.htm" sect="16.19.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$?
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5524" file="ch16_20.htm" sect="16.19.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$? variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5525" file="ch16_20.htm" sect="16.19.3. Discussion">
<primary>$ (dollar sign)</primary>
<secondary>$?
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5526" file="ch16_20.htm" sect="16.19.3. Discussion">
<primary>dollar sign
($)</primary>
<secondary>$? variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5530" file="ch16_21.htm" sect="16.20.1. Problem">
<primary>blocking signals</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5531" file="ch16_21.htm" sect="16.20.1. Problem">
<primary>signals</primary>
<secondary>blocking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5532" file="ch16_21.htm" sect="16.20.1. Problem">
<primary>processes</primary>
<secondary>signals</secondary>
<tertiary>blocking</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5533" file="ch16_21.htm" sect="16.20.1. Problem">
<primary>locking</primary>
<secondary>blocking
signals</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5534" file="ch16_21.htm" sect="16.20.2. Solution">
<primary>POSIX module</primary>
<secondary>blocking
signals</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5535" file="ch16_21.htm" sect="16.20.2. Solution">
<primary>sigprocmask
syscall</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5536" file="ch16_21.htm" sect="16.20.3. Discussion">
<primary>$
(dollar sign)</primary>
<secondary>$$ variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5537" file="ch16_21.htm" sect="16.20.3. Discussion">
<primary>dollar sign ($)</primary>
<secondary>$$
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5538" file="ch16_22.htm" sect="16.21.1. Problem">
<primary>processes</primary>
<secondary>timing out
operations</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5539" file="ch16_22.htm" sect="16.21.1. Problem">
<primary>timing out
operations</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5540" file="ch16_22.htm" sect="16.21.1. Problem">
<primary>date and time
values</primary>
<secondary>timing out
operations</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5541" file="ch16_22.htm" sect="16.21.2. Solution">
<primary>SIGALRM
signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5542" file="ch16_22.htm" sect="16.21.2. Solution">
<primary>alarm( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5543" file="ch16_23.htm" sect="16.22.1. Problem">
<primary>signals</primary>
<secondary>turning into fatal
errors</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5544" file="ch16_23.htm" sect="16.22.1. Problem">
<primary>errors</primary>
<secondary>turning signals
into</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5545" file="ch16_23.htm" sect="16.22.1. Problem">
<primary>processes</primary>
<secondary>signals</secondary>
<tertiary>turning
into errors</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5546" file="ch16_23.htm" sect="16.22.2. Solution">
<primary>sigtrap
pragma</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5547" file="ch16_24.htm" sect="16.23. Program: sigrand">
<primary>sigrand
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5548" file="ch16_24.htm" sect="16.23. Program: sigrand">
<primary>named
pipes</primary>
<secondary>sigrand program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5549" file="ch16_24.htm" sect="16.23. Program: sigrand">
<primary>random</primary>
<secondary>email
signatures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5550" file="ch16_24.htm" sect="16.23. Program: sigrand">
<primary>email</primary>
<secondary>random
signatures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5551" file="ch16_24.htm" sect="16.23. Program: sigrand">
<primary>signatures,
randomized</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-16-ITERM-5552" file="ch16_24.htm" sect="16.23. Program: sigrand">
<primary>daemon servers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5559" file="ch17_01.htm" sect="17.. Introduction">
<primary>sockets</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5560" file="ch17_01.htm" sect="17.. Introduction">
<primary>stream sockets</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5561" file="ch17_01.htm" sect="17.. Introduction">
<primary>domains for sockets</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5562" file="ch17_01.htm" sect="17.. Introduction">
<primary>Internet</primary>
<secondary>domain
sockets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5563" file="ch17_01.htm" sect="17.. Introduction">
<primary>Unix</primary>
<secondary>domain
sockets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5564" file="ch17_01.htm" sect="17.. Introduction">
<primary>sockets</primary>
<secondary>Unix
domain</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5565" file="ch17_01.htm" sect="17.. Introduction">
<primary>protocols</primary>
<secondary>socket</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5566" file="ch17_01.htm" sect="17.. Introduction">
<primary>sockets</primary>
<secondary>protocol associated
with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5567" file="ch17_01.htm" sect="17.. Introduction">
<primary>SOCK_ constants</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5568" file="ch17_01.htm" sect="17.. Introduction">
<primary>PF_ constants</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5569" file="ch17_01.htm" sect="17.. Introduction">
<primary>getprotobyname( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5570" file="ch17_01.htm" sect="17.. Introduction">
<primary>socket( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5571" file="ch17_01.htm" sect="17.. Introduction">
<primary>sockaddr_in( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5572" file="ch17_01.htm" sect="17.. Introduction">
<primary>sockaddr_un( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5573" file="ch17_01.htm" sect="17.. Introduction">
<primary>inet_ntoa( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5574" file="ch17_01.htm" sect="17.. Introduction">
<primary>IP addresses</primary>
<secondary>packed,
converting to ASCII strings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5575" file="ch17_02.htm" sect="17.1.1. Problem">
<primary>sockets</primary>
<secondary>TCP
protocol</secondary>
<tertiary>writing clients</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5576" file="ch17_02.htm" sect="17.1.1. Problem">
<primary>TCP
protocol</primary>
<secondary>writing clients
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5577" file="ch17_02.htm" sect="17.1.1. Problem">
<primary>clients</primary>
<secondary>TCP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5578" file="ch17_02.htm" sect="17.1.2. Solution">
<primary>IO::Socket module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5579" file="ch17_02.htm" sect="17.1.2. Solution">
<primary>IO::Socket::INET class</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5580" file="ch17_02.htm" sect="17.1.3. Discussion">
<primary>INADDR_ANY</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5584" file="ch17_03.htm" sect="17.2.1. Problem">
<primary>sockets</primary>
<secondary>TCP
protocol</secondary>
<tertiary>writing servers</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5585" file="ch17_03.htm" sect="17.2.1. Problem">
<primary>TCP
protocol</primary>
<secondary>writing servers
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5586" file="ch17_03.htm" sect="17.2.1. Problem">
<primary>servers</primary>
<secondary>TCP,
writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5587" file="ch17_03.htm" sect="17.2.3. Discussion">
<primary>accept( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5588" file="ch17_03.htm" sect="17.2.3. Discussion">
<primary>sockets</primary>
<secondary>non-blocking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5592" file="ch17_04.htm" sect="17.3.1. Problem">
<primary>TCP
protocol</primary>
<secondary>communicating
over</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5593" file="ch17_04.htm" sect="17.3.1. Problem">
<primary>sockets</primary>
<secondary>TCP
protocol</secondary>
<tertiary>communicating
over</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5594" file="ch17_04.htm" sect="17.3.2. Solution">
<primary>send( ), communicating over
TCP</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5595" file="ch17_04.htm" sect="17.3.2. Solution">
<primary>recv( ), TCP,
communicating over</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5596" file="ch17_04.htm" sect="17.3.2. Solution">
<primary>IO::Socket
module</primary>
<secondary>TCP, communicating
over</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5597" file="ch17_04.htm" sect="17.3.2. Solution">
<primary>select( )</primary>
<secondary>determining
whether data can be read or written</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5598" file="ch17_04.htm" sect="17.3.2. Solution">
<primary>reading and
writing</primary>
<secondary>determining whether data can be read or
written</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5599" file="ch17_04.htm" sect="17.3.3. Discussion">
<primary>buffered input/output</primary>
<secondary>socket
programming and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5600" file="ch17_04.htm" sect="17.3.3. Discussion">
<primary>I/O
operations</primary>
<secondary>buffering</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5601" file="ch17_04.htm" sect="17.3.3. Discussion">
<primary>Nagle Algorithm</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5602" file="ch17_04.htm" sect="17.3.3. Discussion">
<primary>TCP_NODELAY socket
option</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5603" file="ch17_04.htm" sect="17.3.3. Discussion">
<primary>select( )</primary>
<secondary>reading from
multiple filehandles</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5606" file="ch17_05.htm" sect="17.4.1. Problem">
<primary>clients</primary>
<secondary>UDP,
setting up</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5607" file="ch17_05.htm" sect="17.4.1. Problem">
<primary>sockets</primary>
<secondary>UDP
protocol</secondary>
<tertiary>writing clients
for</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5608" file="ch17_05.htm" sect="17.4.1. Problem">
<primary>UDP (User Datagram
Protocol)</primary>
<secondary>writing clients
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5609" file="ch17_05.htm" sect="17.4.2. Solution">
<primary>IO::Socket module</primary>
<secondary>UDP
clients/servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5610" file="ch17_05.htm" sect="17.4.3. Discussion">
<primary>datagram sockets</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5611" file="ch17_05.htm" sect="17.4.3. Discussion">
<primary>sockaddr_in( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5615" file="ch17_06.htm" sect="17.5.1. Problem">
<primary>servers</primary>
<secondary>UDP,
setting up</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5616" file="ch17_06.htm" sect="17.5.1. Problem">
<primary>sockets</primary>
<secondary>UDP
protocol</secondary>
<tertiary>writing servers
for</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5617" file="ch17_06.htm" sect="17.5.1. Problem">
<primary>UDP (User Datagram
Protocol)</primary>
<secondary>writing servers
for</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5618" file="ch17_06.htm" sect="17.5.3. Discussion">
<primary>User Datagram
Protocol</primary>
<see>UDP</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5622" file="ch17_07.htm" sect="17.6.1. Problem">
<primary>Unix</primary>
<secondary>domain
sockets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5623" file="ch17_07.htm" sect="17.6.1. Problem">
<primary>sockets</primary>
<secondary>Unix
domain</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5624" file="ch17_07.htm" sect="17.6.2. Solution">
<primary>sockaddr_un( )</primary>
<secondary>Unix domain
sockets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5625" file="ch17_07.htm" sect="17.6.2. Solution">
<primary>IO::Socket::UNIX
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5626" file="ch17_08.htm" sect="17.7.1. Problem">
<primary>sockets</primary>
<secondary>identifying machine
at end</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5627" file="ch17_08.htm" sect="17.7.1. Problem">
<primary>IP
addresses</primary>
<secondary>identifying socket
ends</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5628" file="ch17_08.htm" sect="17.7.2. Solution">
<primary>hostnames</primary>
<secondary>identifying at
socket end</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5629" file="ch17_08.htm" sect="17.7.3. Discussion">
<primary>gethostbyaddr( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5630" file="ch17_08.htm" sect="17.7.3. Discussion">
<primary>gethostbyname( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5631" file="ch17_09.htm" sect="17.8.1. Problem">
<primary>sockets</primary>
<secondary>finding own name and
address</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5632" file="ch17_09.htm" sect="17.8.1. Problem">
<primary>hostnames</primary>
<secondary>obtaining your
own</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5633" file="ch17_09.htm" sect="17.8.1. Problem">
<primary>IP
addresses</primary>
<secondary>determining your
own</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5634" file="ch17_09.htm" sect="17.8.2. Solution">
<primary>Sys::Hostname
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5635" file="ch17_09.htm" sect="17.8.2. Solution">
<primary>uname( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5636" file="ch17_09.htm" sect="17.8.2. Solution">
<primary>POSIX::uname( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5637" file="ch17_10.htm" sect="17.9.1. Problem">
<primary>fork( )</primary>
<secondary>closing sockets
after</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5638" file="ch17_10.htm" sect="17.9.1. Problem">
<primary>sockets</primary>
<secondary>closing after
forking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5639" file="ch17_10.htm" sect="17.9.2. Solution">
<primary>shutdown( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5640" file="ch17_10.htm" sect="17.9.2. Solution">
<primary>IO::Socket
module</primary>
<secondary>closing socket after
forking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5641" file="ch17_11.htm" sect="17.10.1. Problem">
<primary>clients</primary>
<secondary>bidirectional</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5642" file="ch17_11.htm" sect="17.10.1. Problem">
<primary>bidirectional clients</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5643" file="ch17_11.htm" sect="17.10.1. Problem">
<primary>sockets</primary>
<secondary>bidirectional
clients</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5644" file="ch17_12.htm" sect="17.11.1. Problem">
<primary>servers</primary>
<secondary>forking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5645" file="ch17_12.htm" sect="17.11.1. Problem">
<primary>fork( )</primary>
<secondary>forking
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5646" file="ch17_12.htm" sect="17.11.1. Problem">
<primary>sockets</primary>
<secondary>forking
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5647" file="ch17_12.htm" sect="17.11.3. Discussion">
<primary>stream sockets</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5648" file="ch17_13.htm" sect="17.12.1. Problem">
<primary>servers</primary>
<secondary>preforking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5649" file="ch17_13.htm" sect="17.12.1. Problem">
<primary>fork( )</primary>
<secondary>preforking
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5650" file="ch17_13.htm" sect="17.12.1. Problem">
<primary>sockets</primary>
<secondary>preforking
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5654" file="ch17_14.htm" sect="17.13.1. Problem">
<primary>servers</primary>
<secondary>non-forking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5655" file="ch17_14.htm" sect="17.13.1. Problem">
<primary>fork( )</primary>
<secondary>non-forking
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5656" file="ch17_14.htm" sect="17.13.1. Problem">
<primary>sockets</primary>
<secondary>non-forking
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5660" file="ch17_15.htm" sect="17.14.1. Problem">
<primary>servers</primary>
<secondary>multitasking,
writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5661" file="ch17_15.htm" sect="17.14.1. Problem">
<primary>processes</primary>
<secondary>multitasking
servers, writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5662" file="ch17_15.htm" sect="17.14.2. Solution">
<primary>threads.pm</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5663" file="ch17_16.htm" sect="17.15.1. Problem">
<primary>servers</primary>
<secondary>multitasking,
writing</secondary>
<tertiary>with POE</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5664" file="ch17_16.htm" sect="17.15.1. Problem">
<primary>processes</primary>
<secondary>multitasking
servers, writing</secondary>
<tertiary>with POE</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5665" file="ch17_16.htm" sect="17.15.1. Problem">
<primary>POE
framework, writing multitasking server with</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5666" file="ch17_16.htm" sect="17.15.2. Solution">
<primary>POE::Component::Server::TCP
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5670" file="ch17_17.htm" sect="17.16.1. Problem">
<primary>servers</primary>
<secondary>multihomed</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5671" file="ch17_17.htm" sect="17.16.1. Problem">
<primary>multihomed servers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5672" file="ch17_17.htm" sect="17.16.1. Problem">
<primary>sockets</primary>
<secondary>multihomed
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5673" file="ch17_17.htm" sect="17.16.1. Problem">
<primary>IP
addresses</primary>
<secondary>multihomed
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5674" file="ch17_17.htm" sect="17.16.2. Solution">
<primary>INADDR_ANY</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5675" file="ch17_17.htm" sect="17.16.2. Solution">
<primary>getsockname( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5676" file="ch17_17.htm" sect="17.16.3. Discussion">
<primary>getpeername( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5677" file="ch17_18.htm" sect="17.17.1. Problem">
<primary>daemon servers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5678" file="ch17_18.htm" sect="17.17.1. Problem">
<primary>sockets</primary>
<secondary>daemon
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5679" file="ch17_18.htm" sect="17.17.1. Problem">
<primary>servers</primary>
<secondary>daemon
servers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5680" file="ch17_18.htm" sect="17.17.3. Discussion">
<primary>POSIX::setsid( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5681" file="ch17_19.htm" sect="17.18.1. Problem">
<primary>restarting servers on
demand</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5682" file="ch17_19.htm" sect="17.18.1. Problem">
<primary>sockets</primary>
<secondary>restarting servers on
demand</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5683" file="ch17_19.htm" sect="17.18.1. Problem">
<primary>servers</primary>
<secondary>restarting on
demand</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5684" file="ch17_19.htm" sect="17.18.2. Solution">
<primary>SIGHUP signal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5685" file="ch17_20.htm" sect="17.19.1. Problem">
<primary>input</primary>
<secondary>managing
multiple streams</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5686" file="ch17_20.htm" sect="17.19.1. Problem">
<primary>sockets</primary>
<secondary>managing
multiple input streams</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5687" file="ch17_20.htm" sect="17.19.2. Solution">
<primary>IO::Multiplex module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5688" file="ch17_20.htm" sect="17.19.2. Solution">
<primary>mux_input( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5689" file="ch17_20.htm" sect="17.19.2. Solution">
<primary>accept( )</primary>
<secondary>IO::Multiplex
module</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5692" file="ch17_21.htm" sect="17.20. Program: backsniff">
<primary>backsniff program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5693" file="ch17_21.htm" sect="17.20. Program: backsniff">
<primary>sockets</primary>
<secondary>logging port
connection attempts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5694" file="ch17_21.htm" sect="17.20. Program: backsniff">
<primary>port
connection attempts, logging</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5695" file="ch17_21.htm" sect="17.20. Program: backsniff">
<primary>logging</primary>
<secondary>port connection
attempts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5696" file="ch17_21.htm" sect="17.20. Program: backsniff">
<primary>Sys::Syslog
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5697" file="ch17_21.htm" sect="17.20. Program: backsniff">
<primary>getsockname( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5698" file="ch17_21.htm" sect="17.20. Program: backsniff">
<primary>getpeername( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5699" file="ch17_22.htm" sect="17.21. Program: fwdport">
<primary>fwdport program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5700" file="ch17_22.htm" sect="17.21. Program: fwdport">
<primary>firewalls, fetching web pages
through</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5701" file="ch17_22.htm" sect="17.21. Program: fwdport">
<primary>security</primary>
<secondary>connecting
through firewalls</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-17-ITERM-5702" file="ch17_22.htm" sect="17.21. Program: fwdport">
<primary>sockets</primary>
<secondary>connecting
through firewalls</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5708" file="ch18_01.htm" sect="18.. Introduction">
<primary>Internet
services</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5709" file="ch18_01.htm" sect="18.. Introduction">
<primary>protocols</primary>
<secondary>Internet</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5710" file="ch18_01.htm" sect="18.. Introduction">
<primary>Internet</primary>
<secondary>protocols</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5711" file="ch18_01.htm" sect="18.. Introduction">
<primary>Internet services</primary>
<secondary>remote
procedure calls</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5712" file="ch18_01.htm" sect="18.. Introduction">
<primary>XML-RPC</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5713" file="ch18_01.htm" sect="18.. Introduction">
<primary>XMLRPC::Lite
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5714" file="ch18_01.htm" sect="18.. Introduction">
<primary>SOAP (Simple Object Access
Protocol)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5715" file="ch18_01.htm" sect="18.. Introduction">
<primary>Simple Object
Access Protocol</primary>
<see>SOAP</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5716" file="ch18_01.htm" sect="18.. Introduction">
<primary>REST (Representational State
Transfer)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5717" file="ch18_01.htm" sect="18.. Introduction">
<primary>Representational
State Transfer (REST)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5718" file="ch18_02.htm" sect="18.1.1. Problem">
<primary>DNS
lookups</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5719" file="ch18_02.htm" sect="18.1.1. Problem">
<primary>Internet
services</primary>
<secondary>DNS lookups</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5720" file="ch18_02.htm" sect="18.1.1. Problem">
<primary>IP
addresses</primary>
<secondary>DNS lookups</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5721" file="ch18_02.htm" sect="18.1.2. Solution">
<primary>gethostbyname( )</primary>
<secondary>finding
IP addresses</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5722" file="ch18_02.htm" sect="18.1.2. Solution">
<primary>inet_ntoa( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5723" file="ch18_02.htm" sect="18.1.3. Discussion">
<primary>Net::DNS module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5727" file="ch18_03.htm" sect="18.2.1. Problem">
<primary>clients</primary>
<secondary>FTP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5728" file="ch18_03.htm" sect="18.2.1. Problem">
<primary>Internet
services</primary>
<secondary>FTP client</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5729" file="ch18_03.htm" sect="18.2.1. Problem">
<primary>FTP
clients</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5730" file="ch18_03.htm" sect="18.2.2. Solution">
<primary>Net::FTP
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5734" file="ch18_04.htm" sect="18.3.1. Problem">
<primary>email</primary>
<secondary>sending</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5735" file="ch18_04.htm" sect="18.3.1. Problem">
<primary>Internet
services</primary>
<secondary>mail</secondary>
<see>email</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5736" file="ch18_04.htm" sect="18.3.2. Solution">
<primary>Mail::Mailer
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5737" file="ch18_04.htm" sect="18.3.2. Solution">
<primary>sendmail program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5738" file="ch18_04.htm" sect="18.3.3. Discussion">
<primary>MUAs (Mail User Agents)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5739" file="ch18_04.htm" sect="18.3.3. Discussion">
<primary>SMTP (Simple Mail Transfer
Protocol)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5740" file="ch18_04.htm" sect="18.3.3. Discussion">
<primary>Mail User Agents
(MUAs)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5741" file="ch18_04.htm" sect="18.3.3. Discussion">
<primary>Simple Mail Transfer
Protocol (SMTP)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5743" file="ch18_05.htm" sect="18.4.1. Problem">
<primary>Usenet news
messages</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5744" file="ch18_05.htm" sect="18.4.1. Problem">
<primary>Internet
services</primary>
<secondary>Usenet news</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5745" file="ch18_05.htm" sect="18.4.1. Problem">
<primary>posting Usenet
messages</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5746" file="ch18_05.htm" sect="18.4.1. Problem">
<primary>reading</primary>
<secondary>Usenet
messages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5747" file="ch18_05.htm" sect="18.4.2. Solution">
<primary>Net::NNTP
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5748" file="ch18_05.htm" sect="18.4.3. Discussion">
<primary>group( ), Usenet news
messages</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5753" file="ch18_06.htm" sect="18.5.1. Problem">
<primary>servers</primary>
<secondary>POP3</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5754" file="ch18_06.htm" sect="18.5.1. Problem">
<primary>POP3
servers</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5755" file="ch18_06.htm" sect="18.5.1. Problem">
<primary>email</primary>
<secondary>reading
with POP3</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5756" file="ch18_06.htm" sect="18.5.2. Solution">
<primary>Net::POP3
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5757" file="ch18_06.htm" sect="18.5.3. Discussion">
<primary>POP (Post Office Protocol)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5758" file="ch18_06.htm" sect="18.5.3. Discussion">
<primary>MTA (Mail Transport Agent)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5759" file="ch18_06.htm" sect="18.5.3. Discussion">
<primary>Mail Transport Agent (MTA)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5760" file="ch18_06.htm" sect="18.5.3. Discussion">
<primary>Post Office
Protocol</primary>
<see>POP</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5761" file="ch18_06.htm" sect="18.5.3. Discussion">
<primary>login( ), POP3 server</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5762" file="ch18_06.htm" sect="18.5.3. Discussion">
<primary>POP (Post Office
Protocol)</primary>
<secondary>servers</secondary>
<tertiary>logging
in</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5763" file="ch18_06.htm" sect="18.5.3. Discussion">
<primary>servers</primary>
<secondary>POP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5767" file="ch18_07.htm" sect="18.6.1. Problem">
<primary>programs</primary>
<secondary>simulating telnet
from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5768" file="ch18_07.htm" sect="18.6.1. Problem">
<primary>telnet, simulating
from programs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5769" file="ch18_07.htm" sect="18.6.1. Problem">
<primary>Internet
services</primary>
<secondary>simulating telnet
connection</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5770" file="ch18_07.htm" sect="18.6.2. Solution">
<primary>Net::Telnet
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5771" file="ch18_08.htm" sect="18.7.1. Problem">
<primary>Internet services</primary>
<secondary>pinging
machines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5772" file="ch18_08.htm" sect="18.7.1. Problem">
<primary>pinging
machines</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5773" file="ch18_08.htm" sect="18.7.2. Solution">
<primary>Net::Ping
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5774" file="ch18_09.htm" sect="18.8.1. Problem">
<primary>LDAP (Lightweight Directory Access
Protocol)</primary>
<secondary>server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5775" file="ch18_09.htm" sect="18.8.1. Problem">
<primary>Internet services</primary>
<secondary>accessing
LDAP server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5776" file="ch18_09.htm" sect="18.8.1. Problem">
<primary>servers</primary>
<secondary>LDAP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5777" file="ch18_09.htm" sect="18.8.1. Problem">
<primary>LDAP (Lightweight Directory Access
Protocol)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5778" file="ch18_09.htm" sect="18.8.1. Problem">
<primary>Lightweight
Directory Access Protocol</primary>
<see>LDAP</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5779" file="ch18_09.htm" sect="18.8.2. Solution">
<primary>Net::LDAP module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5780" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>connect( ), LDAP server</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5781" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>bind( ), LDAP server</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5782" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>Distinguished Name
(DN)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5783" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>DN (Distinguished
Name)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5784" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>Authen::SASL module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5785" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>search( ), LDAP server</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5786" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>LDAP (Lightweight Directory Access
Protocol)</primary>
<secondary>server</secondary>
<tertiary>search( )
and</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5787" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>servers</primary>
<secondary>LDAP</secondary>
<tertiary>search( )</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5788" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>modify( ), LDAP server</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5789" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>LDAP (Lightweight Directory Access
Protocol)</primary>
<secondary>server</secondary>
<tertiary>modify( )
and</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5790" file="ch18_09.htm" sect="18.8.3. Discussion">
<primary>servers</primary>
<secondary>LDAP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5791" file="ch18_10.htm" sect="18.9.1. Problem">
<primary>email</primary>
<secondary>attachments</secondary>
<tertiary>sending</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5792" file="ch18_10.htm" sect="18.9.2. Solution">
<primary>MIME::Lite module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5793" file="ch18_10.htm" sect="18.9.2. Solution">
<primary>attach( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5794" file="ch18_10.htm" sect="18.9.3. Discussion">
<primary>MIME (Multimedia Internet Mail
Extensions)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5795" file="ch18_10.htm" sect="18.9.3. Discussion">
<primary>Multimedia
Internet Mail Extensions</primary>
<see>MIME</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5796" file="ch18_10.htm" sect="18.9.3. Discussion">
<primary>Net::SMTP
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5797" file="ch18_10.htm" sect="18.9.3. Discussion">
<primary>print( )</primary>
<secondary>email
attachments</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5799" file="ch18_11.htm" sect="18.10.1. Problem">
<primary>email</primary>
<secondary>attachments</secondary>
<tertiary>extracting</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5800" file="ch18_11.htm" sect="18.10.2. Solution">
<primary>MIME-Tools
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5801" file="ch18_11.htm" sect="18.10.3. Discussion">
<primary>MIME (Multimedia Internet Mail
Extensions)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5802" file="ch18_12.htm" sect="18.11.1. Problem">
<primary>XML-RPC</primary>
<secondary>server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5803" file="ch18_12.htm" sect="18.11.1. Problem">
<primary>Internet services</primary>
<secondary>XML-RPC
server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5804" file="ch18_12.htm" sect="18.11.1. Problem">
<primary>web
services</primary>
<secondary>XML-RPC
server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5805" file="ch18_12.htm" sect="18.11.3. Discussion">
<primary>SOAP::Lite module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5806" file="ch18_13.htm" sect="18.12.1. Problem">
<primary>XML-RPC</primary>
<secondary>client</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5807" file="ch18_13.htm" sect="18.12.1. Problem">
<primary>Internet services</primary>
<secondary>XML-RPC
client</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5808" file="ch18_13.htm" sect="18.12.2. Solution">
<primary>XMLRPC::Lite
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5809" file="ch18_13.htm" sect="18.12.3. Discussion">
<primary>methods</primary>
<secondary>remote</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5810" file="ch18_14.htm" sect="18.13.1. Problem">
<primary>Internet services</primary>
<secondary>SOAP
server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5811" file="ch18_14.htm" sect="18.13.1. Problem">
<primary>SOAP (Simple
Object Access
Protocol)</primary>
<secondary>server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5812" file="ch18_14.htm" sect="18.13.1. Problem">
<primary>web services</primary>
<secondary>SOAP
server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5813" file="ch18_14.htm" sect="18.13.1. Problem">
<primary>servers</primary>
<secondary>SOAP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5814" file="ch18_14.htm" sect="18.13.2. Solution">
<primary>SOAP::Lite
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5815" file="ch18_15.htm" sect="18.14.1. Problem">
<primary>Internet services</primary>
<secondary>SOAP
client</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5816" file="ch18_15.htm" sect="18.14.1. Problem">
<primary>SOAP (Simple
Object Access
Protocol)</primary>
<secondary>client</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5817" file="ch18_15.htm" sect="18.14.1. Problem">
<primary>web services</primary>
<secondary>SOAP
client</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5818" file="ch18_16.htm" sect="18.15. Program: rfrm">
<primary>rfrm program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5819" file="ch18_16.htm" sect="18.15. Program: rfrm">
<primary>POP (Post Office
Protocol)</primary>
<secondary>servers</secondary>
<tertiary>fetching
and summarizing messages</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5820" file="ch18_16.htm" sect="18.15. Program: rfrm">
<primary>servers</primary>
<secondary>POP</secondary>
<tertiary>fetching
and summarizing messages</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5821" file="ch18_16.htm" sect="18.15. Program: rfrm">
<primary>POP (Post Office
Protocol)</primary>
<secondary sortas=" servers">servers</secondary>
<seealso>POP3 servers</seealso>
<see>also POP3
servers</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5822" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>IP addresses</primary>
<secondary>expn and vrfy
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5823" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>expn
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5824" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>vrfy
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5825" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>Internet
services</primary>
<secondary>expn and vrfy
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5826" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>Net::SMTP
module</primary>
<secondary>expn and vrfy
programs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5827" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>EXPN
command</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5828" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>VRFY
command</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5829" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>SMTP (Simple Mail
Transfer Protocol)</primary>
<secondary>server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5830" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>servers</primary>
<secondary>SMTP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5831" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>Net::DNS
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5832" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>$ (dollar sign)</primary>
<secondary>$0
variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-18-ITERM-5833" file="ch18_17.htm" sect="18.16. Program: expn and vrfy">
<primary>dollar sign
($)</primary>
<secondary>$0 variable</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5835" file="ch19_01.htm" sect="19.. Introduction">
<primary>CGI
programming</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5836" file="ch19_01.htm" sect="19.. Architecture">
<primary>web architecture</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5837" file="ch19_01.htm" sect="19.. Architecture">
<primary>URLs (Uniform Resource
Locators)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5838" file="ch19_01.htm" sect="19.. Architecture">
<primary>Uniform Resource
Locators</primary>
<see>URLs</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5839" file="ch19_01.htm" sect="19.. Architecture">
<primary>schemes, URLs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5840" file="ch19_01.htm" sect="19.. Architecture">
<primary>CGI.pm module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5841" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>GET request</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5842" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>methods</primary>
<secondary>HTTP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5843" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>CGI programming</primary>
<secondary>HTTP
methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5844" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>HTTP
methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5845" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>HEAD
method</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5846" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>POST
method</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5847" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>idempotency</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5848" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>error log, web server</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5849" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>access log, web server</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5850" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>errors</primary>
<secondary>CGI
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5851" file="ch19_01.htm" sect="19.. Behind the Scenes">
<primary>debugging</primary>
<secondary>CGI
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5852" file="ch19_01.htm" sect="19.. Security">
<primary>security</primary>
<secondary>CGI
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5853" file="ch19_01.htm" sect="19.. Security">
<primary>CGI
programming</primary>
<secondary>security
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5854" file="ch19_01.htm" sect="19.. HTML and Forms">
<primary>HTML forms</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5855" file="ch19_01.htm" sect="19.. HTML and Forms">
<primary>forms, HTML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5856" file="ch19_01.htm" sect="19.. Web-Related Resources">
<primary>web, references
on</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5857" file="ch19_02.htm" sect="19.1.1. Problem">
<primary>CGI
programming</primary>
<secondary>writing
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5858" file="ch19_02.htm" sect="19.1.1. Problem">
<primary>scripts, CGI</primary>
<see>CGI
programming</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5859" file="ch19_02.htm" sect="19.1.1. Problem">
<primary>programs</primary>
<secondary>CGI</secondary>
<see>CGI
programming</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5860" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>methods</primary>
<secondary>HTTP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5861" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>CGI programming</primary>
<secondary>HTTP
methods</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5862" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>HTTP
methods</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5863" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>GET
request</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5864" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>POST
method</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5865" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>CGI.pm module</primary>
<secondary>writing CGI
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5866" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>input</primary>
<secondary>from HTML forms
[input</secondary>
<tertiary>HTML forms</tertiary>
<see>CGI
programming</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5867" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>param( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5868" file="ch19_02.htm" sect="19.1.3. Discussion">
<primary>CGI programming</primary>
<secondary>form
parameters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5870" file="ch19_03.htm" sect="19.2.1. Problem">
<primary>CGI programming</primary>
<secondary>redirecting
error messages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5871" file="ch19_03.htm" sect="19.2.1. Problem">
<primary>errors</primary>
<secondary>CGI
scripts</secondary>
<tertiary>redirecting messages
from</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5872" file="ch19_03.htm" sect="19.2.2. Solution">
<primary>CGI::Carp
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5873" file="ch19_04.htm" sect="19.3.1. Problem">
<primary>errors</primary>
<secondary>CGI
scripts</secondary>
<tertiary>fixing 500 server
in</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5874" file="ch19_04.htm" sect="19.3.1. Problem">
<primary>CGI
programming</primary>
<secondary>fixing 500 server
errors</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5875" file="ch19_04.htm" sect="19.3.3.2. Make sure the script has permissions to do what it's trying to do">
<primary>permissions</primary>
<secondary>CGI
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5876" file="ch19_04.htm" sect="19.3.3.3. Is the script valid Perl?">
<primary>debugging</primary>
<secondary>CGI
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5877" file="ch19_04.htm" sect="19.3.3.3. Is the script valid Perl?">
<primary>permissions</primary>
<secondary>libraries</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5878" file="ch19_04.htm" sect="19.3.3.3. Is the script valid Perl?">
<primary>libraries</primary>
<secondary>permissions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5879" file="ch19_04.htm" sect="19.3.3.3. Is the script valid Perl?">
<primary>CGI::Carp module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5882" file="ch19_05.htm" sect="19.4.1. Problem">
<primary>security</primary>
<secondary>CGI
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5883" file="ch19_05.htm" sect="19.4.1. Problem">
<primary>CGI
programming</primary>
<secondary>security
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5884" file="ch19_05.htm" sect="19.4.3. Discussion">
<primary>taint mode</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5885" file="ch19_05.htm" sect="19.4.3. Discussion">
<primary>race conditions</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5888" file="ch19_06.htm" sect="19.5.1. Problem">
<primary>CGI
programming</primary>
<secondary>security
and</secondary>
<tertiary>executing user
commands</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5889" file="ch19_06.htm" sect="19.5.1. Problem">
<primary>security</primary>
<secondary>CGI
scripts</secondary>
<tertiary>executing user
commands</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5890" file="ch19_06.htm" sect="19.5.1. Problem">
<primary>input</primary>
<secondary>executing
shell commands from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5891" file="ch19_06.htm" sect="19.5.1. Problem">
<primary>shell escapes,
executing commands without</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5892" file="ch19_06.htm" sect="19.5.2. Solution">
<primary>system( )</primary>
<secondary>shell
escapes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5893" file="ch19_06.htm" sect="19.5.3. Discussion">
<primary>fork( )</primary>
<secondary>shell
escapes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5894" file="ch19_06.htm" sect="19.5.3. Discussion">
<primary>exec( )</primary>
<secondary>shell
escapes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5895" file="ch19_06.htm" sect="19.5.3. Discussion">
<primary>backtick
(`)</primary>
<secondary>executing commands without shell
escapes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5896" file="ch19_06.htm" sect="19.5.3. Discussion">
<primary>`
(backtick)</primary>
<secondary>executing commands without shell
escapes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5901" file="ch19_07.htm" sect="19.6.1. Problem">
<primary>lists</primary>
<secondary>formatting
with HTML shortcuts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5902" file="ch19_07.htm" sect="19.6.1. Problem">
<primary>tables,
formatting with HTML shortcuts</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5903" file="ch19_07.htm" sect="19.6.1. Problem">
<primary>HTML</primary>
<secondary>shortcuts,
formatting lists and tables with</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5904" file="ch19_07.htm" sect="19.6.2. Solution">
<primary>CGI.pm module</primary>
<secondary>HTML
helper functions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5905" file="ch19_07.htm" sect="19.6.3. Discussion">
<primary>database
access</primary>
<secondary>SQL</secondary>
<tertiary>queries</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5909" file="ch19_08.htm" sect="19.7.1. Problem">
<primary>browsers</primary>
<secondary>redirecting</secondary>
<tertiary>with
CGI</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5910" file="ch19_08.htm" sect="19.7.1. Problem">
<primary>CGI
programming</primary>
<secondary>redirecting
browsers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5911" file="ch19_08.htm" sect="19.7.3. Discussion">
<primary>redirect( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5912" file="ch19_08.htm" sect="19.7.3. Discussion">
<primary>switch
statement</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5914" file="ch19_09.htm" sect="19.8.1. Problem">
<primary>CGI programming</primary>
<secondary>debugging raw
HTTP exchange</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5915" file="ch19_09.htm" sect="19.8.1. Problem">
<primary>debugging</primary>
<secondary>raw HTTP
exchange</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5916" file="ch19_10.htm" sect="19.9.1. Problem">
<primary>cookies</primary>
<secondary>CGI</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5917" file="ch19_10.htm" sect="19.9.1. Problem">
<primary>CGI
programming</primary>
<secondary>cookies</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5918" file="ch19_10.htm" sect="19.9.1. Problem">
<primary>CGI.pm
module</primary>
<secondary>managing
cookies</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5922" file="ch19_11.htm" sect="19.10.1. Problem">
<primary>HTML forms</primary>
<secondary>sticky
widgets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5923" file="ch19_11.htm" sect="19.10.1. Problem">
<primary>forms,
HTML</primary>
<secondary>sticky widgets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5924" file="ch19_11.htm" sect="19.10.1. Problem">
<primary>sticky widgets, creating</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5925" file="ch19_11.htm" sect="19.10.1. Problem">
<primary>CGI programming</primary>
<secondary>sticky
widgets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5926" file="ch19_11.htm" sect="19.10.1. Problem">
<primary>creating</primary>
<secondary>sticky
widgets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5927" file="ch19_11.htm" sect="19.10.2. Solution">
<primary>CGI.pm
module</primary>
<secondary>creating sticky
widgets</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5928" file="ch19_12.htm" sect="19.11.1. Problem">
<primary>CGI
programming</primary>
<secondary>multiscreen
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5929" file="ch19_12.htm" sect="19.11.1. Problem">
<primary>user
interfaces</primary>
<secondary>multiscreen CGI
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5930" file="ch19_12.htm" sect="19.11.1. Problem">
<primary>shopping cart
applications</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5931" file="ch19_12.htm" sect="19.11.1. Problem">
<primary>applications</primary>
<secondary>shopping
cart</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5932" file="ch19_12.htm" sect="19.11.1. Problem">
<primary>CGI
programming</primary>
<secondary>shopping cart application,
developing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5933" file="ch19_12.htm" sect="19.11.3. Discussion">
<primary>hidden( ), generating sticky hidden
fields</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5934" file="ch19_12.htm" sect="19.11.3. Discussion">
<primary>switch statement</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5937" file="ch19_13.htm" sect="19.12.1. Problem">
<primary>HTML forms</primary>
<secondary>saving and
mailing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5938" file="ch19_13.htm" sect="19.12.1. Problem">
<primary>forms,
HTML</primary>
<secondary>saving and emailing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5939" file="ch19_13.htm" sect="19.12.1. Problem">
<primary>email</primary>
<secondary>sending</secondary>
<tertiary>HTML
forms via</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5940" file="ch19_13.htm" sect="19.12.1. Problem">
<primary>CGI
programming</primary>
<secondary>saving and mailing HTML
forms</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5941" file="ch19_13.htm" sect="19.12.2. Solution">
<primary>save_parameters( ), HTML
forms</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5942" file="ch19_13.htm" sect="19.12.2. Solution">
<primary>save( ), HTML
forms</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5943" file="ch19_13.htm" sect="19.12.3. Discussion">
<primary>CGI programming</primary>
<secondary>form
parameters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5944" file="ch19_14.htm" sect="19.13. Program: chemiserie">
<primary>chemiserie
program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-19-ITERM-5945" file="ch19_14.htm" sect="19.13. Program: chemiserie">
<primary>CGI
programming</primary>
<secondary>chemiserie
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5949" file="ch20_01.htm" sect="20.. Introduction">
<primary>web
automation</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5950" file="ch20_01.htm" sect="20.. Introduction">
<primary>libwww-perl modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5951" file="ch20_01.htm" sect="20.. Introduction">
<primary>LWP modules</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5952" file="ch20_02.htm" sect="20.1.1. Problem">
<primary>URLs
(Uniform Resource Locators)</primary>
<secondary>fetching from Perl
scripts</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5953" file="ch20_02.htm" sect="20.1.1. Problem">
<primary>web
automation</primary>
<secondary>fetching</secondary>
<tertiary>URLs</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5954" file="ch20_02.htm" sect="20.1.1. Problem">
<primary>fetching URLs from Perl
scripts</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5955" file="ch20_02.htm" sect="20.1.2. Solution">
<primary>LWP::Simple
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5956" file="ch20_02.htm" sect="20.1.2. Solution">
<primary>get( ), fetching
URLs from Perl scripts</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5957" file="ch20_02.htm" sect="20.1.3. Discussion">
<primary>LWP::UserAgent module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5958" file="ch20_02.htm" sect="20.1.3. Discussion">
<primary>HTTP::Response module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5959" file="ch20_02.htm" sect="20.1.3. Discussion">
<primary>URI::Heuristic module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5963" file="ch20_03.htm" sect="20.2.1. Problem">
<primary>HTML forms</primary>
<secondary>automating
submission</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5964" file="ch20_03.htm" sect="20.2.1. Problem">
<primary>web
automation</primary>
<secondary>HTML</secondary>
<tertiary>forms,
submitting</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5965" file="ch20_03.htm" sect="20.2.1. Problem">
<primary>forms,
HTML</primary>
<secondary>submitting</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5966" file="ch20_03.htm" sect="20.2.2. Solution">
<primary>LWP::UserAgent
module</primary>
<secondary>automating HTML
forms</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5967" file="ch20_03.htm" sect="20.2.2. Solution">
<primary>POST method</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5968" file="ch20_03.htm" sect="20.2.3. Discussion">
<primary>LWP::Simple
module</primary>
<secondary>automating HTML
forms</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5969" file="ch20_03.htm" sect="20.2.3. Discussion">
<primary>query_form( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5970" file="ch20_03.htm" sect="20.2.3. Discussion">
<primary>URI::Escape module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5971" file="ch20_03.htm" sect="20.2.3. Discussion">
<primary>uri_escape( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5972" file="ch20_03.htm" sect="20.2.3. Discussion">
<primary>proxy,
submitting forms through</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5973" file="ch20_04.htm" sect="20.3.1. Problem">
<primary>HTML</primary>
<secondary>extracting
URLs from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5974" file="ch20_04.htm" sect="20.3.1. Problem">
<primary>URLs (Uniform Resource
Locators)</primary>
<secondary>extracting from
HTML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5975" file="ch20_04.htm" sect="20.3.1. Problem">
<primary>web
automation</primary>
<secondary>extracting</secondary>
<tertiary>URLs
from HTML</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5976" file="ch20_04.htm" sect="20.3.1. Problem">
<primary>hyperlinks</primary>
<secondary>extracting
from HTML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5977" file="ch20_04.htm" sect="20.3.2. Solution">
<primary>HTML::LinkExtor
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5978" file="ch20_04.htm" sect="20.3.3. Discussion">
<primary>links( ), extracting
URLs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5979" file="ch20_04.htm" sect="20.3.3. Discussion">
<primary>hyperlinks</primary>
<secondary>clearing link
list</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5980" file="ch20_04.htm" sect="20.3.3. Discussion">
<primary>links</primary>
<see>hyperlinks</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5985" file="ch20_05.htm" sect="20.4.1. Problem">
<primary>web automation</primary>
<secondary>converting
ASCII to and from HTML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5986" file="ch20_05.htm" sect="20.4.1. Problem">
<primary>converting</primary>
<secondary>ASCII to and from
HTML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5987" file="ch20_05.htm" sect="20.4.1. Problem">
<primary>HTML</primary>
<secondary>converting ASCII to and
from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5988" file="ch20_05.htm" sect="20.4.1. Problem">
<primary>characters</primary>
<secondary>converting ASCII
to and from HTML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5989" file="ch20_05.htm" sect="20.4.1. Problem">
<primary>strings</primary>
<secondary>converting</secondary>
<tertiary>ASCII
to and from HTML</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5990" file="ch20_05.htm" sect="20.4.3. Discussion">
<primary>HTML::TextToHTML
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5991" file="ch20_06.htm" sect="20.5.1. Problem">
<primary>ASCII (American Standard Code for Information
Interchange)</primary>
<secondary>converting HTML
to</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5992" file="ch20_06.htm" sect="20.5.1. Problem">
<primary>converting</primary>
<secondary>HTML to
ASCII</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5993" file="ch20_06.htm" sect="20.5.3. Discussion">
<primary>HTML::FormatText
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5994" file="ch20_06.htm" sect="20.5.3. Discussion">
<primary>format_string( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5995" file="ch20_07.htm" sect="20.6.1. Problem">
<primary>web
automation</primary>
<secondary>HTML</secondary>
<tertiary>removing or
extracting tags</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5996" file="ch20_07.htm" sect="20.6.1. Problem">
<primary>HTML</primary>
<secondary>extracting
tags</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5997" file="ch20_07.htm" sect="20.6.1. Problem">
<primary>deleting</primary>
<secondary>HTML
tags from strings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5998" file="ch20_07.htm" sect="20.6.1. Problem">
<primary>strings</primary>
<secondary>removing
or extracting HTML tags</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-5999" file="ch20_07.htm" sect="20.6.1. Problem">
<primary>LWP
modules</primary>
<secondary>extracting HTML
tags</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6000" file="ch20_07.htm" sect="20.6.1. Problem">
<primary>parsing</primary>
<secondary>HTML
tags</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6001" file="ch20_07.htm" sect="20.6.1. Problem">
<primary>tags,
HTML</primary>
<see>HTML</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6002" file="ch20_07.htm" sect="20.6.3. Discussion">
<primary>nested</primary>
<secondary>HTML
tags</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6009" file="ch20_08.htm" sect="20.7.1. Problem">
<primary>HTML</primary>
<secondary>finding stale or fresh
links</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6010" file="ch20_08.htm" sect="20.7.1. Problem">
<primary>web
automation</primary>
<secondary>finding stale or fresh
links</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6011" file="ch20_08.htm" sect="20.7.1. Problem">
<primary>hyperlinks</primary>
<secondary>finding stale or
fresh</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6012" file="ch20_08.htm" sect="20.7.2. Solution">
<primary>head( ), finding stale
hyperlinks</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6013" file="ch20_08.htm" sect="20.7.2. Solution">
<primary>LWP::Simple
module</primary>
<secondary>finding stale
hyperlinks</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6014" file="ch20_08.htm" sect="20.7.3. Discussion">
<primary>URI::Heuristic
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6015" file="ch20_09.htm" sect="20.8.1. Problem">
<primary>web pages</primary>
<secondary>modified, links
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6016" file="ch20_09.htm" sect="20.8.1. Problem">
<primary>finding</primary>
<secondary>fresh
hyperlinks</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6017" file="ch20_09.htm" sect="20.8.3. Discussion">
<primary>surl
script</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6018" file="ch20_10.htm" sect="20.9.1. Problem">
<primary>web
automation</primary>
<secondary>HTML</secondary>
<tertiary>templates</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6019" file="ch20_10.htm" sect="20.9.1. Problem">
<primary>HTML</primary>
<secondary>templates</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6020" file="ch20_10.htm" sect="20.9.1. Problem">
<primary>templates</primary>
<secondary>HTML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6021" file="ch20_10.htm" sect="20.9.2. Solution">
<primary>template( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6022" file="ch20_10.htm" sect="20.9.2. Solution">
<primary>Text::Template
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6023" file="ch20_10.htm" sect="20.9.3. Discussion">
<primary>SQL database</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6024" file="ch20_10.htm" sect="20.9.3. Discussion">
<primary>database
access</primary>
<secondary>SQL</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6028" file="ch20_11.htm" sect="20.10.1. Problem">
<primary>web automation</primary>
<secondary>mirroring web
pages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6029" file="ch20_11.htm" sect="20.10.2. Solution">
<primary>LWP::Simple
module</primary>
<secondary>mirroring web
pages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6030" file="ch20_11.htm" sect="20.10.2. Solution">
<primary>mirror( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6031" file="ch20_11.htm" sect="20.10.3. Discussion">
<primary>If-Modified-Since
header</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6032" file="ch20_12.htm" sect="20.11.1. Problem">
<primary>web
automation</primary>
<secondary>robots</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6033" file="ch20_12.htm" sect="20.11.1. Problem">
<primary>robots for Web traversal</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6034" file="ch20_12.htm" sect="20.11.1. Problem">
<primary>navigating Web with robots</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6035" file="ch20_12.htm" sect="20.11.1. Problem">
<primary>creating</primary>
<secondary>robots for Web
traversal</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6036" file="ch20_12.htm" sect="20.11.2. Solution">
<primary>LWP::RobotUA
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6037" file="ch20_13.htm" sect="20.12.1. Problem">
<primary>parsing</primary>
<secondary>web server log
file</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6038" file="ch20_13.htm" sect="20.12.1. Problem">
<primary>log
files</primary>
<secondary>web server</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6039" file="ch20_13.htm" sect="20.12.1. Problem">
<primary>web automation</primary>
<secondary>server
logs</secondary>
<tertiary>parsing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6040" file="ch20_13.htm" sect="20.12.1. Problem">
<primary>web
servers</primary>
<secondary>logs</secondary>
<tertiary>parsing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6041" file="ch20_13.htm" sect="20.12.1. Problem">
<primary>access log, web server</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6042" file="ch20_13.htm" sect="20.12.1. Problem">
<primary>Apache web server</primary>
<secondary>log
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6043" file="ch20_13.htm" sect="20.12.3. Discussion">
<primary>Common Log Format
standard</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6044" file="ch20_13.htm" sect="20.12.3. Discussion">
<primary>web
servers</primary>
<secondary>log files, Common Log
Format</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6045" file="ch20_13.htm" sect="20.12.3. Discussion">
<primary>servers</primary>
<secondary>web</secondary>
<tertiary>common
log format fields</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6046" file="ch20_14.htm" sect="20.13.1. Problem">
<primary>web
servers</primary>
<secondary>logs</secondary>
<tertiary>processing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6047" file="ch20_14.htm" sect="20.13.1. Problem">
<primary>log
files</primary>
<secondary>web
server</secondary>
<tertiary>processing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6048" file="ch20_14.htm" sect="20.13.1. Problem">
<primary>web
automation</primary>
<secondary>server
logs</secondary>
<tertiary>processing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6049" file="ch20_14.htm" sect="20.13.1. Problem">
<primary>errors</primary>
<secondary>web server
error log</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6050" file="ch20_14.htm" sect="20.13.3. Discussion">
<primary>Logfile::Apache module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6051" file="ch20_14.htm" sect="20.13.3. Discussion">
<primary>report( ), processing server
logs</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6052" file="ch20_14.htm" sect="20.13.3. Discussion">
<primary>logging</primary>
<secondary>server logs,
processing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6053" file="ch20_14.htm" sect="20.13.3. Discussion">
<primary>servers</primary>
<secondary>processing
logs</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6058" file="ch20_15.htm" sect="20.14.1. Problem">
<primary>web automation</primary>
<secondary>using
cookies</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6059" file="ch20_15.htm" sect="20.14.1. Problem">
<primary>cookies</primary>
<secondary>web automation
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6060" file="ch20_15.htm" sect="20.14.2. Solution">
<primary>LWP::UserAgent module</primary>
<secondary>using
cookies</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6061" file="ch20_15.htm" sect="20.14.2. Solution">
<primary>log files</primary>
<seealso>logging</seealso>
<see>also
logging</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6062" file="ch20_15.htm" sect="20.14.3. Discussion">
<primary>cookie_jar( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6063" file="ch20_15.htm" sect="20.14.3. Discussion">
<primary>HTTP::Cookies module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6064" file="ch20_16.htm" sect="20.15.1. Problem">
<primary>web
automation</primary>
<secondary>fetching</secondary>
<tertiary>password-protected
pages</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6065" file="ch20_16.htm" sect="20.15.1. Problem">
<primary>web
pages</primary>
<secondary>password-protected</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6066" file="ch20_16.htm" sect="20.15.1. Problem">
<primary>authentication</primary>
<secondary>fetching
password-protected web pages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6067" file="ch20_16.htm" sect="20.15.2. Solution">
<primary>credentials( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6068" file="ch20_16.htm" sect="20.15.3. Discussion">
<primary>authentication</primary>
<secondary>realms</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6069" file="ch20_17.htm" sect="20.16.1. Problem">
<primary>security</primary>
<secondary>fetching secure web
pages</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6070" file="ch20_17.htm" sect="20.16.1. Problem">
<primary>web
automation</primary>
<secondary>fetching</secondary>
<tertiary>https://
web pages</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6071" file="ch20_17.htm" sect="20.16.1. Problem">
<primary>web
pages</primary>
<secondary>https://</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6072" file="ch20_17.htm" sect="20.16.1. Problem">
<primary>SSL (Secure Sockets
Layer)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6073" file="ch20_17.htm" sect="20.16.1. Problem">
<primary>Secure Sockets Layer
(SSL)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6074" file="ch20_17.htm" sect="20.16.2. Solution">
<primary>Crypt::SSLeay module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6075" file="ch20_17.htm" sect="20.16.3. Discussion">
<primary>IO::Socket::SSL
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6076" file="ch20_17.htm" sect="20.16.3. Discussion">
<primary>OpenSSL
libraries</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6077" file="ch20_17.htm" sect="20.16.3. Discussion">
<primary>libraries</primary>
<secondary>OpenSSL</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6078" file="ch20_18.htm" sect="20.17.1. Problem">
<primary>GET
request</primary>
<secondary>resuming</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6079" file="ch20_18.htm" sect="20.17.1. Problem">
<primary>web automation</primary>
<secondary>resuming HTTP
GET</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6080" file="ch20_18.htm" sect="20.17.1. Problem">
<primary>files</primary>
<secondary>downloading, resuming
HTTP GET</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6081" file="ch20_18.htm" sect="20.17.2. Solution">
<primary>GET request</primary>
<secondary>using HTTP 1.1
Range header</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6082" file="ch20_18.htm" sect="20.17.2. Solution">
<primary>Range
header</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6083" file="ch20_19.htm" sect="20.18.1. Problem">
<primary>HTML</primary>
<secondary>parsing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6084" file="ch20_19.htm" sect="20.18.1. Problem">
<primary>web
automation</primary>
<secondary>HTML</secondary>
<tertiary>parsing</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6085" file="ch20_19.htm" sect="20.18.1. Problem">
<primary>parsing</primary>
<secondary>HTML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6086" file="ch20_19.htm" sect="20.18.2. Solution">
<primary>regular
expressions</primary>
<secondary>parsing HTML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6087" file="ch20_19.htm" sect="20.18.3. Discussion">
<primary>HTML::TokeParser
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6088" file="ch20_19.htm" sect="20.18.3. Discussion">
<primary>get_token( ), parsing
HTML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6092" file="ch20_20.htm" sect="20.19.1. Problem">
<primary>web
automation</primary>
<secondary>extracting</secondary>
<tertiary>table
data</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6093" file="ch20_20.htm" sect="20.19.1. Problem">
<primary>HTML</primary>
<secondary>tables in,
extracting data from</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6094" file="ch20_20.htm" sect="20.19.1. Problem">
<primary>converting</primary>
<secondary>HTML
tables into Perl data structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6095" file="ch20_20.htm" sect="20.19.2. Solution">
<primary>HTML::TableContentParser
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6096" file="ch20_20.htm" sect="20.19.3. Discussion">
<primary>parse( ), HTML tables, extracting
data</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6100" file="ch20_21.htm" sect="20.20. Program: htmlsub">
<primary>htmlsub program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6101" file="ch20_21.htm" sect="20.20. Program: htmlsub">
<primary>web automation</primary>
<secondary>htmlsub
program</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6102" file="ch20_21.htm" sect="20.20. Program: htmlsub">
<primary>HTML</primary>
<secondary>text
substitutions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6103" file="ch20_21.htm" sect="20.20. Program: htmlsub">
<primary>web
automation</primary>
<secondary>HTML</secondary>
<tertiary>text
substitutions</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6104" file="ch20_21.htm" sect="20.20. Program: htmlsub">
<primary>strings</primary>
<secondary>HTML text
substitutions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6105" file="ch20_22.htm" sect="20.21. Program: hrefsub">
<primary>hrefsub program</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-20-ITERM-6106" file="ch20_22.htm" sect="20.21. Program: hrefsub">
<primary>HREF fields, substitutions
for</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6108" file="ch21_01.htm" sect="21.. Introduction">
<primary>mod_perl</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6109" file="ch21_01.htm" sect="21.. Introduction">
<primary>Apache web server</primary>
<seealso>mod_perl</seealso>
<see>also
mod_perl</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6110" file="ch21_01.htm" sect="21.. Introduction">
<primary>CGI
programming</primary>
<secondary>performance</secondary>
<seealso>mod_perl</seealso>
<see>also
mod_perl</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6111" file="ch21_01.htm" sect="21.. Introduction">
<primary>CGI
programming</primary>
<secondary>performance</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6112" file="ch21_01.htm" sect="21.. Introduction">
<primary>Apache::Registry
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6113" file="ch21_01.htm" sect="21.. Introduction">
<primary>Apache::PerlRun
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6114" file="ch21_01.htm" sect="21.. Handlers">
<primary>Apache web
server</primary>
<secondary>handlers, writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6115" file="ch21_01.htm" sect="21.. Handlers">
<primary>handlers</primary>
<secondary>Apache</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6116" file="ch21_01.htm" sect="21.. Handlers">
<primary>code
handlers</primary>
<see>handlers</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6117" file="ch21_01.htm" sect="21.. Apache Phases">
<primary>Apache web server</primary>
<secondary>phases of
request-response transaction</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6118" file="ch21_01.htm" sect="21.. More Documentation">
<primary>mod_perl</primary>
<secondary>documentation</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6119" file="ch21_01.htm" sect="21.. More Documentation">
<primary>modules</primary>
<secondary>mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6120" file="ch21_01.htm" sect="21.. mod_perl 2">
<primary>mod_perl 2</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6121" file="ch21_02.htm" sect="21.1.1. Problem">
<primary>mod_perl</primary>
<secondary>authentication</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6122" file="ch21_02.htm" sect="21.1.1. Problem">
<primary>authentication</primary>
<secondary sortas="mod_perl">with mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6123" file="ch21_03.htm" sect="21.2.1. Problem">
<primary>cookies</primary>
<secondary>setting in
mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6124" file="ch21_03.htm" sect="21.2.1. Problem">
<primary>mod_perl</primary>
<secondary>cookies</secondary>
<tertiary>setting</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6125" file="ch21_03.htm" sect="21.2.2. Solution">
<primary>Apache::Cookie
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6126" file="ch21_03.htm" sect="21.2.3. Description">
<primary>bake( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6127" file="ch21_03.htm" sect="21.2.3. Description">
<primary>CGI::Cookie module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6128" file="ch21_04.htm" sect="21.3.1. Problem">
<primary>mod_perl</primary>
<secondary>cookies</secondary>
<tertiary>accessing
values</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6129" file="ch21_04.htm" sect="21.3.1. Problem">
<primary>cookies</primary>
<secondary>accessing values with
mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6130" file="ch21_04.htm" sect="21.3.2. Solution">
<primary>Apache::Cookie
module</primary>
<secondary>accessing values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6131" file="ch21_04.htm" sect="21.3.3. Discussion">
<primary>CGI::Cookie
module</primary>
<secondary>accessing
values</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6132" file="ch21_05.htm" sect="21.4.1. Problem">
<primary>mod_perl</primary>
<secondary>redirecting
browsers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6133" file="ch21_05.htm" sect="21.4.1. Problem">
<primary>browsers</primary>
<secondary>redirecting</secondary>
<tertiary>with
mod_perl</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6134" file="ch21_05.htm" sect="21.4.3. Discussion">
<primary>external redirection</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6135" file="ch21_05.htm" sect="21.4.3. Discussion">
<primary>URLs (Uniform Resource
Locators)</primary>
<secondary>external
redirection</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6136" file="ch21_05.htm" sect="21.4.3. Discussion">
<primary>internal redirection</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6137" file="ch21_05.htm" sect="21.4.3. Discussion">
<primary>Apache web server</primary>
<secondary>internal
redirection</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6138" file="ch21_06.htm" sect="21.5.1. Problem">
<primary>mod_perl</primary>
<secondary>interrogating
headers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6139" file="ch21_06.htm" sect="21.5.1. Problem">
<primary>headers,
interrogating with mod_perl</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6140" file="ch21_07.htm" sect="21.6.1. Problem">
<primary>mod_perl</primary>
<secondary>accessing form
parameters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6141" file="ch21_07.htm" sect="21.6.1. Problem">
<primary>HTML
forms</primary>
<secondary>accessing parameters with
mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6142" file="ch21_07.htm" sect="21.6.2. Solution">
<primary>Apache::Request
module</primary>
<secondary>accessing form
parameters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6143" file="ch21_08.htm" sect="21.7.1. Problem">
<primary>files</primary>
<secondary>uploaded, receiving
with mod_perl handler</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6144" file="ch21_08.htm" sect="21.7.1. Problem">
<primary>mod_perl</primary>
<secondary>Apache
handlers</secondary>
<tertiary>receiving uploaded
files</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6145" file="ch21_08.htm" sect="21.7.2. Solution">
<primary>Apache::Request
module</primary>
<secondary>receiving uploaded
files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6146" file="ch21_09.htm" sect="21.8.1. Problem">
<primary>mod_perl</primary>
<secondary>speeding database
access</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6147" file="ch21_09.htm" sect="21.8.1. Problem">
<primary>database
access</primary>
<secondary>speeding up with
mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6148" file="ch21_09.htm" sect="21.8.1. Problem">
<primary>performance</primary>
<secondary>database access,
speeding with mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6149" file="ch21_09.htm" sect="21.8.2. Solution">
<primary>Apache::DBI
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6150" file="ch21_10.htm" sect="21.9.1. Problem">
<primary>Apache web server</primary>
<secondary>logging
requests, customizing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6151" file="ch21_10.htm" sect="21.9.1. Problem">
<primary>customizing</primary>
<secondary>Apache logging
requests</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6152" file="ch21_10.htm" sect="21.9.1. Problem">
<primary>logging</primary>
<secondary>customizing Apache
logging requests</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6153" file="ch21_10.htm" sect="21.9.1. Problem">
<primary>mod_perl</primary>
<secondary>Apache logging
requests, customizing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6154" file="ch21_10.htm" sect="21.9.3. Discussion">
<primary>Apache::Traffic module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6155" file="ch21_10.htm" sect="21.9.3. Discussion">
<primary>Apache::DBILogger
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6156" file="ch21_11.htm" sect="21.10.1. Problem">
<primary>mod_perl</primary>
<secondary>URLs, transparently
storing information in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6157" file="ch21_11.htm" sect="21.10.1. Problem">
<primary>URLs (Uniform Resource
Locators)</primary>
<secondary>transparently storing information
in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6158" file="ch21_11.htm" sect="21.10.2. Solution">
<primary>pnotes</primary>
<secondary>URLs, storing
information in</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6159" file="ch21_12.htm" sect="21.11.1. Problem">
<primary>mod_perl</primary>
<secondary>communicating with
PHP</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6160" file="ch21_12.htm" sect="21.11.1. Problem">
<primary>PHP, communicating
with mod_perl</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6161" file="ch21_12.htm" sect="21.11.1. Problem">
<primary>communicating
between mod_perl and PHP</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6162" file="ch21_12.htm" sect="21.11.3. Discussion">
<primary>Apache web
server</primary>
<secondary>notes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6163" file="ch21_12.htm" sect="21.11.3. Discussion">
<primary>notes, Apache requests</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6164" file="ch21_13.htm" sect="21.12.1. Problem">
<primary>CGI programming</primary>
<secondary>improving
efficiency of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6165" file="ch21_13.htm" sect="21.12.1. Problem">
<primary>performance</primary>
<secondary>web server,
improving</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6166" file="ch21_13.htm" sect="21.12.1. Problem">
<primary>CGI
programming</primary>
<secondary>migrating to
mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6167" file="ch21_13.htm" sect="21.12.1. Problem">
<primary>mod_perl</primary>
<secondary>migrating from
CGI</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6168" file="ch21_13.htm" sect="21.12.1. Problem">
<primary>web
servers</primary>
<secondary>performance,
improving</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6169" file="ch21_13.htm" sect="21.12.1. Problem">
<primary>servers</primary>
<secondary>web</secondary>
<tertiary>performance,
improving</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6170" file="ch21_13.htm" sect="21.12.2. Solution">
<primary>Apache::Registry
module</primary>
<secondary>migrating from CGI to
mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6171" file="ch21_13.htm" sect="21.12.2. Solution">
<primary>Apache::PerlRun
module</primary>
<secondary>migrating from CGI to
mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6172" file="ch21_14.htm" sect="21.13.1. Problem">
<primary>handlers</primary>
<secondary>sharing information
between</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6173" file="ch21_14.htm" sect="21.13.1. Problem">
<primary>mod_perl</primary>
<secondary>Apache
handlers</secondary>
<tertiary>sharing information
between</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6174" file="ch21_14.htm" sect="21.13.2. Solution">
<primary>Apache web
server</primary>
<secondary>pnotes, sharing information between
handlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6175" file="ch21_14.htm" sect="21.13.2. Solution">
<primary>pnotes</primary>
<secondary>Apache requests,
sharing information between handlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6176" file="ch21_15.htm" sect="21.14.1. Problem">
<primary>mod_perl</primary>
<secondary>reloading changed
modules</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6177" file="ch21_15.htm" sect="21.14.1. Problem">
<primary>modules</primary>
<secondary>loading</secondary>
<tertiary>reloading
changed modules with mod_perl</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6178" file="ch21_15.htm" sect="21.14.1. Problem">
<primary>loading modules</primary>
<secondary>with
mod_perl</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6179" file="ch21_15.htm" sect="21.14.2. Solution">
<primary>Apache::StatINC
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6180" file="ch21_15.htm" sect="21.14.2. Solution">
<primary>Apache::Reload
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6181" file="ch21_16.htm" sect="21.15.1. Problem">
<primary>mod_perl</primary>
<secondary>applications,
benchmarking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6182" file="ch21_16.htm" sect="21.15.1. Problem">
<primary>benchmarking
mod_perl applications</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6183" file="ch21_16.htm" sect="21.15.1. Problem">
<primary>applications</primary>
<secondary>mod_perl,
benchmarking</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6184" file="ch21_16.htm" sect="21.15.2. Solution">
<primary>Apache::Timeit module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6185" file="ch21_16.htm" sect="21.15.2. Solution">
<primary>Apache::DProf
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6186" file="ch21_17.htm" sect="21.16.1. Problem">
<primary>HTML::Mason
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6187" file="ch21_17.htm" sect="21.16.1. Problem">
<primary>mod_perl</primary>
<secondary>templating
with HTML::Mason</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6188" file="ch21_17.htm" sect="21.16.1. Problem">
<primary>templates</primary>
<secondary>HTML::Mason</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6189" file="ch21_17.htm" sect="21.16.3.1. Configuration">
<primary>HTML::Mason
module</primary>
<secondary>configuration</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6190" file="ch21_17.htm" sect="21.16.3.1. Configuration">
<primary>mod_perl</primary>
<secondary>templating with
HTML::Mason</secondary>
<tertiary>configuration</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6191" file="ch21_17.htm" sect="21.16.3.1. Configuration">
<primary>templates</primary>
<secondary>HTML::Mason</secondary>
<tertiary>configuration</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6192" file="ch21_17.htm" sect="21.16.3.2. Basic Mason syntax">
<primary>HTML::Mason module</primary>
<secondary>Mason
syntax</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6193" file="ch21_17.htm" sect="21.16.3.2. Basic Mason syntax">
<primary>mod_perl</primary>
<secondary>templating with
HTML::Mason</secondary>
<tertiary>Mason
syntax</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6194" file="ch21_17.htm" sect="21.16.3.2. Basic Mason syntax">
<primary>templates</primary>
<secondary>HTML::Mason</secondary>
<tertiary>Mason
syntax</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6195" file="ch21_17.htm" sect="21.16.3.3. Objects">
<primary>HTML::Mason
module</primary>
<secondary>objects</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6196" file="ch21_17.htm" sect="21.16.3.3. Objects">
<primary>mod_perl</primary>
<secondary>templating with
HTML::Mason</secondary>
<tertiary>objects</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6197" file="ch21_17.htm" sect="21.16.3.3. Objects">
<primary>templates</primary>
<secondary>HTML::Mason</secondary>
<tertiary>objects</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6198" file="ch21_17.htm" sect="21.16.3.4. Autohandlers">
<primary>HTML::Mason
module</primary>
<secondary>autohandlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6199" file="ch21_17.htm" sect="21.16.3.4. Autohandlers">
<primary>mod_perl</primary>
<secondary>templating with
HTML::Mason</secondary>
<tertiary>autohandlers</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6200" file="ch21_17.htm" sect="21.16.3.4. Autohandlers">
<primary>templates</primary>
<secondary>HTML::Mason</secondary>
<tertiary>autohandlers</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6201" file="ch21_17.htm" sect="21.16.3.5. Dhandlers">
<primary>HTML::Mason
module</primary>
<secondary>dhandlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6202" file="ch21_17.htm" sect="21.16.3.5. Dhandlers">
<primary>mod_perl</primary>
<secondary>templating with
HTML::Mason</secondary>
<tertiary>dhandlers</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6203" file="ch21_17.htm" sect="21.16.3.5. Dhandlers">
<primary>templates</primary>
<secondary>HTML::Mason</secondary>
<tertiary>dhandlers</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6204" file="ch21_17.htm" sect="21.16.3.5. Dhandlers">
<primary>HTML::Mason
module</primary>
<secondary>dhandlers</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6208" file="ch21_18.htm" sect="21.17.1. Problem">
<primary>Apache::Template module</primary>
<see>Template
Toolkit</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6209" file="ch21_18.htm" sect="21.17.1. Problem">
<primary>Template
Toolkit</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6210" file="ch21_18.htm" sect="21.17.1. Problem">
<primary>mod_perl</primary>
<secondary>templating
with Template Toolkit</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6211" file="ch21_18.htm" sect="21.17.1. Problem">
<primary>templates</primary>
<secondary>Template
Toolkit</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6212" file="ch21_18.htm" sect="21.17.3.1. Configuration">
<primary>Template
Toolkit</primary>
<secondary>configuration</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6213" file="ch21_18.htm" sect="21.17.3.1. Configuration">
<primary>mod_perl</primary>
<secondary>templating with
Template
Toolkit</secondary>
<tertiary>configuration</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6214" file="ch21_18.htm" sect="21.17.3.1. Configuration">
<primary>templates</primary>
<secondary>Template
Toolkit</secondary>
<tertiary>configuration</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6215" file="ch21_18.htm" sect="21.17.3.2. Syntax">
<primary>Template Toolkit</primary>
<secondary>syntax</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6216" file="ch21_18.htm" sect="21.17.3.2. Syntax">
<primary>mod_perl</primary>
<secondary>templating with Template Toolkit</secondary>
<tertiary>syntax</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6217" file="ch21_18.htm" sect="21.17.3.2. Syntax">
<primary>templates</primary>
<secondary>Template Toolkit</secondary>
<tertiary>syntax</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6218" file="ch21_18.htm" sect="21.17.3.3. Perl code">
<primary>Template
Toolkit</primary>
<secondary>Perl code</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6219" file="ch21_18.htm" sect="21.17.3.3. Perl code">
<primary>mod_perl</primary>
<secondary>templating with
Template Toolkit</secondary>
<tertiary>Perl
code</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6220" file="ch21_18.htm" sect="21.17.3.3. Perl code">
<primary>templates</primary>
<secondary>Template
Toolkit</secondary>
<tertiary>Perl code</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6221" file="ch21_18.htm" sect="21.17.3.4. Data structures">
<primary>Template Toolkit</primary>
<secondary>data
structures</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6222" file="ch21_18.htm" sect="21.17.3.4. Data structures">
<primary>mod_perl</primary>
<secondary>templating with
Template Toolkit</secondary>
<tertiary>data
structures</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6223" file="ch21_18.htm" sect="21.17.3.4. Data structures">
<primary>templates</primary>
<secondary>Template
Toolkit</secondary>
<tertiary>data structures</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6224" file="ch21_18.htm" sect="21.17.3.5. Subroutines">
<primary>Template
Toolkit</primary>
<secondary>subroutines</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6225" file="ch21_18.htm" sect="21.17.3.5. Subroutines">
<primary>mod_perl</primary>
<secondary>templating with
Template
Toolkit</secondary>
<tertiary>subroutines</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6226" file="ch21_18.htm" sect="21.17.3.5. Subroutines">
<primary>templates</primary>
<secondary>Template
Toolkit</secondary>
<tertiary>subroutines</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6227" file="ch21_18.htm" sect="21.17.3.6. Including other templates">
<primary>Template Toolkit</primary>
<secondary>other
templates</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6228" file="ch21_18.htm" sect="21.17.3.6. Including other templates">
<primary>mod_perl</primary>
<secondary>templating with
Template Toolkit</secondary>
<tertiary>other
templates</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6229" file="ch21_18.htm" sect="21.17.3.6. Including other templates">
<primary>templates</primary>
<secondary>Template
Toolkit</secondary>
<tertiary>other templates</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6230" file="ch21_18.htm" sect="21.17.3.7. Parameters">
<primary>Template
Toolkit</primary>
<secondary>parameters</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6231" file="ch21_18.htm" sect="21.17.3.7. Parameters">
<primary>mod_perl</primary>
<secondary>templating with
Template
Toolkit</secondary>
<tertiary>parameters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6232" file="ch21_18.htm" sect="21.17.3.7. Parameters">
<primary>templates</primary>
<secondary>Template
Toolkit</secondary>
<tertiary>parameters</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6233" file="ch21_18.htm" sect="21.17.3.8. Plug-ins">
<primary>Template
Toolkit</primary>
<secondary>plug-ins</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6234" file="ch21_18.htm" sect="21.17.3.8. Plug-ins">
<primary>mod_perl</primary>
<secondary>templating with
Template Toolkit</secondary>
<tertiary>plug-ins</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-21-ITERM-6235" file="ch21_18.htm" sect="21.17.3.8. Plug-ins">
<primary>templates</primary>
<secondary>Template
Toolkit</secondary>
<tertiary>plug-ins</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6240" file="ch22_01.htm" sect="22.. Introduction">
<primary>XML
(Extensible Markup Language)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6241" file="ch22_01.htm" sect="22.. Introduction">
<primary>Extensible
Markup Language</primary>
<see>XML</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6242" file="ch22_01.htm" sect="22.. Introduction">
<primary>SGML
(Standard Generalized Markup Language)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6243" file="ch22_01.htm" sect="22.. Introduction">
<primary>Standard Generalized Markup Language
(SGML)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6244" file="ch22_01.htm" sect="22.. Introduction">
<primary>XML (Extensible
Markup Language)</primary>
<secondary>reasons for success
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6245" file="ch22_01.htm" sect="22.. Introduction">
<primary>text</primary>
<secondary>XML
as</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6246" file="ch22_01.htm" sect="22.. Introduction">
<primary>HTML</primary>
<secondary>XML
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6247" file="ch22_01.htm" sect="22.. Syntax">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>syntax</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6248" file="ch22_01.htm" sect="22.. XML Declaration">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>declaration</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6249" file="ch22_01.htm" sect="22.. XML Declaration">
<primary>encoding attribute, XML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6250" file="ch22_01.htm" sect="22.. XML Declaration">
<primary>portability</primary>
<secondary>encodings in
XML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6251" file="ch22_01.htm" sect="22.. XML Declaration">
<primary>Unicode</primary>
<secondary>encodings, XML
and</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6252" file="ch22_01.htm" sect="22.. XML Declaration">
<primary>XML
declaration</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6253" file="ch22_01.htm" sect="22.. XML Declaration">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>Unicode
encodings</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6254" file="ch22_01.htm" sect="22.. Processing Instructions">
<primary>processes</primary>
<secondary>XML processing
instructions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6255" file="ch22_01.htm" sect="22.. Processing Instructions">
<primary>XML
(Extensible Markup Language)</primary>
<secondary>processing
instructions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6256" file="ch22_01.htm" sect="22.. Comments">
<primary>comments</primary>
<secondary>XML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6257" file="ch22_01.htm" sect="22.. Comments">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>comments</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6258" file="ch22_01.htm" sect="22.. CDATA">
<primary>CDATA, XML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6259" file="ch22_01.htm" sect="22.. CDATA">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>CDATA</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6260" file="ch22_01.htm" sect="22.. Well-Formed XML">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>well-formed
documents</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6261" file="ch22_01.htm" sect="22.. Schemas">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>schemas</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6262" file="ch22_01.htm" sect="22.. Schemas">
<primary>schemas, XML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6263" file="ch22_01.htm" sect="22.. Schemas">
<primary>World Wide Web Consortium
(W3C)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6264" file="ch22_01.htm" sect="22.. Schemas">
<primary>W3C (World Wide Web
Consortium)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6265" file="ch22_01.htm" sect="22.. Schemas">
<primary>XML
Schema</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6266" file="ch22_01.htm" sect="22.. Schemas">
<primary>OASIS
group</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6267" file="ch22_01.htm" sect="22.. Schemas">
<primary>RelaxNG
schema</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6268" file="ch22_01.htm" sect="22.. Schemas">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>validating</secondary>
<tertiary>documents
against schemas</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6269" file="ch22_01.htm" sect="22.. Schemas">
<primary>XML
documents</primary>
<secondary>validating against
schemas</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6270" file="ch22_01.htm" sect="22.. Namespaces">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>namespaces</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6271" file="ch22_01.htm" sect="22.. Namespaces">
<primary>namespaces, XML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6272" file="ch22_01.htm" sect="22.. Namespaces">
<primary>nested</primary>
<secondary>elements,
XML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6273" file="ch22_01.htm" sect="22.. Namespaces">
<primary>XML (Extensible
Markup Language)</primary>
<secondary>nested
elements</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6274" file="ch22_01.htm" sect="22.. Transformations">
<primary>XSLT (XML Stylesheet Language for
Transformations)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6275" file="ch22_01.htm" sect="22.. Transformations">
<primary>XML
Stylesheet Language for
Transformations</primary>
<see>XSLT</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6276" file="ch22_01.htm" sect="22.. Transformations">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>transformations</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6277" file="ch22_01.htm" sect="22.. Transformations">
<primary>transformations, XML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6278" file="ch22_01.htm" sect="22.. Transformations">
<primary>XML::LibXSLT
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6279" file="ch22_01.htm" sect="22.. Transformations">
<primary>XML::Sablotron
module, XSLT</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6280" file="ch22_01.htm" sect="22.. Transformations">
<primary>XML::XSLT
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6281" file="ch22_01.htm" sect="22.. Paths">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>paths</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6282" file="ch22_01.htm" sect="22.. Paths">
<primary>paths, XML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6283" file="ch22_01.htm" sect="22.. Paths">
<primary>XPath</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6284" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>Perl and, history
of</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6285" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>XML::Parser module</primary>
<secondary>caution
against using directly</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6286" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>XML::SAX modules, parsing
XML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6287" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>Document Object
Model (DOM)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6288" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>DOM (Document
Object Model)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6289" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>XML::LibXML
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6290" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>libxml2
library</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6291" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>libraries</primary>
<secondary>libxml2</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6292" file="ch22_01.htm" sect="22.. History of Perl and XML">
<primary>DOM (Document Object
Model)</primary>
<secondary>trees</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6293" file="ch22_02.htm" sect="22.1.1. Problem">
<primary>XML
(Extensible Markup
Language)</primary>
<secondary>parsing</secondary>
<tertiary sortas="data structures">into data structures</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6294" file="ch22_02.htm" sect="22.1.1. Problem">
<primary>parsing</primary>
<secondary>XML</secondary>
<tertiary sortas="data structures">into data structures</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6295" file="ch22_02.htm" sect="22.1.1. Problem">
<primary>data
structures</primary>
<secondary>parsing XML
into</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6296" file="ch22_02.htm" sect="22.1.2. Solution">
<primary>XML::Simple
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6297" file="ch22_02.htm" sect="22.1.3. Discussion">
<primary>ForceArray option</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6298" file="ch22_02.htm" sect="22.1.3. Discussion">
<primary>XMLin( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6302" file="ch22_03.htm" sect="22.2.1. Problem">
<primary>XML
(Extensible Markup
Language)</primary>
<secondary>parsing</secondary>
<tertiary sortas="DOM tree">into DOM tree</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6303" file="ch22_03.htm" sect="22.2.1. Problem">
<primary>parsing</primary>
<secondary>XML</secondary>
<tertiary sortas="DOM tree">into DOM tree</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6304" file="ch22_03.htm" sect="22.2.1. Problem">
<primary>DOM (Document
Object Model)</primary>
<secondary>trees</secondary>
<tertiary>parsing
XML into</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6305" file="ch22_03.htm" sect="22.2.2. Solution">
<primary>XML::LibXML
module</primary>
<secondary>parsing XML into a DOM
tree</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6306" file="ch22_03.htm" sect="22.2.3. Discussion">
<primary>getElementsByTagName( )</primary>
<secondary>returning
a list of elements by nodes</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6307" file="ch22_03.htm" sect="22.2.3. Discussion">
<primary>createTextNode( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6308" file="ch22_03.htm" sect="22.2.3. Discussion">
<primary>createElement( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6309" file="ch22_03.htm" sect="22.2.3. Discussion">
<primary>appendChild( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6310" file="ch22_03.htm" sect="22.2.3. Discussion">
<primary>toString( ), XML
documents</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6313" file="ch22_04.htm" sect="22.3.1. Problem">
<primary>parsing</primary>
<secondary>XML</secondary>
<tertiary sortas="SAX events">into SAX events</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6314" file="ch22_04.htm" sect="22.3.1. Problem">
<primary>SAX (Simple API
for XML)</primary>
<secondary>events, parsing XML
into</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6315" file="ch22_04.htm" sect="22.3.1. Problem">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>parsing</secondary>
<tertiary sortas="SAX events">into SAX events</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6316" file="ch22_04.htm" sect="22.3.1. Problem">
<primary>Simple API for XML
(SAX)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6317" file="ch22_04.htm" sect="22.3.1. Problem">
<primary>SAX (Simple API for
XML)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6318" file="ch22_04.htm" sect="22.3.1. Problem">
<primary>memory</primary>
<secondary>event-based XML
parsing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6319" file="ch22_04.htm" sect="22.3.1. Problem">
<primary>performance</primary>
<secondary>event-based XML
parsing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6320" file="ch22_04.htm" sect="22.3.2. Solution">
<primary>XML::SAX
module</primary>
<secondary>parsing XML into SAX
events</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6321" file="ch22_04.htm" sect="22.3.3. Discussion">
<primary>XML::Parser module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6322" file="ch22_04.htm" sect="22.3.3. Discussion">
<primary>XML::LibXML module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6323" file="ch22_04.htm" sect="22.3.3. Discussion">
<primary>XML::SAX::PurePerl
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6324" file="ch22_04.htm" sect="22.3.3. Discussion">
<primary>XML::SAX
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6325" file="ch22_04.htm" sect="22.3.3. Discussion">
<primary>XML::SAX::ParserFactory
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6326" file="ch22_04.htm" sect="22.3.3. Discussion">
<primary>XML::SAX::Base
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6327" file="ch22_04.htm" sect="22.3.3. Discussion">
<primary>methods</primary>
<secondary>XML::SAX::Base</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6331" file="ch22_05.htm" sect="22.4.1. Problem">
<primary>XML
(Extensible Markup
Language)</primary>
<secondary>filtering</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6332" file="ch22_05.htm" sect="22.4.1. Problem">
<primary>filtering</primary>
<secondary>XML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6333" file="ch22_05.htm" sect="22.4.1. Problem">
<primary>XML
documents</primary>
<secondary>changing elements or
text</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6334" file="ch22_05.htm" sect="22.4.2. Solution">
<primary>XML::SAX::Machines module, filtering
XML</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6338" file="ch22_06.htm" sect="22.5.1. Problem">
<primary>XML
(Extensible Markup
Language)</primary>
<secondary>validating</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6339" file="ch22_06.htm" sect="22.5.2. Solution">
<primary>XML::LibXML
module</primary>
<secondary>validating XML against
DTD</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6340" file="ch22_06.htm" sect="22.5.2. Solution">
<primary>XML::Xerces module, validating XML
against W3C Schema</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6341" file="ch22_06.htm" sect="22.5.3. Discussion">
<primary>libxml2 library</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6342" file="ch22_06.htm" sect="22.5.3. Discussion">
<primary>validation( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6343" file="ch22_06.htm" sect="22.5.3. Discussion">
<primary>libraries</primary>
<secondary>libxml2</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6344" file="ch22_06.htm" sect="22.5.3. Discussion">
<primary>DOM (Document Object
Model)</primary>
<secondary>trees</secondary>
<tertiary>building while
validating XML</tertiary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6346" file="ch22_07.htm" sect="22.6.1. Problem">
<primary>XML
documents</primary>
<secondary>finding elements and
text</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6347" file="ch22_07.htm" sect="22.6.1. Problem">
<primary>finding</primary>
<secondary>text and
elements in XML documents</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6348" file="ch22_07.htm" sect="22.6.2. Solution">
<primary>XML::LibXML
module</primary>
<secondary>finding elements and text in XML
documents</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6349" file="ch22_07.htm" sect="22.6.3. Discussion">
<primary>findnodes( ) vs.
getElementsByTagName( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6350" file="ch22_07.htm" sect="22.6.3. Discussion">
<primary>getElementsByTagName( )</primary>
<secondary sortas="findnodes( )">vs. findnodes( )</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6351" file="ch22_07.htm" sect="22.6.3. Discussion">
<primary>XPath</primary>
<secondary>expressions</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6352" file="ch22_07.htm" sect="22.6.3. Discussion">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>documents</secondary>
<see>XML
documents</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6355" file="ch22_08.htm" sect="22.7.1. Problem">
<primary>XSLT
(XML Stylesheet Language for
Transformations)</primary>
<secondary>processing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6356" file="ch22_08.htm" sect="22.7.1. Problem">
<primary>processes</primary>
<secondary>XSLT,
processing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6357" file="ch22_08.htm" sect="22.7.2. Solution">
<primary>XML::LibXSLT
module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6358" file="ch22_08.htm" sect="22.7.3. Discussion">
<primary>output_file( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6359" file="ch22_08.htm" sect="22.7.3. Discussion">
<primary>output_fh( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6360" file="ch22_08.htm" sect="22.7.3. Discussion">
<primary>register_function( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6361" file="ch22_08.htm" sect="22.7.3. Discussion">
<primary>get_request( )</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6364" file="ch22_09.htm" sect="22.8.1. Problem">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>files, larger than available memory,
processing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6365" file="ch22_09.htm" sect="22.8.1. Problem">
<primary>files</primary>
<secondary>XML, larger than
available memory, processing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6366" file="ch22_09.htm" sect="22.8.1. Problem">
<primary>processes</primary>
<secondary>large XML files,
processing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6367" file="ch22_09.htm" sect="22.8.2. Solution">
<primary>XML::Twig module, processing large XML
files</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6368" file="ch22_10.htm" sect="22.9.1. Problem">
<primary>files</primary>
<secondary>RSS,
reading and writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6369" file="ch22_10.htm" sect="22.9.1. Problem">
<primary>RSS (Rich Site
Summary)</primary>
<secondary>files, reading and
writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6370" file="ch22_10.htm" sect="22.9.1. Problem">
<primary>reading and
writing</primary>
<secondary>RSS files</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6371" file="ch22_10.htm" sect="22.9.1. Problem">
<primary>RSS (Rich Site
Summary)</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6372" file="ch22_10.htm" sect="22.9.1. Problem">
<primary>Rich Site
Summary</primary>
<see>RSS</see>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6373" file="ch22_10.htm" sect="22.9.2. Solution">
<primary>XML::RSS module</primary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6377" file="ch22_11.htm" sect="22.10.1. Problem">
<primary>XML (Extensible Markup
Language)</primary>
<secondary>writing</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6378" file="ch22_11.htm" sect="22.10.1. Problem">
<primary>writing</primary>
<secondary>XML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6379" file="ch22_11.htm" sect="22.10.2. Solution">
<primary>XML::Simple
module</primary>
<secondary>writing XML</secondary>
</indexterm>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="perlckbk2-CHP-22-ITERM-6380" file="ch22_11.htm" sect="22.10.2. Solution">
<primary>XMLout( ), writing XML</primary>
</indexterm>
