# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! # This file is autogenerated by buildtoc from all the other pods. # Edit those files and run pod/buildtoc to effect changes. =encoding UTF-8 =head1 NAME perltoc - perl documentation table of contents =head1 DESCRIPTION This page provides a brief table of contents for the rest of the Perl documentation set. It is meant to be scanned quickly or grepped through to locate the proper section you're looking for. =head1 BASIC DOCUMENTATION =head2 perl - The Perl 5 language interpreter =over 4 =item SYNOPSIS =item GETTING HELP =over 4 =item Overview =item Tutorials =item Reference Manual =item Internals and C Language Interface =item History =item Miscellaneous =item Language-Specific =item Platform-Specific =item Stubs for Deleted Documents =back =item DESCRIPTION =item AVAILABILITY =item ENVIRONMENT =item AUTHOR =item FILES =item SEE ALSO =item DIAGNOSTICS =item BUGS =item NOTES =back =head2 perlintro - a brief introduction and overview of Perl =over 4 =item DESCRIPTION =over 4 =item What is Perl? =item Running Perl programs =item Safety net =item Basic syntax overview =item Perl variable types Scalars, Arrays, Hashes =item Variable scoping =item Conditional and looping constructs if, while, for, foreach =item Builtin operators and functions Arithmetic, Numeric comparison, String comparison, Boolean logic, Miscellaneous =item Files and I/O =item Regular expressions Simple matching, Simple substitution, More complex regular expressions, Parentheses for capturing, Other regexp features =item Writing subroutines =item OO Perl =item Using Perl modules =back =item AUTHOR =back =head2 perlrun - how to execute the Perl interpreter =over 4 =item SYNOPSIS =item DESCRIPTION =over 4 =item #! and quoting on non-Unix systems X X<#!> OS/2, MS-DOS, Win95/NT, VMS =item Location of Perl X =item Command Switches X X B<-0>[I] X<-0> X<$/>, B<-a> X<-a> X, B<-C [I]> X<-C>, B<-c> X<-c>, B<-d> X<-d> X<-dt>, B<-dt>, B<-d:>I X<-d> X<-dt>, B<-dt:>I, B<-D>I X<-D> X X<-DDEBUGGING>, B<-D>I, B<-e> I X<-e>, B<-E> I X<-E>, B<-f> X<-f> X X, B<-F>I X<-F>, B<-h> X<-h>, B<-i>[I] X<-i> X, B<-I>I X<-I> X<@INC>, B<-l>[I] X<-l> X<$/> X<$\>, B<-m>[B<->]I X<-m> X<-M>, B<-M>[B<->]I, B<-M>[B<->]I<'module ...'>, B<-[mM]>[B<->]I, B<-n> X<-n>, B<-p> X<-p>, B<-s> X<-s>, B<-S> X<-S>, B<-t> X<-t>, B<-T> X<-T>, B<-u> X<-u>, B<-U> X<-U>, B<-v> X<-v>, B<-V> X<-V>, B<-V:>I, B<-w> X<-w>, B<-W> X<-W>, B<-X> X<-X>, B<-x> X<-x>, B<-x>I =back =item ENVIRONMENT X HOME X, LOGDIR X, PATH X, PERL5LIB X, PERL5OPT X, PERLIO X, :crlf X<:crlf>, :perlio X<:perlio>, :stdio X<:stdio>, :unix X<:unix>, PERLIO_DEBUG X, PERLLIB X, PERL5DB X, PERL5DB_THREADED X, PERL5SHELL (specific to the Win32 port) X, PERL_ALLOW_NON_IFS_LSP (specific to the Win32 port) X, PERL_DEBUG_MSTATS X, PERL_DESTRUCT_LEVEL X, PERL_DL_NONLAZY X, PERL_ENCODING X, PERL_HASH_SEED X, PERL_PERTURB_KEYS X, PERL_HASH_SEED_DEBUG X, PERL_MEM_LOG X, PERL_ROOT (specific to the VMS port) X, PERL_SIGNALS X, PERL_UNICODE X, PERL_USE_UNSAFE_INC X, SYS$LOGIN (specific to the VMS port) X, PERL_INTERNAL_RAND_SEED X =item ORDER OF APPLICATION -I, -M, the PERL5LIB environment variable, combinations of -I, -M and PERL5LIB, the PERL5OPT environment variable, Other complications, arch and version subdirs, sitecustomize.pl =back =head2 perlreftut - Mark's very short tutorial about references =over 4 =item DESCRIPTION =item Who Needs Complicated Data Structures? =item The Solution =item Syntax =over 4 =item Making References =item Using References =item An Example =item Arrow Rule =back =item Solution =item The Rest =item Summary =item Credits =over 4 =item Distribution Conditions =back =back =head2 perldsc - Perl Data Structures Cookbook =over 4 =item DESCRIPTION arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, more elaborate constructs =item REFERENCES X X X X =item COMMON MISTAKES =item CAVEAT ON PRECEDENCE X X =item WHY YOU SHOULD ALWAYS C =item DEBUGGING X X X X X X X X X X =item CODE EXAMPLES =item ARRAYS OF ARRAYS X X =over 4 =item Declaration of an ARRAY OF ARRAYS =item Generation of an ARRAY OF ARRAYS =item Access and Printing of an ARRAY OF ARRAYS =back =item HASHES OF ARRAYS X X =over 4 =item Declaration of a HASH OF ARRAYS =item Generation of a HASH OF ARRAYS =item Access and Printing of a HASH OF ARRAYS =back =item ARRAYS OF HASHES X X =over 4 =item Declaration of an ARRAY OF HASHES =item Generation of an ARRAY OF HASHES =item Access and Printing of an ARRAY OF HASHES =back =item HASHES OF HASHES X X =over 4 =item Declaration of a HASH OF HASHES =item Generation of a HASH OF HASHES =item Access and Printing of a HASH OF HASHES =back =item MORE ELABORATE RECORDS X X X =over 4 =item Declaration of MORE ELABORATE RECORDS =item Declaration of a HASH OF COMPLEX RECORDS =item Generation of a HASH OF COMPLEX RECORDS =back =item Database Ties =item SEE ALSO =item AUTHOR =back =head2 perllol - Manipulating Arrays of Arrays in Perl =over 4 =item DESCRIPTION =over 4 =item Declaration and Access of Arrays of Arrays =item Growing Your Own =item Access and Printing =item Slices =back =item SEE ALSO =item AUTHOR =back =head2 perlrequick - Perl regular expressions quick start =over 4 =item DESCRIPTION =item The Guide =over 4 =item Simple word matching =item Using character classes =item Matching this or that =item Grouping things and hierarchical matching =item Extracting matches =item Matching repetitions =item More matching =item Search and replace =item The split operator =item C =back =item BUGS =item SEE ALSO =item AUTHOR AND COPYRIGHT =over 4 =item Acknowledgments =back =back =head2 perlretut - Perl regular expressions tutorial =over 4 =item DESCRIPTION =item Part 1: The basics =over 4 =item Simple word matching =item Using character classes =item Matching this or that =item Grouping things and hierarchical matching Z<>0. Start with the first letter in the string C<'a'>, Z<>1. Try the first alternative in the first group C<'abd'>, Z<>2. Match C<'a'> followed by C<'b'>. So far so good, Z<>3. C<'d'> in the regexp doesn't match C<'c'> in the string - a dead end. So backtrack two characters and pick the second alternative in the first group C<'abc'>, Z<>4. Match C<'a'> followed by C<'b'> followed by C<'c'>. We are on a roll and have satisfied the first group. Set C<$1> to C<'abc'>, Z<>5 Move on to the second group and pick the first alternative C<'df'>, Z<>6 Match the C<'d'>, Z<>7. C<'f'> in the regexp doesn't match C<'e'> in the string, so a dead end. Backtrack one character and pick the second alternative in the second group C<'d'>, Z<>8. C<'d'> matches. The second grouping is satisfied, so set C<$2> to C<'d'>, Z<>9. We are at the end of the regexp, so we are done! We have matched C<'abcd'> out of the string C<"abcde"> =item Extracting matches =item Backreferences =item Relative backreferences =item Named backreferences =item Alternative capture group numbering =item Position information =item Non-capturing groupings =item Matching repetitions Z<>0. Start with the first letter in the string C<'t'>, Z<>1. The first quantifier C<'.*'> starts out by matching the whole string "C", Z<>2. C<'a'> in the regexp element C<'at'> doesn't match the end of the string. Backtrack one character, Z<>3. C<'a'> in the regexp element C<'at'> still doesn't match the last letter of the string C<'t'>, so backtrack one more character, Z<>4. Now we can match the C<'a'> and the C<'t'>, Z<>5. Move on to the third element C<'.*'>. Since we are at the end of the string and C<'.*'> can match 0 times, assign it the empty string, Z<>6. We are done! =item Possessive quantifiers =item Building a regexp =item Using regular expressions in Perl =back =item Part 2: Power tools =over 4 =item More on characters, strings, and character classes =item Compiling and saving regular expressions =item Composing regular expressions at runtime =item Embedding comments and modifiers in a regular expression =item Looking ahead and looking behind =item Using independent subexpressions to prevent backtracking =item Conditional expressions =item Defining named patterns =item Recursive patterns =item A bit of magic: executing Perl code in a regular expression =item Backtracking control verbs =item Pragmas and debugging =back =item SEE ALSO =item AUTHOR AND COPYRIGHT =over 4 =item Acknowledgments =back =back =head2 perlootut - Object-Oriented Programming in Perl Tutorial =over 4 =item DATE =item DESCRIPTION =item OBJECT-ORIENTED FUNDAMENTALS =over 4 =item Object =item Class =item Methods =item Attributes =item Polymorphism =item Inheritance =item Encapsulation =item Composition =item Roles =item When to Use OO =back =item PERL OO SYSTEMS =over 4 =item Moose Declarative sugar, Roles built-in, A miniature type system, Full introspection and manipulation, Self-hosted and extensible, Rich ecosystem, Many more features =item Class::Accessor =item Class::Tiny =item Role::Tiny =item OO System Summary L, L, L, L =item Other OO Systems =back =item CONCLUSION =back =head2 perlperf - Perl Performance and Optimization Techniques =over 4 =item DESCRIPTION =item OVERVIEW =over 4 =item ONE STEP SIDEWAYS =item ONE STEP FORWARD =item ANOTHER STEP SIDEWAYS =back =item GENERAL GUIDELINES =item BENCHMARKS =over 4 =item Assigning and Dereferencing Variables. =item Search and replace or tr =back =item PROFILING TOOLS =over 4 =item Devel::DProf =item Devel::Profiler =item Devel::SmallProf =item Devel::FastProf =item Devel::NYTProf =back =item SORTING Elapsed Real Time, User CPU Time, System CPU Time =item LOGGING =over 4 =item Logging if DEBUG (constant) =back =item POSTSCRIPT =item SEE ALSO =over 4 =item PERLDOCS =item MAN PAGES =item MODULES =item URLS =back =item AUTHOR =back =head2 perlstyle - Perl style guide =over 4 =item DESCRIPTION =back =head2 perlcheat - Perl 5 Cheat Sheet =over 4 =item DESCRIPTION =over 4 =item The sheet =back =item ACKNOWLEDGEMENTS =item AUTHOR =item SEE ALSO =back =head2 perltrap - Perl traps for the unwary =over 4 =item DESCRIPTION =over 4 =item Awk Traps =item C/C++ Traps =item JavaScript Traps =item Sed Traps =item Shell Traps =item Perl Traps =back =back =head2 perldebtut - Perl debugging tutorial =over 4 =item DESCRIPTION =item use strict =item Looking at data and -w and v =item help =item Stepping through code =item Placeholder for a, w, t, T =item REGULAR EXPRESSIONS =item OUTPUT TIPS =item CGI =item GUIs =item SUMMARY =item SEE ALSO =item AUTHOR =item CONTRIBUTORS =back =head2 perlfaq - Frequently asked questions about Perl =over 4 =item VERSION =item DESCRIPTION =over 4 =item Where to find the perlfaq =item How to use the perlfaq =item How to contribute to the perlfaq =item What if my question isn't answered in the FAQ? =back =item TABLE OF CONTENTS perlfaq1 - General Questions About Perl, perlfaq2 - Obtaining and Learning about Perl, perlfaq3 - Programming Tools, perlfaq4 - Data Manipulation, perlfaq5 - Files and Formats, perlfaq6 - Regular Expressions, perlfaq7 - General Perl Language Issues, perlfaq8 - System Interaction, perlfaq9 - Web, Email and Networking =item THE QUESTIONS =over 4 =item L: General Questions About Perl =item L: Obtaining and Learning about Perl =item L: Programming Tools =item L: Data Manipulation =item L: Files and Formats =item L: Regular Expressions =item L: General Perl Language Issues =item L: System Interaction =item L: Web, Email and Networking =back =item CREDITS =item AUTHOR AND COPYRIGHT =back =head2 perlfaq1 - General Questions About Perl =over 4 =item VERSION =item DESCRIPTION =over 4 =item What is Perl? =item Who supports Perl? Who develops it? Why is it free? =item Which version of Perl should I use? =item What are Perl 4, Perl 5, or Raku (Perl 6)? =item What is Raku (Perl 6)? =item How stable is Perl? =item How often are new versions of Perl released? =item Is Perl difficult to learn? =item How does Perl compare with other languages like Java, Python, REXX, Scheme, or Tcl? =item Can I do [task] in Perl? =item When shouldn't I program in Perl? =item What's the difference between "perl" and "Perl"? =item What is a JAPH? =item How can I convince others to use Perl? L, L =back =item AUTHOR AND COPYRIGHT =back =head2 perlfaq2 - Obtaining and Learning about Perl =over 4 =item VERSION =item DESCRIPTION =over 4 =item What machines support Perl? Where do I get it? =item How can I get a binary version of Perl? =item I don't have a C compiler. How can I build my own Perl interpreter? =item I copied the Perl binary from one machine to another, but scripts don't work. =item I grabbed the sources and tried to compile but gdbm/dynamic loading/malloc/linking/... failed. How do I make it work? =item What modules and extensions are available for Perl? What is CPAN? =item Where can I get information on Perl? L, L, L =item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? L, L, L, L =item Where can I post questions? =item Perl Books =item Which magazines have Perl content? =item Which Perl blogs should I read? =item What mailing lists are there for Perl? =item Where can I buy a commercial version of Perl? =item Where do I send bug reports? =back =item AUTHOR AND COPYRIGHT =back =head2 perlfaq3 - Programming Tools =over 4 =item VERSION =item DESCRIPTION =over 4 =item How do I do (anything)? Basics, L - Perl data types, L - Perl pre-defined variables, L - Perl syntax, L - Perl operators and precedence, L - Perl subroutines, Execution, L - how to execute the Perl interpreter, L - Perl debugging, Functions, L - Perl builtin functions, Objects, L - Perl references and nested data structures, L - Perl modules (packages and symbol tables), L - Perl objects, L - how to hide an object class in a simple variable, Data Structures, L - Perl references and nested data structures, L - Manipulating arrays of arrays in Perl, L - Perl Data Structures Cookbook, Modules, L - Perl modules (packages and symbol tables), L - constructing new Perl modules and finding existing ones, Regexes, L - Perl regular expressions, L - Perl builtin functions>, L - Perl operators and precedence, L - Perl locale handling (internationalization and localization), Moving to perl5, L - Perl traps for the unwary, L, Linking with C, L - Tutorial for writing XSUBs, L - XS language reference manual, L - Perl calling conventions from C, L - Introduction to the Perl API, L - how to embed perl in your C program, Various =item How can I use Perl interactively? =item How do I find which modules are installed on my system? =item How do I debug my Perl programs? =item How do I profile my Perl programs? =item How do I cross-reference my Perl programs? =item Is there a pretty-printer (formatter) for Perl? =item Is there an IDE or Windows Perl Editor? Eclipse, Enginsite, IntelliJ IDEA, Kephra, Komodo, Notepad++, Open Perl IDE, OptiPerl, Padre, PerlBuilder, visiPerl+, Visual Perl, Zeus, GNU Emacs, MicroEMACS, XEmacs, Jed, Vim, Vile, MultiEdit, SlickEdit, ConTEXT, bash, zsh, BBEdit and TextWrangler =item Where can I get Perl macros for vi? =item Where can I get perl-mode or cperl-mode for emacs? X =item How can I use curses with Perl? =item How can I write a GUI (X, Tk, Gtk, etc.) in Perl? X X X X X X X X Tk, Wx, Gtk and Gtk2, Win32::GUI, CamelBones, Qt, Athena =item How can I make my Perl program run faster? =item How can I make my Perl program take less memory? Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and stringification, Pass by reference, Tie large variables to disk =item Is it safe to return a reference to local or lexical data? =item How can I free an array or hash so my program shrinks? =item How can I make my CGI script more efficient? =item How can I hide the source for my Perl program? =item How can I compile my Perl program into byte code or C? =item How can I get C<#!perl> to work on [MS-DOS,NT,...]? =item Can I write useful Perl programs on the command line? =item Why don't Perl one-liners work on my DOS/Mac/VMS system? =item Where can I learn about CGI or Web programming in Perl? =item Where can I learn about object-oriented Perl programming? =item Where can I learn about linking C with Perl? =item I've read perlembed, perlguts, etc., but I can't embed perl in my C program; what am I doing wrong? =item When I tried to run my script, I got this message. What does it mean? =item What's MakeMaker? =back =item AUTHOR AND COPYRIGHT =back =head2 perlfaq4 - Data Manipulation =over 4 =item VERSION =item DESCRIPTION =item Data: Numbers =over 4 =item Why am I getting long decimals (eg, 19.9499999999999) instead of the numbers I should be getting (eg, 19.95)? =item Why is int() broken? =item Why isn't my octal data interpreted correctly? =item Does Perl have a round() function? What about ceil() and floor()? Trig functions? =item How do I convert between numeric representations/bases/radixes? How do I convert hexadecimal into decimal, How do I convert from decimal to hexadecimal, How do I convert from octal to decimal, How do I convert from decimal to octal, How do I convert from binary to decimal, How do I convert from decimal to binary =item Why doesn't & work the way I want it to? =item How do I multiply matrices? =item How do I perform an operation on a series of integers? =item How can I output Roman numerals? =item Why aren't my random numbers random? =item How do I get a random number between X and Y? =back =item Data: Dates =over 4 =item How do I find the day or week of the year? =item How do I find the current century or millennium? =item How can I compare two dates and find the difference? =item How can I take a string and turn it into epoch seconds? =item How can I find the Julian Day? =item How do I find yesterday's date? X X X X X X X X X X =item Does Perl have a Year 2000 or 2038 problem? Is Perl Y2K compliant? =back =item Data: Strings =over 4 =item How do I validate input? =item How do I unescape a string? =item How do I remove consecutive pairs of characters? =item How do I expand function calls in a string? =item How do I find matching/nesting anything? =item How do I reverse a string? =item How do I expand tabs in a string? =item How do I reformat a paragraph? =item How can I access or change N characters of a string? =item How do I change the Nth occurrence of something? =item How can I count the number of occurrences of a substring within a string? =item How do I capitalize all the words on one line? X X X X =item How can I split a [character]-delimited string except when inside [character]? =item How do I strip blank space from the beginning/end of a string? =item How do I pad a string with blanks or pad a number with zeroes? =item How do I extract selected columns from a string? =item How do I find the soundex value of a string? =item How can I expand variables in text strings? =item Does Perl have anything like Ruby's #{} or Python's f string? =item What's wrong with always quoting "$vars"? =item Why don't my EEHERE documents work? There must be no space after the EE part, There (probably) should be a semicolon at the end of the opening token, You can't (easily) have any space in front of the tag, There needs to be at least a line separator after the end token =back =item Data: Arrays =over 4 =item What is the difference between a list and an array? =item What is the difference between $array[1] and @array[1]? =item How can I remove duplicate elements from a list or array? =item How can I tell whether a certain element is contained in a list or array? =item How do I compute the difference of two arrays? How do I compute the intersection of two arrays? =item How do I test whether two arrays or hashes are equal? =item How do I find the first array element for which a condition is true? =item How do I handle linked lists? =item How do I handle circular lists? X X X X X X =item How do I shuffle an array randomly? =item How do I process/modify each element of an array? =item How do I select a random element from an array? =item How do I permute N elements of a list? X X X X X X =item How do I sort an array by (anything)? =item How do I manipulate arrays of bits? =item Why does defined() return true on empty arrays and hashes? =back =item Data: Hashes (Associative Arrays) =over 4 =item How do I process an entire hash? =item How do I merge two hashes? X X X =item What happens if I add or remove keys from a hash while iterating over it? =item How do I look up a hash element by value? =item How can I know how many entries are in a hash? =item How do I sort a hash (optionally by value instead of key)? =item How can I always keep my hash sorted? X =item What's the difference between "delete" and "undef" with hashes? =item Why don't my tied hashes make the defined/exists distinction? =item How do I reset an each() operation part-way through? =item How can I get the unique keys from two hashes? =item How can I store a multidimensional array in a DBM file? =item How can I make my hash remember the order I put elements into it? =item Why does passing a subroutine an undefined element in a hash create it? =item How can I make the Perl equivalent of a C structure/C++ class/hash or array of hashes or arrays? =item How can I use a reference as a hash key? =item How can I check if a key exists in a multilevel hash? =item How can I prevent addition of unwanted keys into a hash? =back =item Data: Misc =over 4 =item How do I handle binary data correctly? =item How do I determine whether a scalar is a number/whole/integer/float? =item How do I keep persistent data across program calls? =item How do I print out or copy a recursive data structure? =item How do I define methods for every class/object? =item How do I verify a credit card checksum? =item How do I pack arrays of doubles or floats for XS code? =back =item AUTHOR AND COPYRIGHT =back =head2 perlfaq5 - Files and Formats =over 4 =item VERSION =item DESCRIPTION =over 4 =item How do I flush/unbuffer an output filehandle? Why must I do this? X X X X =item How do I change, delete, or insert a line in a file, or append to the beginning of a file? X =item How do I count the number of lines in a file? X X X =item How do I delete the last N lines from a file? X X =item How can I use Perl's C<-i> option from within a program? X<-i> X =item How can I copy a file? X X X =item How do I make a temporary file name? X =item How can I manipulate fixed-record-length files? X X =item How can I make a filehandle local to a subroutine? How do I pass filehandles between subroutines? How do I make an array of filehandles? X X X =item How can I use a filehandle indirectly? X =item How can I open a filehandle to a string? X X X X =item How can I set up a footer format to be used with write()? X