Symbols
- # (hash symbol), Writing in Binary
- $! variable, Perl Error Basics, Operating System Errors
- $0 variable, Scripts with a Different Name
- $? variable, Perl Error Basics, Child Process Errors, Left << and Right >> Shift Operators
- $@ variable, Perl Error Basics, eval–autodie
- $_ variable, Safe Compartments, The Symbol Table
- % (modulus) operator, Subroutines as Data
- %! hash, Operating System Errors
- & (AND) operator, Bitwise AND (&)–Bitwise AND (&)
- (?!PATTERN) lookaheads, Negative lookahead assertions–Negative lookahead assertions
- (?#...) sequence, Readable Regexes, /x and (?#…)
- (?1) syntax, Repeating a Subpattern–Repeating a Subpattern
- (?<!PATTERN) lookbehinds, Lookbehind Assertions, (?<!PATTERN) and
(?<=PATTERN)
- (?<=PATTERN) lookbehinds, Lookbehind Assertions, (?<!PATTERN) and
(?<=PATTERN)
- (?=PATTERN) lookaheads, Positive lookahead assertions–Positive lookahead assertions
- *_ variable, Safe Compartments
- // (defined-OR) operator, Turning on Extra Output
- /x flag, Readable Regexes, /x and (?#…)
- : (colon), JSON
- << (left shift) operator, Left << and Right >> Shift Operators
- >> (right shift) operator, Left << and Right >> Shift Operators
- @_ variable, Safe Compartments, The Symbol Table, Subroutines as Arguments
- ^ (exclusive OR) operator, Exclusive OR (^)–Exclusive OR (^)
- | (OR) operator, Binary OR (|)–Binary OR (|)
- || (short circuit) operator, Turning on Extra Output
- ~ (NOT) operator, Unary NOT (~)
A
- Aas, Gisle, Readable Regexes, /x and (?#…), The perlbench Tool
- .al file, AutoSplit
- aliasing variables, Aliasing–Aliasing
- American Stance, Untainting Data
- anchors, global match, Global Match Anchors–Global Match Anchors
- AND (&) operator, Bitwise AND (&)–Bitwise AND (&)
- anonymous subroutines
- assigning to typeglobs, Creating and Replacing Named Subroutines–Creating and Replacing Named Subroutines, Autoloaded Methods
- naming, Naming Anonymous Subroutines
- self-referencing, Self-Referencing Anonymous Subroutines
- storing in variables, Subroutines as Data–Subroutines as Data
- appenders, Log4perl, Configuring Log4perl
- arguments
- open function and, Three-Argument open
- subroutines and, Subroutines as Arguments–Subroutines as Arguments, Subroutine Arguments
- @ARGV variable, Untainting Data, Don’t Turn Off Your Thinking Cap, Command-Line Switches
- ARRAY variable type, Typeglobs, Aliasing, Arrays–Something 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 Arguments–Subroutines 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 Theory–Benchmarking Theory
- comparing code, Comparing Code–Comparing Code
- handling outliers, Handling Outliers–Handling Outliers
- isolating the environment, Isolating the Environment–Isolating the Environment
- measuring runtime, Benchmarking Time–Benchmarking Time
- memory use, Memory Use–Memory Use
- perlbench tool, The perlbench Tool–Summary
- using your thinking cap, Don’t Turn Off Your Thinking Cap–Don’t Turn Off Your Thinking Cap
- binary numbers, Binary Numbers–Writing in Binary
- bit fundamentals
- binary numbers, Binary Numbers–Writing in Binary
- bit operators, Bit Operators–Left << and Right >> Shift Operators
- bit vectors, Bit Vectors–Bit Vectors
- vec function, The vec Function–Keeping 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 Vectors–Bit Vectors, The vec Function–Keeping 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 Errors–Child 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 Switches–Getopt::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 Switches–Getopt::Long
- Config module, perl’s Config–Summary
- configuration files, Configuration Files–Other Configuration Formats
- environment variables and, Better Ways–Turning on Extra Output
- interactive and noninteractive programs, Interactive and Noninteractive Programs
- Log::Log4perl module, Configuring Log4perl–Adding my own information
- scripts with a different name, Scripts with a Different Name
- things not to do, Things Not to Do–Code 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 Modules–Starting Over on My Own, Distributing the Programs
- croak function (Carp), Reporting the Culprit–Reporting the Culprit
- Cross, Dave, Further Reading
- Crow, Phil, Further Reading
- =cut directive (Pod), Directives
D
- -D switch, The -D Switch–The -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 Files–DBM::Deep
- Perl-agnostic formats, Perl-Agnostic Formats–MessagePack
- Perl-specific formats, Perl-Specific Formats–Similar Modules
- Sereal protocol and, Sereal–Sereal
- Storable module and, Storable–Storable’s Security Problem
- databases
- profiling, The General Approach–Making It Even Easier
- switching, Switching Databases–Switching Databases
- dbiprof tool, Making It Even Easier
- DBI_PROFILE environment variable, Profiling DBI, Making It Even Easier
- DBM files, DBM Files–DBM::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 Debuggers–Devel::hdb, My Method
- with IDE debuggers, IDE Debuggers–Komodo
- 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 Expressions–The -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 Subroutines–Wrapping Subroutines
- (?(DEFINE)...) syntax, Repeating a Subpattern–Repeating 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 die–Propagating 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), Directives–Encoding
- distributions (program)
- creating, Creating a Program Distribution–Distributing 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 Subroutines–Further 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 Source–De-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 Variables–Turning on Extra Output, Turning on Extra Output
- environment, isolating, Isolating the Environment–Isolating the Environment
- EPIC (Eclipse Perl Integration) debugger, EPIC
- $ERRNO variable, Perl Error Basics
- error handling
- child process errors, Child Process Errors–Child Process Errors
- exceptions and, Exceptions–autodie, Catching Exceptions–TryCatch
- operating systems, Operating System Errors–Operating 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 Culprit–Reporting the Culprit
- reporting module errors, Reporting Module Errors–Separation 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 Exceptions–TryCatch
- throwing, Exceptions–autodie
- 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::Cycle–Self-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, JSON–JSON, Further Reading
- MessagePack, MessagePack
- YAML, Other Configuration Formats, YAML–YAML module variants, Further Reading
- formats (Perl-specific)
- Data::Dumper module and, Data::Dumper–Similar Modules
- fixed-length records, Fixed-Length Records
- pack function and, pack
- Sereal protocol and, Sereal–Sereal, Further Reading
- unpacking binary, Unpacking Binary Formats
- formats (Pod), The Pod Format–Body Elements
- freezing data, Freezing Data–Freezing Data
- Friedl, Jeffrey, Lookbehind Assertions, (?<!PATTERN) and
(?<=PATTERN), Further Reading
G
- \G anchor, Global Match Anchors, Lookbehind Assertions, (?<!PATTERN) and
(?<=PATTERN)
- /g flag, Global Matching
- -g switch, Getopt::Std
- Garcia-Suarez, Rafaël, Further Reading
- glob function, Don’t Turn Off Your Thinking Cap–Don’t Turn Off Your Thinking Cap
- GLOB variable type, Typeglobs, Filehandle Arguments in Older Code
- global matching, Global Matching–Global Match Anchors
- -gnu switch
(perltidy), perltidy
- Goess, Kevin, Log4perl
- grep utility, Iterating Through Subroutine Lists, Subroutines as Arguments
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, Hashes–Filehandles
- =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 Debuggers–Komodo
- 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 Environment–Isolating the Environment
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
L
- LC_CTYPE environment variable, Untainting Data
- left shift (<<) operator, Left << and Right >> Shift Operators
- length function, eval
- Leroy, Jean-Louis, Benchmarking Time, Further Reading
- Lester, Andy, Further Reading, Pod in Your Web Server, Pod Coverage
- lexical variables, Package and Lexical Variables–Getting the Package Version
- line counting program, Devel::LineCounter
- __LINE__ directive, die with a Reference
- -line switch, Getopt::Long
- list assignments, rules for, Global Matching
- local variable, Package and Lexical Variables
- locale settings, Untainting Data
- Log4j Java library, Further Reading
- logging, Logging–Further Reading
- lookahead assertions, Positive lookahead assertions–Negative lookahead assertions
- lookarounds, Lookarounds–Lookbehind Assertions, (?<!PATTERN) and
(?<=PATTERN)
- lookbehind assertions, Lookarounds, Lookbehind Assertions, (?<!PATTERN) and
(?<=PATTERN)–Lookbehind Assertions, (?<!PATTERN) and
(?<=PATTERN)
M
- -M switch, Using a Different Debugger with -d, My Method
- mail command, List Forms of system and exec
- main routine, The main Thing–Backing 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 Use–Memory 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 Programs–Further Reading
- replacing parts, Replacing Module Parts–Replacing Module Parts
- reporting errors, Reporting Module Errors–Separation of Concerns, Reporting the Culprit–Reporting the Culprit
- safely changing, Safely Changing Modules
- solutions for fixing, Choosing the Right Solution–Starting Over on My Own
- subclassing, Subclassing–Other Examples, Subclassing Pod::Simple
- taking of maintenance of, Taking Over a Module
- as tests, Modules as Tests–Modules as Tests
- wrapping subroutines, Wrapping Subroutines–Wrapping 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 Subroutines–Creating and Replacing Named Subroutines
- naming anonymous subroutines, Naming Anonymous Subroutines
- NDC (Nested Diagnostic Context), Adding my own information
- negative lookahead assertions, Negative lookahead assertions–Negative 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, Deobfuscation–Unparsing Code with B::Deparse
- objects
- hashes as, Hashes as Objects
- propagating with die, Propagating Objects with die–Propagating 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 Errors–Operating 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 Outliers–Handling Outliers
P
- pack function, pack
- __PACKAGE__ directive, die with a Reference, Logging Categories
- package variables, Package and Lexical Variables–Getting the Package Version
- (?PARNO) syntax, Repeating a Subpattern
- patch program, Sending Patches to the Author, Further Reading
- patches, Sending Patches to the Author–Sending Patches to the Author
- PATH environment variable, Taint Checking
- patterns
- comma-adding, The -D Switch
- placeholders for messages, Configuring Log4perl
- repeating subpatterns, Repeating a Subpattern–Repeating a Subpattern
- PAUSE (Perl Authors Upload Server), Taking Over a Module–Forking
- Perl Authors Upload Server (PAUSE), Taking Over a Module–Forking
- 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 Tool–Summary
- perlboot documentation, Further Reading
- perlcritic command, Perl::Critic–Perl::Critic
- perldata documentation, Further Reading
- perldebguts documentation, The -D Switch, Further Reading, Memory Use
- perldebug documentation, The Perl Debugger
- perldoc command, Pod Translators–Pod 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, perltidy–perltidy, 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 Format–Body Elements
- testing, Testing Pod–Hiding and Ignoring Functions
- translating, Translating Pod–Pod in Your Web Server
- podchecker program, Checking Pod
- polymorphic return values, Polymorphic Return Values
- pos function, Global Matching
- positive lookahead assertions, Positive lookahead assertions–Positive 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 Culprit–Finding the Culprit
- general approach, The General Approach–The General Approach
- profiling DBI, Profiling DBI–Switching Databases
- profiling test suites, Profiling Test Suites–Summary
- writing profilers, Writing My Own Profiler–Devel::LineCounter
- Prussian Stance, Untainting Data
R
- (?R) syntax, Repeating a Subpattern
- Rabbitson, Peter, Further Reading
- Randal, Allison, Pod::Simple, Subclassing Pod::Simple, Further Reading
- Ray, Randy, Further Reading
- READLINE tie method, Filehandles
- recursive regular expressions, Recursive Regular Expressions–Repeating a Subpattern
- regular expressions
- debugging, Debugging Regular Expressions–The -D Switch
- global matching, Global Matching–Global Match Anchors
- lookarounds, Lookarounds–Lookbehind Assertions, (?<!PATTERN) and
(?<=PATTERN)
- readable, Readable Regexes, /x and (?#…)–Readable Regexes, /x and (?#…)
- recursive, Recursive Regular Expressions–Repeating a Subpattern
- release utility, Distributing the Programs
- repeating subpatterns, Repeating a Subpattern–Repeating a Subpattern
- REPL program example, Safe Compartments, Subroutines as Data
- reporting errors (see error handling)
- require function, Data::Dumper, Modules as Tests
- return values
- error handling, Separation of Concerns–Separation of Concerns
- polymorphic, Polymorphic Return Values
- Reverse Polish Notation, Subroutines as Data
- reverse-engineering Perl, De-encoding Hidden Source–De-encoding Hidden Source
- RFC 4627, Further Reading
- right shift (>>) operator, Left << and Right >> Shift Operators
- Rolsky, Dave, Further Reading, Recording Errors and Other Information
- ROT-13 cipher, De-encoding Hidden Source–De-encoding Hidden Source
- ROT-255 cipher, De-encoding Hidden Source
- runtime, measuring, Benchmarking Time–Benchmarking Time
S
- -s switch, Command-Line Switches–The -s Switch
- scalar values (SVs), Hash Keys
- SCALAR variable type, Typeglobs, Aliasing, Scalars–Self-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 Cap–Don’t Turn Off Your Thinking Cap
- scope, lexical variables and, Package and Lexical Variables–Getting the Package Version, Further Reading
- Scott, Peter, Further Reading
- scriptdist program, Creating a Program Distribution
- security, Storable module and, Storable’s Security Problem–Storable’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::Cycle–Self-Destructing Values, Hashes
- strings (bit storage), Bit String Storage–Bit String Storage
- __SUB__ token, Self-Referencing Anonymous Subroutines
- subclassing modules, Subclassing–Other Examples, Subclassing Pod::Simple
- subpatterns, repeating, Repeating a Subpattern–Repeating a Subpattern
- subroutines
- anonymous, Naming Anonymous Subroutines, Creating and Replacing Named Subroutines–Creating and Replacing Named Subroutines, Self-Referencing Anonymous Subroutines, Autoloaded Methods
- arguments and, Subroutines as Arguments–Subroutines as Arguments, Subroutine Arguments
- autoloaded methods and, Autoloaded Methods–AutoSplit
- as data, Subroutines as Data–Subroutines as Data
- dynamic, Dynamic Subroutines–Further Reading
- iterating through lists, Iterating Through Subroutine Lists–Iterating Through Subroutine Lists
- method lists and, Method Lists
- named, Creating and Replacing Named Subroutines–Creating and Replacing Named Subroutines
- processing pipelines, Processing Pipelines
- symbolic references, Symbolic References–Symbolic References
- wrapping, Wrapping Subroutines–Wrapping Subroutines, Wrapping Subroutines–Wrapping Subroutines
- substr function, Bit Vectors, Reinventing Arrays
- Sudoku example, Keeping Track of Things
- SVs (scalar values), Hash Keys
- symbol tables
- aliasing variables and, Aliasing–Aliasing
- filehandle arguments in older code, Filehandle Arguments in Older Code
- manipulating easily, The Easy Way
- package variables and, Package and Lexical Variables–Getting the Package Version
- subroutines and, Naming Anonymous Subroutines, Creating and Replacing Named Subroutines
- typeglobs and, Typeglobs–Typeglobs
- usage overview, The Symbol Table–The Symbol Table
- symbolic references, Symbolic References–Symbolic References, Symbolic References–Symbolic 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 Checking–Warnings 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 Checking–Taint Checking
- side effects of, Side Effects of Taint Checking
- tainted data, Tainted Data
- untainting data and, Untainting Data–Symbolic References
- warnings instead of fatal errors, Warnings Instead of Fatal Errors
- ${^TAINT}
variable, Warnings Instead of Fatal Errors
- test suites, profiling, Profiling Test Suites–Summary
- -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 Coverage–Pod Coverage
- testing programs, Testing the Program–Modules as Tests
- Thalhammer, Jeffrey, Perl::Critic
- tie function, They Look Like Normal Variables–Behind the Curtain, Arrays, Filehandles
- tied variables
- arrays and, Arrays–Something a Bit More Realistic
- filehandles and, Filehandles
- hashes and, Hashes–Filehandles
- objects and, Behind the Curtain
- scalars and, Scalars–Self-Destructing Values
- usage overview, They Look Like Normal Variables–At the User Level
- TIESCALAR method, Behind the Curtain–Self-Destructing Values
- time program (Unix), Benchmarking Time
- time, benchmarking, Benchmarking Time–Benchmarking Time
- times function (C), Benchmarking Time
- times function (Perl), Benchmarking Time
- timethese function (Benchmark), Comparing Code–Comparing Code
- Torkington, Nathan, Further Reading
- TRACE level error message, Log4perl
- translating POD, Translating Pod–Pod in Your Web Server
- Tregar, Sam, Making It Even Easier
- typeglobs
- aliasing variables and, Aliasing–Aliasing
- assigning anonymous subroutines to, Creating and Replacing Named Subroutines–Creating 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 Variables–Getting the Package Version
- symbol tables and, Typeglobs–Typeglobs
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::Deparse–Unparsing 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 References–Symbolic References
- taint checking and, Untainting Data–Untainting 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
V
- variables
- aliasing, Aliasing–Aliasing
- environment, Environment Variables–Turning on Extra Output, Turning on Extra Output
- lexical, Package and Lexical Variables–Getting the Package Version
- package, Package and Lexical Variables–Getting the Package Version
- storing anonymous subroutines in, Subroutines as Data–Subroutines as Data
- tied, The Magic of Tied Variables–Further Reading
- types of, Typeglobs
- vec function, The vec Function–Keeping Track of Things
- -verbose switch, Getopt::Long
- $!{VMSERR} variable, Errors Specific to the Operating System
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 Subroutines–Wrapping Subroutines, Wrapping Subroutines–Wrapping Subroutines
- Wright, Ed, Further Reading