Index

A

Aas, Gisle, Readable Regexes, /x and (?#…), The perlbench Tool
.al file, AutoSplit
aliasing variables, AliasingAliasing
American Stance, Untainting Data
anchors, global match, Global Match AnchorsGlobal Match Anchors
AND (&) operator, Bitwise AND (&)Bitwise AND (&)
anonymous subroutines
assigning to typeglobs, Creating and Replacing Named SubroutinesCreating and Replacing Named Subroutines, Autoloaded Methods
naming, Naming Anonymous Subroutines
self-referencing, Self-Referencing Anonymous Subroutines
storing in variables, Subroutines as DataSubroutines as Data
appenders, Log4perl, Configuring Log4perl
arguments
open function and, Three-Argument open
subroutines and, Subroutines as ArgumentsSubroutines as Arguments, Subroutine Arguments
@ARGV variable, Untainting Data, Don’t Turn Off Your Thinking Cap, Command-Line Switches
ARRAY variable type, Typeglobs, Aliasing, ArraysSomething a Bit More Realistic
AUTOLOAD subroutine
autoloaded methods, Autoloaded Methods
hiding and ignoring functions, Hiding and Ignoring Functions
naming anonymous subroutines, Naming Anonymous Subroutines
Safe compartments and, Safe Compartments
automatic taint model, Automatic Taint Mode
autosplitting modules, AutoSplit, Further Reading

B

\b anchor, Negative lookahead assertions, Lookbehind Assertions, (?<!PATTERN) and (?<=PATTERN)
Barr, Graham, Subroutines as ArgumentsSubroutines as Arguments
BASH_ENV environment variable, Side Effects of Taint Checking
BEGIN blocks, Replacing Module Parts, Code in a Separate File
Belperchinov-Shabanski, Vladi, Further Reading
ben Jore, Joshua, Unparsing Code with B::Deparse
benchmarking Perl
benchmarking theory, Benchmarking TheoryBenchmarking Theory
comparing code, Comparing CodeComparing Code
handling outliers, Handling OutliersHandling Outliers
isolating the environment, Isolating the EnvironmentIsolating the Environment
measuring runtime, Benchmarking TimeBenchmarking Time
memory use, Memory UseMemory Use
perlbench tool, The perlbench ToolSummary
using your thinking cap, Don’t Turn Off Your Thinking CapDon’t Turn Off Your Thinking Cap
binary numbers, Binary NumbersWriting in Binary
bit fundamentals
binary numbers, Binary NumbersWriting in Binary
bit operators, Bit OperatorsLeft << and Right >> Shift Operators
bit vectors, Bit VectorsBit Vectors
vec function, The vec FunctionKeeping Track of Things
bit operators
AND, Bitwise AND (&)Bitwise AND (&)
C language and, Bit Operators
exclusive OR, Exclusive OR (^)Exclusive OR (^)
left shift, Left << and Right >> Shift Operators
NOT, Unary NOT (~)
OR, Binary OR (|)Binary OR (|)
right shift, Left << and Right >> Shift Operators
bit vectors, Bit VectorsBit Vectors, The vec FunctionKeeping Track of Things
Bjarmason, Ævar Arnfjörð, Taint::Util
blacklisting, Untainting Data
bounded integers, Bounded Integers
Bowen, Rich, Pod in Your Web Server
Breyer, Steffen, Further Reading
Brocard, Léon, Devel::ebug
Bunce, Tim, The General Approach, Making It Even Easier, Further Reading, Further Reading
Burke, Sean, Other Examples, The Pod Format, Translating Pod, Pod in Your Web Server
byte, defined, Writing in Binary

C

/c flag, Global Match Anchors
caller function, Who’s Calling?
Carman, Michael, Lookbehind Assertions, (?<!PATTERN) and (?<=PATTERN), The -D Switch, Further Reading
Cavalletto, Matthew Simon, Freezing Data
CDPATH environment variable, Side Effects of Taint Checking
Ceglowski, Maciej, Further Reading
CERT (Computer Emergency Response Team), Further Reading
Champoux, Yanick, Sending Patches to the Author
character class shortcuts, Untainting Data
child process errors, Child Process ErrorsChild Process Errors
$CHILD_ERROR variable, Perl Error Basics
${^CHILD_ERROR_NATIVE} variable, Perl Error Basics
chmod function, Binary Numbers, Bitwise AND (&)
Christiansen, Tom, Repeating a Subpattern
Clark, Nick, Further Reading
CLEAR tie method, Hashes
CLOSE tie method, Filehandles
CODE variable type, Typeglobs, Creating and Replacing Named Subroutines
colon (:), JSON
comma-adding pattern, The -D Switch
command-line switches, Command-Line SwitchesGetopt::Long
COMMIT statement (SQL), Switching Databases
complement (~) operator, Unary NOT (~)
Computer Emergency Response Team (CERT), Further Reading
Configure program, perl’s Config
configuring Perl programs
command-line switches and, Command-Line SwitchesGetopt::Long
Config module, perl’s ConfigSummary
configuration files, Configuration FilesOther Configuration Formats
environment variables and, Better WaysTurning on Extra Output
interactive and noninteractive programs, Interactive and Noninteractive Programs
Log::Log4perl module, Configuring Log4perlAdding my own information
scripts with a different name, Scripts with a Different Name
things not to do, Things Not to DoCode in a Separate File
constraints, Iterating Through Subroutine Lists
Conway, Damian, The -D Switch, Wrapping Subroutines, Perl::Critic, Further Reading, Wrapping Subroutines, Interactive and Noninteractive Programs
Cozens, Simon, Further Reading, Further Reading, Command-Line Switches
CPAN, Modifying and Jury-Rigging ModulesStarting Over on My Own, Distributing the Programs
croak function (Carp), Reporting the CulpritReporting the Culprit
Cross, Dave, Further Reading
Crow, Phil, Further Reading
=cut directive (Pod), Directives

D

-D switch, The -D SwitchThe -D Switch
-d switch
Devel::ptkdb module and, Devel::ptkdb
Devel::SmallProf module and, Finding the Culprit
Devel::Trace module and, Using a Different Debugger with -d
Getopt::Std module and, Getopt::Std
usage examples, The Perl Debugger
data persistence
DBM files and, DBM FilesDBM::Deep
Perl-agnostic formats, Perl-Agnostic FormatsMessagePack
Perl-specific formats, Perl-Specific FormatsSimilar Modules
Sereal protocol and, SerealSereal
Storable module and, StorableStorable’s Security Problem
databases
profiling, The General ApproachMaking It Even Easier
switching, Switching DatabasesSwitching Databases
dbiprof tool, Making It Even Easier
DBI_PROFILE environment variable, Profiling DBI, Making It Even Easier
DBM files, DBM FilesDBM::Deep, Further Reading
dbmclose function, dbmopen
dbmopen function, dbmopen, Binary Numbers, They Look Like Normal Variables
DEBUG level error message, Log4perl
debugging
with alternative debuggers, Alternative DebuggersDevel::hdb, My Method
with IDE debuggers, IDE DebuggersKomodo
Log::Log4perl module and, Log4perl
with print statements, The Best Debugger in the World, Turning on Extra Output
with Perl debugger, The Perl Debugger
regular expressions, Debugging Regular ExpressionsThe -D Switch
safely changing modules, Safely Changing Modules
with strict and warnings, Before You Waste Too Much Time
warn statements and, The Best Debugger in the World
wrapping subroutines, Wrapping SubroutinesWrapping Subroutines
(?(DEFINE)...) syntax, Repeating a SubpatternRepeating a Subpattern
defined-OR (//) operator, Turning on Extra Output
DELETE tie method, Hashes
Descartes, Alligator, Further Reading
DESTROY method, Safe Compartments, Clobbering $@, Behind the Curtain
detecting errors (see error handling)
die function
$@ variable and, Clobbering $@autodie
eval function and, eval
exit function and, Child Process Errors
multiple levels of, Multiple Levels of die
perlcritic command and, Perl::Critic
propagating objects with, Propagating Objects with diePropagating Objects with die
with a reference, die with a Reference
reporting errors, Reporting the Culprit
diff command, Sending Patches to the Author, Further Reading
directives (Pod), DirectivesEncoding
distributions (program)
creating, Creating a Program DistributionDistributing the Programs
uploading, Distributing the Programs
DNA
storing, Storing DNA
writing in binary, Writing in Binary
do function, Data::Dumper
Dominus, Mark Jason, Untainting Data, Further Reading, Further Reading, Further Reading
dynamic subroutines, Dynamic SubroutinesFurther Reading

E

-e switch, The Perl Debugger
$^E variable, Perl Error Basics, Errors Specific to the Operating System
encoding
hidden source code, De-encoding Hidden SourceDe-encoding Hidden Source
POD considerations, Encoding
=encoding directive (Pod), Encoding
END blocks, The General Approach, Devel::LineCounter, Child Process Errors
__END__ token, AutoSplit
ENV environment variable, Side Effects of Taint Checking
%ENV hash, Taint Checking, Tainted Data, Environment Variables
environment variables, Environment VariablesTurning on Extra Output, Turning on Extra Output
environment, isolating, Isolating the EnvironmentIsolating the Environment
EPIC (Eclipse Perl Integration) debugger, EPIC
$ERRNO variable, Perl Error Basics
error handling
child process errors, Child Process ErrorsChild Process Errors
exceptions and, Exceptionsautodie, Catching ExceptionsTryCatch
operating systems, Operating System ErrorsOperating System Errors, Errors Specific to the Operating System
placeholders for message patterns, Configuring Log4perl
polymorphic return values and, Polymorphic Return Values
recording, Recording Errors and Other Information
reporting errors, Reporting the CulpritReporting the Culprit
reporting module errors, Reporting Module ErrorsSeparation of Concerns
special reporting variables, Perl Error Basics
ERROR level error message, Log4perl
eval function, eval, Clobbering $@autodie, Data::Dumper
$EVAL_ERROR variable, Perl Error Basics
Evans, Paul, Subroutines as Arguments
exceptions
catching, Catching ExceptionsTryCatch
throwing, Exceptionsautodie
exclusive OR (^) operator, Exclusive OR (^)Exclusive OR (^)
exec function, List Forms of system and exec
EXISTS tie method, Hashes
exit function, Child Process Errors
@EXPORT variable, Creating and Replacing Named Subroutines
@EXPORT_OK variable, Creating and Replacing Named Subroutines
$EXTENDED_OS_ERROR variable, Perl Error Basics

F

FATAL level error message, Log4perl
FETCH tie method, Tie::CycleSelf-Destructing Values, Hashes
-file switch, Getopt::Long
filehandles
arguments in older code, Filehandle Arguments in Older Code
tied variables and, Filehandles
flock function, Binary OR (|)
Foley, Richard, The Perl Debugger, Further Reading
forking, Forking
formats (Perl-agnostic)
JSON, Repeating a Subpattern, JSONJSON, Further Reading
MessagePack, MessagePack
YAML, Other Configuration Formats, YAMLYAML module variants, Further Reading
formats (Perl-specific)
Data::Dumper module and, Data::DumperSimilar Modules
fixed-length records, Fixed-Length Records
pack function and, pack
Sereal protocol and, SerealSereal, Further Reading
unpacking binary, Unpacking Binary Formats
formats (Pod), The Pod FormatBody Elements
freezing data, Freezing DataFreezing Data
Friedl, Jeffrey, Lookbehind Assertions, (?<!PATTERN) and (?<=PATTERN), Further Reading

H

HARNESS_PERL_SWITCHES environment variable, Devel::Cover
hash keys
accessing values, Hashes as Objects
untainting data and, Hash Keys
hash symbol (#), Writing in Binary
HASH variable type, Typeglobs, HashesFilehandles
=head directive (Pod), Pod::Perldoc::ToToc, Pod::Simple
hex function, Writing in Binary
Hoare, Tony, Benchmarking Perl
Hoffman, Paul, Hashes as Objects
.htaccess file, Environment Variables
-html switch (perltidy), perltidy
Huckaby, Joe, DBM::Deep

I

IDE debuggers, IDE DebuggersKomodo
IFS environment variable, Side Effects of Taint Checking
%INC variable, Data::Dumper
@INC variable, Data::Dumper
INFO level error message, Log4perl
INI file format, Config::IniFiles
inline blocks, Subroutines as Arguments
INSERT statement (SQL), Profiling DBI, Switching Databases
integers, bounded, Bounded Integers
interactive programs, Interactive and Noninteractive Programs
interior sequences (Pod), Body Elements
IO variable type, Typeglobs, Filehandle Arguments in Older Code
isolating the environment, Isolating the EnvironmentIsolating the Environment

J

JAPH programs, Backing Up
JavaScript Object Notation (JSON), Repeating a Subpattern, Other Configuration Formats, JSONJSON, Further Reading
JSON (JavaScript Object Notation), Repeating a Subpattern, Other Configuration Formats, JSONJSON, Further Reading

K

\K pseudo-anchor, Lookbehind Assertions, (?<!PATTERN) and (?<=PATTERN)
Kennedy, Adam, Perl::Critic
Kernighan, Brian W., Further Reading
keys function, The Symbol Table
Kinyon, Rob, DBM::Deep
Komodo debugger, Komodo
Kulp, David), Benchmarking Time

M

-M switch, Using a Different Debugger with -d, My Method
mail command, List Forms of system and exec
main routine, The main ThingBacking Up
%main:: symbol table, The Symbol Table
Makefile file, An ExtUtils::MakeMaker Example
Maki, Eric, Keeping Track of Things, Further Reading
map function, Don’t Turn Off Your Thinking Cap, Subroutines as Arguments
Mapped Diagnostic Context (MDC), Adding my own information
MATCH blocks, Global Match Anchors
McAdams, Josh, Further Reading
MDC (Mapped Diagnostic Context), Adding my own information
measuring performance (see benchmarking Perl)
memory use, benchmarking and, Memory UseMemory Use
Menon-Sen, Abhijit, Further Reading
messages
placeholders for, Configuring Log4perl
printing, Taint Checking
metacharacters, List Forms of system and exec
method lists, Method Lists
mkdir function, Binary Numbers
%module hash, Different Operating Systems
modules
associating hashes with, They Look Like Normal Variables
autosplitting, AutoSplit, Further Reading
as programs, Modules as ProgramsFurther Reading
replacing parts, Replacing Module PartsReplacing Module Parts
reporting errors, Reporting Module ErrorsSeparation of Concerns, Reporting the CulpritReporting the Culprit
safely changing, Safely Changing Modules
solutions for fixing, Choosing the Right SolutionStarting Over on My Own
subclassing, SubclassingOther Examples, Subclassing Pod::Simple
taking of maintenance of, Taking Over a Module
as tests, Modules as TestsModules as Tests
wrapping subroutines, Wrapping SubroutinesWrapping Subroutines
modulus (%) operator, Subroutines as Data
Müller, Steffen, Handling Outliers, Further Reading, Further Reading

N

N directive, Subclassing Pod::Simple
named subroutines, Creating and Replacing Named SubroutinesCreating and Replacing Named Subroutines
naming anonymous subroutines, Naming Anonymous Subroutines
NDC (Nested Diagnostic Context), Adding my own information
negative lookahead assertions, Negative lookahead assertionsNegative lookahead assertions
negative lookbehind assertions, Lookbehind Assertions, (?<!PATTERN) and (?<=PATTERN)Lookbehind Assertions, (?<!PATTERN) and (?<=PATTERN)
Nested Diagnostic Context (NDC), Adding my own information
NEXTKEY tie method, Hashes
noninteractive programs, Interactive and Noninteractive Programs
NOT (~) operator, Unary NOT (~)
nroff program, Pod Translators
nybble, defined, Writing in Binary

O

-o switch, Getopt::Std
$^O variable, Different Operating Systems
obfuscating code, DeobfuscationUnparsing Code with B::Deparse
objects
hashes as, Hashes as Objects
propagating with die, Propagating Objects with diePropagating Objects with die
tied variables and, Behind the Curtain
oct function, Writing in Binary
OPEN blocks, Operating System Errors
open function
appenders and, Log4perl
autodie module and, autodie
operating system errors, Operating System Errors
three-argument, Three-Argument open
operating systems
configuring programs, Different Operating Systems
error handling, Operating System ErrorsOperating System Errors, Errors Specific to the Operating System
interacting with functions, Bad Data Can Ruin Your Day
OR (|) operator, Binary OR (|)Binary OR (|)
$OS_ERROR variable, Perl Error Basics
outliers, benchmarking and, Handling OutliersHandling Outliers

P

pack function, pack
__PACKAGE__ directive, die with a Reference, Logging Categories
package variables, Package and Lexical VariablesGetting the Package Version
(?PARNO) syntax, Repeating a Subpattern
patch program, Sending Patches to the Author, Further Reading
patches, Sending Patches to the AuthorSending Patches to the Author
PATH environment variable, Taint Checking
patterns
comma-adding, The -D Switch
placeholders for messages, Configuring Log4perl
repeating subpatterns, Repeating a SubpatternRepeating a Subpattern
PAUSE (Perl Authors Upload Server), Taking Over a ModuleForking
Perl Authors Upload Server (PAUSE), Taking Over a ModuleForking
Perl debugger, The Perl Debugger
PERL5DB environment variable, Finding the Culprit
PERL5LIB environment variable, Side Effects of Taint Checking, Safely Changing Modules, Special Environment Variables
PERL5OPT environment variable, Finding the Culprit, Special Environment Variables
perlapi documentation, Further Reading
perlbench tool, The perlbench ToolSummary
perlboot documentation, Further Reading
perlcritic command, Perl::CriticPerl::Critic
perldata documentation, Further Reading
perldebguts documentation, The -D Switch, Further Reading, Memory Use
perldebug documentation, The Perl Debugger
perldoc command, Pod TranslatorsPod Translators, My Method
perldoc documentation, The main Thing
perlfunc documentation, Further Reading, Further Reading, Further Reading
perlmod documentation, Further Reading
perlop documentation, Further Reading
perlopentut documentation, Further Reading
perlpodspec documentation, The Pod Format
perlport documentation, Further Reading
perlre documentation, Further Reading
perlref documentation, Further Reading
perlreftut documentation, Further Reading
perlreref documentation, Further Reading
perlretut documentation, Further Reading
perlrun documentation, Further Reading
perlsec documentation, Further Reading
perlstyle documentation, perltidy, Further Reading
perlsub documentation, Further Reading, Subroutines as Arguments
PerlSwitches directive, mod_perl
PerlTaintCheck directive, mod_perl
perltidy program, perltidyperltidy, Further Reading
perltie documentation, Arrays
perlvar documentation, Perl Error Basics
Pike, Rob, Further Reading
pipelines, processing, Processing Pipelines
POD (Plain Old Documentation)
format supporting, The Pod FormatBody Elements
testing, Testing PodHiding and Ignoring Functions
translating, Translating PodPod in Your Web Server
podchecker program, Checking Pod
polymorphic return values, Polymorphic Return Values
pos function, Global Matching
positive lookahead assertions, Positive lookahead assertionsPositive lookahead assertions
positive lookbehind assertions, Lookbehind Assertions, (?<!PATTERN) and (?<=PATTERN)Lookbehind Assertions, (?<!PATTERN) and (?<=PATTERN)
prime numbers, checking, Checking Primes
print function
debugging with, The Best Debugger in the World, Turning on Extra Output
interactive programs and, Interactive and Noninteractive Programs
tied variables and, Filehandles
PRINT tie method, Filehandles
printf function, Writing in Binary, Filehandles
PRINTF tie method, Filehandles
printing messages, Taint Checking
problem-solving guide, brian’s Guide to Solving Any Perl Problem
--profile switch, Perl::Critic
profiling Perl
Devel::NYTProf module and, Devel::NYTProf
finding the culprit, Finding the CulpritFinding the Culprit
general approach, The General ApproachThe General Approach
profiling DBI, Profiling DBISwitching Databases
profiling test suites, Profiling Test SuitesSummary
writing profilers, Writing My Own ProfilerDevel::LineCounter
Prussian Stance, Untainting Data

S

-s switch, Command-Line SwitchesThe -s Switch
scalar values (SVs), Hash Keys
SCALAR variable type, Typeglobs, Aliasing, ScalarsSelf-Destructing Values
Schilli, Michael, Recording Errors and Other Information, Further Reading
Schwartz, Randal L., Repeating a Subpattern, Further Reading, Further Reading, Further Reading, Further Reading, Further Reading, Further Reading
Schwartzian Transform, Don’t Turn Off Your Thinking CapDon’t Turn Off Your Thinking Cap
scope, lexical variables and, Package and Lexical VariablesGetting the Package Version, Further Reading
Scott, Peter, Further Reading
scriptdist program, Creating a Program Distribution
security, Storable module and, Storable’s Security ProblemStorable’s Security Problem
seek function, Fixed-Length Records
self-destructing values, Self-Destructing Values
self-referencing anonymous subroutines, Self-Referencing Anonymous Subroutines
setuid flag, Binary Numbers
Shankar, Arun Udaya, Further Reading
short circuit (||) operator, Turning on Extra Output
Signes, Ricardo, Perl::Critic
Siminov, Kirill, YAML module variants
Simões, Alberto, Further Reading
sleep program (Unix), Benchmarking Time
Software Engineering Institute, Further Reading
special privileges, Limit Special Privileges
splice function, Reinventing Arrays
sprintf function, Configuring Log4perl, pack, Writing in Binary
SQLLite, Switching Databases
Starsinic, Kurt, Distributing the Programs
stashes, The Symbol Table, The Easy Way
STDERR filehandle, Filehandle Arguments in Older Code, Recording Errors and Other Information, Log4perl
STDIN filehandle, Filehandle Arguments in Older Code, Interactive and Noninteractive Programs
STDOUT filehandle, Filehandle Arguments in Older Code, Interactive and Noninteractive Programs
STORE tie method, Tie::CycleSelf-Destructing Values, Hashes
strings (bit storage), Bit String StorageBit String Storage
__SUB__ token, Self-Referencing Anonymous Subroutines
subclassing modules, SubclassingOther Examples, Subclassing Pod::Simple
subpatterns, repeating, Repeating a SubpatternRepeating a Subpattern
subroutines
anonymous, Naming Anonymous Subroutines, Creating and Replacing Named SubroutinesCreating and Replacing Named Subroutines, Self-Referencing Anonymous Subroutines, Autoloaded Methods
arguments and, Subroutines as ArgumentsSubroutines as Arguments, Subroutine Arguments
autoloaded methods and, Autoloaded MethodsAutoSplit
as data, Subroutines as DataSubroutines as Data
dynamic, Dynamic SubroutinesFurther Reading
iterating through lists, Iterating Through Subroutine ListsIterating Through Subroutine Lists
method lists and, Method Lists
named, Creating and Replacing Named SubroutinesCreating and Replacing Named Subroutines
processing pipelines, Processing Pipelines
symbolic references, Symbolic ReferencesSymbolic References
wrapping, Wrapping SubroutinesWrapping Subroutines, Wrapping SubroutinesWrapping Subroutines
substr function, Bit Vectors, Reinventing Arrays
Sudoku example, Keeping Track of Things
SVs (scalar values), Hash Keys
symbol tables
aliasing variables and, AliasingAliasing
filehandle arguments in older code, Filehandle Arguments in Older Code
manipulating easily, The Easy Way
package variables and, Package and Lexical VariablesGetting the Package Version
subroutines and, Naming Anonymous Subroutines, Creating and Replacing Named Subroutines
typeglobs and, TypeglobsTypeglobs
usage overview, The Symbol TableThe Symbol Table
symbolic references, Symbolic ReferencesSymbolic References, Symbolic ReferencesSymbolic References
sysopen function, sysopen, Binary OR (|)
system function, List Forms of system and exec, Benchmarking Time, Child Process Errors, Left << and Right >> Shift Operators

T

-T switch, Taint CheckingWarnings Instead of Fatal Errors
-t switch, Warnings Instead of Fatal Errors
taint checking
automatic taint mode, Automatic Taint Mode
mod_perl module, mod_perl
setting up, Taint CheckingTaint Checking
side effects of, Side Effects of Taint Checking
tainted data, Tainted Data
untainting data and, Untainting DataSymbolic References
warnings instead of fatal errors, Warnings Instead of Fatal Errors
${^TAINT} variable, Warnings Instead of Fatal Errors
test suites, profiling, Profiling Test SuitesSummary
-test switch, Devel::Cover
testing POD
hiding and ignoring functions, Hiding and Ignoring Functions
Pod::Checker module and, Checking Pod
Pod::Coverage module and, Pod CoveragePod Coverage
testing programs, Testing the ProgramModules as Tests
Thalhammer, Jeffrey, Perl::Critic
tie function, They Look Like Normal VariablesBehind the Curtain, Arrays, Filehandles
tied variables
arrays and, ArraysSomething a Bit More Realistic
filehandles and, Filehandles
hashes and, HashesFilehandles
objects and, Behind the Curtain
scalars and, ScalarsSelf-Destructing Values
usage overview, They Look Like Normal VariablesAt the User Level
TIESCALAR method, Behind the CurtainSelf-Destructing Values
time program (Unix), Benchmarking Time
time, benchmarking, Benchmarking TimeBenchmarking Time
times function (C), Benchmarking Time
times function (Perl), Benchmarking Time
timethese function (Benchmark), Comparing CodeComparing Code
Torkington, Nathan, Further Reading
TRACE level error message, Log4perl
translating POD, Translating PodPod in Your Web Server
Tregar, Sam, Making It Even Easier
typeglobs
aliasing variables and, AliasingAliasing
assigning anonymous subroutines to, Creating and Replacing Named SubroutinesCreating and Replacing Named Subroutines, Autoloaded Methods
filehandle references to, Filehandle Arguments in Older Code
manipulating easily, The Easy Way
naming anonymous subroutines, Naming Anonymous Subroutines
package variables and, Package and Lexical VariablesGetting the Package Version
symbol tables and, TypeglobsTypeglobs

U

-U switch, Warnings Instead of Fatal Errors
unary NOT (~) operator, Unary NOT (~)
unpack function, pack, Unpacking Binary Formats
unparsing code, Unparsing Code with B::DeparseUnparsing Code with B::Deparse
unshift function, Behind the Curtain
untainting data
choosing with tainted data, Choosing Untainted Data with Tainted Data
hash keys, Hash Keys
IO::Handle module, IO::Handle::untaint
symbolic references, Symbolic ReferencesSymbolic References
taint checking and, Untainting DataUntainting Data
Taint::Util module, Taint::Util
use function
data persistence and, Data::Dumper
debugging and, Using a Different Debugger with -d
modules as tests, Modules as Tests
Safe compartments and, Safe Compartments

W

\W character class shortcut, Untainting Data
\w character class shortcut, Untainting Data
-w switch, My Method
wait function, Left << and Right >> Shift Operators
Wall, Larry, Further Reading
Wardley, Andy, Reporting Module Errors
WARN level error message, Log4perl
warn statements, The Best Debugger in the World, Reporting the Culprit
web servers, using POD, Pod in Your Web Server
whitelisting, Untainting Data
Wiles, Frank, Further Reading
wrapping subroutines, Wrapping SubroutinesWrapping Subroutines, Wrapping SubroutinesWrapping Subroutines
Wright, Ed, Further Reading

Y

YAML (YAML Ain’t Markup Language), Other Configuration Formats, YAMLYAML module variants, Further Reading