<?xml version="1.0"?>
<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-958" file="ch02_01.htm" sect="2.1. The Cure for the Common Code">
<primary>code</primary>
<secondary>ways to
share</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-959" file="ch02_01.htm" sect="2.1. The Cure for the Common Code">
<primary>programs</primary>
<secondary>sharing
code</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-960" file="ch02_01.htm" sect="2.1. The Cure for the Common Code">
<primary>shifting</primary>
<secondary>argument
parsing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-961" file="ch02_01.htm" sect="2.1. The Cure for the Common Code">
<primary>parsing</primary>
<secondary>shifting
style</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-962" file="ch02_01.htm" sect="2.1. The Cure for the Common Code">
<primary>@_
array</primary>
<secondary>removing items
from</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-963" file="ch02_02.htm" sect="2.2. Inserting Code with eval">
<primary>eval function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-964" file="ch02_02.htm" sect="2.2. Inserting Code with eval">
<primary>syntax
errors</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-965" file="ch02_02.htm" sect="2.2. Inserting Code with eval">
<primary sortas="@ variable">$@
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-966" file="ch02_02.htm" sect="2.2. Inserting Code with eval">
<primary>subroutines</primary>
<secondary>syntax
errors and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-967" file="ch02_02.htm" sect="2.2. Inserting Code with eval">
<primary>eval function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-968" file="ch02_03.htm" sect="2.3. Using do">
<primary>do
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-969" file="ch02_03.htm" sect="2.3. Using do">
<primary>variables</primary>
<secondary>my
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-970" file="ch02_03.htm" sect="2.3. Using do">
<primary>my
variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-971" file="ch02_03.htm" sect="2.3. Using do">
<primary>lexical
variables</primary>
<secondary>defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-972" file="ch02_03.htm" sect="2.3. Using do">
<primary>scope</primary>
<secondary>do
operator and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-973" file="ch02_03.htm" sect="2.3. Using do">
<primary sortas="plx extension">.plx (Perl Executable)
extension</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-974" file="ch02_03.htm" sect="2.3. Using do">
<primary sortas="pl extension">.pl (Perl Library) extension</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-976" file="ch02_04.htm" sect="2.4. Using require">
<primary>warnings, enabling</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-977" file="ch02_04.htm" sect="2.4. Using require">
<primary>require
operator</primary>
<secondary>functionality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-978" file="ch02_04.htm" sect="2.4. Using require">
<primary>libraries</primary>
<secondary>loading only
once</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-979" file="ch02_04.htm" sect="2.4. Using require">
<primary>require operator</primary>
<secondary>syntax
errors and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-980" file="ch02_04.htm" sect="2.4. Using require">
<primary>syntax
errors</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-981" file="ch02_04.htm" sect="2.4. Using require">
<primary sortas="@ variable">$@ variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-982" file="ch02_04.htm" sect="2.4. Using require">
<primary>require
operator</primary>
<secondary>functionality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-983" file="ch02_05.htm" sect="2.5. require and @INC">
<primary sortas="INC array">@INC array</primary>
<secondary>require operator
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-984" file="ch02_05.htm" sect="2.5. require and @INC">
<primary>require
operator</primary>
<secondary>@INC
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-985" file="ch02_05.htm" sect="2.5. require and @INC">
<primary>current
directory</primary>
<secondary>search path
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-986" file="ch02_05.htm" sect="2.5. require and @INC">
<primary>search
path</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-987" file="ch02_05.htm" sect="2.5. require and @INC">
<primary>libraries</primary>
<secondary>search
path for</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-988" file="ch02_05.htm" sect="2.5. require and @INC">
<primary>PATH environment
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-989" file="ch02_05.htm" sect="2.5. require and @INC">
<primary>current directory</primary>
<secondary sortas="INC">@INC array
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-990" file="ch02_05.htm" sect="2.5. require and @INC">
<primary>perl
command</primary>
<secondary>-V command line
option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-991" file="ch02_05.htm" sect="2.5.1. Extending @INC">
<primary>push
function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-992" file="ch02_05.htm" sect="2.5.1. Extending @INC">
<primary>unshift
function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-993" file="ch02_05.htm" sect="2.5.2. Extending @INC with PERL5LIB">
<primary>PERL5LIB environment
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-994" file="ch02_05.htm" sect="2.5.2. Extending @INC with PERL5LIB">
<primary>directories</primary>
<secondary>separating with
colon</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-995" file="ch02_05.htm" sect="2.5.2. Extending @INC with PERL5LIB">
<primary>:
(colon)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-996" file="ch02_05.htm" sect="2.5.3. Extending @INC with -I">
<primary>perl command</primary>
<secondary>-I
option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1001" file="ch02_06.htm" sect="2.6. The Problem of Namespace Collisions">
<primary>collisions,
namespace</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1002" file="ch02_06.htm" sect="2.6. The Problem of Namespace Collisions">
<primary>namespaces</primary>
<secondary>problems
with collisions</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1003" file="ch02_06.htm" sect="2.6. The Problem of Namespace Collisions">
<primary>prefixes, explicit</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1006" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>namespaces</primary>
<secondary>packages
as separators</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1007" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>packages</primary>
<secondary sortas="namespace">as namespace separators</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1008" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>_
(underscore)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1009" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>packages</primary>
<secondary>naming
considerations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1010" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>modules</primary>
<secondary>core
modules</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1011" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>core
modules</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1012" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>:: (double
colon)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1013" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>filehandles</primary>
<secondary>package names
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1014" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>subroutines</primary>
<secondary>package
names
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1015" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>hashes</primary>
<secondary>package
names
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1016" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>arrays</primary>
<secondary>package
names
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1017" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>scalars</primary>
<secondary>package
names and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1018" file="ch02_07.htm" sect="2.7. Packages as Namespace Separators">
<primary>packages</primary>
<secondary>main program
in</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1021" file="ch02_08.htm" sect="2.8. Scope of a Package Directive">
<primary>packages</primary>
<secondary>scope of
directives</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1022" file="ch02_08.htm" sect="2.8. Scope of a Package Directive">
<primary>variables</primary>
<secondary>my
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1023" file="ch02_08.htm" sect="2.8. Scope of a Package Directive">
<primary>my
variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1024" file="ch02_08.htm" sect="2.8. Scope of a Package Directive">
<primary>packages</primary>
<secondary>scope of
directives</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1025" file="ch02_09.htm" sect="2.9. Packages and Lexicals">
<primary>packages</primary>
<secondary>global
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1026" file="ch02_09.htm" sect="2.9. Packages and Lexicals">
<primary>variables</primary>
<secondary>global
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1027" file="ch02_09.htm" sect="2.9. Packages and Lexicals">
<primary>global
variables</primary>
<secondary>package variables
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1028" file="ch02_09.htm" sect="2.9. Packages and Lexicals">
<primary>lexical
variables</primary>
<secondary>packages
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1029" file="ch02_09.htm" sect="2.9. Packages and Lexicals">
<primary>packages</primary>
<secondary>lexicals
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1030" file="ch02_09.htm" sect="2.9. Packages and Lexicals">
<primary>lexical variables</primary>
<secondary>packages
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-2-ITERM-1031" file="ch02_09.htm" sect="2.9. Packages and Lexicals">
<primary>packages</primary>
<secondary>lexicals
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1032" file="ch03_01.htm" sect="3. Introduction to References">
<primary>hashes</primary>
<secondary>scalars
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1033" file="ch03_01.htm" sect="3. Introduction to References">
<primary>ordered
lists</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1034" file="ch03_01.htm" sect="3. Introduction to References">
<primary>arrays</primary>
<secondary>scalars
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1035" file="ch03_01.htm" sect="3. Introduction to References">
<primary>arrays</primary>
<secondary>ordered
lists
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1036" file="ch03_01.htm" sect="3. Introduction to References">
<primary>scalars</primary>
<secondary>single
values and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1037" file="ch03_01.htm" sect="3. Introduction to References">
<primary>references</primary>
<secondary>overview</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1038" file="ch03_01.htm" sect="3.1. Performing the Same Task on Many Arrays">
<primary>grep operator</primary>
<secondary>scalar context
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1039" file="ch03_01.htm" sect="3.1. Performing the Same Task on Many Arrays">
<primary>shifting</primary>
<secondary>@_
array</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1040" file="ch03_01.htm" sect="3.1. Performing the Same Task on Many Arrays">
<primary>parsing</primary>
<secondary>shifting
style</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1041" file="ch03_01.htm" sect="3.1. Performing the Same Task on Many Arrays">
<primary>shifting</primary>
<secondary>argument
parsing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1042" file="ch03_01.htm" sect="3.1. Performing the Same Task on Many Arrays">
<primary>@_
array</primary>
<secondary>creating</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1043" file="ch03_01.htm" sect="3.1. Performing the Same Task on Many Arrays">
<primary>@_
array</primary>
<secondary>changes reflected</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1044" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>passing by
reference</primary>
<see>references</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1045" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>\
(backslash)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1046" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary sortas="take a reference to operator">&quot;take a reference to&quot;
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1047" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>references</primary>
<seealso>array reference blessed
references dereferencing hash reference</seealso>
<see>also array
reference blessed references dereferencing hash
reference</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1048" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>arrays</primary>
<secondary>referencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1049" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>scalars</primary>
<secondary>references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1050" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>hashes</primary>
<secondary>references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1051" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>variables</primary>
<secondary>memory addresses
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1052" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>memory
addresses</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1053" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>hexadecimal memory
address</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1054" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>ARRAY(0x1a2b3c)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1055" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>array
reference</primary>
<secondary>features</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1056" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>array
reference</primary>
<secondary>features</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1057" file="ch03_02.htm" sect="3.2. Taking a Reference to an Array">
<primary>arrays</primary>
<secondary>referencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1058" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>arrays</primary>
<secondary>referencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1059" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>{}
(curly braces)</primary>
<secondary>arrays
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1060" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>array
reference</primary>
<secondary>dereferencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1061" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>dereferencing</primary>
<secondary>array
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1062" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>arrays</primary>
<secondary>curly
braces</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1063" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>programs</primary>
<secondary>whitespace</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1064" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>whitespace</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1065" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>@_ array</primary>
<secondary>dereferencing
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1066" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>code</primary>
<secondary>decoupling</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1067" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>arrays</primary>
<secondary>referencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1068" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>shifting</primary>
<secondary>example
eliminating</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1069" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>array
reference</primary>
<secondary>dereferencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1070" file="ch03_03.htm" sect="3.3. Dereferencing the Array Reference">
<primary>dereferencing</primary>
<secondary>array
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1071" file="ch03_04.htm" sect="3.4. Dropping Those Braces">
<primary>array reference</primary>
<secondary>curly braces
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1072" file="ch03_04.htm" sect="3.4. Dropping Those Braces">
<primary>{} (curly
braces)</primary>
<secondary>dropping</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1073" file="ch03_04.htm" sect="3.4. Dropping Those Braces">
<primary>{} (curly
braces)</primary>
<secondary>dropping</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1074" file="ch03_04.htm" sect="3.4. Dropping Those Braces">
<primary>array
reference</primary>
<secondary>curly braces
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1075" file="ch03_05.htm" sect="3.5. Modifying the Array">
<primary>array
reference</primary>
<secondary>modifying</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1076" file="ch03_05.htm" sect="3.5. Modifying the Array">
<primary>arrays</primary>
<secondary>modifying</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1077" file="ch03_05.htm" sect="3.5. Modifying the Array">
<primary>arrays</primary>
<secondary>dereferencing
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1078" file="ch03_05.htm" sect="3.5. Modifying the Array">
<primary>arrays</primary>
<secondary>modifying</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1079" file="ch03_05.htm" sect="3.5. Modifying the Array">
<primary>array
reference</primary>
<secondary>modifying</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1080" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>@_ array</primary>
<secondary>nested data
structures</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1081" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>arrays</primary>
<secondary>nested
data structures and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1082" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>nested
entities</primary>
<secondary>data
structures</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1083" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>data
structures</primary>
<secondary>nested</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1084" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>array
reference</primary>
<secondary>nested data
structures</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1085" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>dereferencing</primary>
<secondary>array
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1086" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>array
reference</primary>
<secondary>dereferencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1087" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>nested entities</primary>
<secondary>data
structures</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1088" file="ch03_06.htm" sect="3.6. Nested Data Structures">
<primary>data
structures</primary>
<secondary>nested</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1090" file="ch03_07.htm" sect="3.7. Simplifying Nested Element References with Arrows">
<primary>array reference</primary>
<secondary>arrows
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1091" file="ch03_07.htm" sect="3.7. Simplifying Nested Element References with Arrows">
<primary>nested
entities</primary>
<secondary>element
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1092" file="ch03_07.htm" sect="3.7. Simplifying Nested Element References with Arrows">
<primary>{} (curly
braces)</primary>
<secondary>dereferencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1093" file="ch03_07.htm" sect="3.7. Simplifying Nested Element References with Arrows">
<primary>arrows</primary>
<secondary>drop arrow
rule</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1094" file="ch03_07.htm" sect="3.7. Simplifying Nested Element References with Arrows">
<primary>drop arrow
rule</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1095" file="ch03_07.htm" sect="3.7. Simplifying Nested Element References with Arrows">
<primary>array reference</primary>
<secondary>arrows
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1096" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary sortas="take a reference to operator">&quot;take a
reference to&quot; operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1097" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>\
(backslash)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1098" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>hash
reference</primary>
<secondary>features</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1099" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>dereferencing</primary>
<secondary>hash
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1100" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>hash
reference</primary>
<secondary>dereferencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1101" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>{}
(curly braces)</primary>
<secondary>hashes
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1102" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>arrows</primary>
<secondary>hash references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1103" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>arrows</primary>
<secondary>hash references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1104" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>hexadecimal memory address</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1105" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>HASH(0x1a2b3c)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1106" file="ch03_08.htm" sect="3.8. References to Hashes">
<primary>memory
addresses</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1109" file="ch03_09.htm" sect="3.9.2. Exercise 2 [30 min]">
<primary>hash reference</primary>
<secondary sortas="parameters">as
parameters</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-3-ITERM-1110" file="ch03_09.htm" sect="3.9.2. Exercise 2 [30 min]">
<primary>parameters</primary>
<secondary>hash
references as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1111" file="ch04_01.htm" sect="4. References and Scoping">
<primary>data structures</primary>
<secondary>references to
anonymous</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1112" file="ch04_01.htm" sect="4. References and Scoping">
<primary>scope</primary>
<secondary>references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1113" file="ch04_01.htm" sect="4. References and Scoping">
<primary>references</primary>
<secondary>scoping
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1114" file="ch04_01.htm" sect="4.1. More than One Reference to Data">
<primary>reference
counting</primary>
<secondary>defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1115" file="ch04_01.htm" sect="4.1. More than One Reference to Data">
<primary>@_ array</primary>
<secondary>references and
scoping</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1116" file="ch04_01.htm" sect="4.1. More than One Reference to Data">
<primary>lexical variables</primary>
<secondary>reference
longevity</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1117" file="ch04_02.htm" sect="4.2. What if That Was the Name?">
<primary>variables</primary>
<secondary>reference removal
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1118" file="ch04_02.htm" sect="4.2. What if That Was the Name?">
<primary>anonymous
arrays</primary>
<secondary>defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1119" file="ch04_02.htm" sect="4.2. What if That Was the Name?">
<primary>dereferencing</primary>
<secondary>array
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1120" file="ch04_02.htm" sect="4.2. What if That Was the Name?">
<primary>array
reference</primary>
<secondary>dereferencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1121" file="ch04_02.htm" sect="4.2. What if That Was the Name?">
<primary>arrays</primary>
<secondary>dereferencing
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1122" file="ch04_02.htm" sect="4.2. What if That Was the Name?">
<primary>variables</primary>
<secondary>reference removal
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1123" file="ch04_03.htm" sect="4.3. Reference Counting and Nested Data Structures">
<primary>data
structures</primary>
<secondary>nested</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1124" file="ch04_03.htm" sect="4.3. Reference Counting and Nested Data Structures">
<primary>nested
entities</primary>
<secondary>data
structures</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1125" file="ch04_03.htm" sect="4.3. Reference Counting and Nested Data Structures">
<primary>reference
counting</primary>
<secondary>nested data structures
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1129" file="ch04_04.htm" sect="4.4. When Reference Counting Goes Bad">
<primary>memory
management</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1130" file="ch04_04.htm" sect="4.4. When Reference Counting Goes Bad">
<primary>reference
counting</primary>
<secondary>memory management
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1131" file="ch04_04.htm" sect="4.4. When Reference Counting Goes Bad">
<primary>looping (data
structure)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1132" file="ch04_04.htm" sect="4.4. When Reference Counting Goes Bad">
<primary>data
structures</primary>
<secondary>looping
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1133" file="ch04_04.htm" sect="4.4. When Reference Counting Goes Bad">
<primary>looping (data
structure)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1134" file="ch04_04.htm" sect="4.4. When Reference Counting Goes Bad">
<primary>data
structures</primary>
<secondary>looping and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1135" file="ch04_04.htm" sect="4.4. When Reference Counting Goes Bad">
<primary>reference counting</primary>
<secondary>garbage
collection and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1136" file="ch04_04.htm" sect="4.4. When Reference Counting Goes Bad">
<primary>garbage
collection</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1139" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>arrays</primary>
<seealso>anonymous
arrays</seealso>
<see>also anonymous
arrays</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1140" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>anonymous
arrays</primary>
<secondary>creating
directly</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1141" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>arrays</primary>
<secondary>scoping
considerations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1142" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>anonymous arrays</primary>
<secondary>square
brackets and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1143" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>[] (square
brackets)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1144" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>constructors</primary>
<secondary>anonymous
array</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1145" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>array reference</primary>
<secondary>anonymous
array constructors and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1146" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>()
(parentheses)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1147" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>[] (square
brackets)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1148" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>array reference</primary>
<secondary>anonymous
array constructors
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1149" file="ch04_05.htm" sect="4.5. Creating an Anonymous Array Directly">
<primary>constructors</primary>
<secondary>anonymous
array</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1151" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>anonymous
hash</primary>
<secondary>creating</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1152" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>hash reference</primary>
<secondary>anonymous hash
constructors</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1153" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>anonymous
arrays</primary>
<secondary>hash references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1154" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>constructors</primary>
<secondary>anonymous
hash</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1155" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>{} (curly
braces)</primary>
<secondary>anonymous hash
constructors</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1156" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>constructors</primary>
<secondary>anonymous
hash</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1157" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>scalars</primary>
<secondary>hash references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1158" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>, (comma)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1159" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>constructors</primary>
<secondary>anonymous
hash</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1160" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>key/value
pairs</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1161" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>;
(semicolon)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1162" file="ch04_06.htm" sect="4.6. Creating an Anonymous Hash">
<primary>+ (plus
sign)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1164" file="ch04_07.htm" sect="4.7. Autovivification">
<primary>autovivification</primary>
<secondary>process
defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1165" file="ch04_07.htm" sect="4.7. Autovivification">
<primary>programs</primary>
<secondary>whitespace</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1166" file="ch04_07.htm" sect="4.7. Autovivification">
<primary>whitespace</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1167" file="ch04_07.htm" sect="4.7. Autovivification">
<primary>array reference</primary>
<secondary>empty arrays
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1168" file="ch04_07.htm" sect="4.7. Autovivification">
<primary>undef
(value)</primary>
<secondary>autovivification
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1170" file="ch04_08.htm" sect="4.8. Autovivification and Hashes">
<primary>hash
reference</primary>
<secondary>autovivification
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1171" file="ch04_08.htm" sect="4.8. Autovivification and Hashes">
<primary>autovivification</primary>
<secondary>hash
references and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1176" file="ch04_09.htm" sect="4.9.2. Exercise 2 [30 min]">
<primary># (pound
sign)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-4-ITERM-1177" file="ch04_09.htm" sect="4.9.2. Exercise 2 [30 min]">
<primary>comments</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1178" file="ch05_01.htm" sect="5. Manipulating Complex Data Structures">
<primary>data
structures</primary>
<secondary>manipulating</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1179" file="ch05_01.htm" sect="5. Manipulating Complex Data Structures">
<primary>complex data
structures</primary>
<see>data structures</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1180" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>viewing data</primary>
<secondary sortas="debugger">with debugger</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1181" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>data</primary>
<secondary>viewing
with debugger</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1182" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>debugging</primary>
<secondary>viewing
complex data</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1183" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>perl command</primary>
<secondary>-d
option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1184" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>s command
(debugger)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1185" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>debugging</primary>
<secondary>x
command</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1186" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>x command
(debugger)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1187" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>hash reference</primary>
<secondary>debugging
example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1188" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>hash reference</primary>
<secondary>debugging
example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1189" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>looping (code
structure)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1190" file="ch05_01.htm" sect="5.1. Using the Debugger to View Complex Data">
<primary>hash reference</primary>
<secondary>debugging
example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1194" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>viewing
data</primary>
<secondary>Data::Dumper</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1195" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>data</primary>
<secondary>viewing
with
Data::Dumper</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1196" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>Data::Dumper
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1197" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>debugging</primary>
<secondary>x
command</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1198" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>x command
(debugger)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1199" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>Dumper
subroutine</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1200" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>hash reference</primary>
<secondary>Data::Dumper
example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1201" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>viewing
data</primary>
<secondary>Data::Dumper</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1202" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>data</primary>
<secondary>viewing
with
Data::Dumper</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1203" file="ch05_02.htm" sect="5.2. Viewing Complex Data with Data::Dumper">
<primary>Data::Dumper
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1204" file="ch05_03.htm" sect="5.3. Storing Complex Data with Storable">
<primary>data</primary>
<secondary>storing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1205" file="ch05_03.htm" sect="5.3. Storing Complex Data with Storable">
<primary>storing
data</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1206" file="ch05_03.htm" sect="5.3. Storing Complex Data with Storable">
<primary>Storable
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1210" file="ch05_04.htm" sect="5.4. The map and grep Operators">
<primary>map
operator</primary>
<secondary>functionality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1211" file="ch05_04.htm" sect="5.4. The map and grep Operators">
<primary>grep
operator</primary>
<secondary>functionality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1212" file="ch05_04.htm" sect="5.4. The map and grep Operators">
<primary>testing expression (of map or
grep)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1213" file="ch05_04.htm" sect="5.4. The map and grep Operators">
<primary>grep
operator</primary>
<secondary>scalar context
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1214" file="ch05_04.htm" sect="5.4. The map and grep Operators">
<primary>block form</primary>
<secondary>grep
operator</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1215" file="ch05_04.htm" sect="5.4. The map and grep Operators">
<primary>expression
form</primary>
<secondary>grep operator</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1217" file="ch05_05.htm" sect="5.5. Using map">
<primary>block form</primary>
<secondary>map
operator</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1218" file="ch05_05.htm" sect="5.5. Using map">
<primary>expression
form</primary>
<secondary>map operator</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1219" file="ch05_05.htm" sect="5.5. Using map">
<primary>testing expression (of map or
grep)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1220" file="ch05_05.htm" sect="5.5. Using map">
<primary>map
operator</primary>
<secondary>scalar
context</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1221" file="ch05_05.htm" sect="5.5. Using map">
<primary>hashes</primary>
<secondary>map operator
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1223" file="ch05_06.htm" sect="5.6. Applying a Bit of Indirection">
<primary>indirection</primary>
<secondary>applying</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1224" file="ch05_06.htm" sect="5.6. Applying a Bit of Indirection">
<primary>grep operator</primary>
<secondary>indirection
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1225" file="ch05_06.htm" sect="5.6. Applying a Bit of Indirection">
<primary>map operator</primary>
<secondary>indirection
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1227" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>data</primary>
<secondary>selecting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1228" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>grep operator</primary>
<secondary>selecting
complex data</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1229" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>array reference</primary>
<secondary>hashes
into</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1230" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>hashes</primary>
<secondary>references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1231" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>constructors</primary>
<secondary>anonymous
array</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1232" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>map operator</primary>
<secondary>selecting
complex data</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1233" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>map
operator</primary>
<seealso>Schwartzian
Transform</seealso>
<see>also Schwartzian Transform</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1234" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>grep operator</primary>
<seealso>Schwartzian
Transform</seealso>
<see>also Schwartzian
Transform</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1235" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>data</primary>
<secondary>selecting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-5-ITERM-1236" file="ch05_07.htm" sect="5.7. Selecting and Altering Complex Data">
<primary>anonymous
arrays</primary>
<secondary>complex data
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1238" file="ch06_01.htm" sect="6. Subroutine References">
<primary>data structures</primary>
<secondary>references to
subroutines</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1239" file="ch06_01.htm" sect="6. Subroutine References">
<primary>variables</primary>
<secondary sortas="repository">as repository of
values</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1240" file="ch06_01.htm" sect="6. Subroutine References">
<primary>behavior</primary>
<secondary>subroutine
references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1241" file="ch06_01.htm" sect="6. Subroutine References">
<primary>programs</primary>
<secondary>behaviors
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1242" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>code
references</primary>
<secondary>overview</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1243" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>subroutine
references</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1244" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>references</primary>
<secondary>named
subroutines</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1245" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>subroutines</primary>
<secondary>referencing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1246" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary sortas="take a reference to operator">&quot;take a
reference to&quot; operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1247" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>\
(backslash)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1248" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>&amp;
(ampersand)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1249" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>()
(parentheses)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1250" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>dereferencing</primary>
<secondary>coderefs</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1251" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>{} (curly braces)</primary>
<secondary>coderefs
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1252" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>scalars</primary>
<secondary>curly braces
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1253" file="ch06_01.htm" sect="6.1. Referencing a Named Subroutine">
<primary>dereferencing</primary>
<secondary>coderefs</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1255" file="ch06_02.htm" sect="6.2. Anonymous Subroutines">
<primary>anonymous subroutines</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1256" file="ch06_02.htm" sect="6.2. Anonymous Subroutines">
<primary>anonymous subroutines</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1257" file="ch06_03.htm" sect="6.3. Callbacks">
<primary>callbacks</primary>
<secondary>subroutine
references and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1258" file="ch06_03.htm" sect="6.3. Callbacks">
<primary>File::Find
module</primary>
<secondary>features</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1259" file="ch06_03.htm" sect="6.3. Callbacks">
<primary>find
subroutine
(File::Find)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1260" file="ch06_03.htm" sect="6.3. Callbacks">
<primary>filesystems</primary>
<secondary>walking
through hierarchy</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1261" file="ch06_03.htm" sect="6.3. Callbacks">
<primary>filesystems</primary>
<secondary>walking through
hierarchy</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1262" file="ch06_03.htm" sect="6.3. Callbacks">
<primary>behavior</primary>
<secondary>passing as
parameter</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1263" file="ch06_03.htm" sect="6.3. Callbacks">
<primary>callbacks</primary>
<secondary>subroutine
references and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1264" file="ch06_04.htm" sect="6.4. Closures">
<primary>find
subroutine (File::Find)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1265" file="ch06_04.htm" sect="6.4. Closures">
<primary>files</primary>
<secondary>find
subroutine</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1266" file="ch06_04.htm" sect="6.4. Closures">
<primary>File::Find
module</primary>
<secondary>features</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1267" file="ch06_04.htm" sect="6.4. Closures">
<primary>closures</primary>
<secondary>functionality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1268" file="ch06_04.htm" sect="6.4. Closures">
<primary>working
directory</primary>
<see>current
directory</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1269" file="ch06_04.htm" sect="6.4. Closures">
<primary>search
path</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1270" file="ch06_04.htm" sect="6.4. Closures">
<primary>current
directory</primary>
<secondary>search path
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1271" file="ch06_04.htm" sect="6.4. Closures">
<primary>current
directory</primary>
<secondary>find( ) function
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1272" file="ch06_04.htm" sect="6.4. Closures">
<primary>callbacks</primary>
<secondary>find(
) function and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1273" file="ch06_04.htm" sect="6.4. Closures">
<primary>lexical variables</primary>
<secondary>subroutine
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1274" file="ch06_04.htm" sect="6.4. Closures">
<primary>dereferencing</primary>
<secondary>lexical
variables and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1275" file="ch06_04.htm" sect="6.4. Closures">
<primary>current
directory</primary>
<secondary>find( ) function
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1276" file="ch06_04.htm" sect="6.4. Closures">
<primary>callbacks</primary>
<secondary>find(
) function and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1277" file="ch06_04.htm" sect="6.4. Closures">
<primary>variables</primary>
<secondary>out of
scope</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1278" file="ch06_04.htm" sect="6.4. Closures">
<primary>callbacks</primary>
<secondary>accessing
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1279" file="ch06_04.htm" sect="6.4. Closures">
<primary>variables</primary>
<secondary>callbacks
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1280" file="ch06_04.htm" sect="6.4. Closures">
<primary>subroutines</primary>
<seealso>closures</seealso>
<see>also
closures</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1281" file="ch06_04.htm" sect="6.4. Closures">
<primary>lexical
variables</primary>
<secondary>closures and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1282" file="ch06_04.htm" sect="6.4. Closures">
<primary>; (semicolon)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1283" file="ch06_04.htm" sect="6.4. Closures">
<primary>scalars</primary>
<secondary>anonymous</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1284" file="ch06_04.htm" sect="6.4. Closures">
<primary>variables</primary>
<secondary>out
of scope</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1289" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>return values</primary>
<secondary>subroutine
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1290" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>lexical
variables</primary>
<secondary>subroutine
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1291" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>variables</primary>
<secondary>out
of scope</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1292" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>reference counting</primary>
<secondary>closures
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1293" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>variables</primary>
<secondary>callbacks
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1294" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>parameters</primary>
<secondary>callbacks
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1295" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>callbacks</primary>
<secondary>accessing
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1296" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>parameters</primary>
<secondary>callbacks
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1297" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>variables</primary>
<secondary>out of
scope</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1298" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>callbacks</primary>
<secondary>invoking
subroutines multiple times</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1299" file="ch06_05.htm" sect="6.5. Returning a Subroutine from a Subroutine">
<primary>reference counting</primary>
<secondary>subroutine
reference example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1300" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>shifting</primary>
<secondary>closure
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1301" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>variables</primary>
<secondary>out of
scope</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1302" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>scope</primary>
<secondary>global
variables
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1303" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>closures</primary>
<secondary>scope
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1304" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>packages</primary>
<secondary>global
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1305" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>variables</primary>
<secondary>global
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1306" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>global
variables</primary>
<secondary>scope
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1307" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>closures</primary>
<secondary>lexical
variables and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1308" file="ch06_06.htm" sect="6.6. Closure Variables as Inputs">
<primary>lexical
variables</primary>
<secondary>closures
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1309" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>lexical variables</primary>
<secondary>subroutine
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1310" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>variables</primary>
<secondary>out
of
scope</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1311" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>subroutines</primary>
<secondary>out
of scope variables and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1312" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>variables</primary>
<secondary>static
local</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1313" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>static local
variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1314" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>variables</primary>
<secondary>closure
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1315" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>closure
variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1316" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>closures</primary>
<secondary>persistence
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1317" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>data</primary>
<secondary>storing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1318" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>storing
data</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1319" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>run
phase</primary>
<secondary>storage
allocation</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1320" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>compile
phase</primary>
<secondary>declarations
during</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1321" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>programs</primary>
<secondary>run
phase</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1322" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>programs</primary>
<secondary>compile
phase</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1323" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>undef
(value)</primary>
<secondary>variables with value
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1324" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>BEGIN
block</primary>
<secondary>purpose</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1325" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>compile phase</primary>
<secondary>BEGIN keyword
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1326" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>run
phase</primary>
<secondary>BEGIN keyword
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1327" file="ch06_07.htm" sect="6.7. Closure Variables as Static Local Variables">
<primary>looping (code
structure)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1335" file="ch06_08.htm" sect="6.8.1. Exercise [30 min]">
<primary>return values</primary>
<secondary>coderefs
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1336" file="ch06_08.htm" sect="6.8.1. Exercise [30 min]">
<primary>File::Find
module</primary>
<secondary>returning
coderefs</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1337" file="ch06_08.htm" sect="6.8.1. Exercise [30 min]">
<primary>files</primary>
<secondary>finding
timestamps</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1338" file="ch06_08.htm" sect="6.8.1. Exercise [30 min]">
<primary>timestamps</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1339" file="ch06_08.htm" sect="6.8.1. Exercise [30 min]">
<primary>()
(parentheses)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-6-ITERM-1340" file="ch06_08.htm" sect="6.8.1. Exercise [30 min]">
<primary>daylight savings time
(DST)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1341" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>text
strings</primary>
<secondary>sorting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1342" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>sorting</primary>
<secondary>review
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1343" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>numbers</primary>
<secondary>sorting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1344" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>sorting</primary>
<secondary>sort
blocks</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1345" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>numbers</primary>
<secondary>sorting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1346" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>&lt;=&gt; (spaceship
operator)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1347" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>spaceship
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1348" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>sorting</primary>
<secondary>review
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1349" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>text
strings</primary>
<secondary>cmp
operator</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1350" file="ch07_01.htm" sect="7.1. Review of Sorting">
<primary>cmp
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1351" file="ch07_02.htm" sect="7.2. Sorting with Indices">
<primary>grep operator</primary>
<secondary>indices
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1352" file="ch07_02.htm" sect="7.2. Sorting with Indices">
<primary>sorting</primary>
<secondary sortas="indices">with
indices</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1353" file="ch07_02.htm" sect="7.2. Sorting with Indices">
<primary>indices, sorting
with</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1354" file="ch07_02.htm" sect="7.2. Sorting with Indices">
<primary>indirection</primary>
<secondary>sorting
indices</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1355" file="ch07_02.htm" sect="7.2. Sorting with Indices">
<primary>sorting</primary>
<secondary sortas="indices">with
indices</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1356" file="ch07_02.htm" sect="7.2. Sorting with Indices">
<primary>indices, sorting
with</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1357" file="ch07_03.htm" sect="7.3. Sorting Efficiently">
<primary>sorting</primary>
<secondary>efficient</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1358" file="ch07_03.htm" sect="7.3. Sorting Efficiently">
<primary>array reference</primary>
<secondary>efficient
sorting example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1360" file="ch07_04.htm" sect="7.4. The Schwartzian Transform">
<primary>sorting</primary>
<secondary>Schwartzian
Transform</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1361" file="ch07_04.htm" sect="7.4. The Schwartzian Transform">
<primary>Schwartzian
Transform</primary>
<secondary>sorting and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1362" file="ch07_04.htm" sect="7.4. The Schwartzian Transform">
<primary>array reference</primary>
<secondary>Schwartzian
Transform</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1363" file="ch07_05.htm" sect="7.5. Recursively Defined Data">
<primary>references</primary>
<secondary>hierarchical data
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1364" file="ch07_05.htm" sect="7.5. Recursively Defined Data">
<primary>data
structures</primary>
<secondary>recursively
defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1365" file="ch07_05.htm" sect="7.5. Recursively Defined Data">
<primary>iteration versus
recursion</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1366" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>directories</primary>
<secondary>represented as
hashes</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1367" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>hashes</primary>
<secondary>directories
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1368" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>filesystems</primary>
<secondary>capturing
information about</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1369" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>recursively
defined data</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1370" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>undef (value)</primary>
<secondary>filesystem
capture example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1371" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>hash reference</primary>
<secondary sortas="return values">as return
values</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1372" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>return
values</primary>
<secondary>hash
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1373" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>return
values</primary>
<secondary>undef
example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1374" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>hash reference</primary>
<secondary>filesystem
capture example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1375" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>hashes</primary>
<seealso>anonymous
hash</seealso>
<see>also anonymous
hash</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1376" file="ch07_06.htm" sect="7.6. Building Recursively Defined Data">
<primary>anonymous
hash</primary>
<secondary>filesystem capture
example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1378" file="ch07_07.htm" sect="7.7. Displaying Recursively Defined Data">
<primary>Data::Dumper
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1381" file="ch07_08.htm" sect="7.8.1. Exercise 1 [15 min]">
<primary>sorting</primary>
<secondary>glob
operator</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1382" file="ch07_08.htm" sect="7.8.1. Exercise 1 [15 min]">
<primary>glob
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1383" file="ch07_08.htm" sect="7.8.3. Exercise 3 [10 min]">
<primary>sorting</primary>
<secondary>dictionary
order</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-7-ITERM-1384" file="ch07_08.htm" sect="7.8.3. Exercise 3 [10 min]">
<primary>Schwartzian
Transform</primary>
<secondary>dictionary
order</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1385" file="ch08_01.htm" sect="8. Introduction to Objects">
<primary>OOP
(object-oriented
programming)</primary>
<secondary>overview</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1386" file="ch08_01.htm" sect="8. Introduction to Objects">
<primary>programs</primary>
<seealso>OOP</seealso>
<see>also
OOP</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1387" file="ch08_01.htm" sect="8. Introduction to Objects">
<primary>object-oriented
programming</primary>
<see>OOP</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1388" file="ch08_01.htm" sect="8. Introduction to Objects">
<primary>code</primary>
<seealso>OOP</seealso>
<see>also
OOP</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1389" file="ch08_01.htm" sect="8.1. If We Could Talk to the Animals...">
<primary>use strict</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1390" file="ch08_02.htm" sect="8.2. Introducing the Method Invocation Arrow">
<primary>arrows</primary>
<secondary>method invocation
arrow</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1391" file="ch08_02.htm" sect="8.2. Introducing the Method Invocation Arrow">
<primary>methods</primary>
<secondary>invocation
arrow</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1392" file="ch08_02.htm" sect="8.2. Introducing the Method Invocation Arrow">
<primary>behavior</primary>
<secondary>classes
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1393" file="ch08_02.htm" sect="8.2. Introducing the Method Invocation Arrow">
<primary>classes</primary>
<secondary>defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1394" file="ch08_02.htm" sect="8.2. Introducing the Method Invocation Arrow">
<primary>variables</primary>
<secondary>package
names</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1395" file="ch08_02.htm" sect="8.2. Introducing the Method Invocation Arrow">
<primary>packages</primary>
<secondary>naming
considerations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1396" file="ch08_02.htm" sect="8.2. Introducing the Method Invocation Arrow">
<primary>arrows</primary>
<secondary>method invocation
arrow</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1397" file="ch08_02.htm" sect="8.2. Introducing the Method Invocation Arrow">
<primary>methods</primary>
<secondary>invocation
arrow</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1398" file="ch08_03.htm" sect="8.3. The Extra Parameter of Method Invocation">
<primary>parameters</primary>
<secondary>method invocation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1399" file="ch08_03.htm" sect="8.3. The Extra Parameter of Method Invocation">
<primary>methods</primary>
<secondary>parameters
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1400" file="ch08_03.htm" sect="8.3. The Extra Parameter of Method Invocation">
<primary>parameters</primary>
<secondary>method invocation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1401" file="ch08_03.htm" sect="8.3. The Extra Parameter of Method Invocation">
<primary>methods</primary>
<secondary>parameters
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1402" file="ch08_04.htm" sect="8.4. Calling a Second Method to Simplify Things">
<primary>inheritance</primary>
<secondary>method invocation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1403" file="ch08_04.htm" sect="8.4. Calling a Second Method to Simplify Things">
<primary>methods</primary>
<secondary>inheritance
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1404" file="ch08_04.htm" sect="8.4. Calling a Second Method to Simplify Things">
<primary>parameters</primary>
<secondary>shifting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1405" file="ch08_04.htm" sect="8.4. Calling a Second Method to Simplify Things">
<primary>shifting</primary>
<secondary>arguments</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1406" file="ch08_04.htm" sect="8.4. Calling a Second Method to Simplify Things">
<primary>inheritance</primary>
<secondary>method
invocation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1407" file="ch08_04.htm" sect="8.4. Calling a Second Method to Simplify Things">
<primary>methods</primary>
<secondary>inheritance
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1408" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary sortas="ISA">@ISA
variable</primary>
<secondary>features</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1409" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>inheritance</primary>
<secondary>@ISA variable
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1410" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>AUTOLOAD
method</primary>
<secondary>inheritance
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1411" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>UNIVERSAL
class</primary>
<secondary>inheritance and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1412" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>use
strict</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1413" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>lexical
variables</primary>
<secondary>@ISA
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1414" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>packages</primary>
<secondary>@ISA
variable and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1415" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>packages</primary>
<secondary>@ISA variable
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1416" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>our variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1417" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>variables</primary>
<secondary>our
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1418" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>use
base</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1419" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary>compile
phase</primary>
<secondary>use base
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1420" file="ch08_05.htm" sect="8.5. A Few Notes About @ISA">
<primary sortas="ISA">@ISA
variable</primary>
<secondary>features</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1421" file="ch08_06.htm" sect="8.6. Overriding the Methods">
<primary>overriding</primary>
<secondary>methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1422" file="ch08_06.htm" sect="8.6. Overriding the Methods">
<primary>methods</primary>
<secondary>overriding</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1423" file="ch08_06.htm" sect="8.6. Overriding the Methods">
<primary>code</primary>
<secondary>reusability
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1424" file="ch08_06.htm" sect="8.6. Overriding the Methods">
<primary>inheritance</primary>
<secondary>code
reusability through</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1427" file="ch08_08.htm" sect="8.8. The SUPER Way of Doing Things">
<primary>superclasses</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1428" file="ch08_08.htm" sect="8.8. The SUPER Way of Doing Things">
<primary>SUPER
pseudo-class</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1429" file="ch08_09.htm" sect="8.9. What to Do with @_">
<primary>@_ array</primary>
<secondary>passing
uninterrupted</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1430" file="ch08_09.htm" sect="8.9. What to Do with @_">
<primary>parameters</primary>
<secondary>@_</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1431" file="ch08_09.htm" sect="8.9. What to Do with @_">
<primary>arguments</primary>
<see>parameters</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1432" file="ch08_09.htm" sect="8.9. What to Do with @_">
<primary>parameters</primary>
<secondary>shifting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1433" file="ch08_09.htm" sect="8.9. What to Do with @_">
<primary>shifting</primary>
<secondary>arguments</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1434" file="ch08_10.htm" sect="8.10. Where We Are So Far...">
<primary>arrows</primary>
<secondary>method invocation
arrow</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-8-ITERM-1435" file="ch08_10.htm" sect="8.10. Where We Are So Far...">
<primary>methods</primary>
<secondary>invocation
arrow</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1437" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>instances</primary>
<secondary>defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1438" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>classes</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1439" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>variables</primary>
<secondary>member
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1440" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>member
variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1441" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>variables</primary>
<seealso>instance variables lexical
variables scalars</seealso>
<see>also instance variables lexical
variables scalars</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1442" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>instance
variables</primary>
<secondary>defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1443" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>properties,
instances
and</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1444" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>behavior</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1445" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>references</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1446" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>references</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1447" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>references</primary>
<secondary>bless
operator</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1448" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>variables</primary>
<secondary>bless
operator</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1449" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>objects</primary>
<secondary>bless
operator and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1450" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>instances</primary>
<secondary>defined</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1451" file="ch09_01.htm" sect="9.1. A Horse Is a Horse, of Course of Course&#x2014;or Is It?">
<primary>objects</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1452" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>methods</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1453" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>instance
methods</primary>
<secondary>invoking</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1454" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>instances</primary>
<secondary>blessed references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1455" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>blessed
references</primary>
<secondary>instances
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1456" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>parameters</primary>
<secondary>instance
methods and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1457" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>instances</primary>
<secondary>blessed references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1458" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>blessed
references</primary>
<secondary>instances
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1459" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>methods</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1460" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>instance
methods</primary>
<secondary>invoking</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1461" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>instance
methods</primary>
<secondary>class methods
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1462" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>class
methods</primary>
<secondary>instance methods
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1463" file="ch09_02.htm" sect="9.2. Invoking an Instance Method">
<primary>parameters</primary>
<secondary>instances
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1464" file="ch09_03.htm" sect="9.3. Accessing the Instance Data">
<primary>data</primary>
<secondary>accessing for
instances</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1465" file="ch09_03.htm" sect="9.3. Accessing the Instance Data">
<primary>@_ array</primary>
<secondary>accessing instance
data</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1466" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>class methods</primary>
<secondary>building
instances</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1467" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>parameters</primary>
<seealso>return values</seealso>
<see>also
return values</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1468" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>return
values</primary>
<seealso>parameters</seealso>
<see>also
parameters</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1469" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>return
values</primary>
<secondary>bless operator
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1470" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>references</primary>
<secondary>return
values</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1471" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>blessed
references</primary>
<secondary>returning</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1472" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>instances</primary>
<secondary>building</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1473" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>constructors</primary>
<secondary>creating
instances</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1474" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>new
method</primary>
<secondary>creating
objects</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1475" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>objects</primary>
<secondary>creating</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1476" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>modules</primary>
<secondary>core
modules</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1477" file="ch09_04.htm" sect="9.4. How to Build a Horse">
<primary>core
modules</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1478" file="ch09_05.htm" sect="9.5. Inheriting the Constructor">
<primary>inheritance</primary>
<secondary>constructors
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1479" file="ch09_05.htm" sect="9.5. Inheriting the Constructor">
<primary>constructors</primary>
<secondary>inheriting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1480" file="ch09_05.htm" sect="9.5. Inheriting the Constructor">
<primary>inheritance</primary>
<secondary>constructors
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1481" file="ch09_05.htm" sect="9.5. Inheriting the Constructor">
<primary>constructors</primary>
<secondary>inheriting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1482" file="ch09_05.htm" sect="9.5. Inheriting the Constructor">
<primary>references</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1483" file="ch09_06.htm" sect="9.6. Making a Method Work with Either Classes or Instances">
<primary>instances</primary>
<secondary>methods working
with</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1484" file="ch09_06.htm" sect="9.6. Making a Method Work with Either Classes or Instances">
<primary>classes</primary>
<secondary>methods
working
with</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1485" file="ch09_06.htm" sect="9.6. Making a Method Work with Either Classes or Instances">
<primary>methods</primary>
<secondary>working
with classes</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1486" file="ch09_06.htm" sect="9.6. Making a Method Work with Either Classes or Instances">
<primary>undef
(value)</primary>
<secondary>ref operator
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1487" file="ch09_06.htm" sect="9.6. Making a Method Work with Either Classes or Instances">
<primary>blessed
references</primary>
<secondary>ref operator
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1488" file="ch09_06.htm" sect="9.6. Making a Method Work with Either Classes or Instances">
<primary>text
strings</primary>
<secondary>ref operator
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1489" file="ch09_06.htm" sect="9.6. Making a Method Work with Either Classes or Instances">
<primary>ref
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1490" file="ch09_06.htm" sect="9.6. Making a Method Work with Either Classes or Instances">
<primary>?: operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1491" file="ch09_07.htm" sect="9.7. Adding Parameters to a Method">
<primary>methods</primary>
<secondary>parameters
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1492" file="ch09_07.htm" sect="9.7. Adding Parameters to a Method">
<primary>parameters</primary>
<secondary>adding
to methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1493" file="ch09_07.htm" sect="9.7. Adding Parameters to a Method">
<primary>instance methods</primary>
<secondary>parameters
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1494" file="ch09_07.htm" sect="9.7. Adding Parameters to a Method">
<primary>methods</primary>
<seealso>class methods instance
methods</seealso>
<see>also class methods instance
methods</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1495" file="ch09_07.htm" sect="9.7. Adding Parameters to a Method">
<primary>instance
methods</primary>
<secondary>APIs
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1496" file="ch09_07.htm" sect="9.7. Adding Parameters to a Method">
<primary>API (Application
Programming
Interface)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1497" file="ch09_07.htm" sect="9.7. Adding Parameters to a Method">
<primary>methods</primary>
<secondary>parameters
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1498" file="ch09_07.htm" sect="9.7. Adding Parameters to a Method">
<primary>parameters</primary>
<secondary>adding
to methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1499" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>hashes</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1500" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>instances</primary>
<secondary>hashes
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1501" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>variables</primary>
<secondary>member
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1502" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>member
variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1503" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>instance
variables</primary>
<secondary>hash keys</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1504" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>objects</primary>
<secondary sortas="blessed references">as blessed
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1505" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>blessed
references</primary>
<secondary>instances
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1506" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>references</primary>
<secondary>instances
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1507" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary sortas="backstop">backstop
method</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1508" file="ch09_08.htm" sect="9.8. More Interesting Instances">
<primary>objects</primary>
<secondary>structure
considerations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1509" file="ch09_10.htm" sect="9.10. Getting Your Deposit Back">
<primary>setters</primary>
<secondary>creating</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1510" file="ch09_10.htm" sect="9.10. Getting Your Deposit Back">
<primary>parameters</primary>
<secondary>returning updated
values</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1511" file="ch09_10.htm" sect="9.10. Getting Your Deposit Back">
<primary>return
values</primary>
<secondary>updated
parameters</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1512" file="ch09_10.htm" sect="9.10. Getting Your Deposit Back">
<primary>wantarray
function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1513" file="ch09_10.htm" sect="9.10. Getting Your Deposit Back">
<primary>void
context</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1514" file="ch09_10.htm" sect="9.10. Getting Your Deposit Back">
<primary>void
context</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1515" file="ch09_10.htm" sect="9.10. Getting Your Deposit Back">
<primary>wantarray
function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1516" file="ch09_10.htm" sect="9.10. Getting Your Deposit Back">
<primary>void context</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1518" file="ch09_11.htm" sect="9.11. Don't Look Inside the Box">
<primary>objects</primary>
<secondary>encapsulation
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1519" file="ch09_11.htm" sect="9.11. Don't Look Inside the Box">
<primary>encapsulation,
object</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1520" file="ch09_11.htm" sect="9.11. Don't Look Inside the Box">
<primary>setters</primary>
<secondary>encapsulation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1521" file="ch09_11.htm" sect="9.11. Don't Look Inside the Box">
<primary>getters</primary>
<secondary>encapsulation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1522" file="ch09_12.htm" sect="9.12. Faster Getters and Setters">
<primary>setters</primary>
<secondary>optimizing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1523" file="ch09_12.htm" sect="9.12. Faster Getters and Setters">
<primary>getters</primary>
<secondary>optimizing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1524" file="ch09_13.htm" sect="9.13. Getters That Double as Setters">
<primary>methods</primary>
<secondary>getters doubling as
setters</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1525" file="ch09_13.htm" sect="9.13. Getters That Double as Setters">
<primary>setters</primary>
<secondary>getters
doubling
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1526" file="ch09_13.htm" sect="9.13. Getters That Double as Setters">
<primary>setters</primary>
<secondary>optimizing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1527" file="ch09_13.htm" sect="9.13. Getters That Double as Setters">
<primary>getters</primary>
<secondary>doubling
as setters</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1528" file="ch09_13.htm" sect="9.13. Getters That Double as Setters">
<primary>setters</primary>
<secondary>getters doubling
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1529" file="ch09_13.htm" sect="9.13. Getters That Double as Setters">
<primary>setters</primary>
<secondary>restricting
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1530" file="ch09_13.htm" sect="9.13. Getters That Double as Setters">
<primary>getters</primary>
<secondary>doubling
as setters</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1531" file="ch09_14.htm" sect="9.14. Restricting a Method to Class-Only or Instance-Only">
<primary>instance methods</primary>
<secondary>restricting
to</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1532" file="ch09_14.htm" sect="9.14. Restricting a Method to Class-Only or Instance-Only">
<primary>class
methods</primary>
<secondary>restricting
to</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1533" file="ch09_14.htm" sect="9.14. Restricting a Method to Class-Only or Instance-Only">
<primary>methods</primary>
<secondary>restricting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-9-ITERM-1534" file="ch09_14.htm" sect="9.14. Restricting a Method to Class-Only or Instance-Only">
<primary>ref
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1535" file="ch10_01.htm" sect="10. Object Destruction">
<primary>objects</primary>
<secondary>destruction
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1536" file="ch10_01.htm" sect="10. Object Destruction">
<primary>references</primary>
<secondary>object destruction
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1537" file="ch10_01.htm" sect="10. Object Destruction">
<primary>hash
reference</primary>
<secondary>object
destruction</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1538" file="ch10_01.htm" sect="10. Object Destruction">
<primary>filehandles</primary>
<secondary>temporary
files</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1539" file="ch10_01.htm" sect="10. Object Destruction">
<primary>temporary
files</primary>
<secondary>data destruction
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1540" file="ch10_01.htm" sect="10. Object Destruction">
<primary>instance
variables</primary>
<secondary>object destruction
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1541" file="ch10_01.htm" sect="10. Object Destruction">
<primary>DESTROY
method</primary>
<secondary>purpose</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1542" file="ch10_01.htm" sect="10. Object Destruction">
<primary>DESTROY
method</primary>
<secondary>purpose</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1543" file="ch10_01.htm" sect="10. Object Destruction">
<primary>programs</primary>
<secondary>object destruction
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1544" file="ch10_01.htm" sect="10. Object Destruction">
<primary>variables</primary>
<secondary>global
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1545" file="ch10_01.htm" sect="10. Object Destruction">
<primary>global
variables</primary>
<secondary>data destruction
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1546" file="ch10_01.htm" sect="10. Object Destruction">
<primary>lexical
variables</primary>
<secondary>data destruction
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1547" file="ch10_01.htm" sect="10. Object Destruction">
<primary>END
blocks</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1548" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>destructors</primary>
<secondary>nested
objects example</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1549" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>DESTROY
method</primary>
<secondary>nested
objects</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1550" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>blessed
references</primary>
<secondary>nested object
destruction</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1551" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>nested
entities</primary>
<secondary>object
destruction</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1552" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>array
reference</primary>
<secondary>blessing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1553" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>+
(plus sign)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1554" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>temporary files</primary>
<secondary>data
destruction and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1555" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>instance
variables</primary>
<secondary>filehandles
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1556" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>filehandles</primary>
<secondary>instance
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1557" file="ch10_01.htm" sect="10.1. Nested Object Destruction">
<primary>temporary files</primary>
<secondary>data
destruction and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1560" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>inheritance</primary>
<secondary>DESTROY method
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1561" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>DESTROY
method</primary>
<secondary>inheritance
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1562" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>extending</primary>
<secondary>superclass
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1563" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>overriding</primary>
<secondary>superclass
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1564" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>methods</primary>
<secondary>superclasses</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1565" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>superclasses</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1566" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>inheritance</primary>
<secondary>DESTROY method
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1567" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>DESTROY
method</primary>
<secondary>inheritance
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1568" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>extending</primary>
<secondary>superclass
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1569" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>overriding</primary>
<secondary>superclass
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1570" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>methods</primary>
<secondary>superclasses</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1571" file="ch10_02.htm" sect="10.2. Beating a Dead Horse">
<primary>superclasses</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1572" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>indirect object
notation</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1573" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>arrows</primary>
<secondary>method
invocation
arrow</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1574" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>methods</primary>
<secondary>invocation
arrow</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1575" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>direct object
syntax</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1576" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>new method</primary>
<secondary>indirect object
notation</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1577" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>{} (curly
braces)</primary>
<secondary>indirect object syntax
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1578" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>scalars</primary>
<secondary>indirect
object syntax</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1579" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>blessed
references</primary>
<secondary>indirect object syntax
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1580" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>perl command</primary>
<secondary>-w
option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1581" file="ch10_03.htm" sect="10.3. Indirect Object Notation">
<primary>direct object syntax</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1583" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>instance variables</primary>
<secondary sortas="subclasses">in
subclasses</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1584" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>subclasses</primary>
<secondary>instance
variables in</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1585" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>subroutines</primary>
<secondary>extending</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1586" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>extending</primary>
<secondary>subroutines</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1587" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>superclasses</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1588" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>parameters</primary>
<secondary>passing
to superclasses</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1589" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>friend
classes</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1590" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>inheritance</primary>
<secondary>composition
versus</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1591" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>composition,
inheritance versus</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1592" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>delegation</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1593" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>instance variables</primary>
<secondary sortas="subclasses">in
subclasses</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1594" file="ch10_04.htm" sect="10.4. Additional Instance Variables in Subclasses">
<primary>subclasses</primary>
<secondary>instance
variables in</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1595" file="ch10_05.htm" sect="10.5. Using Class Variables">
<primary>variables</primary>
<secondary>class
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1596" file="ch10_05.htm" sect="10.5. Using Class Variables">
<primary>class
variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1597" file="ch10_05.htm" sect="10.5. Using Class Variables">
<primary>extending</primary>
<secondary>class
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1598" file="ch10_05.htm" sect="10.5. Using Class Variables">
<primary>variables</primary>
<secondary>meta-variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1599" file="ch10_05.htm" sect="10.5. Using Class Variables">
<primary>meta-variables</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1602" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>destructors</primary>
<secondary>class variables
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1603" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>references</primary>
<secondary>weak
references</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1604" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>weak
references</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1605" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>references</primary>
<secondary>destruction
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1606" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>reference counting</primary>
<secondary>weak
references and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1607" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>WeakRef module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1608" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>memory management</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1609" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>undef (value)</primary>
<secondary>weak references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-10-ITERM-1610" file="ch10_06.htm" sect="10.6. Weakening the Argument">
<primary>parent-child
relationships</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1614" file="ch11_01.htm" sect="11.1. UNIVERSAL Methods">
<primary sortas="ISA">@ISA
variable</primary>
<secondary>inheritance hierarchies
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1615" file="ch11_01.htm" sect="11.1. UNIVERSAL Methods">
<primary>classes</primary>
<secondary>UNIVERSAL class
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1616" file="ch11_01.htm" sect="11.1. UNIVERSAL Methods">
<primary>UNIVERSAL
class</primary>
<secondary>purpose of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1617" file="ch11_01.htm" sect="11.1. UNIVERSAL Methods">
<primary sortas="backstop">backstop
method</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1618" file="ch11_01.htm" sect="11.1. UNIVERSAL Methods">
<primary>overriding</primary>
<secondary>UNIVERSAL
class
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1619" file="ch11_01.htm" sect="11.1. UNIVERSAL Methods">
<primary>methods</primary>
<secondary>UNIVERSAL
class and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1620" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>behavior</primary>
<secondary>testing with isa and
can
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1621" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>testing</primary>
<secondary>isa
and can methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1622" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>can method
(UNIVERSAL)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1623" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>isa method
(UNIVERSAL)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1624" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>UNIVERSAL
class</primary>
<secondary>utility
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1625" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>objects</primary>
<secondary>testing
with isa and can methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1626" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>inheritance</primary>
<secondary>isa method
testing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1627" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>instances</primary>
<secondary>isa
method testing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1628" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>scalars</primary>
<secondary>isa method
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1629" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>blessed
references</primary>
<secondary>isa method
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1630" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>subroutines</primary>
<secondary>isa called
as</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1631" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>behavior</primary>
<secondary>testing with isa and
can
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1632" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>testing</primary>
<secondary>isa
and can methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1633" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>can method
(UNIVERSAL)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1634" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>isa method
(UNIVERSAL)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1635" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>UNIVERSAL
class</primary>
<secondary>utility
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1636" file="ch11_02.htm" sect="11.2. Testing Your Objects for Good Behavior">
<primary>objects</primary>
<secondary>testing
with isa and can methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1637" file="ch11_03.htm" sect="11.3. AUTOLOAD as a Last Resort">
<primary>AUTOLOAD
method</primary>
<secondary>functionality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1638" file="ch11_03.htm" sect="11.3. AUTOLOAD as a Last Resort">
<primary sortas="AUTOLOAD variable">$AUTOLOAD
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1639" file="ch11_03.htm" sect="11.3. AUTOLOAD as a Last Resort">
<primary>compile phase</primary>
<secondary>AUTOLOAD
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1640" file="ch11_03.htm" sect="11.3. AUTOLOAD as a Last Resort">
<primary>AUTOLOAD
method</primary>
<secondary>functionality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1641" file="ch11_03.htm" sect="11.3. AUTOLOAD as a Last Resort">
<primary>modules</primary>
<secondary>core
modules</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1642" file="ch11_03.htm" sect="11.3. AUTOLOAD as a Last Resort">
<primary>core
modules</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1643" file="ch11_03.htm" sect="11.3. AUTOLOAD as a Last Resort">
<primary>SelfLoader core
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1644" file="ch11_03.htm" sect="11.3. AUTOLOAD as a Last Resort">
<primary>AutoLoader core
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1645" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>setters</primary>
<secondary>AUTOLOAD method
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1646" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>getters</primary>
<secondary>AUTOLOAD
method
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1647" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>accessors</primary>
<secondary>AUTOLOAD
method and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1648" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>AUTOLOAD
method</primary>
<secondary>accessors and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1649" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>code references</primary>
<secondary>AUTOLOAD
method and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1650" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>glob operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1651" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>AUTOLOAD method</primary>
<secondary>accessors
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1652" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>setters</primary>
<secondary>AUTOLOAD
method
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1653" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>getters</primary>
<secondary>AUTOLOAD
method
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1654" file="ch11_04.htm" sect="11.4. Using AUTOLOAD for Accessors">
<primary>accessors</primary>
<secondary>AUTOLOAD
method and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1655" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>accessors</primary>
<secondary>Class::MethodMaker
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1656" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>Class::MethodMaker
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1657" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>setters</primary>
<secondary>creating</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1658" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>getters</primary>
<secondary>creating
easily</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1659" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>abstract
methods</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1660" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>subclasses</primary>
<secondary>abstract
methods and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1661" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>methods</primary>
<secondary>abstract
methods</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1662" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>classes</primary>
<secondary>accessors
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1663" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>instances</primary>
<secondary>accessors
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1664" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>friend classes</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1665" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>maintenance
considerations</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1666" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>interfaces</primary>
<secondary>maintenance
considerations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1667" file="ch11_05.htm" sect="11.5. Creating Getters and Setters More Easily">
<primary>system performance</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1672" file="ch11_06.htm" sect="11.6. Multiple Inheritance">
<primary>inheritance</primary>
<secondary>multiple
inheritance</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1673" file="ch11_06.htm" sect="11.6. Multiple Inheritance">
<primary sortas="ISA">@ISA variable</primary>
<secondary>multiple
inheritance</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1674" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>references</primary>
<secondary sortas=" filehandles">to
filehandles</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1675" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>filehandles</primary>
<secondary>references
to</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1676" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>IO::File
class</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1677" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>variables</primary>
<secondary>filehandles
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1678" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>objects</primary>
<secondary>filehandles
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1679" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>scalars</primary>
<secondary>filehandles
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1680" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>destructors</primary>
<secondary>IO::File
objects and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1681" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>glob
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1682" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>IO::File
class</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1683" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>array reference</primary>
<secondary>IO::File
objects and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1684" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>grep operator</primary>
<secondary>filehandles
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-11-ITERM-1685" file="ch11_07.htm" sect="11.7. References to Filehandles">
<primary>grep operator</primary>
<secondary>filehandles
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1688" file="ch12_01.htm" sect="12. Using Modules">
<primary>modules</primary>
<secondary>overview</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1689" file="ch12_01.htm" sect="12. Using Modules">
<primary>modules</primary>
<seealso>packages</seealso>
<see>also
packages</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1690" file="ch12_01.htm" sect="12. Using Modules">
<primary>packages</primary>
<seealso>modules</seealso>
<see>also
modules</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1691" file="ch12_01.htm" sect="12. Using Modules">
<primary>variables</primary>
<secondary>modules
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1692" file="ch12_01.htm" sect="12. Using Modules">
<primary>subroutines</primary>
<secondary>modules
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1693" file="ch12_01.htm" sect="12. Using Modules">
<primary>code</primary>
<secondary>reusability
of</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1694" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>parsing</primary>
<secondary>file
specifications</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1695" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>files</primary>
<secondary>parsing
specifications</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1696" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>interfaces</primary>
<secondary>File::Basename
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1697" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>File::Basename
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1698" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>dirname subroutine
(File::Basename)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1699" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>basename
subroutine
(File::Basename)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1700" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>fileparse
subroutine (File::Basename)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1701" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>interfaces</primary>
<secondary>File::Basename
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1702" file="ch12_01.htm" sect="12.1. Sample Function-Oriented Interface: File::Basename">
<primary>File::Basename
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1703" file="ch12_02.htm" sect="12.2. Selecting What to Import">
<primary>importing</primary>
<secondary>File::Basename
module and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1704" file="ch12_02.htm" sect="12.2. Selecting What to Import">
<primary>qw( ) list</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1705" file="ch12_02.htm" sect="12.2. Selecting What to Import">
<primary>lists</primary>
<secondary>qw( )
list</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1706" file="ch12_02.htm" sect="12.2. Selecting What to Import">
<primary>empty import lists</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1707" file="ch12_02.htm" sect="12.2. Selecting What to Import">
<primary>lists</primary>
<secondary>absent import
lists</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1708" file="ch12_02.htm" sect="12.2. Selecting What to Import">
<primary>absent import
lists</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1709" file="ch12_02.htm" sect="12.2. Selecting What to Import">
<primary>&amp;
(ampersand)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1710" file="ch12_03.htm" sect="12.3. Sample Object-Oriented Interface: File::Spec">
<primary>interfaces</primary>
<secondary>File::Spec
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1711" file="ch12_03.htm" sect="12.3. Sample Object-Oriented Interface: File::Spec">
<primary>OOP
(object-oriented programming)</primary>
<secondary>File::Spec
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1712" file="ch12_03.htm" sect="12.3. Sample Object-Oriented Interface: File::Spec">
<primary>File::Spec
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1713" file="ch12_03.htm" sect="12.3. Sample Object-Oriented Interface: File::Spec">
<primary>files</primary>
<secondary>File::Spec
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1714" file="ch12_03.htm" sect="12.3. Sample Object-Oriented Interface: File::Spec">
<primary>class methods</primary>
<secondary>File::Spec
module and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1715" file="ch12_03.htm" sect="12.3. Sample Object-Oriented Interface: File::Spec">
<primary>catfile method
(File::Spec)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1716" file="ch12_03.htm" sect="12.3. Sample Object-Oriented Interface: File::Spec">
<primary>collisions,
namespace</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1717" file="ch12_03.htm" sect="12.3. Sample Object-Oriented Interface: File::Spec">
<primary>namespaces</primary>
<secondary>problems
with collisions</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1718" file="ch12_04.htm" sect="12.4. A More Typical Object-Oriented Module: Math::BigInt">
<primary>Math::BigInt module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1719" file="ch12_04.htm" sect="12.4. A More Typical Object-Oriented Module: Math::BigInt">
<primary>Math::BigInt
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1720" file="ch12_04.htm" sect="12.4. A More Typical Object-Oriented Module: Math::BigInt">
<primary>new
method</primary>
<secondary>Math::BigInt
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1721" file="ch12_04.htm" sect="12.4. A More Typical Object-Oriented Module: Math::BigInt">
<primary>instance
methods</primary>
<secondary>Math::BigInt
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1722" file="ch12_05.htm" sect="12.5. The Differences Between OO and Non-OO Modules">
<primary>OOP (object-oriented
programming)</primary>
<secondary>versus
non-OOP</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1723" file="ch12_05.htm" sect="12.5. The Differences Between OO and Non-OO Modules">
<primary>OO
(object-oriented) modules</primary>
<secondary>non-OO
versus</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1724" file="ch12_05.htm" sect="12.5. The Differences Between OO and Non-OO Modules">
<primary>instance methods</primary>
<secondary>OO modules
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1725" file="ch12_05.htm" sect="12.5. The Differences Between OO and Non-OO Modules">
<primary>class
methods</primary>
<secondary>OO modules and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1726" file="ch12_05.htm" sect="12.5. The Differences Between OO and Non-OO Modules">
<primary>exporting</primary>
<secondary>OO modules
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1727" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>importing</primary>
<secondary>use operation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1728" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>BEGIN
block</primary>
<secondary>use list
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1729" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>require
operator</primary>
<secondary>use operation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1730" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>use
operation</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1731" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>:: (double
colon)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1732" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary sortas="pm extension">.pm (Perl Module) extension</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1733" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>require operator</primary>
<secondary>use
operation and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1734" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>return values</primary>
<secondary>required
files</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1735" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>subroutines</primary>
<secondary>importing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1736" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>importing</primary>
<secondary>subroutines</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1737" file="ch12_06.htm" sect="12.6. What use Is Doing">
<primary>BEGIN
block</primary>
<secondary>importing
subroutines</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1739" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary sortas="INC array">@INC
array</primary>
<secondary>use operation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1740" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary>paths, searching for
installed modules/libraries</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1741" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary>BEGIN block</primary>
<secondary>setting
paths</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1742" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary>unshift
function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1743" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary>use
lib</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1744" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary>use lib</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1745" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary>constants,
setting</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1746" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary>BEGIN
block</primary>
<secondary>setting constants</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1747" file="ch12_07.htm" sect="12.7. Setting the Path at the Right Time">
<primary>paths, searching for installed
modules/libraries</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1748" file="ch12_08.htm" sect="12.8. Importing with Exporter">
<primary>File::Basename
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1749" file="ch12_08.htm" sect="12.8. Importing with Exporter">
<primary>fileparse subroutine
(File::Basename)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1750" file="ch12_08.htm" sect="12.8. Importing with Exporter">
<primary>importing</primary>
<secondary>Exporter
module and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1751" file="ch12_08.htm" sect="12.8. Importing with Exporter">
<primary>Exporter
module</primary>
<secondary>importing
with</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1752" file="ch12_08.htm" sect="12.8. Importing with Exporter">
<primary>symbols</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1753" file="ch12_08.htm" sect="12.8. Importing with Exporter">
<primary>importing</primary>
<secondary>Exporter module
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1754" file="ch12_08.htm" sect="12.8. Importing with Exporter">
<primary>Exporter
module</primary>
<secondary>importing with</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1755" file="ch12_09.htm" sect="12.9. @EXPORT and @EXPORT_OK">
<primary>Exporter module</primary>
<secondary>package
variables</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1756" file="ch12_09.htm" sect="12.9. @EXPORT and @EXPORT_OK">
<primary sortas="EXPORT variable">@EXPORT variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1757" file="ch12_09.htm" sect="12.9. @EXPORT and @EXPORT_OK">
<primary sortas="EXPORT_OK">@EXPORT_OK
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1758" file="ch12_09.htm" sect="12.9. @EXPORT and @EXPORT_OK">
<primary sortas="EXPORT_OK">@EXPORT_OK
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1759" file="ch12_09.htm" sect="12.9. @EXPORT and @EXPORT_OK">
<primary>subroutines</primary>
<secondary>importing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1760" file="ch12_09.htm" sect="12.9. @EXPORT and @EXPORT_OK">
<primary>importing</primary>
<secondary>subroutines</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1761" file="ch12_09.htm" sect="12.9. @EXPORT and @EXPORT_OK">
<primary sortas="EXPORT variable">@EXPORT variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1762" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>exporting</primary>
<secondary>OO
modules and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1763" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>OO (object-oriented)
modules</primary>
<secondary>exporting and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1764" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>Exporter module</primary>
<secondary>importing
with</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1765" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>export_fail method
(Exporter)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1766" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>require_version
method
(Exporter)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1767" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>export_to_level
method (Exporter)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1768" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>unimport
method (Exporter)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1769" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>URI::URL
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1770" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>URIs (universal
resource identifiers)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1771" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>url subroutine
(URI::URL)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1772" file="ch12_10.htm" sect="12.10. Exporting in a Primarily OO Module">
<primary>constructors</primary>
<secondary>url
subroutine</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1775" file="ch12_11.htm" sect="12.11. Custom Import Routines">
<primary>CGI
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1776" file="ch12_11.htm" sect="12.11. Custom Import Routines">
<primary>importing</primary>
<secondary>custom
routines</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1777" file="ch12_11.htm" sect="12.11. Custom Import Routines">
<primary>subroutines</primary>
<secondary>custom
import routines</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1778" file="ch12_11.htm" sect="12.11. Custom Import Routines">
<primary>use CGI</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-12-ITERM-1779" file="ch12_11.htm" sect="12.11. Custom Import Routines">
<primary>importing</primary>
<secondary>-nosticky
option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1781" file="ch13_01.htm" sect="13. Writing a Distribution">
<primary>writing
distributions</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1782" file="ch13_01.htm" sect="13. Writing a Distribution">
<primary>installation (of
modules)</primary>
<secondary>distribution
considerations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1783" file="ch13_01.htm" sect="13. Writing a Distribution">
<primary>documentation</primary>
<secondary>distribution
considerations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1784" file="ch13_01.htm" sect="13. Writing a Distribution">
<primary>archiving</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1785" file="ch13_01.htm" sect="13. Writing a Distribution">
<primary>testing</primary>
<secondary>distributions
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1786" file="ch13_01.htm" sect="13. Writing a Distribution">
<primary>interfaces</primary>
<secondary>distribution
considerations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1787" file="ch13_01.htm" sect="13.1. Starting with h2xs">
<primary>modules</primary>
<secondary>distributions
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1788" file="ch13_01.htm" sect="13.1. Starting with h2xs">
<primary>distributions</primary>
<secondary>h2xs
tool</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1789" file="ch13_01.htm" sect="13.1. Starting with h2xs">
<primary>h2xs
tool</primary>
<secondary>distributions and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1790" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>distributions</primary>
<secondary>template
files</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1791" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>files</primary>
<secondary>distribution
templates</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1792" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>template
files</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1793" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>MANIFEST file</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1794" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>MANIFEST file</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1795" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>README file</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1796" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>distributions</primary>
<secondary>copyrights and
licensing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1797" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>licensing</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1798" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>copyright
notices</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1799" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>README file</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1800" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>Changes file</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1801" file="ch13_02.htm" sect="13.2. Looking at the Templates">
<primary>debugging</primary>
<secondary>Changes file
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1804" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>distributions</primary>
<secondary>modules
within</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1805" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>modules</primary>
<secondary>distributions
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1806" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>distributions</primary>
<secondary>Exporter
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1807" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>Exporter
module</primary>
<secondary>distributions</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1808" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>distributions</primary>
<secondary>qw( )
lists</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1809" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>qw( )
list</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1810" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>lists</primary>
<secondary>qw( )
list</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1811" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>exporting</primary>
<secondary>symbols</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1812" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>symbols</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1813" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary sortas="EXPORT variable">@EXPORT
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1814" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary sortas="EXPORT_OK">@EXPORT_OK
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1815" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>exporting</primary>
<secondary>OO modules
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1816" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>OO (object-oriented)
modules</primary>
<secondary>exporting</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1817" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>distributions</primary>
<secondary>version
numbers</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1818" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>version
numbers</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1819" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>interfaces</primary>
<secondary>version numbers
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1820" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>CPAN (Comprehensive Perl Archive
Network)</primary>
<secondary>version numbers
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1821" file="ch13_03.htm" sect="13.3. The Prototype Module Itself">
<primary>use operation</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1824" file="ch13_04.htm" sect="13.4. Embedded Documentation">
<primary sortas="END marker">_ _END_ _
marker</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1825" file="ch13_04.htm" sect="13.4. Embedded Documentation">
<primary>distributions</primary>
<secondary>embedded
documentation</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1826" file="ch13_04.htm" sect="13.4. Embedded Documentation">
<primary>documentation</primary>
<secondary>embedded
for distribution</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1827" file="ch13_04.htm" sect="13.4. Embedded Documentation">
<primary>distributions</primary>
<secondary>POD
format</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1828" file="ch13_04.htm" sect="13.4. Embedded Documentation">
<primary>POD format</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1833" file="ch13_05.htm" sect="13.5. Controlling the Distribution with Makefile.PL">
<primary>Makefile.PL</primary>
<secondary>controlling
distribution</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1834" file="ch13_05.htm" sect="13.5. Controlling the Distribution with Makefile.PL">
<primary>distributions</primary>
<secondary>Makefile.PL</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1835" file="ch13_05.htm" sect="13.5. Controlling the Distribution with Makefile.PL">
<primary>perl
command</primary>
<secondary>-V:make</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1836" file="ch13_05.htm" sect="13.5. Controlling the Distribution with Makefile.PL">
<primary>h2xs tool</primary>
<secondary>Makefile.PL
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1837" file="ch13_05.htm" sect="13.5. Controlling the Distribution with Makefile.PL">
<primary>ExtUtils::MakeMaker
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1838" file="ch13_05.htm" sect="13.5. Controlling the Distribution with Makefile.PL">
<primary>WriteMakefile
subroutine (ExtUtils::MakeMaker)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1839" file="ch13_05.htm" sect="13.5. Controlling the Distribution with Makefile.PL">
<primary>PREREQ_PM setting
(Makefiles)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1842" file="ch13_06.htm" sect="13.6. Alternate Installation Locations (PREFIX=...)">
<primary>distributions</primary>
<secondary>alternate
installation
locations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1843" file="ch13_06.htm" sect="13.6. Alternate Installation Locations (PREFIX=...)">
<primary>installation (of
modules)</primary>
<secondary>alternate
locations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1844" file="ch13_06.htm" sect="13.6. Alternate Installation Locations (PREFIX=...)">
<primary>perl command</primary>
<secondary>PREFIX= option
(Makefile.PL)</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1845" file="ch13_06.htm" sect="13.6. Alternate Installation Locations (PREFIX=...)">
<primary>Makefile.PL</primary>
<secondary>PREFIX=option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1846" file="ch13_06.htm" sect="13.6. Alternate Installation Locations (PREFIX=...)">
<primary>libraries</primary>
<secondary>alternate
installation
locations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1847" file="ch13_06.htm" sect="13.6. Alternate Installation Locations (PREFIX=...)">
<primary>scripts</primary>
<secondary>alternate
installation locations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1848" file="ch13_07.htm" sect="13.7. Trivial make test">
<primary>make
test</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1849" file="ch13_07.htm" sect="13.7. Trivial make test">
<primary>distributions</primary>
<secondary>testing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1850" file="ch13_07.htm" sect="13.7. Trivial make test">
<primary>testing</primary>
<secondary>distributions
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1851" file="ch13_07.htm" sect="13.7. Trivial make test">
<primary>testing</primary>
<secondary>test
harness</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1852" file="ch13_07.htm" sect="13.7. Trivial make test">
<primary>Makefile.PL</primary>
<secondary>test
harness</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1856" file="ch13_08.htm" sect="13.8. Trivial make install">
<primary>make install</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1857" file="ch13_09.htm" sect="13.9. Trivial make dist">
<primary>distributions</primary>
<secondary>make dist
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1858" file="ch13_09.htm" sect="13.9. Trivial make dist">
<primary>make
dist</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1859" file="ch13_09.htm" sect="13.9. Trivial make dist">
<primary sortas="VERSION variable">$VERSION
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1860" file="ch13_09.htm" sect="13.9. Trivial make dist">
<primary>distributions</primary>
<secondary>make
dist and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1861" file="ch13_09.htm" sect="13.9. Trivial make dist">
<primary>make
dist</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1862" file="ch13_10.htm" sect="13.10. Using the Alternate Library Location">
<primary>installation (of
modules)</primary>
<secondary>alternate library
locations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1863" file="ch13_10.htm" sect="13.10. Using the Alternate Library Location">
<primary>libraries</primary>
<secondary>alternate
installation
locations</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1864" file="ch13_10.htm" sect="13.10. Using the Alternate Library Location">
<primary>perl
command</primary>
<secondary>PREFIX= option
(Makefile.PL)</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1865" file="ch13_10.htm" sect="13.10. Using the Alternate Library Location">
<primary>Makefile.PL</primary>
<secondary>PREFIX=option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1866" file="ch13_10.htm" sect="13.10. Using the Alternate Library Location">
<primary>use lib</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1867" file="ch13_10.htm" sect="13.10. Using the Alternate Library Location">
<primary>perl command</primary>
<secondary>-M
option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-13-ITERM-1868" file="ch13_10.htm" sect="13.10. Using the Alternate Library Location">
<primary>perl command</primary>
<secondary>-I
option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1870" file="ch14_01.htm" sect="14. Essential Testing">
<primary>distributions</primary>
<secondary>testing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1871" file="ch14_01.htm" sect="14. Essential Testing">
<primary>make
test</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1872" file="ch14_01.htm" sect="14. Essential Testing">
<primary>documentation</primary>
<secondary>testing
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1873" file="ch14_01.htm" sect="14. Essential Testing">
<primary>testing</primary>
<secondary>sqrt
function</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1874" file="ch14_01.htm" sect="14. Essential Testing">
<primary>sqrt
function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1875" file="ch14_01.htm" sect="14. Essential Testing">
<primary>code</primary>
<secondary>testing
coverage</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1876" file="ch14_01.htm" sect="14. Essential Testing">
<primary>testing</primary>
<secondary>code
coverage</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1877" file="ch14_01.htm" sect="14.1. What the Test Harness Does">
<primary>Makefile.PL</primary>
<secondary>test
harness</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1878" file="ch14_01.htm" sect="14.1. What the Test Harness Does">
<primary>testing</primary>
<secondary>test
harness</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1879" file="ch14_01.htm" sect="14.1. What the Test Harness Does">
<primary>directories</primary>
<secondary>t files
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1880" file="ch14_01.htm" sect="14.1. What the Test Harness Does">
<primary>t
directory</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1881" file="ch14_01.htm" sect="14.1. What the Test Harness Does">
<primary>testing</primary>
<secondary>test
harness</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1882" file="ch14_01.htm" sect="14.1. What the Test Harness Does">
<primary>Makefile.PL</primary>
<secondary>test
harness</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1883" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>distributions</primary>
<secondary>Test::Simple
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1884" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>Test::Simple
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1885" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>ok function
(Test::Simple)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1886" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>TEST_VERBOSE option (make
test)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1887" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>make
test</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1888" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>comments</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1889" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>testing</primary>
<secondary>pound-sign
comments and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1890" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary># (pound
sign)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1891" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>distributions</primary>
<secondary>Test::Simple
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1892" file="ch14_02.htm" sect="14.2. Writing Tests with Test::Simple">
<primary>Test::Simple
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1893" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>distributions</primary>
<secondary>Test::More
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1894" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>Test::More
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1895" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>testing</primary>
<secondary>test
harness</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1896" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>Makefile.PL</primary>
<secondary>test
harness</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1897" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>is function
(Test::More)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1898" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>testing</primary>
<secondary>numeric
equality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1899" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>numbers</primary>
<secondary>testing
equality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1900" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>testing</primary>
<secondary>inequality</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1901" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>isnt
function (Test::More)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1902" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>cmp_ok routine
(Test::More)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1903" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>like function
(Test::More)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1904" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>strings</primary>
<see>text
strings</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1905" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>text
strings</primary>
<secondary>like
function</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1906" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>can_ok function
(Test::More)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1907" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>isa_ok
function (Test::More)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1908" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>OO
(object-oriented) modules</primary>
<secondary>Test::More
module</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1909" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>testing</primary>
<secondary>use
operation</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1910" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>use
operation</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1911" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>BEGIN block</primary>
<secondary>use operation
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1912" file="ch14_03.htm" sect="14.3. Writing Tests with Test::More">
<primary>use
operation</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1915" file="ch14_04.htm" sect="14.4. Conditional Tests">
<primary>conditional
tests</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1916" file="ch14_04.htm" sect="14.4. Conditional Tests">
<primary>testing</primary>
<secondary>conditional
tests</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1917" file="ch14_04.htm" sect="14.4. Conditional Tests">
<primary sortas="TODO variable">$TODO
variable</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1918" file="ch14_04.htm" sect="14.4. Conditional Tests">
<primary>TODO
blocks</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1919" file="ch14_05.htm" sect="14.5. More Complex Tests (Multiple Test Scripts)">
<primary>testing</primary>
<secondary>multiple test
scripts</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1920" file="ch14_05.htm" sect="14.5. More Complex Tests (Multiple Test Scripts)">
<primary>scripts</primary>
<secondary>complex
tests</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1921" file="ch14_05.htm" sect="14.5. More Complex Tests (Multiple Test Scripts)">
<primary>h2xs
tool</primary>
<secondary>multiple test scripts
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1922" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>STDERR
filehandle</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1923" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>STDOUT
filehandle</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1924" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>filehandles</primary>
<secondary>ok
function (Test::More) and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1925" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>Test::More
module</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1926" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>ok function
(Test::Simple)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1927" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>testing</primary>
<secondary>writing
to STDOUT and STDERR</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1928" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>temporary files</primary>
<secondary>STDOUT
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1929" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>is function
(Test::More)</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-14-ITERM-1930" file="ch14_06.htm" sect="14.6. Testing Things That Write to STDOUT and STDERR">
<primary>current directory</primary>
<secondary>testing
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1931" file="ch15_01.htm" sect="15. Contributing to CPAN">
<primary>Comprehensive Perl Archive
Network</primary>
<see>CPAN</see>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1932" file="ch15_01.htm" sect="15. Contributing to CPAN">
<primary>CPAN
(Comprehensive Perl Archive Network)</primary>
<secondary>contributing
to</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1933" file="ch15_01.htm" sect="15.1. The Comprehensive Perl Archive Network">
<primary>perl-packrats mailing
list</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1934" file="ch15_02.htm" sect="15.2. Getting Prepared">
<primary>PAUSE (Perl Authors Upload Server)
ID</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1935" file="ch15_03.htm" sect="15.3. Preparing Your Distribution">
<primary>distributions</primary>
<secondary>preparing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1936" file="ch15_03.htm" sect="15.3. Preparing Your Distribution">
<primary>README file</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1937" file="ch15_03.htm" sect="15.3. Preparing Your Distribution">
<primary>Makefile.PL</primary>
<secondary>testing
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1938" file="ch15_03.htm" sect="15.3. Preparing Your Distribution">
<primary>testing</primary>
<secondary>Makefile.PL
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1939" file="ch15_03.htm" sect="15.3. Preparing Your Distribution">
<primary>MANIFEST file</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1940" file="ch15_03.htm" sect="15.3. Preparing Your Distribution">
<primary>version
numbers</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1941" file="ch15_03.htm" sect="15.3. Preparing Your Distribution">
<primary>distributions</primary>
<secondary>version
numbers</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1942" file="ch15_03.htm" sect="15.3. Preparing Your Distribution">
<primary>distributions</primary>
<secondary>preparing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1943" file="ch15_04.htm" sect="15.4. Uploading Your Distribution">
<primary>PAUSE (Perl Authors Upload Server)
ID</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1944" file="ch15_04.htm" sect="15.4. Uploading Your Distribution">
<primary>distributions</primary>
<secondary>uploading
to CPAN</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1945" file="ch15_04.htm" sect="15.4. Uploading Your Distribution">
<primary>distributions</primary>
<secondary>uploading to
CPAN</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1946" file="ch15_05.htm" sect="15.5. Announcing the Module">
<primary>distributions</primary>
<secondary>announcing CPAN
modules</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1947" file="ch15_05.htm" sect="15.5. Announcing the Module">
<primary>modules</primary>
<secondary>announcing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1948" file="ch15_06.htm" sect="15.6. Testing on Multiple Platforms">
<primary>testing</primary>
<secondary>smoke
tests</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-CHP-15-ITERM-1949" file="ch15_06.htm" sect="15.6. Testing on Multiple Platforms">
<primary>smoke
tests</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1951" file="appa_03.htm" sect="NaN.3.1. Exercise 1 (Section 4.9.1)">
<primary>scalars</primary>
<secondary>references
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1952" file="appa_03.htm" sect="NaN.3.1. Exercise 1 (Section 4.9.1)">
<primary>references</primary>
<secondary sortas="scalars">as scalars</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1953" file="appa_03.htm" sect="NaN.3.1. Exercise 1 (Section 4.9.1)">
<primary>perl command</primary>
<secondary>-w
option</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1954" file="appa_03.htm" sect="NaN.3.1. Exercise 1 (Section 4.9.1)">
<primary>debugging</primary>
<secondary>enabling
warnings during</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1955" file="appa_03.htm" sect="NaN.3.1. Exercise 1 (Section 4.9.1)">
<primary>warnings,
enabling</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1956" file="appa_03.htm" sect="NaN.3.2. Exercise 2 (Section 4.9.2)">
<primary>lists</primary>
<secondary>sorted
list</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1957" file="appa_03.htm" sect="NaN.3.2. Exercise 2 (Section 4.9.2)">
<primary>sorting</primary>
<secondary>sorted
list</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1958" file="appa_06.htm" sect="NaN.6.2. Exercise 2 (Section 7.8.2)">
<primary>Schwartzian
Transform</primary>
<secondary>performance</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1959" file="appa_07.htm" sect="NaN.7.2. Exercise 2 (Section 8.11.2)">
<primary>OOP (object-oriented
programming)</primary>
<secondary>inheritance structures
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1960" file="appa_08.htm" sect="NaN.8.1. Exercise (Section 9.15.1)">
<primary>classes</primary>
<secondary>virtual methods
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1961" file="appa_09.htm" sect="NaN.9.1. Exercise (Section 10.7.1)">
<primary>data</primary>
<secondary>storing</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1962" file="appa_09.htm" sect="NaN.9.1. Exercise (Section 10.7.1)">
<primary>storing
data</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1963" file="appa_09.htm" sect="NaN.9.1. Exercise (Section 10.7.1)">
<primary>dbmopen
function</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1964" file="appa_10.htm" sect="NaN.10.1. Exercise (Section 11.8.1)">
<primary>=
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1965" file="appa_10.htm" sect="NaN.10.1. Exercise (Section 11.8.1)">
<primary>filehandles</primary>
<secondary sortas="pipe">|| operator
and</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1966" file="appa_10.htm" sect="NaN.10.1. Exercise (Section 11.8.1)">
<primary>filehandles</primary>
<secondary>storing
in a
hash</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1967" file="appa_10.htm" sect="NaN.10.1. Exercise (Section 11.8.1)">
<primary>hashes</primary>
<secondary>storing
filehandles</secondary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1968" file="appa_10.htm" sect="NaN.10.1. Exercise (Section 11.8.1)">
<primary>||=
operator</primary>
</indexterm>



<indexterm xmlns:xt="http://www.jclark.com/xt" id="lrnperlorm-APP-A-ITERM-1969" file="appa_10.htm" sect="NaN.10.1. Exercise (Section 11.8.1)">
<primary>||
operator</primary>
</indexterm>



