---
name: "perltoc"
section: "1"
platform: "linux"
package: "perl-doc"
version: "5.40.1-6+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux", "openbsd"]
url: "https://new.carta.tech/perltoc"
---

# perltoc(1)

perl documentation table of contents

## NAME

perltoc - perl documentation table of contents

## 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.

## BASIC DOCUMENTATION

### perl - The Perl 5 language interpreter

- SYNOPSIS

  - GETTING HELP

  - Overview

    - Tutorials

    - Reference Manual

    - Internals and C Language Interface

    - History

    - Miscellaneous

    - Language-Specific

    - Platform-Specific

    - Stubs for Deleted Documents

    - DESCRIPTION

  - AVAILABILITY

  - ENVIRONMENT

  - AUTHOR

  - FILES

  - SEE ALSO

  \<https://www.perl.org/\>, \<https://www.perl.com/\>, \<https://www.cpan.org/\>, \<https://www.pm.org/\>

- DIAGNOSTICS

  - BUGS

  - NOTES

  ### perlintro - a brief introduction and overview of Perl

- DESCRIPTION

  - What is Perl?

    - Running Perl programs

    - Safety net

    - Basic syntax overview

    - Perl variable types

    Scalars, Arrays, Hashes

  - Variable scoping

    - Conditional and looping constructs

    if, while, for, foreach

  - Builtin operators and functions

    Arithmetic, Numeric comparison, String comparison, Boolean logic, Miscellaneous

  - Files and I/O

    - Regular expressions

    Simple matching, Simple substitution, More complex regular expressions, Parentheses for capturing, Other regexp features

  - Writing subroutines

    - OO Perl

    - Using Perl modules

    - AUTHOR

  ### perlrun - how to execute the Perl interpreter

- SYNOPSIS

  - DESCRIPTION

  - \#! and quoting on non-Unix systems

    OS/2, MS-DOS, Win95/NT, VMS

  - Location of Perl

    - Command Switches

    **-0**\[*octal/hexadecimal*\]  , **-a**  , **-C** **\[*****number/list*****\]** , **-c** , **-d**  , **-dt**, **-d:***MOD\[=bar,baz\]*  , **-dt:***MOD\[=bar,baz\]*, **-D***letters*   , **-D***number*, **-e** *commandline* , **-E** *commandline* , **-f** \
      , **-F***pattern* , **-g** , **-h** , **-?** , **-i**\[*extension*\]  , **-I***directory*  , **-l**\[*octnum*\]   , **-m**\[**-**\]*module*  , **-M**\[**-**\]*module*, **-M**\[**-**\]*'module ...'*, **-\[mM\]**\[**-**\]*module=arg\[,arg\]...*, **-n** , **-p** , **-s** , **-S** , **-t** , **-T** , **-u** , **-U** , **-v** , **-V** , **-V:***configvar*, **-w** , **-W** , **-X** , **-x** , **-x***directory*

- ENVIRONMENT

  HOME , LOGDIR , PATH , PERL5LIB , PERL5OPT , PERLIO , :crlf , :perlio , :stdio , :unix , PERLIO\_DEBUG , PERLLIB , PERL5DB , PERL5DB\_THREADED , PERL5SHELL (specific to the Win32 port) , PERL\_ALLOW\_NON\_IFS\_LSP (specific to the Win32 port) , PERL\_DEBUG\_MSTATS , PERL\_DESTRUCT\_LEVEL , PERL\_DL\_NONLAZY , PERL\_ENCODING , PERL\_HASH\_SEED , PERL\_PERTURB\_KEYS , PERL\_HASH\_SEED\_DEBUG , PERL\_MEM\_LOG , PERL\_ROOT (specific to the VMS port) , PERL\_SIGNALS , PERL\_UNICODE , PERL\_USE\_UNSAFE\_INC , SYS$LOGIN (specific to the VMS port) , PERL\_INTERNAL\_RAND\_SEED , PERL\_RAND\_SEED

- 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

### perlreftut - Mark's very short tutorial about references

- DESCRIPTION

  - Who Needs Complicated Data Structures?

  - The Solution

  - Syntax

  - Making References

    - Using References

    - An Example

    - Arrow Rule

    - Solution

  - The Rest

  - Summary

  - Credits

  - Distribution Conditions

    ### perldsc - Perl Data Structures Cookbook

- DESCRIPTION

  arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, more elaborate constructs

- REFERENCES

  - COMMON MISTAKES

  - CAVEAT ON PRECEDENCE

  - WHY YOU SHOULD ALWAYS "use VERSION"

  - DEBUGGING

  - CODE EXAMPLES

  - ARRAYS OF ARRAYS

  - Declaration of an ARRAY OF ARRAYS

    - Generation of an ARRAY OF ARRAYS

    - Access and Printing of an ARRAY OF ARRAYS

    - HASHES OF ARRAYS

  - Declaration of a HASH OF ARRAYS

    - Generation of a HASH OF ARRAYS

    - Access and Printing of a HASH OF ARRAYS

    - ARRAYS OF HASHES

  - Declaration of an ARRAY OF HASHES

    - Generation of an ARRAY OF HASHES

    - Access and Printing of an ARRAY OF HASHES

    - HASHES OF HASHES

  - Declaration of a HASH OF HASHES

    - Generation of a HASH OF HASHES

    - Access and Printing of a HASH OF HASHES

    - MORE ELABORATE RECORDS

  - Declaration of MORE ELABORATE RECORDS

    - Declaration of a HASH OF COMPLEX RECORDS

    - Generation of a HASH OF COMPLEX RECORDS

    - Database Ties

  - SEE ALSO

  - AUTHOR

  ### perllol - Manipulating Arrays of Arrays in Perl

- DESCRIPTION

  - Declaration and Access of Arrays of Arrays

    - Growing Your Own

    - Access and Printing

    - Slices

    - SEE ALSO

  - AUTHOR

  ### perlrequick - Perl regular expressions quick start

- DESCRIPTION

  - The Guide

  - Simple word matching

    - Using character classes

    - Matching this or that

    - Grouping things and hierarchical matching

    - Extracting matches

    - Matching repetitions

    - More matching

    - Search and replace

    - The split operator

    - "use re 'strict'"

    - BUGS

  - SEE ALSO

  - AUTHOR AND COPYRIGHT

  - Acknowledgments

    ### perlretut - Perl regular expressions tutorial

- DESCRIPTION

  - Part 1: The basics

  - Simple word matching

    - Using character classes

    - Matching this or that

    - Grouping things and hierarchical matching

    - Extracting matches

    - Backreferences

    - Relative backreferences

    - Named backreferences

    - Alternative capture group numbering

    - Position information

    - Non-capturing groupings

    - Matching repetitions

    - Possessive quantifiers

    - Building a regexp

    - Using regular expressions in Perl

    - Part 2: Power tools

  - More on characters, strings, and character classes

    - Compiling and saving regular expressions

    - Composing regular expressions at runtime

    - Embedding comments and modifiers in a regular expression

    - Looking ahead and looking behind

    - Using independent subexpressions to prevent backtracking

    - Conditional expressions

    - Defining named patterns

    - Recursive patterns

    - A bit of magic: executing Perl code in a regular expression

    - Backtracking control verbs

    - Pragmas and debugging

    - SEE ALSO

  - AUTHOR AND COPYRIGHT

  - Acknowledgments

    ### perlootut - Object-Oriented Programming in Perl Tutorial

- DATE

  - DESCRIPTION

  - OBJECT-ORIENTED FUNDAMENTALS

  - Object

    - Class

    - Methods

    - Attributes

    - Polymorphism

    - Inheritance

    - Encapsulation

    - Composition

    - Roles

    - When to Use OO

    - PERL OO SYSTEMS

  - Moose

    Declarative sugar, Roles built-in, A miniature type system, Full introspection and manipulation, Self-hosted and extensible, Rich ecosystem, Many more features

  - Class::Accessor

    - Class::Tiny

    - Role::Tiny

    - OO System Summary

    Moose, Class::Accessor, Class::Tiny, Role::Tiny

  - Other OO Systems

    - CONCLUSION

  ### perlperf - Perl Performance and Optimization Techniques

- DESCRIPTION

  - OVERVIEW

  - ONE STEP SIDEWAYS

    - ONE STEP FORWARD

    - ANOTHER STEP SIDEWAYS

    - GENERAL GUIDELINES

  - BENCHMARKS

  - Assigning and Dereferencing Variables

    - Search and replace or tr

    - PROFILING TOOLS

  - Devel::DProf

    - Devel::Profiler

    - Devel::SmallProf

    - Devel::FastProf

    - Devel::NYTProf

    - SORTING

  Elapsed Real Time, User CPU Time, System CPU Time

- LOGGING

  - Logging if DEBUG (constant)

    - POSTSCRIPT

  - SEE ALSO

  - PERLDOCS

    - MAN PAGES

    - MODULES

    - URLS

    - AUTHOR

  ### perlstyle - Perl style guide

- DESCRIPTION

  ### perlcheat - Perl 5 Cheat Sheet

- DESCRIPTION

  - The sheet

    - ACKNOWLEDGEMENTS

  - AUTHOR

  - SEE ALSO

  ### perltrap - Perl traps for the unwary

- DESCRIPTION

  - Awk Traps

    - C/C++ Traps

    - JavaScript Traps

    - Sed Traps

    - Shell Traps

    - Perl Traps

    ### perldebtut - Perl debugging tutorial

- DESCRIPTION

  - use strict

  - Looking at data and -w and v

  - help

  - Stepping through code

  - Placeholder for a, w, t, T

  - REGULAR EXPRESSIONS

  - OUTPUT TIPS

  - CGI

  - GUIs

  - SUMMARY

  - SEE ALSO

  - AUTHOR

  - CONTRIBUTORS

  ### perlfaq - Frequently asked questions about Perl

- VERSION

  - DESCRIPTION

  - Where to find the perlfaq

    - How to use the perlfaq

    - How to contribute to the perlfaq

    - What if my question isn't answered in the FAQ?

    - 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

- THE QUESTIONS

  - 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

    - CREDITS

  - AUTHOR AND COPYRIGHT

  ### perlfaq1 - General Questions About Perl

- VERSION

  - DESCRIPTION

  - What is Perl?

    - Who supports Perl? Who develops it? Why is it free?

    - Which version of Perl should I use?

    - What is Raku (Perl 6)?

    - How stable is Perl?

    - How often are new versions of Perl released?

    - Is Perl difficult to learn?

    - How does Perl compare with other languages like Java, Python, REXX, Scheme, or Tcl?

    - Can I do \[task\] in Perl?

    - When shouldn't I program in Perl?

    - What's the difference between "perl" and "Perl"?

    - What is a JAPH?

    - How can I convince others to use Perl?

    \<http://www.perl.org/about.html\>, \<http://perltraining.com.au/whyperl.html\>

- AUTHOR AND COPYRIGHT

  ### perlfaq2 - Obtaining and Learning about Perl

- VERSION

  - DESCRIPTION

  - What machines support Perl? Where do I get it?

    - How can I get a binary version of Perl?

    - I don't have a C compiler. How can I build my own Perl interpreter?

    - I copied the Perl binary from one machine to another, but scripts don't work.

    - I grabbed the sources and tried to compile but gdbm/dynamic loading/malloc/linking/... failed. How do I make it work?

    - What modules and extensions are available for Perl? What is CPAN?

    - Where can I get information on Perl?

    \<http://www.perl.org/\>, \<http://perldoc.perl.org/\>, \<http://learn.perl.org/\>

  - What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org?

    \<http://www.perl.org/\>, \<http://learn.perl.org/\>, \<http://jobs.perl.org/\>, \<http://lists.perl.org/\>

  - Where can I post questions?

    - Perl Books

    - Which magazines have Perl content?

    - Which Perl blogs should I read?

    - What mailing lists are there for Perl?

    - Where can I buy a commercial version of Perl?

    - Where do I send bug reports?

    - AUTHOR AND COPYRIGHT

  ### perlfaq3 - Programming Tools

- VERSION

  - DESCRIPTION

  - How do I do (anything)?

    Basics, perldata - Perl data types, perlvar - Perl pre-defined variables, perlsyn - Perl syntax, perlop - Perl operators and precedence, perlsub - Perl subroutines, Execution, perlrun - how to execute the Perl interpreter, perldebug - Perl debugging, Functions, perlfunc - Perl builtin functions, Objects, perlref - Perl references and nested data structures, perlmod - Perl modules (packages and symbol tables), perlobj - Perl objects, perltie - how to hide an object class in a simple variable, Data Structures, perlref - Perl references and nested data structures, perllol - Manipulating arrays of arrays in Perl, perldsc - Perl Data Structures Cookbook, Modules, perlmod - Perl modules (packages and symbol tables), perlmodlib - constructing new Perl modules and finding existing ones, Regexes, perlre - Perl regular expressions, perlfunc - Perl builtin functions\>, perlop - Perl operators and precedence, perllocale - Perl locale handling (internationalization and localization), Moving to perl5, perltrap - Perl traps for the unwary, perl, Linking with C, perlxstut - Tutorial for writing XSUBs, perlxs - XS language reference manual, perlcall - Perl calling conventions from C, perlguts - Introduction to the Perl API, perlembed - how to embed perl in your C program, Various

  - How can I use Perl interactively?

    - How do I find which modules are installed on my system?

    - How do I debug my Perl programs?

    - How do I profile my Perl programs?

    - How do I cross-reference my Perl programs?

    - Is there a pretty-printer (formatter) for Perl?

    - 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

  - Where can I get Perl macros for vi?

    - Where can I get perl-mode or cperl-mode for emacs?

    - How can I use curses with Perl?

    - How can I write a GUI (X, Tk, Gtk, etc.) in Perl?

    Tk, Wx, Gtk and Gtk2, Win32::GUI, CamelBones, Qt, Athena

  - How can I make my Perl program run faster?

    - 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

  - Is it safe to return a reference to local or lexical data?

    - How can I free an array or hash so my program shrinks?

    - How can I make my CGI script more efficient?

    - How can I hide the source for my Perl program?

    - How can I compile my Perl program into byte code or C?

    - How can I get "#!perl" to work on \[MS-DOS,NT,...\]?

    - Can I write useful Perl programs on the command line?

    - Why don't Perl one-liners work on my DOS/Mac/VMS system?

    - Where can I learn about CGI or Web programming in Perl?

    - Where can I learn about object-oriented Perl programming?

    - Where can I learn about linking C with Perl?

    - I've read perlembed, perlguts, etc., but I can't embed perl in my C program; what am I doing wrong?

    - When I tried to run my script, I got this message. What does it mean?

    - What's MakeMaker?

    - AUTHOR AND COPYRIGHT

  ### perlfaq4 - Data Manipulation

- VERSION

  - DESCRIPTION

  - Data: Numbers

  - Why am I getting long decimals (eg, 19.9499999999999) instead of the numbers I should be getting (eg, 19.95)?

    - Why is **int()** broken?

    - Why isn't my octal data interpreted correctly?

    - Does Perl have a **round()** function? What about **ceil()** and **floor()**? Trig functions?

    - 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

  - Why doesn't & work the way I want it to?

    - How do I multiply matrices?

    - How do I perform an operation on a series of integers?

    - How can I output Roman numerals?

    - Why aren't my random numbers random?

    - How do I get a random number between X and Y?

    - Data: Dates

  - How do I find the day or week of the year?

    - How do I find the current century or millennium?

    - How can I compare two dates and find the difference?

    - How can I take a string and turn it into epoch seconds?

    - How can I find the Julian Day?

    - How do I find yesterday's date?

    - Does Perl have a Year 2000 or 2038 problem? Is Perl Y2K compliant?

    - Data: Strings

  - How do I validate input?

    - How do I unescape a string?

    - How do I remove consecutive pairs of characters?

    - How do I expand function calls in a string?

    - How do I find matching/nesting anything?

    - How do I reverse a string?

    - How do I expand tabs in a string?

    - How do I reformat a paragraph?

    - How can I access or change N characters of a string?

    - How do I change the Nth occurrence of something?

    - How can I count the number of occurrences of a substring within a string?

    - How do I capitalize all the words on one line?

    - How can I split a \[character\]-delimited string except when inside \[character\]?

    - How do I strip blank space from the beginning/end of a string?

    - How do I pad a string with blanks or pad a number with zeroes?

    - How do I extract selected columns from a string?

    - How do I find the soundex value of a string?

    - How can I expand variables in text strings?

    - Does Perl have anything like Ruby's #{} or Python's f string?

    - What's wrong with always quoting "$vars"?

    - Why don't my \<\<HERE documents work?

    There must be no space after the \<\< 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

- Data: Arrays

  - What is the difference between a list and an array?

    - What is the difference between $array\[1\] and @array\[1\]?

    - How can I remove duplicate elements from a list or array?

    - How can I tell whether a certain element is contained in a list or array?

    - How do I compute the difference of two arrays? How do I compute the intersection of two arrays?

    - How do I test whether two arrays or hashes are equal?

    - How do I find the first array element for which a condition is true?

    - How do I handle linked lists?

    - How do I handle circular lists?

    - How do I shuffle an array randomly?

    - How do I process/modify each element of an array?

    - How do I select a random element from an array?

    - How do I permute N elements of a list?

    - How do I sort an array by (anything)?

    - How do I manipulate arrays of bits?

    - Why does **defined()** return true on empty arrays and hashes?

    - Data: Hashes (Associative Arrays)

  - How do I process an entire hash?

    - How do I merge two hashes?

    - What happens if I add or remove keys from a hash while iterating over it?

    - How do I look up a hash element by value?

    - How can I know how many entries are in a hash?

    - How do I sort a hash (optionally by value instead of key)?

    - How can I always keep my hash sorted?

    - What's the difference between "delete" and "undef" with hashes?

    - Why don't my tied hashes make the defined/exists distinction?

    - How do I reset an **each()** operation part-way through?

    - How can I get the unique keys from two hashes?

    - How can I store a multidimensional array in a DBM file?

    - How can I make my hash remember the order I put elements into it?

    - Why does passing a subroutine an undefined element in a hash create it?

    - How can I make the Perl equivalent of a C structure/C++ class/hash or array of hashes or arrays?

    - How can I use a reference as a hash key?

    - How can I check if a key exists in a multilevel hash?

    - How can I prevent addition of unwanted keys into a hash?

    - Data: Misc

  - How do I handle binary data correctly?

    - How do I determine whether a scalar is a number/whole/integer/float?

    - How do I keep persistent data across program calls?

    - How do I print out or copy a recursive data structure?

    - How do I define methods for every class/object?

    - How do I verify a credit card checksum?

    - How do I pack arrays of doubles or floats for XS code?

    - AUTHOR AND COPYRIGHT

  ### perlfaq5 - Files and Formats

- VERSION

  - DESCRIPTION

  - How do I flush/unbuffer an output filehandle? Why must I do this?

    - How do I change, delete, or insert a line in a file, or append to the beginning of a file?

    - How do I count the number of lines in a file?

    - How do I delete the last N lines from a file?

    - How can I use Perl's "-i" option from within a program?

    - How can I copy a file?

    - How do I make a temporary file name?

    - How can I manipulate fixed-record-length files?

    - 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?

    - How can I use a filehandle indirectly?

    - How can I open a filehandle to a string?

    - How can I set up a footer format to be used with **write()**?

    - How can I **write()** into a string?

    - How can I output my numbers with commas added?

    - How can I translate tildes (~) in a filename?

    - When I open a file read-write, why does it wipe it out?

    - Why do I sometimes get an "Argument list too long" when I use \<\*\>?

    - How can I open a file named with a leading "\>" or trailing blanks?

    - How can I reliably rename a file?

    - How can I lock a file?

    - Why can't I just open(FH, "\>file.lock")?

    - I still don't get locking. I just want to increment the number in the file. How can I do this?

    - All I want to do is append a small amount of text to the end of a file. Do I still have to use locking?

    - How do I randomly update a binary file?

    - How do I get a file's timestamp in perl?

    - How do I set a file's timestamp in perl?

    - How do I print to more than one file at once?

    - How can I read in an entire file all at once?

    - How can I read in a file by paragraphs?

    - How can I read a single character from a file? From the keyboard?

    - How can I tell whether there's a character waiting on a filehandle?

    - How do I do a "tail -f" in perl?

    - How do I **dup()** a filehandle in Perl?

    - How do I close a file descriptor by number?

    - Why can't I use "C:\\temp\\foo" in DOS paths? Why doesn't \`C:\\temp\\foo.exe\` work?

    - Why doesn't glob("\*.\*") get all the files?

    - Why does Perl let me delete read-only files? Why does "-i" clobber protected files? Isn't this a bug in Perl?

    - How do I select a random line from a file?

    - Why do I get weird spaces when I print an array of lines?

    - How do I traverse a directory tree?

    - How do I delete a directory tree?

    - How do I copy an entire directory?

    - AUTHOR AND COPYRIGHT

  ### perlfaq6 - Regular Expressions

- VERSION

  - DESCRIPTION

  - How can I hope to use regular expressions without creating illegible and unmaintainable code?

    Comments Outside the Regex, Comments Inside the Regex, Different Delimiters

  - I'm having trouble matching over more than one line. What's wrong?

    - How can I pull out lines between two patterns that are themselves on different lines?

    - How do I match XML, HTML, or other nasty, ugly things with a regex?

    - I put a regular expression into $/ but it didn't work. What's wrong?

    - How do I substitute case-insensitively on the LHS while preserving case on the RHS?

    - How can I make "\\w" match national character sets?

    - How can I match a locale-smart version of "/\[a-zA-Z\]/"?

    - How can I quote a variable to use in a regex?

    - What is "/o" really for?

    - How do I use a regular expression to strip C-style comments from a file?

    - Can I use Perl regular expressions to match balanced text?

    - What does it mean that regexes are greedy? How can I get around it?

    - How do I process each word on each line?

    - How can I print out a word-frequency or line-frequency summary?

    - How can I do approximate matching?

    - How do I efficiently match many regular expressions at once?

    - Why don't word-boundary searches with "\\b" work for me?

    - Why does using $&, $\`, or $' slow my program down?

    - What good is "\\G" in a regular expression?

    - Are Perl regexes DFAs or NFAs? Are they POSIX compliant?

    - What's wrong with using grep in a void context?

    - How can I match strings with multibyte characters?

    - How do I match a regular expression that's in a variable?

    - AUTHOR AND COPYRIGHT

  ### perlfaq7 - General Perl Language Issues

- VERSION

  - DESCRIPTION

  - Can I get a BNF/yacc/RE for the Perl language?

    - What are all these $@%&\* punctuation signs, and how do I know when to use them?

    - Do I always/never have to quote my strings or use semicolons and commas?

    - How do I skip some return values?

    - How do I temporarily block warnings?

    - What's an extension?

    - Why do Perl operators have different precedence than C operators?

    - How do I declare/create a structure?

    - How do I create a module?

    - How do I adopt or take over a module already on CPAN?

    - How do I create a class?

    - How can I tell if a variable is tainted?

    - What's a closure?

    - What is variable suicide and how can I prevent it?

    - How can I pass/return a {Function, FileHandle, Array, Hash, Method, Regex}?

    Passing Variables and Functions, Passing Filehandles, Passing Regexes, Passing Methods

  - How do I create a static variable?

    - What's the difference between dynamic and lexical (static) scoping? Between **local()** and **my()**?

    - How can I access a dynamic variable while a similarly named lexical is in scope?

    - What's the difference between deep and shallow binding?

    - Why doesn't "my($foo) = \<$fh\>;" work right?

    - How do I redefine a builtin function, operator, or method?

    - What's the difference between calling a function as &foo and **foo()**?

    - How do I create a switch or case statement?

    - How can I catch accesses to undefined variables, functions, or methods?

    - Why can't a method included in this same file be found?

    - How can I find out my current or calling package?

    - How can I comment out a large block of Perl code?

    - How do I clear a package?

    - How can I use a variable as a variable name?

    - What does "bad interpreter" mean?

    - Do I need to recompile XS modules when there is a change in the C library?

    - AUTHOR AND COPYRIGHT

  ### perlfaq8 - System Interaction

- VERSION

  - DESCRIPTION

  - How do I find out which operating system I'm running under?

    - Why does **exec()** not return?

    - How do I do fancy stuff with the keyboard/screen/mouse?

    Keyboard, Screen, Mouse

  - How do I print something out in color?

    - How do I read just one key without waiting for a return key?

    - How do I check whether input is ready on the keyboard?

    - How do I clear the screen?

    - How do I get the screen size?

    - How do I ask the user for a password?

    - How do I read and write the serial port?

    lockfiles, open mode, end of line, flushing output, non-blocking input

  - How do I decode encrypted password files?

    - How do I start a process in the background?

    STDIN, STDOUT, and STDERR are shared, Signals, Zombies

  - How do I trap control characters/signals?

    - How do I modify the shadow password file on a Unix system?

    - How do I set the time and date?

    - How can I **sleep()** or **alarm()** for under a second?

    - How can I measure time under a second?

    - How can I do an **atexit()** or **setjmp()**/**longjmp()**? (Exception handling)

    - Why doesn't my sockets program work under System V (Solaris)? What does the error message "Protocol not supported" mean?

    - How can I call my system's unique C functions from Perl?

    - Where do I get the include files to do **ioctl()** or **syscall()**?

    - Why do setuid perl scripts complain about kernel problems?

    - How can I open a pipe both to and from a command?

    - Why can't I get the output of a command with **system()**?

    - How can I capture STDERR from an external command?

    - Why doesn't **open()** return an error when a pipe open fails?

    - What's wrong with using backticks in a void context?

    - How can I call backticks without shell processing?

    - Why can't my script read from STDIN after I gave it EOF (^D on Unix, ^Z on MS-DOS)?

    - How can I convert my shell script to perl?

    - Can I use perl to run a telnet or ftp session?

    - How can I write expect in Perl?

    - Is there a way to hide perl's command line from programs such as "ps"?

    - I {changed directory, modified my environment} in a perl script. How come the change disappeared when I exited the script? How do I get my changes to be visible?

    Unix

  - How do I close a process's filehandle without waiting for it to complete?

    - How do I fork a daemon process?

    - How do I find out if I'm running interactively or not?

    - How do I timeout a slow event?

    - How do I set CPU limits?

    - How do I avoid zombies on a Unix system?

    - How do I use an SQL database?

    - How do I make a **system()** exit on control-C?

    - How do I open a file without blocking?

    - How do I tell the difference between errors from the shell and perl?

    - How do I install a module from CPAN?

    - What's the difference between require and use?

    - How do I keep my own module/library directory?

    - How do I add the directory my program lives in to the module/library search path?

    - How do I add a directory to my include path (@INC) at runtime?

    the `"PERLLIB"` environment variable, the `"PERL5LIB"` environment variable, the `"perl -Idir"` command line flag, the `"lib"` pragma:, the local::lib module:

  - Where are modules installed?

    - What is socket.ph and where do I get it?

    - AUTHOR AND COPYRIGHT

  ### perlfaq9 - Web, Email and Networking

- VERSION

  - DESCRIPTION

  - Should I use a web framework?

    - Which web framework should I use?

    Catalyst, Dancer2, Mojolicious, Web::Simple

  - What is Plack and PSGI?

    - How do I remove HTML from a string?

    - How do I extract URLs?

    - How do I fetch an HTML file?

    - How do I automate an HTML form submission?

    - How do I decode or create those %-encodings on the web?

    - How do I redirect to another page?

    - How do I put a password on my web pages?

    - How do I make sure users can't enter values into a form that causes my CGI script to do bad things?

    - How do I parse a mail header?

    - How do I check a valid mail address?

    - How do I decode a MIME/BASE64 string?

    - How do I find the user's mail address?

    - How do I send email?

    Email::Sender::Transport::Sendmail, Email::Sender::Transport::SMTP

  - How do I use MIME to make an attachment to a mail message?

    - How do I read email?

    - How do I find out my hostname, domainname, or IP address?

    - How do I fetch/put an (S)FTP file?

    - How can I do RPC in Perl?

    - AUTHOR AND COPYRIGHT

  ### perlsyn - Perl syntax: declarations, statements, comments

- DESCRIPTION

  - Declarations

    - Comments

    - Simple Statements

    - Statement Modifiers

    - Compound Statements

    - Loop Control

    - For Loops

    - Foreach Loops

    - Try Catch Exception Handling

    - Basic BLOCKs

    - defer blocks

    - Switch Statements

    - Goto

    - The Ellipsis Statement

    - PODs: Embedded Documentation

    - Plain Old Comments (Not!)

    - Experimental Details on given and when

    1, 2, 3, 4, 5, 6, 7, 8, 9, 10

### perldata - Perl data types

- DESCRIPTION

  - Variable names

    - Identifier parsing

    - Context

    - Scalar values

    - Scalar value constructors

    - List value constructors

    - Subscripts

    - Multi-dimensional array emulation

    - Slices

    - Typeglobs and Filehandles

    - SEE ALSO

  ### perlop - Perl expressions: operators, precedence, string literals

- DESCRIPTION

  - Operator Precedence and Associativity

    - Terms and List Operators (Leftward)

    - The Arrow Operator

    - Auto-increment and Auto-decrement

    - Exponentiation

    - Symbolic Unary Operators

    - Binding Operators

    - Multiplicative Operators

    - Additive Operators

    - Shift Operators

    - Named Unary Operators

    - Relational Operators

    - Equality Operators

    - Class Instance Operator

    - Smartmatch Operator

    1\. Empty hashes or arrays match, 2. That is, each element smartmatches the element of the same index in the other array.\[3\], 3. If a circular reference is found, fall back to referential equality, 4. Either an actual number, or a string that looks like one

  - Bitwise And

    - Bitwise Or and Exclusive Or

    - C-style Logical And

    - C-style Logical Or

    - C-style Logical Xor

    - Logical Defined-Or

    - Range Operators

    - Conditional Operator

    - Assignment Operators

    - Comma Operator

    - List Operators (Rightward)

    - Logical Not

    - Logical And

    - Logical or and Exclusive Or

    - C Operators Missing From Perl

    unary &, unary \*, (TYPE)

  - Quote and Quote-like Operators

    \[1\], \[2\], \[3\], \[4\], \[5\], \[6\], \[7\], \[8\]

  - Regexp Quote-Like Operators

    `"qr/`*STRING*`/msixpodualn"`       , `"m/`*PATTERN*`/msixpodualngc"`

     , `"/`*PATTERN*`/msixpodualngc"`, The empty pattern `"//"`, Matching in list context, `"\G `*assertion*`"`, `"m?`*PATTERN*`?msixpodualngc"`\
      , `"s/`*PATTERN*`/`*REPLACEMENT*`/msixpodualngcer"`

  - Quote-Like Operators

    `"q/`*STRING*`/"`    , `'`*STRING*`'`, `"qq/`*STRING*`/"`    , `"`*STRING*`"`, `"qx/`*STRING*`/"`    , `` ` ``*STRING*`` ` ``, `"qw/`*STRING*`/"`   , `"tr/`*SEARCHLIST*`/`*REPLACEMENTLIST*`/cdsr"`   \
       , `"y/`*SEARCHLIST*`/`*REPLACEMENTLIST*`/cdsr"`, `"<<`*EOF*`"`    , Double Quotes, Single Quotes, Backticks, Indented Here-docs

  - Gory details of parsing quoted constructs

    Finding the end, Interpolation , `"<<'EOF'"`,  `"m''"`, the pattern of `"s'''"`, `''`, `"q//"`, `"tr'''"`, `"y'''"`, the replacement of `"s'''"`, `"tr///"`, `"y///"`, `""`, ``` `` ```, `"qq//"`, `"qx//"`, `"<file*glob>"`, `"<<"EOF""`, The replacement of `"s///"`, `"RE"` in `"m?RE?"`, `"/RE/"`, `"m/RE/"`, `"s/RE/foo/"`,, Parsing regular expressions , Optimization of regular expressions

  - I/O Operators

    - Constant Folding

    - No-ops

    - Bitwise String Operators

    - Integer Arithmetic

    - Floating-point Arithmetic

    - Bigger Numbers

    - APPENDIX

  - List of Extra Paired Delimiters

    ### perlsub - Perl subroutines (user-defined functions)

- SYNOPSIS

  - DESCRIPTION

  documented later in this document, documented in perlmod, documented in perlobj, documented in perltie, documented in PerlIO::via, documented in perlfunc, documented in UNIVERSAL, documented in perldebguts, undocumented, used internally by the overload feature

  - Signatures

    - Private Variables via **my()**

    - Persistent Private Variables

    - Temporary Values via **local()**

    - Lvalue subroutines

    - Lexical Subroutines

    - Passing Symbol Table Entries (typeglobs)

    - When to Still Use **local()**

    - Pass by Reference

    - Prototypes

    - Constant Functions

    - Overriding Built-in Functions

    - Autoloading

    - Subroutine Attributes

    - SEE ALSO

  ### perlfunc - Perl builtin functions

- DESCRIPTION

  - Perl Functions by Category

    Functions for SCALARs or strings   , Regular expressions and pattern matching   , Numeric functions    , Functions for real `@ARRAYs` , Functions for list data , Functions for real `%HASHes` , Input and output functions \
       , Functions for fixed-length data or records, Functions for filehandles, files, or directories  \
        , Keywords related to the control flow of your Perl program , Keywords related to scoping, Miscellaneous functions, Functions for processes and process groups\
       , Keywords related to Perl modules , Keywords related to classes and object-orientation \
      , Low-level socket functions  , System V interprocess communication functions   \
       , Fetching user and group info \
           , Fetching network info       , Time-related functions  , Non-function keywords

  - Portability

    - Alphabetical Listing of Perl Functions

    \-*X* FILEHANDLE

    , -*X* EXPR, -*X* DIRHANDLE, -*X*, abs VALUE  , abs, accept NEWSOCKET,GENERICSOCKET , alarm SECONDS   , alarm, atan2 Y,X    , bind SOCKET,NAME , binmode FILEHANDLE, LAYER   \
      , binmode FILEHANDLE, bless REF,CLASSNAME , bless REF, Bless the referred-to item into a specific package (recommended form):, Bless the referred-to item into package `"main"`:, Bless the referred-to item into the current package (not inheritable):, break, caller EXPR    , caller, chdir EXPR\
       , chdir FILEHANDLE, chdir DIRHANDLE, chdir, chmod LIST   , chomp VARIABLE \
        , chomp( LIST ), chomp, chop VARIABLE , chop( LIST ), chop, chown LIST  \
      , chr NUMBER    , chr, chroot FILENAME  , chroot, class NAMESPACE, class NAMESPACE VERSION, class NAMESPACE BLOCK, class NAMESPACE VERSION BLOCK, close FILEHANDLE , close, closedir DIRHANDLE , connect SOCKET,NAME , continue BLOCK , continue, cos EXPR\
        , cos, crypt PLAINTEXT,SALT

      , dbmclose HASH , dbmopen HASH,DBNAME,MASK     , defined EXPR\
       , defined, delete EXPR , die LIST\
          , do BLOCK  , do EXPR , dump LABEL   , dump EXPR, dump, each HASH  , each ARRAY , eof FILEHANDLE   , eof (), eof, eval EXPR

    , eval BLOCK, eval, String eval, Under the `"unicode_eval"` feature, Outside the `"unicode_eval"` feature, If upgraded, `$v` will be `"\xc4\x80"` (i.e., the `"use utf8"` has no effect.), If non-upgraded, `$v` will be `"\x{100}"`, Block eval, evalbytes EXPR , evalbytes, exec LIST  , exec PROGRAM LIST, exists EXPR\
      , exit EXPR   , exit, exp EXPR     , exp, fc EXPR     , fc, fcntl FILEHANDLE,FUNCTION,SCALAR , \_\_FILE\_\_ , field VARNAME , fileno FILEHANDLE , fileno DIRHANDLE, flock FILEHANDLE,OPERATION   , fork   , format , formline PICTURE,LIST , getc FILEHANDLE    , getc, getlogin\
      , getpeername SOCKET  , getpgrp PID  , getppid   , getpriority WHICH,WHO   , getpwnam NAME

        , getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent, getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, endhostent, endnetent, endprotoent, endservent, getsockname SOCKET , getsockopt SOCKET,LEVEL,OPTNAME , glob EXPR\
        , glob, gmtime EXPR\
       , gmtime, goto LABEL   , goto EXPR, goto &NAME, grep BLOCK LIST , grep EXPR,LIST, hex EXPR\
      , hex, import LIST , index STR,SUBSTR,POSITION   , index STR,SUBSTR, int EXPR     , int, ioctl FILEHANDLE,FUNCTION,SCALAR , join EXPR,LIST , keys HASH\
      , keys ARRAY, kill SIGNAL, LIST, kill SIGNAL  , last LABEL  , last EXPR, last, lc EXPR  , lc, If `"use bytes"` is in effect:, Otherwise, if `"use` `locale"` for `"LC_CTYPE"` is in effect:, Otherwise, If EXPR has the UTF8 flag set:, Otherwise, if `"use feature 'unicode_strings'"` or `use locale` `':not_characters'` is in effect:, Otherwise:, lcfirst EXPR  , lcfirst, length EXPR  , length, \_\_LINE\_\_ , link OLDFILE,NEWFILE , listen SOCKET,QUEUESIZE , local EXPR , localtime EXPR  , localtime, lock THING , log EXPR     , log, lstat FILEHANDLE , lstat EXPR, lstat DIRHANDLE, lstat, m//, map BLOCK LIST , map EXPR,LIST, method NAME BLOCK , method NAME : ATTRS BLOCK, mkdir FILENAME,MODE   , mkdir FILENAME, mkdir, msgctl ID,CMD,ARG , msgget KEY,FLAGS , msgrcv ID,VAR,SIZE,TYPE,FLAGS , msgsnd ID,MSG,FLAGS , my VARLIST , my TYPE VARLIST, my VARLIST : ATTRS, my TYPE VARLIST : ATTRS, next LABEL  , next EXPR, next, no MODULE VERSION LIST  , no MODULE VERSION, no MODULE LIST, no MODULE, no VERSION, oct EXPR  \
        , oct, open FILEHANDLE,MODE,EXPR\
        , open FILEHANDLE,MODE,EXPR,LIST, open FILEHANDLE,MODE,REFERENCE, open FILEHANDLE,EXPR, open FILEHANDLE, Working with files, Simple examples, About filehandles, About modes, Checking the return value, Specifying I/O layers in MODE, Using `"undef"` for temporary files, Opening a filehandle into an in-memory scalar, Opening a filehandle into a command, Duping filehandles, Legacy usage, Specifying mode and filename as a single argument, Assigning a filehandle to a bareword, Calling `"open"` with one argument via global variables, Other considerations, Automatic filehandle closure, Automatic pipe flushing, Direct versus by-reference assignment of filehandles, Whitespace and special characters in the filename argument, Invoking C-style `"open"`, Portability issues, opendir DIRHANDLE,EXPR , ord EXPR  , ord, our VARLIST  , our TYPE VARLIST, our VARLIST : ATTRS, our TYPE VARLIST : ATTRS, pack TEMPLATE,LIST , package NAMESPACE, package NAMESPACE VERSION  \
      , package NAMESPACE BLOCK, package NAMESPACE VERSION BLOCK    , \_\_PACKAGE\_\_ , \_\_CLASS\_\_ , pipe READHANDLE,WRITEHANDLE , pop ARRAY  , pop, pos SCALAR  , pos, print FILEHANDLE LIST , print FILEHANDLE, print LIST, print, printf FILEHANDLE FORMAT, LIST , printf FILEHANDLE, printf FORMAT, LIST, printf, prototype FUNCTION , prototype, push ARRAY,LIST  , q/STRING/, qq/STRING/, qw/STRING/, qx/STRING/, qr/STRING/, quotemeta EXPR  , quotemeta, rand EXPR  , rand, read FILEHANDLE,SCALAR,LENGTH,OFFSET  , read FILEHANDLE,SCALAR,LENGTH, readdir DIRHANDLE , readline EXPR, readline   , readlink EXPR , readlink, readpipe EXPR, readpipe , recv SOCKET,SCALAR,LENGTH,FLAGS , redo LABEL , redo EXPR, redo, ref EXPR  , ref, rename OLDNAME,NEWNAME    , require VERSION , require EXPR, require, reset EXPR , reset, return EXPR , return, reverse LIST   , rewinddir DIRHANDLE , rindex STR,SUBSTR,POSITION , rindex STR,SUBSTR, rmdir FILENAME   , rmdir, s///, say FILEHANDLE LIST , say FILEHANDLE, say LIST, say, scalar EXPR  , seek FILEHANDLE,POSITION,WHENCE   , seekdir DIRHANDLE,POS , select FILEHANDLE  , select, select RBITS,WBITS,EBITS,TIMEOUT , semctl ID,SEMNUM,CMD,ARG , semget KEY,NSEMS,FLAGS , semop KEY,OPSTRING , send SOCKET,MSG,FLAGS,TO , send SOCKET,MSG,FLAGS, setpgrp PID,PGRP\
      , setpriority WHICH,WHO,PRIORITY \
       , setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL , shift ARRAY , shift, shmctl ID,CMD,ARG , shmget KEY,SIZE,FLAGS , shmread ID,VAR,POS,SIZE  , shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW , sin EXPR    , sin, sleep EXPR  , sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL , socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL , sort SUBNAME LIST , sort BLOCK LIST, sort LIST, splice ARRAY,OFFSET,LENGTH,LIST , splice ARRAY,OFFSET,LENGTH, splice ARRAY,OFFSET, splice ARRAY, split /PATTERN/,EXPR,LIMIT , split /PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST , format parameter index, flags, vector flag, (minimum) width, precision, or maximum width , size, order of arguments, sqrt EXPR   , sqrt, srand EXPR   , srand, stat FILEHANDLE \
      , stat EXPR, stat DIRHANDLE, stat, state VARLIST , state TYPE VARLIST, state VARLIST : ATTRS, state TYPE VARLIST : ATTRS, study SCALAR , study, sub NAME BLOCK , sub NAME (PROTO) BLOCK, sub NAME : ATTRS BLOCK, sub NAME (PROTO) : ATTRS BLOCK, \_\_SUB\_\_ , substr EXPR,OFFSET,LENGTH,REPLACEMENT \
        , substr EXPR,OFFSET,LENGTH, substr EXPR,OFFSET, symlink OLDFILE,NEWFILE    , syscall NUMBER, LIST  , sysopen FILEHANDLE,FILENAME,MODE , sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread FILEHANDLE,SCALAR,LENGTH,OFFSET , sysread FILEHANDLE,SCALAR,LENGTH, sysseek FILEHANDLE,POSITION,WHENCE  , system LIST  , system PROGRAM LIST, syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET , syswrite FILEHANDLE,SCALAR,LENGTH, syswrite FILEHANDLE,SCALAR, tell FILEHANDLE , tell, telldir DIRHANDLE , tie VARIABLE,CLASSNAME,LIST , tied VARIABLE , time  , times , tr///, truncate FILEHANDLE,LENGTH , truncate EXPR,LENGTH, uc EXPR   , uc, ucfirst EXPR  , ucfirst, umask EXPR , umask, undef EXPR  , undef, unlink LIST   \
      , unlink, unpack TEMPLATE,EXPR , unpack TEMPLATE, unshift ARRAY,LIST , untie VARIABLE , use Module VERSION LIST   , use Module VERSION, use Module LIST, use Module, use VERSION, utime LIST , values HASH , values ARRAY, vec EXPR,OFFSET,BITS   , wait , waitpid PID,FLAGS , wantarray  , warn LIST\
       , write FILEHANDLE , write EXPR, write, y///

  - Non-function Keywords by Cross-reference

    \_\_DATA\_\_, \_\_END\_\_, BEGIN, CHECK, END, INIT, UNITCHECK, DESTROY, and, cmp, eq, ge, gt, isa, le, lt, ne, not, or, x, xor, AUTOLOAD, else, elsif, for, foreach, if, unless, until, while, elseif, default, given, when, try, catch, finally, defer, ADJUST

### perlopentut - simple recipes for opening files and pipes in Perl

- DESCRIPTION

  *OK*, *HANDLE*, *MODE*, *PATHNAME*

- Opening Text Files

  - Opening Text Files for Reading

    - Opening Text Files for Writing

    - Opening Binary Files

  - Opening Pipes

  - Opening a pipe for reading

    - Opening a pipe for writing

    - Expressing the command as a list

    - SEE ALSO

  - AUTHOR and COPYRIGHT

  ### perlpacktut - tutorial on "pack" and "unpack"

- DESCRIPTION

  - The Basic Principle

  - Packing Text

  - Packing Numbers

  - Integers

    - Unpacking a Stack Frame

    - How to Eat an Egg on a Net

    - Byte-order modifiers

    - Floating point Numbers

    - Exotic Templates

  - Bit Strings

    - Uuencoding

    - Doing Sums

    - Unicode

    - Another Portable Binary Encoding

    - Template Grouping

  - Lengths and Widths

  - String Lengths

    - Dynamic Templates

    - Counting Repetitions

    - Intel HEX

    - Packing and Unpacking C Structures

  - The Alignment Pit

    - Dealing with Endian-ness

    - Alignment, Take 2

    - Alignment, Take 3

    - Pointers for How to Use Them

    - Pack Recipes

  - Funnies Section

  - Authors

  ### perlpod - the Plain Old Documentation format

- DESCRIPTION

  - Ordinary Paragraph

    - Verbatim Paragraph

    - Command Paragraph

    `"=head1 `*Heading Text*`"`     \
           , `"=head2` *Heading Text*`"`, `"=head3 `*Heading Text*`"`, `"=head4 `*Heading Text*`"`, `"=head5 `*Heading Text*`"`, `"=head6 `*Heading Text*`"`, `"=over` *indentlevel*`"`      , `"=item` *stuff...*`"`, `"=back"`, `"=cut"`  , `"=pod"`  , `"=begin `*formatname*`"`      , `"=end `*formatname*`"`, `"=for `*formatname*` `*text...*`"`, `"=encoding` *encodingname*`"`

  - Formatting Codes

    `"I<text>"` -- italic text    , `"B<text>"` -- bold text  \
      , `"C<code>"` -- code text \
       , `"L<name>"` -- a hyperlink    , `"E<escape>"` -- a character escape  \
      , `"F<filename>"` -- used for filenames    , `"S<text>"` -- text contains non-breaking spaces \
        , `"X<topic name>"` -- an index entry  \
      , `"Z<>"` -- a null (zero-effect) formatting code

  - The Intent

    - Embedding Pods in Perl Modules

    - Hints for Writing Pod

    - SEE ALSO

  - AUTHOR

  ### perlpodspec - Plain Old Documentation: format specification and notes

- DESCRIPTION

  - Pod Definitions

  - Pod Commands

  "=head1", "=head2", "=head3", "=head4", "=head5", "=head6", "=pod", "=cut", "=over", "=item", "=back", "=begin formatname", "=begin formatname parameter", "=end formatname", "=for formatname text...", "=encoding encodingname"

- Pod Formatting Codes

  `"I<text>"` -- italic text, `"B<text>"` -- bold text, `"C<code>"` -- code text, `"F<filename>"` -- style for filenames, `"X<topic name>"` -- an index entry, `"Z<>"` -- a null (zero-effect) formatting code, `"L<name>"` -- a hyperlink, `"E<escape>"` -- a character escape, `"S<text>"` -- text contains non-breaking spaces

- Notes on Implementing Pod Processors

  - About L\<...\> Codes

  First:, Second:, Third:, Fourth:, Fifth:, Sixth:

- About =over...=back Regions

  - About Data Paragraphs and "=begin/=end" Regions

  - SEE ALSO

  - AUTHOR

  ### perldocstyle - A style guide for writing Perl's documentation

- DESCRIPTION

  - Purpose of this guide

    - Intended audience

    - Status of this document

    - FUNDAMENTALS

  - Choice of markup: Pod

    - Choice of language: American English

    - Choice of encoding: UTF-8

    - Choice of underlying style guide: CMOS

    - Contributing to Perl's documentation

    - FORMATTING AND STRUCTURE

  - Document structure

    - Formatting rules

    - Adding comments

    - Perlfunc has special rules

    - TONE AND STYLE

  - Apply one of the four documentation modes

    - Assume readers' intelligence, but not their knowledge

    - Use meaningful variable and symbol names in examples

    - Write in English, but not just for English-speakers

    - Omit placeholder text or commentary

    - Apply section-breaks and examples generously

    - Lead with common cases and best practices

    - Document Perl's present

    - The documentation speaks with one voice

    - INDEX OF PREFERRED TERMS

  built-in function, Darwin, macOS, man page, Perl; perl, Perl 5, Perl 6, Perl 5 Porters, the; porters, the; p5p, program, Raku, script, semicolon, Unix

- SEE ALSO

  - AUTHOR

  ### perlpodstyle - Perl POD style guide

- DESCRIPTION

  NAME, SYNOPSIS, DESCRIPTION, OPTIONS, RETURN VALUE, ERRORS, DIAGNOSTICS, EXAMPLES, ENVIRONMENT, FILES, CAVEATS, BUGS, RESTRICTIONS, NOTES, AUTHOR, HISTORY, COPYRIGHT AND LICENSE, SEE ALSO

- AUTHOR

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  ### perldiag - various Perl diagnostics

- DESCRIPTION

  - SEE ALSO

  ### perldeprecation - list Perl deprecations

- DESCRIPTION

  - Unscheduled Deprecations

    - Perl 5.44

    - Perl 5.42

    - Perl 5.40

    - Perl 5.38

    - Perl 5.34

    - Perl 5.32

    - Perl 5.30

    - Perl 5.28

    - Perl 5.26

    - Perl 5.24

    - Perl 5.16

    - SEE ALSO

  ### perllexwarn - Perl Lexical Warnings

- DESCRIPTION

  ### perldebug - Perl debugging

- DESCRIPTION

  - The Perl Debugger

  - Calling the Debugger

    perl -d program\_name, perl -d -e 0, perl -d:ptkdb program\_name, perl -dt threaded\_program\_name

  - Debugger Commands

    h , h \[command\], h h, p expr , x \[maxdepth\] expr , V \[pkg \[vars\]\] , X \[vars\] , y \[level \[vars\]\] , T   , s \[expr\]  , n \[expr\] , r , \<CR\>, c \[line\|sub\] , l , l min+incr, l min-max, l line, l subname, - , v \[line\] , . , f filename , /pattern/, ?pattern?, L \[abw\] , S \[\[!\]regex\] , t \[n\] , t \[n\] expr , b  , b \[line\] \[condition\]  , b \[file\]:\[line\] \[condition\]  , b subname \[condition\]  , b postpone subname \[condition\]  , b load filename\
      , b compile subname  , B line  , B \*\
      , disable \[file\]:\[line\] \
      , disable \[line\] \
      , enable \[file\]:\[line\] \
      , enable \[line\] \
      , a \[line\] command , A line , A \* , w expr , W expr , W \* , o , o booloption ... , o anyoption? ... , o option=value ... , \< ? , \< \[ command \] , \< \* , \<\< command , \> ? , \> command , \> \* , \>\> command , { ? , { \[ command \], { \* , {{ command , ! number , ! -number , ! pattern , !! cmd , source file , H -number , q or ^D  , R , \|dbcmd , \|\|dbcmd , command, m expr , M , man \[manpage\]

  - Configurable Options

    `"recallCommand"`, `"ShellBang"`  , `"pager"` , `"tkRunning"` , `"signalLevel"`, `"warnLevel"`, `"dieLevel"`\
       , `"AutoTrace"` , `"LineInfo"` , `"inhibit_exit"` , `"PrintRet"` , `"ornaments"` , `"frame"` , `"maxTraceLen"` , `"windowSize"` , `"arrayDepth"`, `"hashDepth"`  , `"dumpDepth"` , `"compactDump"`, `"veryCompact"`  , `"globPrint"` , `"DumpDBFiles"` , `"DumpPackages"` , `"DumpReused"` , `"quote"`, `"HighBit"`, `"undefPrint"` \
      , `"UsageOnly"` , `"HistFile"` , `"HistSize"` , `"TTY"` , `"noTTY"` , `"ReadLine"` , `"NonStop"`

  - Debugger Input/Output

    Prompt, Multiline commands, Stack backtrace  , Line Listing Format, Frame listing

  - Debugging Compile-Time Statements

    - Debugger Customization

    - Readline Support / History in the Debugger

    - Editor Support for Debugging

    - The Perl Profiler

    - Debugging Regular Expressions

  - Debugging Memory Usage

  - SEE ALSO

  - BUGS

  ### perlvar - Perl predefined variables

- DESCRIPTION

  - The Syntax of Variable Names

    - SPECIAL VARIABLES

  - General Variables

    `$ARG`, `$_`  , `@ARG`, `@_`  , `$LIST_SEPARATOR`, $"  , `$PROCESS_ID`, `$PID`, $$   , `$PROGRAM_NAME`, `$0`  , `$REAL_GROUP_ID`, `$GID`, $( \
      , `$EFFECTIVE_GROUP_ID`, `$EGID`, $)   , `$REAL_USER_ID`, `$UID`, $\<   , `$EFFECTIVE_USER_ID`, `$EUID`, $\>   , `$SUBSCRIPT_SEPARATOR`, `$SUBSEP`, $;   , `$a`, `$b`  , `%ENV` , `$OLD_PERL_VERSION`, $\]  , `$SYSTEM_FD_MAX`, $^F\
      , `@F` , `@INC` , `%INC` , `$INC` , `$INPLACE_EDIT`, $^I  , `@ISA` , $^M , ${^MAX\_NESTED\_EVAL\_BEGIN\_BLOCKS}, `$OSNAME`, $^O  , `%SIG` , %{^HOOK} , require\_\_before, require\_\_after, `$BASETIME`, $^T  , `$PERL_VERSION`, $^V  , `$EXECUTABLE_NAME`, $^X

  - Variables related to regular expressions

    $\<*digits*\> ($1, `$2`, ...)    , @{^CAPTURE}\
      , `$MATCH`, $&  , ${^MATCH} , `$PREMATCH`, $\`  , ${^PREMATCH} , `$POSTMATCH`, $'   , ${^POSTMATCH} , `$LAST_PAREN_MATCH`, $+  , `$LAST_SUBMATCH_RESULT`, $^N  , `@LAST_MATCH_END`, @+  , %{^CAPTURE}, `%LAST_PAREN_MATCH`, %+   , `@LAST_MATCH_START`, @-  , ``"$`"`` is the same as `"substr($var, 0, $-[0])"`, `$&` is the same as `"substr($var, $-[0], $+[0]` `- $-[0])"`, `"$'"` is the same as `"substr($var, $+[0])"`, `$1` is the same as `"substr($var, $-[1], $+[1] - $-[1])"`, `$2` is the same as `"substr($var, $-[2], $+[2] - $-[2])"`, `$3` is the same as `"substr($var,` `$-[3], $+[3] - $-[3])"`, %{^CAPTURE\_ALL} , %- , ${^LAST\_SUCCESSFUL\_PATTERN}, `$LAST_REGEXP_CODE_RESULT`, $^R  , ${^RE\_COMPILE\_RECURSION\_LIMIT} , ${^RE\_DEBUG\_FLAGS} , ${^RE\_TRIE\_MAXBUF}

  - Variables related to filehandles

    `$ARGV` , `@ARGV` , ARGV , ARGVOUT , IO::Handle-\>output\_field\_separator( EXPR ), `$OUTPUT_FIELD_SEPARATOR`, `$OFS`, $,   , HANDLE-\>input\_line\_number( EXPR ), `$INPUT_LINE_NUMBER`, `$NR`, $.    , IO::Handle-\>input\_record\_separator( EXPR ), `$INPUT_RECORD_SEPARATOR`, `$RS`, $/   , IO::Handle-\>output\_record\_separator( EXPR ), `$OUTPUT_RECORD_SEPARATOR`, `$ORS`, $\\   , HANDLE-\>autoflush( EXPR ), `$OUTPUT_AUTOFLUSH`, $\|    , ${^LAST\_FH} , `$ACCUMULATOR`, $^A  , IO::Handle-\>format\_formfeed(EXPR), `$FORMAT_FORMFEED`, $^L  , HANDLE-\>format\_page\_number(EXPR), `$FORMAT_PAGE_NUMBER`, $%  , HANDLE-\>format\_lines\_left(EXPR), `$FORMAT_LINES_LEFT`, $-  , IO::Handle-\>format\_line\_break\_characters EXPR, `$FORMAT_LINE_BREAK_CHARACTERS`, `$:`  , HANDLE-\>format\_lines\_per\_page(EXPR), `$FORMAT_LINES_PER_PAGE`, $=  , HANDLE-\>format\_top\_name(EXPR), `$FORMAT_TOP_NAME`, $^  , HANDLE-\>format\_name(EXPR), `$FORMAT_NAME`, $~

  - Error Variables

    ${^CHILD\_ERROR\_NATIVE} , `$EXTENDED_OS_ERROR`, $^E\
      , `$EXCEPTIONS_BEING_CAUGHT`, $^S  , `$WARNING`, $^W  , ${^WARNING\_BITS} , `$OS_ERROR`, `$ERRNO`, $!   , `%OS_ERROR`, `%ERRNO`, %!   , `$CHILD_ERROR`, $?  , `$EVAL_ERROR`, $@

  - Variables related to the interpreter state

    `$COMPILING`, $^C  , `$DEBUGGING`, $^D  , ${^GLOBAL\_PHASE} , CONSTRUCT, START, CHECK, INIT, RUN, END, DESTRUCT, $^H , %^H , ${^OPEN} , `$PERLDB`, $^P\
      , 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, ${^TAINT} , ${^SAFE\_LOCALES} , ${^UNICODE} , ${^UTF8CACHE} , ${^UTF8LOCALE}

  - Deprecated and removed variables

    $# , $\* , $\[ , ${^ENCODING} , ${^WIN32\_SLOPPY\_STAT}

### perlre - Perl regular expressions

- DESCRIPTION

  - The Basics

    - Modifiers

    **"m"**    , **"s"**    , **"i"**    , **"x"** and **"xx"** , **"p"**   , **"a"**, **"d"**, **"l"**, and **"u"** \
       , **"n"**    , Other Modifiers

  - Regular Expressions

    \[1\], \[2\], \[3\], \[4\], \[5\], \[6\], \[7\], \[8\]

  - Quoting metacharacters

    - Extended Patterns

    `"(?#`*text*`)"` , `"(?adlupimnsx-imnsx)"`, `"(?^alupimnsx)"`  , `"(?:`*pattern*`)"` , `"(?adluimnsx-imnsx:`*pattern*`)"`, `"(?^aluimnsx:`*pattern*`)"` , `"(?|`*pattern*`)"`  , Lookaround Assertions    , `"(?=`*pattern*`)"`, `"(*pla:`*pattern*`)"`, `"(*positive_lookahead:`*pattern*`)"`  \
       , `"(?!`*pattern*`)"`, `"(*nla:`*pattern*`)"`, `"(*negative_lookahead:`*pattern*`)"`  \
       , `"(?<=`*pattern*`)"`, `"\K"`, `"(*plb:`*pattern*`)"`, `"(*positive_lookbehind:`*pattern*`)"`

    , `"(?<!`*pattern*`)"`, `"(*nlb:`*pattern*`)"`, `"(*negative_lookbehind:`*pattern*`)"`  \
       , `"(?<`*NAME*`>`*pattern*`)"`, `"(?'`*NAME*`'`*pattern*`)"` \
       , `"\k<`*NAME*`>"`, `"\k'`*NAME*`'"`, `"\k{`*NAME*`}"`, `"(?{ `*code*` })"`    , `"(*{ `*code* `})"`  , `"(??{ `*code*` })"` \
       , `"(?`*PARNO*`)"` `"(?-`*PARNO*`)"` `"(?+`*PARNO*`)"` `"(?R)"` `"(?0)"`

      , `"(?&`*NAME*`)"` , `"(?(`*condition*`)`*yes-pattern*`|`*no-pattern*`)"` , `"(?(`*condition*`)`*yes-pattern*`)"`, an integer in parentheses, a lookahead/lookbehind/evaluate zero-width assertion;, a name in angle brackets or single quotes, the special symbol `"(R)"`, `"(1)"` `"(2)"` .., `"(<`*NAME*`>)"` `"('`*NAME*`')"`, `"(?=...)"` `"(?!...)"` `"(?<=...)"` `"(?<!...)"`, `"(?{ `*CODE*` })"`, `"(*{ `*CODE*` })"`, `"(R)"`, `"(R1)"` `"(R2)"` .., `"(R&`*NAME*`)"`, `"(DEFINE)"`, `"(?>`*pattern*`)"`, `"(*atomic:`*pattern*`)"`   \
       , `"(?[ ])"`

  - Backtracking

    - Script Runs

    - Special Backtracking Control Verbs

    Verbs, `"(*PRUNE)"` `"(*PRUNE:`*NAME*`)"`  , `"(*SKIP)"` `"(*SKIP:`*NAME*`)"` , `"(*MARK:`*NAME*`)"` `"(*:`*NAME*`)"`\
       , `"(*THEN)"` `"(*THEN:`*NAME*`)"`, `"(*COMMIT)"` `"(*COMMIT:`*arg*`)"` , `"(*FAIL)"` `"(*F)"` `"(*FAIL:`*arg*`)"`  , `"(*ACCEPT)"` `"(*ACCEPT:`*arg*`)"`

  - Warning on "\\1" Instead of $1

    - Repeated Patterns Matching a Zero-length Substring

    - Combining RE Pieces

    `"ST"`, `"S|T"`, `"S{REPEAT_COUNT}"`, `"S{min,max}"`, `"S{min,max}?"`, `"S?"`, `"S*"`, `"S+"`, `"S??"`, `"S*?"`, `"S+?"`, `"(?>S)"`, `"(?=S)"`, `"(?<=S)"`, `"(?!S)"`, `"(?<!S)"`, `"(??{ `*EXPR*` })"`, `"(?`*PARNO*`)"`, `"(?(`*condition*`)`*yes-pattern*`|`*no-pattern*`)"`

  - Creating Custom RE Engines

    - Embedded Code Execution Frequency

    - PCRE/Python Support

    `"(?P<`*NAME*`>`*pattern*`)"`, `"(?P=`*NAME*`)"`, `"(?P>`*NAME*`)"`

- BUGS

  - SEE ALSO

  ### perlrebackslash - Perl Regular Expression Backslash Sequences and Escapes

- DESCRIPTION

  - The backslash

    \[1\]

  - All the sequences and escapes

    - Character Escapes

    \[1\], \[2\]

  - Modifiers

    - Character classes

    - Referencing

    - Assertions

    \\A, \\z, \\Z, \\G, \\b{}, \\b, \\B{}, \\B, `"\b{gcb}"` or `"\b{g}"`, `"\b{lb}"`, `"\b{sb}"`, `"\b{wb}"`

  - Misc

    \\K, \\N, \\R , \\X

### perlrecharclass - Perl Regular Expression Character Classes

- DESCRIPTION

  - The dot

    - Backslash sequences

    If the `"/a"` modifier is in effect .., otherwise .., For code points above 255 .., For code points below 256 .., if locale rules are in effect .., if, instead, Unicode rules are in effect .., otherwise .., If the `"/a"` modifier is in effect .., otherwise .., For code points above 255 .., For code points below 256 .., if locale rules are in effect .., if, instead, Unicode rules are in effect .., otherwise .., \[1\], \[2\]

  - Bracketed Character Classes

    \[1\], \[2\], \[3\], \[4\], \[5\], \[6\], \[7\], If the `"/a"` modifier, is in effect .., otherwise .., For code points above 255 .., For code points below 256 .., if locale rules are in effect .., `"word"`, `"ascii"`, `"blank"`, if, instead, Unicode rules are in effect .., otherwise ..

### perlreref - Perl Regular Expressions Reference

- DESCRIPTION

  - OPERATORS

    - SYNTAX

    - ESCAPE SEQUENCES

    - CHARACTER CLASSES

    - ANCHORS

    - QUANTIFIERS

    - EXTENDED CONSTRUCTS

    - VARIABLES

    - FUNCTIONS

    - TERMINOLOGY

    - AUTHOR

  - SEE ALSO

  - THANKS

  ### perlref - Perl references and nested data structures

- NOTE

  - DESCRIPTION

  - Making References

    - Using References

    - Circular References

    - Symbolic references

    - Not-so-symbolic references

    - Pseudo-hashes: Using an array as a hash

    - Function Templates

    - Postfix Dereference Syntax

    - Postfix Reference Slicing

    - Assigning to References

    - Declaring a Reference to a Variable

    - WARNING: Don't use references as hash keys

  - SEE ALSO

  ### perlform - Perl formats

- DESCRIPTION

  - Text Fields

    - Numeric Fields

    - The Field @\* for Variable-Width Multi-Line Text

    - The Field ^\* for Variable-Width One-line-at-a-time Text

    - Specifying Values

    - Using Fill Mode

    - Suppressing Lines Where All Fields Are Void

    - Repeating Format Lines

    - Top of Form Processing

    - Format Variables

    - NOTES

  - Footers

    - Accessing Formatting Internals

    - WARNINGS

  ### perlobj - Perl object reference

- DESCRIPTION

  - An Object is Simply a Data Structure

    - A Class is Simply a Package

    - A Method is Simply a Subroutine

    - Method Invocation

    - Inheritance

    - Writing Constructors

    - Attributes

    - An Aside About Smarter and Safer Code

    - Method Call Variations

    - Invoking Class Methods

    - "bless", "blessed", and "ref"

    - The UNIVERSAL Class

    isa($class) , DOES($role) , can($method) , VERSION($need)

  - AUTOLOAD

    - Destructors

    - Non-Hash Objects

    - Inside-Out objects

    - Pseudo-hashes

    - SEE ALSO

  ### perltie - how to hide an object class in a simple variable

- SYNOPSIS

  - DESCRIPTION

  - Tying Scalars

    TIESCALAR classname, LIST , FETCH this , STORE this, value , UNTIE this , DESTROY this

  - Tying Arrays

    TIEARRAY classname, LIST , FETCH this, index , STORE this, index, value , FETCHSIZE this , STORESIZE this, count , EXTEND this, count , EXISTS this, key , DELETE this, key , CLEAR this , PUSH this, LIST\
      , POP this , SHIFT this , UNSHIFT this, LIST  , SPLICE this, offset, length, LIST , UNTIE this , DESTROY this

  - Tying Hashes

    USER, HOME, CLOBBER, LIST, TIEHASH classname, LIST , FETCH this, key , STORE this, key, value , DELETE this, key , CLEAR this , EXISTS this, key , FIRSTKEY this , NEXTKEY this, lastkey , SCALAR this , UNTIE this , DESTROY this

  - Tying FileHandles

    TIEHANDLE classname, LIST , WRITE this, LIST , PRINT this, LIST , PRINTF this, LIST , READ this, LIST , READLINE this , GETC this , EOF this , CLOSE this , UNTIE this , DESTROY this

  - UNTIE this

    - The "untie" Gotcha

    - SEE ALSO

  - BUGS

  - AUTHOR

  ### perldbmfilter - Perl DBM Filters

- SYNOPSIS

  - DESCRIPTION

  **filter\_store\_key**, **filter\_store\_value**, **filter\_fetch\_key**, **filter\_fetch\_value**

  - The Filter

    - An Example: the NULL termination problem

    - Another Example: Key is a C int

    - SEE ALSO

  - AUTHOR

  ### perlclass - Perl class syntax reference

- SYNOPSIS

  - DESCRIPTION

  - History

    - KEYWORDS

  - class

    - field

    - method

    - ATTRIBUTES

  - Class attributes

    - Field attributes

    - Method attributes

    - OBJECT LIFECYCLE

  - Construction

    - Adjustment

    - Lifetime

    - Destruction

    - TODO

  Roles, Parameters to ADJUST blocks, ADJUST blocks as true blocks, More accessor generator attributes, Metaprogramming, Extension Customisation

- KNOWN BUGS

  - AUTHORS

  ### perlipc - Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores)

- DESCRIPTION

  - Signals

  - Handling the SIGHUP Signal in Daemons

    - Deferred Signals (Safe Signals)

    Long-running opcodes, Interrupting IO, Restartable system calls, Signals as "faults", Signals triggered by operating system state

- Named Pipes

  - Using **open()** for IPC

  - Filehandles

    - Background Processes

    - Complete Dissociation of Child from Parent

    - Safe Pipe Opens

    - Avoiding Pipe Deadlocks

    - Bidirectional Communication with Another Process

    - Bidirectional Communication with Yourself

    - Sockets: Client/Server Communication

  - Internet Line Terminators

    - Internet TCP Clients and Servers

    - Unix-Domain TCP Clients and Servers

    - TCP Clients with IO::Socket

  - A Simple Client

    `"Proto"`, `"PeerAddr"`, `"PeerPort"`

  - A Webget Client

    - Interactive Client with IO::Socket

    - TCP Servers with IO::Socket

  Proto, LocalPort, Listen, Reuse

- UDP: Message Passing

  - SysV IPC

  - NOTES

  - BUGS

  - AUTHOR

  - SEE ALSO

  ### perlfork - Perl's fork() emulation

- SYNOPSIS

  - DESCRIPTION

  - Behavior of other Perl features in forked pseudo-processes

    $$ or `$PROCESS_ID`, `%ENV`, **chdir()** and all other builtins that accept filenames, **wait()** and **waitpid()**, **kill()**, **exec()**, **exit()**, Open handles to files, directories and network sockets

  - Resource limits

    - Killing the parent process

    - Lifetime of the parent process and pseudo-processes

    - CAVEATS AND LIMITATIONS

  BEGIN blocks, Open filehandles, Open directory handles, Forking pipe **open()** not yet implemented, Global state maintained by XSUBs, Interpreter embedded in larger application, Thread-safety of extensions

- PORTABILITY CAVEATS

  - BUGS

  - AUTHOR

  - SEE ALSO

  ### perlnumber - semantics of numbers and numeric operations in Perl

- SYNOPSIS

  - DESCRIPTION

  - Storing numbers

  - Numeric operators and numeric conversions

  - Flavors of Perl numeric operations

  Arithmetic operators, ++, Arithmetic operators during `"use integer"`, Other mathematical operators, Bitwise operators, Bitwise operators during `"use` `integer"`, Operators which expect an integer, Operators which expect a string

- AUTHOR

  - SEE ALSO

  ### perlthrtut - Tutorial on threads in Perl

- DESCRIPTION

  - What Is A Thread Anyway?

  - Threaded Program Models

  - Boss/Worker

    - Work Crew

    - Pipeline

    - What kind of threads are Perl threads?

  - Thread-Safe Modules

  - Thread Basics

  - Basic Thread Support

    - A Note about the Examples

    - Creating Threads

    - Waiting For A Thread To Exit

    - Ignoring A Thread

    - Process and Thread Termination

    - Threads And Data

  - Shared And Unshared Data

    - Thread Pitfalls: Races

    - Synchronization and control

  - Controlling access: **lock()**

    - A Thread Pitfall: Deadlocks

    - Queues: Passing Data Around

    - Semaphores: Synchronizing Data Access

    - Basic semaphores

    - Advanced Semaphores

    - Waiting for a Condition

    - Giving up control

    - General Thread Utility Routines

  - What Thread Am I In?

    - Thread IDs

    - Are These Threads The Same?

    - What Threads Are Running?

    - A Complete Example

  - Different implementations of threads

  - Performance considerations

  - Process-scope Changes

  - Thread-Safety of System Libraries

  - Conclusion

  - SEE ALSO

  - Bibliography

  - Introductory Texts

    - OS-Related References

    - Other References

    - Acknowledgements

  - AUTHOR

  - Copyrights

  ### perlport - Writing portable Perl

- DESCRIPTION

  Not all Perl programs have to be portable, Nearly all of Perl already *is* portable

- ISSUES

  - Newlines

    - Numbers endianness and Width

    - Files and Filesystems

    - System Interaction

    - Command names versus file pathnames

    - Networking

    - Interprocess Communication (IPC)

    - External Subroutines (XS)

    - Standard Modules

    - Time and Date

    - Character sets and character encoding

    - Internationalisation

    - System Resources

    - Security

    - Style

    - CPAN Testers

  - PLATFORMS

  - Unix

    - DOS and Derivatives

    - VMS

    - VOS

    - EBCDIC Platforms

    - Acorn RISC OS

    - Other perls

    - FUNCTION IMPLEMENTATIONS

  - Alphabetical Listing of Perl Functions

    \-*X*, alarm, atan2, binmode, chdir, chmod, chown, chroot, crypt, dbmclose, dbmopen, dump, exec, exit, fcntl, flock, fork, getlogin, getpgrp, getppid, getpriority, getpwnam, getgrnam, getnetbyname, getpwuid, getgrgid, getnetbyaddr, getprotobynumber, getpwent, getgrent, gethostbyname, gethostent, getnetent, getprotoent, getservent, seekdir, sethostent, setnetent, setprotoent, setservent, endpwent, endgrent, endhostent, endnetent, endprotoent, endservent, getsockopt, glob, gmtime, ioctl, kill, link, localtime, lstat, msgctl, msgget, msgsnd, msgrcv, open, readlink, rename, rewinddir, select, semctl, semget, semop, setgrent, setpgrp, setpriority, setpwent, setsockopt, shmctl, shmget, shmread, shmwrite, sleep, socketpair, stat, symlink, syscall, sysopen, system, telldir, times, truncate, umask, utime, wait, waitpid

- Supported Platforms

  Linux (x86, ARM, IA64), HP-UX, AIX, Win32, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Cygwin, Solaris (x86, SPARC), OpenVMS, Alpha (7.2 and later), I64 (8.2 and later), NetBSD, FreeBSD, Debian GNU/kFreeBSD, Haiku, Irix (6.5. What else?), OpenBSD, Dragonfly BSD, Midnight BSD, QNX Neutrino RTOS (6.5.0), MirOS BSD, Stratus OpenVOS (17.0 or later), time\_t issues that may or may not be fixed, Stratus VOS / OpenVOS, AIX, Android, FreeMINT

- EOL Platforms

  - (Perl 5.37.1)

    Ultrix

  - (Perl 5.36)

    NetWare, DOS/DJGPP, AT&T UWIN

  - (Perl 5.20)

    AT&T 3b1

  - (Perl 5.14)

    Windows 95, Windows 98, Windows ME, Windows NT4

  - (Perl 5.12)

    Atari MiNT, Apollo Domain/OS, Apple Mac OS 8/9, Tenon Machten

- Supported Platforms (Perl 5.8)

  - SEE ALSO

  - AUTHORS / CONTRIBUTORS

  ### perllocale - Perl locale handling (internationalization and localization)

- DESCRIPTION

  - WHAT IS A LOCALE

  Category `"LC_NUMERIC"`: Numeric formatting, Category `"LC_MONETARY"`: Formatting of monetary amounts, Category `"LC_TIME"`: Date/Time formatting, Category `"LC_COLLATE"`: Collation, Category `"LC_CTYPE"`: Character Types, Category `"LC_MESSAGES"`: Error and other messages, Category `"LC_TIME"`: Date/Time formatting, Category `"LC_ALL"`, Other categories

- PREPARING TO USE LOCALES

  - USING LOCALES

  - The "use locale" pragma

    **Not within the scope of "use locale"**, **Lingering effects of "use locale"**, **Under ""use locale";"**

  - The setlocale function

    - Multi-threaded operation

    - Finding locales

    - LOCALE PROBLEMS

    - The localeconv function

    - I18N::Langinfo

    - LOCALE CATEGORIES

  - Category "LC\_COLLATE": Collation: Text Comparisons and Sorting

    - Category "LC\_CTYPE": Character Types

    - Category "LC\_NUMERIC": Numeric Formatting

    - Category "LC\_MONETARY": Formatting of monetary amounts

    - Category "LC\_TIME": Respresentation of time

    - Category "LC\_MESSAGES": System messages

    - Other categories

    - SECURITY

  - ENVIRONMENT

  PERL\_SKIP\_LOCALE\_INIT, PERL\_BADLANG, DPKG\_RUNNING\_VERSION, `"LC_ALL"`, `"LANGUAGE"`, `"LC_CTYPE"`, `"LC_COLLATE"`, `"LC_MONETARY"`, `"LC_NUMERIC"`, `"LC_TIME"`, `"LANG"`

  - Examples

    - NOTES

  - String "eval" and "LC\_NUMERIC"

    - Backward compatibility

    - I18N:Collate obsolete

    - Sort speed and memory use impacts

    - Freely available locale definitions

    - I18n and l10n

    - An imperfect standard

    - Unicode and UTF-8

  - BUGS

  - Collation of strings containing embedded "NUL" characters

    - "LANGUAGE"

    - Embedded perls and multi-threaded

    - Broken systems

    - SEE ALSO

  - HISTORY

  ### perluniintro - Perl Unicode introduction

- DESCRIPTION

  - Unicode

    - Perl's Unicode Support

    - Perl's Unicode Model

    - Unicode and EBCDIC

    - Creating Unicode

    - Handling Unicode

    - Legacy Encodings

    - Unicode I/O

    - Displaying Unicode As Text

    - Special Cases

    - Advanced Topics

    - Miscellaneous

    - Questions With Answers

    - Hexadecimal Notation

    - Further Resources

    - UNICODE IN OLDER PERLS

  - SEE ALSO

  - ACKNOWLEDGMENTS

  - AUTHOR, COPYRIGHT, AND LICENSE

  ### perlunicode - Unicode support in Perl

- DESCRIPTION

  - Important Caveats

    Safest if you `"use feature 'unicode_strings'"`, Input and Output Layers, You must convert your non-ASCII, non-UTF-8 Perl scripts to be UTF-8, `"use` `utf8"` still needed to enable UTF-8 in scripts, UTF-16 scripts autodetected

  - Byte and Character Semantics

    - ASCII Rules versus Unicode Rules

    When the string has been upgraded to UTF-8, There are additional methods for regular expression patterns

  - Extended Grapheme Clusters (Logical characters)

    - Unicode Character Properties

    **"\\p{All}"**, **"\\p{Alnum}"**, **"\\p{Any}"**, **"\\p{ASCII}"**, **"\\p{Assigned}"**, **"\\p{Blank}"**, **"\\p{Decomposition\_Type:** **Non\_Canonical}"**    (Short: `"\p{Dt=NonCanon}"`), **"\\p{Graph}"**, **"\\p{HorizSpace}"**, **"\\p{In=\*}"**, **"\\p{PerlSpace}"**, **"\\p{PerlWord}"**, **"\\p{Posix...}"**, **"\\p{Present\_In: \*}"**    (Short: `"\p{In=*}"`), **"\\p{Print}"**, **"\\p{SpacePerl}"**, **"\\p{Title}"** and  **"\\p{Titlecase}"**, **"\\p{Unicode}"**, **"\\p{VertSpace}"**, **"\\p{Word}"**, **"\\p{XPosix...}"**

  - Comparison of "\\N{...}" and "\\p{name=...}"

    \[1\], \[2\], \[3\], \[4\], \[5\]

  - Wildcards in Property Values

    - User-Defined Character Properties

    - User-Defined Case Mappings (for serious hackers only)

    - Character Encodings for Input and Output

    - Unicode Regular Expression Support Level

    \[1\] `"\N{U+...}"` and `"\x{...}"`, \[2\] `"\p{...}"` `"\P{...}"`.  This requirement is for a minimal list of properties.  Perl supports these.	See R2.7 for other properties, \[3\], \[4\], \[5\] `"\b"` `"\B"` meet most, but not all, the details of this requirement, but `"\b{wb}"` and `"\B{wb}"` do, as well as the stricter R2.3, \[6\], \[7\], \[8\] UTF-8/UTF-EBDDIC used in Perl allows not only `"U+10000"` to `"U+10FFFF"` but also beyond `"U+10FFFF"`, \[9\] Unicode has rewritten this portion of UTS#18 to say that getting canonical equivalence (see UAX#15 "Unicode Normalization Forms" \<https://www.unicode.org/reports/tr15\>) is basically to be done at the programmer level.  Use NFD to write both your regular expressions and text to match them against (you can use Unicode::Normalize), \[10\] Perl has `"\X"` and `"\b{gcb}"`.  Unicode has retracted their "Grapheme Cluster Mode", and recently added string properties, which Perl does not yet support, \[11\] see UAX#29 "Unicode Text Segmentation" \<https://www.unicode.org/reports/tr29\>,, \[12\] see "Wildcards in Property Values" in perlunicode above, \[13\] Perl supports all the properties in the Unicode Character Database (UCD).  It does not yet support the listed properties that come from other Unicode sources, \[14\] The only optional property that Perl supports is Named Sequence.  None of these properties are in the UCD

  - Unicode Encodings

    - Noncharacter code points

    - Beyond Unicode code points

    - Security Implications of Unicode

    - Unicode in Perl on EBCDIC

    - Locales

    - When Unicode Does Not Happen

    - The "Unicode Bug"

    - Forcing Unicode in Perl (Or Unforcing Unicode in Perl)

    - Using Unicode in XS

    - Hacking Perl to work on earlier Unicode versions (for very serious hackers only)

    - Porting code from perl-5.6.X

    - BUGS

  - Interaction with Extensions

    - Speed

    - SEE ALSO

  ### perlunicook - cookbookish examples of handling Unicode in Perl

- DESCRIPTION

  - EXAMPLES

  - ℞ 0: Standard preamble

    - ℞ 1: Generic Unicode-savvy filter

    - ℞ 2: Fine-tuning Unicode warnings

    - ℞ 3: Declare source in utf8 for identifiers and literals

    - ℞ 4: Characters and their numbers

    - ℞ 5: Unicode literals by character number

    - ℞ 6: Get character name by number

    - ℞ 7: Get character number by name

    - ℞ 8: Unicode named characters

    - ℞ 9: Unicode named sequences

    - ℞ 10: Custom named characters

    - ℞ 11: Names of CJK codepoints

    - ℞ 12: Explicit encode/decode

    - ℞ 13: Decode program arguments as utf8

    - ℞ 14: Decode program arguments as locale encoding

    - ℞ 15: Declare STD{IN,OUT,ERR} to be utf8

    - ℞ 16: Declare STD{IN,OUT,ERR} to be in locale encoding

    - ℞ 17: Make file I/O default to utf8

    - ℞ 18: Make all I/O and args default to utf8

    - ℞ 19: Open file with specific encoding

    - ℞ 20: Unicode casing

    - ℞ 21: Unicode case-insensitive comparisons

    - ℞ 22: Match Unicode linebreak sequence in regex

    - ℞ 23: Get character category

    - ℞ 24: Disabling Unicode-awareness in builtin charclasses

    - ℞ 25: Match Unicode properties in regex with \\p, \\P

    - ℞ 26: Custom character properties

    - ℞ 27: Unicode normalization

    - ℞ 28: Convert non-ASCII Unicode numerics

    - ℞ 29: Match Unicode grapheme cluster in regex

    - ℞ 30: Extract by grapheme instead of by codepoint (regex)

    - ℞ 31: Extract by grapheme instead of by codepoint (substr)

    - ℞ 32: Reverse string by grapheme

    - ℞ 33: String length in graphemes

    - ℞ 34: Unicode column-width for printing

    - ℞ 35: Unicode collation

    - ℞ 36: Case- *and* accent-insensitive Unicode sort

    - ℞ 37: Unicode locale collation

    - ℞ 38: Making "cmp" work on text instead of codepoints

    - ℞ 39: Case- *and* accent-insensitive comparisons

    - ℞ 40: Case- *and* accent-insensitive locale comparisons

    - ℞ 41: Unicode linebreaking

    - ℞ 42: Unicode text in DBM hashes, the tedious way

    - ℞ 43: Unicode text in DBM hashes, the easy way

    - ℞ 44: PROGRAM: Demo of Unicode collation and printing

    - SEE ALSO

  §3.13 Default Case Algorithms, page 113; §4.2  Case, pages 120–122; Case Mappings, page 166–172, especially Caseless Matching starting on page 170, UAX #44: Unicode Character Database, UTS #18: Unicode Regular Expressions, UAX #15: Unicode Normalization Forms, UTS #10: Unicode Collation Algorithm, UAX #29: Unicode Text Segmentation, UAX #14: Unicode Line Breaking Algorithm, UAX #11: East Asian Width

- AUTHOR

  - COPYRIGHT AND LICENCE

  - REVISION HISTORY

  ### perlunifaq - Perl Unicode FAQ

- Q and A

  - perlunitut isn't really a Unicode tutorial, is it?

    - What character encodings does Perl support?

    - Which version of perl should I use?

    - What about binary data, like images?

    - When should I decode or encode?

    - What if I don't decode?

    - What if I don't encode?

    If the string's characters are all code point 255 or lower, Perl outputs bytes that match those code points. This is what happens with encoded strings. It can also, though, happen with unencoded strings that happen to be all code point 255 or lower, Otherwise, Perl outputs the string encoded as UTF-8. This only happens with strings you neglected to encode. Since that should not happen, Perl also throws a "wide character" warning in this case

  - Is there a way to automatically decode or encode?

    - What if I don't know which encoding was used?

    - Can I use Unicode in my Perl sources?

    - Data::Dumper doesn't restore the UTF8 flag; is it broken?

    - Why do regex character classes sometimes match only in the ASCII range?

    - Why do some characters not uppercase or lowercase correctly?

    - How can I determine if a string is a text string or a binary string?

    - How do I convert from encoding FOO to encoding BAR?

    - What are "decode\_utf8" and "encode\_utf8"?

    - What is a "wide character"?

    - INTERNALS

  - What is "the UTF8 flag"?

    - What about the "use bytes" pragma?

    - What about the "use encoding" pragma?

    - What is the difference between ":encoding" and ":utf8"?

    - What's the difference between "UTF-8" and "utf8"?

    - I lost track; what encoding is the internal format really?

    - AUTHOR

  - SEE ALSO

  ### perluniprops - Index of Unicode Version 15.0.0 character properties in Perl

- DESCRIPTION

  - Properties accessible through "\\p{}" and "\\P{}"

  Single form (`"\p{name}"`) tighter rules:, white space adjacent to a non-word character, underscores separating digits in numbers, Compound form (`"\p{name=value}"` or `"\p{name:value}"`) tighter rules:, Stabilized, Deprecated, Obsolete, Discouraged, **\*** is a wild-card, **(\\d+)** in the info column gives the number of Unicode code points matched by this property, **D** means this is deprecated, **O** means this is obsolete, **S** means this is stabilized, **T** means tighter (stricter) name matching applies, **X** means use of this form is discouraged, and may not be stable

  - Legal "\\p{}" and "\\P{}" constructs that match no characters

    \\p{Canonical\_Combining\_Class=Attached\_Below\_Left}, \\p{Canonical\_Combining\_Class=CCC133}, \\p{Grapheme\_Cluster\_Break=E\_Base}, \\p{Grapheme\_Cluster\_Break=E\_Base\_GAZ}, \\p{Grapheme\_Cluster\_Break=E\_Modifier}, \\p{Grapheme\_Cluster\_Break=Glue\_After\_Zwj}, \\p{Word\_Break=E\_Base}, \\p{Word\_Break=E\_Base\_GAZ}, \\p{Word\_Break=E\_Modifier}, \\p{Word\_Break=Glue\_After\_Zwj}

- Properties accessible through Unicode::UCD

  - Properties accessible through other means

  - Unicode character properties that are NOT accepted by Perl

  *Expands\_On\_NFC* (XO\_NFC), *Expands\_On\_NFD* (XO\_NFD), *Expands\_On\_NFKC* (XO\_NFKC), *Expands\_On\_NFKD* (XO\_NFKD), *Grapheme\_Link* (Gr\_Link), *Jamo\_Short\_Name* (JSN), *Other\_Alphabetic* (OAlpha), *Other\_Default\_Ignorable\_Code\_Point* (ODI), *Other\_Grapheme\_Extend* (OGr\_Ext), *Other\_ID\_Continue* (OIDC), *Other\_ID\_Start* (OIDS), *Other\_Lowercase* (OLower), *Other\_Math* (OMath), *Other\_Uppercase* (OUpper), *Script=Katakana\_Or\_Hiragana* (sc=Hrkt), *Script\_Extensions=Katakana\_Or\_Hiragana* (scx=Hrkt)

- Other information in the Unicode data base

  *auxiliary/GraphemeBreakTest.html*, *auxiliary/LineBreakTest.html*, *auxiliary/SentenceBreakTest.html*, *auxiliary/WordBreakTest.html*, *BidiCharacterTest.txt*, *BidiTest.txt*, *CJKRadicals.txt*, *confusables.txt*, *confusablesSummary.txt*, *intentional.txt*, *emoji/ReadMe.txt*, *ReadMe.txt*, *EmojiSources.txt*, *extracted/DName.txt*, *Index.txt*, *NamedSqProv.txt*, *NamesList.html*, *NamesList.txt*, *NormalizationCorrections.txt*, *NushuSources.txt*, *StandardizedVariants.html*, *StandardizedVariants.txt*, *TangutSources.txt*, *USourceData.txt*, *USourceGlyphs.pdf*

- SEE ALSO

  ### perlunitut - Perl Unicode Tutorial

- DESCRIPTION

  - Definitions

    - Your new toolkit

    - I/O flow (the actual 5 minute tutorial)

    - SUMMARY

  - Q and A (or FAQ)

  - ACKNOWLEDGEMENTS

  - AUTHOR

  - SEE ALSO

  ### perlebcdic - Considerations for running Perl on EBCDIC platforms

- DESCRIPTION

  - COMMON CHARACTER CODE SETS

  - ASCII

    - ISO 8859

    - Latin 1 (ISO 8859-1)

    - EBCDIC

    **0037**, **1047**, **POSIX-BC**

  - Unicode code points versus EBCDIC code points

    - Unicode and UTF

    - Using Encode

    - SINGLE OCTET TABLES

  recipe 0, recipe 1, recipe 2, recipe 3, recipe 4, recipe 5, recipe 6

  - Table in hex, sorted in 1047 order

    - IDENTIFYING CHARACTER CODE SETS

  - CONVERSIONS

  - utf8::unicode\_to\_native() and utf8::native\_to\_unicode()

    - tr///

    - iconv

    - C RTL

    - OPERATOR DIFFERENCES

  - FUNCTION DIFFERENCES

  `chr()`, `ord()`, `pack()`, `print()`, `printf()`, `sort()`, `sprintf()`, `unpack()`

- REGULAR EXPRESSION DIFFERENCES

  - SOCKETS

  - SORTING

  - Ignore ASCII vs. EBCDIC sort differences

    - Use a sort helper function

    - MONO CASE then sort data (for non-digits, non-underscore)

    - Perform sorting on one type of platform only

    - TRANSFORMATION FORMATS

  - URL decoding and encoding

    - uu encoding and decoding

    - Quoted-Printable encoding and decoding

    - Caesarean ciphers

    - Hashing order and checksums

  - I18N AND L10N

  - MULTI-OCTET CHARACTER SETS

  - OS ISSUES

  - OS/400

    PASE, IFS access

  - OS/390, z/OS

    `"sigaction"`, `"chcp"`, dataset access, `"iconv"`, locales

  - POSIX-BC?

    - BUGS

  - SEE ALSO

  - REFERENCES

  - HISTORY

  - AUTHOR

  ### perlsec - Perl security

- DESCRIPTION

  - SECURITY VULNERABILITY CONTACT INFORMATION

  - SECURITY MECHANISMS AND CONCERNS

  - Taint mode

    - Laundering and Detecting Tainted Data

    - Switches On the "#!" Line

    - Taint mode and @INC

    - Cleaning Up Your Path

    - Shebang Race Condition

    - Protecting Your Programs

    - Unicode

    - Algorithmic Complexity Attacks

    Hash Seed Randomization, Hash Traversal Randomization, Bucket Order Perturbance, New Default Hash Function, Alternative Hash Functions

  - Using Sudo

    - SEE ALSO

  ### perlsecpolicy - Perl security report handling policy

- DESCRIPTION

  - REPORTING SECURITY ISSUES IN PERL

  - WHAT ARE SECURITY ISSUES

  - Software covered by the Perl security team

    - Bugs that may qualify as security issues in Perl

    - Bugs that do not qualify as security issues in Perl

    - Bugs that require special categorization

    - HOW WE DEAL WITH SECURITY ISSUES

  - Perl's vulnerability remediation workflow

    - Publicly known and zero-day security issues

    - Vulnerability credit and bounties

    ### perlmod - Perl modules (packages and symbol tables)

- DESCRIPTION

  - Is this the document you were after?

    This doc, perlnewmod, perlmodstyle

  - Packages

    - Symbol Tables

    - BEGIN, UNITCHECK, CHECK, INIT and END

    - Perl Classes

    - Perl Modules

    - Making your module threadsafe

    - SEE ALSO

  ### perlmodlib - constructing new Perl modules and finding existing ones

- THE PERL MODULE LIBRARY

  - Pragmatic Modules

    attributes, autodie, autodie::exception, autodie::exception::system, autodie::hints, autodie::skip, autouse, base, bigfloat, bigint, bignum, bigrat, blib, builtin, bytes, charnames, constant, deprecate, diagnostics, encoding, encoding::warnings, experimental, feature, fields, filetest, if, integer, less, lib, locale, mro, ok, open, ops, overload, overloading, parent, re, sigtrap, sort, stable, strict, subs, threads, threads::shared, utf8, vars, version, vmsish, warnings, warnings::register

  - Standard Modules

    Amiga::ARexx, Amiga::Exec, AnyDBM\_File, App::Cpan, App::Prove, App::Prove::State, App::Prove::State::Result, App::Prove::State::Result::Test, Archive::Tar, Archive::Tar::File, Attribute::Handlers, AutoLoader, AutoSplit, B, B::Concise, B::Deparse, B::Op\_private, B::Showlex, B::Terse, B::Xref, Benchmark, `"IO::Socket::IP"`, `"Socket"`, `"Test2::Tools::Refcount"`, CORE, CPAN, CPAN::API::HOWTO, CPAN::Debug, CPAN::Distroprefs, CPAN::FirstTime, CPAN::HandleConfig, CPAN::Kwalify, CPAN::Meta, CPAN::Meta::Converter, CPAN::Meta::Feature, CPAN::Meta::History, CPAN::Meta::History::Meta\_1\_0, CPAN::Meta::History::Meta\_1\_1, CPAN::Meta::History::Meta\_1\_2, CPAN::Meta::History::Meta\_1\_3, CPAN::Meta::History::Meta\_1\_4, CPAN::Meta::Merge, CPAN::Meta::Prereqs, CPAN::Meta::Requirements, CPAN::Meta::Requirements::Range, CPAN::Meta::Spec, CPAN::Meta::Validator, CPAN::Meta::YAML, CPAN::Nox, CPAN::Plugin, CPAN::Plugin::Specfile, CPAN::Queue, CPAN::Tarzip, CPAN::Version, Carp, Class::Struct, Compress::Raw::Bzip2, Compress::Raw::Zlib, Compress::Zlib, Config, Config::Extensions, Config::Perl::V, Cwd, DB, DBM\_Filter, DBM\_Filter::compress, DBM\_Filter::encode, DBM\_Filter::int32, DBM\_Filter::null, DBM\_Filter::utf8, DB\_File, Data::Dumper, Devel::PPPort, Devel::Peek, Devel::SelfStubber, Digest, Digest::MD5, Digest::SHA, Digest::base, Digest::file, DirHandle, Dumpvalue, DynaLoader, Encode, Encode::Alias, Encode::Byte, Encode::CJKConstants, Encode::CN, Encode::CN::HZ, Encode::Config, Encode::EBCDIC, Encode::Encoder, Encode::Encoding, Encode::GSM0338, Encode::Guess, Encode::JP, Encode::JP::H2Z, Encode::JP::JIS7, Encode::KR, Encode::KR::2022\_KR, Encode::MIME::Header, Encode::MIME::Name, Encode::PerlIO, Encode::Supported, Encode::Symbol, Encode::TW, Encode::Unicode, Encode::Unicode::UTF7, English, Env, Errno, Exporter, Exporter::Heavy, ExtUtils::CBuilder, ExtUtils::CBuilder::Platform::Windows, ExtUtils::Command, ExtUtils::Command::MM, ExtUtils::Constant, ExtUtils::Constant::Base, ExtUtils::Constant::Utils, ExtUtils::Constant::XS, ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist, ExtUtils::MM, ExtUtils::MM\_AIX, ExtUtils::MM\_Any, ExtUtils::MM\_BeOS, ExtUtils::MM\_Cygwin, ExtUtils::MM\_DOS, ExtUtils::MM\_Darwin, ExtUtils::MM\_MacOS, ExtUtils::MM\_NW5, ExtUtils::MM\_OS2, ExtUtils::MM\_OS390, ExtUtils::MM\_QNX, ExtUtils::MM\_UWIN, ExtUtils::MM\_Unix, ExtUtils::MM\_VMS, ExtUtils::MM\_VOS, ExtUtils::MM\_Win32, ExtUtils::MM\_Win95, ExtUtils::MY, ExtUtils::MakeMaker, ExtUtils::MakeMaker::Config, ExtUtils::MakeMaker::FAQ, ExtUtils::MakeMaker::Locale, ExtUtils::MakeMaker::Tutorial, ExtUtils::Manifest, ExtUtils::Miniperl, ExtUtils::Mkbootstrap, ExtUtils::Mksymlists, ExtUtils::PL2Bat, ExtUtils::Packlist, ExtUtils::ParseXS, ExtUtils::ParseXS::Constants, ExtUtils::ParseXS::Eval, ExtUtils::ParseXS::Utilities, ExtUtils::Typemaps, ExtUtils::Typemaps::Cmd, ExtUtils::Typemaps::InputMap, ExtUtils::Typemaps::OutputMap, ExtUtils::Typemaps::Type, ExtUtils::XSSymSet, ExtUtils::testlib, Fatal, Fcntl, File::Basename, File::Compare, File::Copy, File::DosGlob, File::Fetch, File::Find, File::Glob, File::GlobMapper, File::Path, File::Spec, File::Spec::AmigaOS, File::Spec::Cygwin, File::Spec::Epoc, File::Spec::Functions, File::Spec::Mac, File::Spec::OS2, File::Spec::Unix, File::Spec::VMS, File::Spec::Win32, File::Temp, File::stat, FileCache, FileHandle, Filter::Simple, Filter::Util::Call, FindBin, GDBM\_File, Getopt::Long, Getopt::Long::Parser, Getopt::Std, HTTP::Tiny, Hash::Util, Hash::Util::FieldHash, I18N::Collate, I18N::LangTags, I18N::LangTags::Detect, I18N::LangTags::List, I18N::Langinfo, IO, IO::Compress::Base, IO::Compress::Bzip2, IO::Compress::Deflate, IO::Compress::FAQ, IO::Compress::Gzip, IO::Compress::RawDeflate, IO::Compress::Zip, IO::Dir, IO::File, IO::Handle, IO::Pipe, IO::Poll, IO::Seekable, IO::Select, IO::Socket, IO::Socket::INET, IO::Socket::UNIX, IO::Uncompress::AnyInflate, IO::Uncompress::AnyUncompress, IO::Uncompress::Base, IO::Uncompress::Bunzip2, IO::Uncompress::Gunzip, IO::Uncompress::Inflate, IO::Uncompress::RawInflate, IO::Uncompress::Unzip, IO::Zlib, IPC::Cmd, IPC::Msg, IPC::Open2, IPC::Open3, IPC::Semaphore, IPC::SharedMem, IPC::SysV, Internals, JSON::PP, JSON::PP::Boolean, List::Util, List::Util::XS, Locale::Maketext, Locale::Maketext::Cookbook, Locale::Maketext::Guts, Locale::Maketext::GutsLoader, Locale::Maketext::Simple, Locale::Maketext::TPJ13, MIME::Base64, MIME::QuotedPrint, Math::BigFloat, Math::BigInt, Math::BigInt::Calc, Math::BigInt::FastCalc, Math::BigInt::Lib, Math::BigRat, Math::Complex, Math::Trig, Memoize, Memoize::AnyDBM\_File, Memoize::Expire, Memoize::NDBM\_File, Memoize::SDBM\_File, Memoize::Storable, Module::CoreList, Module::CoreList::Utils, Module::Load, Module::Load::Conditional, Module::Loaded, Module::Metadata, NDBM\_File, NEXT, Net::Cmd, Net::Config, Net::Domain, Net::FTP, Net::FTP::dataconn, Net::NNTP, Net::Netrc, Net::POP3, Net::Ping, Net::SMTP, Net::Time, Net::hostent, Net::libnetFAQ, Net::netent, Net::protoent, Net::servent, O, ODBM\_File, Opcode, POSIX, Params::Check, Parse::CPAN::Meta, Perl::OSType, PerlIO, PerlIO::encoding, PerlIO::mmap, PerlIO::scalar, PerlIO::via, PerlIO::via::QuotedPrint, Pod::Checker, Pod::Escapes, Pod::Functions, Pod::Html, Pod::Html::Util, Pod::Man, Pod::ParseLink, Pod::Perldoc, Pod::Perldoc::BaseTo, Pod::Perldoc::GetOptsOO, Pod::Perldoc::ToANSI, Pod::Perldoc::ToChecker, Pod::Perldoc::ToMan, Pod::Perldoc::ToNroff, Pod::Perldoc::ToPod, Pod::Perldoc::ToRtf, Pod::Perldoc::ToTerm, Pod::Perldoc::ToText, Pod::Perldoc::ToTk, Pod::Perldoc::ToXml, Pod::Simple, Pod::Simple::Checker, Pod::Simple::Debug, Pod::Simple::DumpAsText, Pod::Simple::DumpAsXML, Pod::Simple::HTML, Pod::Simple::HTMLBatch, Pod::Simple::JustPod, Pod::Simple::LinkSection, Pod::Simple::Methody, Pod::Simple::PullParser, Pod::Simple::PullParserEndToken, Pod::Simple::PullParserStartToken, Pod::Simple::PullParserTextToken, Pod::Simple::PullParserToken, Pod::Simple::RTF, Pod::Simple::Search, Pod::Simple::SimpleTree, Pod::Simple::Subclassing, Pod::Simple::Text, Pod::Simple::TextContent, Pod::Simple::XHTML, Pod::Simple::XMLOutStream, Pod::Text, Pod::Text::Color, Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Usage, SDBM\_File, Safe, Scalar::Util, Search::Dict, SelectSaver, SelfLoader, Storable, Sub::Util, Symbol, Sys::Hostname, Sys::Syslog, Sys::Syslog::Win32, TAP::Base, TAP::Formatter::Base, TAP::Formatter::Color, TAP::Formatter::Console, TAP::Formatter::Console::ParallelSession, TAP::Formatter::Console::Session, TAP::Formatter::File, TAP::Formatter::File::Session, TAP::Formatter::Session, TAP::Harness, TAP::Harness::Env, TAP::Object, TAP::Parser, TAP::Parser::Aggregator, TAP::Parser::Grammar, TAP::Parser::Iterator, TAP::Parser::Iterator::Array, TAP::Parser::Iterator::Process, TAP::Parser::Iterator::Stream, TAP::Parser::IteratorFactory, TAP::Parser::Multiplexer, TAP::Parser::Result, TAP::Parser::Result::Bailout, TAP::Parser::Result::Comment, TAP::Parser::Result::Plan, TAP::Parser::Result::Pragma, TAP::Parser::Result::Test, TAP::Parser::Result::Unknown, TAP::Parser::Result::Version, TAP::Parser::Result::YAML, TAP::Parser::ResultFactory, TAP::Parser::Scheduler, TAP::Parser::Scheduler::Job, TAP::Parser::Scheduler::Spinner, TAP::Parser::Source, TAP::Parser::SourceHandler, TAP::Parser::SourceHandler::Executable, TAP::Parser::SourceHandler::File, TAP::Parser::SourceHandler::Handle, TAP::Parser::SourceHandler::Perl, TAP::Parser::SourceHandler::RawTAP, TAP::Parser::YAMLish::Reader, TAP::Parser::YAMLish::Writer, Term::ANSIColor, Term::Cap, Term::Complete, Term::ReadLine, Term::Table, Term::Table::Cell, Term::Table::CellStack, Term::Table::HashBase, Term::Table::LineBreak, Term::Table::Util, Test, Test2, Test2::API, Test2::API::Breakage, Test2::API::Context, Test2::API::Instance, Test2::API::InterceptResult, Test2::API::InterceptResult::Event, Test2::API::InterceptResult::Hub, Test2::API::InterceptResult::Squasher, Test2::API::Stack, Test2::AsyncSubtest, Test2::AsyncSubtest::Event::Attach, Test2::AsyncSubtest::Event::Detach, Test2::AsyncSubtest::Hub, Test2::Bundle, Test2::Bundle::Extended, Test2::Bundle::More, Test2::Bundle::Simple, Test2::Compare, Test2::Compare::Array, Test2::Compare::Bag, Test2::Compare::Base, Test2::Compare::Bool, Test2::Compare::Custom, Test2::Compare::DeepRef, Test2::Compare::Delta, Test2::Compare::Event, Test2::Compare::EventMeta, Test2::Compare::Float, Test2::Compare::Hash, Test2::Compare::Isa, Test2::Compare::Meta, Test2::Compare::Negatable, Test2::Compare::Number, Test2::Compare::Object, Test2::Compare::OrderedSubset, Test2::Compare::Pattern, Test2::Compare::Ref, Test2::Compare::Regex, Test2::Compare::Scalar, Test2::Compare::Set, Test2::Compare::String, Test2::Compare::Undef, Test2::Compare::Wildcard, Test2::Event, Test2::Event::Bail, Test2::Event::Diag, Test2::Event::Encoding, Test2::Event::Exception, Test2::Event::Fail, Test2::Event::Generic, Test2::Event::Note, Test2::Event::Ok, Test2::Event::Pass, Test2::Event::Plan, Test2::Event::Skip, Test2::Event::Subtest, Test2::Event::TAP::Version, Test2::Event::V2, Test2::Event::Waiting, Test2::EventFacet, Test2::EventFacet::About, Test2::EventFacet::Amnesty, Test2::EventFacet::Assert, Test2::EventFacet::Control, Test2::EventFacet::Error, Test2::EventFacet::Hub, Test2::EventFacet::Info, Test2::EventFacet::Info::Table, Test2::EventFacet::Meta, Test2::EventFacet::Parent, Test2::EventFacet::Plan, Test2::EventFacet::Render, Test2::EventFacet::Trace, Test2::Formatter, Test2::Formatter::TAP, Test2::Hub, Test2::Hub::Interceptor, Test2::Hub::Interceptor::Terminator, Test2::Hub::Subtest, Test2::IPC, Test2::IPC::Driver, Test2::IPC::Driver::Files, Test2::Manual, Test2::Manual::Anatomy, Test2::Manual::Anatomy::API, Test2::Manual::Anatomy::Context, Test2::Manual::Anatomy::Event, Test2::Manual::Anatomy::Hubs, Test2::Manual::Anatomy::IPC, Test2::Manual::Anatomy::Utilities, Test2::Manual::Concurrency, Test2::Manual::Contributing, Test2::Manual::EndToEnd, Test2::Manual::Testing, Test2::Manual::Testing::Introduction, Test2::Manual::Testing::Migrating, Test2::Manual::Testing::Planning, Test2::Manual::Testing::Todo, Test2::Manual::Tooling, Test2::Manual::Tooling::FirstTool, Test2::Manual::Tooling::Formatter, Test2::Manual::Tooling::Nesting, Test2::Manual::Tooling::Plugin::TestExit, Test2::Manual::Tooling::Plugin::TestingDone, Test2::Manual::Tooling::Plugin::ToolCompletes, Test2::Manual::Tooling::Plugin::ToolStarts, Test2::Manual::Tooling::Subtest, Test2::Manual::Tooling::TestBuilder, Test2::Manual::Tooling::Testing, Test2::Mock, Test2::Plugin, Test2::Plugin::BailOnFail, Test2::Plugin::DieOnFail, Test2::Plugin::ExitSummary, Test2::Plugin::SRand, Test2::Plugin::Times, Test2::Plugin::UTF8, Test2::Require, Test2::Require::AuthorTesting, Test2::Require::AutomatedTesting, Test2::Require::EnvVar, Test2::Require::ExtendedTesting, Test2::Require::Fork, Test2::Require::Module, Test2::Require::NonInteractiveTesting, Test2::Require::Perl, Test2::Require::RealFork, Test2::Require::ReleaseTesting, Test2::Require::Threads, Test2::Suite, Test2::Todo, Test2::Tools, Test2::Tools::AsyncSubtest, Test2::Tools::Basic, Test2::Tools::Class, Test2::Tools::ClassicCompare, Test2::Tools::Compare, Test2::Tools::Defer, Test2::Tools::Encoding, Test2::Tools::Event, Test2::Tools::Exception, Test2::Tools::Exports, Test2::Tools::GenTemp, Test2::Tools::Grab, Test2::Tools::Mock, Test2::Tools::Ref, Test2::Tools::Spec, Test2::Tools::Subtest, Test2::Tools::Target, Test2::Tools::Tester, Test2::Tools::Tiny, Test2::Tools::Warnings, Test2::Transition, Test2::Util, Test2::Util::ExternalMeta, Test2::Util::Facets2Legacy, Test2::Util::Grabber, Test2::Util::Guard, Test2::Util::HashBase, Test2::Util::Importer, Test2::Util::Ref, Test2::Util::Stash, Test2::Util::Sub, Test2::Util::Table, Test2::Util::Table::LineBreak, Test2::Util::Times, Test2::Util::Trace, Test2::V0, Test2::Workflow, Test2::Workflow::BlockBase, Test2::Workflow::Build, Test2::Workflow::Runner, Test2::Workflow::Task, Test2::Workflow::Task::Action, Test2::Workflow::Task::Group, Test::Builder, Test::Builder::Formatter, Test::Builder::IO::Scalar, Test::Builder::Module, Test::Builder::Tester, Test::Builder::Tester::Color, Test::Builder::TodoDiag, Test::Harness, Test::Harness::Beyond, Test::More, Test::Simple, Test::Tester, Test::Tester::Capture, Test::Tester::CaptureRunner, Test::Tutorial, Test::use::ok, Text::Abbrev, Text::Balanced, Text::ParseWords, Text::Tabs, Text::Wrap, Thread, Thread::Queue, Thread::Semaphore, Tie::Array, Tie::File, Tie::Handle, Tie::Hash, Tie::Hash::NamedCapture, Tie::Memoize, Tie::RefHash, Tie::Scalar, Tie::StdHandle, Tie::SubstrHash, Time::HiRes, Time::Local, Time::Piece, Time::Seconds, Time::gmtime, Time::localtime, Time::tm, UNIVERSAL, Unicode::Collate, Unicode::Collate::CJK::Big5, Unicode::Collate::CJK::GB2312, Unicode::Collate::CJK::JISX0208, Unicode::Collate::CJK::Korean, Unicode::Collate::CJK::Pinyin, Unicode::Collate::CJK::Stroke, Unicode::Collate::CJK::Zhuyin, Unicode::Collate::Locale, Unicode::Normalize, Unicode::UCD, User::grent, User::pwent, VMS::DCLsym, VMS::Filespec, VMS::Stdio, Win32, Win32API::File, Win32CORE, XS::APItest, XS::Typemap, XSLoader, autodie::Scope::Guard, autodie::Scope::GuardStack, autodie::Util, version::Internals

  - Extension Modules

    - CPAN

  - Modules: Creation, Use, and Abuse

  - Guidelines for Module Creation

    - Guidelines for Converting Perl 4 Library Scripts into Modules

    - Guidelines for Reusing Application Code

    - NOTE

  ### perlmodstyle - Perl module style guide

- INTRODUCTION

  - QUICK CHECKLIST

  - Before you start

    - The API

    - Stability

    - Documentation

    - Release considerations

    - BEFORE YOU START WRITING A MODULE

  - Has it been done before?

    - Do one thing and do it well

    - What's in a name?

    - Get feedback before publishing

    - DESIGNING AND WRITING YOUR MODULE

  - To OO or not to OO?

    - Designing your API

    Write simple routines to do simple things, Separate functionality from output, Provide sensible shortcuts and defaults, Naming conventions, Parameter passing

  - Strictness and warnings

    - Backwards compatibility

    - Error handling and messages

    - DOCUMENTING YOUR MODULE

  - POD

    - README, INSTALL, release notes, changelogs

    perl Makefile.PL, make, make test, make install, perl Build.PL, perl Build, perl Build test, perl Build install

- RELEASE CONSIDERATIONS

  - Version numbering

    - Pre-requisites

    - Testing

    - Packaging

    - Licensing

    - COMMON PITFALLS

  - Reinventing the wheel

    - Trying to do too much

    - Inappropriate documentation

    - SEE ALSO

  perlstyle, perlnewmod, perlpod, podchecker, Packaging Tools, Testing tools, \<https://pause.perl.org/\>, Any good book on software engineering

- AUTHOR

  ### perlmodinstall - Installing CPAN Modules

- DESCRIPTION

  - PREAMBLE

    **DECOMPRESS** the file, **UNPACK** the file into a directory, **BUILD** the module (sometimes unnecessary), **INSTALL** the module

- PORTABILITY

  - HEY

  - AUTHOR

  - COPYRIGHT

  ### perlnewmod - preparing a new module for distribution

- DESCRIPTION

  - Warning

    - What should I make into a module?

    - Step-by-step: Preparing the ground

    Look around, Check it's new, Discuss the need, Choose a name, Check again

  - Step-by-step: Making the module

    Start with *module-starter* or *h2xs*, Use strict and warnings, Use Carp, Use Exporter - wisely!, Use plain old documentation, Write tests, Write the *README*, Write *Changes*

  - Step-by-step: Distributing your module

    Get a CPAN user ID, Make the tarball, Upload the tarball, Fix bugs!

- AUTHOR

  - SEE ALSO

  ### perlpragma - how to write a user pragma

- DESCRIPTION

  - A basic example

  - Key naming

  - Implementation details

  ### perlutil - utilities packaged with the Perl distribution

- DESCRIPTION

  - LIST OF UTILITIES

  - Documentation

    perldoc, pod2man, pod2text, pod2html, pod2usage, podchecker, splain, *roffitall*

  - Converters

    pl2pm

  - Administration

    libnetcfg, perlivp

  - Development

    perlbug, perlthanks, h2ph, h2xs, enc2xs, xsubpp, prove, corelist

  - General tools

    encguess, json\_pp, piconv, ptar, ptardiff, ptargrep, shasum, streamzip, zipdetails

  - Installation

    cpan, instmodsh

- SEE ALSO

  ### perlfilter - Source Filters

- DESCRIPTION

  - CONCEPTS

  - USING FILTERS

  - WRITING A SOURCE FILTER

  - WRITING A SOURCE FILTER IN C

  **Decryption Filters**

- CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE

  - WRITING A SOURCE FILTER IN PERL

  - USING CONTEXT: THE DEBUG FILTER

  - CONCLUSION

  - LIMITATIONS

  - THINGS TO LOOK OUT FOR

  Some Filters Clobber the `"DATA"` Handle

- REQUIREMENTS

  - AUTHOR

  - Copyrights

  ### perldtrace - Perl's support for DTrace

- SYNOPSIS

  - DESCRIPTION

  - HISTORY

  - PROBES

  sub-entry(SUBNAME, FILE, LINE, PACKAGE), sub-return(SUBNAME, FILE, LINE, PACKAGE), phase-change(NEWPHASE, OLDPHASE), op-entry(OPNAME), loading-file(FILENAME), loaded-file(FILENAME)

- EXAMPLES

  Most frequently called functions, Trace function calls, Function calls during interpreter cleanup, System calls at compile time, Perl functions that execute the most opcodes

- REFERENCES

  DTrace Dynamic Tracing Guide, DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD

- SEE ALSO

  Devel::DTrace::Provider

- AUTHORS

  ### perlglossary - Perl Glossary

- VERSION

  - DESCRIPTION

  - A

    accessor methods, actual arguments, address operator, algorithm, alias, alphabetic, alternatives, anonymous, application, architecture, argument, ARGV, arithmetical operator, array, array context, Artistic License, ASCII, assertion, assignment, assignment operator, associative array, associativity, asynchronous, atom, atomic operation, attribute, autogeneration, autoincrement, autoload, autosplit, autovivification, AV, awk

  - B

    backreference, backtracking, backward compatibility, bareword, base class, big-endian, binary, binary operator, bind, bit, bit shift, bit string, bless, block, BLOCK, block buffering, Boolean, Boolean context, breakpoint, broadcast, BSD, bucket, buffer, built-in, bundle, byte, bytecode

  - C

    C, cache, callback, call by reference, call by value, canonical, capture variables, capturing, cargo cult, case, casefolding, casemapping, character, character class, character property, circumfix operator, class, class method, client, closure, cluster, CODE, code generator, codepoint, code subpattern, collating sequence, co-maintainer, combining character, command, command buffering, command-line arguments, command name, comment, compilation unit, compile, compile phase, compiler, compile time, composer, concatenation, conditional, connection, construct, constructor, context, continuation, core dump, CPAN, C preprocessor, cracker, currently selected output channel, current package, current working directory, CV

  - D

    dangling statement, datagram, data structure, data type, DBM, declaration, declarator, decrement, default, defined, delimiter, dereference, derived class, descriptor, destroy, destructor, device, directive, directory, directory handle, discipline, dispatch, distribution, dual-lived, dweomer, dwimmer, dynamic scoping

  - E

    eclectic, element, embedding, empty subclass test, encapsulation, endian, en passant, environment, environment variable, EOF, errno, error, escape sequence, exception, exception handling, exec, executable file, execute, execute bit, exit status, exploit, export, expression, extension

  - F

    false, FAQ, fatal error, feeping creaturism, field, FIFO, file, file descriptor, fileglob, filehandle, filename, filesystem, file test operator, filter, first-come, flag, floating point, flush, FMTEYEWTK, foldcase, fork, formal arguments, format, freely available, freely redistributable, freeware, function, funny character

  - G

    garbage collection, GID, glob, global, global destruction, glue language, granularity, grapheme, greedy, grep, group, GV

  - H

    hacker, handler, hard reference, hash, hash table, header file, here document, hexadecimal, home directory, host, hubris, HV

  - I

    identifier, impatience, implementation, import, increment, indexing, indirect filehandle, indirection, indirect object, indirect object slot, infix, inheritance, instance, instance data, instance method, instance variable, integer, interface, interpolation, interpreter, invocant, invocation, I/O, IO, I/O layer, IPA, IP, IPC, is-a, iteration, iterator, IV

  - J

    JAPH

  - K

    key, keyword

  - L

    label, laziness, leftmost longest, left shift, lexeme, lexer, lexical analysis, lexical scoping, lexical variable, library, LIFO, line, linebreak, line buffering, line number, link, LIST, list, list context, list operator, list value, literal, little-endian, local, logical operator, lookahead, lookbehind, loop, loop control statement, loop label, lowercase, lvaluable, lvalue, lvalue modifier

  - M

    magic, magical increment, magical variables, Makefile, man, manpage, matching, member data, memory, metacharacter, metasymbol, method, method resolution order, minicpan, minimalism, mode, modifier, module, modulus, mojibake, monger, mortal, mro, multidimensional array, multiple inheritance

  - N

    named pipe, namespace, NaN, network address, newline, NFS, normalization, null character, null list, null string, numeric context, numification, NV, nybble

  - O

    object, octal, offset, one-liner, open source software, operand, operating system, operator, operator overloading, options, ordinal, overloading, overriding, owner

  - P

    package, pad, parameter, parent class, parse tree, parsing, patch, PATH, pathname, pattern, pattern matching, PAUSE, Perl mongers, permission bits, Pern, pipe, pipeline, platform, pod, pod command, pointer, polymorphism, port, portable, porter, possessive, POSIX, postfix, pp, pragma, precedence, prefix, preprocessing, primary maintainer, procedure, process, program, program generator, progressive matching, property, protocol, prototype, pseudofunction, pseudohash, pseudoliteral, public domain, pumpkin, pumpking, PV

  - Q

    qualified, quantifier

  - R

    race condition, readable, reaping, record, recursion, reference, referent, regex, regular expression, regular expression modifier, regular file, relational operator, reserved words, return value, RFC, right shift, role, root, RTFM, run phase, runtime, runtime pattern, RV, rvalue

  - S

    sandbox, scalar, scalar context, scalar literal, scalar value, scalar variable, scope, scratchpad, script, script kiddie, sed, semaphore, separator, serialization, server, service, setgid, setuid, shared memory, shebang, shell, side effects, sigil, signal, signal handler, single inheritance, slice, slurp, socket, soft reference, source filter, stack, standard, standard error, standard input, standard I/O, Standard Library, standard output, statement, statement modifier, static, static method, static scoping, static variable, stat structure, status, STDERR, STDIN, STDIO, STDOUT, stream, string, string context, stringification, struct, structure, subclass, subpattern, subroutine, subscript, substitution, substring, superclass, superuser, SV, switch, switch cluster, switch statement, symbol, symbolic debugger, symbolic link, symbolic reference, symbol table, synchronous, syntactic sugar, syntax, syntax tree, syscall

  - T

    taint checks, tainted, taint mode, TCP, term, terminator, ternary, text, thread, tie, titlecase, TMTOWTDI, token, tokener, tokenizing, toolbox approach, topic, transliterate, trigger, trinary, troff, true, truncating, type, type casting, typedef, typed lexical, typeglob, typemap

  - U

    UDP, UID, umask, unary operator, Unicode, Unix, uppercase, UTF-8 string

  - V

    value, variable, variable interpolation, variadic, vector, virtual, void context, v-string

  - W

    warning, watch expression, weak reference, whitespace, word, working directory, wrapper, WYSIWYG

  - X

    XS, XSUB

  - Y

    yacc

  - Z

    zero width, zombie

- AUTHOR AND COPYRIGHT

  ### perlembed - how to embed perl in your C program

- DESCRIPTION

  - PREAMBLE

    **Use C from Perl?**, **Use a Unix program from Perl?**, **Use Perl from** **Perl?**, **Use C from C?**, **Use Perl from C?**

  - ROADMAP

    - Compiling your C program

    - Adding a Perl interpreter to your C program

    - Calling a Perl subroutine from your C program

    - Evaluating a Perl statement from your C program

    - Performing Perl pattern matches and substitutions from your C program

    - Fiddling with the Perl stack from your C program

    - Maintaining a persistent interpreter

    - Execution of END blocks

    - $0 assignments

    - Maintaining multiple interpreter instances

    - Using Perl modules, which themselves use C libraries, from your C program

    - Using embedded Perl with POSIX locales

    - Hiding Perl\_

  - MORAL

  - AUTHOR

  - COPYRIGHT

  ### perldebguts - Guts of Perl debugging

- DESCRIPTION

  - Debugger Internals

  - Writing Your Own Debugger

    - Frame Listing Output Examples

  - Debugging Regular Expressions

  - Compile-time Output

    `"anchored"` *STRING* `"at"` *POS*, `"floating"` *STRING* `"at"` *POS1..POS2*, `"matching floating/anchored"`, `"minlen"`, `"stclass"` *TYPE*, `"noscan"`, `"isall"`, `"GPOS"`, `"plus"`, `"implicit"`, `"with eval"`, `anchored(TYPE)`

  - Types of Nodes

    - Run-time Output

    - Debugging Perl Memory Usage

  - Using $ENV{PERL\_DEBUG\_MSTATS}

    `"buckets SMALLEST(APPROX)..GREATEST(APPROX)"`, Free/Used, `"Total sbrk():` `SBRKed/SBRKs:CONTINUOUS"`, `"pad: 0"`, `"heads: 2192"`, `"chain: 0"`, `tail:` `6144`

- SEE ALSO

  ### perlxstut - Tutorial for writing XSUBs

- DESCRIPTION

  - SPECIAL NOTES

  - make

    - Version caveat

    - Dynamic Loading versus Static Loading

    - Threads and PERL\_NO\_GET\_CONTEXT

    - TUTORIAL

  - EXAMPLE 1

    - EXAMPLE 2

    - What has gone on?

    - Writing good test scripts

    - EXAMPLE 3

    - What's new here?

    - Input and Output Parameters

    - The XSUBPP Program

    - The TYPEMAP file

    - Warning about Output Arguments

    - EXAMPLE 4

    - What has happened here?

    - Anatomy of .xs file

    - Getting the fat out of XSUBs

    - More about XSUB arguments

    - The Argument Stack

    - Extending your Extension

    - Documenting your Extension

    - Installing your Extension

    - EXAMPLE 5

    - New Things in this Example

    - EXAMPLE 6

    - New Things in this Example

    - EXAMPLE 7 (Coming Soon)

    - EXAMPLE 8 (Coming Soon)

    - EXAMPLE 9 Passing open files to XSes

    - Troubleshooting these Examples

    - See also

  - Author

  - Last Changed

    ### perlxs - XS language reference manual

- DESCRIPTION

  - Introduction

    - On The Road

    - The Anatomy of an XSUB

    - The Argument Stack

    - The RETVAL Variable

    - Returning SVs, AVs and HVs through RETVAL

    - The MODULE Keyword

    - The PACKAGE Keyword

    - The PREFIX Keyword

    - The OUTPUT: Keyword

    - The NO\_OUTPUT Keyword

    - The CODE: Keyword

    - The INIT: Keyword

    - The NO\_INIT Keyword

    - The TYPEMAP: Keyword

    - Initializing Function Parameters

    - Default Parameter Values

    - The PREINIT: Keyword

    - The SCOPE: Keyword

    - The INPUT: Keyword

    - The IN/OUTLIST/IN\_OUTLIST/OUT/IN\_OUT Keywords

    - The length(NAME) Keyword

    - Variable-length Parameter Lists

    - The C\_ARGS: Keyword

    - The PPCODE: Keyword

    - Returning Undef And Empty Lists

    - The REQUIRE: Keyword

    - The CLEANUP: Keyword

    - The POSTCALL: Keyword

    - The BOOT: Keyword

    - The VERSIONCHECK: Keyword

    - The PROTOTYPES: Keyword

    - The PROTOTYPE: Keyword

    - The ALIAS: Keyword

    - The OVERLOAD: Keyword

    - The FALLBACK: Keyword

    - The INTERFACE: Keyword

    - The INTERFACE\_MACRO: Keyword

    - The INCLUDE: Keyword

    - The INCLUDE\_COMMAND: Keyword

    - The CASE: Keyword

    - The EXPORT\_XSUB\_SYMBOLS: Keyword

    - The & Unary Operator

    - Inserting POD, Comments and C Preprocessor Directives

    - Using XS With C++

    - Interface Strategy

    - Perl Objects And C Structures

    - Safely Storing Static Data in XS

    MY\_CXT\_KEY, typedef my\_cxt\_t, START\_MY\_CXT, MY\_CXT\_INIT, dMY\_CXT, MY\_CXT, aMY\_CXT/pMY\_CXT, MY\_CXT\_CLONE, MY\_CXT\_INIT\_INTERP(my\_perl), dMY\_CXT\_INTERP(my\_perl)

- EXAMPLES

  - CAVEATS

  - Use of standard C library functions

    - Event loops and control flow

    - XS VERSION

  - AUTHOR DIAGNOSTICS

  - AUTHOR

  ### perlxstypemap - Perl XS C/Perl type mapping

- DESCRIPTION

  - Anatomy of a typemap

    - The Role of the typemap File in Your Distribution

    - Sharing typemaps Between CPAN Distributions

    - Writing typemap Entries

    - Full Listing of Core Typemaps

    T\_SV, T\_SVREF, T\_SVREF\_FIXED, T\_AVREF, T\_AVREF\_REFCOUNT\_FIXED, T\_HVREF, T\_HVREF\_REFCOUNT\_FIXED, T\_CVREF, T\_CVREF\_REFCOUNT\_FIXED, T\_SYSRET, T\_UV, T\_IV, T\_INT, T\_ENUM, T\_BOOL, T\_U\_INT, T\_SHORT, T\_U\_SHORT, T\_LONG, T\_U\_LONG, T\_CHAR, T\_U\_CHAR, T\_FLOAT, T\_NV, T\_DOUBLE, T\_PV, T\_PTR, T\_PTRREF, T\_PTROBJ, T\_REF\_IV\_REF, T\_REF\_IV\_PTR, T\_PTRDESC, T\_REFREF, T\_REFOBJ, T\_OPAQUEPTR, T\_OPAQUE, Implicit array, T\_PACKED, T\_PACKEDARRAY, T\_DATAUNIT, T\_CALLBACK, T\_ARRAY, T\_STDIO, T\_INOUT, T\_IN, T\_OUT

### perlclib - Interacting with standard C library functions

- DESCRIPTION

  - libc functions to avoid

  - Conventions

    `"~"`, `"t"`, `"p"`, `"n"`, `"s"`

  - File Operations

    - File Input and Output

    - File Positioning

    - Memory Management and String Handling

    - Character Class Tests

    - *stdlib.h* functions

    - Miscellaneous functions

    - Dealing with locales

  - Dealing with embedded perls and threads

  - Functions always unsuitable for use under multi-threads

    - Functions which must be called at least once before starting threads

    - Functions that are thread-safe when called with appropriate arguments

    - Functions vulnerable to signals

    - General issues with thread-safety

    - Reentrant equivalent functions

    For items marked `"*"`, For the remaining items, If you #define PERL\_REENTRANT, If you don't enable automatic substitution

  - Functions that need the environment to be constant

    - Locale-specific issues

    - SEE ALSO

  ### perlguts - Introduction to the Perl API

- DESCRIPTION

  - Variables

  - Datatypes

    - What is an "IV"?

    - Working with SVs

    `SvIV(SV*)` (`"IV"`) and `SvUV(SV*)` (`"UV"`), `SvNV(SV*)` (`"double"`), Strings are a bit complicated:, Byte string: `"SvPVbyte(SV*, STRLEN len)"` or `SvPVbyte_nolen(SV*)`, UTF-8 string: `"SvPVutf8(SV*, STRLEN len)"` or `SvPVutf8_nolen(SV*)`, You can also use `"SvPV(SV*, STRLEN len)"` or `SvPV_nolen(SV*)` to fetch the SV's raw internal buffer. This is tricky, though; if your Perl string is `"\xff\xff"`, then depending on the SV's internal encoding you might get back a 2-byte **OR** a 4-byte `"char*"`. Moreover, if it's the 4-byte string, that could come from either Perl `"\xff\xff"` stored UTF-8 encoded, or Perl `"\xc3\xbf\xc3\xbf"` stored as raw octets. To differentiate between these you **MUST** look up the SV's UTF8 bit (cf. `"SvUTF8"`) to know whether the source Perl string is 2 characters (`"SvUTF8"` would be on) or 4 characters (`"SvUTF8"` would be off)

  - Offsets

    - What's Really Stored in an SV?

    - Working with AVs

    `"av_store_simple"`, `"av_fetch_simple"`, `"av_push_simple"`, are not magical, are not readonly, are "real" (refcounted) AVs, have an av\_top\_index value \> -2

  - Working with HVs

    - Hash API Extensions

    - AVs, HVs and undefined values

    - References

    - Blessed References and Class Objects

    - Creating New Variables

    GV\_ADDMULTI, GV\_ADDWARN

  - Reference Counts and Mortality

    - Stashes and Globs

    - I/O Handles

    - Double-Typed SVs

    - Read-Only Values

    - Copy on Write

    - Magic Variables

    - Assigning Magic

    - Magic Virtual Tables

    - Finding Magic

    - Understanding the Magic of Tied Hashes and Arrays

    - Localizing changes

    `"SAVEINT(int i)"`, `"SAVEIV(IV i)"`, `"SAVEI32(I32 i)"`, `"SAVELONG(long i)"`, `"SAVEI8(I8 i)"`, `"SAVEI16(I16 i)"`, `"SAVEBOOL(int i)"`, `"SAVESTRLEN(STRLEN` `i)"`, `SAVESPTR(s)`, `SAVEPPTR(p)`, `"SAVERCPV(char **ppv)"`, `"SAVEGENERICSV(SV **psv)"`, `"SAVEFREESV(SV *sv)"`, `"SAVEMORTALIZESV(SV` `*sv)"`, `"SAVEFREEOP(OP *op)"`, `SAVEFREEPV(p)`, `"SAVEFREERCPV(char *pv)"`, `"SAVECLEARSV(SV *sv)"`, `"SAVEDELETE(HV *hv, char *key, I32 length)"`, `"SAVEDESTRUCTOR(DESTRUCTORFUNC_NOCONTEXT_t f, void *p)"`, `"SAVEDESTRUCTOR_X(DESTRUCTORFUNC_t f, void *p)"`, `"MORTALSVFUNC_X(SVFUNC_t` `f, SV *sv)"`, `"MORTALDESTRUCTOR_SV(SV *coderef, SV *args)"`, `SAVESTACK_POS()`, `"SV* save_scalar(GV *gv)"`, `"AV* save_ary(GV *gv)"`, `"HV* save_hash(GV *gv)"`, `"void save_item(SV *item)"`, `"SV* save_svref(SV` `**sptr)"`, `"void save_aptr(AV **aptr)"`, `"void save_hptr(HV **hptr)"`

- Subroutines

  - XSUBs and the Argument Stack

    - Autoloading with XSUBs

    - Calling Perl Routines from within C Programs

    - Putting a C value on Perl stack

    - Scratchpads

    - Scratchpads and recursion

    - Memory Allocation

  - Allocation

    - Reallocation

    - Moving

    - PerlIO

  - Compiled code

  - Code tree

    - Examining the tree

    - Compile pass 1: check routines

    - Compile pass 1a: constant folding

    - Compile pass 2: context propagation

    - Compile pass 3: peephole optimization

    - Pluggable runops

    - Compile-time scope hooks

    `"void bhk_start(pTHX_ int full)"`, `"void bhk_pre_end(pTHX_ OP **o)"`, `"void bhk_post_end(pTHX_ OP **o)"`, `"void bhk_eval(pTHX_ OP *const o)"`

- Examining internal data structures with the "dump" functions

  - How multiple interpreters and concurrency are supported

  - Background and MULTIPLICITY

    - So what happened to dTHR?

    - How do I use all this in extensions?

    - Should I do anything special if I call perl from multiple threads?

    - Future Plans and PERL\_IMPLICIT\_SYS

    - Internal Functions

  - Formatted Printing of IVs, UVs, and NVs

    - Formatted Printing of SVs

    - Formatted Printing of Strings

    - Formatted Printing of "Size\_t" and "SSize\_t"

  - Formatted Printing of "Ptrdiff\_t", "intmax\_t", "short" and other special sizes

  - Pointer-To-Integer and Integer-To-Pointer

  - Exception Handling

  - Source Documentation

  - Backwards compatibility

  - Unicode Support

  - What **is** Unicode, anyway?

    - How can I recognise a UTF-8 string?

    - How does UTF-8 represent Unicode characters?

    - How does Perl store UTF-8 strings?

    - How do I pass a Perl string to a C library?

    bytes: 0x64 0x78 0x8c, UTF-8: 0x64 0x78 0xc2 0x8c

  - How do I convert a string to UTF-8?

    - How do I compare strings?

    - Is there anything else I need to know?

    - Custom Operators

  xop\_name, xop\_desc, xop\_class, OA\_BASEOP, OA\_UNOP, OA\_BINOP, OA\_LOGOP, OA\_LISTOP, OA\_PMOP, OA\_SVOP, OA\_PADOP, OA\_PVOP\_OR\_SVOP, OA\_LOOP, OA\_COP, xop\_peep

- Stacks

  - Value Stack

    - Mark Stack

    - Temporaries Stack

    - Save Stack

    - Scope Stack

    - Dynamic Scope and the Context Stack

  - Introduction to the context stack

    - Pushing contexts

    - Popping contexts

    - Redoing contexts

    - Reference-counted argument stack

  - Introduction

    - Reference counted stack states

    not reference-counted, fully reference-counted, partially reference-counted (split)

  - Wrapping

    - (Re)writing a PP function using the **rpp\_()** API

    - Slab-based operator allocation

  - AUTHORS

  - SEE ALSO

  ### perlcall - Perl calling conventions from C

- DESCRIPTION

  An Error Handler, An Event-Driven Program

- THE CALL\_ FUNCTIONS

  call\_sv, call\_pv, call\_method, call\_argv

- FLAG VALUES

  - G\_VOID

    - G\_SCALAR

    - G\_LIST

    - G\_DISCARD

    - G\_NOARGS

    - G\_EVAL

    - G\_KEEPERR

    - Determining the Context

    - EXAMPLES

  - No Parameters, Nothing Returned

    - Passing Parameters

    - Returning a Scalar

    - Returning a List of Values

    - Returning a List in Scalar Context

    - Returning Data from Perl via the Parameter List

    - Using G\_EVAL

    - Using G\_KEEPERR

    - Using call\_sv

    - Using call\_argv

    - Using call\_method

    - Using GIMME\_V

    - Using Perl to Dispose of Temporaries

    - Strategies for Storing Callback Context Information

    1\. Ignore the problem - Allow only 1 callback, 2. Create a sequence of callbacks - hard wired limit, 3. Use a parameter to map to the Perl callback

  - Alternate Stack Manipulation

    - Creating and Calling an Anonymous Subroutine in C

    - LIGHTWEIGHT CALLBACKS

  - SEE ALSO

  - AUTHOR

  - DATE

  ### perlmroapi - Perl method resolution plugin interface

- DESCRIPTION

  resolve, name, length, kflags, hash

- Callbacks

  - Caching

  - Examples

  - AUTHORS

  ### perlreapi - Perl regular expression plugin interface

- DESCRIPTION

  - Callbacks

  - comp

    `"/m"` - RXf\_PMf\_MULTILINE, `"/s"` - RXf\_PMf\_SINGLELINE, `"/i"` - RXf\_PMf\_FOLD, `"/x"` - RXf\_PMf\_EXTENDED, `"/p"` - RXf\_PMf\_KEEPCOPY, Character set, RXf\_SPLIT, RXf\_SKIPWHITE, RXf\_START\_ONLY, RXf\_WHITE, RXf\_NULL, RXf\_NO\_INPLACE\_SUBST

  - exec

    rx, sv, strbeg, strend, stringarg, minend, data, flags

  - intuit

    - checkstr

    - free

    - Numbered capture callbacks

    - Named capture callbacks

    - qr\_package

    - dupe

    - op\_comp

    - The REGEXP structure

  - "engine"

    - "mother\_re"

    - "extflags"

    - "minlen" "minlenret"

    - "gofs"

    - "substrs"

    - "nparens", "logical\_nparens"

    - "logical\_to\_parno", "parno\_to\_logical", "parno\_to\_logical\_next"

    - "lastparen", and "lastcloseparen"

    - "intflags"

    - "pprivate"

    - "offs"

    - "RX\_PRECOMP" "RX\_PRELEN"

    - "paren\_names"

    - "substrs"

    - "subbeg" "sublen" "saved\_copy" "suboffset" "subcoffset"

    - "RX\_WRAPPED" "RX\_WRAPLEN"

    - RX\_REFCNT()

    - HISTORY

  - AUTHORS

  - LICENSE

  ### perlreguts - Description of the Perl regular expression engine.

- DESCRIPTION

  - OVERVIEW

  - A quick note on terms

    - What is a regular expression engine?

    - Structure of a Regexp Program

    `"regnode_1"`, `"regnode_2"`, `"regnode_string"`, `"regnode_charclass"`, `"regnode_charclass_posixl"`, "REGNODE\_AFTER", "regnext"

- Process Overview

  A. Compilation, 1. Parsing, 2. Peep-hole optimisation and analysis, B. Execution, 3. Start position and no-match optimisations, 4. Program execution

  - Compilation

    anchored fixed strings, floating fixed strings, minimum and maximum length requirements, start class, Beginning/End of line positions

  - Execution

    - MISCELLANEOUS

  - Unicode and Localisation Support

    - Base Structures

    `"regstclass"`, `"data"`, `"code_blocks"`, `"proglen"`, `"name_list_idx"`, `"program"`

- SEE ALSO

  - AUTHOR

  - LICENCE

  - REFERENCES

  ### perlclassguts - Internals of how "feature 'class'" and class syntax works

- DESCRIPTION

  - DATA STORAGE

  - Classes

    - Fields

    - Methods

    - Instances

    - API

  - Class Manipulation

    - Field Manipulation

    - Method Manipulation

    - Object Instances

    - OPCODES

  - OP\_METHSTART

    - OP\_INITFIELD

    - COMPILE-TIME BEHAVIOUR

  - "ADJUST" Phasers

    - Attributes

    - Field Initializing Expressions

    - RUNTIME BEHAVIOUR

  - Constructor

    - $self Access During Methods

    - AUTHORS

  ### perlapi - autogenerated documentation for the perl public API

- DESCRIPTION

  "AV Handling" in perlapi, "Callback Functions" in perlapi, "Casting" in perlapi, "Character case changing" in perlapi, "Character classification" in perlapi, "Compiler and Preprocessor information" in perlapi, "Compiler directives" in perlapi, "Compile-time scope hooks" in perlapi, "Concurrency" in perlapi, "COPs and Hint Hashes" in perlapi, "Custom Operators" in perlapi, "CV Handling" in perlapi, "Debugging" in perlapi, "Display functions" in perlapi, "Embedding, Threads, and Interpreter Cloning" in perlapi, "Errno" in perlapi, "Exception Handling (simple) Macros" in perlapi, "Filesystem configuration values" in perlapi, "Floating point" in perlapi, "General Configuration" in perlapi, "Global Variables" in perlapi, "GV Handling and Stashes" in perlapi, "Hook manipulation" in perlapi, "HV Handling" in perlapi, "Input/Output" in perlapi, "Integer" in perlapi, "I/O Formats" in perlapi, "Lexer interface" in perlapi, "Locales" in perlapi, "Magic" in perlapi, "Memory Management" in perlapi, "MRO" in perlapi, "Multicall Functions" in perlapi, "Numeric Functions" in perlapi, "Optrees" in perlapi, "Pack and Unpack" in perlapi, "Pad Data Structures" in perlapi, "Password and Group access" in perlapi, "Paths to system commands" in perlapi, "Prototype information" in perlapi, "Reference-counted stack manipulation" in perlapi, "REGEXP Functions" in perlapi, "Reports and Formats" in perlapi, "Signals" in perlapi, "Site configuration" in perlapi, "Sockets configuration values" in perlapi, "Source Filters" in perlapi, "Stack Manipulation Macros" in perlapi, "String Handling" in perlapi, "SV Flags" in perlapi, "SV Handling" in perlapi, "Tainting" in perlapi, "Time" in perlapi, "Typedef names" in perlapi, "Unicode Support" in perlapi, "Utility Functions" in perlapi, "Versioning" in perlapi, "Warning and Dieing" in perlapi, "XS" in perlapi, "Undocumented elements" in perlapi

- AV Handling

  `"AV"`, `"AvALLOC"`, `"AvARRAY"` , `"av_clear"` , `"av_count"` , `"av_create_and_push"` , `"av_create_and_unshift_one"` , `"av_delete"` , `"av_exists"` , `"av_extend"` , `"av_fetch"` , `"AvFILL"` , `"av_fill"` , `"av_len"` , `"av_make"` , `"av_pop"` , `"av_push"` , `"av_push_simple"` , `"av_shift"` , `"av_store"` , `"av_tindex"`, `"av_top_index"` , `"av_undef"` , `"av_unshift"` , `"get_av"` , `"newAV"`, `"newAV_mortal"`, `"newAV_alloc_x"`, `"newAV_alloc_xz"` , `"newAV"` form, `"newAV_mortal"` form, `"newAV_alloc_x"` form, `"newAV_alloc_xz"` form, `"newAVav"` , `"newAVhv"` , `"Nullav"`

- Callback Functions

  `"call_argv"` , `"call_method"` , `"call_pv"` , `"call_sv"` , `"DESTRUCTORFUNC_NOCONTEXT_t"`, `"DESTRUCTORFUNC_t"`, `"ENTER"` , `"ENTER_with_name"` , `"eval_pv"` , `"eval_sv"` , `"FREETMPS"` , `"G_DISCARD"`, `"G_EVAL"`, `"GIMME"` , `"GIMME_V"` , `"G_KEEPERR"`, `"G_LIST"`, `"G_NOARGS"`, `"G_SCALAR"`, `"G_VOID"`, `"is_lvalue_sub"` , `"LEAVE"` , `"LEAVE_with_name"` , `"MORTALDESTRUCTOR_SV"`, `"mortal_destructor_sv"` , `"MORTALSVFUNC_X"`, `"PL_errgv"`, `"save_aelem"`, `"save_aelem_flags"` , `"save_aptr"`, `"save_ary"`, `"SAVEBOOL"`, `"SAVEDELETE"`, `"SAVEDESTRUCTOR"`, `"SAVEDESTRUCTOR_X"`, `"SAVEFREEOP"`, `"SAVEFREEPV"`, `"SAVEFREERCPV"`, `"SAVEFREESV"`, `"SAVEGENERICSV"`, `"save_hash"`, `"save_helem"`, `"save_helem_flags"` , `"save_hptr"`, `"SAVEINT"`, `"save_item"`, `"SAVEIV"`, `"SAVEI8"`, `"SAVEI16"`, `"SAVEI32"`, `"SAVELONG"`, `"SAVEMORTALIZESV"`, `"SAVEPPTR"`, `"SAVERCPV"`, `"save_scalar"`, `"SAVESPTR"`, `"SAVESTACK_POS"`, `"SAVESTRLEN"`, `"save_svref"`, `"SAVETMPS"`

- Casting

  `"Atof"` , `"cBOOL"` , `"INT2PTR"`, `"I_V"` , `"I_32"` , `"PTR2IV"`, `"PTR2nat"`, `"PTR2NV"`, `"PTR2ul"`, `"PTR2UV"`, `"PTRV"`, `"U_V"` , `"U_32"`

- Character case changing

  `"toFOLD"`, `"toFOLD_A"`, `"toFOLD_utf8"`, `"toFOLD_utf8_safe"`, `"toFOLD_uvchr"` , `"toLOWER"`, `"toLOWER_A"`, `"toLOWER_LATIN1"`, `"toLOWER_LC"`, `"toLOWER_L1"`, `"toLOWER_utf8"`, `"toLOWER_utf8_safe"`, `"toLOWER_uvchr"` , `"toTITLE"`, `"toTITLE_A"`, `"toTITLE_utf8"`, `"toTITLE_utf8_safe"`, `"toTITLE_uvchr"` , `"toUPPER"`, `"toUPPER_A"`, `"toUPPER_utf8"`, `"toUPPER_utf8_safe"`, `"toUPPER_uvchr"`

- Character classification

  `"isALNUM"`, `"isALNUM_A"`, `"isALNUM_LC"`, `"isALNUM_LC_uvchr"` , `"isALNUMC"`, `"isALNUMC_A"`, `"isALNUMC_LC"`, `"isALNUMC_LC_uvchr"`, `"isALNUMC_L1"` , `"isALPHA"`, `"isALPHA_A"`, `"isALPHA_LC"`, `"isALPHA_LC_utf8_safe"`, `"isALPHA_LC_uvchr"`, `"isALPHA_L1"`, `"isALPHA_utf8"`, `"isALPHA_utf8_safe"`, `"isALPHA_uvchr"` , `"isALPHANUMERIC"`, `"isALPHANUMERIC_A"`, `"isALPHANUMERIC_LC"`, `"isALPHANUMERIC_LC_utf8_safe"`, `"isALPHANUMERIC_LC_uvchr"`, `"isALPHANUMERIC_L1"`, `"isALPHANUMERIC_utf8"`, `"isALPHANUMERIC_utf8_safe"`, `"isALPHANUMERIC_uvchr"` , `"isASCII"`, `"isASCII_A"`, `"isASCII_LC"`, `"isASCII_LC_utf8_safe"`, `"isASCII_LC_uvchr"`, `"isASCII_L1"`, `"isASCII_utf8"`, `"isASCII_utf8_safe"`, `"isASCII_uvchr"` , `"isBLANK"`, `"isBLANK_A"`, `"isBLANK_LC"`, `"isBLANK_LC_utf8_safe"`, `"isBLANK_LC_uvchr"`, `"isBLANK_L1"`, `"isBLANK_utf8"`, `"isBLANK_utf8_safe"`, `"isBLANK_uvchr"` , `"isCNTRL"`, `"isCNTRL_A"`, `"isCNTRL_LC"`, `"isCNTRL_LC_utf8_safe"`, `"isCNTRL_LC_uvchr"`, `"isCNTRL_L1"`, `"isCNTRL_utf8"`, `"isCNTRL_utf8_safe"`, `"isCNTRL_uvchr"` , `"isDIGIT"`, `"isDIGIT_A"`, `"isDIGIT_LC"`, `"isDIGIT_LC_utf8_safe"`, `"isDIGIT_LC_uvchr"`, `"isDIGIT_L1"`, `"isDIGIT_utf8"`, `"isDIGIT_utf8_safe"`, `"isDIGIT_uvchr"` , `"isGRAPH"`, `"isGRAPH_A"`, `"isGRAPH_LC"`, `"isGRAPH_LC_utf8_safe"`, `"isGRAPH_LC_uvchr"`, `"isGRAPH_L1"`, `"isGRAPH_utf8"`, `"isGRAPH_utf8_safe"`, `"isGRAPH_uvchr"` , `"isIDCONT"`, `"isIDCONT_A"`, `"isIDCONT_LC"`, `"isIDCONT_LC_utf8_safe"`, `"isIDCONT_LC_uvchr"`, `"isIDCONT_L1"`, `"isIDCONT_utf8"`, `"isIDCONT_utf8_safe"`, `"isIDCONT_uvchr"`

  , `"isIDFIRST"`, `"isIDFIRST_A"`, `"isIDFIRST_LC"`, `"isIDFIRST_LC_utf8_safe"`, `"isIDFIRST_LC_uvchr"`, `"isIDFIRST_L1"`, `"isIDFIRST_utf8"`, `"isIDFIRST_utf8_safe"`, `"isIDFIRST_uvchr"` , `"isLOWER"`, `"isLOWER_A"`, `"isLOWER_LC"`, `"isLOWER_LC_utf8_safe"`, `"isLOWER_LC_uvchr"`, `"isLOWER_L1"`, `"isLOWER_utf8"`, `"isLOWER_utf8_safe"`, `"isLOWER_uvchr"` , `"isOCTAL"`, `"isOCTAL_A"`, `"isOCTAL_L1"` , `"isPRINT"`, `"isPRINT_A"`, `"isPRINT_LC"`, `"isPRINT_LC_utf8_safe"`, `"isPRINT_LC_uvchr"`, `"isPRINT_L1"`, `"isPRINT_utf8"`, `"isPRINT_utf8_safe"`, `"isPRINT_uvchr"` , `"isPSXSPC"`, `"isPSXSPC_A"`, `"isPSXSPC_LC"`, `"isPSXSPC_LC_utf8_safe"`, `"isPSXSPC_LC_uvchr"`, `"isPSXSPC_L1"`, `"isPSXSPC_utf8"`, `"isPSXSPC_utf8_safe"`, `"isPSXSPC_uvchr"`

  , `"isPUNCT"`, `"isPUNCT_A"`, `"isPUNCT_LC"`, `"isPUNCT_LC_utf8_safe"`, `"isPUNCT_LC_uvchr"`, `"isPUNCT_L1"`, `"isPUNCT_utf8"`, `"isPUNCT_utf8_safe"`, `"isPUNCT_uvchr"` , `"isSPACE"`, `"isSPACE_A"`, `"isSPACE_LC"`, `"isSPACE_LC_utf8_safe"`, `"isSPACE_LC_uvchr"`, `"isSPACE_L1"`, `"isSPACE_utf8"`, `"isSPACE_utf8_safe"`, `"isSPACE_uvchr"` , `"isUPPER"`, `"isUPPER_A"`, `"isUPPER_LC"`, `"isUPPER_LC_utf8_safe"`, `"isUPPER_LC_uvchr"`, `"isUPPER_L1"`, `"isUPPER_utf8"`, `"isUPPER_utf8_safe"`, `"isUPPER_uvchr"` , `"isWORDCHAR"`, `"isWORDCHAR_A"`, `"isWORDCHAR_LC"`, `"isWORDCHAR_LC_utf8_safe"`, `"isWORDCHAR_LC_uvchr"`, `"isWORDCHAR_L1"`, `"isWORDCHAR_utf8"`, `"isWORDCHAR_utf8_safe"`, `"isWORDCHAR_uvchr"` X \<isWORDCHAR\_uvchr\>, `"isXDIGIT"`, `"isXDIGIT_A"`, `"isXDIGIT_LC"`, `"isXDIGIT_LC_utf8_safe"`, `"isXDIGIT_LC_uvchr"`, `"isXDIGIT_L1"`, `"isXDIGIT_utf8"`, `"isXDIGIT_utf8_safe"`, `"isXDIGIT_uvchr"`

- Compiler and Preprocessor information

  `"CPPLAST"` , `"CPPMINUS"` , `"CPPRUN"` , `"CPPSTDIN"` , `"HASATTRIBUTE_ALWAYS_INLINE"` , `"HASATTRIBUTE_DEPRECATED"` , `"HASATTRIBUTE_FORMAT"` , `"HASATTRIBUTE_NONNULL"` , `"HASATTRIBUTE_NORETURN"` , `"HASATTRIBUTE_PURE"` , `"HASATTRIBUTE_UNUSED"` , `"HASATTRIBUTE_VISIBILITY"` , `"HASATTRIBUTE_WARN_UNUSED_RESULT"` , `"HAS_BUILTIN_ADD_OVERFLOW"` , `"HAS_BUILTIN_CHOOSE_EXPR"` , `"HAS_BUILTIN_EXPECT"` , `"HAS_BUILTIN_MUL_OVERFLOW"` , `"HAS_BUILTIN_SUB_OVERFLOW"` , `"HAS_C99_VARIADIC_MACROS"` , `"HAS_STATIC_INLINE"` , `"MEM_ALIGNBYTES"` , `"PERL_STATIC_INLINE"` , `"PERL_THREAD_LOCAL"` , `"U32_ALIGNMENT_REQUIRED"`

- Compiler directives

  `"__ASSERT_"` , `"ASSUME"` , `"dNOOP"` , `"END_EXTERN_C"` , `"EXTERN_C"` , `"LIKELY"` , `"NOOP"` , `"PERL_UNUSED_ARG"` , `"PERL_UNUSED_CONTEXT"` , `"PERL_UNUSED_DECL"` , `"PERL_UNUSED_RESULT"` , `"PERL_UNUSED_VAR"` , `"START_EXTERN_C"` , `"STATIC"`, `"STMT_END"`, `"STMT_START"` , `"UNLIKELY"`

- Compile-time scope hooks

  `"BhkDISABLE"` , `"BhkENABLE"` , `"BhkENTRY_set"` , `"blockhook_register"`

- Concurrency

  `"aTHX"`, `"aTHX_"`, `"CPERLscope"` , `"dTHR"`, `"dTHX"`, `"dTHXa"` , `"dTHXoa"` , `"dVAR"` , `"GETENV_PRESERVES_OTHER_THREAD"` , `"HAS_PTHREAD_ATFORK"` , `"HAS_PTHREAD_ATTR_SETSCOPE"` , `"HAS_PTHREAD_YIELD"` , `"HAS_SCHED_YIELD"` , `"I_MACH_CTHREADS"` , `"I_PTHREAD"` , `"MULTIPLICITY"`, `"OLD_PTHREAD_CREATE_JOINABLE"` , `"OLD_PTHREADS_API"` , `"PERL_IMPLICIT_CONTEXT"`, `"PERL_NO_GET_CONTEXT"`, `"pTHX"`, `"pTHX_"`, `"SCHED_YIELD"`

- COPs and Hint Hashes

  `"cop_fetch_label"` , `"CopFILE"` , `"CopFILEAV"` , `"CopFILEAVn"` , `"CopFILE_copy"` , `"CopFILE_free"` , `"CopFILEGV"` , `"CopFILEGV_set"` , `"CopFILE_LEN"` , `"CopFILE_set"` , `"CopFILE_setn"` , `"CopFILESV"` , `"cophh_copy"` , `"cophh_delete_pv"`, `"cophh_delete_pvn"`, `"cophh_delete_pvs"`, `"cophh_delete_sv"` , `"cophh_exists_pvn"` , `"cophh_fetch_pv"`, `"cophh_fetch_pvn"`, `"cophh_fetch_pvs"`, `"cophh_fetch_sv"` , `"cophh_free"` , `"cophh_2hv"` , `"cophh_new_empty"` , `"cophh_store_pv"`, `"cophh_store_pvn"`, `"cophh_store_pvs"`, `"cophh_store_sv"` , `"cop_hints_exists_pv"`, `"cop_hints_exists_pvn"`, `"cop_hints_exists_pvs"`, `"cop_hints_exists_sv"` , `"cop_hints_fetch_pv"`, `"cop_hints_fetch_pvn"`, `"cop_hints_fetch_pvs"`, `"cop_hints_fetch_sv"` , `"cop_hints_2hv"` , `"CopLABEL"`, `"CopLABEL_len"`, `"CopLABEL_len_flags"` , `"CopLINE"` , `"CopSTASH"` , `"CopSTASH_eq"` , `"CopSTASHPV"` , `"CopSTASHPV_set"` , `"CopSTASH_set"` , `"cop_store_label"` , `"PERL_SI"` , `"PL_curcop"` , `"RCPV_LEN"` , `"RCPV_REFCNT_dec"` , `"RCPV_REFCNT_inc"` , `"RCPV_REFCOUNT"` , `"RCPVx"`

- Custom Operators

  `"custom_op_register"` , `"Perl_custom_op_xop"` , `"XopDISABLE"` , `"XopENABLE"` , `"XopENTRY"` , `"XopENTRYCUSTOM"` , `"XopENTRY_set"` , `"XopFLAGS"`

- CV Handling

  `"caller_cx"` , `"CvDEPTH"` , `"CvGV"` , `"CvSTASH"` , `"find_runcv"` , `"get_cv"`, `"get_cvn_flags"`, `"get_cvs"` , `"Nullcv"`

- Debugging

  `"av_dump"` , `"deb"`, `"deb_nocontext"` , `"debstack"` , `"dump_all"` , `"dump_c_backtrace"` , `"dump_eval"`, `"dump_form"` , `"dump_packsubs"` , `"dump_sub"`, `"get_c_backtrace_dump"` , `"gv_dump"` , `"HAS_BACKTRACE"` , `"hv_dump"` , `"magic_dump"` , `"op_class"` , `"op_dump"` , `"PL_op"`, `"PL_runops"`, `"PL_sv_serial"`, `"pmop_dump"` , `"sv_dump"` , `"sv_dump_depth"` , `"vdeb"`

- Display functions

  `"form"`, `"form_nocontext"` , `"mess"`, `"mess_nocontext"` , `"mess_sv"` , `"pv_display"` , `"pv_escape"` , `"pv_pretty"` , `"vform"` , `"vmess"`

- Embedding, Threads, and Interpreter Cloning

  `"call_atexit"` , `"cv_clone"` , `"cv_name"` , `"cv_undef"` , `"find_rundefsv"` , `"get_op_descs"` , `"get_op_names"` , `"HAS_SKIP_LOCALE_INIT"`, `"intro_my"` , `"load_module"`, `"load_module_nocontext"` , `"my_exit"` , `"my_failure_exit"` , `"my_strlcat"` , `"my_strlcpy"` , `"newPADNAMELIST"` , `"newPADNAMEouter"` , `"newPADNAMEpvn"` , `"nothreadhook"` , `"pad_add_anon"` , `"pad_add_name_pv"` , `"pad_add_name_pvn"` , `"pad_add_name_sv"` , `"pad_alloc"` , `"pad_findmy_pv"` , `"pad_findmy_pvn"` , `"pad_findmy_sv"` , `"padnamelist_fetch"` , `"padnamelist_store"` , `"pad_tidy"` , `"perl_alloc"` , `"PERL_ASYNC_CHECK"`, `"perl_clone"` , `"perl_construct"` , `"perl_destruct"` , `"perl_free"` , `"PERL_GET_CONTEXT"`, `"PerlInterpreter"`, `"perl_parse"` , `"perl_run"` , `"PERL_SET_CONTEXT"`, `"PERL_SYS_INIT"`, `"PERL_SYS_INIT3"` , `"PERL_SYS_TERM"` , `"PL_exit_flags"` , `"PERL_EXIT_DESTRUCT_END"`, `"PERL_EXIT_ABORT"`, `"PERL_EXIT_WARN"`, `"PERL_EXIT_EXPECTED"`, `"PL_origalen"`, `"PL_perl_destruct_level"` , 0 - none, 1 - full, 2 or greater - full with checks, `"ptr_table_fetch"` , `"ptr_table_free"` , `"ptr_table_new"` , `"ptr_table_split"` , `"ptr_table_store"` , `"require_pv"` , `"vload_module"`

- Errno

  `"sv_string_from_errnum"`

- Exception Handling (simple) Macros

  `"dXCPT"` , `"JMPENV_JUMP"`, `"JMPENV_PUSH"`, `"PL_restartop"`, `"XCPT_CATCH"` , `"XCPT_RETHROW"` , `"XCPT_TRY_END"` , `"XCPT_TRY_START"`

- Filesystem configuration values

  `"DIRNAMLEN"` , `"DOSUID"` , `"EOF_NONBLOCK"` , `"FCNTL_CAN_LOCK"` , `"FFLUSH_ALL"` , `"FFLUSH_NULL"` , `"FILE_base"` , `"FILE_bufsiz"` , `"FILE_cnt"` , `"FILE_ptr"` , `"FLEXFILENAMES"` , `"HAS_DIR_DD_FD"` , `"HAS_DUP2"` , `"HAS_DUP3"` , `"HAS_FAST_STDIO"` , `"HAS_FCHDIR"` , `"HAS_FCNTL"` , `"HAS_FDCLOSE"` , `"HAS_FDOPENDIR"` , `"HAS_FPATHCONF"` , `"HAS_FPOS64_T"` , `"HAS_FSTATFS"` , `"HAS_FSTATVFS"` , `"HAS_GETFSSTAT"` , `"HAS_GETMNT"` , `"HAS_GETMNTENT"` , `"HAS_HASMNTOPT"` , `"HAS_LSEEK_PROTO"` , `"HAS_MKDIR"` , `"HAS_OFF64_T"` , `"HAS_OPENAT"` , `"HAS_OPEN3"` , `"HAS_POLL"` , `"HAS_READDIR"` , `"HAS_READDIR64_R"` , `"HAS_REWINDDIR"` , `"HAS_RMDIR"` , `"HAS_SEEKDIR"` , `"HAS_SELECT"` , `"HAS_SETVBUF"` , `"HAS_STDIO_STREAM_ARRAY"` , `"HAS_STRUCT_FS_DATA"` , `"HAS_STRUCT_STATFS"` , `"HAS_STRUCT_STATFS_F_FLAGS"` , `"HAS_TELLDIR"` , `"HAS_USTAT"` , `"I_FCNTL"` , `"I_SYS_DIR"` , `"I_SYS_FILE"` , `"I_SYS_NDIR"` , `"I_SYS_STATFS"` , `"LSEEKSIZE"` , `"RD_NODATA"` , `"READDIR64_R_PROTO"` , `"STDCHAR"` , `"STDIO_CNT_LVALUE"` , `"STDIO_PTR_LVAL_NOCHANGE_CNT"` , `"STDIO_PTR_LVAL_SETS_CNT"` , `"STDIO_PTR_LVALUE"` , `"STDIO_STREAM_ARRAY"` , `"ST_INO_SIGN"` , `"ST_INO_SIZE"` , `"VAL_EAGAIN"` , `"VAL_O_NONBLOCK"` , `"VOID_CLOSEDIR"`

- Floating point

  `"CASTFLAGS"` , `"CASTNEGFLOAT"` , `"DOUBLE_HAS_INF"` , `"DOUBLE_HAS_NAN"` , `"DOUBLE_HAS_NEGATIVE_ZERO"` , `"DOUBLE_HAS_SUBNORMALS"` , `"DOUBLEINFBYTES"` , `"DOUBLEKIND"` , `"DOUBLEMANTBITS"` , `"DOUBLENANBYTES"` , `"DOUBLESIZE"` , `"DOUBLE_STYLE_CRAY"` , `"DOUBLE_STYLE_IBM"` , `"DOUBLE_STYLE_IEEE"` , `"DOUBLE_STYLE_VAX"` , `"HAS_ATOLF"` , `"HAS_CLASS"` , `"HAS_FINITE"` , `"HAS_FINITEL"` , `"HAS_FPCLASS"` , `"HAS_FP_CLASS"` , `"HAS_FPCLASSIFY"` , `"HAS_FP_CLASSIFY"` , `"HAS_FPCLASSL"` , `"HAS_FP_CLASSL"` , `"HAS_FPGETROUND"` , `"HAS_FREXPL"` , `"HAS_ILOGB"` , `"HAS_ISFINITE"` , `"HAS_ISFINITEL"` , `"HAS_ISINF"` , `"HAS_ISINFL"` , `"HAS_ISNAN"` , `"HAS_ISNANL"` , `"HAS_ISNORMAL"` , `"HAS_J0L"` , `"HAS_J0"` , `"HAS_LDBL_DIG"` , `"HAS_LDEXPL"` , `"HAS_LLRINT"` , `"HAS_LLRINTL"` , `"HAS_LLROUNDL"` , `"HAS_LONG_DOUBLE"` , `"HAS_LRINT"` , `"HAS_LRINTL"` , `"HAS_LROUNDL"` , `"HAS_MODFL"` , `"HAS_NAN"` , `"HAS_NEXTTOWARD"` , `"HAS_REMAINDER"` , `"HAS_SCALBN"` , `"HAS_SIGNBIT"` , `"HAS_SQRTL"` , `"HAS_STRTOD_L"` , `"HAS_STRTOLD"` , `"HAS_STRTOLD_L"` , `"HAS_TRUNC"` , `"HAS_UNORDERED"` , `"I_FENV"` , `"I_QUADMATH"` , `"LONGDBLINFBYTES"` , `"LONGDBLMANTBITS"` , `"LONGDBLNANBYTES"` , `"LONG_DOUBLEKIND"` , `"LONG_DOUBLESIZE"` , `"LONG_DOUBLE_STYLE_IEEE"` , `"LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE"` , `"LONG_DOUBLE_STYLE_IEEE_EXTENDED"` , `"LONG_DOUBLE_STYLE_IEEE_STD"` , `"LONG_DOUBLE_STYLE_VAX"` , `"NV"`, `"NVMANTBITS"` , `"NV_OVERFLOWS_INTEGERS_AT"` , `"NV_PRESERVES_UV"` , `"NV_PRESERVES_UV_BITS"` , `"NVSIZE"` , `"NVTYPE"` , `"NV_ZERO_IS_ALLBITS_ZERO"`

- General Configuration

  `"ASCIIish"` , `"BYTEORDER"` , `"CHARBITS"` , `"DB_VERSION_MAJOR_CFG"` , `"DB_VERSION_MINOR_CFG"` , `"DB_VERSION_PATCH_CFG"` , `"DEFAULT_INC_EXCLUDES_DOT"` , `"DLSYM_NEEDS_UNDERSCORE"` , `"EBCDIC"` , `"HAS_CSH"` , `"HAS_GETHOSTNAME"` , `"HAS_GNULIBC"` , `"HAS_LGAMMA"` , `"HAS_LGAMMA_R"` , `"HAS_NON_INT_BITFIELDS"` , `"HAS_PRCTL_SET_NAME"` , `"HAS_PROCSELFEXE"` , `"HAS_PSEUDOFORK"` , `"HAS_REGCOMP"` , `"HAS_SETPGID"` , `"HAS_SIGSETJMP"` , `"HAS_STRUCT_CMSGHDR"` , `"HAS_STRUCT_MSGHDR"` , `"HAS_TGAMMA"` , `"HAS_UNAME"` , `"HAS_UNION_SEMUN"` , `"I_DIRENT"` , `"I_POLL"` , `"I_SYS_RESOURCE"` , `"LIBM_LIB_VERSION"` , `"NEED_VA_COPY"`, `"OSNAME"` , `"OSVERS"` , `"PERL_USE_GCC_BRACE_GROUPS"` , `"PHOSTNAME"` , `"PROCSELFEXE_PATH"` , `"PTRSIZE"` , `"RANDBITS"` , `"SELECT_MIN_BITS"` , `"SETUID_SCRIPTS_ARE_SECURE_NOW"` , `"ST_DEV_SIGN"` , `"ST_DEV_SIZE"`

  - List of capability "HAS\_*foo*" symbols

    - List of "#include" needed symbols

    - Global Variables

  `"PL_check"` , `"PL_infix_plugin"` , `"PL_keyword_plugin"` , `"PL_phase"`

- GV Handling and Stashes

  `"amagic_call"` , `"AMGf_noleft"`, `"AMGf_noright"`, `"AMGf_unary"`, `"AMGf_assign"`, `"amagic_deref_call"` , `"gv_add_by_type"` , `"Gv_AMupdate"` , 1 on success and there is some overload, 0 if there is no overload, -1 if some error occurred and it couldn't croak (because `"destructing"` is true), `"gv_autoload_pv"`, `"gv_autoload_pvn"`, `"gv_autoload_sv"` , `"gv_autoload4"` , `"GvAV"` , `"gv_AVadd"`, `"gv_HVadd"`, `"gv_IOadd"`, `"gv_SVadd"` , `"gv_const_sv"` , `"GvCV"` , `"gv_efullname3"`, `"gv_efullname4"`, `"gv_fullname3"`, `"gv_fullname4"` , `"gv_fetchfile"`, `"gv_fetchfile_flags"` , `"gv_fetchmeth"`, `"gv_fetchmeth_pv"`, `"gv_fetchmeth_pvn"`, `"gv_fetchmeth_sv"` , `"gv_fetchmeth_autoload"` , `"gv_fetchmethod"` , `"gv_fetchmethod_autoload"` , `"gv_fetchmeth_pv_autoload"` , `"gv_fetchmeth_pvn_autoload"` , `"gv_fetchmeth_sv_autoload"` , `"gv_fetchpv"`, `"gv_fetchpvn"`, `"gv_fetchpvn_flags"`, `"gv_fetchpvs"`, `"gv_fetchsv"`, `"gv_fetchsv_nomg"` X \<gv\_fetchsv\_nomg\>, `"GvHV"` , `"gv_init"` , `"gv_init_pv"` , `"gv_init_pvn"` , `"gv_init_sv"` , `"gv_name_set"` , `"gv_stashpv"` , `"gv_stashpvn"` , `"gv_stashpvs"` , `"gv_stashsv"` , `"GvSV"` , `"GvSVn"` , `"newGVgen"`, `"newGVgen_flags"` , `"PL_curstash"` , `"PL_defgv"` , `"PL_defoutgv"` , `"PL_defstash"`, `"save_gp"` , `"setdefout"`

- Hook manipulation

  `"rcpv_copy"` , `"rcpv_free"` , `"rcpv_new"` , `"wrap_op_checker"`

- HV Handling

  `"get_hv"` , `"HE"`, `"HEf_SVKEY"` , `"HeHASH"` , `"HeKEY"` , `"HeKLEN"` , `"HePV"` , `"HeSVKEY"` , `"HeSVKEY_force"` , `"HeSVKEY_set"` , `"HeUTF8"` , `"HeVAL"` , `"HV"`, `"hv_assert"` , `"hv_bucket_ratio"` , `"hv_clear"` , `"hv_clear_placeholders"` , `"hv_copy_hints_hv"` , `"hv_delete"`, `"hv_deletes"` , `"hv_delete_ent"` , `"HvENAME"` , `"HvENAMELEN"` , `"HvENAMEUTF8"` , `"hv_exists"`, `"hv_existss"` , `"hv_exists_ent"` , `"hv_fetch"`, `"hv_fetchs"` , `"hv_fetch_ent"` , `"hv_fetchs"` , `"HvFILL"` , `"HvHasAUX"` , `"hv_iterinit"` , `"hv_iterkey"` , `"hv_iterkeysv"` , `"hv_iternext"` , `"hv_iternext_flags"` , `"hv_iternextsv"` , `"hv_iterval"` , `"hv_ksplit"` , `"hv_magic"` , `"HvNAME"` , `"HvNAMELEN"` , `"hv_name_set"`, `"hv_name_sets"` , `"HvNAMEUTF8"` , `"hv_scalar"` , `"hv_store"`, `"hv_stores"` , `"hv_store_ent"` , `"hv_undef"` , `"newHV"` , `"newHVhv"` , `"Nullhv"` , `"PERL_HASH"`, `"PL_modglobal"`

- Input/Output

  `"do_close"` , `"IoDIRP"`, `"IOf_FLUSH"`, `"IoFLAGS"`, `"IOf_UNTAINT"`, `"IoIFP"`, `"IoOFP"`, `"IoTYPE"`, `"my_chsize"` , `"my_dirfd"` , `"my_pclose"` , `"my_popen"` , `"newIO"` , `"PERL_FLUSHALL_FOR_CHILD"` , `"PerlIO_apply_layers"`, `"PerlIO_binmode"`, `"PerlIO_canset_cnt"`, `"PerlIO_clearerr"`, `"PerlIO_close"`, `"PerlIO_debug"`, `"PerlIO_eof"`, `"PerlIO_error"`, `"PerlIO_exportFILE"`, `"PerlIO_fast_gets"`, `"PerlIO_fdopen"`, `"PerlIO_fileno"`, `"PerlIO_fill"`, `"PerlIO_findFILE"`, `"PerlIO_flush"`, `"PerlIO_get_base"`, `"PerlIO_get_bufsiz"`, `"PerlIO_get_cnt"`, `"PerlIO_get_ptr"`, `"PerlIO_getc"`, `"PerlIO_getpos"`, `"PerlIO_has_base"`, `"PerlIO_has_cntptr"`, `"PerlIO_importFILE"`, `"PerlIO_open"`, `"PerlIO_printf"`, `"PerlIO_putc"`, `"PerlIO_puts"`, `"PerlIO_read"`, `"PerlIO_releaseFILE"`, `"PerlIO_reopen"`, `"PerlIO_rewind"`, `"PerlIO_seek"`, `"PerlIO_set_cnt"`, `"PerlIO_set_ptrcnt"`, `"PerlIO_setlinebuf"`, `"PerlIO_setpos"`, `"PerlIO_stderr"`, `"PerlIO_stdin"`, `"PerlIO_stdout"`, `"PerlIO_stdoutf"`, `"PerlIO_tell"`, `"PerlIO_ungetc"`, `"PerlIO_unread"`, `"PerlIO_vprintf"`, `"PerlIO_write"`, `"PERLIO_F_APPEND"`, `"PERLIO_F_CANREAD"`, `"PERLIO_F_CANWRITE"`, `"PERLIO_F_CRLF"`, `"PERLIO_F_EOF"`, `"PERLIO_F_ERROR"`, `"PERLIO_F_FASTGETS"`, `"PERLIO_F_LINEBUF"`, `"PERLIO_F_OPEN"`, `"PERLIO_F_RDBUF"`, `"PERLIO_F_TEMP"`, `"PERLIO_F_TRUNCATE"`, `"PERLIO_F_UNBUF"`, `"PERLIO_F_UTF8"`, `"PERLIO_F_WRBUF"`, `"PERLIO_FUNCS_CAST"` , `"PERLIO_FUNCS_DECL"` , `"PERLIO_K_BUFFERED"`, `"PERLIO_K_CANCRLF"`, `"PERLIO_K_FASTGETS"`, `"PERLIO_K_MULTIARG"`, `"PERLIO_K_RAW"`, `"PERLIO_NOT_STDIO"`, `"PL_maxsysfd"`, `"repeatcpy"` , `"USE_STDIO"`

- Integer

  `"CASTI32"` , `"HAS_INT64_T"` , `"HAS_LONG_LONG"` , `"HAS_QUAD"` , `"I32df"` , `"INT16_C"`, `"INT32_C"`, `"INT64_C"` , `"INTMAX_C"` , `"INTSIZE"` , `"I8SIZE"` , `"I16SIZE"` , `"I32SIZE"` , `"I64SIZE"` , `"I8TYPE"` , `"I16TYPE"` , `"I32TYPE"` , `"I64TYPE"` , `"IV"`, `"I8"`, `"I16"`, `"I32"`, `"I64"`, `"IV_MAX"` , `"IV_MIN"` , `"IVSIZE"` , `"IVTYPE"` , `"line_t"` , `"LONGLONGSIZE"` , `"LONGSIZE"` , `"memzero"` , `"PERL_INT_FAST8_T"`, `"PERL_INT_FAST16_T"`, `"PERL_UINT_FAST8_T"`, `"PERL_UINT_FAST16_T"` , `"PERL_INT_MAX"`, `"PERL_INT_MIN"`, `"PERL_LONG_MAX"`, `"PERL_LONG_MIN"`, `"PERL_QUAD_MAX"`, `"PERL_QUAD_MIN"`, `"PERL_SHORT_MAX"`, `"PERL_SHORT_MIN"`, `"PERL_UCHAR_MAX"`, `"PERL_UCHAR_MIN"`, `"PERL_UINT_MAX"`, `"PERL_UINT_MIN"`, `"PERL_ULONG_MAX"`, `"PERL_ULONG_MIN"`, `"PERL_UQUAD_MAX"`, `"PERL_UQUAD_MIN"`, `"PERL_USHORT_MAX"`, `"PERL_USHORT_MIN"` , `"SHORTSIZE"` , `"UINT16_C"`, `"UINT32_C"`, `"UINT64_C"` , `"UINTMAX_C"` , `"U32of"` , `"U8SIZE"` , `"U16SIZE"` , `"U32SIZE"` , `"U64SIZE"` , `"U8TYPE"` , `"U16TYPE"` , `"U32TYPE"` , `"U64TYPE"` , `"U32uf"` , `"UV"`, `"U8"`, `"U16"`, `"U32"`, `"U64"`, `"UV_MAX"` , `"UV_MIN"` , `"UVSIZE"` , `"UVTYPE"` , `"U32Xf"` , `"U32xf"` , `"WIDEST_UTYPE"`

- I/O Formats

  `"HvNAMEf"`, `"HvNAMEf_QUOTEDPREFIX"`, `"IVdf"` , `"NVef"` , `"NVff"` , `"NVgf"` , `"PERL_PRIeldbl"` , `"PERL_PRIfldbl"` , `"PERL_PRIgldbl"` , `"PERL_SCNfldbl"` , `"PRINTF_FORMAT_NULL_OK"` , `"SVf"`, `"SVfARG"`, `"SVf_QUOTEDPREFIX"`, `"UTF8f"`, `"UTF8fARG"`, `"UTF8f_QUOTEDPREFIX"`, `"UVf"` , `"UVof"` , `"UVuf"` , `"UVXf"` , `"UVxf"`

- Lexer interface

  `"BHK"`, `"lex_bufutf8"` , `"lex_discard_to"` , `"lex_grow_linestr"` , `"lex_next_chunk"` , `"lex_peek_unichar"` , `"lex_read_space"` , `"lex_read_to"` , `"lex_read_unichar"` , `"lex_start"` , `"lex_stuff_pv"` , `"lex_stuff_pvn"` , `"lex_stuff_pvs"` , `"lex_stuff_sv"` , `"lex_unstuff"` , `"parse_arithexpr"` , `"parse_barestmt"` , `"parse_block"` , `"parse_fullexpr"` , `"parse_fullstmt"` , `"parse_label"` , `"parse_listexpr"` , `"parse_stmtseq"` , `"parse_subsignature"` , `"parse_termexpr"` , `"PL_parser"` , `"PL_parser->bufend"` , `"PL_parser->bufptr"` , `"PL_parser->linestart"` , `"PL_parser->linestr"` , `"suspend_compcv"` , `"wrap_infix_plugin"` , `"wrap_keyword_plugin"`

- Locales

  `"DECLARATION_FOR_LC_NUMERIC_MANIPULATION"` , `"foldEQ_locale"` , `"HAS_DUPLOCALE"` , `"HAS_FREELOCALE"` , `"HAS_LC_MONETARY_2008"` , `"HAS_LOCALECONV"` , `"HAS_LOCALECONV_L"` , `"HAS_NEWLOCALE"` , `"HAS_NL_LANGINFO"` , `"HAS_NL_LANGINFO_L"` , `"HAS_QUERYLOCALE"` , `"HAS_SETLOCALE"` , `"HAS_SETLOCALE_R"` , `"HAS_USELOCALE"` , `"I_LANGINFO"` , `"I_LOCALE"` , `"IN_LOCALE"` , `"IN_LOCALE_COMPILETIME"` , `"IN_LOCALE_RUNTIME"` , `"I_XLOCALE"` , `"NEED_XLOCALE_H"` , `"Perl_langinfo"`, `"Perl_langinfo8"` , a, b, c, d, e, `"PERL_LC_ALL_CATEGORY_POSITIONS_INIT"` , `"PERL_LC_ALL_SEPARATOR"` , `"PERL_LC_ALL_USES_NAME_VALUE_PAIRS"` , `"Perl_localeconv"` , `"Perl_setlocale"` , `"RESTORE_LC_NUMERIC"` , `"SETLOCALE_ACCEPTS_ANY_LOCALE_NAME"` , `"STORE_LC_NUMERIC_FORCE_TO_UNDERLYING"` , `"STORE_LC_NUMERIC_SET_TO_NEEDED"` , `"STORE_LC_NUMERIC_SET_TO_NEEDED_IN"` , `"sv_langinfo"` , `"switch_to_global_locale"` , POSIX::localeconv, I18N::Langinfo, items `"CRNCYSTR"` and `"THOUSEP"`, "sv\_langinfo" in perlapi, items `"CRNCYSTR"` and `"THOUSEP"`, `"sync_locale"` , `"WITH_LC_NUMERIC_SET_TO_NEEDED"` , `"WITH_LC_NUMERIC_SET_TO_NEEDED_IN"`

- Magic

  `"mg_clear"` , `"mg_copy"` , `"MGf_COPY"`, `"MGf_DUP"`, `"MGf_LOCAL"`, `"mg_find"` , `"mg_findext"` , `"mg_free"` , `"mg_freeext"` , `"mg_free_type"` , `"mg_get"` , `"mg_magical"` , `"mg_set"` , `"MGVTBL"`, `"PERL_MAGIC_arylen"`, `"PERL_MAGIC_arylen_p"`, `"PERL_MAGIC_backref"`, `"PERL_MAGIC_bm"`, `"PERL_MAGIC_checkcall"`, `"PERL_MAGIC_collxfrm"`, `"PERL_MAGIC_dbfile"`, `"PERL_MAGIC_dbline"`, `"PERL_MAGIC_debugvar"`, `"PERL_MAGIC_defelem"`, `"PERL_MAGIC_destruct"`, `"PERL_MAGIC_env"`, `"PERL_MAGIC_envelem"`, `"PERL_MAGIC_ext"`, `"PERL_MAGIC_extvalue"`, `"PERL_MAGIC_fm"`, `"PERL_MAGIC_hints"`, `"PERL_MAGIC_hintselem"`, `"PERL_MAGIC_hook"`, `"PERL_MAGIC_hookelem"`, `"PERL_MAGIC_isa"`, `"PERL_MAGIC_isaelem"`, `"PERL_MAGIC_lvref"`, `"PERL_MAGIC_nkeys"`, `"PERL_MAGIC_nonelem"`, `"PERL_MAGIC_overload_table"`, `"PERL_MAGIC_pos"`, `"PERL_MAGIC_qr"`, `"PERL_MAGIC_regdata"`, `"PERL_MAGIC_regdatum"`, `"PERL_MAGIC_regex_global"`, `"PERL_MAGIC_rhash"`, `"PERL_MAGIC_shared"`, `"PERL_MAGIC_shared_scalar"`, `"PERL_MAGIC_sig"`, `"PERL_MAGIC_sigelem"`, `"PERL_MAGIC_substr"`, `"PERL_MAGIC_sv"`, `"PERL_MAGIC_symtab"`, `"PERL_MAGIC_taint"`, `"PERL_MAGIC_tied"`, `"PERL_MAGIC_tiedelem"`, `"PERL_MAGIC_tiedscalar"`, `"PERL_MAGIC_utf8"`, `"PERL_MAGIC_uvar"`, `"PERL_MAGIC_uvar_elem"`, `"PERL_MAGIC_vec"`, `"PERL_MAGIC_vstring"`, `"SvTIED_obj"`

- Memory Management

  `"dump_mstats"` , `"HASATTRIBUTE_MALLOC"` , `"HAS_MALLOC_GOOD_SIZE"` , `"HAS_MALLOC_SIZE"` , `"I_MALLOCMALLOC"` , `"MYMALLOC"` , `"Newx"`, `"safemalloc"` , `"Newxc"` , `"Newxz"`, `"safecalloc"` , `"PERL_MALLOC_WRAP"` , `"Renew"`, `"saferealloc"` , `"Renewc"` , `"Safefree"` , `"safesyscalloc"` , `"safesysfree"` , `"safesysmalloc"` , `"safesysrealloc"`

- MRO

  `"HvMROMETA"`, `"mro_get_from_name"` , `"mro_get_linear_isa"` , `"MRO_GET_PRIVATE_DATA"`, `"mro_method_changed_in"` , `"mro_register"` , `"mro_set_mro"` , `"mro_set_private_data"`

- Multicall Functions

  `"dMULTICALL"` , `"MULTICALL"` , `"POP_MULTICALL"` , `"PUSH_MULTICALL"`

- Numeric Functions

  `"Atol"`, `"Atoul"`, `"Drand01"` , `"Gconvert"` , `"grok_atoUV"` , `"grok_bin"` , `"grok_hex"` , `"grok_infnan"` , `"grok_number"` , `"grok_number_flags"` , `"GROK_NUMERIC_RADIX"` , `"grok_numeric_radix"` , `"grok_oct"` , `"isinfnan"` , `"my_atof"` , `"my_strtod"` , `"PERL_ABS"` , `"Perl_acos"`, `"Perl_asin"`, `"Perl_atan"`, `"Perl_atan2"`, `"Perl_ceil"`, `"Perl_cos"`, `"Perl_cosh"`, `"Perl_exp"`, `"Perl_floor"`, `"Perl_fmod"`, `"Perl_frexp"`, `"Perl_isfinite"`, `"Perl_isinf"`, `"Perl_isnan"`, `"Perl_ldexp"`, `"Perl_log"`, `"Perl_log10"`, `"Perl_modf"`, `"Perl_pow"`, `"Perl_sin"`, `"Perl_sinh"`, `"Perl_sqrt"`, `"Perl_tan"`, `"Perl_tanh"` X \<Perl\_isinf\>X \<Perl\_pow\>, `"Perl_signbit"` , `"PL_hexdigit"` , `"READ_XDIGIT"` , `"scan_bin"` , `"scan_hex"` , `"scan_oct"` , `"seedDrand01"` , `"Strtod"` , `"Strtol"` , `"Strtoul"`

- Optrees

  `"alloccopstash"` , `"BINOP"`, `"block_end"` , `"block_start"` , `"ck_entersub_args_list"` , `"ck_entersub_args_proto"` , `"ck_entersub_args_proto_or_list"` , `"cv_const_sv"` , `"cv_get_call_checker"` , `"cv_get_call_checker_flags"` , `"cv_set_call_checker"` , `"cv_set_call_checker_flags"` , `"finalize_optree"` , `"forbid_outofblock_ops"` , `"LINKLIST"` , `"LISTOP"`, `"LOGOP"`, `"LOOP"`, `"newANONATTRSUB"` , `"newANONHASH"` , `"newANONLIST"` , `"newANONSUB"` , `"newARGDEFELEMOP"` , `"newASSIGNOP"` , `"newATTRSUB"` , `"newAVREF"` , `"newBINOP"` , `"newCONDOP"` , `"newCONSTSUB"`, `"newCONSTSUB_flags"` , `"newCVREF"` , `"newDEFEROP"` , `"newDEFSVOP"` , `"newFOROP"` , `"newGIVENOP"` , `"newGVOP"` , `"newGVREF"` , `"newHVREF"` , `"newLISTOP"` , `"newLISTOPn"` , `"newLOGOP"` , `"newLOOPEX"` , `"newLOOPOP"` , `"newMETHOP"` , `"newMETHOP_named"` , `"newNULLLIST"` , `"newOP"` , `"newPADOP"` , `"newPMOP"` , `"newPVOP"` , `"newRANGE"` , `"newSLICEOP"` , `"newSTATEOP"` , `"newSUB"` , `"newSVOP"` , `"newSVREF"` , `"newTRYCATCHOP"` , `"newUNOP"` , `"newUNOP_AUX"` , `"newWHENOP"` , `"newWHILEOP"` , `"newXS"` , `"OA_BASEOP"`, `"OA_BINOP"`, `"OA_COP"`, `"OA_LISTOP"`, `"OA_LOGOP"`, `"OA_LOOP"`, `"OA_PADOP"`, `"OA_PMOP"`, `"OA_PVOP_OR_SVOP"`, `"OA_SVOP"`, `"OA_UNOP"`, `"OP"`, `"op_append_elem"` , `"op_append_list"` , `"OP_CLASS"` , `"op_contextualize"` , `"op_convert_list"` , `"OP_DESC"` , `"op_force_list"` , `"op_free"` , `"OpHAS_SIBLING"` , `"OpLASTSIB_set"` , `"op_linklist"` , `"op_lvalue"` , `"OpMAYBESIB_set"` , `"OpMORESIB_set"` , `"OP_NAME"` , `"op_null"` , `"op_parent"` , `"op_prepend_elem"` , `"op_scope"` , `"OpSIBLING"` , `"op_sibling_splice"` , `"optimize_optree"` , `"OP_TYPE_IS"` , `"OP_TYPE_IS_OR_WAS"` , `"op_wrap_finally"` , `"peep_t"`, `"Perl_cpeep_t"`, `"PL_opfreehook"` , `"PL_peepp"` , `"PL_rpeepp"` , `"PMOP"`, `"rv2cv_op_cv"` , `"UNOP"`, `"XOP"`

- Pack and Unpack

  `"packlist"` , `"unpackstring"`

- Pad Data Structures

  `"CvPADLIST"` , `"pad_add_name_pvs"` , `"PadARRAY"` , `"pad_findmy_pvs"` , `"PadlistARRAY"` , `"PadlistMAX"` , `"PadlistNAMES"` , `"PadlistNAMESARRAY"` , `"PadlistNAMESMAX"` , `"PadlistREFCNT"` , `"PadMAX"` , `"PadnameLEN"` , `"PadnamelistARRAY"` , `"PadnamelistMAX"` , `"PadnamelistREFCNT"` , `"PadnamelistREFCNT_dec"` , `"PadnamePV"` , `"PadnameREFCNT"` , `"PadnameREFCNT_dec"` , `"PadnameREFCNT_inc"` , `"PadnameSV"` , `"PadnameUTF8"` , `"pad_new"` , `"PL_comppad"` , `"PL_comppad_name"` , `"PL_curpad"` , `"SVs_PADMY"`, `"SVs_PADTMP"`

- Password and Group access

  `"GRPASSWD"` , `"HAS_ENDGRENT"` , `"HAS_ENDGRENT_R"` , `"HAS_ENDPWENT"` , `"HAS_ENDPWENT_R"` , `"HAS_GETGRENT"` , `"HAS_GETGRENT_R"` , `"HAS_GETPWENT"` , `"HAS_GETPWENT_R"` , `"HAS_SETGRENT"` , `"HAS_SETGRENT_R"` , `"HAS_SETPWENT"` , `"HAS_SETPWENT_R"` , `"PWAGE"` , `"PWCHANGE"` , `"PWCLASS"` , `"PWCOMMENT"` , `"PWEXPIRE"` , `"PWGECOS"` , `"PWPASSWD"` , `"PWQUOTA"`

- Paths to system commands

  `"CSH"` , `"LOC_SED"` , `"SH_PATH"`

- Prototype information

  `"CRYPT_R_PROTO"` , `"CTERMID_R_PROTO"` , `"DRAND48_R_PROTO"` , `"ENDGRENT_R_PROTO"` , `"ENDHOSTENT_R_PROTO"` , `"ENDNETENT_R_PROTO"` , `"ENDPROTOENT_R_PROTO"` , `"ENDPWENT_R_PROTO"` , `"ENDSERVENT_R_PROTO"` , `"GDBMNDBM_H_USES_PROTOTYPES"` , `"GDBM_NDBM_H_USES_PROTOTYPES"` , `"GETGRENT_R_PROTO"` , `"GETGRGID_R_PROTO"` , `"GETGRNAM_R_PROTO"` , `"GETHOSTBYADDR_R_PROTO"` , `"GETHOSTBYNAME_R_PROTO"` , `"GETHOSTENT_R_PROTO"` , `"GETLOGIN_R_PROTO"` , `"GETNETBYADDR_R_PROTO"` , `"GETNETBYNAME_R_PROTO"` , `"GETNETENT_R_PROTO"` , `"GETPROTOBYNAME_R_PROTO"` , `"GETPROTOBYNUMBER_R_PROTO"` , `"GETPROTOENT_R_PROTO"` , `"GETPWENT_R_PROTO"` , `"GETPWNAM_R_PROTO"` , `"GETPWUID_R_PROTO"` , `"GETSERVBYNAME_R_PROTO"` , `"GETSERVBYPORT_R_PROTO"` , `"GETSERVENT_R_PROTO"` , `"GETSPNAM_R_PROTO"` , `"HAS_DBMINIT_PROTO"` , `"HAS_DRAND48_PROTO"` , `"HAS_FLOCK_PROTO"` , `"HAS_GETHOST_PROTOS"` , `"HAS_GETNET_PROTOS"` , `"HAS_GETPROTO_PROTOS"` , `"HAS_GETSERV_PROTOS"` , `"HAS_MODFL_PROTO"` , `"HAS_SBRK_PROTO"` , `"HAS_SETRESGID_PROTO"` , `"HAS_SETRESUID_PROTO"` , `"HAS_SHMAT_PROTOTYPE"` , `"HAS_SOCKATMARK_PROTO"` , `"HAS_SYSCALL_PROTO"` , `"HAS_TELLDIR_PROTO"` , `"NDBM_H_USES_PROTOTYPES"` , `"RANDOM_R_PROTO"` , `"READDIR_R_PROTO"` , `"SETGRENT_R_PROTO"` , `"SETHOSTENT_R_PROTO"` , `"SETLOCALE_R_PROTO"` , `"SETNETENT_R_PROTO"` , `"SETPROTOENT_R_PROTO"` , `"SETPWENT_R_PROTO"` , `"SETSERVENT_R_PROTO"` , `"SRANDOM_R_PROTO"` , `"SRAND48_R_PROTO"` , `"STRERROR_R_PROTO"` , `"TMPNAM_R_PROTO"` , `"TTYNAME_R_PROTO"`

- Reference-counted stack manipulation

  `"rpp_context"` , `"rpp_extend"` , `"rpp_invoke_xs"` , `"rpp_is_lone"` , `"rpp_popfree_1_NN"` , `"rpp_popfree_2_NN"` , `"rpp_popfree_to"` , `"rpp_popfree_to_NN"` , `"rpp_popfree_1"` , `"rpp_popfree_2"` , `"rpp_pop_1_norc"` , `"rpp_push_1_norc"` , `"rpp_push_1"`, `"rpp_push_IMM"`, `"rpp_push_2"`, `"rpp_xpush_1"`, `"rpp_xpush_IMM"`, `"rpp_xpush_2"` , `"rpp_replace_at"` , `"rpp_replace_at_NN"` , `"rpp_replace_at_norc"` , `"rpp_replace_at_norc_NN"` , `"rpp_replace_1_1"`, `"rpp_replace_1_1_NN"`, `"rpp_replace_1_IMM_NN"` , `"rpp_replace_2_1"`, `"rpp_replace_2_1_NN"`, `"rpp_replace_2_IMM_NN"` , `"rpp_stack_is_rc"` , `"rpp_try_AMAGIC_1"`, `"rpp_try_AMAGIC_2"` , `"XSPP_wrapped"`

- REGEXP Functions

  `"pregcomp"`, `"pregexec"`, `"re_compile"` , `"re_dup_guts"` , `"REGEX_LOCALE_CHARSET"`, `"REGEXP"`, `"regexp_engine"` , `"regexp_paren_pair"`, `"regmatch_info"` , `"REXEC_COPY_SKIP_POST"`, `"REXEC_COPY_SKIP_PRE"`, `"REXEC_COPY_STR"`, `"RXapif_ALL"`, `"RXapif_CLEAR"`, `"RXapif_DELETE"`, `"RXapif_EXISTS"`, `"RXapif_FETCH"`, `"RXapif_FIRSTKEY"`, `"RXapif_NEXTKEY"`, `"RXapif_ONE"`, `"RXapif_REGNAME"`, `"RXapif_REGNAMES"`, `"RXapif_REGNAMES_COUNT"`, `"RXapif_SCALAR"`, `"RXapif_STORE"`, `"RX_BUFF_IDX_CARET_FULLMATCH"`, `"RX_BUFF_IDX_CARET_POSTMATCH"`, `"RX_BUFF_IDX_CARET_PREMATCH"`, `"RX_BUFF_IDX_FULLMATCH"`, `"RX_BUFF_IDX_POSTMATCH"`, `"RX_BUFF_IDX_PREMATCH"`, `"RXf_NO_INPLACE_SUBST"`, `"RXf_NULL"`, `"RXf_SKIPWHITE"`, `"RXf_SPLIT"`, `"RXf_START_ONLY"`, `"RXf_WHITE"`, `"RXf_PMf_EXTENDED"`, `"RXf_PMf_FOLD"`, `"RXf_PMf_KEEPCOPY"`, `"RXf_PMf_MULTILINE"`, `"RXf_PMf_SINGLELINE"`, `"RX_MATCH_COPIED"`, `"struct` `regexp"`, `"SvRX"` , `"SvRXOK"` , `"SV_SAVED_COPY"`

- Reports and Formats

  `"IoBOTTOM_GV"`, `"IoBOTTOM_NAME"`, `"IoFMT_GV"`, `"IoFMT_NAME"`, `"IoLINES"`, `"IoLINES_LEFT"`, `"IoPAGE"`, `"IoPAGE_LEN"`, `"IoTOP_GV"`, `"IoTOP_NAME"`

- Signals

  `"HAS_SIGINFO_SI_ADDR"` , `"HAS_SIGINFO_SI_BAND"` , `"HAS_SIGINFO_SI_ERRNO"` , `"HAS_SIGINFO_SI_PID"` , `"HAS_SIGINFO_SI_STATUS"` , `"HAS_SIGINFO_SI_UID"` , `"HAS_SIGINFO_SI_VALUE"` , `"PERL_SIGNALS_UNSAFE_FLAG"` , `"rsignal"` , `"rsignal_state"` , `"Sigjmp_buf"` , `"Siglongjmp"` , `"SIG_NAME"` , `"SIG_NUM"` , `"Sigsetjmp"` , `"SIG_SIZE"` , `"whichsig"`, `"whichsig_pv"`, `"whichsig_pvn"`, `"whichsig_sv"`

- Site configuration

  `"ARCHLIB"` , `"ARCHLIB_EXP"` , `"ARCHNAME"` , `"BIN"` , `"BIN_EXP"` , `"INSTALL_USR_BIN_PERL"` , `"MULTIARCH"` , `"PERL_INC_VERSION_LIST"` , `"PERL_OTHERLIBDIRS"` , `"PERL_RELOCATABLE_INC"` , `"PERL_TARGETARCH"` , `"PERL_USE_DEVEL"` , `"PERL_VENDORARCH"` , `"PERL_VENDORARCH_EXP"` , `"PERL_VENDORLIB_EXP"` , `"PERL_VENDORLIB_STEM"` , `"PRIVLIB"` , `"PRIVLIB_EXP"` , `"SITEARCH"` , `"SITEARCH_EXP"` , `"SITELIB"` , `"SITELIB_EXP"` , `"SITELIB_STEM"` , `"STARTPERL"` , `"USE_64_BIT_ALL"` , `"USE_64_BIT_INT"` , `"USE_BSD_GETPGRP"` , `"USE_BSD_SETPGRP"` , `"USE_C_BACKTRACE"` , `"USE_CPLUSPLUS"` , `"USE_CROSS_COMPILE"` , `"USE_DTRACE"` , `"USE_DYNAMIC_LOADING"` , `"USE_FAST_STDIO"` , `"USE_ITHREADS"` , `"USE_KERN_PROC_PATHNAME"` , `"USE_LARGE_FILES"` , `"USE_LONG_DOUBLE"` , `"USE_MORE_BITS"` , `"USE_NSGETEXECUTABLEPATH"` , `"USE_PERLIO"` , `"USE_QUADMATH"` , `"USE_REENTRANT_API"` , `"USE_SEMCTL_SEMID_DS"` , `"USE_SEMCTL_SEMUN"` , `"USE_SITECUSTOMIZE"` , `"USE_SOCKS"` , `"USE_STAT_BLOCKS"` , `"USE_STDIO_BASE"` , `"USE_STDIO_PTR"` , `"USE_STRICT_BY_DEFAULT"` , `"USE_THREADS"`

- Sockets configuration values

  `"HAS_SOCKADDR_IN6"` , `"HAS_SOCKADDR_SA_LEN"` , `"HAS_SOCKADDR_STORAGE"` , `"HAS_SOCKATMARK"` , `"HAS_SOCKET"` , `"HAS_SOCKETPAIR"` , `"HAS_SOCKS5_INIT"` , `"I_SOCKS"` , `"I_SYS_SOCKIO"`

- Source Filters

  `"apply_builtin_cv_attributes"` , `"filter_add"`, `"filter_del"` , `"filter_read"`, `"scan_vstring"` , `"start_subparse"`

- Stack Manipulation Macros

  `"dMARK"` , `"dORIGMARK"` , `"dSP"` , `"dTARGET"` , `"EXTEND"` , `"MARK"` , `"mPUSHi"` , `"mPUSHn"` , `"mPUSHp"` , `"mPUSHpvs"` , `"mPUSHs"` , `"mPUSHu"` , `"mXPUSHi"` , `"mXPUSHn"` , `"mXPUSHp"` , `"mXPUSHpvs"` , `"mXPUSHs"` , `"mXPUSHu"` , `"newXSproto"` , `"ORIGMARK"` , `"PL_markstack"`, `"PL_markstack_ptr"`, `"PL_savestack"`, `"PL_savestack_ix"`, `"PL_scopestack"`, `"PL_scopestack_ix"`, `"PL_scopestack_name"`, `"PL_stack_base"`, `"PL_stack_sp"`, `"PL_tmps_floor"`, `"PL_tmps_ix"`, `"PL_tmps_stack"`, `"POPi"` , `"POPl"` , `"POPn"` , `"POPp"` , `"POPpbytex"` , `"POPpx"` , `"POPs"` , `"POPu"` , `"POPul"` , `"PUSHi"` , `"PUSHMARK"` , `"PUSHmortal"` , `"PUSHn"` , `"PUSHp"` , `"PUSHpvs"` , `"PUSHs"` , `"PUSHu"` , `"PUTBACK"` , `"SAVEt_INT"`, `"SP"` , `"SPAGAIN"` , `"SSNEW"`, `"SSNEWa"`, `"SSNEWat"`, `"SSNEWt"` , `"SSPTR"`, `"SSPTRt"` , `"TARG"` , `"TOPs"`, `"XPUSHi"` , `"XPUSHmortal"` , `"XPUSHn"` , `"XPUSHp"` , `"XPUSHpvs"` , `"XPUSHs"` , `"XPUSHu"` , `"XS_APIVERSION_BOOTCHECK"` , `"XSRETURN"` , `"XSRETURN_EMPTY"` , `"XSRETURN_IV"` , `"XSRETURN_NO"` , `"XSRETURN_NV"` , `"XSRETURN_PV"` , `"XSRETURN_UNDEF"` , `"XSRETURN_UV"` , `"XSRETURN_YES"` , `"XST_mIV"` , `"XST_mNO"` , `"XST_mNV"` , `"XST_mPV"` , `"XST_mUNDEF"` , `"XST_mUV"` , `"XST_mYES"` , `"XS_VERSION"` , `"XS_VERSION_BOOTCHECK"`

- String Handling

  `"CAT2"` , `"Copy"`, `"CopyD"` , `"delimcpy"` , `"do_join"` , `"do_sprintf"` , `"fbm_compile"` , `"fbm_instr"` , `"foldEQ"` , `"ibcmp"` , `"ibcmp_locale"` , `"ibcmp_utf8"` , `"instr"` , `"memCHRs"` , `"memEQ"` , `"memEQs"` , `"memNE"` , `"memNEs"` , `"Move"`, `"MoveD"` , `"my_snprintf"` , `"my_sprintf"` , `"my_strnlen"` , `"my_vsnprintf"` , `"NewCopy"` , `"ninstr"` , `"Nullch"` , `"PL_na"` , `"rninstr"` , `"savepv"` , `"savepvn"` , `"savepvs"` , `"savesharedpv"` , `"savesharedpvn"` , `"savesharedpvs"` , `"savesharedsvpv"` , `"savesvpv"` , `"strEQ"` , `"strGE"` , `"strGT"` , `"STRINGIFY"` , `"strLE"` , `"STRLEN"`, `"strLT"` , `"strNE"` , `"strnEQ"` , `"strnNE"` , `"STR_WITH_LEN"` , `"Zero"`, `"ZeroD"`

- SV Flags

  `"SVt_IV"` , `"SVt_NULL"` , `"SVt_NV"` , `"SVt_PV"` , `"SVt_PVAV"` , `"SVt_PVCV"` , `"SVt_PVFM"` , `"SVt_PVGV"` , `"SVt_PVHV"` , `"SVt_PVIO"` , `"SVt_PVIV"` , `"SVt_PVLV"` , `"SVt_PVMG"` , `"SVt_PVNV"` , `"SVt_PVOBJ"` , `"SVt_REGEXP"` , `"svtype"`

- SV Handling

  `"AV_FROM_REF"`, `"CV_FROM_REF"`, `"HV_FROM_REF"` , `"BOOL_INTERNALS_sv_isbool"` , `"BOOL_INTERNALS_sv_isbool_false"` , `"BOOL_INTERNALS_sv_isbool_true"` , `"boolSV"` , `"croak_xs_usage"` , `"DEFSV"` , `"DEFSV_set"` , `"get_sv"` , `"isGV_with_GP"` , `"looks_like_number"` , `"MUTABLE_AV"`, `"MUTABLE_CV"`, `"MUTABLE_GV"`, `"MUTABLE_HV"`, `"MUTABLE_IO"`, `"MUTABLE_PTR"`, `"MUTABLE_SV"` , `"newRV"`, `"newRV_inc"` , `"newRV_noinc"` , `"newSV"` , `"newSVbool"` , `"newSV_false"` , `"newSVhek"` , `"newSVhek_mortal"` , `"newSViv"` , `"newSVnv"` , `"newSVpadname"` , `"newSVpv"` , `"newSVpvf"` , `"newSVpvf_nocontext"` , `"newSVpvn"` , `"newSVpvn_flags"` , `"newSVpvn_share"` , `"newSVpvn_utf8"` , `"newSVpvs"` , `"newSVpvs_flags"` , `"newSVpv_share"` , `"newSVpvs_share"` , `"newSVrv"` , `"newSVsv"`, `"newSVsv_flags"`, `"newSVsv_nomg"` , `"newSV_true"` , `"newSV_type"` , `"newSV_type_mortal"` , `"newSVuv"` , `"Nullsv"` , `"PL_sv_no"` , `"PL_sv_undef"` , `"PL_sv_yes"` , `"PL_sv_zero"` , `"SAVE_DEFSV"` , `"sortsv"` , `"sortsv_flags"` , `"SV"`, `"SvAMAGIC"` , `"SvAMAGIC_off"` , `"SvAMAGIC_on"` , `"sv_backoff"` , `"sv_bless"` , `"SvBoolFlagsOK"` , `"sv_catpv"`, `"sv_catpv_flags"`, `"sv_catpv_mg"`, `"sv_catpv_nomg"` , `"sv_catpvf"`, `"sv_catpvf_mg"`, `"sv_catpvf_mg_nocontext"`, `"sv_catpvf_nocontext"` , `"sv_catpvn"`, `"sv_catpvn_flags"`, `"sv_catpvn_mg"`, `"sv_catpvn_nomg"` , `"sv_catpvs"` , `"sv_catpvs_flags"` , `"sv_catpvs_mg"` , `"sv_catpvs_nomg"` , `"sv_catsv"`, `"sv_catsv_flags"`, `"sv_catsv_mg"`, `"sv_catsv_nomg"` , `"SV_CHECK_THINKFIRST"` , `"SV_CHECK_THINKFIRST_COW_DROP"` , `"sv_chop"` , `"sv_clear"` , `"sv_cmp"` , `"sv_cmp_flags"` , `"sv_cmp_locale"` , `"sv_cmp_locale_flags"` , `"sv_collxfrm"` , `"sv_collxfrm_flags"` , `"sv_copypv"`, `"sv_copypv_flags"`, `"sv_copypv_nomg"` , `"SvCUR"` , `"SvCUR_set"` , `"sv_2cv"` , `"sv_dec"`, `"sv_dec_nomg"` , `"sv_derived_from"` , `"sv_derived_from_hv"` , `"sv_derived_from_pv"` , `"sv_derived_from_pvn"` , `"sv_derived_from_sv"` , `"sv_does"` , `"sv_does_pv"` , `"sv_does_pvn"` , `"sv_does_sv"` , `"SvEND"` , `"sv_eq"`, `"sv_eq_flags"` , `"sv_force_normal"` , `"sv_force_normal_flags"` , `"sv_free"` , `"SvGAMAGIC"` , `"sv_get_backrefs"` , `"SvGETMAGIC"` , `"sv_gets"` , `"SvGROW"` , `"SvIandPOK"` , `"SvIandPOK_off"` , `"SvIandPOK_on"` , `"sv_inc"`, `"sv_inc_nomg"` , `"sv_insert"`, `"sv_insert_flags"` , `"sv_2io"` , `"SvIOK"` , `"SvIOK_notUV"` , `"SvIOK_off"` , `"SvIOK_on"` , `"SvIOK_only"` , `"SvIOK_only_UV"` , `"SvIOKp"` , `"SvIOK_UV"` , `"sv_isa"` , `"sv_isa_sv"` , `"SvIsBOOL"` , `"SvIsCOW"` , `"SvIsCOW_shared_hash"` , `"sv_isobject"` , `"SvIV"`, `"SvIV_nomg"`, `"SvIVx"` , `"sv_2iv_flags"` , `"SvIV_set"` , `"SvIVX"` , `"SvLEN"` , `"sv_len"` , `"SvLEN_set"` , `"sv_len_utf8"`, `"sv_len_utf8_nomg"` , `"SvLOCK"` , `"sv_magic"` , `"sv_magicext"` , `"SvMAGIC_set"` , `"sv_2mortal"` , `"sv_mortalcopy"` , `"sv_mortalcopy_flags"` , `"sv_newmortal"` , `"SvNIOK"` , `"SvNIOK_off"` , `"SvNIOKp"` , `"SvNOK"` , `"SvNOK_off"` , `"SvNOK_on"` , `"SvNOK_only"` , `"SvNOKp"` , `"sv_nolocking"` , `"sv_nounlocking"` , `"sv_numeq"` , `"sv_numeq_flags"` , `"SvNV"`, `"SvNV_nomg"`, `"SvNVx"` , `"sv_2nv_flags"` , `"SvNV_set"` , `"SvNVX"` , `"SvOK"` , `"SvOOK"` , `"SvOOK_off"` , `"SvOOK_offset"` , `"SvPOK"` , `"SvPOK_off"` , `"SvPOK_on"` , `"SvPOK_only"` , `"SvPOK_only_UTF8"` , `"SvPOKp"` , `"sv_pos_b2u"` , `"sv_pos_b2u_flags"` , `"sv_pos_u2b"` , `"sv_pos_u2b_flags"` , `"SvPV"`, `"SvPV_const"`, `"SvPV_flags"`, `"SvPV_flags_const"`, `"SvPV_flags_mutable"`, `"SvPV_mutable"`, `"SvPV_nolen"`, `"SvPV_nolen_const"`, `"SvPV_nomg"`, `"SvPV_nomg_const"`, `"SvPV_nomg_const_nolen"`, `"SvPV_nomg_nolen"`, `"SvPVbyte"`, `"SvPVbyte_nolen"`, `"SvPVbyte_nomg"`, `"SvPVbyte_or_null"`, `"SvPVbyte_or_null_nomg"`, `"SvPVbytex"`, `"SvPVbytex_nolen"`, `"SvPVutf8"`, `"SvPVutf8_nolen"`, `"SvPVutf8_nomg"`, `"SvPVutf8_or_null"`, `"SvPVutf8_or_null_nomg"`, `"SvPVutf8x"`, `"SvPVx"`, `"SvPVx_const"`, `"SvPVx_nolen"`, `"SvPVx_nolen_const"`

  , `"sv_2pv"`, `"sv_2pv_flags"` , `"sv_2pvbyte"`, `"sv_2pvbyte_flags"` , `"SvPVCLEAR"` , `"SvPVCLEAR_FRESH"` , `"SvPV_force"`, `"SvPV_force_flags"`, `"SvPV_force_flags_mutable"`, `"SvPV_force_flags_nolen"`, `"SvPV_force_mutable"`, `"SvPV_force_nolen"`, `"SvPV_force_nomg"`, `"SvPV_force_nomg_nolen"`, `"SvPVbyte_force"`, `"SvPVbytex_force"`, `"SvPVutf8_force"`, `"SvPVutf8x_force"`, `"SvPVx_force"` , `"SvPV_free"` , `"sv_pvn_force_flags"` , `"SvPV_renew"` , `"SvPV_set"` , `"SvPV_shrink_to_cur"` , `"sv_2pvutf8"`, `"sv_2pvutf8_flags"` , `"SvPVX"`, `"SvPVX_const"`, `"SvPVX_mutable"`, `"SvPVXx"` , `"SvPVXtrue"` , `"SvREADONLY"` , `"SvREADONLY_off"` , `"SvREADONLY_on"` , `"sv_ref"` , `"SvREFCNT"` , `"SvREFCNT_dec"`, `"SvREFCNT_dec_set_NULL"`, `"SvREFCNT_dec_ret_NULL"`, `"SvREFCNT_dec_NN"` , `"SvREFCNT_inc"`, `"SvREFCNT_inc_NN"`, `"SvREFCNT_inc_simple"`, `"SvREFCNT_inc_simple_NN"`, `"SvREFCNT_inc_simple_void"`, `"SvREFCNT_inc_simple_void_NN"`, `"SvREFCNT_inc_void"`, `"SvREFCNT_inc_void_NN"` , `"sv_reftype"` , `"sv_replace"` , `"sv_report_used"` , `"sv_reset"` , `"SvROK"` , `"SvROK_off"` , `"SvROK_on"` , `"SvRV"` , `"SvRV_set"` , `"sv_rvunweaken"` , `"sv_rvweaken"` , `"sv_setbool"`, `"sv_setbool_mg"` , `"sv_set_bool"` , `"sv_set_false"` , `"sv_setiv"`, `"sv_setiv_mg"` , `"SvSETMAGIC"` , `"SvSetMagicSV"`, `"SvSetMagicSV_nosteal"`, `"SvSetSV"`, `"SvSetSV_nosteal"` , `"sv_setnv"`, `"sv_setnv_mg"` , `"sv_setpv"`, `"sv_setpv_mg"`, `"sv_setpvn"`, `"sv_setpvn_fresh"`, `"sv_setpvn_mg"`, `"sv_setpvs"`, `"sv_setpvs_mg"` , `"sv_setpv_bufsize"` , `"sv_setpvf"`, `"sv_setpvf_mg"`, `"sv_setpvf_mg_nocontext"`, `"sv_setpvf_nocontext"` , `"sv_setref_iv"` , `"sv_setref_nv"` , `"sv_setref_pv"` , `"sv_setref_pvn"` , `"sv_setref_pvs"` , `"sv_setref_uv"` , `"sv_setrv_inc"`, `"sv_setrv_inc_mg"` , `"sv_setrv_noinc"`, `"sv_setrv_noinc_mg"` , `"sv_setsv"`, `"sv_setsv_flags"`, `"sv_setsv_mg"`, `"sv_setsv_nomg"` , `"sv_set_true"` , `"sv_set_undef"` , `"sv_setuv"`, `"sv_setuv_mg"` , `"SvSHARE"` , `"SvSHARED_HASH"` , `"SvSTASH"` , `"SvSTASH_set"` , `"sv_streq"` , `"sv_streq_flags"` , `"SvTRUE"`, `"SvTRUE_NN"`, `"SvTRUE_nomg"`, `"SvTRUE_nomg_NN"`, `"SvTRUEx"` , `"SvTYPE"` , `"SvUNLOCK"` , `"sv_unmagic"` , `"sv_unmagicext"` , `"sv_unref"` , `"sv_unref_flags"` , `"SvUOK"` , `"SvUPGRADE"` , `"sv_upgrade"` , `"sv_usepvn"`, `"sv_usepvn_flags"`, `"sv_usepvn_mg"` , `"sv_utf8_decode"` , `"sv_utf8_downgrade"`, `"sv_utf8_downgrade_flags"`, `"sv_utf8_downgrade_nomg"` , `"sv_utf8_encode"` , `"SvUTF8_off"` , `"SvUTF8_on"` , `"sv_utf8_upgrade"`, `"sv_utf8_upgrade_flags"`, `"sv_utf8_upgrade_flags_grow"`, `"sv_utf8_upgrade_nomg"` , `"SvUTF8"` , `"SvUV"`, `"SvUV_nomg"`, `"SvUVx"` , `"sv_2uv_flags"` , `"SvUV_set"` , `"SvUVX"` , `"SvUVXx"` , `"sv_vcatpvf"`, `"sv_vcatpvf_mg"` , `"sv_vcatpvfn"`, `"sv_vcatpvfn_flags"` , `"SvVOK"` , `"sv_vsetpvf"`, `"sv_vsetpvf_mg"` , `"sv_vsetpvfn"` , `"SvVSTRING_mg"` , `"vnewSVpvf"`

- Tainting

  `"SvTAINT"` , `"SvTAINTED"` , `"SvTAINTED_off"` , `"SvTAINTED_on"`

- Time

  `"ASCTIME_R_PROTO"` , `"CTIME_R_PROTO"` , `"GMTIME_MAX"` , `"GMTIME_MIN"` , `"GMTIME_R_PROTO"` , `"HAS_ASCTIME_R"` , `"HAS_ASCTIME64"` , `"HAS_CTIME_R"` , `"HAS_CTIME64"` , `"HAS_DIFFTIME"` , `"HAS_DIFFTIME64"` , `"HAS_FUTIMES"` , `"HAS_GETITIMER"` , `"HAS_GETTIMEOFDAY"` , `"HAS_GMTIME_R"` , `"HAS_GMTIME64"` , `"HAS_LOCALTIME_R"` , `"HAS_LOCALTIME64"` , `"HAS_MKTIME"` , `"HAS_MKTIME64"` , `"HAS_NANOSLEEP"` , `"HAS_SETITIMER"` , `"HAS_STRFTIME"` , `"HAS_TIME"` , `"HAS_TIMEGM"` , `"HAS_TIMES"` , `"HAS_TM_TM_GMTOFF"` , `"HAS_TM_TM_ZONE"` , `"HAS_TZNAME"` , `"HAS_USLEEP"` , `"HAS_USLEEP_PROTO"` , `"I_TIME"` , `"I_UTIME"` , `"LOCALTIME_MAX"` , `"LOCALTIME_MIN"` , `"LOCALTIME_R_NEEDS_TZSET"` , `"LOCALTIME_R_PROTO"` , `"L_R_TZSET"` , `"mini_mktime"` , `"sv_strftime_tm"`, `"my_strftime"`

- Typedef names

  `"DB_Hash_t"` , `"DB_Prefix_t"` , `"Direntry_t"` , `"Fpos_t"` , `"Free_t"` , `"Gid_t"` , `"Gid_t_f"` , `"Gid_t_sign"` , `"Gid_t_size"` , `"Groups_t"` , `"Malloc_t"` , `"Mmap_t"` , `"Mode_t"` , `"Netdb_hlen_t"` , `"Netdb_host_t"` , `"Netdb_name_t"` , `"Netdb_net_t"` , `"Off_t"` , `"Off_t_size"` , `"Pid_t"` , `"Rand_seed_t"` , `"Select_fd_set_t"` , `"Shmat_t"` , `"Signal_t"` , `"Size_t"` , `"Size_t_size"` , `"Sock_size_t"` , `"SSize_t"` , `"Time_t"` , `"Uid_t"` , `"Uid_t_f"` , `"Uid_t_sign"` , `"Uid_t_size"`

- Unicode Support X \<UNICODE\_DISALLOW\_ILLEGAL\_INTERCHANGE\>

  `"BOM_UTF8"` , `"bytes_cmp_utf8"` , `"bytes_from_utf8"` , `"bytes_to_utf8"` , `"DO_UTF8"` , `"foldEQ_utf8"` , `"is_ascii_string"` , `"isC9_STRICT_UTF8_CHAR"` , `"is_c9strict_utf8_string"` , `"is_c9strict_utf8_string_loc"` , `"is_c9strict_utf8_string_loclen"` , `"is_invariant_string"` , `"isSTRICT_UTF8_CHAR"` , `"is_strict_utf8_string"` , `"is_strict_utf8_string_loc"` , `"is_strict_utf8_string_loclen"` , `"isUTF8_CHAR"` , `"is_utf8_char_buf"` , `"isUTF8_CHAR_flags"` , `"is_utf8_fixed_width_buf_flags"` , `"is_utf8_fixed_width_buf_loc_flags"` , `"is_utf8_fixed_width_buf_loclen_flags"` , `"is_utf8_invariant_string"` , `"is_utf8_invariant_string_loc"` , `"is_utf8_string"` , `"is_utf8_string_flags"` , `"is_utf8_string_loc"` , `"is_utf8_string_loc_flags"` , `"is_utf8_string_loclen"` , `"is_utf8_string_loclen_flags"` , `"is_utf8_valid_partial_char"` , `"is_utf8_valid_partial_char_flags"` , `"LATIN1_TO_NATIVE"` , `"NATIVE_TO_LATIN1"` , `"NATIVE_TO_UNI"` , `"pv_uni_display"` , `"REPLACEMENT_CHARACTER_UTF8"` , `"sv_cat_decode"` , `"sv_recode_to_utf8"` , `"sv_uni_display"` , `"UNICODE_IS_NONCHAR"` , `"UNICODE_IS_REPLACEMENT"` , `"UNICODE_IS_SUPER"` , `"UNICODE_IS_SURROGATE"` , `"UNICODE_REPLACEMENT"` , `"UNI_TO_NATIVE"` , `"UTF8_CHK_SKIP"` , `"utf8_distance"` , `"utf8_hop"` , `"utf8_hop_back"` , `"utf8_hop_forward"` , `"utf8_hop_safe"` , `"UTF8_IS_INVARIANT"` , `"UTF8_IS_NONCHAR"` , `"UTF8_IS_REPLACEMENT"` , `"UTF8_IS_SUPER"` , `"UTF8_IS_SURROGATE"` , `"utf8_length"` , `"UTF8_MAXBYTES"` , `"UTF8_MAXBYTES_CASE"` , `"utf8ness_t"` , `"UTF8NESS_YES"`, `"UTF8NESS_NO"`, `"UTF8NESS_IMMATERIAL"`, `"UTF8NESS_UNKNOWN"`, `"0 <= `*enum value*` <= UTF8NESS_IMMATERIAL"`, `"UTF8NESS_IMMATERIAL <= <`*enum value*`"`, `"utf8n_to_uvchr"` , `"utf8n_to_uvchr_error"` , `"UTF8_GOT_PERL_EXTENDED"`, `"UTF8_GOT_CONTINUATION"`, `"UTF8_GOT_EMPTY"`, `"UTF8_GOT_LONG"`, `"UTF8_GOT_NONCHAR"`, `"UTF8_GOT_NON_CONTINUATION"`, `"UTF8_GOT_OVERFLOW"`, `"UTF8_GOT_SHORT"`, `"UTF8_GOT_SUPER"`, `"UTF8_GOT_SURROGATE"`, `"utf8n_to_uvchr_msgs"` , `"text"`, `"warn_categories"`, `"flag"`, `"UTF8_SAFE_SKIP"` , `"UTF8SKIP"` , `""UTF8_SAFE_SKIP" in perlapi"` if you know the maximum ending pointer in the buffer pointed to by `"s"`; or, `""UTF8_CHK_SKIP" in perlapi"` if you don't know it, `"UTF8_SKIP"` , `"utf8_to_bytes"` , `"utf8_to_uvchr"` , `"utf8_to_uvchr_buf"` , `"UVCHR_IS_INVARIANT"` , `"UVCHR_SKIP"` , `"uvchr_to_utf8_flags"` , `"uvchr_to_utf8_flags_msgs"` , `"text"`, `"warn_categories"`, `"flag"`, `"uvchr_to_utf8"`

- Utility Functions

  `"C_ARRAY_END"` , `"C_ARRAY_LENGTH"` , `"getcwd_sv"` , `"IN_PERL_COMPILETIME"` , `"IN_PERL_RUNTIME"` , `"IS_SAFE_SYSCALL"` , `"is_safe_syscall"` , `"my_setenv"` , `"newPADxVOP"` , `"phase_name"` , `"Poison"` , `"PoisonFree"` , `"PoisonNew"` , `"PoisonWith"` , `"StructCopy"` , `"sv_destroyable"` , `"sv_nosharing"`

- Versioning

  `"new_version"` , `"PERL_REVISION"` , `"PERL_SUBVERSION"` , `"PERL_VERSION"` , `"PERL_VERSION_EQ"`, `"PERL_VERSION_GE"`, `"PERL_VERSION_GT"`, `"PERL_VERSION_LE"`, `"PERL_VERSION_LT"`, `"PERL_VERSION_NE"` , `"prescan_version"` , `"scan_version"` , `"upg_version"` , `"vcmp"` , `"vnormal"` , `"vnumify"` , `"vstringify"` , `"vverify"` , The SV is an HV or a reference to an HV, The hash contains a "version" key, The "version" key has a reference to an AV as its value

- Warning and Dieing X \<WARN\_LAYER\>

  `"ckWARN"`, `"ckWARN2"`, `"ckWARN3"`, `"ckWARN4"` , `"ckWARN_d"`, `"ckWARN2_d"`, `"ckWARN3_d"`, `"ckWARN4_d"` , `"ck_warner"`, `"ck_warner_d"` , `"CLEAR_ERRSV"` , `"croak"`, `"croak_nocontext"` , `"croak_no_modify"` , `"croak_sv"` , `"die"`, `"die_nocontext"` , `"die_sv"` , `"ERRSV"` , `"fatal_warner"` , `"packWARN"`, `"packWARN2"`, `"packWARN3"`, `"packWARN4"` , `"SANE_ERRSV"` , `"vcroak"` , `"vfatal_warner"` , `"vwarn"` , `"vwarner"` , `"warn"`, `"warn_nocontext"` , `"warner"`, `"warner_nocontext"` , `"warn_sv"`

- XS

  `"aMY_CXT"`, `"_aMY_CXT"`, `"aMY_CXT_"`, `"ax"` , `"CLASS"` , `"dAX"` , `"dAXMARK"` , `"dITEMS"` , `"dMY_CXT"`, `"dMY_CXT_SV"` , `"dUNDERBAR"` , `"dXSARGS"` , `"dXSI32"` , `"items"` , `"ix"` , `"MY_CXT"`, `"MY_CXT_CLONE"`, `"MY_CXT_INIT"`, `"pMY_CXT"`, `"_pMY_CXT"`, `"pMY_CXT_"`, `"RETVAL"` , `"ST"` , `"START_MY_CXT"`, `"THIS"` , `"UNDERBAR"` , `"XS"` , `"XS_EXTERNAL"` , `"XS_INTERNAL"` , `"XSPROTO"`

- Undocumented elements

  - AUTHORS

  - SEE ALSO

  ### perlintern - autogenerated documentation of purely internal Perl functions

- DESCRIPTION

  - AV Handling

  `"av_fetch_simple"` , `"AvFILLp"` , `"av_new_alloc"` , `"av_store_simple"`

- Callback Functions

  `"dowantarray"` , `"leave_scope"` , `"magic_freedestruct"` , `"mortal_svfunc_x"` , `"pop_scope"` , `"push_scope"` , `"save_adelete"` , `"save_freercpv"` , `"save_generic_pvref"` , `"save_generic_svref"` , `"save_hdelete"` , `"save_hints"` , `"save_op"` , `"save_padsv_and_mortalize"` , `"save_pushptr"` , `"save_rcpv"` , `"save_scalar_at"` , `"save_set_svflags"` , `"save_shared_pvref"` , `"save_vptr"`

- Casting

  - Character case changing

  - Character classification

  - Compiler and Preprocessor information

  - Compiler directives

  - Compile-time scope hooks

  `"BhkENTRY"` , `"BhkFLAGS"` , `"CALL_BLOCK_HOOKS"`

- Concurrency

  `"CVf_SLABBED"`, `"CvROOT"`, `"CvSTART"`, `"CX_CUR"`, `"CXINC"`, `"CX_LEAVE_SCOPE"`, `"CX_POP"`, `"cxstack"`, `"cxstack_ix"`, `"CXt_BLOCK"`, `"CXt_EVAL"`, `"CXt_FORMAT"`, `"CXt_GIVEN"`, `"CXt_LOOP_ARY"`, `"CXt_LOOP_LAZYIV"`, `"CXt_LOOP_LAZYSV"`, `"CXt_LOOP_LIST"`, `"CXt_LOOP_PLAIN"`, `"CXt_NULL"`, `"CXt_SUB"`, `"CXt_SUBST"`, `"CXt_WHEN"`, `"cx_type"`, `"dounwind"`, `"my_fork"` , `"PERL_CONTEXT"`

- COPs and Hint Hashes

  - Custom Operators

  `"core_prototype"`

- CV Handling

  `"CvREFCOUNTED_ANYSV"` , `"CvREFCOUNTED_ANYSV_off"` , `"CvREFCOUNTED_ANYSV_on"` , `"CvWEAKOUTSIDE"` , `"docatch"`

- Debugging

  `"comma_aDEPTH"` , `"comma_pDEPTH"` , `"debop"` , `"debprof"` , `"debprofdump"` , `"debug_aDEPTH"` , `"debug_pDEPTH"` , `"free_c_backtrace"` , `"get_c_backtrace"` , `"PL_DBsingle"` , `"PL_DBsub"` , `"PL_DBtrace"` , `"runops_debug"`, `"runops_standard"`

- Display functions

  `"sv_peek"`

- Embedding, Threads, and Interpreter Cloning

  `"cv_dump"` , `"cv_forget_slab"` , `"do_dump_pad"` , `"get_context"` , `"pad_alloc_name"` , `"pad_block_start"` , `"pad_check_dup"` , `"pad_findlex"` , `"pad_fixup_inner_anons"` , `"pad_free"` , `"pad_leavemy"` , `"padlist_dup"` , `"padname_dup"` , `"padnamelist_dup"` , `"pad_push"` , `"pad_reset"` , `"pad_setsv"` , `"pad_sv"` , `"pad_swipe"` , `"set_context"` , `"si_dup"` , `"ss_dup"`

- Errno

  `"dSAVEDERRNO"` , `"dSAVE_ERRNO"` , `"RESTORE_ERRNO"` , `"SAVE_ERRNO"` , `"SETERRNO"`

- Exception Handling (simple) Macros

  - Filesystem configuration values

  - Floating point

  - General Configuration

  - Global Variables

  - GV Handling and Stashes

  `"amagic_applies"` , `"gp_dup"` , `"gv_handler"` , `"gv_stashsvpvn_cached"` , `"gv_try_downgrade"`

- Hook manipulation

  - HV Handling

  `"hv_eiter_p"` , `"hv_eiter_set"` , `"hv_ename_add"` , `"hv_ename_delete"` , `"hv_fill"` , `"hv_placeholders_get"` , `"hv_placeholders_set"` , `"hv_riter_p"` , `"hv_riter_set"` , `"refcounted_he_chain_2hv"` , `"refcounted_he_fetch_pv"` , `"refcounted_he_fetch_pvn"` , `"refcounted_he_fetch_pvs"` , `"refcounted_he_fetch_sv"` , `"refcounted_he_free"` , `"refcounted_he_inc"` , `"refcounted_he_new_pv"` , `"refcounted_he_new_pvn"` , `"refcounted_he_new_pvs"` , `"refcounted_he_new_sv"` , `"unsharepvn"`

- Input/Output

  `"dirp_dup"` , `"fp_dup"` , `"my_fflush_all"` , `"my_mkostemp"` , `"my_mkstemp"` , `"PL_last_in_gv"` , `"PL_ofsgv"` , `"PL_rs"` , `"start_glob"`

- Integer

  - I/O Formats

  - Lexer interface

  `"resume_compcv_and_save"` , `"resume_compcv_final"` , `"validate_proto"`

- Locales

  - Magic

  `"magic_clearhint"` , `"magic_clearhints"` , `"magic_methcall"` , `"magic_sethint"` , `"mg_dup"` , `"mg_localize"`

- Memory Management

  `"calloc"` , `"malloc"` , `"mfree"` , `"realloc"`

- MRO

  `"mro_get_linear_isa_dfs"` , `"mro_isa_changed_in"` , `"mro_package_moved"`

- Multicall Functions

  - Numeric Functions

  `"isinfnansv"`

- Optrees

  `"newATTRSUB_x"` , `"newMYSUB"` , `"newXS_len_flags"` , `"op_refcnt_lock"` , `"op_refcnt_unlock"` , `"traverse_op_tree"`

- Pack and Unpack

  - Pad Data Structures

  `"CX_CURPAD_SAVE"` , `"CX_CURPAD_SV"` , `"PAD_BASE_SV"` , `"PAD_CLONE_VARS"` , `"PAD_COMPNAME_FLAGS"` , `"PAD_COMPNAME_GEN"` , `"PAD_COMPNAME_GEN_set"` , `"PAD_COMPNAME_OURSTASH"` , `"PAD_COMPNAME_PV"` , `"PAD_COMPNAME_TYPE"` , `"PadnameIsFIELD"` , `"PadnameIsOUR"` , `"PadnameIsSTATE"` , `"PadnameOURSTASH"` , `"PadnameOUTER"` , `"PadnameTYPE"` , `"PAD_RESTORE_LOCAL"` , `"PAD_SAVE_LOCAL"` , `"PAD_SAVE_SETNULLPAD"` , `"PAD_SET_CUR"` , `"PAD_SET_CUR_NOSAVE"` , `"PAD_SETSV"` , `"PAD_SV"` , `"PAD_SVl"` , `"SAVECLEARSV"` , `"SAVECOMPPAD"` , `"SAVEPADSV"`

- Password and Group access

  - Paths to system commands

  - Prototype information

  - Reference-counted stack manipulation

  - REGEXP Functions

  `"regnode"`

- Reports and Formats

  - Signals

  - Site configuration

  - Sockets configuration values

  - Source Filters

  - Stack Manipulation Macros

  `"djSP"` , `"LVRET"` , `"save_alloc"`

- String Handling

  `"delimcpy_no_escape"` , `"my_cxt_init"` , `"quadmath_format_needed"` , `"quadmath_format_valid"`

- SV Flags

  `"SVt_INVLIST"`

- SV Handling

  `"PL_Sv"` , `"sv_add_arena"` , `"sv_2bool"` , `"sv_2bool_flags"` , `"sv_clean_all"` , `"sv_clean_objs"` , `"sv_free_arenas"` , `"sv_grow"` , `"sv_grow_fresh"` , `"sv_newref"` , `"sv_2num"` , `"sv_pv"` , `"sv_pvbyte"` , `"sv_pvbyten_force"` , `"sv_2pvbyte_nolen"` , `"sv_pvn_force"` , `"sv_2pv_nolen"` , `"sv_pvutf8n_force"` , `"sv_2pvutf8_nolen"` , `"sv_pvutf8"` , `"sv_tainted"` , `"SvTHINKFIRST"` , `"sv_true"` , `"sv_untaint"`

- Tainting

  `"sv_taint"` , `"TAINT"` , `"TAINT_ENV"` , `"taint_env"` , `"TAINT_get"` , `"TAINT_IF"` , `"TAINTING_get"` , `"TAINTING_set"` , `"TAINT_NOT"` , `"TAINT_PROPER"` , `"taint_proper"` , `"TAINT_set"` , `"TAINT_WARN_get"` , `"TAINT_WARN_set"`

- Time

  - Typedef names

  - Unicode Support

  `"bytes_from_utf8_loc"` , `"find_uninit_var"` , `"isSCRIPT_RUN"` , `"is_utf8_non_invariant_string"` , `"utf8n_to_uvuni"` , `"utf8_to_uvuni"` , `"uvoffuni_to_utf8_flags"` , `"valid_utf8_to_uvchr"` , `"variant_under_utf8_count"`

- Utility Functions

  `"my_popen_list"` , `"my_socketpair"`

- Versioning

  - Warning and Dieing

  `"deprecate"` , `"deprecate_disappears_in"` , `"deprecate_fatal_in"` , `"PL_dowarn"` , `"report_uninit"`

- XS

  - Undocumented elements

  - AUTHORS

  - SEE ALSO

  ### perliol - C API for Perl's implementation of IO in Layers.

- SYNOPSIS

  - DESCRIPTION

  - History and Background

    - Basic Structure

    - Layers vs Disciplines

    - Data Structures

    - Functions and Attributes

    - Per-instance Data

    - Layers in action

    - Per-instance flag bits

    PERLIO\_F\_EOF, PERLIO\_F\_CANWRITE,  PERLIO\_F\_CANREAD, PERLIO\_F\_ERROR, PERLIO\_F\_TRUNCATE, PERLIO\_F\_APPEND, PERLIO\_F\_CRLF, PERLIO\_F\_UTF8, PERLIO\_F\_UNBUF, PERLIO\_F\_WRBUF, PERLIO\_F\_RDBUF, PERLIO\_F\_LINEBUF, PERLIO\_F\_TEMP, PERLIO\_F\_OPEN, PERLIO\_F\_FASTGETS

  - Methods in Detail

    fsize, name, size, kind, PERLIO\_K\_BUFFERED, PERLIO\_K\_RAW, PERLIO\_K\_CANCRLF, PERLIO\_K\_FASTGETS, PERLIO\_K\_MULTIARG, Pushed, Popped, Open, Binmode, Getarg, Fileno, Dup, Read, Write, Seek, Tell, Close, Flush, Fill, Eof, Error,	Clearerr, Setlinebuf, Get\_base, Get\_bufsiz, Get\_ptr, Get\_cnt, Set\_ptrcnt

  - Utilities

    - Implementing PerlIO Layers

    C implementations, Perl implementations

  - Core Layers

    "unix", "perlio", "stdio", "crlf", "mmap", "pending", "raw", "utf8"

  - Extension Layers

    ":encoding", ":scalar", ":via"

- TODO

  ### perlapio - perl's IO abstraction interface.

- SYNOPSIS

  - DESCRIPTION

  1\. USE\_STDIO, 2. USE\_PERLIO, **PerlIO\_stdin()**, **PerlIO\_stdout()**, **PerlIO\_stderr()**, **PerlIO\_open(path, mode)**, **PerlIO\_fdopen(fd,mode)**, **PerlIO\_reopen(path,mode,f)**, **PerlIO\_printf(f,fmt,...)**, **PerlIO\_vprintf(f,fmt,a)**, **PerlIO\_stdoutf(fmt,...)**, **PerlIO\_read(f,buf,count)**, **PerlIO\_write(f,buf,count)**, **PerlIO\_fill(f)**, **PerlIO\_close(f)**, **PerlIO\_puts(f,s)**, **PerlIO\_putc(f,c)**, **PerlIO\_ungetc(f,c)**, **PerlIO\_unread(f,buf,count)**, **PerlIO\_getc(f)**, **PerlIO\_eof(f)**, **PerlIO\_error(f)**, **PerlIO\_fileno(f)**, **PerlIO\_clearerr(f)**, **PerlIO\_flush(f)**, **PerlIO\_seek(f,offset,whence)**, **PerlIO\_tell(f)**, **PerlIO\_getpos(f,p)**, **PerlIO\_setpos(f,p)**, **PerlIO\_rewind(f)**, **PerlIO\_tmpfile()**, **PerlIO\_setlinebuf(f)**

  - Co-existence with stdio

    **PerlIO\_importFILE(f,mode)**, **PerlIO\_exportFILE(f,mode)**, **PerlIO\_releaseFILE(p,f)**, **PerlIO\_findFILE(f)**

  - "Fast gets" Functions

    **PerlIO\_fast\_gets(f)**, **PerlIO\_has\_cntptr(f)**, **PerlIO\_get\_cnt(f)**, **PerlIO\_get\_ptr(f)**, **PerlIO\_set\_ptrcnt(f,p,c)**, **PerlIO\_canset\_cnt(f)**, **PerlIO\_set\_cnt(f,c)**, **PerlIO\_has\_base(f)**, **PerlIO\_get\_base(f)**, **PerlIO\_get\_bufsiz(f)**

  - Other Functions

    PerlIO\_apply\_layers(aTHX\_ f,mode,layers), PerlIO\_binmode(aTHX\_ f,ptype,imode,layers), '\<' read, '\>' write, '+' read/write, PerlIO\_debug(fmt,...)

### perlhack - How to hack on Perl

- DESCRIPTION

  - SUPER QUICK PATCH GUIDE

  Check out the source repository, Ensure you're following the latest advice, Create a branch for your change, Make your change, Test your change, Commit your change, Send your change to the Perl issue tracker, Thank you, Acknowledgement, Next time

- BUG REPORTING

  - PERL 5 PORTERS

  - perl-changes mailing list

    - \#p5p on IRC

    - GETTING THE PERL SOURCE

  - Read access via Git

    - Read access via the web

    - Write access via git

    - PATCHING PERL

  - Submitting patches

    - Getting your patch accepted

    Why, What, How

  - Patching a core module

    - Updating perldelta

    - What makes for a good patch?

    - TESTING

  *t/base*, *t/comp* and *t/opbasic*, All other subdirectories of *t/*, Test files not found under *t/*

  - Special "make test" targets

    test\_porting, minitest, test.valgrind check.valgrind, test\_harness, test-notty test\_notty

  - Parallel tests

    - Running tests by hand

    - Using *t/harness* for testing

    \-v, -torture, -re=PATTERN, -re LIST OF PATTERNS, PERL\_CORE=1, PERL\_DESTRUCT\_LEVEL=2, PERL, PERL\_SKIP\_TTY\_TEST, PERL\_TEST\_Net\_Ping, PERL\_TEST\_NOVREXX, PERL\_TEST\_NUMCONVERTS, PERL\_TEST\_MEMORY

  - Performance testing

    - Building perl at older commits

    - MORE READING FOR GUTS HACKERS

  perlsource, perlinterp, perlhacktut, perlhacktips, perlguts, perlxstut and perlxs, perlapi, *Porting/pumpkin.pod*

- CPAN TESTERS AND PERL SMOKERS

  - WHAT NEXT?

  - "The Road goes ever on and on, down from the door where it began."

    - Metaphoric Quotations

    - AUTHOR

  ### perlsource - A guide to the Perl source tree

- DESCRIPTION

  - FINDING YOUR WAY AROUND

  - C code

    - Core modules

    *lib/*, *ext/*, *dist/*, *cpan/*

  - Tests

    Module tests, *t/base/*, *t/cmd/*, *t/comp/*, *t/io/*, *t/mro/*, *t/op/*, *t/opbasic/*, *t/re/*, *t/run/*, *t/uni/*, *t/win32/*, *t/porting/*, *t/lib/*

  - Documentation

    - Hacking tools and documentation

    *check\**, *Maintainers*, *Maintainers.pl*, and *Maintainers.pm*, *podtidy*

  - Build system

    - *AUTHORS*

    - *MANIFEST*

    ### perlinterp - An overview of the Perl interpreter

- DESCRIPTION

  - ELEMENTS OF THE INTERPRETER

  - Startup

    - Parsing

    - Optimization

    - Running

    - Exception handing

    level 2: perl-level **exit()** and internals **my\_exit()**, level 3: perl-level **die()** and internals **croak()**, level 1: unused, level 0: normal return

  - INTERNAL VARIABLE TYPES

    - OP TREES

  - STACKS

  - Argument stack

    - Mark stack

    - Save stack

    - MILLIONS OF MACROS

  - FURTHER READING

  ### perlhacktut - Walk through the creation of a simple C code patch

- DESCRIPTION

  - EXAMPLE OF A SIMPLE PATCH

  - Writing the patch

    - Testing the patch

    - Documenting the patch

    - Submit

    - AUTHOR

  ### perlhacktips - Tips for Perl core C code hacking

- DESCRIPTION

  - COMMON PROBLEMS

  - Perl environment problems

    - C99

    AIX, HP/UX, Solaris

  - Symbol Names and Namespace Pollution

    **Don't begin a symbol name with an underscore**; (*e.g.*, don't use: `"_FOOBAR"`), **Don't use two consecutive underscores in a symbol name**; (*e.g.*, don't use `"FOO__BAR"`)

  - Writing safer macros

    - Portability problems

    - Problematic System Interfaces

    - Security problems

    - DEBUGGING

  - Poking at Perl

    - Using a source-level debugger

    run \[args\], break function\_name, break source.c:xxx, step, next, continue, finish, 'enter', ptype, print

  - gdb macro support

    - Dumping Perl Data Structures

    - Using gdb to look at specific parts of a program

    - Using gdb to look at what the parser/lexer are doing

    - SOURCE CODE STATIC ANALYSIS

  - lint

    - Coverity

    - HP-UX cadvise (Code Advisor)

    - cpd (cut-and-paste detector)

    - gcc warnings

    - Warnings of other C compilers

    - MEMORY DEBUGGERS

  - valgrind

    - AddressSanitizer

    \-Dcc=clang, -Accflags=-fsanitize=address, -Aldflags=-fsanitize=address, -Alddlflags=-shared\\ -fsanitize=address, -fsanitize-blacklist=\`pwd\`/asan\_ignore

  - Dr Memory

    - PROFILING

  - Gprof Profiling

    \-a, -b, -e routine, -f routine, -s, -z

  - GCC gcov Profiling

    - callgrind profiling

    \--threshold, --auto

  - "profiler" profiling (Cygwin)

    - Visual Studio Profiling

    - MISCELLANEOUS TRICKS

  - PERL\_DESTRUCT\_LEVEL

    - Leaked SV spotting: **sv\_mark\_arenas()** and **sv\_sweep\_arenas()**

    - PERL\_MEM\_LOG

    - DDD over gdb

    - C backtrace

    Linux, OS X, get\_c\_backtrace, free\_c\_backtrace, get\_c\_backtrace\_dump, dump\_c\_backtrace

  - Poison

    - Read-only optrees

    - When is a bool not a bool?

    - Finding unsafe truncations

    - The .i Targets

    - AUTHOR

  ### perlpolicy - Various and sundry policies and commitments related to the Perl core

- DESCRIPTION

  - GOVERNANCE

  - Perl 5 Porters

    - MAINTENANCE AND SUPPORT

  - BACKWARD COMPATIBILITY AND DEPRECATION

  - Terminology

    experimental, deprecated, discouraged, removed

- MAINTENANCE BRANCHES

  - Getting changes into a maint branch

    - CONTRIBUTED MODULES

  - A Social Contract about Artistic Control

    - DOCUMENTATION

  - STANDARDS OF CONDUCT

  - CREDITS

  ### perlgov - Perl Rules of Governance

- PREAMBLE

  - Mandate

  - Definitions

  "Core Team", "Steering Council", "Vote Administrator"

  - The Core Team

    - The Steering Council

    - The Vote Administrator

    - Steering Council and Core Team Members

  - Steering Council Members

  Graham Knop, Paul Evans, Philippe Bruhat

- Core Team Members

  - Active Members

    Chad Granum \<exodist7@gmail.com\>, Chris 'BinGOs' Williams \<chris@bingosnet.co.uk\>, Craig Berry \<craigberry@mac.com\>, Dagfinn Ilmari Mannsåker \<ilmari@ilmari.org\>, David Mitchell \<davem@iabyn.com\>, Graham Knop \<haarg@haarg.org\>, H. Merijn Brand \<perl5@tux.freedom.nl\>, Hugo van der Sanden \<hv@crypt.org\>, James E Keenan \<jkeenan@cpan.org\>, Karen Etheridge \<ether@cpan.org\>, Karl Williamson \<khw@cpan.org\>, Leon Timmermans \<fawaka@gmail.com\>, Matthew Horsfall \<wolfsage@gmail.com\>, Max Maischein \<cpan@corion.net\>, Neil Bowers \<neilb@neilb.org\>, Nicholas Clark \<nick@ccl4.org\>, Nicolas R \<atoomic@cpan.org\>, Paul "LeoNerd" Evans \<leonerd@leonerd.org.uk\>, Philippe "BooK" Bruhat \<book@cpan.org\>, Ricardo Signes \<rjbs@semiotic.systems\>, Steve Hay \<steve.m.hay@googlemail.com\>, Stuart Mackintosh \<stuart@perlfoundation.org\>, Todd Rinaldo \<toddr@cpanel.net\>, Tony Cook \<tony@develop-help.com\>, Yves Orton \<demerphq@gmail.com\>

  - Inactive Members

    Abhijit Menon-Sen \<ams@toroid.org\>, Andy Dougherty \<doughera@lafayette.edu\>, David Golden \<xdg@xdg.me\>, Jan Dubois \<jan@jandubois.com\>, Jason McIntosh \<jmac@jmac.org\>, Jesse Vincent \<jesse@fsck.com\>

### perlgit - Detailed information about git and the Perl repository

- DESCRIPTION

  - CLONING THE REPOSITORY

  - WORKING WITH THE REPOSITORY

  - Finding out your status

    - Patch workflow

    - A note on derived files

    - Cleaning a working directory

    - Bisecting

    - Topic branches and rewriting history

    - Grafts

    - WRITE ACCESS TO THE GIT REPOSITORY

  - Working with Github pull requests

    - Accepting a patch

    - Committing to blead

    - On merging and rebasing

    - Committing to maintenance versions

    - Using a smoke-me branch to test changes

    ### perlhist - the Perl history records

- DESCRIPTION

  - INTRODUCTION

  - THE KEEPERS OF THE PUMPKIN

  - PUMPKIN?

    - THE RECORDS

  - SELECTED RELEASE SIZES

    - SELECTED PATCH SIZES

    - THE KEEPERS OF THE RECORDS

  ### perldelta - what is new for perl v5.40.1

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Configuration and Compilation

  - Testing

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5401delta, perldelta - what is new for perl v5.40.1

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Configuration and Compilation

  - Testing

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5400delta - what is new for perl v5.40.0

- DESCRIPTION

  - Core Enhancements

  - New "\_\_CLASS\_\_" Keyword

    - ":reader" attribute for field variables

    - Permit a space in "-M" command-line option

    - Restrictions to "use VERSION" declarations

    - New "builtin::inf" and "builtin::nan" functions (experimental)

    - New "^^" logical xor operator

    - "try"/"catch" feature is no longer experimental

    - "for" iterating over multiple values at a time is no longer experimental

    - "builtin" module is no longer experimental

    - The ":5.40" feature bundle adds "try"

    - "use v5.40;" imports builtin functions

    - Security

  - CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property

    - CVE-2023-47039 - Perl for Windows binary hijacking vulnerability

    - Incompatible Changes

  - reset EXPR now calls set-magic on scalars

    - Calling the import method of an unknown package produces a warning

    - "return" no longer allows an indirect object

    - Class barewords no longer resolved as file handles in method calls under "no feature "bareword\_filehandles""

    - Deprecations

  - Performance Enhancements

  - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Configuration and Compilation

  - Testing

  - Platform Support

  - New Platforms

    Serenity OS

  - Platform-Specific Notes

    Windows, Linux, MacOS/Darwin, VMS, Oracle Developer Studio (Solaris, Oracle Linux)

- Internal Changes

  - Selected Bug Fixes

  - Known Problems

  perlivp is missing streamzip on Windows

- Errata From Previous Releases

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5382delta - what is new for perl v5.38.2

- DESCRIPTION

  - Security

  - CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property

    - CVE-2023-47039 - Perl for Windows binary hijacking vulnerability

    - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5381delta - what is new for perl v5.38.1

- DESCRIPTION

  - Security

  - CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property

    - CVE-2023-47039 - Perl for Windows binary hijacking vulnerability

    - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5380delta - what is new for perl v5.38.0

- DESCRIPTION

  - Core Enhancements

  - New "class" Feature

    - Unicode 15.0 is supported

    - Deprecation warnings now have specific subcategories

    - %{^HOOK} API introduced

    - PERL\_RAND\_SEED

    - Defined-or and logical-or assignment default expressions in signatures

    - @INC Hook Enhancements and $INC and INCDIR

    - Forbidden control flow out of "defer" or "finally" now detected at compile-time

    - Optimistic Eval in Patterns

    - REG\_INF has been raised from 65,536 to 2,147,483,647

    - New API functions optimize\_optree and finalize\_optree

    - Some "goto"s are now permitted in "defer" and "finally" blocks

    - New regexp variable ${^LAST\_SUCCESSFUL\_PATTERN}

    - Locale category LC\_NAME now supported on participating platforms

    - Incompatible Changes

  - **readline()** no longer clears the stream error and eof flags

    - "INIT" blocks no longer run after an exit() in "BEGIN"

    - Syntax errors no longer produce "phantom error messages"

    - utf8::upgrade()

    - Changes to "thread-safe" locales

    - Deprecations

  - Use of "'" as a package name separator is deprecated

    - Switch and Smart Match operator

    - Performance Enhancements

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Configuration and Compilation

  - Testing

  - Platform Support

  - Discontinued Platforms

    Ultrix

  - Platform-Specific Notes

    DragonflyBSD, FreeBSD, Solaris, Synology, Windows

- Internal Changes

  `"newSVbool(const bool bool_val)"`, `newSV_true()`, `newSV_false()`, `"sv_set_true(SV` `*sv)"`, `"sv_set_false(SV` `*sv)"`, `"sv_set_bool(SV *sv, const bool` `bool_val)"`, `SvIandPOK(sv)`, `SvIandPOK_off(sv)`, `"SvIandPOK_on"`, I32df -- Like `%d`, U32of -- Like `%o`, U32uf -- Like `%u`, U32xf -- Like `%x`, U32Xf -- Like `%X`

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5363delta - what is new for perl v5.36.3

- DESCRIPTION

  - Security

  - CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property

    - CVE-2023-47039 - Perl for Windows binary hijacking vulnerability

    - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5362delta - what is new for perl v5.36.2

- DESCRIPTION

  - Security

  - CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property

    - CVE-2023-47039 - Perl for Windows binary hijacking vulnerability

    - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5361delta - what is new for perl v5.36.1

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Configuration and Compilation

  - Testing

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5360delta - what is new for perl v5.36.0

- DESCRIPTION

  - Core Enhancements

  - "use v5.36"

    - \-g command-line flag

    - Unicode 14.0 is supported

    - regex sets are no longer considered experimental

    - Variable length lookbehind is mostly no longer considered experimental

    - SIGFPE no longer deferred

    - Stable boolean tracking

    - iterating over multiple values at a time (experimental)

    - builtin functions (experimental)

    builtin::trim, builtin::indexed, builtin::true, builtin::false, builtin::is\_bool, builtin::weaken, builtin::unweaken, builtin::is\_weak, builtin::blessed, builtin::refaddr, builtin::reftype, builtin::ceil, builtin::floor

  - "defer" blocks (experimental)

    - try/catch can now have a "finally" block (experimental)

    - non-ASCII delimiters for quote-like operators (experimental)

    - @\_ is now experimental within signatured subs

    - Incompatible Changes

  - A physically empty sort is now a compile-time error

    - Deprecations

  - "use VERSION" (where VERSION is below v5.11) after "use v5.11" is deprecated

    - Performance Enhancements

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Configuration and Compilation

  - Testing

  - Platform Support

  - Windows

    - VMS

    `"keys %ENV"` on VMS returns consistent results

  - Discontinued Platforms

    AT&T UWIN, DOS/DJGPP, NetWare

  - Platform-Specific Notes

    z/OS

- Internal Changes

  - Selected Bug Fixes

  - Errata From Previous Releases

  - Obituaries

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5343delta - what is new for perl v5.34.3

- DESCRIPTION

  - Security

  - CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property

    - CVE-2023-47039 - Perl for Windows binary hijacking vulnerability

    - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5342delta - what is new for perl v5.34.2

- DESCRIPTION

  - Security

  - CVE-2023-47038 - Write past buffer end via illegal user-defined Unicode property

    - CVE-2023-47039 - Perl for Windows binary hijacking vulnerability

    - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5341delta - what is new for perl v5.34.1

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Testing

  - Platform-Specific Notes

    Windows

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5340delta - what is new for perl v5.34.0

- DESCRIPTION

  - Core Enhancements

  - Experimental Try/Catch Syntax

    - "qr/{,n}/" is now accepted

    - Blanks freely allowed within but adjacent to curly braces

  - New octal syntax "0o*ddddd*"

  - Performance Enhancements

  - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Utility Changes

  - perl5db.pl (the debugger)

    New option: `"HistItemMinLength"`, Fix to `"i"` and `"l"` commands

- Configuration and Compilation

  stadtx hash support has been removed, Configure, `"-Dusedefaultstrict"`

- Testing

  - Platform Support

  - New Platforms

    9front

  - Updated Platforms

    Plan9, MacOS (Darwin)

  - Discontinued Platforms

    Symbian

  - Platform-Specific Notes

    DragonFlyBSD, Mac OS X, Windows, z/OS

- Internal Changes

  - Selected Bug Fixes

  pack/unpack format 'D' now works on all systems that could support it

- Known Problems

  - Errata From Previous Releases

  - Obituary

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5321delta - what is new for perl v5.32.1

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - Changes to Existing Diagnostics

    - Configuration and Compilation

  - Testing

  - Platform Support

  - Platform-Specific Notes

    MacOS (Darwin), Minix

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5320delta - what is new for perl v5.32.0

- DESCRIPTION

  - Core Enhancements

  - The isa Operator

    - Unicode 13.0 is supported

    - Chained comparisons capability

    - New Unicode properties "Identifier\_Status" and "Identifier\_Type" supported

    - It is now possible to write "qr/\\p{Name=...}/", or "qr!\\p{na=/(SMILING\|GRINNING) FACE/}!"

    - Improvement of POSIX::mblen(), "mbtowc", and "wctomb"

    - Alpha assertions are no longer experimental

    - Script runs are no longer experimental

    - Feature checks are now faster

    - Perl is now developed on GitHub

    - Compiled patterns can now be dumped before optimization

    - Security

  - \[CVE-2020-10543\] Buffer overflow caused by a crafted regular expression

    - \[CVE-2020-10878\] Integer overflow via malformed bytecode produced by a crafted regular expression

    - \[CVE-2020-12723\] Buffer overflow caused by a crafted regular expression

    - Additional Note

    - Incompatible Changes

  - Certain pattern matching features are now prohibited in compiling Unicode property value wildcard subpatterns

    - Unused functions "POSIX::mbstowcs" and "POSIX::wcstombs" are removed

    - A bug fix for "(?\[...\])" may have caused some patterns to no longer compile

    - "\\p{*user-defined*}" properties now always override official Unicode ones

    - Modifiable variables are no longer permitted in constants

    - Use of "vec" on strings with code points above 0xFF is forbidden

    - Use of code points over 0xFF in string bitwise operators

    - Sys::Hostname::hostname() does not accept arguments

    - Plain "0" string now treated as a number for range operator

    - "\\K" now disallowed in look-ahead and look-behind assertions

    - Performance Enhancements

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    `"caller"`, `"__FILE__"`, `"__LINE__"`, `"return"`, `"open"`

- Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Utility Changes

  - perlbug

    The bug tracker homepage URL now points to GitHub

  - streamzip

    - Configuration and Compilation

  - *Configure*

    - Testing

  - Platform Support

  - Discontinued Platforms

    Windows CE

  - Platform-Specific Notes

    Linux, NetBSD 8.0, Windows, Solaris, VMS, z/OS

- Internal Changes

  - Selected Bug Fixes

  - Obituary

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5303delta - what is new for perl v5.30.3

- DESCRIPTION

  - Security

  - \[CVE-2020-10543\] Buffer overflow caused by a crafted regular expression

    - \[CVE-2020-10878\] Integer overflow via malformed bytecode produced by a crafted regular expression

    - \[CVE-2020-12723\] Buffer overflow caused by a crafted regular expression

    - Additional Note

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Testing

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5302delta - what is new for perl v5.30.2

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Configuration and Compilation

  - Testing

  - Platform Support

  - Platform-Specific Notes

    Windows

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5301delta - what is new for perl v5.30.1

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Configuration and Compilation

  - Testing

  - Platform Support

  - Platform-Specific Notes

    Win32

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5300delta - what is new for perl v5.30.0

- DESCRIPTION

  - Notice

  - Core Enhancements

  - Limited variable length lookbehind in regular expression pattern matching is now experimentally supported

    - The upper limit "n" specifiable in a regular expression quantifier of the form "{m,n}" has been doubled to 65534

    - Unicode 12.1 is supported

    - Wildcards in Unicode property value specifications are now partially supported

    - qr'\\N{name}' is now supported

    - Turkic UTF-8 locales are now seamlessly supported

    - It is now possible to compile perl to always use thread-safe locale operations

    - Eliminate opASSIGN macro usage from core

    - "-Drv" now means something on "-DDEBUGGING" builds

    - Incompatible Changes

  - Assigning non-zero to $\[ is fatal

    - Delimiters must now be graphemes

    - Some formerly deprecated uses of an unescaped left brace "{" in regular expression patterns are now illegal

    - Previously deprecated **sysread()**/**syswrite()** on :utf8 handles is now fatal

    - **my()** in false conditional prohibited

    - Fatalize $\* and $#

    - Fatalize unqualified use of **dump()**

    - Remove **File::Glob::glob()**

    - pack() no longer can return malformed UTF-8

    - Any set of digits in the Common script are legal in a script run of another script

    - JSON::PP enables allow\_nonref by default

    - Deprecations

  - In XS code, use of various macros dealing with UTF-8

    - Performance Enhancements

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Diagnostics

  - Changes to Existing Diagnostics

    - Utility Changes

  - xsubpp

    - Configuration and Compilation

  - Testing

  - Platform Support

  - Platform-Specific Notes

    HP-UX 11.11, Mac OS X, Minix3, Cygwin, Win32 Mingw, Windows

- Internal Changes

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5283delta - what is new for perl v5.28.3

- DESCRIPTION

  - Security

  - \[CVE-2020-10543\] Buffer overflow caused by a crafted regular expression

    - \[CVE-2020-10878\] Integer overflow via malformed bytecode produced by a crafted regular expression

    - \[CVE-2020-12723\] Buffer overflow caused by a crafted regular expression

    - Additional Note

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Testing

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5282delta - what is new for perl v5.28.2

- DESCRIPTION

  - Incompatible Changes

  - Any set of digits in the Common script are legal in a script run of another script

    - Modules and Pragmata

  - Updated Modules and Pragmata

    - Platform Support

  - Platform-Specific Notes

    Windows, Mac OS X

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5281delta - what is new for perl v5.28.1

- DESCRIPTION

  - Security

  - \[CVE-2018-18311\] Integer overflow leading to buffer overflow and segmentation fault

    - \[CVE-2018-18312\] Heap-buffer-overflow write in S\_regatom (regcomp.c)

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5280delta - what is new for perl v5.28.0

- DESCRIPTION

  - Core Enhancements

  - Unicode 10.0 is supported

    - "delete" on key/value hash slices

    - Experimentally, there are now alphabetic synonyms for some regular expression assertions

    - Mixed Unicode scripts are now detectable

    - In-place editing with "perl -i" is now safer

    - Initialisation of aggregate state variables

    - Full-size inode numbers

    - The "sprintf" %j format size modifier is now available with pre-C99 compilers

    - Close-on-exec flag set atomically

    - String- and number-specific bitwise ops are no longer experimental

    - Locales are now thread-safe on systems that support them

    - New read-only predefined variable "${^SAFE\_LOCALES}"

    - Security

  - \[CVE-2017-12837\] Heap buffer overflow in regular expression compiler

    - \[CVE-2017-12883\] Buffer over-read in regular expression parser

    - \[CVE-2017-12814\] $ENV{$key} stack buffer overflow on Windows

    - Default Hash Function Change

    - Incompatible Changes

  - Subroutine attribute and signature order

    - Comma-less variable lists in formats are no longer allowed

    - The ":locked" and ":unique" attributes have been removed

    - "\\N{}" with nothing between the braces is now illegal

    - Opening the same symbol as both a file and directory handle is no longer allowed

    - Use of bare "\<\<" to mean "\<\<""" is no longer allowed

    - Setting $/ to a reference to a non-positive integer no longer allowed

    - Unicode code points with values exceeding "IV\_MAX" are now fatal

    - The "B::OP::terse" method has been removed

    - Use of inherited AUTOLOAD for non-methods is no longer allowed

    - Use of strings with code points over 0xFF is not allowed for bitwise string operators

    - Setting "${^ENCODING}" to a defined value is now illegal

    - Backslash no longer escapes colon in PATH for the "-S" switch

    - the -DH (DEBUG\_H) misfeature has been removed

    - Yada-yada is now strictly a statement

    - Sort algorithm can no longer be specified

    - Over-radix digits in floating point literals

    - Return type of unpackstring()

    - Deprecations

  - Use of "vec" on strings with code points above 0xFF is deprecated

    - Some uses of unescaped "{" in regexes are no longer fatal

    - Use of unescaped "{" immediately after a "(" in regular expression patterns is deprecated

    - Assignment to $\[ will be fatal in Perl 5.30

    - **hostname()** won't accept arguments in Perl 5.32

    - Module removals

    B::Debug, Locale::Codes and its associated Country, Currency and Language modules

- Performance Enhancements

  - Modules and Pragmata

  - Removal of use vars

    - Use of DynaLoader changed to XSLoader in many modules

    - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    "Variable length lookbehind not implemented in regex m/%s/" in perldiag, "Use of state `$_` is experimental" in perldiag

- Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Utility Changes

  - perlbug

    - Configuration and Compilation

  C89 requirement, New probes, HAS\_BUILTIN\_ADD\_OVERFLOW, HAS\_BUILTIN\_MUL\_OVERFLOW, HAS\_BUILTIN\_SUB\_OVERFLOW, HAS\_THREAD\_SAFE\_NL\_LANGINFO\_L, HAS\_LOCALECONV\_L, HAS\_MBRLEN, HAS\_MBRTOWC, HAS\_MEMRCHR, HAS\_NANOSLEEP, HAS\_STRNLEN, HAS\_STRTOLD\_L, I\_WCHAR

- Testing

  - Packaging

  - Platform Support

  - Discontinued Platforms

    PowerUX / Power MAX OS

  - Platform-Specific Notes

    CentOS, Cygwin, Darwin, FreeBSD, VMS, Windows

- Internal Changes

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5263delta - what is new for perl v5.26.3

- DESCRIPTION

  - Security

  - \[CVE-2018-12015\] Directory traversal in module Archive::Tar

    - \[CVE-2018-18311\] Integer overflow leading to buffer overflow and segmentation fault

    - \[CVE-2018-18312\] Heap-buffer-overflow write in S\_regatom (regcomp.c)

    - \[CVE-2018-18313\] Heap-buffer-overflow read in S\_grok\_bslash\_N (regcomp.c)

    - \[CVE-2018-18314\] Heap-buffer-overflow write in S\_regatom (regcomp.c)

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5262delta - what is new for perl v5.26.2

- DESCRIPTION

  - Security

  - \[CVE-2018-6797\] heap-buffer-overflow (WRITE of size 1) in S\_regatom (regcomp.c)

    - \[CVE-2018-6798\] Heap-buffer-overflow in Perl\_\_byte\_dump\_string (utf8.c)

    - \[CVE-2018-6913\] heap-buffer-overflow in S\_pack\_rec

    - Assertion failure in Perl\_\_core\_swash\_init (utf8.c)

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Platform Support

  - Platform-Specific Notes

    Windows

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5261delta - what is new for perl v5.26.1

- DESCRIPTION

  - Security

  - \[CVE-2017-12837\] Heap buffer overflow in regular expression compiler

    - \[CVE-2017-12883\] Buffer over-read in regular expression parser

    - \[CVE-2017-12814\] $ENV{$key} stack buffer overflow on Windows

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Platform Support

  - Platform-Specific Notes

    FreeBSD, Windows

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5260delta - what is new for perl v5.26.0

- DESCRIPTION

  - Notice

  `"."` no longer in `@INC`, `"do"` may now warn, In regular expression patterns, a literal left brace `"{"` should be escaped

- Core Enhancements

  - Lexical subroutines are no longer experimental

    - Indented Here-documents

    - New regular expression modifier "/xx"

    - "@{^CAPTURE}", "%{^CAPTURE}", and "%{^CAPTURE\_ALL}"

    - Declaring a reference to a variable

    - Unicode 9.0 is now supported

    - Use of "\\p{*script*}" uses the improved Script\_Extensions property

    - Perl can now do default collation in UTF-8 locales on platforms that support it

    - Better locale collation of strings containing embedded "NUL" characters

    - "CORE" subroutines for hash and array functions callable via reference

    - New Hash Function For 64-bit Builds

    - Security

  - Removal of the current directory (".") from @INC

    *Configure -Udefault\_inc\_excludes\_dot*, `"PERL_USE_UNSAFE_INC"`, A new deprecation warning issued by `"do"`, Script authors, Installing and using CPAN modules, Module Authors

  - Escaped colons and relative paths in PATH

    - New "-Di" switch is now required for PerlIO debugging output

    - Incompatible Changes

  - Unescaped literal "{" characters in regular expression patterns are no longer permissible

    - scalar(%hash) return signature changed

    - "keys" returned from an lvalue subroutine

    - The "${^ENCODING}" facility has been removed

    - POSIX::tmpnam() has been removed

    - require ::Foo::Bar is now illegal

    - Literal control character variable names are no longer permissible

    - "NBSP" is no longer permissible in "\\N{...}"

    - Deprecations

  - String delimiters that aren't stand-alone graphemes are now deprecated

    - "\\c*X*" that maps to a printable is no longer deprecated

    - Performance Enhancements

  New Faster Hash Function on 64 bit builds, readline is faster

- Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Utility Changes

  - *c2ph* and *pstruct*

    - *Porting/pod\_lib.pl*

    - *Porting/sync-with-cpan*

    - *perf/benchmarks*

    - *Porting/checkAUTHORS.pl*

    - *t/porting/regen.t*

    - *utils/h2xs.PL*

    - perlbug

    - Configuration and Compilation

  - Testing

  - Platform Support

  - New Platforms

    NetBSD/VAX

  - Platform-Specific Notes

    Darwin, EBCDIC, HP-UX, Hurd, VAX, VMS, Windows, Linux, OpenBSD 6, FreeBSD, DragonFly BSD

- Internal Changes

  - Selected Bug Fixes

  - Known Problems

  - Errata From Previous Releases

  - Obituary

  - Acknowledgements

  - Reporting Bugs

  - Give Thanks

  - SEE ALSO

  ### perl5244delta - what is new for perl v5.24.4

- DESCRIPTION

  - Security

  - \[CVE-2018-6797\] heap-buffer-overflow (WRITE of size 1) in S\_regatom (regcomp.c)

    - \[CVE-2018-6798\] Heap-buffer-overflow in Perl\_\_byte\_dump\_string (utf8.c)

    - \[CVE-2018-6913\] heap-buffer-overflow in S\_pack\_rec

    - Assertion failure in Perl\_\_core\_swash\_init (utf8.c)

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5243delta - what is new for perl v5.24.3

- DESCRIPTION

  - Security

  - \[CVE-2017-12837\] Heap buffer overflow in regular expression compiler

    - \[CVE-2017-12883\] Buffer over-read in regular expression parser

    - \[CVE-2017-12814\] $ENV{$key} stack buffer overflow on Windows

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Configuration and Compilation

  - Platform Support

  - Platform-Specific Notes

    VMS, Windows

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5242delta - what is new for perl v5.24.2

- DESCRIPTION

  - Security

  - Improved handling of '.' in @INC in base.pm

    - "Escaped" colons and relative paths in PATH

    - Modules and Pragmata

  - Updated Modules and Pragmata

    - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5241delta - what is new for perl v5.24.1

- DESCRIPTION

  - Security

  - **-Di** switch is now required for PerlIO debugging output

    - Core modules and tools no longer search *"."* for optional modules

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Testing

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5240delta - what is new for perl v5.24.0

- DESCRIPTION

  - Core Enhancements

  - Postfix dereferencing is no longer experimental

    - Unicode 8.0 is now supported

    - perl will now croak when closing an in-place output file fails

    - New "\\b{lb}" boundary in regular expressions

    - "qr/(?\[ \])/" now works in UTF-8 locales

    - Integer shift ("\<\<" and "\>\>") now more explicitly defined

    - printf and sprintf now allow reordered precision arguments

    - More fields provided to "sigaction" callback with "SA\_SIGINFO"

    - Hashbang redirection to Perl 6

    - Security

  - Set proper umask before calling [mkstemp(3)](/mkstemp/3.md)

    - Fix out of boundary access in Win32 path handling

    - Fix loss of taint in canonpath

    - Avoid accessing uninitialized memory in win32 crypt()

    - Remove duplicate environment variables from "environ"

    - Incompatible Changes

  - The "autoderef" feature has been removed

    - Lexical $\_ has been removed

    - "qr/\\b{wb}/" is now tailored to Perl expectations

    - Regular expression compilation errors

    - "qr/\\N{}/" now disallowed under "use re "strict""

    - Nested declarations are now disallowed

    - The "/\\C/" character class has been removed

    - chdir('') no longer chdirs home

    - ASCII characters in variable names must now be all visible

    - An off by one issue in $Carp::MaxArgNums has been fixed

    - Only blanks and tabs are now allowed within "\[...\]" within "(?\[...\])"

    - Deprecations

  - Using code points above the platform's "IV\_MAX" is now deprecated

    - Doing bitwise operations on strings containing code points above 0xFF is deprecated

    - sysread(), syswrite(), recv() and send() are deprecated on :utf8 handles

    - Performance Enhancements

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Configuration and Compilation

  - Testing

  - Platform Support

  - Platform-Specific Notes

    AmigaOS, Cygwin, EBCDIC, UTF-EBCDIC extended, EBCDIC `cmp()` and `sort()` fixed for UTF-EBCDIC strings, EBCDIC `"tr///"` and `"y///"` fixed for `"\N{}"`, and `"use utf8"` ranges, FreeBSD, IRIX, MacOS X, Solaris, Tru64, VMS, Win32, ppc64el, floating point

- Internal Changes

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5224delta - what is new for perl v5.22.4

- DESCRIPTION

  - Security

  - Improved handling of '.' in @INC in base.pm

    - "Escaped" colons and relative paths in PATH

    - Modules and Pragmata

  - Updated Modules and Pragmata

    - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5223delta - what is new for perl v5.22.3

- DESCRIPTION

  - Security

  - **-Di** switch is now required for PerlIO debugging output

    - Core modules and tools no longer search *"."* for optional modules

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Testing

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5222delta - what is new for perl v5.22.2

- DESCRIPTION

  - Security

  - Fix out of boundary access in Win32 path handling

    - Fix loss of taint in canonpath()

    - Set proper umask before calling [mkstemp(3)](/mkstemp/3.md)

    - Avoid accessing uninitialized memory in Win32 crypt()

    - Remove duplicate environment variables from "environ"

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Configuration and Compilation

  - Platform Support

  - Platform-Specific Notes

    Darwin, OS X/Darwin, ppc64el, Tru64

- Internal Changes

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5221delta - what is new for perl v5.22.1

- DESCRIPTION

  - Incompatible Changes

  - Bounds Checking Constructs

    - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Diagnostics

  - Changes to Existing Diagnostics

    - Configuration and Compilation

  - Platform Support

  - Platform-Specific Notes

    IRIX

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5220delta - what is new for perl v5.22.0

- DESCRIPTION

  - Core Enhancements

  - New bitwise operators

    - New double-diamond operator

    - New "\\b" boundaries in regular expressions

    - Non-Capturing Regular Expression Flag

    - "use re 'strict'"

    - Unicode 7.0 (with correction) is now supported

    - "use locale" can restrict which locale categories are affected

    - Perl now supports POSIX 2008 locale currency additions

    - Better heuristics on older platforms for determining locale UTF-8ness

    - Aliasing via reference

    - "prototype" with no arguments

    - New ":const" subroutine attribute

    - "fileno" now works on directory handles

    - List form of pipe open implemented for Win32

    - Assignment to list repetition

    - Infinity and NaN (not-a-number) handling improved

    - Floating point parsing has been improved

    - Packing infinity or not-a-number into a character is now fatal

    - Experimental C Backtrace API

    - Security

  - Perl is now compiled with "-fstack-protector-strong" if available

    - The Safe module could allow outside packages to be replaced

    - Perl is now always compiled with "-D\_FORTIFY\_SOURCE=2" if available

    - Incompatible Changes

  - Subroutine signatures moved before attributes

    - "&" and "\\&" prototypes accepts only subs

    - "use encoding" is now lexical

    - List slices returning empty lists

    - "\\N{}" with a sequence of multiple spaces is now a fatal error

    - "use UNIVERSAL '...'" is now a fatal error

    - In double-quotish "\\c*X*", *X* must now be a printable ASCII character

    - Splitting the tokens "(?" and "(\*" in regular expressions is now a fatal compilation error

    - "qr/foo/x" now ignores all Unicode pattern white space

    - Comment lines within "(?\[ \])" are now ended only by a "\\n"

    - "(?\[...\])" operators now follow standard Perl precedence

    - Omitting "%" and "@" on hash and array names is no longer permitted

    - "$!" text is now in English outside the scope of "use locale"

    - "$!" text will be returned in UTF-8 when appropriate

    - Support for "?PATTERN?" without explicit operator has been removed

    - defined(@array) and defined(%hash) are now fatal errors

    - Using a hash or an array as a reference are now fatal errors

    - Changes to the "\*" prototype

    - Deprecations

  - Setting "${^ENCODING}" to anything but "undef"

    - Use of non-graphic characters in single-character variable names

    - Inlining of "sub () { $var }" with observable side-effects

    - Use of multiple "/x" regexp modifiers

    - Using a NO-BREAK space in a character alias for "\\N{...}" is now deprecated

    - A literal "{" should now be escaped in a pattern

    - Making all warnings fatal is discouraged

    - Performance Enhancements

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Diagnostic Removals

    - Utility Changes

  - *find2perl*, *s2p* and *a2p* removal

    - h2ph

    - encguess

    - Configuration and Compilation

  - Testing

  - Platform Support

  - Regained Platforms

    IRIX and Tru64 platforms are working again, z/OS running EBCDIC Code Page 1047

  - Discontinued Platforms

    NeXTSTEP/OPENSTEP

  - Platform-Specific Notes

    EBCDIC, HP-UX, Android, VMS, Win32, OpenBSD, Solaris

- Internal Changes

  - Selected Bug Fixes

  - Known Problems

  - Obituary

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5203delta - what is new for perl v5.20.3

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Utility Changes

  - h2ph

    - Testing

  - Platform Support

  - Platform-Specific Notes

    Win32

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5202delta - what is new for perl v5.20.2

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - Changes to Existing Diagnostics

    - Testing

  - Platform Support

  - Regained Platforms

    - Selected Bug Fixes

  - Known Problems

  - Errata From Previous Releases

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5201delta - what is new for perl v5.20.1

- DESCRIPTION

  - Incompatible Changes

  - Performance Enhancements

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Diagnostics

  - Changes to Existing Diagnostics

    - Configuration and Compilation

  - Platform Support

  - Platform-Specific Notes

    Android, OpenBSD, Solaris, VMS, Windows

- Internal Changes

  - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5200delta - what is new for perl v5.20.0

- DESCRIPTION

  - Core Enhancements

  - Experimental Subroutine signatures

    - "sub"s now take a "prototype" attribute

    - More consistent prototype parsing

    - "rand" now uses a consistent random number generator

    - New slice syntax

    - Experimental Postfix Dereferencing

    - Unicode 6.3 now supported

    - New "\\p{Unicode}" regular expression pattern property

    - Better 64-bit support

    - "use locale" now works on UTF-8 locales

    - "use locale" now compiles on systems without locale ability

    - More locale initialization fallback options

    - "-DL" runtime option now added for tracing locale setting

    - **-F** now implies **-a** and **-a** implies **-n**

    - $a and $b warnings exemption

    - Security

  - Avoid possible read of **free()**d memory during parsing

    - Incompatible Changes

  - "do" can no longer be used to call subroutines

    - Quote-like escape changes

    - Tainting happens under more circumstances; now conforms to documentation

    - "\\p{}", "\\P{}" matching has changed for non-Unicode code points.

    - "\\p{All}" has been expanded to match all possible code points

    - Data::Dumper's output may change

    - Locale decimal point character no longer leaks outside of "use locale" scope

    - Assignments of Windows sockets error codes to $! now prefer *errno.h* values over **WSAGetLastError()** values

    - Functions "PerlIO\_vsprintf" and "PerlIO\_sprintf" have been removed

    - Deprecations

  - The "/\\C/" character class

    - Literal control characters in variable names

    - References to non-integers and non-positive integers in $/

    - Character matching routines in POSIX

    - Interpreter-based threads are now *discouraged*

    - Module removals

    CGI and its associated CGI:: packages, inc::latest, Package::Constants, Module::Build and its associated Module::Build:: packages

  - Utility removals

    find2perl, s2p, a2p

- Performance Enhancements

  - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Utility Changes

  - Configuration and Compilation

  - Testing

  - Platform Support

  - New Platforms

    Android, Bitrig, FreeMiNT, Synology

  - Discontinued Platforms

    `"sfio"`, AT&T 3b1, DG/UX, EBCDIC

  - Platform-Specific Notes

    Cygwin, GNU/Hurd, Linux, Mac OS, MidnightBSD, Mixed-endian platforms, VMS, Win32, WinCE

- Internal Changes

  - Selected Bug Fixes

  - Regular Expressions

    - Perl 5 Debugger and -d

    - Lexical Subroutines

    - Everything Else

    - Known Problems

  - Obituary

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5184delta - what is new for perl v5.18.4

- DESCRIPTION

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Platform Support

  - Platform-Specific Notes

    Win32

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5182delta - what is new for perl v5.18.2

- DESCRIPTION

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5181delta - what is new for perl v5.18.1

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Platform Support

  - Platform-Specific Notes

    AIX, MidnightBSD

- Selected Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5180delta - what is new for perl v5.18.0

- DESCRIPTION

  - Core Enhancements

  - New mechanism for experimental features

    - Hash overhaul

    - Upgrade to Unicode 6.2

    - Character name aliases may now include non-Latin1-range characters

    - New DTrace probes

    - "${^LAST\_FH}"

    - Regular Expression Set Operations

    - Lexical subroutines

    - Computed Labels

    - More CORE:: subs

    - "kill" with negative signal names

    - Security

  - See also: hash overhaul

    - "Storable" security warning in documentation

    - "Locale::Maketext" allowed code injection via a malicious template

    - Avoid calling memset with a negative count

    - Incompatible Changes

  - See also: hash overhaul

    - An unknown character name in "\\N{...}" is now a syntax error

    - Formerly deprecated characters in "\\N{}" character name aliases are now errors

    - "\\N{BELL}" now refers to U+1F514 instead of U+0007

    - New Restrictions in Multi-Character Case-Insensitive Matching in Regular Expression Bracketed Character Classes

    - Explicit rules for variable names and identifiers

    - Vertical tabs are now whitespace

    - "/(?{})/" and "/(??{})/" have been heavily reworked

    - Stricter parsing of substitution replacement

    - "given" now aliases the global $\_

    - The smartmatch family of features are now experimental

    - Lexical $\_ is now experimental

    - **readline()** with "$/ = \\N" now reads N characters, not N bytes

    - Overridden "glob" is now passed one argument

    - Here doc parsing

    - Alphanumeric operators must now be separated from the closing delimiter of regular expressions

    - qw(...) can no longer be used as parentheses

    - Interaction of lexical and default warnings

    - "state sub" and "our sub"

    - Defined values stored in environment are forced to byte strings

    - "require" dies for unreadable files

    - "gv\_fetchmeth\_\*" and SUPER

    - "split"'s first argument is more consistently interpreted

    - Deprecations

  - Module removals

    encoding, Archive::Extract, B::Lint, B::Lint::Debug, CPANPLUS and all included `"CPANPLUS::*"` modules, Devel::InnerPackage, Log::Message, Log::Message::Config, Log::Message::Handlers, Log::Message::Item, Log::Message::Simple, Module::Pluggable, Module::Pluggable::Object, Object::Accessor, Pod::LaTeX, Term::UI, Term::UI::History

  - Deprecated Utilities

    cpanp, `"cpanp-run-perl"`, cpan2dist, pod2latex

  - PL\_sv\_objcount

    - Five additional characters should be escaped in patterns with "/x"

    - User-defined charnames with surprising whitespace

    - Various XS-callable functions are now deprecated

    - Certain rare uses of backslashes within regexes are now deprecated

    - Splitting the tokens "(?" and "(\*" in regular expressions

    - Pre-PerlIO IO implementations

    - Future Deprecations

  DG/UX, NeXT

- Performance Enhancements

  - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Documentation

  - Changes to Existing Documentation

    - New Diagnostics

    - Changes to Existing Diagnostics

    - Utility Changes

  - Configuration and Compilation

  - Testing

  - Platform Support

  - Discontinued Platforms

    BeOS, UTS Global, VM/ESA, MPE/IX, EPOC, Rhapsody

  - Platform-Specific Notes

    - Internal Changes

  - Selected Bug Fixes

  - Known Problems

  - Obituary

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5163delta - what is new for perl v5.16.3

- DESCRIPTION

  - Core Enhancements

  - Security

  - CVE-2013-1667: memory exhaustion with arbitrary hash keys

    - wrap-around with IO on long strings

    - memory leak in Encode

    - Incompatible Changes

  - Deprecations

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Known Problems

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5162delta - what is new for perl v5.16.2

- DESCRIPTION

  - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Configuration and Compilation

  configuration should no longer be confused by ls colorization

- Platform Support

  - Platform-Specific Notes

    AIX

- Selected Bug Fixes

  fix /\\h/ equivalence with /\[\\h\]/

- Known Problems

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5161delta - what is new for perl v5.16.1

- DESCRIPTION

  - Security

  - an off-by-two error in Scalar-List-Util has been fixed

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules and Pragmata

    - Configuration and Compilation

  - Platform Support

  - Platform-Specific Notes

    VMS

- Selected Bug Fixes

  - Known Problems

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5160delta - what is new for perl v5.16.0

- DESCRIPTION

  - Notice

  - Core Enhancements

  - "use *VERSION*"

    - "\_\_SUB\_\_"

    - New and Improved Built-ins

    - Unicode Support

    - XS Changes

    - Changes to Special Variables

    - Debugger Changes

    - The "CORE" Namespace

    - Other Changes

    - Security

  - Use is\_utf8\_char\_buf() and not is\_utf8\_char()

    - Malformed UTF-8 input could cause attempts to read beyond the end of the buffer

    - File::Glob::bsd\_glob() memory error with GLOB\_ALTDIRFUNC (CVE-2011-2728)

    - Privileges are now set correctly when assigning to $(

    - Deprecations

  - Don't read the Unicode data base files in *lib/unicore*

    - XS functions is\_utf8\_char(), utf8\_to\_uvchr() and utf8\_to\_uvuni()

    - Future Deprecations

  - Core Modules

    - Platforms with no supporting programmers

    - Other Future Deprecations

    - Incompatible Changes

  - Special blocks called in void context

    - The "overloading" pragma and regexp objects

    - Two XS typemap Entries removed

    - Unicode 6.1 has incompatibilities with Unicode 6.0

    - Borland compiler

    - Certain deprecated Unicode properties are no longer supported by default

    - Dereferencing IO thingies as typeglobs

    - User-defined case-changing operations

    - XSUBs are now 'static'

    - Weakening read-only references

    - Tying scalars that hold typeglobs

    - IPC::Open3 no longer provides xfork(), xclose\_on\_exec() and xpipe\_anon()

    - $$ no longer caches PID

    - $$ and getppid() no longer emulate POSIX semantics under LinuxThreads

    - $\<, $\>, $( and $) are no longer cached

    - Which Non-ASCII characters get quoted by "quotemeta" and "\\Q" has changed

    - Performance Enhancements

  - Modules and Pragmata

  - Deprecated Modules

    Version::Requirements

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Removed Documentation

    - Diagnostics

  - New Diagnostics

    - Removed Errors

    - Changes to Existing Diagnostics

    - Utility Changes

  - Configuration and Compilation

  - Platform Support

  - Platform-Specific Notes

    - Internal Changes

  - Selected Bug Fixes

  - Array and hash

    - C API fixes

    - Compile-time hints

    - Copy-on-write scalars

    - The debugger

    - Dereferencing operators

    - Filehandle, last-accessed

    - Filetests and "stat"

    - Formats

    - "given" and "when"

    - The "glob" operator

    - Lvalue subroutines

    - Overloading

    - Prototypes of built-in keywords

    - Regular expressions

    - Smartmatching

    - The "sort" operator

    - The "substr" operator

    - Support for embedded nulls

    - Threading bugs

    - Tied variables

    - Version objects and vstrings

    - Warnings, redefinition

    - Warnings, "Uninitialized"

    - Weak references

    - Other notable fixes

    - Known Problems

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5144delta - what is new for perl v5.14.4

- DESCRIPTION

  - Core Enhancements

  - Security

  - CVE-2013-1667: memory exhaustion with arbitrary hash keys

    - memory leak in Encode

    - \[perl #111594\] Socket::unpack\_sockaddr\_un heap-buffer-overflow

    - \[perl #111586\] SDBM\_File: fix off-by-one access to global ".dir"

    - off-by-two error in List::Util

    - \[perl #115994\] fix segv in regcomp.**c:S\_join\_exact()**

    - \[perl #115992\] PL\_eval\_start use-after-free

    - wrap-around with IO on long strings

    - Incompatible Changes

  - Deprecations

  - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    Socket, SDBM\_File, List::Util

  - Removed Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - Utility Changes

  - Configuration and Compilation

  - Platform Support

  - New Platforms

    - Discontinued Platforms

    - Platform-Specific Notes

    VMS

- Selected Bug Fixes

  - Known Problems

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5143delta - what is new for perl v5.14.3

- DESCRIPTION

  - Core Enhancements

  - Security

  - "Digest" unsafe use of eval (CVE-2011-3597)

    - Heap buffer overrun in 'x' string repeat operator (CVE-2012-5195)

    - Incompatible Changes

  - Deprecations

  - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Configuration and Compilation

  - Platform Support

  - New Platforms

    - Discontinued Platforms

    - Platform-Specific Notes

    FreeBSD, Solaris and NetBSD, HP-UX, Linux, Mac OS X, GNU/Hurd, NetBSD

- Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5142delta - what is new for perl v5.14.2

- DESCRIPTION

  - Core Enhancements

  - Security

  - File::Glob::bsd\_glob() memory error with GLOB\_ALTDIRFUNC (CVE-2011-2728)

    - "Encode" decode\_xs n-byte heap-overflow (CVE-2011-2939)

    - Incompatible Changes

  - Deprecations

  - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Platform Support

  - New Platforms

    - Discontinued Platforms

    - Platform-Specific Notes

    HP-UX PA-RISC/64 now supports gcc-4.x, Building on OS X 10.7 Lion and Xcode 4 works again

- Bug Fixes

  - Known Problems

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5141delta - what is new for perl v5.14.1

- DESCRIPTION

  - Core Enhancements

  - Security

  - Incompatible Changes

  - Deprecations

  - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragmata

    - Removed Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    - Changes to Existing Diagnostics

    - Utility Changes

  - Configuration and Compilation

  - Testing

  - Platform Support

  - New Platforms

    - Discontinued Platforms

    - Platform-Specific Notes

    - Internal Changes

  - Bug Fixes

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5140delta - what is new for perl v5.14.0

- DESCRIPTION

  - Notice

  - Core Enhancements

  - Unicode

    - Regular Expressions

    - Syntactical Enhancements

    - Exception Handling

    - Other Enhancements

    `"-d:-foo"`, `"-d:-foo=bar"`

  - New C APIs

    - Security

  - User-defined regular expression properties

    - Incompatible Changes

  - Regular Expressions and String Escapes

    - Stashes and Package Variables

    - Changes to Syntax or to Perl Operators

    - Threads and Processes

    - Configuration

    - Deprecations

  - Omitting a space between a regular expression and subsequent word

    - "\\c*X*"

    - "\\b{" and "\\B{"

    - Perl 4-era .pl libraries

    - List assignment to $\[

    - Use of qw(...) as parentheses

    - "\\N{BELL}"

    - "?PATTERN?"

    - Tie functions on scalars holding typeglobs

    - User-defined case-mapping

    - Deprecated modules

    Devel::DProf

- Performance Enhancements

  - "Safe signals" optimisation

    - Optimisation of **shift()** and **pop()** calls without arguments

    - Optimisation of regexp engine string comparison work

    - Regular expression compilation speed-up

    - String appending is 100 times faster

    - Eliminate "PL\_\*" accessor functions under ithreads

    - Freeing weak references

    - Lexical array and hash assignments

    - @\_ uses less memory

    - Size optimisations to SV and HV structures

    - Memory consumption improvements to Exporter

    - Memory savings for weak references

    - "%+" and "%-" use less memory

    - Multiple small improvements to threads

    - Adjacent pairs of nextstate opcodes are now optimized away

    - Modules and Pragmata

  - New Modules and Pragmata

    - Updated Modules and Pragma

    much less configuration dialog hassle, support for *META/MYMETA.json*, support for local::lib, support for HTTP::Tiny to reduce the dependency on FTP sites, automatic mirror selection, iron out all known bugs in configure\_requires, support for distributions compressed with [**bzip2**(1)](/bzip2/1.md), allow *Foo/Bar.pm* on the command line to mean `"Foo::Bar"`, **charinfo()**, **charscript()**, **charblock()**

  - Removed Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Diagnostics

  - New Diagnostics

    Closure prototype called, Insecure user-defined property `%s`, panic: gp\_free failed to free glob pointer - something is repeatedly re-creating entries, Parsing code internal error (%s), refcnt: fd `%d`%s, Regexp modifier "/%c" may not appear twice, Regexp modifiers "/%c" and "/%c" are mutually exclusive, Using !~ with `%s` doesn't make sense, "\\b{" is deprecated; use "\\b\\{" instead, "\\B{" is deprecated; use "\\B\\{" instead, Operation "%s" returns its argument for .., Use of qw(...) as parentheses is deprecated

  - Changes to Existing Diagnostics

    - Utility Changes

  - Configuration and Compilation

  - Platform Support

  - New Platforms

    AIX

  - Discontinued Platforms

    Apollo DomainOS, MacOS Classic

  - Platform-Specific Notes

    - Internal Changes

  - New APIs

    - C API Changes

    - Deprecated C APIs

    `"Perl_ptr_table_clear"`, `"sv_compile_2op"`, `"find_rundefsvoffset"`, `"CALL_FPTR"` and `"CPERLscope"`

  - Other Internal Changes

    - Selected Bug Fixes

  - I/O

    - Regular Expression Bug Fixes

    - Syntax/Parsing Bugs

    - Stashes, Globs and Method Lookup

    Aliasing packages by assigning to globs \[perl #77358\], Deleting packages by deleting their containing stash elements, Undefining the glob containing a package (`"undef *Foo::"`), Undefining an ISA glob (`"undef *Foo::ISA"`), Deleting an ISA stash element (`"delete $Foo::{ISA}"`), Sharing `@ISA` arrays between classes (via `"*Foo::ISA = \@Bar::ISA"` or `"*Foo::ISA = *Bar::ISA"`) \[perl #77238\]

  - Unicode

    - Ties, Overloading and Other Magic

    - The Debugger

    - Threads

    - Scoping and Subroutines

    - Signals

    - Miscellaneous Memory Leaks

    - Memory Corruption and Crashes

    - Fixes to Various Perl Operators

    - Bugs Relating to the C API

    - Known Problems

  - Errata

  - **keys()**, **values()**, and **each()** work on arrays

    - **split()** and @\_

    - Obituary

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5125delta - what is new for perl v5.12.5

- DESCRIPTION

  - Security

  - "Encode" decode\_xs n-byte heap-overflow (CVE-2011-2939)

    - File::Glob::bsd\_glob() memory error with GLOB\_ALTDIRFUNC (CVE-2011-2728)

    - Heap buffer overrun in 'x' string repeat operator (CVE-2012-5195)

    - Incompatible Changes

  - Modules and Pragmata

  - Updated Modules

    - Changes to Existing Documentation

  - perlebcdic

    - perlunicode

    - perluniprops

    - Installation and Configuration Improvements

  - Platform Specific Changes

    Mac OS X, NetBSD

- Selected Bug Fixes

  - Errata

  - **split()** and @\_

    - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5124delta - what is new for perl v5.12.4

- DESCRIPTION

  - Incompatible Changes

  - Selected Bug Fixes

  - Modules and Pragmata

  - Testing

  - Documentation

  - Platform Specific Notes

  Linux

- Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5123delta - what is new for perl v5.12.3

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - "keys", "values" work on arrays

    - Bug Fixes

  - Platform Specific Notes

  Solaris, VMS, VOS

- Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5122delta - what is new for perl v5.12.2

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Modules and Pragmata

  - New Modules and Pragmata

    - Pragmata Changes

    - Updated Modules

    `"Carp"`, `"CPANPLUS"`, `"File::Glob"`, `"File::Copy"`, `"File::Spec"`

- Utility Changes

  - Changes to Existing Documentation

  - Installation and Configuration Improvements

  - Configuration improvements

    - Compilation improvements

    - Selected Bug Fixes

  - Platform Specific Notes

  - AIX

    - Windows

    - VMS

    - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5121delta - what is new for perl v5.12.1

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Modules and Pragmata

  - Pragmata Changes

    - Updated Modules

    - Changes to Existing Documentation

  - Testing

  - Testing Improvements

    - Installation and Configuration Improvements

  - Configuration improvements

    - Bug Fixes

  - Platform Specific Notes

  - HP-UX

    - AIX

    - FreeBSD 7

    - VMS

    - Known Problems

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5120delta - what is new for perl v5.12.0

- DESCRIPTION

  - Core Enhancements

  - New "package NAME VERSION" syntax

    - The "..." operator

    - Implicit strictures

    - Unicode improvements

    - Y2038 compliance

    - qr overloading

    - Pluggable keywords

    - APIs for more internals

    - Overridable function lookup

    - A proper interface for pluggable Method Resolution Orders

    - "\\N" experimental regex escape

    - DTrace support

    - Support for "configure\_requires" in CPAN module metadata

    - "each", "keys", "values" are now more flexible

    - "when" as a statement modifier

    - $, flexibility

    - // in when clauses

    - Enabling warnings from your shell environment

    - "delete local"

    - New support for Abstract namespace sockets

    - 32-bit limit on substr arguments removed

    - Potentially Incompatible Changes

  - Deprecations warn by default

    - Version number formats

    - @INC reorganization

    - REGEXPs are now first class

    - Switch statement changes

    flip-flop operators, defined-or operator

  - Smart match changes

    - Other potentially incompatible changes

    - Deprecations

  suidperl, Use of `":="` to mean an empty attribute list, `"UNIVERSAL->import()"`, Use of "goto" to jump into a construct, Custom character names in \\N{name} that don't look like names, Deprecated Modules, Class::ISA, Pod::Plainer, Shell, Switch, Assignment to $\[, Use of the attribute :locked on subroutines, Use of "locked" with the attributes pragma, Use of "unique" with the attributes pragma, Perl\_pmflag, Numerous Perl 4-era libraries

- Unicode overhaul

  - Modules and Pragmata

  - New Modules and Pragmata

    `"autodie"`, `"Compress::Raw::Bzip2"`, `"overloading"`, `"parent"`, `"Parse::CPAN::Meta"`, `"VMS::DCLsym"`, `"VMS::Stdio"`, `"XS::APItest::KeywordRPN"`

  - Updated Pragmata

    `"base"`, `"bignum"`, `"charnames"`, `"constant"`, `"diagnostics"`, `"feature"`, `"less"`, `"lib"`, `"mro"`, `"overload"`, `"threads"`, `"threads::shared"`, `"version"`, `"warnings"`

  - Updated Modules

    `"Archive::Extract"`, `"Archive::Tar"`, `"Attribute::Handlers"`, `"AutoLoader"`, `"B::Concise"`, `"B::Debug"`, `"B::Deparse"`, `"B::Lint"`, `"CGI"`, `"Class::ISA"`, `"Compress::Raw::Zlib"`, `"CPAN"`, `"CPANPLUS"`, `"CPANPLUS::Dist::Build"`, `"Data::Dumper"`, `"DB_File"`, `"Devel::PPPort"`, `"Digest"`, `"Digest::MD5"`, `"Digest::SHA"`, `"Encode"`, `"Exporter"`, `"ExtUtils::CBuilder"`, `"ExtUtils::Command"`, `"ExtUtils::Constant"`, `"ExtUtils::Install"`, `"ExtUtils::MakeMaker"`, `"ExtUtils::Manifest"`, `"ExtUtils::ParseXS"`, `"File::Fetch"`, `"File::Path"`, `"File::Temp"`, `"Filter::Simple"`, `"Filter::Util::Call"`, `"Getopt::Long"`, `"IO"`, `"IO::Zlib"`, `"IPC::Cmd"`, `"IPC::SysV"`, `"Locale::Maketext"`, `"Locale::Maketext::Simple"`, `"Log::Message"`, `"Log::Message::Simple"`, `"Math::BigInt"`, `"Math::BigInt::FastCalc"`, `"Math::BigRat"`, `"Math::Complex"`, `"Memoize"`, `"MIME::Base64"`, `"Module::Build"`, `"Module::CoreList"`, `"Module::Load"`, `"Module::Load::Conditional"`, `"Module::Loaded"`, `"Module::Pluggable"`, `"Net::Ping"`, `"NEXT"`, `"Object::Accessor"`, `"Package::Constants"`, `"PerlIO"`, `"Pod::Parser"`, `"Pod::Perldoc"`, `"Pod::Plainer"`, `"Pod::Simple"`, `"Safe"`, `"SelfLoader"`, `"Storable"`, `"Switch"`, `"Sys::Syslog"`, `"Term::ANSIColor"`, `"Term::UI"`, `"Test"`, `"Test::Harness"`, `"Test::Simple"`, `"Text::Balanced"`, `"Text::ParseWords"`, `"Text::Soundex"`, `"Thread::Queue"`, `"Thread::Semaphore"`, `"Tie::RefHash"`, `"Time::HiRes"`, `"Time::Local"`, `"Time::Piece"`, `"Unicode::Collate"`, `"Unicode::Normalize"`, `"Win32"`, `"Win32API::File"`, `"XSLoader"`

  - Removed Modules and Pragmata

    `"attrs"`, `"CPAN::API::HOWTO"`, `"CPAN::DeferedCode"`, `"CPANPLUS::inc"`, `"DCLsym"`, `"ExtUtils::MakeMaker::bytes"`, `"ExtUtils::MakeMaker::vmsish"`, `"Stdio"`, `"Test::Harness::Assert"`, `"Test::Harness::Iterator"`, `"Test::Harness::Point"`, `"Test::Harness::Results"`, `"Test::Harness::Straps"`, `"Test::Harness::Util"`, `"XSSymSet"`

  - Deprecated Modules and Pragmata

    - Documentation

  - New Documentation

    - Changes to Existing Documentation

    - Selected Performance Enhancements

  - Installation and Configuration Improvements

  - Internal Changes

  - Testing

  - Testing improvements

    Parallel tests, Test harness flexibility, Test watchdog

  - New Tests

    - New or Changed Diagnostics

  - New Diagnostics

    - Changed Diagnostics

    `"Illegal character in prototype for %s : %s"`, `"Prototype after '%c' for` `%s : %s"`

- Utility Changes

  - Selected Bug Fixes

  - Platform Specific Changes

  - New Platforms

    Haiku, MirOS BSD

  - Discontinued Platforms

    Domain/OS, MiNT, Tenon MachTen

  - Updated Platforms

    AIX, Cygwin, Darwin (Mac OS X), DragonFly BSD, FreeBSD, Irix, NetBSD, OpenVMS, Stratus VOS, Symbian, Windows

- Known Problems

  - Errata

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5101delta - what is new for perl v5.10.1

- DESCRIPTION

  - Incompatible Changes

  - Switch statement changes

    flip-flop operators, defined-or operator

  - Smart match changes

    - Other incompatible changes

    - Core Enhancements

  - Unicode Character Database 5.1.0

    - A proper interface for pluggable Method Resolution Orders

    - The "overloading" pragma

    - Parallel tests

    - DTrace support

    - Support for "configure\_requires" in CPAN module metadata

    - Modules and Pragmata

  - New Modules and Pragmata

    `"autodie"`, `"Compress::Raw::Bzip2"`, `"parent"`, `"Parse::CPAN::Meta"`

  - Pragmata Changes

    `"attributes"`, `"attrs"`, `"base"`, `"bigint"`, `"bignum"`, `"bigrat"`, `"charnames"`, `"constant"`, `"feature"`, `"fields"`, `"lib"`, `"open"`, `"overload"`, `"overloading"`, `"version"`

  - Updated Modules

    `"Archive::Extract"`, `"Archive::Tar"`, `"Attribute::Handlers"`, `"AutoLoader"`, `"AutoSplit"`, `"B"`, `"B::Debug"`, `"B::Deparse"`, `"B::Lint"`, `"B::Xref"`, `"Benchmark"`, `"Carp"`, `"CGI"`, `"Compress::Zlib"`, `"CPAN"`, `"CPANPLUS"`, `"CPANPLUS::Dist::Build"`, `"Cwd"`, `"Data::Dumper"`, `"DB"`, `"DB_File"`, `"Devel::PPPort"`, `"Digest::MD5"`, `"Digest::SHA"`, `"DirHandle"`, `"Dumpvalue"`, `"DynaLoader"`, `"Encode"`, `"Errno"`, `"Exporter"`, `"ExtUtils::CBuilder"`, `"ExtUtils::Command"`, `"ExtUtils::Constant"`, `"ExtUtils::Embed"`, `"ExtUtils::Install"`, `"ExtUtils::MakeMaker"`, `"ExtUtils::Manifest"`, `"ExtUtils::ParseXS"`, `"Fatal"`, `"File::Basename"`, `"File::Compare"`, `"File::Copy"`, `"File::Fetch"`, `"File::Find"`, `"File::Path"`, `"File::Spec"`, `"File::stat"`, `"File::Temp"`, `"FileCache"`, `"FileHandle"`, `"Filter::Simple"`, `"Filter::Util::Call"`, `"FindBin"`, `"GDBM_File"`, `"Getopt::Long"`, `"Hash::Util::FieldHash"`, `"I18N::Collate"`, `"IO"`, `"IO::Compress::*"`, `"IO::Dir"`, `"IO::Handle"`, `"IO::Socket"`, `"IO::Zlib"`, `"IPC::Cmd"`, `"IPC::Open3"`, `"IPC::SysV"`, `"lib"`, `"List::Util"`, `"Locale::MakeText"`, `"Log::Message"`, `"Math::BigFloat"`, `"Math::BigInt"`, `"Math::BigInt::FastCalc"`, `"Math::BigRat"`, `"Math::Complex"`, `"Math::Trig"`, `"Memoize"`, `"Module::Build"`, `"Module::CoreList"`, `"Module::Load"`, `"Module::Load::Conditional"`, `"Module::Loaded"`, `"Module::Pluggable"`, `"NDBM_File"`, `"Net::Ping"`, `"NEXT"`, `"Object::Accessor"`, `"OS2::REXX"`, `"Package::Constants"`, `"PerlIO"`, `"PerlIO::via"`, `"Pod::Man"`, `"Pod::Parser"`, `"Pod::Simple"`, `"Pod::Text"`, `"POSIX"`, `"Safe"`, `"Scalar::Util"`, `"SelectSaver"`, `"SelfLoader"`, `"Socket"`, `"Storable"`, `"Switch"`, `"Symbol"`, `"Sys::Syslog"`, `"Term::ANSIColor"`, `"Term::ReadLine"`, `"Term::UI"`, `"Test::Harness"`, `"Test::Simple"`, `"Text::ParseWords"`, `"Text::Tabs"`, `"Text::Wrap"`, `"Thread::Queue"`, `"Thread::Semaphore"`, `"threads"`, `"threads::shared"`, `"Tie::RefHash"`, `"Tie::StdHandle"`, `"Time::HiRes"`, `"Time::Local"`, `"Time::Piece"`, `"Unicode::Normalize"`, `"Unicode::UCD"`, `"UNIVERSAL"`, `"Win32"`, `"Win32API::File"`, `"XSLoader"`

- Utility Changes

  *h2ph*, *h2xs*, *perl5db.pl*, *perlthanks*

- New Documentation

  perlhaiku, perlmroapi, perlperf, perlrepository, perlthanks

- Changes to Existing Documentation

  - Performance Enhancements

  - Installation and Configuration Improvements

  - *ext/* reorganisation

    - Configuration improvements

    - Compilation improvements

    - Platform Specific Changes

    AIX, Cygwin, FreeBSD, Irix, Haiku, MirOS BSD, NetBSD, Stratus VOS, Symbian, Win32, VMS

- Selected Bug Fixes

  - New or Changed Diagnostics

  `"panic: sv_chop %s"`, `"Can't locate package %s for the parents of %s"`, `"v-string in use/require is non-portable"`, `Deep recursion on subroutine` `"%s"`

- Changed Internals

  `"SVf_UTF8"`, `"SVs_TEMP"`

- New Tests

  t/comp/retainedlines.t, t/io/perlio\_fail.t, t/io/perlio\_leaks.t, t/io/perlio\_open.t, t/io/perlio.t, t/io/pvbm.t, t/mro/package\_aliases.t, t/op/dbm.t, t/op/index\_thr.t, t/op/pat\_thr.t, t/op/qr\_gc.t, t/op/reg\_email\_thr.t, t/op/regexp\_qr\_embed\_thr.t, t/op/regexp\_unicode\_prop.t, t/op/regexp\_unicode\_prop\_thr.t, t/op/reg\_nc\_tie.t, t/op/reg\_posixcc.t, t/op/re.t, t/op/setpgrpstack.t, t/op/substr\_thr.t, t/op/upgrade.t, t/uni/lex\_utf8.t, t/uni/tie.t

- Known Problems

  - Deprecations

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl5100delta - what is new for perl 5.10.0

- DESCRIPTION

  - Core Enhancements

  - The "feature" pragma

    - New **-E** command-line switch

    - Defined-or operator

    - Switch and Smart Match operator

    - Regular expressions

    Recursive Patterns, Named Capture Buffers, Possessive Quantifiers, Backtracking control verbs, Relative backreferences, `"\K"` escape, Vertical and horizontal whitespace, and linebreak, Optional pre-match and post-match captures with the /p flag

  - say()

    - Lexical $\_

    - The "\_" prototype

    - UNITCHECK blocks

    - New Pragma, "mro"

    - **readdir()** may return a "short filename" on Windows

    - **readpipe()** is now overridable

    - Default argument for **readline()**

    - **state()** variables

    - Stacked filetest operators

    - **UNIVERSAL::DOES()**

    - Formats

    - Byte-order modifiers for **pack()** and **unpack()**

    - "no VERSION"

    - "chdir", "chmod" and "chown" on filehandles

    - OS groups

    - Recursive sort subs

    - Exceptions in constant folding

    - Source filters in @INC

    - New internal variables

    `"${^RE_DEBUG_FLAGS}"`, `"${^CHILD_ERROR_NATIVE}"`, `"${^RE_TRIE_MAXBUF}"`, `"${^WIN32_SLOPPY_STAT}"`

  - Miscellaneous

    - UCD 5.0.0

    - MAD

    - **kill()** on Windows

    - Incompatible Changes

  - Packing and UTF-8 strings

    - Byte/character count feature in **unpack()**

    - The $\* and $# variables have been removed

    - **substr()** lvalues are no longer fixed-length

    - Parsing of "-f \_"

    - ":unique"

    - Effect of pragmas in eval

    - chdir FOO

    - Handling of .pmc files

    - $^V is now a "version" object instead of a v-string

    - @- and @+ in patterns

    - $AUTOLOAD can now be tainted

    - Tainting and printf

    - undef and signal handlers

    - strictures and dereferencing in **defined()**

    - "(?p{})" has been removed

    - Pseudo-hashes have been removed

    - Removal of the bytecode compiler and of perlcc

    - Removal of the JPL

    - Recursive inheritance detected earlier

    - warnings::enabled and warnings::warnif changed to favor users of modules

    - Removal of "package;" ("package" without arguments)

    - Modules and Pragmata

  - Upgrading individual core modules

    - Pragmata Changes

    `"feature"`, `"mro"`, Scoping of the `"sort"` pragma, Scoping of `"bignum"`, `"bigint"`, `"bigrat"`, `"base"`, `"strict"` and `"warnings"`, `"version"`, `"warnings"`, `"less"`

  - New modules

    - Selected Changes to Core Modules

    `"Attribute::Handlers"`, `"B::Lint"`, `"B"`, `"Thread"`

- Utility Changes

  perl -d, ptar, ptardiff, shasum, corelist, h2ph and h2xs, perlivp, find2perl, config\_data, cpanp, cpan2dist, pod2html

- New Documentation

  - Performance Enhancements

  - In-place sorting

    - Lexical array access

    - XS-assisted SWASHGET

    - Constant subroutines

    - "PERL\_DONT\_CREATE\_GVSV"

    - Weak references are cheaper

    - **sort()** enhancements

    - Memory optimisations

    - UTF-8 cache optimisation

    - Sloppy stat on Windows

    - Regular expressions optimisations

    Engine de-recursivised, Single char char-classes treated as literals, Trie optimisation of literal string alternations, Aho-Corasick start-point optimisation

- Installation and Configuration Improvements

  - Configuration improvements

    `"-Dusesitecustomize"`, Relocatable installations, **strlcat()** and **strlcpy()**, `"d_pseudofork"` and `"d_printf_format_null"`, Configure help

  - Compilation improvements

    Parallel build, Borland's compilers support, Static build on Windows, ppport.h files, C++ compatibility, Support for Microsoft 64-bit compiler, Visual C++, Win32 builds

  - Installation improvements

    Module auxiliary files

  - New Or Improved Platforms

    - Selected Bug Fixes

  strictures in regexp-eval blocks, Calling **CORE::require()**, Subscripts of slices, `"no warnings 'category'"` works correctly with -w, threads improvements, **chr()** and negative values, PERL5SHELL and tainting, Using \*FILE{IO}, Overloading and reblessing, Overloading and UTF-8, eval memory leaks fixed, Random device on Windows, PERLIO\_DEBUG, PerlIO::scalar and read-only scalars, **study()** and UTF-8, Critical signals, `@INC`-hook fix, `"-t"` switch fix, Duping UTF-8 filehandles, Localisation of hash elements

- New or Changed Diagnostics

  Use of uninitialized value, Deprecated use of **my()** in false conditional, !=~ should be !~, Newline in left-justified string, Too late for "-T" option, "%s" variable `%s` masks earlier declaration, **readdir()**/**closedir()**/etc. attempted on invalid dirhandle, Opening dirhandle/filehandle `%s` also as a file/directory, Use of -P is deprecated, v-string in use/require is non-portable, perl -V

- Changed Internals

  - Reordering of SVt\_\* constants

    - Elimination of SVt\_PVBM

    - New type SVt\_BIND

    - Removal of CPP symbols

    - Less space is used by ops

    - New parser

    - Use of "const"

    - Mathoms

    - "AvFLAGS" has been removed

    - "av\_\*" changes

    - $^H and %^H

    - B:: modules inheritance changed

    - Anonymous hash and array constructors

    - Known Problems

  - UTF-8 problems

    - Platform Specific Problems

  - Reporting Bugs

  - SEE ALSO

  ### perl589delta - what is new for perl v5.8.9

- DESCRIPTION

  - Notice

  - Incompatible Changes

  - Core Enhancements

  - Unicode Character Database 5.1.0

    - stat and -X on directory handles

    - Source filters in @INC

    - Exceptions in constant folding

    - "no VERSION"

    - Improved internal UTF-8 caching code

    - Runtime relocatable installations

    - New internal variables

    `"${^CHILD_ERROR_NATIVE}"`, `"${^UTF8CACHE}"`

  - "readpipe" is now overridable

    - simple exception handling macros

    - \-D option enhancements

    - XS-assisted SWASHGET

    - Constant subroutines

    - New Platforms

  - Modules and Pragmata

  - New Modules

    - Updated Modules

    - Utility Changes

  - debugger upgraded to version 1.31

    - *perlthanks*

    - *perlbug*

    - *h2xs*

    - *h2ph*

    - New Documentation

  - Changes to Existing Documentation

  - Performance Enhancements

  - Installation and Configuration Improvements

  - Relocatable installations

    - Configuration improvements

    - Compilation improvements

    - Installation improvements

    - Platform Specific Changes

    - Selected Bug Fixes

  - Unicode

    - PerlIO

    - Magic

    - Reblessing overloaded objects now works

    - "strict" now propagates correctly into string evals

    - Other fixes

    - Platform Specific Fixes

    - Smaller fixes

    - New or Changed Diagnostics

  - panic: sv\_chop %s

    - Maximal count of pending signals (%s) exceeded

    - panic: attempt to call %s in %s

    - FETCHSIZE returned a negative value

    - Can't upgrade %s (%d) to %d

    - %s argument is not a HASH or ARRAY element or a subroutine

    - Cannot make the non-overridable builtin %s fatal

    - Unrecognized character '%s' in column %d

    - Offset outside string

    - Invalid escape in the specified encoding in regexp; marked by \<-- HERE in m/%s/

    - Your machine doesn't support dump/undump

    - Changed Internals

  - Macro cleanups

    - New Tests

  ext/DynaLoader/t/DynaLoader.t, t/comp/fold.t, t/io/pvbm.t, t/lib/proxy\_constant\_subs.t, t/op/attrhand.t, t/op/dbm.t, t/op/inccode-tie.t, t/op/incfilter.t, t/op/kill0.t, t/op/qrstack.t, t/op/qr.t, t/op/regexp\_qr\_embed.t, t/op/regexp\_qr.t, t/op/rxcode.t, t/op/studytied.t, t/op/substT.t, t/op/symbolcache.t, t/op/upgrade.t, t/mro/package\_aliases.t, t/pod/twice.t, t/run/cloexec.t, t/uni/cache.t, t/uni/chr.t, t/uni/greek.t, t/uni/latin2.t, t/uni/overload.t, t/uni/tie.t

- Known Problems

  - Platform Specific Notes

  - Win32

    - OS/2

    - VMS

    - Obituary

  - Acknowledgements

  - Reporting Bugs

  - SEE ALSO

  ### perl588delta - what is new for perl v5.8.8

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Modules and Pragmata

  - Utility Changes

  - "h2xs" enhancements

    - "perlivp" enhancements

    - New Documentation

  - Performance Enhancements

  - Installation and Configuration Improvements

  - Selected Bug Fixes

  - no warnings 'category' works correctly with -w

    - Remove over-optimisation

    - **sprintf()** fixes

    - Debugger and Unicode slowdown

    - Smaller fixes

    - New or Changed Diagnostics

  - Attempt to set length of freed array

    - Non-string passed as bitmask

    - Search pattern not terminated or ternary operator parsed as search pattern

    - Changed Internals

  - Platform Specific Problems

  - Reporting Bugs

  - SEE ALSO

  ### perl587delta - what is new for perl v5.8.7

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Unicode Character Database 4.1.0

    - suidperl less insecure

    - Optional site customization script

    - "Config.pm" is now much smaller

    - Modules and Pragmata

  - Utility Changes

  - find2perl enhancements

    - Performance Enhancements

  - Installation and Configuration Improvements

  - Selected Bug Fixes

  - New or Changed Diagnostics

  - Changed Internals

  - Known Problems

  - Platform Specific Problems

  - Reporting Bugs

  - SEE ALSO

  ### perl586delta - what is new for perl v5.8.6

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Modules and Pragmata

  - Utility Changes

  - Performance Enhancements

  - Selected Bug Fixes

  - New or Changed Diagnostics

  - Changed Internals

  - New Tests

  - Reporting Bugs

  - SEE ALSO

  ### perl585delta - what is new for perl v5.8.5

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Modules and Pragmata

  - Utility Changes

  - Perl's debugger

    - h2ph

    - Installation and Configuration Improvements

  - Selected Bug Fixes

  - New or Changed Diagnostics

  - Changed Internals

  - Known Problems

  - Platform Specific Problems

  - Reporting Bugs

  - SEE ALSO

  ### perl584delta - what is new for perl v5.8.4

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Malloc wrapping

    - Unicode Character Database 4.0.1

    - suidperl less insecure

    - format

    - Modules and Pragmata

  - Updated modules

    Attribute::Handlers, B, Benchmark, CGI, Carp, Cwd, Exporter, File::Find, IO, IPC::Open3, Local::Maketext, Math::BigFloat, Math::BigInt, Math::BigRat, MIME::Base64, ODBM\_File, POSIX, Shell, Socket, Storable, Switch, Sys::Syslog, Term::ANSIColor, Time::HiRes, Unicode::UCD, Win32, base, open, threads, utf8

- Performance Enhancements

  - Utility Changes

  - Installation and Configuration Improvements

  - Selected Bug Fixes

  - New or Changed Diagnostics

  - Changed Internals

  - Future Directions

  - Platform Specific Problems

  - Reporting Bugs

  - SEE ALSO

  ### perl583delta - what is new for perl v5.8.3

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Modules and Pragmata

  CGI, Cwd, Digest, Digest::MD5, Encode, File::Spec, FindBin, List::Util, Math::BigInt, PodParser, Pod::Perldoc, POSIX, Unicode::Collate, Unicode::Normalize, Test::Harness, threads::shared

- Utility Changes

  - New Documentation

  - Installation and Configuration Improvements

  - Selected Bug Fixes

  - New or Changed Diagnostics

  - Changed Internals

  - Configuration and Building

  - Platform Specific Problems

  - Known Problems

  - Future Directions

  - Obituary

  - Reporting Bugs

  - SEE ALSO

  ### perl582delta - what is new for perl v5.8.2

- DESCRIPTION

  - Incompatible Changes

  - Core Enhancements

  - Hash Randomisation

    - Threading

    - Modules and Pragmata

  - Updated Modules And Pragmata

    Devel::PPPort, Digest::MD5, I18N::LangTags, libnet, MIME::Base64, Pod::Perldoc, strict, Tie::Hash, Time::HiRes, Unicode::Collate, Unicode::Normalize, UNIVERSAL

- Selected Bug Fixes

  - Changed Internals

  - Platform Specific Problems

  - Future Directions

  - Reporting Bugs

  - SEE ALSO

  ### perl581delta - what is new for perl v5.8.1

- DESCRIPTION

  - Incompatible Changes

  - Hash Randomisation

    - UTF-8 On Filehandles No Longer Activated By Locale

    - Single-number v-strings are no longer v-strings before "=\>"

    - (Win32) The -C Switch Has Been Repurposed

    - (Win32) The /d Switch Of cmd.exe

    - Core Enhancements

  - UTF-8 no longer default under UTF-8 locales

    - Unsafe signals again available

    - Tied Arrays with Negative Array Indices

    - local ${$x}

    - Unicode Character Database 4.0.0

    - Deprecation Warnings

    - Miscellaneous Enhancements

    - Modules and Pragmata

  - Updated Modules And Pragmata

    base, B::Bytecode, B::Concise, B::Deparse, Benchmark, ByteLoader, bytes, CGI, charnames, CPAN, Data::Dumper, DB\_File, Devel::PPPort, Digest::MD5, Encode, fields, libnet, Math::BigInt, MIME::Base64, NEXT, Net::Ping, PerlIO::scalar, podlators, Pod::LaTeX, PodParsers, Pod::Perldoc, Scalar::Util, Storable, strict, Term::ANSIcolor, Test::Harness, Test::More, Test::Simple, Text::Balanced, Time::HiRes, threads, threads::shared, Unicode::Collate, Unicode::Normalize, Win32::GetFolderPath, Win32::GetOSVersion

- Utility Changes

  - New Documentation

  - Installation and Configuration Improvements

  - Platform-specific enhancements

    - Selected Bug Fixes

  - Closures, eval and lexicals

    - Generic fixes

    - Platform-specific fixes

    - New or Changed Diagnostics

  - Changed "A thread exited while %d threads were running"

    - Removed "Attempt to clear a restricted hash"

    - New "Illegal declaration of anonymous subroutine"

    - Changed "Invalid range "%s" in transliteration operator"

    - New "Missing control char name in \\c"

    - New "Newline in left-justified string for %s"

    - New "Possible precedence problem on bitwise %c operator"

    - New "Pseudo-hashes are deprecated"

    - New "**read()** on %s filehandle %s"

    - New "5.005 threads are deprecated"

    - New "Tied variable freed while still in use"

    - New "To%s: illegal mapping '%s'"

    - New "Use of freed value in iteration"

    - Changed Internals

  - New Tests

  - Known Problems

  - Tied hashes in scalar context

    - Net::Ping 450\_service and 510\_ping\_udp failures

    - B::C

    - Platform Specific Problems

  - EBCDIC Platforms

    - Cygwin 1.5 problems

    - HP-UX: HP cc warnings about sendfile and sendpath

    - IRIX: t/uni/tr\_7jis.t falsely failing

    - Mac OS X: no usemymalloc

    - Tru64: No threaded builds with GNU cc (gcc)

    - Win32: sysopen, sysread, syswrite

    - Future Directions

  - Reporting Bugs

  - SEE ALSO

  ### perl58delta - what is new for perl v5.8.0

- DESCRIPTION

  - Highlights In 5.8.0

  - Incompatible Changes

  - Binary Incompatibility

    - 64-bit platforms and malloc

    - AIX Dynaloading

    - Attributes for "my" variables now handled at run-time

    - Socket Extension Dynamic in VMS

    - IEEE-format Floating Point Default on OpenVMS Alpha

    - New Unicode Semantics (no more "use utf8", almost)

    - New Unicode Properties

    - REF(...) Instead Of SCALAR(...)

    - pack/unpack D/F recycled

    - **glob()** now returns filenames in alphabetical order

    - Deprecations

    - Core Enhancements

  - Unicode Overhaul

    - PerlIO is Now The Default

    - ithreads

    - Restricted Hashes

    - Safe Signals

    - Understanding of Numbers

    - Arrays now always interpolate into double-quoted strings \[561\]

    - Miscellaneous Changes

    - Modules and Pragmata

  - New Modules and Pragmata

    - Updated And Improved Modules and Pragmata

    - Utility Changes

  - New Documentation

  - Performance Enhancements

  - Installation and Configuration Improvements

  - Generic Improvements

    - New Or Improved Platforms

    - Selected Bug Fixes

  - Platform Specific Changes and Fixes

    - New or Changed Diagnostics

  - Changed Internals

  - Security Vulnerability Closed \[561\]

  - New Tests

  - Known Problems

  - The Compiler Suite Is Still Very Experimental

    - Localising Tied Arrays and Hashes Is Broken

    - Building Extensions Can Fail Because Of Largefiles

    - Modifying $\_ Inside for(..)

    - mod\_perl 1.26 Doesn't Build With Threaded Perl

    - lib/ftmp-security tests warn 'system possibly insecure'

    - libwww-perl (LWP) fails base/date #51

    - PDL failing some tests

    - Perl\_get\_sv

    - Self-tying Problems

    - ext/threads/t/libc

    - Failure of Thread (5.005-style) tests

    - Timing problems

    - Tied/Magical Array/Hash Elements Do Not Autovivify

    - Unicode in package/class and subroutine names does not work

    - Platform Specific Problems

  - AIX

    - Alpha systems with old gccs fail several tests

    - AmigaOS

    - BeOS

    - Cygwin "unable to remap"

    - Cygwin ndbm tests fail on FAT

    - DJGPP Failures

    - FreeBSD built with ithreads coredumps reading large directories

    - FreeBSD Failing locale Test 117 For ISO 8859-15 Locales

    - IRIX fails ext/List/Util/t/shuffle.t or Digest::MD5

    - HP-UX lib/posix Subtest 9 Fails When LP64-Configured

    - Linux with glibc 2.2.5 fails t/op/int subtest #6 with -Duse64bitint

    - Linux With Sfio Fails op/misc Test 48

    - Mac OS X

    - Mac OS X dyld undefined symbols

    - OS/2 Test Failures

    - op/sprintf tests 91, 129, and 130

    - SCO

    - Solaris 2.5

    - Solaris x86 Fails Tests With -Duse64bitint

    - SUPER-UX (NEC SX)

    - Term::ReadKey not working on Win32

    - UNICOS/mk

    - UTS

    - VOS (Stratus)

    - VMS

    - Win32

    - XML::Parser not working

    - z/OS (OS/390)

    - Unicode Support on EBCDIC Still Spotty

    - Seen In Perl 5.7 But Gone Now

    - Reporting Bugs

  - SEE ALSO

  - HISTORY

  ### perl561delta - what's new for perl v5.6.1

- DESCRIPTION

  - Summary of changes between 5.6.0 and 5.6.1

  - Security Issues

    - Core bug fixes

    `UNIVERSAL::isa()`, Memory leaks, Numeric conversions, qw(a\\\\b), **caller()**, Bugs in regular expressions, "slurp" mode, Autovivification of symbolic references to special variables, Lexical warnings, Spurious warnings and errors, **glob()**, Tainting, **sort()**, #line directives, Subroutine prototypes, **map()**, Debugger, PERL5OPT, **chop()**, Unicode support, 64-bit support, Compiler, Lvalue subroutines, IO::Socket, File::Find, xsubpp, `"no` `Module;"`, Tests

  - Core features

    - Configuration issues

    - Documentation

    - Bundled modules

    B::Concise, File::Temp, Pod::LaTeX, Pod::Text::Overstrike, CGI, CPAN, Class::Struct, DB\_File, Devel::Peek, File::Find, Getopt::Long, IO::Poll, IPC::Open3, Math::BigFloat, Math::Complex, Net::Ping, Opcode, Pod::Parser, Pod::Text, SDBM\_File, Sys::Syslog, Tie::RefHash, Tie::SubstrHash

  - Platform-specific improvements

    NCR MP-RAS, NonStop-UX

- Core Enhancements

  - Interpreter cloning, threads, and concurrency

    - Lexically scoped warning categories

    - Unicode and UTF-8 support

    - Support for interpolating named characters

    - "our" declarations

    - Support for strings represented as a vector of ordinals

    - Improved Perl version numbering system

    - New syntax for declaring subroutine attributes

    - File and directory handles can be autovivified

    - **open()** with more than two arguments

    - 64-bit support

    - Large file support

    - Long doubles

    - "more bits"

    - Enhanced support for **sort()** subroutines

    - "sort $coderef @foo" allowed

    - File globbing implemented internally

    - Support for CHECK blocks

    - POSIX character class syntax \[: :\] supported

    - Better pseudo-random number generator

    - Improved "qw//" operator

    - Better worst-case behavior of hashes

    - **pack()** format 'Z' supported

    - **pack()** format modifier '!' supported

    - **pack()** and **unpack()** support counted strings

    - Comments in **pack()** templates

    - Weak references

    - Binary numbers supported

    - Lvalue subroutines

    - Some arrows may be omitted in calls through references

    - Boolean assignment operators are legal lvalues

    - **exists()** is supported on subroutine names

    - **exists()** and **delete()** are supported on array elements

    - Pseudo-hashes work better

    - Automatic flushing of output buffers

    - Better diagnostics on meaningless filehandle operations

    - Where possible, buffered data discarded from duped input filehandle

    - **eof()** has the same old magic as \<\>

    - **binmode()** can be used to set :crlf and :raw modes

    - "-T" filetest recognizes UTF-8 encoded files as "text"

    - **system()**, backticks and pipe open now reflect **exec()** failure

    - Improved diagnostics

    - Diagnostics follow STDERR

    - More consistent close-on-exec behavior

    - **syswrite()** ease-of-use

    - Better syntax checks on parenthesized unary operators

    - Bit operators support full native integer width

    - Improved security features

    - More functional bareword prototype (\*)

    - "require" and "do" may be overridden

    - $^X variables may now have names longer than one character

    - New variable $^C reflects "-c" switch

    - New variable $^V contains Perl version as a string

    - Optional Y2K warnings

    - Arrays now always interpolate into double-quoted strings

    - @- and @+ provide starting/ending offsets of regex submatches

    - Modules and Pragmata

  - Modules

    attributes, B, Benchmark, ByteLoader, constant, charnames, Data::Dumper, DB, DB\_File, Devel::DProf, Devel::Peek, Dumpvalue, DynaLoader, English, Env, Fcntl, File::Compare, File::Find, File::Glob, File::Spec, File::Spec::Functions, Getopt::Long, IO, JPL, lib, Math::BigInt, Math::Complex, Math::Trig, Pod::Parser, Pod::InputObjects, Pod::Checker, podchecker, Pod::ParseUtils, Pod::Find, Pod::Select, podselect, Pod::Usage, pod2usage, Pod::Text and Pod::Man, SDBM\_File, Sys::Syslog, Sys::Hostname, Term::ANSIColor, Time::Local, Win32, XSLoader, DBM Filters

  - Pragmata

    - Utility Changes

  - dprofpp

    - find2perl

    - h2xs

    - perlcc

    - perldoc

    - The Perl Debugger

    - Improved Documentation

  perlapi.pod, perlboot.pod, perlcompile.pod, perldbmfilter.pod, perldebug.pod, perldebguts.pod, perlfork.pod, perlfilter.pod, perlhack.pod, perlintern.pod, perllexwarn.pod, perlnumber.pod, perlopentut.pod, perlreftut.pod, perltootc.pod, perltodo.pod, perlunicode.pod

- Performance enhancements

  - Simple **sort()** using { $a \<=\> $b } and the like are optimized

    - Optimized assignments to lexical variables

    - Faster subroutine calls

    - **delete()**, **each()**, **values()** and hash iteration are faster

    - Installation and Configuration Improvements

  - \-Dusethreads means something different

    - New Configure flags

    - Threadedness and 64-bitness now more daring

    - Long Doubles

    - \-Dusemorebits

    - \-Duselargefiles

    - installusrbinperl

    - SOCKS support

    - "-A" flag

    - Enhanced Installation Directories

    - gcc automatically tried if 'cc' does not seem to be working

    - Platform specific changes

  - Supported platforms

    - DOS

    - OS390 (OpenEdition MVS)

    - VMS

    - Win32

    - Significant bug fixes

  - \<HANDLE\> on empty files

    - "eval '...'" improvements

    - All compilation errors are true errors

    - Implicitly closed filehandles are safer

    - Behavior of list slices is more consistent

    - "(\\$)" prototype and $foo{a}

    - "goto &sub" and AUTOLOAD

    - "-bareword" allowed under "use integer"

    - Failures in **DESTROY()**

    - Locale bugs fixed

    - Memory leaks

    - Spurious subroutine stubs after failed subroutine calls

    - Taint failures under "-U"

    - END blocks and the "-c" switch

    - Potential to leak DATA filehandles

    - New or Changed Diagnostics

  "%s" variable `%s` masks earlier declaration in same `%s`, "my sub" not yet implemented, "our" variable `%s` redeclared, '!' allowed only after types `%s`, / cannot take a count, / must be followed by a, A or Z, / must be followed by a\*, A\* or Z\*, / must follow a numeric type, /%s/: Unrecognized escape \\\\%c passed through, /%s/: Unrecognized escape \\\\%c in character class passed through, /%s/ should probably be written as "%s", %s() called too early to check prototype, `%s` argument is not a HASH or ARRAY element, `%s` argument is not a HASH or ARRAY element or slice, `%s` argument is not a subroutine name, `%s` package attribute may clash with future reserved word: `%s`, (in cleanup) `%s`, \<\> should be quotes, Attempt to join self, Bad evalled substitution pattern, Bad **realloc()** ignored, Bareword found in conditional, Binary number \> 0b11111111111111111111111111111111 non-portable, Bit vector size \> 32 non-portable, Buffer overflow in prime\_env\_iter: `%s`, Can't check filesystem of script "%s", Can't declare class for non-scalar `%s` in "%s", Can't declare `%s` in "%s", Can't ignore signal CHLD, forcing to default, Can't modify non-lvalue subroutine call, Can't read CRTL environ, Can't remove `%s:` `%s`, skipping file, Can't return `%s` from lvalue subroutine, Can't weaken a nonreference, Character class \[:%s:\] unknown, Character class syntax \[%s\] belongs inside character classes, Constant is not `%s` reference, constant(%s): `%s`, CORE::%s is not a keyword, defined(@array) is deprecated, defined(%hash) is deprecated, Did not produce a valid header, (Did you mean "local" instead of "our"?), Document contains no data, entering effective `%s` failed, false \[\] range "%s" in regexp, Filehandle `%s` opened only for output, **flock()** on closed filehandle `%s`, Global symbol "%s" requires explicit package name, Hexadecimal number \> 0xffffffff non-portable, Ill-formed CRTL environ value "%s", Ill-formed message in prime\_env\_iter: \|%s\|, Illegal binary digit `%s`, Illegal binary digit `%s` ignored, Illegal number of bits in vec, Integer overflow in `%s` number, Invalid `%s` attribute: `%s`, Invalid `%s` attributes: `%s`, invalid \[\] range "%s" in regexp, Invalid separator character `%s` in attribute list, Invalid separator character `%s` in subroutine attribute list, leaving effective `%s` failed, Lvalue subs returning `%s` not implemented yet, Method `%s` not permitted, Missing `%sbrace`%s on \\N{}, Missing command in piped open, Missing name in "my sub", No `%s` specified for -%c, No package name allowed for variable `%s` in "our", No space allowed after -%c, no UTC offset information; assuming local time is UTC, Octal number \> 037777777777 non-portable, panic: del\_backref, panic: kid popen errno read, panic: magic\_killbackrefs, Parentheses missing around "%s" list, Possible unintended interpolation of `%s` in string, Possible Y2K bug: `%s`, pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead, Premature end of script headers, Repeat count in pack overflows, Repeat count in unpack overflows, **realloc()** of freed memory ignored, Reference is already weak, setpgrp can't take arguments, Strange \*+?{} on zero-length expression, switching effective `%s` is not implemented, This Perl can't reset CRTL environ elements (%s), This Perl can't set CRTL environ elements (%s=%s), Too late to run `%s` block, Unknown **open()** mode '%s', Unknown process `%x` sent message to prime\_env\_iter: `%s`, Unrecognized escape \\\\%c passed through, Unterminated attribute parameter in attribute list, Unterminated attribute list, Unterminated attribute parameter in subroutine attribute list, Unterminated subroutine attribute list, Value of CLI symbol "%s" too long, Version number must be a constant number

- New tests

  - Incompatible Changes

  - Perl Source Incompatibilities

    CHECK is a new keyword, Treatment of list slices of undef has changed, Format of `$English::PERL_VERSION` is different, Literals of the form `1.2.3` parse differently, Possibly changed pseudo-random number generator, Hashing function for hash keys has changed, `"undef"` fails on read only values, Close-on-exec bit may be set on pipe and socket handles, Writing `"$$1"` to mean `"${$}1"` is unsupported, **delete()**, **each()**, **values()** and `"\(%h)"`, vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS, Text of some diagnostic output has changed, `"%@"` has been removed, Parenthesized **not()** behaves like a list operator, Semantics of bareword prototype `"(*)"` have changed, Semantics of bit operators may have changed on 64-bit platforms, More builtins taint their results

  - C Source Incompatibilities

    `"PERL_POLLUTE"`, `"PERL_IMPLICIT_CONTEXT"`, `"PERL_POLLUTE_MALLOC"`

  - Compatible C Source API Changes

    `"PATCHLEVEL"` is now `"PERL_VERSION"`

  - Binary Incompatibilities

    - Known Problems

  - Localizing a tied hash element may leak memory

    - Known test failures

    - EBCDIC platforms not fully supported

    - UNICOS/mk CC failures during Configure run

    - Arrow operator and arrays

    - Experimental features

    Threads, Unicode, 64-bit support, Lvalue subroutines, Weak references, The pseudo-hash data type, The Compiler suite, Internal implementation of file globbing, The DB module, The regular expression code constructs:

- Obsolete Diagnostics

  Character class syntax \[: :\] is reserved for future extensions, Ill-formed logical name \|%s\| in prime\_env\_iter, In string, @%s now must be written as \\@%s, Probable precedence problem on `%s`, regexp too big, Use of "$$\<digit\>" to mean "${$}\<digit\>" is deprecated

- Reporting Bugs

  - SEE ALSO

  - HISTORY

  ### perl56delta - what's new for perl v5.6.0

- DESCRIPTION

  - Core Enhancements

  - Interpreter cloning, threads, and concurrency

    - Lexically scoped warning categories

    - Unicode and UTF-8 support

    - Support for interpolating named characters

    - "our" declarations

    - Support for strings represented as a vector of ordinals

    - Improved Perl version numbering system

    - New syntax for declaring subroutine attributes

    - File and directory handles can be autovivified

    - **open()** with more than two arguments

    - 64-bit support

    - Large file support

    - Long doubles

    - "more bits"

    - Enhanced support for **sort()** subroutines

    - "sort $coderef @foo" allowed

    - File globbing implemented internally

    - Support for CHECK blocks

    - POSIX character class syntax \[: :\] supported

    - Better pseudo-random number generator

    - Improved "qw//" operator

    - Better worst-case behavior of hashes

    - **pack()** format 'Z' supported

    - **pack()** format modifier '!' supported

    - **pack()** and **unpack()** support counted strings

    - Comments in **pack()** templates

    - Weak references

    - Binary numbers supported

    - Lvalue subroutines

    - Some arrows may be omitted in calls through references

    - Boolean assignment operators are legal lvalues

    - **exists()** is supported on subroutine names

    - **exists()** and **delete()** are supported on array elements

    - Pseudo-hashes work better

    - Automatic flushing of output buffers

    - Better diagnostics on meaningless filehandle operations

    - Where possible, buffered data discarded from duped input filehandle

    - **eof()** has the same old magic as \<\>

    - **binmode()** can be used to set :crlf and :raw modes

    - "-T" filetest recognizes UTF-8 encoded files as "text"

    - **system()**, backticks and pipe open now reflect **exec()** failure

    - Improved diagnostics

    - Diagnostics follow STDERR

    - More consistent close-on-exec behavior

    - **syswrite()** ease-of-use

    - Better syntax checks on parenthesized unary operators

    - Bit operators support full native integer width

    - Improved security features

    - More functional bareword prototype (\*)

    - "require" and "do" may be overridden

    - $^X variables may now have names longer than one character

    - New variable $^C reflects "-c" switch

    - New variable $^V contains Perl version as a string

    - Optional Y2K warnings

    - Arrays now always interpolate into double-quoted strings

    - @- and @+ provide starting/ending offsets of regex matches

    - Modules and Pragmata

  - Modules

    attributes, B, Benchmark, ByteLoader, constant, charnames, Data::Dumper, DB, DB\_File, Devel::DProf, Devel::Peek, Dumpvalue, DynaLoader, English, Env, Fcntl, File::Compare, File::Find, File::Glob, File::Spec, File::Spec::Functions, Getopt::Long, IO, JPL, lib, Math::BigInt, Math::Complex, Math::Trig, Pod::Parser, Pod::InputObjects, Pod::Checker, podchecker, Pod::ParseUtils, Pod::Find, Pod::Select, podselect, Pod::Usage, pod2usage, Pod::Text and Pod::Man, SDBM\_File, Sys::Syslog, Sys::Hostname, Term::ANSIColor, Time::Local, Win32, XSLoader, DBM Filters

  - Pragmata

    - Utility Changes

  - dprofpp

    - find2perl

    - h2xs

    - perlcc

    - perldoc

    - The Perl Debugger

    - Improved Documentation

  perlapi.pod, perlboot.pod, perlcompile.pod, perldbmfilter.pod, perldebug.pod, perldebguts.pod, perlfork.pod, perlfilter.pod, perlhack.pod, perlintern.pod, perllexwarn.pod, perlnumber.pod, perlopentut.pod, perlreftut.pod, perltootc.pod, perltodo.pod, perlunicode.pod

- Performance enhancements

  - Simple **sort()** using { $a \<=\> $b } and the like are optimized

    - Optimized assignments to lexical variables

    - Faster subroutine calls

    - **delete()**, **each()**, **values()** and hash iteration are faster

    - Installation and Configuration Improvements

  - \-Dusethreads means something different

    - New Configure flags

    - Threadedness and 64-bitness now more daring

    - Long Doubles

    - \-Dusemorebits

    - \-Duselargefiles

    - installusrbinperl

    - SOCKS support

    - "-A" flag

    - Enhanced Installation Directories

    - Platform specific changes

  - Supported platforms

    - DOS

    - OS390 (OpenEdition MVS)

    - VMS

    - Win32

    - Significant bug fixes

  - \<HANDLE\> on empty files

    - "eval '...'" improvements

    - All compilation errors are true errors

    - Implicitly closed filehandles are safer

    - Behavior of list slices is more consistent

    - "(\\$)" prototype and $foo{a}

    - "goto &sub" and AUTOLOAD

    - "-bareword" allowed under "use integer"

    - Failures in **DESTROY()**

    - Locale bugs fixed

    - Memory leaks

    - Spurious subroutine stubs after failed subroutine calls

    - Taint failures under "-U"

    - END blocks and the "-c" switch

    - Potential to leak DATA filehandles

    - New or Changed Diagnostics

  "%s" variable `%s` masks earlier declaration in same `%s`, "my sub" not yet implemented, "our" variable `%s` redeclared, '!' allowed only after types `%s`, / cannot take a count, / must be followed by a, A or Z, / must be followed by a\*, A\* or Z\*, / must follow a numeric type, /%s/: Unrecognized escape \\\\%c passed through, /%s/: Unrecognized escape \\\\%c in character class passed through, /%s/ should probably be written as "%s", %s() called too early to check prototype, `%s` argument is not a HASH or ARRAY element, `%s` argument is not a HASH or ARRAY element or slice, `%s` argument is not a subroutine name, `%s` package attribute may clash with future reserved word: `%s`, (in cleanup) `%s`, \<\> should be quotes, Attempt to join self, Bad evalled substitution pattern, Bad **realloc()** ignored, Bareword found in conditional, Binary number \> 0b11111111111111111111111111111111 non-portable, Bit vector size \> 32 non-portable, Buffer overflow in prime\_env\_iter: `%s`, Can't check filesystem of script "%s", Can't declare class for non-scalar `%s` in "%s", Can't declare `%s` in "%s", Can't ignore signal CHLD, forcing to default, Can't modify non-lvalue subroutine call, Can't read CRTL environ, Can't remove `%s:` `%s`, skipping file, Can't return `%s` from lvalue subroutine, Can't weaken a nonreference, Character class \[:%s:\] unknown, Character class syntax \[%s\] belongs inside character classes, Constant is not `%s` reference, constant(%s): `%s`, CORE::%s is not a keyword, defined(@array) is deprecated, defined(%hash) is deprecated, Did not produce a valid header, (Did you mean "local" instead of "our"?), Document contains no data, entering effective `%s` failed, false \[\] range "%s" in regexp, Filehandle `%s` opened only for output, **flock()** on closed filehandle `%s`, Global symbol "%s" requires explicit package name, Hexadecimal number \> 0xffffffff non-portable, Ill-formed CRTL environ value "%s", Ill-formed message in prime\_env\_iter: \|%s\|, Illegal binary digit `%s`, Illegal binary digit `%s` ignored, Illegal number of bits in vec, Integer overflow in `%s` number, Invalid `%s` attribute: `%s`, Invalid `%s` attributes: `%s`, invalid \[\] range "%s" in regexp, Invalid separator character `%s` in attribute list, Invalid separator character `%s` in subroutine attribute list, leaving effective `%s` failed, Lvalue subs returning `%s` not implemented yet, Method `%s` not permitted, Missing `%sbrace`%s on \\N{}, Missing command in piped open, Missing name in "my sub", No `%s` specified for -%c, No package name allowed for variable `%s` in "our", No space allowed after -%c, no UTC offset information; assuming local time is UTC, Octal number \> 037777777777 non-portable, panic: del\_backref, panic: kid popen errno read, panic: magic\_killbackrefs, Parentheses missing around "%s" list, Possible unintended interpolation of `%s` in string, Possible Y2K bug: `%s`, pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead, Premature end of script headers, Repeat count in pack overflows, Repeat count in unpack overflows, **realloc()** of freed memory ignored, Reference is already weak, setpgrp can't take arguments, Strange \*+?{} on zero-length expression, switching effective `%s` is not implemented, This Perl can't reset CRTL environ elements (%s), This Perl can't set CRTL environ elements (%s=%s), Too late to run `%s` block, Unknown **open()** mode '%s', Unknown process `%x` sent message to prime\_env\_iter: `%s`, Unrecognized escape \\\\%c passed through, Unterminated attribute parameter in attribute list, Unterminated attribute list, Unterminated attribute parameter in subroutine attribute list, Unterminated subroutine attribute list, Value of CLI symbol "%s" too long, Version number must be a constant number

- New tests

  - Incompatible Changes

  - Perl Source Incompatibilities

    CHECK is a new keyword, Treatment of list slices of undef has changed, Format of `$English::PERL_VERSION` is different, Literals of the form `1.2.3` parse differently, Possibly changed pseudo-random number generator, Hashing function for hash keys has changed, `"undef"` fails on read only values, Close-on-exec bit may be set on pipe and socket handles, Writing `"$$1"` to mean `"${$}1"` is unsupported, **delete()**, **each()**, **values()** and `"\(%h)"`, vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS, Text of some diagnostic output has changed, `"%@"` has been removed, Parenthesized **not()** behaves like a list operator, Semantics of bareword prototype `"(*)"` have changed, Semantics of bit operators may have changed on 64-bit platforms, More builtins taint their results

  - C Source Incompatibilities

    `"PERL_POLLUTE"`, `"PERL_IMPLICIT_CONTEXT"`, `"PERL_POLLUTE_MALLOC"`

  - Compatible C Source API Changes

    `"PATCHLEVEL"` is now `"PERL_VERSION"`

  - Binary Incompatibilities

    - Known Problems

  - Thread test failures

    - EBCDIC platforms not supported

    - In 64-bit HP-UX the lib/io\_multihomed test may hang

    - NEXTSTEP 3.3 POSIX test failure

    - Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with gcc

    - UNICOS/mk CC failures during Configure run

    - Arrow operator and arrays

    - Experimental features

    Threads, Unicode, 64-bit support, Lvalue subroutines, Weak references, The pseudo-hash data type, The Compiler suite, Internal implementation of file globbing, The DB module, The regular expression code constructs:

- Obsolete Diagnostics

  Character class syntax \[: :\] is reserved for future extensions, Ill-formed logical name \|%s\| in prime\_env\_iter, In string, @%s now must be written as \\@%s, Probable precedence problem on `%s`, regexp too big, Use of "$$\<digit\>" to mean "${$}\<digit\>" is deprecated

- Reporting Bugs

  - SEE ALSO

  - HISTORY

  ### perl5005delta - what's new for perl5.005

- DESCRIPTION

  - About the new versioning system

  - Incompatible Changes

  - WARNING: This version is not binary compatible with Perl 5.004

    - Default installation structure has changed

    - Perl Source Compatibility

    - C Source Compatibility

    - Binary Compatibility

    - Security fixes may affect compatibility

    - Relaxed new mandatory warnings introduced in 5.004

    - Licensing

    - Core Changes

  - Threads

    - Compiler

    - Regular Expressions

    Many new and improved optimizations, Many bug fixes, New regular expression constructs, New operator for precompiled regular expressions, Other improvements, Incompatible changes

  - Improved **malloc()**

    - Quicksort is internally implemented

    - Reliable signals

    - Reliable stack pointers

    - More generous treatment of carriage returns

    - Memory leaks

    - Better support for multiple interpreters

    - Behavior of **local()** on array and hash elements is now well-defined

    - "%!" is transparently tied to the Errno module

    - Pseudo-hashes are supported

    - "EXPR foreach EXPR" is supported

    - Keywords can be globally overridden

    - $^E is meaningful on Win32

    - "foreach (1..1000000)" optimized

    - "Foo::" can be used as implicitly quoted package name

    - "exists $Foo::{Bar::}" tests existence of a package

    - Better locale support

    - Experimental support for 64-bit platforms

    - **prototype()** returns useful results on builtins

    - Extended support for exception handling

    - Re-blessing in **DESTROY()** supported for chaining **DESTROY()** methods

    - All "printf" format conversions are handled internally

    - New "INIT" keyword

    - New "lock" keyword

    - New "qr//" operator

    - "our" is now a reserved word

    - Tied arrays are now fully supported

    - Tied handles support is better

    - 4th argument to substr

    - Negative LENGTH argument to splice

    - Magic lvalues are now more magical

    - \<\> now reads in records

    - Supported Platforms

  - New Platforms

    - Changes in existing support

    - Modules and Pragmata

  - New Modules

    B, Data::Dumper, Dumpvalue, Errno, File::Spec, ExtUtils::Installed, ExtUtils::Packlist, Fatal, IPC::SysV, Test, Tie::Array, Tie::Handle, Thread, attrs, fields, re

  - Changes in existing modules

    Benchmark, Carp, CGI, Fcntl, Math::Complex, Math::Trig, POSIX, DB\_File, MakeMaker, CPAN, Cwd

- Utility Changes

  - Documentation Changes

  - New Diagnostics

  Ambiguous call resolved as CORE::%s(), qualify as such or use &, Bad index while coercing array into hash, Bareword "%s" refers to nonexistent package, Can't call method "%s" on an undefined value, Can't check filesystem of script "%s" for nosuid, Can't coerce array into hash, Can't goto subroutine from an eval-string, Can't localize pseudo-hash element, Can't use %%! because Errno.pm is not available, Cannot find an opnumber for "%s", Character class syntax \[. .\] is reserved for future extensions, Character class syntax \[: :\] is reserved for future extensions, Character class syntax \[= =\] is reserved for future extensions, `%s:` Eval-group in insecure regular expression, `%s:` Eval-group not allowed, use re 'eval', `%s:` Eval-group not allowed at run time, Explicit blessing to '' (assuming package main), Illegal hex digit ignored, No such array field, No such field "%s" in variable `%s` of type `%s`, Out of memory during ridiculously large request, Range iterator outside integer range, Recursive inheritance detected while looking for method '%s' `%s`, Reference found where even-sized list expected, Undefined value assigned to typeglob, Use of reserved word "%s" is deprecated, perl: warning: Setting locale failed

- Obsolete Diagnostics

  Can't **mktemp()**, Can't write to temp file for **-e**: `%s`, Cannot open temporary file, regexp too big

- Configuration Changes

  - BUGS

  - SEE ALSO

  - HISTORY

  ### perl5004delta - what's new for perl5.004

- DESCRIPTION

  - Supported Environments

  - Core Changes

  - List assignment to %ENV works

    - Change to "Can't locate Foo.pm in @INC" error

    - Compilation option: Binary compatibility with 5.003

    - $PERL5OPT environment variable

    - Limitations on **-M**, **-m**, and **-T** options

    - More precise warnings

    - Deprecated: Inherited "AUTOLOAD" for non-methods

    - Previously deprecated %OVERLOAD is no longer usable

    - Subroutine arguments created only when they're modified

    - Group vector changeable with $)

    - Fixed parsing of $$\<digit\>, &$\<digit\>, etc.

    - Fixed localization of $\<digit\>, $&, etc.

    - No resetting of $. on implicit close

    - "wantarray" may return undef

    - "eval EXPR" determines value of EXPR in scalar context

    - Changes to tainting checks

    No **glob()** or \<\*\>, No spawning if tainted `$CDPATH`, `$ENV`, `$BASH_ENV`, No spawning if tainted `$TERM` doesn't look like a terminal name

  - New Opcode module and revised Safe module

    - Embedding improvements

    - Internal change: FileHandle class based on IO::\* classes

    - Internal change: PerlIO abstraction interface

    - New and changed syntax

    `$coderef`-\>(PARAMS)

  - New and changed builtin constants

    \_\_PACKAGE\_\_

  - New and changed builtin variables

    $^E, $^H, $^M

  - New and changed builtin functions

    delete on slices, flock, printf and sprintf, keys as an lvalue, **my()** in Control Structures, **pack()** and **unpack()**, **sysseek()**, use VERSION, use Module VERSION LIST, prototype(FUNCTION), srand, `$_` as Default, `"m//gc"` does not reset search position on failure, `"m//x"` ignores whitespace before ?\*+{}, nested `"sub{}"` closures work now, formats work right on changing lexicals

  - New builtin methods

    isa(CLASS), can(METHOD), VERSION( \[NEED\] )

  - TIEHANDLE now supported

    TIEHANDLE classname, LIST, PRINT this, LIST, PRINTF this, LIST, READ this LIST, READLINE this, GETC this, DESTROY this

  - Malloc enhancements

    \-DPERL\_EMERGENCY\_SBRK, -DPACK\_MALLOC, -DTWO\_POT\_OPTIMIZE

  - Miscellaneous efficiency enhancements

    - Support for More Operating Systems

  - Win32

    - Plan 9

    - QNX

    - AmigaOS

    - Pragmata

  use autouse MODULE =\> qw(sub1 sub2 sub3), use blib, use blib 'dir', use constant NAME =\> VALUE, use locale, use ops, use vmsish

- Modules

  - Required Updates

    - Installation directories

    - Module information summary

    - Fcntl

    - IO

    - Math::Complex

    - Math::Trig

    - DB\_File

    - Net::Ping

    - Object-oriented overrides for builtin operators

    - Utility Changes

  - pod2html

    Sends converted HTML to standard output

  - xsubpp

    `"void"` XSUBs now default to returning nothing

- C Language API Changes

  `"gv_fetchmethod"` and `"perl_call_sv"`, `"perl_eval_pv"`, Extended API for manipulating hashes

- Documentation Changes

  perldelta, perlfaq, perllocale, perltoot, perlapio, perlmodlib, perldebug, perlsec

- New Diagnostics

  "my" variable `%s` masks earlier declaration in same scope, `%s` argument is not a HASH element or slice, Allocation too large: `%lx`, Allocation too large, Applying `%s` to `%s` will act on scalar(%s), Attempt to free nonexistent shared string, Attempt to use reference as lvalue in substr, Bareword "%s" refers to nonexistent package, Can't redefine active sort subroutine `%s`, Can't use bareword ("%s") as `%s` ref while "strict refs" in use, Cannot resolve method \`%s' overloading \`%s' in package \`%s', Constant subroutine `%s` redefined, Constant subroutine `%s` undefined, Copy method did not return a reference, Died, Exiting pseudo-block via `%s`, Identifier too long, Illegal character `%s` (carriage return), Illegal switch in PERL5OPT: `%s`, Integer overflow in hex number, Integer overflow in octal number, internal error: glob failed, Invalid conversion in `%s:` "%s", Invalid type in pack: '%s', Invalid type in unpack: '%s', Name "%s::%s" used only once: possible typo, Null picture in formline, Offset outside string, Out of memory!, Out of memory during request for `%s`, panic: frexp, Possible attempt to put comments in **qw()** list, Possible attempt to separate words with commas, Scalar value @%s{%s} better written as $%s{%s}, Stub found while resolving method \`%s' overloading \`%s' in `%s`, Too late for "**-T**" option, untie attempted while `%d` inner references still exist, Unrecognized character `%s`, Unsupported function fork, Use of "$$\<digit\>" to mean "${$}\<digit\>" is deprecated, Value of `%s` can be "0"; test with **defined()**, Variable "%s" may be unavailable, Variable "%s" will not stay shared, Warning: something's wrong, Ill-formed logical name \|%s\| in prime\_env\_iter, Got an error from DosAllocMem, Malformed PERLLIB\_PREFIX, PERL\_SH\_DIR too long, Process terminated by SIG%s

- BUGS

  - SEE ALSO

  - HISTORY

  ### perlbook - Books about and related to Perl

- DESCRIPTION

  - The most popular books

    *Programming Perl* (the "Camel Book"):, *The Perl Cookbook* (the "Ram Book"):, *Learning Perl*  (the "Llama Book"), *Intermediate Perl* (the "Alpaca Book")

  - References

    *Perl 5 Pocket Reference*, *Perl Debugger Pocket Reference*, *Regular* *Expression Pocket Reference*

  - Tutorials

    *Beginning Perl*, *Learning Perl* (the "Llama Book"), *Intermediate* *Perl* (the "Alpaca Book"), *Mastering Perl*, *Effective Perl Programming*

  - Task-Oriented

    *Writing Perl Modules for CPAN*, *The Perl Cookbook*, *Automating System* *Administration with Perl*, *Real World SQL Server Administration with* *Perl*

  - Special Topics

    *Regular Expressions Cookbook*, *Programming the Perl DBI*, *Perl Best* *Practices*, *Higher-Order Perl*, *Mastering Regular Expressions*, *Network Programming with Perl*, *Perl Template Toolkit*, *Object* *Oriented Perl*, *Data Munging with Perl*, *Mastering Perl/Tk*, *Extending and Embedding Perl*, *Pro Perl Debugging*

  - Free (as in beer) books

    - Other interesting, non-Perl books

    *Programming Pearls*, *More Programming Pearls*

  - A note on freshness

    - Get your book listed

    ### perlcommunity - a brief overview of the Perl community

- DESCRIPTION

  - Where to Find the Community

    - Mailing Lists and Newsgroups

    - IRC

    - Websites

    \<https://perl.com/\>, \<https://blogs.perl.org/\>, \<https://perl.theplanetarium.org/\>, \<https://perlweekly.com/\>, \<https://www.perlmonks.org/\>, \<https://stackoverflow.com/\>

  - User Groups

    - Workshops

    - Hackathons

    - Conventions

    The Perl Conference, OSCON

  - Calendar of Perl Events

    - AUTHOR

  ### perldoc - Look up Perl documentation in Pod format.

- SYNOPSIS

  - DESCRIPTION

  - OPTIONS

  **-h**, **-D**, **-t**, **-u**, **-m** *module*, **-l**, **-U**, **-F**, **-f** *perlfunc*, **-q** *perlfaq-search-regexp*, **-a** *perlapifunc*, **-v** *perlvar*, **-T**, **-d** *destination-filename*, **-o** *output-formatname*, **-M** *module-name*, **-w** *option:value* or **-w** *option*, **-X**, **-L** *language\_code*, **PageName\|ModuleName\|ProgramName\|URL**, **-n** *some-formatter*, **-r**, **-i**, **-V**

- SECURITY

  - ENVIRONMENT

  - CHANGES

  - SEE ALSO

  - AUTHOR

  ### perlexperiment - A listing of experimental features in Perl

- DESCRIPTION

  - Current experiments

    Smart match (`"~~"`), Pluggable keywords, Aliasing via reference, use re 'strict';, Declaring a reference to a variable, There is an `"installhtml"` target in the Makefile, (Limited) Variable-length look-behind, Unicode private use character hooks, Unicode property wildcards, try/catch control structure, Use of `@_` within subroutine signatures, The builtin namespace, The defer block modifier, Extra paired delimiters for quote-like operators

  - Accepted features

    64-bit support, die accepts a reference, DB module, Weak references, Internal file glob, **fork()** emulation, -Dusemultiplicity -Duseithreads, Support for long doubles, The `"\N"` regex character class, `"(?{code})"` and `"(??{ code })"`, Linux abstract Unix domain sockets, Lvalue subroutines, Backtracking control verbs, The `":pop"` IO pseudolayer, `"\s"` in regexp matches vertical tab, Postfix dereference syntax, Lexical subroutines, String- and number-specific bitwise operators, Alphabetic assertions, Script runs, The infix `"isa"` operator, Subroutine signatures, Regular Expression Set Operations, try/catch control structure, The "const" attribute, for loop with multiple iteration variables

  - Removed features

    5\.005-style threading, perlcc, The pseudo-hash data type, GetOpt::Long Options can now take multiple values at once (experimental), Assertions, Test::Harness::Straps, `"legacy"`, Lexical `$_`, Array and hash container functions accept references, `"our"` can have an experimental optional attribute `"unique"`, The `":win32"` IO pseudolayer

- SEE ALSO

  - AUTHORS

  - COPYRIGHT

  - LICENSE

  ### perlartistic - the Perl Artistic License

- SYNOPSIS

  - DESCRIPTION

  - The "Artistic License"

  - Preamble

    - Definitions

    "Package", "Standard Version", "Copyright Holder", "You", "Reasonable copying fee", "Freely Available"

  - Conditions

    a), b), c), d), a), b), c), d)

### perlgpl - the GNU General Public License, version 1

- SYNOPSIS

  - DESCRIPTION

  - GNU GENERAL PUBLIC LICENSE

  ### perlaix - Perl version 5 on IBM AIX (UNIX) systems

- DESCRIPTION

  - Compiling Perl 5 on AIX

    - Supported Compilers

    - Incompatibility with AIX Toolbox lib gdbm

    - Perl 5 was successfully compiled and tested on:

    - Building Dynamic Extensions on AIX

    - Using Large Files with Perl

    - Threaded Perl

    - 64-bit Perl

    - Long doubles

    - Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/32-bit)

    - Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (32-bit)

    - Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/64-bit)

    - Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64-bit)

    - Compiling Perl 5 on AIX 7.1.0

    - Compiling Perl 5 on older AIX versions up to 4.3.3

    - OS level

    - Building Dynamic Extensions on AIX \< 5L

    - The IBM ANSI C Compiler

    - The usenm option

    - Using GNU's gcc for building Perl

    - Using Large Files with Perl \< 5L

    - Threaded Perl \< 5L

    - 64-bit Perl \< 5L

    - AIX 4.2 and extensions using C++ with statics

    - AUTHORS

  ### perlamiga - Perl under AmigaOS 4.1

- NOTE

  - SYNOPSIS

  - DESCRIPTION

  - Prerequisites for running Perl 5.22.1 under AmigaOS 4.1

    **AmigaOS 4.1 update 6 with all updates applied as of 9th October 2013**, **newlib.library version 53.28 or greater**, **AmigaOS SDK**, **abc-shell**

  - Starting Perl programs under AmigaOS 4.1

    - Limitations of Perl under AmigaOS 4.1

    **Nested Piped programs can crash when run from older abc-shells**, **Incorrect or unexpected command line unescaping**, **Starting subprocesses** **via open has limitations**, If you find any other limitations or bugs then let me know

- INSTALLATION

  - Amiga Specific Modules

  - Amiga::ARexx

    - Amiga::Exec

    - BUILDING

  - CHANGES

  **August 2015**, Port to Perl 5.22, Add handling of NIL: to **afstat()**, Fix inheritance of environment variables by subprocesses, Fix exec, and exit in "forked" subprocesses, Fix issue with newlib's unlink, which could cause infinite loops, Add **flock()** emulation using IDOS-\>LockRecord thanks to Tony Cook for the suggestion, Fix issue where kill was using the wrong kind of process ID, **27th November 2013**, Create new installation system based on installperl links and Amiga protection bits now set correctly, Pod now defaults to text, File::Spec should now recognise an Amiga style absolute path as well as an Unix style one. Relative paths must always be Unix style, **20th November 2013**, Configured to use SDK:Local/C/perl to start standard scripts, Added Amiga::Exec module with support for **Wait()** and AmigaOS signal numbers, **10th October 13**

- SEE ALSO

  ### perlandroid - Perl under Android

- SYNOPSIS

  - DESCRIPTION

  - Cross-compilation

  - Get the Android Native Development Kit (NDK)

    - Determine the architecture you'll be cross-compiling for

    - Set up a standalone toolchain

    - adb or ssh?

    - Configure and beyond

    - Native Builds

  - CCTools

    - Termux

    - AUTHOR

  ### perlbs2000 - building and installing Perl for BS2000.

- SYNOPSIS

  - DESCRIPTION

  - gzip on BS2000

    - bison on BS2000

    - Unpacking Perl Distribution on BS2000

    - Compiling Perl on BS2000

    - Testing Perl on BS2000

    - Installing Perl on BS2000

    - Using Perl in the Posix-Shell of BS2000

    - Using Perl in "native" BS2000

    - Floating point anomalies on BS2000

    - Using PerlIO and different encodings on ASCII and EBCDIC partitions

    - AUTHORS

  - SEE ALSO

  - Mailing list

    - HISTORY

  ### perlcygwin - Perl for Cygwin

- SYNOPSIS

  - PREREQUISITES FOR COMPILING PERL ON CYGWIN

  - Cygwin = GNU+Cygnus+Windows (Don't leave UNIX without it)

    - Cygwin Configuration

    `"PATH"`, *nroff*

- CONFIGURE PERL ON CYGWIN

  - Stripping Perl Binaries on Cygwin

    - Optional Libraries for Perl on Cygwin

    `"-lcrypt"`, `"-lgdbm_compat"` (`"use GDBM_File"`), `"-ldb"` (`"use DB_File"`), `"cygserver"` (`"use IPC::SysV"`), `"-lutil"`

  - Configure-time Options for Perl on Cygwin

    `"-Uusedl"`, `"-Dusemymalloc"`, `"-Uuseperlio"`, `"-Dusemultiplicity"`, `"-Uuse64bitint"`, `"-Duselongdouble"`, `"-Uuseithreads"`, `"-Duselargefiles"`, `"-Dmksymlinks"`

- MAKE ON CYGWIN

  - TEST ON CYGWIN

  - File Permissions on Cygwin

    - NDBM\_File and ODBM\_File do not work on FAT filesystems

    - fork() failures in io\_\* tests

    - Specific features of the Cygwin port

  - Script Portability on Cygwin

    Pathnames, Text/Binary, PerlIO, *.exe*, Cygwin vs. Windows process ids, Cygwin vs. Windows errors, rebase errors on fork or system, Miscellaneous

  - Prebuilt methods:

    `"Cwd::cwd"`, `"Cygwin::pid_to_winpid"`, `"Cygwin::winpid_to_pid"`, `"Cygwin::win_to_posix_path"`, `"Cygwin::posix_to_win_path"`, `Cygwin::mount_table()`, `"Cygwin::mount_flags"`, `"Cygwin::is_binmount"`, `"Cygwin::sync_winenv"`

- INSTALL PERL ON CYGWIN

  - MANIFEST ON CYGWIN

  Documentation, Build, Configure, Make, Install, Tests, Compiled Perl Source, Compiled Module Source, Perl Modules/Scripts, Perl Module Tests

- BUGS ON CYGWIN

  - AUTHORS

  - HISTORY

  ### perlfreebsd - Perl version 5 on FreeBSD systems

- DESCRIPTION

  - FreeBSD core dumps from readdir\_r with ithreads

    - $^X doesn't always contain a full path in FreeBSD

    - AUTHOR

  ### perlhaiku - Perl version 5.10+ on Haiku

- DESCRIPTION

  - BUILD AND INSTALL

  - KNOWN PROBLEMS

  - CONTACT

  ### perlhpux - Perl version 5 on Hewlett-Packard Unix (HP-UX) systems

- DESCRIPTION

  - Using perl as shipped with HP-UX

    - Using perl from HP's porting centre

    - Other prebuilt perl binaries

    - Compiling Perl 5 on HP-UX

    - PA-RISC

    - PA-RISC 1.0

    - PA-RISC 1.1

    - PA-RISC 2.0

    - Portability Between PA-RISC Versions

    - Itanium Processor Family (IPF) and HP-UX

    - Itanium, Itanium 2 & Madison 6

    - HP-UX versions

    - Building Dynamic Extensions on HP-UX

    - The HP ANSI C Compiler

    - The GNU C Compiler

    - Using Large Files with Perl on HP-UX

    - Threaded Perl on HP-UX

    - 64-bit Perl on HP-UX

    - Oracle on HP-UX

    - GDBM and Threads on HP-UX

    - NFS filesystems and [**utime**(2)](/utime/2.md) on HP-UX

    - HP-UX Kernel Parameters (maxdsiz) for Compiling Perl

    - nss\_delete core dump from op/pwent or op/grent

  - error: pasting ")" and "l" does not give a valid preprocessing token

  - Redeclaration of "sendpath" with a different storage class specifier

  - Miscellaneous

  - AUTHOR

  ### perlhurd - Perl version 5 on Hurd

- DESCRIPTION

  - Known Problems with Perl on Hurd

    - AUTHOR

  ### perlirix - Perl version 5 on Irix systems

- DESCRIPTION

  - Building 32-bit Perl in Irix

    - Building 64-bit Perl in Irix

    - About Compiler Versions of Irix

    - Linker Problems in Irix

    - Malloc in Irix

    - Building with threads in Irix

    - Irix 5.3

    - AUTHOR

  ### perllinux - Perl version 5 on Linux systems

- DESCRIPTION

  - Deploying Perl on Linux

    - Experimental Support for Sun Studio Compilers for Linux OS

    - AUTHOR

  ### perlmacosx - Perl under Mac OS X

- SYNOPSIS

  - DESCRIPTION

  - Installation Prefix

    - SDK support

    - Universal Binary support

    - 64-bit PPC support

    - libperl and Prebinding

    - Updating Apple's Perl

    - Known problems

    - Cocoa

    - Starting From Scratch

  - AUTHOR

  - DATE

  ### perlopenbsd - Perl version 5 on OpenBSD systems

- DESCRIPTION

  - OpenBSD core dumps from getprotobyname\_r and getservbyname\_r with ithreads

    - AUTHOR

  ### perlos2 - Perl under OS/2, DOS, Win0.3\*, Win0.95 and WinNT.

- SYNOPSIS

  - DESCRIPTION

  - Target

    - Other OSes

    - Prerequisites

    EMX, RSX, HPFS, pdksh

  - Starting Perl programs under OS/2 (and DOS and...)

    - Starting OS/2 (and DOS) programs under Perl

    - Frequently asked questions

  - "It does not work"

    - I cannot run external programs

    - I cannot embed perl into my program, or use *perl.dll* from my program.

    Is your program EMX-compiled with `"-Zmt -Zcrtdll"`?, Did you use ExtUtils::Embed?

  - \`\` and pipe-"open" do not work under DOS

    - Cannot start "find.exe "pattern" file"

    - INSTALLATION

  - Automatic binary installation

    `"PERL_BADLANG"`, `"PERL_BADFREE"`, *Config.pm*

  - Manual binary installation

    Perl VIO and PM executables (dynamically linked), Perl\_ VIO executable (statically linked), Executables for Perl utilities, Main Perl library, Additional Perl modules, Tools to compile Perl modules, Manpages for Perl and utilities, Manpages for Perl modules, Source for Perl documentation, Perl manual in *.INF* format, Pdksh

  - **Warning**

    - Accessing documentation

  - OS/2 *.INF* file

    - Plain text

    - Manpages

    - HTML

    - GNU "info" files

    - *PDF* files

    - "LaTeX" docs

    - BUILD

  - The short story

    - Prerequisites

    - Getting perl source

    - Application of the patches

    - Hand-editing

    - Making

    - Testing

    A lot of `"bad free"`, Process terminated by SIGTERM/SIGINT, *op/fs.t*, 18, 25, *op/stat.t*

  - Installing the built perl

    - "a.out"-style build

    - Building a binary distribution

  - Building custom *.EXE* files

  - Making executables with a custom collection of statically loaded extensions

    - Making executables with a custom search-paths

    - Build FAQ

  - Some "/" became "\\" in pdksh

    - 'errno' - unresolved external

    - Problems with tr or sed

    - Some problem (forget which ;-)

    - Library ... not found

    - Segfault in make

    - op/sprintf test failure

    - Specific (mis)features of OS/2 port

  - "setpriority", "getpriority"

    - system()

    - "extproc" on the first line

    - Additional modules:

    - Prebuilt methods:

    `"File::Copy::syscopy"`, `"DynaLoader::mod2fname"`,  `Cwd::current_drive()`,\
      `Cwd::sys_chdir(name)`,  `Cwd::change_drive(name)`,  `Cwd::sys_is_absolute(name)`,	`Cwd::sys_is_rooted(name)`,  `Cwd::sys_is_relative(name)`,	`Cwd::sys_cwd(name)`,  `"Cwd::sys_abspath(name, dir)"`,  `Cwd::extLibpath([type])`,  `"Cwd::extLibpath_set( path [, type ] )"`, `"OS2::Error(do_harderror,do_exception)"`, `OS2::Errors2Drive(drive)`, **OS2::SysInfo()**, **OS2::BootDrive()**, `OS2::MorphPM(serve)`, `OS2::UnMorphPM(serve)`, `OS2::Serve_Messages(force)`, `"OS2::Process_Messages(force [, cnt])"`, `"OS2::_control87(new,mask)"`, **OS2::get\_control87()**, `"OS2::set_control87_em(new=MCW_EM,mask=MCW_EM)"`, `"OS2::DLLname([how [, \&xsub]])"`

  - Prebuilt variables:

    `$OS2::emx_rev`, `$OS2::emx_env`, `$OS2::os_ver`, `$OS2::is_aout`, `$OS2::can_fork`, `$OS2::nsyserror`

  - Misfeatures

    - Modifications

    `"popen"`, `"tmpnam"`, `"tmpfile"`, `"ctermid"`, `"stat"`, `"mkdir"`, `"rmdir"`, `"flock"`

  - Identifying DLLs

    - Centralized management of resources

    `"HAB"`, `"HMQ"`, Treating errors reported by OS/2 API, `CheckOSError(expr)`, `CheckWinError(expr)`, `SaveWinError(expr)`, `"SaveCroakWinError(expr,die,name1,name2)"`, `"WinError_2_Perl_rc"`, `"FillWinError"`, `FillOSError(rc)`, Loading DLLs and ordinals in DLLs

- Perl flavors

  - *perl.exe*

    - *perl\_.exe*

    - *perl\_\_.exe*

    - *perl\_\_\_.exe*

    - Why strange names?

    - Why dynamic linking?

    - Why chimera build?

    - ENVIRONMENT

  - "PERLLIB\_PREFIX"

    - "PERL\_BADLANG"

    - "PERL\_BADFREE"

    - "PERL\_SH\_DIR"

    - "USE\_PERL\_FLOCK"

    - "TMP" or "TEMP"

    - Evolution

  - Text-mode filehandles

    - Priorities

    - DLL name mangling: pre 5.6.2

    - DLL name mangling: 5.6.2 and beyond

    Global DLLs, specific DLLs, `"BEGINLIBPATH"` and `"ENDLIBPATH"`, *.* from `"LIBPATH"`

  - DLL forwarder generation

    - Threading

    - Calls to external programs

    - Memory allocation

    - Threads

    `"COND_WAIT"`, *os2.c*

- BUGS

  - AUTHOR

  - SEE ALSO

  ### perlos390 - building and installing Perl for z/OS (previously called OS/390)

- SYNOPSIS

  - DESCRIPTION

  - Tools

    - Building a 64-bit Dynamic ASCII Perl

    - Building a 64-bit Dynamic EBCDIC Perl

    - Setup and utilities for Perl on OS/390

    - Useful files for trouble-shooting

    - Build Anomalies with Perl on OS/390

    - Testing Anomalies with Perl on OS/390

    - Usage Hints for Perl on z/OS

    - Modules and Extensions for Perl on z/OS (Static Only)

    - Running Perl on z/OS

    For ASCII Only:, For ASCII or EBCDIC:

- AUTHORS

  - OTHER SITES

  - HISTORY

  ### perlos400 - Perl version 5 on OS/400

- DESCRIPTION

  - Compiling Perl for OS/400 PASE

    - Installing Perl in OS/400 PASE

    - Using Perl in OS/400 PASE

    - Known Problems

    - Perl on ILE

    - AUTHORS

  ### perlplan9 - Plan 9-specific documentation for Perl

- DESCRIPTION

  - Invoking Perl

    - What's in Plan 9 Perl

    - What's not in Plan 9 Perl

    - Perl5 Functions not currently supported in Plan 9 Perl

    - Signals in Plan 9 Perl

    - COMPILING AND INSTALLING PERL ON PLAN 9

  - Installing Perl Documentation on Plan 9

    - BUGS

  - Revision date

  - AUTHOR

  ### perlqnx - Perl version 5 on QNX

- DESCRIPTION

  - Required Software for Compiling Perl on QNX4

    /bin/sh, ar, nm, cpp, make

  - Outstanding Issues with Perl on QNX4

    - QNX auxiliary files

    qnx/ar, qnx/cpp

  - Outstanding issues with perl under QNX6

    - Cross-compilation

    - AUTHOR

  ### perlriscos - Perl version 5 for RISC OS

- DESCRIPTION

  - BUILD

  - AUTHOR

  ### perlsolaris - Perl version 5 on Solaris systems

- DESCRIPTION

  - Solaris Version Numbers

    - RESOURCES

  Solaris FAQ, Precompiled Binaries, Solaris Documentation

- SETTING UP

  - File Extraction Problems on Solaris

    - Compiler and Related Tools on Solaris

    - Environment for Compiling perl on Solaris

    - RUN CONFIGURE

  - 64-bit perl on Solaris

    - Threads in perl on Solaris

    - Malloc Issues with perl on Solaris

    - MAKE PROBLEMS

  Dynamic Loading Problems With GNU as and GNU ld, ld.so.1: ./perl: fatal: relocation error:, dlopen: stub interception failed, #error "No DATAMODEL\_NATIVE specified", sh: ar: not found

- MAKE TEST

  - op/stat.t test 4 in Solaris

    - nss\_delete core dump from op/pwent or op/grent

    - CROSS-COMPILATION

  - PREBUILT BINARIES OF PERL FOR SOLARIS

  - RUNTIME ISSUES FOR PERL ON SOLARIS

  - Limits on Numbers of Open Files on Solaris

    - SOLARIS-SPECIFIC MODULES

  - SOLARIS-SPECIFIC PROBLEMS WITH MODULES

  - Proc::ProcessTable on Solaris

    - BSD::Resource on Solaris

    - Net::SSLeay on Solaris

    - SunOS 4.x

  - AUTHOR

  ### perlsynology - Perl 5 on Synology DSM systems

- DESCRIPTION

  - Setting up the build environment

    - Compiling Perl 5

    - Known problems

    Error message "No error definitions found", *ext/DynaLoader/t/DynaLoader.t*

  - Smoke testing Perl

    - Adding libraries

    - REVISION

  - AUTHOR

  ### perltru64 - Perl version 5 on Tru64 (formerly known as Digital UNIX formerly known as DEC OSF/1) systems

- DESCRIPTION

  - Compiling Perl 5 on Tru64

    - Using Large Files with Perl on Tru64

    - Threaded Perl on Tru64

    - Long Doubles on Tru64

    - DB\_File tests failing on Tru64

    - 64-bit Perl on Tru64

    - Warnings about floating-point overflow when compiling Perl on Tru64

    - Testing Perl on Tru64

  - ext/ODBM\_File/odbm Test Failing With Static Builds

  - Perl Fails Because Of Unresolved Symbol sockatmark

  - read\_cur\_obj\_info: bad file magic number

  - AUTHOR

  ### perlvms - VMS-specific documentation for Perl

- DESCRIPTION

  - Installation

  - Organization of Perl Images

  - Core Images

    - Perl Extensions

    - Installing static extensions

    - Installing dynamic extensions

    - File specifications

  - Syntax

    - Filename Case

    - Symbolic Links

    - Wildcard expansion

    - Pipes

    - PERL5LIB and PERLLIB

  - The Perl Forked Debugger

  - PERL\_VMS\_EXCEPTION\_DEBUG

  - Command line

  - I/O redirection and backgrounding

    - Command line switches

    \-i, -S, -u

- Perl functions

  File tests, backticks, binmode FILEHANDLE, crypt PLAINTEXT, USER, die, dump, exec LIST, fork, getpwent, getpwnam, getpwuid, gmtime, kill, qx//, select (system call), stat EXPR, system LIST, time, times, unlink LIST, utime LIST, waitpid PID,FLAGS

- Perl variables

  `%ENV`, CRTL\_ENV, CLISYM\_\[LOCAL\], Any other string, $!, $^E, $?, $\|

- Standard modules with VMS-specific differences

  - SDBM\_File

    - Revision date

  - AUTHOR

  ### perlvos - Perl for Stratus OpenVOS

- SYNOPSIS

  - BUILDING PERL FOR OPENVOS

  - INSTALLING PERL IN OPENVOS

  - USING PERL IN OPENVOS

  - Restrictions of Perl on OpenVOS

    - TEST STATUS

  - SUPPORT STATUS

  - AUTHOR

  - LAST UPDATE

  ### perlwin32 - Perl under Windows

- SYNOPSIS

  - DESCRIPTION

  \<https://osdn.net/projects/mingw/\>, \<https://mingw-w64.org\>

  - Setting Up Perl on Windows

    Make, Command Shell, Microsoft Visual C++, Microsoft Visual C++ 2015-2022 Community Edition, Microsoft C++ Build Tools, GCC, Intel C++ Compiler

  - Building

    - Testing Perl on Windows

    - Installation of Perl on Windows

    - Usage Hints for Perl on Windows

    Environment Variables, File Globbing, Using perl from the command line, Building Extensions, Command-line Wildcard Expansion, Notes on 64-bit Windows

  - Running Perl Scripts

    - Miscellaneous Things

    - BUGS AND CAVEATS

  - ACKNOWLEDGEMENTS

  - AUTHORS

  Gary Ng \<71564.1743@CompuServe.COM\>, Gurusamy Sarathy \<gsar@activestate.com\>, Nick Ing-Simmons \<nick@ing-simmons.net\>, Jan Dubois \<jand@activestate.com\>, Steve Hay \<steve.m.hay@googlemail.com\>

- SEE ALSO

  - HISTORY

  ### perlboot - Links to information on object-oriented programming in Perl

- DESCRIPTION

  ### perlbot - Links to information on object-oriented programming in Perl

- DESCRIPTION

  ### perlrepository - Links to current information on the Perl source repository

- DESCRIPTION

  ### perltodo - Link to the Perl to-do list

- DESCRIPTION

  ### perltooc - Links to information on object-oriented programming in Perl

- DESCRIPTION

  ### perltoot - Links to information on object-oriented programming in Perl

- DESCRIPTION

  ## PRAGMA DOCUMENTATION

### attributes - get/set subroutine or variable attributes

- SYNOPSIS

  - DESCRIPTION

  - What "import" does

    - Built-in Attributes

    lvalue, method, prototype(..), const, shared

  - Available Subroutines

    get, reftype

  - Package-specific Attribute Handling

    FETCH\_*type*\_ATTRIBUTES, MODIFY\_*type*\_ATTRIBUTES

  - Syntax of Attribute Lists

    - EXPORTS

  - Default exports

    - Available exports

    - Export tags defined

    - EXAMPLES

  - MORE EXAMPLES

  - SEE ALSO

  ### autodie - Replace functions with ones that succeed or die with lexical scope

- SYNOPSIS

  - DESCRIPTION

  - EXCEPTIONS

  - CATEGORIES

  - FUNCTION SPECIFIC NOTES

  - print

    - flock

    - system/exec

    - GOTCHAS

  - DIAGNOSTICS

  :void cannot be used with lexical scope, No user hints defined for `%s`

- Tips and Tricks

  - Importing autodie into another namespace than "caller"

    - BUGS

  - autodie and string eval

    - REPORTING BUGS

    - FEEDBACK

  - AUTHOR

  - LICENSE

  - SEE ALSO

  - ACKNOWLEDGEMENTS

  ### autodie::Scope::Guard - Wrapper class for calling subs at end of scope

- SYNOPSIS

  - DESCRIPTION

  - Methods

    - AUTHOR

  - LICENSE

  ### autodie::Scope::GuardStack - Hook stack for managing scopes via %^H

- SYNOPSIS

  - DESCRIPTION

  - Methods

    - AUTHOR

  - LICENSE

  ### autodie::Util - Internal Utility subroutines for autodie and Fatal

- SYNOPSIS

  - DESCRIPTION

  - Methods

    - AUTHOR

  - LICENSE

  ### autodie::exception - Exceptions from autodying functions.

- SYNOPSIS

  - DESCRIPTION

  - Common Methods

    - Advanced methods

  - SEE ALSO

  - LICENSE

  - AUTHOR

  ### autodie::exception::system - Exceptions from autodying system().

- SYNOPSIS

  - DESCRIPTION

  - stringify

  - LICENSE

  - AUTHOR

  ### autodie::hints - Provide hints about user subroutines to autodie

- SYNOPSIS

  - DESCRIPTION

  - Introduction

    - What are hints?

    - Example hints

    - Manually setting hints from within your program

  - Adding hints to your module

  - Insisting on hints

  - Diagnostics

  Attempts to set\_hints\_for unidentifiable subroutine, fail hints cannot be provided with either scalar or list hints for `%s`, `%s` hint missing for `%s`

- ACKNOWLEDGEMENTS

  - AUTHOR

  - LICENSE

  - SEE ALSO

  ### autodie::skip - Skip a package when throwing autodie exceptions

- SYNPOSIS

  - DESCRIPTION

  - AUTHOR

  - LICENSE

  - SEE ALSO

  ### autouse - postpone load of modules until a function is used

- SYNOPSIS

  - DESCRIPTION

  - WARNING

  - AUTHOR

  - SEE ALSO

  ### base - Establish an ISA relationship with base classes at compile time

- SYNOPSIS

  - DESCRIPTION

  - DIAGNOSTICS

  Base class package "%s" is empty, Class 'Foo' tried to inherit from itself

- HISTORY

  - CAVEATS

  - SEE ALSO

  ### bigfloat - transparent big floating point number support for Perl

- SYNOPSIS

  - DESCRIPTION

  - Options

    a or accuracy, p or precision, t or trace, l, lib, try, or only, hex, oct, v or version

  - Math Library

    - Method calls

    - Methods

    **inf()**, **NaN()**, e, PI, **bexp()**, **bpi()**, **accuracy()**, **precision()**, **round\_mode()**, **div\_scale()**, **upgrade()**, **downgrade()**, **in\_effect()**

- CAVEATS

  Hexadecimal, octal, and binary floating point literals, Operator vs literal overloading, Ranges, **in\_effect()**, **hex()**/**oct()**

- EXAMPLES

  - BUGS

  - SUPPORT

  GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - SEE ALSO

  - AUTHORS

  ### bigint - transparent big integer support for Perl

- SYNOPSIS

  - DESCRIPTION

  - use integer vs. use bigint

    - Options

    a or accuracy, p or precision, t or trace, l, lib, try, or only, hex, oct, v or version

  - Math Library

    - Method calls

    - Methods

    **inf()**, **NaN()**, e, PI, **bexp()**, **bpi()**, **accuracy()**, **precision()**, **round\_mode()**, **div\_scale()**, **in\_effect()**

- CAVEATS

  Hexadecimal, octal, and binary floating point literals, Operator vs literal overloading, Ranges, **in\_effect()**, **hex()**/**oct()**

- EXAMPLES

  - BUGS

  - SUPPORT

  GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - SEE ALSO

  - AUTHORS

  ### bignum - transparent big number support for Perl

- SYNOPSIS

  - DESCRIPTION

  - Literal numeric constants

    - Upgrading and downgrading

    - Overloading

    - Options

    a or accuracy, p or precision, l, lib, try, or only, hex, oct, v or version

  - Math Library

    - Method calls

    - Methods

    **inf()**, **NaN()**, e, PI, **bexp()**, **bpi()**, **accuracy()**, **precision()**, **round\_mode()**, **div\_scale()**, **upgrade()**, **downgrade()**, **in\_effect()**

- CAVEATS

  The **upgrade()** and **downgrade()** methods, Hexadecimal, octal, and binary floating point literals, Operator vs literal overloading, Ranges, **in\_effect()**, **hex()**/**oct()**

- EXAMPLES

  - BUGS

  - SUPPORT

  GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - SEE ALSO

  - AUTHORS

  ### bigrat - transparent big rational number support for Perl

- SYNOPSIS

  - DESCRIPTION

  - Options

    a or accuracy, p or precision, t or trace, l, lib, try, or only, hex, oct, v or version

  - Math Library

    - Method calls

    - Methods

    **inf()**, **NaN()**, e, PI, **bexp()**, **bpi()**, **accuracy()**, **precision()**, **round\_mode()**, **div\_scale()**, **in\_effect()**

- CAVEATS

  Hexadecimal, octal, and binary floating point literals, Operator vs literal overloading, Ranges, **in\_effect()**, **hex()**/**oct()**

- EXAMPLES

  - BUGS

  - SUPPORT

  GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - SEE ALSO

  - AUTHORS

  ### blib - Use MakeMaker's uninstalled version of a package

- SYNOPSIS

  - DESCRIPTION

  - BUGS

  - AUTHOR

  ### builtin - Perl pragma to import built-in utility functions

- SYNOPSIS

  - DESCRIPTION

  - Lexical Import

    - Version Bundles

    - FUNCTIONS

  - true

    - false

    - is\_bool

    - inf

    - nan

    - weaken

    - unweaken

    - is\_weak

    - blessed

    - refaddr

    - reftype

    - created\_as\_string

    - created\_as\_number

    - stringify

    - ceil

    - floor

    - indexed

    - trim

    - is\_tainted

    - export\_lexically

    - load\_module

    - SEE ALSO

  ### bytes - Perl pragma to expose the individual bytes of characters

- NOTICE

  - SYNOPSIS

  - DESCRIPTION

  - LIMITATIONS

  - SEE ALSO

  ### charnames - access to Unicode character names and named character sequences; also define character names

- SYNOPSIS

  - DESCRIPTION

  - LOOSE MATCHES

  - ALIASES

  - CUSTOM ALIASES

  - charnames::string\_vianame(*name*)

  - charnames::vianame(*name*)

  - charnames::viacode(*code*)

  - CUSTOM TRANSLATORS

  - BUGS

  ### constant - Perl pragma to declare constants

- SYNOPSIS

  - DESCRIPTION

  - NOTES

  - List constants

    - Defining multiple constants at once

    - Magic constants

    - TECHNICAL NOTES

  - CAVEATS

  - SEE ALSO

  - BUGS

  - AUTHORS

  - COPYRIGHT & LICENSE

  ### deprecate - Perl pragma for deprecating the inclusion of a module in core

- SYNOPSIS

  - DESCRIPTION

  - Important Caveat

    - EXPORT

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### diagnostics, splain - produce verbose warning diagnostics

- SYNOPSIS

  - DESCRIPTION

  - The "diagnostics" Pragma

    - The *splain* Program

    - EXAMPLES

  - INTERNALS

  - BUGS

  - AUTHOR

  ### encoding - allows you to write your script in non-ASCII and non-UTF-8

- WARNING

  - SYNOPSIS

  - DESCRIPTION

  `"use encoding ['`*ENCNAME*`'] ;"`, `"use encoding `*ENCNAME*`,` `Filter=>1;"`, `"no encoding;"`

- OPTIONS

  - Setting "STDIN" and/or "STDOUT" individually

    - The ":locale" sub-pragma

    - CAVEATS

  - SIDE EFFECTS

    - DO NOT MIX MULTIPLE ENCODINGS

    - Prior to Perl v5.22

    - Prior to Encode version 1.87

    - Prior to Perl v5.8.1

    "NON-EUC" doublebyte encodings, `"tr///"`, Legend of characters above

- EXAMPLE - Greekperl

  - BUGS

  Thread safety, Can't be used by more than one module in a single program, Other modules using `"STDIN"` and `"STDOUT"` get the encoded stream, literals in regex that are longer than 127 bytes, EBCDIC, `"format"`, See also "CAVEATS" in encoding

- HISTORY

  - SEE ALSO

  ### encoding::warnings - Warn on implicit encoding conversions

- VERSION

  - NOTICE

  - SYNOPSIS

  - DESCRIPTION

  - Overview of the problem

    - Detecting the problem

    - Solving the problem

    Upgrade both sides to unicode-strings, Downgrade both sides to byte-strings, Specify the encoding for implicit byte-string upgrading, PerlIO layers for **STDIN** and **STDOUT**, Literal conversions, Implicit upgrading for byte-strings

- CAVEATS

  - SEE ALSO

  - AUTHORS

  - COPYRIGHT

  ### experimental - Experimental features made easy

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  `"args_array_with_signatures"` - allow `@_` to be used in signatured subs, `"array_base"` - allow the use of `$[` to change the starting index of `@array`, `"autoderef"` - allow push, each, keys, and other built-ins on references, `"bitwise"` - allow the new stringwise bit operators, `"builtin"` - allow the use of the functions in the builtin:: namespace, `"const_attr"` - allow the :const attribute on subs, `"declared_refs"` - enables aliasing via assignment to references, `"defer"` - enables the use of defer blocks, `"extra_paired_delimiters"` - enables the use of more paired string delimiters than the traditional four, `"<  >"`, `"( )"`, `"{ }"`, and `"[ ]"`, `"for_list"` - allows iterating over multiple values at a time with `"for"`, `"isa"` - allow the use of the `"isa"` infix operator, `"lexical_topic"` - allow the use of lexical `$_` via `"my $_"`, `"lexical_subs"` - allow the use of lexical subroutines, `"postderef"` - allow the use of postfix dereferencing expressions, `"postderef_qq"` - allow the use of postfix dereferencing expressions inside interpolating strings, `"re_strict"` - enables strict mode in regular expressions, `"refaliasing"` - allow aliasing via `"\$x = \$y"`, `"regex_sets"` - allow extended bracketed character classes in regexps, `"signatures"` - allow subroutine signatures (for named arguments), `"smartmatch"` - allow the use of `"~~"`, `"switch"` - allow the use of `"~~"`, given, and when, `"try"` - allow the use of `"try"` and `"catch"`, `"win32_perlio"` - allows the use of the :win32 IO layer

  - Ordering matters

    - Disclaimer

    - SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### feature - Perl pragma to enable new features

- SYNOPSIS

  - DESCRIPTION

  - Lexical effect

    - "no feature"

    - AVAILABLE FEATURES

  - The 'say' feature

    - The 'state' feature

    - The 'switch' feature

    - The 'unicode\_strings' feature

    - The 'unicode\_eval' and 'evalbytes' features

    - The 'current\_sub' feature

    - The 'array\_base' feature

    - The 'fc' feature

    - The 'lexical\_subs' feature

    - The 'postderef' and 'postderef\_qq' features

    - The 'signatures' feature

    - The 'refaliasing' feature

    - The 'bitwise' feature

    - The 'declared\_refs' feature

    - The 'isa' feature

    - The 'indirect' feature

    - The 'multidimensional' feature

    - The 'bareword\_filehandles' feature

    - The 'try' feature

    - The 'defer' feature

    - The 'extra\_paired\_delimiters' feature

    - The 'module\_true' feature

    - The 'class' feature

    - FEATURE BUNDLES

  - IMPLICIT LOADING

  - CHECKING FEATURES

  feature\_enabled($feature), feature\_enabled($feature, `$depth`), **features\_enabled()**, features\_enabled($depth), **feature\_bundle()**, feature\_bundle($depth)

### fields - compile-time class fields

- SYNOPSIS

  - DESCRIPTION

  new, phash

- SEE ALSO

  ### filetest - Perl pragma to control the filetest permission operators

- SYNOPSIS

  - DESCRIPTION

  - Consider this carefully

    - The "access" sub-pragma

    - Limitation with regard to "\_"

    ### if - "use" a Perl module if a condition holds

- SYNOPSIS

  - DESCRIPTION

  - "use if"

    - "no if"

    - BUGS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENCE

  ### integer - Perl pragma to use integer arithmetic instead of floating point

- SYNOPSIS

  - DESCRIPTION

  ### less - perl pragma to request less of something

- SYNOPSIS

  - DESCRIPTION

  - FOR MODULE AUTHORS

  - "BOOLEAN = less-\>of( FEATURE )"

    - "FEATURES = less-\>of()"

    - CAVEATS

  This probably does nothing, This works only on 5.10+

### lib - manipulate @INC at compile time

- SYNOPSIS

  - DESCRIPTION

  - Adding directories to @INC

    - Deleting directories from @INC

    - Restoring original @INC

    - CAVEATS

  - NOTES

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### locale - Perl pragma to use or avoid POSIX locales for built-in operations

- SYNOPSIS

  - DESCRIPTION

  ### mro - Method Resolution Order

- SYNOPSIS

  - DESCRIPTION

  - OVERVIEW

  - The C3 MRO

  - What is C3?

    - How does C3 work

    - Functions

  - mro::get\_linear\_isa($classname\[, $type\])

    - mro::set\_mro ($classname, $type)

    - mro::get\_mro($classname)

    - mro::get\_isarev($classname)

    - mro::is\_universal($classname)

    - **mro::invalidate\_all\_method\_caches()**

    - mro::method\_changed\_in($classname)

    - mro::get\_pkg\_gen($classname)

    - next::method

    - next::can

    - maybe::next::method

    - SEE ALSO

  - The original Dylan paper

    "/citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.19.3910&rep=rep1 &type=pdf" in http:

  - Python 2.3 MRO

    \<https://www.python.org/download/releases/2.3/mro/\>

  - Class::C3

    Class::C3

- AUTHOR

  ### ok - Alternative to Test::More::use\_ok

- SYNOPSIS

  - DESCRIPTION

  - CC0 1.0 Universal

  ### open - perl pragma to set default PerlIO layers for input and output

- SYNOPSIS

  - DESCRIPTION

  - IMPLEMENTATION DETAILS

  - SEE ALSO

  ### ops - Perl pragma to restrict unsafe operations when compiling

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  ### overload - Package for overloading Perl operations

- SYNOPSIS

  - DESCRIPTION

  - Fundamentals

    - Overloadable Operations

    `"not"`, `"neg"`, `"++"`, `"--"`, *Assignments*, *Non-mutators with a mutator* *variant*, `"int"`, *String, numeric, boolean, and regexp conversions*, *Iteration*, *File tests*, *Matching*, *Dereferencing*, *Special*

  - Magic Autogeneration

    - Special Keys for "use overload"

    defined, but FALSE, `"undef"`, TRUE

  - How Perl Chooses an Operator Implementation

    - Losing Overloading

    - Inheritance and Overloading

    Method names in the `"use overload"` directive, Overloading of an operation is inherited by derived classes

  - Run-time Overloading

    - Public Functions

    overload::StrVal(arg), overload::Overloaded(arg), overload::Method(obj,op)

  - Overloading Constants

    integer, float, binary, q, qr

- IMPLEMENTATION

  - COOKBOOK

  - Two-face Scalars

    - Two-face References

    - Symbolic Calculator

    - *Really* Symbolic Calculator

    - AUTHOR

  - SEE ALSO

  - DIAGNOSTICS

  Odd number of arguments for overload::constant, '%s' is not an overloadable type, '%s' is not a code reference, overload arg '%s' is invalid

- BUGS AND PITFALLS

  ### overloading - perl pragma to lexically control overloading

- SYNOPSIS

  - DESCRIPTION

  `"no overloading"`, `"no overloading @ops"`, `"use overloading"`, `"use` `overloading @ops"`

### parent - Establish an ISA relationship with base classes at compile time

- SYNOPSIS

  - DESCRIPTION

  - HISTORY

  - CAVEATS

  - SEE ALSO

  base, parent::versioned

- AUTHORS AND CONTRIBUTORS

  - MAINTAINER

  - LICENSE

  ### re - Perl pragma to alter regular expression behaviour

- SYNOPSIS

  - DESCRIPTION

  - 'taint' mode

    - 'eval' mode

    - 'strict' mode

    - '/flags' mode

    - 'debug' mode

    - 'Debug' mode

    Compile related options, COMPILE, PARSE, OPTIMISE, TRIEC, DUMP, FLAGS, TEST, Execute related options, EXECUTE, MATCH, TRIEE, INTUIT, Extra debugging options, EXTRA, BUFFERS, TRIEM, STATE, STACK, GPOS, OPTIMISEM, DUMP\_PRE\_OPTIMIZE, WILDCARD, Other useful flags, ALL, All, MORE, More

  - Exportable Functions

    is\_regexp($ref), regexp\_pattern($ref), regname($name,$all), regnames($all), **regnames\_count()**, regmust($ref), optimization($ref), minlen, minlenret, gofs, noscan, isall, anchor SBOL, anchor MBOL, anchor GPOS, skip, implicit, anchored/floating, anchored utf8/floating utf8, anchored min offset/floating min offset, anchored max offset/floating max offset, anchored end shift/floating end shift, checking, stclass

- SEE ALSO

  ### sigtrap - Perl pragma to enable simple signal handling

- SYNOPSIS

  - DESCRIPTION

  - OPTIONS

  - SIGNAL HANDLERS

    **stack-trace**, **die**, **handler** *your-handler*

  - SIGNAL LISTS

    **normal-signals**, **error-signals**, **old-interface-signals**

  - OTHER

    **untrapped**, **any**, *signal*, *number*

- EXAMPLES

  ### sort - perl pragma to control sort() behaviour

- SYNOPSIS

  - DESCRIPTION

  - CAVEATS

  ### stable - Experimental features made easy, once we know they're stable

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  `"bitwise"` - stable as of perl 5.22, available via stable 0.031, `"isa"` - stable as of perl 5.32, available via stable 0.031, `"lexical_subs"` - stable as of perl 5.22, available via stable 0.031, `"postderef"` - stable as of perl 5.20, available via stable 0.031, `"const_attr"` - stable as of perl 5.22, available via stable 0.032, `"for_list"` - stable as of perl 5.36, available via stable 0.032

- SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### strict - Perl pragma to restrict unsafe constructs

- SYNOPSIS

  - DESCRIPTION

  `"strict refs"`, `"strict vars"`, `"strict subs"`

- HISTORY

  ### subs - Perl pragma to predeclare subroutine names

- SYNOPSIS

  - DESCRIPTION

  ### threads - Perl interpreter-based threads

- VERSION

  - WARNING

  - SYNOPSIS

  - DESCRIPTION

  `$thr` = threads-\>create(FUNCTION, ARGS), `$thr`-\>**join()**, `$thr`-\>**detach()**, threads-\>**detach()**, threads-\>**self()**, `$thr`-\>**tid()**, threads-\>**tid()**, "$thr", threads-\>object($tid), threads-\>**yield()**, threads-\>**list()**, threads-\>list(threads::all), threads-\>list(threads::running), threads-\>list(threads::joinable), `$thr1`-\>equal($thr2), async BLOCK;, `$thr`-\>**error()**, `$thr`-\>**\_handle()**, threads-\>**\_handle()**

- EXITING A THREAD

  threads-\>**exit()**, threads-\>exit(status), **die()**, exit(status), use threads 'exit' =\> 'threads\_only', threads-\>create({'exit' =\> 'thread\_only'}, ...), `$thr`-\>set\_thread\_exit\_only(boolean), threads-\>set\_thread\_exit\_only(boolean)

- THREAD STATE

  `$thr`-\>**is\_running()**, `$thr`-\>**is\_joinable()**, `$thr`-\>**is\_detached()**, threads-\>**is\_detached()**

- THREAD CONTEXT

  - Explicit context

    - Implicit context

    - $thr-\>**wantarray()**

    - threads-\>**wantarray()**

    - THREAD STACK SIZE

  threads-\>**get\_stack\_size()**;, `$size` = `$thr`-\>**get\_stack\_size()**;, `$old_size` = threads-\>set\_stack\_size($new\_size);, use threads ('stack\_size' =\> VALUE);, `$ENV`{'PERL5\_ITHREADS\_STACK\_SIZE'}, threads-\>create({'stack\_size' =\> VALUE}, FUNCTION, ARGS), `$thr2` = `$thr1`-\>create(FUNCTION, ARGS)

- THREAD SIGNALLING

  `$thr`-\>kill('SIG...');

- WARNINGS

  Perl exited with active threads:, Thread creation failed: pthread\_create returned #, Thread # terminated abnormally: .., Using minimum thread stack size of #, Thread creation failed: pthread\_attr\_setstacksize(*SIZE*) returned 22

- ERRORS

  This Perl not built to support threads, Cannot change stack size of an existing thread, Cannot signal threads without safe signals, Unrecognized signal name: ..

- BUGS AND LIMITATIONS

  Thread-safe modules, Using non-thread-safe modules, Memory consumption, Current working directory, Locales, Environment variables, Catching signals, Parent-child threads, Unsafe signals, Perl has been built with `"PERL_OLD_SIGNALS"` (see `"perl -V"`), The environment variable `"PERL_SIGNALS"` is set to `"unsafe"` (see "PERL\_SIGNALS" in perlrun), The module Perl::Unsafe::Signals is used, Identity of objects returned from threads, Returning blessed objects from threads, END blocks in threads, Open directory handles, Detached threads and global destruction, Perl Bugs and the CPAN Version of threads

- REQUIREMENTS

  - SEE ALSO

  - AUTHOR

  - LICENSE

  - ACKNOWLEDGEMENTS

  ### threads::shared - Perl extension for sharing data structures between threads

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - EXPORT

  - FUNCTIONS

  share VARIABLE, shared\_clone REF, is\_shared VARIABLE, lock VARIABLE, cond\_wait VARIABLE, cond\_wait CONDVAR, LOCKVAR, cond\_timedwait VARIABLE, ABS\_TIMEOUT, cond\_timedwait CONDVAR, ABS\_TIMEOUT, LOCKVAR, cond\_signal VARIABLE, cond\_broadcast VARIABLE

- OBJECTS

  - NOTES

  - WARNINGS

  **cond\_broadcast()** called on unlocked variable, **cond\_signal()** called on unlocked variable

- BUGS AND LIMITATIONS

  - SEE ALSO

  - AUTHOR

  - LICENSE

  ### utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code

- SYNOPSIS

  - DESCRIPTION

  - Utility functions

    `"$num_octets = utf8::upgrade($string)"`, `"$success =` `utf8::downgrade($string[, $fail_ok])"`, `utf8::encode($string)`, `"$success` `= utf8::decode($string)"`, `$unicode =` `utf8::native_to_unicode($code_point)`, `$native =` `utf8::unicode_to_native($code_point)`, `"$flag = utf8::is_utf8($string)"`, `"$flag = utf8::valid($string)"`

- BUGS

  - SEE ALSO

  ### vars - Perl pragma to predeclare global variable names

- SYNOPSIS

  - DESCRIPTION

  ### version - Perl extension for Version Objects

- SYNOPSIS

  - DESCRIPTION

  - TYPES OF VERSION OBJECTS

  Decimal Versions, Dotted Decimal Versions

- DECLARING VERSIONS

  - How to convert a module from decimal to dotted-decimal

    - How to declare() a dotted-decimal version

    - PARSING AND COMPARING VERSIONS

  - How to parse() a version

    - How to check for a legal version string

    `is_lax()`, `is_strict()`

  - How to compare version objects

    - OBJECT METHODS

  - **is\_alpha()**

    - **is\_qv()**

    - **normal()**

    - **numify()**

    - **stringify()**

    - EXPORTED FUNCTIONS

  - **qv()**

    - **is\_lax()**

    - **is\_strict()**

    - AUTHOR

  - SEE ALSO

  ### version::Internals - Perl extension for Version Objects

- DESCRIPTION

  - WHAT IS A VERSION?

  Decimal versions, Dotted-Decimal versions

  - Decimal Versions

    - Dotted-Decimal Versions

    - Alpha Versions

    - Regular Expressions for Version Parsing

    `$version::LAX`, `$version::STRICT`, v1.234.5

- IMPLEMENTATION DETAILS

  - Equivalence between Decimal and Dotted-Decimal Versions

    - Quoting Rules

    - What about v-strings?

    - Version Object Internals

    original, qv, alpha, version

  - Replacement UNIVERSAL::VERSION

    - USAGE DETAILS

  - Using modules that use version.pm

    Decimal versions always work, Dotted-Decimal version work sometimes

  - Object Methods

    **new()**, **qv()**, Normal Form, Numification, Stringification, Comparison operators, Logical Operators

- AUTHOR

  - SEE ALSO

  ### vmsish - Perl pragma to control VMS-specific language features

- SYNOPSIS

  - DESCRIPTION

  `"vmsish status"`, `"vmsish exit"`, `"vmsish time"`, `"vmsish hushed"`

### warnings - Perl pragma to control optional warnings

- SYNOPSIS

  - DESCRIPTION

  - Default Warnings and Optional Warnings

    - "Negative warnings"

    - What's wrong with **-w** and $^W

    - Controlling Warnings from the Command Line

    **-w** , **-W** , **-X**

  - Backward Compatibility

    - Category Hierarchy

    - Fatal Warnings

    - Reporting Warnings from a Module

    - FUNCTIONS

  use warnings::register, **warnings::enabled()**, warnings::enabled($category), warnings::enabled($object), warnings::enabled\_at\_level($category, `$level`), **warnings::fatal\_enabled()**, warnings::fatal\_enabled($category), warnings::fatal\_enabled($object), warnings::fatal\_enabled\_at\_level($category, `$level`), warnings::warn($message), warnings::warn($category, `$message`), warnings::warn($object, `$message`), warnings::warn\_at\_level($category, `$level`, `$message`), warnings::warnif($message), warnings::warnif($category, `$message`), warnings::warnif($object, `$message`), warnings::warnif\_at\_level($category, `$level`, `$message`), warnings::register\_categories(@names)

### warnings::register - warnings import function

- SYNOPSIS

  - DESCRIPTION

  ## MODULE DOCUMENTATION

### AnyDBM\_File - provide framework for multiple DBMs

- SYNOPSIS

  - DESCRIPTION

  - DBM Comparisons

    \[0\], \[1\], \[2\], \[3\]

- SEE ALSO

  ### App::Cpan - easily interact with CPAN from the command line

- SYNOPSIS

  - DESCRIPTION

  - Options

    \-a, -A module \[ module ... \], -c module, -C module \[ module ... \], -D module \[ module ... \], -f, -F, -g module \[ module ... \], -G module \[ module ... \], -h, -i module \[ module ... \], -I, -j Config.pm, -J, -l, -L author \[ author ... \], -m, -M mirror1,mirror2,.., -n, -O, -p, -P, -r, -s, -t module \[ module ... \], -T, -u, -v, -V, -w, -x module \[ module ... \], -*X*

  - Examples

    - Environment variables

    NONINTERACTIVE\_TESTING, PERL\_MM\_USE\_DEFAULT, CPAN\_OPTS, CPANSCRIPT\_LOGLEVEL, GIT\_COMMAND

  - Methods

    run( ARGS )

- EXIT VALUES

  - TO DO

  - BUGS

  - SEE ALSO

  - SOURCE AVAILABILITY

  - CREDITS

  - AUTHOR

  - COPYRIGHT

  ### App::Prove - Implements the "prove" command.

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  - Class Methods

    - Attributes

  `"archive"`, `"argv"`, `"backwards"`, `"blib"`, `"color"`, `"directives"`, `"dry"`, `"exec"`, `"extensions"`, `"failures"`, `"comments"`, `"formatter"`, `"harness"`, `"ignore_exit"`, `"includes"`, `"jobs"`, `"lib"`, `"merge"`, `"modules"`, `"parse"`, `"plugins"`, `"quiet"`, `"really_quiet"`, `"recurse"`, `"rules"`, `"show_count"`, `"show_help"`, `"show_man"`, `"show_version"`, `"shuffle"`, `"state"`, `"state_class"`, `"taint_fail"`, `"taint_warn"`, `"test_args"`, `"timer"`, `"verbose"`, `"warnings_fail"`, `"warnings_warn"`, `"tapversion"`, `"trap"`

- PLUGINS

  - Sample Plugin

    - SEE ALSO

  ### App::Prove::State - State storage for the "prove" command.

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  - Class Methods

    `"store"`, `"extensions"` (optional), `"result_class"` (optional)

- "result\_class"

  - "extensions"

  - "results"

  - "commit"

  - Instance Methods

  `"last"`, `"failed"`, `"passed"`, `"all"`, `"hot"`, `"todo"`, `"slow"`, `"fast"`, `"new"`, `"old"`, `"save"`

### App::Prove::State::Result - Individual test suite results.

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  - Class Methods

    - "state\_version"

  - "test\_class"

  ### App::Prove::State::Result::Test - Individual test results.

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  - Class Methods

    - Instance Methods

  ### Archive::Tar - module for manipulations of tar archives

- SYNOPSIS

  - DESCRIPTION

  - Object Methods

  - Archive::Tar-\>new( \[$file, $compressed\] )

    - $tar-\>read ( $filename\|$handle, \[$compressed, {opt =\> 'val'}\] )

  limit, filter, md5, extract

- $tar-\>contains\_file( $filename )

  - $tar-\>extract( \[@filenames\] )

  - $tar-\>extract\_file( $file, \[$extract\_path\] )

  - $tar-\>list\_files( \[\\@properties\] )

  - $tar-\>get\_files( \[@filenames\] )

  - $tar-\>get\_content( $file )

  - $tar-\>replace\_content( $file, $content )

  - $tar-\>rename( $file, $new\_name )

  - $tar-\>chmod( $file, $mode )

  - $tar-\>chown( $file, $uname \[, $gname\] )

  - $tar-\>remove (@filenamelist)

  - $tar-\>clear

  - $tar-\>write ( \[$file, $compressed, $prefix\] )

  - $tar-\>add\_files( @filenamelist )

  - $tar-\>add\_data ( $filename, $data, \[$opthashref\] )

  FILE, HARDLINK, SYMLINK, CHARDEV, BLOCKDEV, DIR, FIFO, SOCKET

- $tar-\>error( \[$BOOL\] )

  - $tar-\>setcwd( $cwd );

  - Class Methods

  - Archive::Tar-\>create\_archive($file, $compressed, @filelist)

    - Archive::Tar-\>iter( $filename, \[ $compressed, {opt =\> $val} \] )

  - Archive::Tar-\>list\_archive($file, $compressed, \[\\@properties\])

  - Archive::Tar-\>extract\_archive($file, $compressed)

  - $bool = Archive::Tar-\>has\_io\_string

  - $bool = Archive::Tar-\>has\_perlio

  - $bool = Archive::Tar-\>has\_zlib\_support

  - $bool = Archive::Tar-\>has\_bzip2\_support

  - $bool = Archive::Tar-\>has\_xz\_support

  - Archive::Tar-\>can\_handle\_compressed\_files

  - GLOBAL VARIABLES

  - $Archive::Tar::FOLLOW\_SYMLINK

    - $Archive::Tar::CHOWN

    - $Archive::Tar::CHMOD

    - $Archive::Tar::SAME\_PERMISSIONS

    - $Archive::Tar::DO\_NOT\_USE\_PREFIX

    - $Archive::Tar::DEBUG

    - $Archive::Tar::WARN

    - $Archive::Tar::error

    - $Archive::Tar::INSECURE\_EXTRACT\_MODE

    - $Archive::Tar::HAS\_PERLIO

    - $Archive::Tar::HAS\_IO\_STRING

    - $Archive::Tar::ZERO\_PAD\_NUMBERS

    - Tuning the way RESOLVE\_SYMLINK will works

    none, speed (default), memory

  - $Archive::Tar::EXTRACT\_BLOCK\_SIZE

    - FAQ

  What's the minimum perl version required to run Archive::Tar?, Isn't Archive::Tar slow?, Isn't Archive::Tar heavier on memory than /bin/tar?, Can you lazy-load data instead?, How much memory will an X kb tar file need?, What do you do with unsupported filetypes in an archive?, I'm using WinZip, or some other non-POSIX client, and files are not being extracted properly!, How do I extract only files that have property X from an archive?, How do I access .tar.Z files?, How do I handle Unicode strings?

- CAVEATS

  - TODO

  Check if passed in handles are open for read/write, Allow archives to be passed in as string, Facilitate processing an opened filehandle of a compressed archive

- SEE ALSO

  The GNU tar specification, The PAX format specification

- AUTHOR

  - ACKNOWLEDGEMENTS

  - COPYRIGHT

  ### Archive::Tar::File - a subclass for in-memory extracted file from Archive::Tar

- SYNOPSIS

  - DESCRIPTION

  - Accessors

    name, mode, uid, gid, size, mtime, chksum, type, linkname, magic, version, uname, gname, devmajor, devminor, prefix, raw

- Methods

  - Archive::Tar::File-\>new( file =\> $path )

    - Archive::Tar::File-\>new( data =\> $path, $data, $opt )

    - Archive::Tar::File-\>new( chunk =\> $chunk )

    - $bool = $file-\>extract( \[ $alternative\_name \] )

  - $path = $file-\>full\_path

  - $bool = $file-\>validate

  - $bool = $file-\>has\_content

  - $content = $file-\>get\_content

  - $cref = $file-\>get\_content\_by\_ref

  - $bool = $file-\>replace\_content( $content )

  - $bool = $file-\>rename( $new\_name )

  - $bool = $file-\>chmod( $mode )

  - $bool = $file-\>chown( $user \[, $group\])

  - Convenience methods

  `$file`-\>is\_file, `$file`-\>is\_dir, `$file`-\>is\_hardlink, `$file`-\>is\_symlink, `$file`-\>is\_chardev, `$file`-\>is\_blockdev, `$file`-\>is\_fifo, `$file`-\>is\_socket, `$file`-\>is\_longlink, `$file`-\>is\_label, `$file`-\>is\_unknown

### Attribute::Handlers - Simpler definition of attribute handlers

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  \[0\], \[1\], \[2\], \[3\], \[4\], \[5\], \[6\], \[7\]

  - Typed lexicals

    - Type-specific attribute handlers

    - Non-interpretive attribute handlers

    - Phase-specific attribute handlers

    - Attributes as "tie" interfaces

    - EXAMPLES

  - UTILITY FUNCTIONS

  findsym

- DIAGNOSTICS

  `"Bad attribute type: ATTR(%s)"`, `"Attribute handler %s doesn't handle %s` `attributes"`, `"Declaration of %s attribute in package %s may clash with` `future reserved word"`, `"Can't have two ATTR specifiers on one subroutine"`, `"Can't autotie a %s"`, `"Internal error: %s symbol went missing"`, `"Won't` `be able to apply END handler"`

- AUTHOR

  - BUGS

  - COPYRIGHT AND LICENSE

  ### AutoLoader - load subroutines only on demand

- SYNOPSIS

  - DESCRIPTION

  - Subroutine Stubs

    - Using **AutoLoader**'s AUTOLOAD Subroutine

    - Overriding **AutoLoader**'s AUTOLOAD Subroutine

    - Package Lexicals

    - Not Using AutoLoader

    - **AutoLoader** vs. **SelfLoader**

    - Forcing AutoLoader to Load a Function

    - CAVEATS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### AutoSplit - split a package for autoloading

- SYNOPSIS

  - DESCRIPTION

  `$keep`, `$check`, `$modtime`

  - Multiple packages

    - DIAGNOSTICS

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### B - The Perl Compiler Backend

- SYNOPSIS

  - DESCRIPTION

  - OVERVIEW

  - Utility Functions

  - Functions Returning "B::SV", "B::AV", "B::HV", and "B::CV" objects

    sv\_undef, sv\_yes, sv\_no, svref\_2object(SVREF), amagic\_generation, init\_av, check\_av, unitcheck\_av, begin\_av, end\_av, comppadlist, regex\_padav, main\_cv

  - Functions for Examining the Symbol Table

    walksymtable(SYMREF, METHOD, RECURSE, PREFIX)

  - Functions Returning "B::OP" objects or for walking op trees

    main\_root, main\_start, walkoptree(OP, METHOD), walkoptree\_debug(DEBUG)

  - Miscellaneous Utility Functions

    ppname(OPNUM), hash(STR), cast\_I32(I), minus\_c, cstring(STR), perlstring(STR), safename(STR), class(OBJ), threadsv\_names

  - Exported utility variables

    `@optype`, `@specialsv_name`

- OVERVIEW OF CLASSES

  - SV-RELATED CLASSES

    - B::SV Methods

    REFCNT, FLAGS, IsBOOL, object\_2svref, TRUE, TRUE\_nomg

  - B::IV Methods

    IV, IVX, UVX, int\_value, needs64bits, packiv

  - B::NV Methods

    NV, NVX, COP\_SEQ\_RANGE\_LOW, COP\_SEQ\_RANGE\_HIGH

  - B::RV Methods

    RV

  - B::PV Methods

    PV, RV, PVX, CUR, LEN

  - B::PVMG Methods

    MAGIC, SvSTASH

  - B::MAGIC Methods

    MOREMAGIC, precomp, PRIVATE, TYPE, FLAGS, OBJ, PTR, REGEX

  - B::INVLIST Methods

    prev\_index, is\_offset, array\_len, get\_invlist\_array

  - B::PVLV Methods

    TARGOFF, TARGLEN, TYPE, TARG

  - B::BM Methods

    USEFUL, PREVIOUS, RARE, TABLE

  - B::REGEXP Methods

    REGEX, precomp, qr\_anoncv, compflags

  - B::GV Methods

    is\_empty, NAME, SAFENAME, STASH, SV, IO, FORM, AV, HV, EGV, CV, CVGEN, LINE, FILE, FILEGV, GvREFCNT, FLAGS, GPFLAGS

  - B::IO Methods

    LINES, PAGE, PAGE\_LEN, LINES\_LEFT, TOP\_NAME, TOP\_GV, FMT\_NAME, FMT\_GV, BOTTOM\_NAME, BOTTOM\_GV, SUBPROCESS, IoTYPE, IoFLAGS, IsSTD

  - B::AV Methods

    FILL, MAX, ARRAY, ARRAYelt

  - B::CV Methods

    STASH, START, ROOT, GV, FILE, DEPTH, PADLIST, OUTSIDE, OUTSIDE\_SEQ, XSUB, XSUBANY, CvFLAGS, const\_sv, NAME\_HEK

  - B::HV Methods

    FILL, MAX, KEYS, RITER, NAME, ARRAY

  - OP-RELATED CLASSES

    - B::OP Methods

    next, sibling, parent, name, ppaddr, desc, targ, type, opt, flags, private, spare

  - B::UNOP Method

    first

  - B::UNOP\_AUX Methods (since 5.22)

    aux\_list(cv), string(cv)

  - B::BINOP Method

    last

  - B::LOGOP Method

    other

  - B::LISTOP Method

    children

  - B::PMOP Methods

    pmreplroot, pmreplstart, pmflags, precomp, pmoffset, code\_list, pmregexp

  - B::SVOP Methods

    sv, gv

  - B::PADOP Method

    padix

  - B::PVOP Method

    pv

  - B::LOOP Methods

    redoop, nextop, lastop

  - B::COP Methods

    label, stash, stashpv, stashoff (threaded only), file, cop\_seq, line, warnings, io, hints, hints\_hash

  - B::METHOP Methods (Since Perl 5.22)

    first, meth\_sv

  - PAD-RELATED CLASSES

    - B::PADLIST Methods

    MAX, ARRAY, ARRAYelt, NAMES, REFCNT, id, outid

  - B::PADNAMELIST Methods

    MAX, ARRAY, ARRAYelt, REFCNT

  - B::PADNAME Methods

    PV, PVX, LEN, REFCNT, GEN, FLAGS, TYPE, SvSTASH, OURSTASH, PROTOCV, COP\_SEQ\_RANGE\_LOW, COP\_SEQ\_RANGE\_HIGH, PARENT\_PAD\_INDEX, PARENT\_FAKELEX\_FLAGS, IsUndef

  - $B::overlay

    - AUTHOR

  ### B::Concise - Walk Perl syntax tree, printing concise info about ops

- SYNOPSIS

  - DESCRIPTION

  - EXAMPLE

  - OPTIONS

  - Options for Opcode Ordering

    **-basic**, **-exec**, **-tree**

  - Options for Line-Style

    **-concise**, **-terse**, **-linenoise**, **-debug**, **-env**

  - Options for tree-specific formatting

    **-compact**, **-loose**, **-vt**, **-ascii**

  - Options controlling sequence numbering

    **-base***n*, **-bigendian**, **-littleendian**

  - Other options

    **-src**, **-stash="somepackage"**, **-main**, **-nomain**, **-nobanner**, **-banner**, **-banneris** =\> subref

  - Option Stickiness

    - ABBREVIATIONS

  - OP class abbreviations

    - OP flags abbreviations

    - FORMATTING SPECIFICATIONS

  - Special Patterns

    **(x(***exec\_text***;***basic\_text***)x)**, **(\*(***text***)\*)**, **(\*(***text1***;***text2***)\*)**, **(?(***text1***#***varText2***)?)**, **~**

  - \# Variables

    **#***var*, **#***varN*, **#***Var*, **#addr**, **#arg**, **#class**, **#classsym**, **#coplabel**, **#exname**, **#extarg**, **#firstaddr**, **#flags**, **#flagval**, **#hints**, **#hintsval**, **#hyphseq**, **#label**, **#lastaddr**, **#name**, **#NAME**, **#next**, **#nextaddr**, **#noise**, **#private**, **#privval**, **#seq**, **#opt**, **#sibaddr**, **#svaddr**, **#svclass**, **#svval**, **#targ**, **#targarg**, **#targarglife**, **#typenum**

- One-Liner Command tips

  perl -MO=Concise,bar foo.pl, perl -MDigest::MD5=md5 -MO=Concise,md5 -e1, perl -MPOSIX -MO=Concise,\_POSIX\_ARG\_MAX -e1, perl -MPOSIX -MO=Concise,a -e 'print \_POSIX\_SAVED\_IDS', perl -MPOSIX -MO=Concise,a -e 'sub a{\_POSIX\_SAVED\_IDS}', perl -MB::Concise -e 'B::Concise::compile("-exec","-src", \\%B::Concise::)-\>()'

- Using B::Concise outside of the O framework

  - Example: Altering Concise Renderings

    - **set\_style()**

    - set\_style\_standard($name)

    - add\_style ()

    - add\_callback ()

    - Running **B::Concise::compile()**

    - **B::Concise::reset\_sequence()**

    - Errors

    - AUTHOR

  ### B::Deparse - Perl compiler backend to produce perl code

- SYNOPSIS

  - DESCRIPTION

  - OPTIONS

  **-d**, **-f***FILE*, **-l**, **-p**, **-P**, **-q**, **-s***LETTERS*, **C**, **i***NUMBER*, **T**, **v***STRING***.**, **-x***LEVEL*

- USING B::Deparse AS A MODULE

  - Synopsis

    - Description

    - new

    - ambient\_pragmas

    strict, $\[, bytes, utf8, integer, re, warnings, hint\_bits, warning\_bits, %^H

  - coderef2text

    - BUGS

  - AUTHOR

  ### B::Op\_private - OP op\_private flag definitions

- SYNOPSIS

  - DESCRIPTION

  - %bits

    - %defines

    - %labels

    - %ops\_using

    ### B::Showlex - Show lexical variables used in functions or files

- SYNOPSIS

  - DESCRIPTION

  - EXAMPLES

  - OPTIONS

    - SEE ALSO

  - TODO

  - AUTHOR

  ### B::Terse - Walk Perl syntax tree, printing terse info about ops

- SYNOPSIS

  - DESCRIPTION

  - AUTHOR

  ### B::Xref - Generates cross reference reports for Perl programs

- SYNOPSIS

  - DESCRIPTION

  i, &, s, r

- OPTIONS

  `"-oFILENAME"`, `"-r"`, `"-d"`, `"-D[tO]"`

- BUGS

  - AUTHOR

  ### Benchmark - benchmark running times of Perl code

- SYNOPSIS

  - DESCRIPTION

  - Methods

    new, debug, iters

  - Standard Exports

    timeit(COUNT, CODE), timethis ( COUNT, CODE, \[ TITLE, \[ STYLE \]\] ), timethese ( COUNT, CODEHASHREF, \[ STYLE \] ), timediff ( T1, T2 ), timestr ( TIMEDIFF, \[ STYLE, \[ FORMAT \] \] )

  - Optional Exports

    clearcache ( COUNT ), clearallcache ( ), cmpthese ( COUNT, CODEHASHREF, \[ STYLE \] ), cmpthese ( RESULTSHASHREF, \[ STYLE \] ), countit(TIME, CODE), disablecache ( ), enablecache ( ), timesum ( T1, T2 )

  - :hireswallclock

    - Benchmark Object

  cpu\_p, cpu\_c, cpu\_a, real, iters

- NOTES

  - EXAMPLES

  - INHERITANCE

  - CAVEATS

  - SEE ALSO

  - AUTHORS

  - MODIFICATION HISTORY

  ### CORE - Namespace for Perl's core routines

- SYNOPSIS

  - DESCRIPTION

  - OVERRIDING CORE FUNCTIONS

  - AUTHOR

  - SEE ALSO

  ### CPAN - query, download and build perl modules from CPAN sites

- SYNOPSIS

  - DESCRIPTION

  - CPAN::shell(\[$prompt, $command\]) Starting Interactive Mode

    Searching for authors, bundles, distribution files and modules, `"get"`, `"make"`, `"test"`, `"install"`, `"clean"` modules or distributions, `"readme"`, `"perldoc"`, `"look"` module or distribution, `"ls"` author, `"ls"` globbing\_expression, `"failed"`, Persistence between sessions, The `"force"` and the `"fforce"` pragma, Lockfile, Signals

  - CPAN::Shell

    - autobundle

    - hosts

    install\_tested, is\_tested

  - mkmyconfig

    - r \[Module\|/Regexp/\]...

    - recent \*\*\*EXPERIMENTAL COMMAND\*\*\*

    - recompile

    - report Bundle\|Distribution\|Module

    - smoke \*\*\*EXPERIMENTAL COMMAND\*\*\*

    - upgrade \[Module\|/Regexp/\]...

    - The four "CPAN::\*" Classes: Author, Bundle, Module, Distribution

    - Integrating local directories

    - Redirection

    - Plugin support \*\*\*EXPERIMENTAL\*\*\*

    - CONFIGURATION

  completion support, displaying some help: o conf help, displaying current values: o conf \[KEY\], changing of scalar values: o conf KEY VALUE, changing of list values: o conf KEY SHIFT\|UNSHIFT\|PUSH\|POP\|SPLICE\|LIST, reverting to saved: o conf defaults, saving the config: o conf commit

  - Config Variables

    `"o conf <scalar option>"`, `"o conf <scalar option>` `<value>"`, `"o conf <list option>"`, `"o conf <list` `option> [shift|pop]"`, `"o conf <list option>` `[unshift|push|splice] <list>"`, interactive editing: o conf init \[MATCH\|LIST\]

  - CPAN::anycwd($path): Note on config variable getcwd

    cwd, getcwd, fastcwd, getdcwd, backtickcwd

  - Note on the format of the urllist parameter

    - The urllist parameter has CD-ROM support

    - Maintaining the urllist parameter

    - The "requires" and "build\_requires" dependency declarations

    - Configuration of the allow\_installing\_\* parameters

    - Configuration for individual distributions (*Distroprefs*)

    - Filenames

    - Fallback Data::Dumper and Storable

    - Blueprint

    - Language Specs

    comment \[scalar\], cpanconfig \[hash\], depends \[hash\] \*\*\* EXPERIMENTAL FEATURE \*\*\*, disabled \[boolean\], features \[array\] \*\*\* EXPERIMENTAL FEATURE \*\*\*, goto \[string\], install \[hash\], make \[hash\], match \[hash\], patches \[array\], pl \[hash\], test \[hash\]

  - Processing Instructions

    args \[array\], commandline, eexpect \[hash\], env \[hash\], expect \[array\]

  - Schema verification with "Kwalify"

    - Example Distroprefs Files

    - PROGRAMMER'S INTERFACE

  expand($type,@things), expandany(@things), Programming Examples

  - Methods in the other Classes

    **CPAN::Author::as\_glimpse()**, **CPAN::Author::as\_string()**, **CPAN::Author::email()**, **CPAN::Author::fullname()**, **CPAN::Author::name()**, **CPAN::Bundle::as\_glimpse()**, **CPAN::Bundle::as\_string()**, **CPAN::Bundle::clean()**, **CPAN::Bundle::contains()**, CPAN::Bundle::force($method,@args), **CPAN::Bundle::get()**, **CPAN::Bundle::inst\_file()**, **CPAN::Bundle::inst\_version()**, **CPAN::Bundle::uptodate()**, **CPAN::Bundle::install()**, **CPAN::Bundle::make()**, **CPAN::Bundle::readme()**, **CPAN::Bundle::test()**, **CPAN::Distribution::as\_glimpse()**, **CPAN::Distribution::as\_string()**, CPAN::Distribution::author, **CPAN::Distribution::pretty\_id()**, **CPAN::Distribution::base\_id()**, **CPAN::Distribution::clean()**, **CPAN::Distribution::containsmods()**, **CPAN::Distribution::cvs\_import()**, **CPAN::Distribution::dir()**, CPAN::Distribution::force($method,@args), **CPAN::Distribution::get()**, **CPAN::Distribution::install()**, **CPAN::Distribution::isa\_perl()**, **CPAN::Distribution::look()**, **CPAN::Distribution::make()**, **CPAN::Distribution::perldoc()**, **CPAN::Distribution::prefs()**, **CPAN::Distribution::prereq\_pm()**, **CPAN::Distribution::readme()**, **CPAN::Distribution::reports()**, **CPAN::Distribution::read\_yaml()**, **CPAN::Distribution::test()**, **CPAN::Distribution::uptodate()**, **CPAN::Index::force\_reload()**, **CPAN::Index::reload()**, **CPAN::InfoObj::dump()**, **CPAN::Module::as\_glimpse()**, **CPAN::Module::as\_string()**, **CPAN::Module::clean()**, **CPAN::Module::cpan\_file()**, **CPAN::Module::cpan\_version()**, **CPAN::Module::cvs\_import()**, **CPAN::Module::description()**, **CPAN::Module::distribution()**, **CPAN::Module::dslip\_status()**, CPAN::Module::force($method,@args), **CPAN::Module::get()**, **CPAN::Module::inst\_file()**, **CPAN::Module::available\_file()**, **CPAN::Module::inst\_version()**, **CPAN::Module::available\_version()**, **CPAN::Module::install()**, **CPAN::Module::look()**, **CPAN::Module::make()**, **CPAN::Module::manpage\_headline()**, **CPAN::Module::perldoc()**, **CPAN::Module::readme()**, **CPAN::Module::reports()**, **CPAN::Module::test()**, **CPAN::Module::uptodate()**, **CPAN::Module::userid()**

  - Cache Manager

    - Bundles

    - PREREQUISITES

  - UTILITIES

  - Finding packages and VERSION

    - Debugging

    o debug package.., o debug -package.., o debug all, o debug number

  - Floppy, Zip, Offline Mode

    - Basic Utilities for Programmers

    has\_inst($module), use\_inst($module), has\_usable($module), instance($module), **frontend()**, frontend($new\_frontend)

- SECURITY

  - Cryptographically signed modules

    - EXPORT

  - ENVIRONMENT

  - POPULATE AN INSTALLATION WITH LOTS OF MODULES

  - WORKING WITH CPAN.pm BEHIND FIREWALLS

  - Three basic types of firewalls

    http firewall, ftp firewall, One-way visibility, SOCKS, IP Masquerade

  - Configuring lynx or ncftp for going through a firewall

    - FAQ

  1\), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19)

- COMPATIBILITY

  - OLD PERL VERSIONS

    - CPANPLUS

    - CPANMINUS

    - SECURITY ADVICE

  - BUGS

  - AUTHOR

  - LICENSE

  - TRANSLATIONS

  - SEE ALSO

  ### CPAN::API::HOWTO - a recipe book for programming with CPAN.pm

- RECIPES

  - What distribution contains a particular module?

    - What modules does a particular distribution contain?

    - SEE ALSO

  - LICENSE

  - AUTHOR

  ### CPAN::Debug - internal debugging for CPAN.pm

- LICENSE

  ### CPAN::Distroprefs -- read and match distroprefs

- SYNOPSIS

  - DESCRIPTION

  - INTERFACE

  a CPAN::Distroprefs::Result object, `"undef"`, indicating that no prefs files remain to be found

- RESULTS

  - Common

    - Errors

    - Successes

    - PREFS

  - LICENSE

  ### CPAN::FirstTime - Utility for CPAN::Config file Initialization

- SYNOPSIS

  - DESCRIPTION

  allow\_installing\_module\_downgrades, allow\_installing\_outdated\_dists, auto\_commit, build\_cache, build\_dir, build\_dir\_reuse, build\_requires\_install\_policy, cache\_metadata, check\_sigs, cleanup\_after\_install, colorize\_output, colorize\_print, colorize\_warn, colorize\_debug, commandnumber\_in\_prompt, connect\_to\_internet\_ok, ftp\_passive, ftpstats\_period, ftpstats\_size, getcwd, halt\_on\_failure, histfile, histsize, inactivity\_timeout, index\_expire, inhibit\_startup\_message, keep\_source\_where, load\_module\_verbosity, makepl\_arg, make\_arg, make\_install\_arg, make\_install\_make\_command, mbuildpl\_arg, mbuild\_arg, mbuild\_install\_arg, mbuild\_install\_build\_command, pager, prefer\_installer, prefs\_dir, prerequisites\_policy, pushy\_https, randomize\_urllist, recommends\_policy, scan\_cache, shell, show\_unparsable\_versions, show\_upload\_date, show\_zero\_versions, suggests\_policy, tar\_verbosity, term\_is\_latin, term\_ornaments, test\_report, perl5lib\_verbosity, prefer\_external\_tar, trust\_test\_report\_history, urllist\_ping\_external, urllist\_ping\_verbose, use\_prompt\_default, use\_sqlite, version\_timeout, yaml\_load\_code, yaml\_module

- LICENSE

  ### CPAN::HandleConfig - internal configuration handling for CPAN.pm

- "CLASS-\>safe\_quote ITEM"

  - LICENSE

  ### CPAN::Kwalify - Interface between CPAN.pm and Kwalify.pm

- SYNOPSIS

  - DESCRIPTION

  \_validate($schema\_name, `$data`, `$file`, `$doc`), yaml($schema\_name)

- AUTHOR

  - LICENSE

  ### CPAN::Meta - the distribution metadata for a CPAN dist

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

    - create

    - load\_file

    - load\_yaml\_string

    - load\_json\_string

    - load\_string

    - save

    - meta\_spec\_version

    - effective\_prereqs

    - should\_index\_file

    - should\_index\_package

    - features

    - feature

    - as\_struct

    - as\_string

    - STRING DATA

  - LIST DATA

  - MAP DATA

  - CUSTOM DATA

  - BUGS

  - SEE ALSO

  - SUPPORT

  - Bugs / Feature Requests

    - Source Code

    - AUTHORS

  - CONTRIBUTORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::Converter - Convert CPAN distribution metadata structures

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

    - convert

    - upgrade\_fragment

    - BUGS

  - AUTHORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::Feature - an optional feature provided by a CPAN distribution

- VERSION

  - DESCRIPTION

  - METHODS

  - new

    - identifier

    - description

    - prereqs

    - BUGS

  - AUTHORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::History - history of CPAN Meta Spec changes

- VERSION

  - DESCRIPTION

  - HISTORY

  - Version 2

    - Version 1.4

    - Version 1.3

    - Version 1.2

    - Version 1.1

    - Version 1.0

    - AUTHORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::History::Meta\_1\_0 - Version 1.0 metadata specification for META.yml

- PREFACE

  - DESCRIPTION

  - Format

  - Fields

  name, version, license, perl, gpl, lgpl, artistic, bsd, open\_source, unrestricted, restrictive, distribution\_type, requires, recommends, build\_requires, conflicts, dynamic\_config, generated\_by

- Related Projects

  DOAP

- History

  ### CPAN::Meta::History::Meta\_1\_1 - Version 1.1 metadata specification for META.yml

- PREFACE

  - DESCRIPTION

  - Format

  - Fields

  name, version, license, perl, gpl, lgpl, artistic, bsd, open\_source, unrestricted, restrictive, license\_uri, distribution\_type, private, requires, recommends, build\_requires, conflicts, dynamic\_config, generated\_by

  - Ingy's suggestions

    short\_description, description, maturity, author\_id, owner\_id, categorization, keyword, chapter\_id, URL for further information, namespaces

- History

  ### CPAN::Meta::History::Meta\_1\_2 - Version 1.2 metadata specification for META.yml

- PREFACE

  - SYNOPSIS

  - DESCRIPTION

  - FORMAT

  - TERMINOLOGY

  distribution, module

- VERSION SPECIFICATIONS

  - HEADER

  - FIELDS

  - meta-spec

    - name

    - version

    - abstract

    - author

    - license

    perl, gpl, lgpl, artistic, bsd, open\_source, unrestricted, restrictive

  - distribution\_type

    - requires

    - recommends

    - build\_requires

    - conflicts

    - dynamic\_config

    - private

    - provides

    - no\_index

    - keywords

    - resources

    homepage, license, bugtracker

  - generated\_by

    - SEE ALSO

  - HISTORY

  March 14, 2003 (Pi day), May 8, 2003, November 13, 2003, November 16, 2003, December 9, 2003, December 15, 2003, July 26, 2005, August 23, 2005

### CPAN::Meta::History::Meta\_1\_3 - Version 1.3 metadata specification for META.yml

- PREFACE

  - SYNOPSIS

  - DESCRIPTION

  - FORMAT

  - TERMINOLOGY

  distribution, module

- HEADER

  - FIELDS

  - meta-spec

    - name

    - version

    - abstract

    - author

    - license

    apache, artistic, bsd, gpl, lgpl, mit, mozilla, open\_source, perl, restrictive, unrestricted

  - distribution\_type

    - requires

    - recommends

    - build\_requires

    - conflicts

    - dynamic\_config

    - private

    - provides

    - no\_index

    - keywords

    - resources

    homepage, license, bugtracker

  - generated\_by

    - VERSION SPECIFICATIONS

  - SEE ALSO

  - HISTORY

  March 14, 2003 (Pi day), May 8, 2003, November 13, 2003, November 16, 2003, December 9, 2003, December 15, 2003, July 26, 2005, August 23, 2005

### CPAN::Meta::History::Meta\_1\_4 - Version 1.4 metadata specification for META.yml

- PREFACE

  - SYNOPSIS

  - DESCRIPTION

  - FORMAT

  - TERMINOLOGY

  distribution, module

- HEADER

  - FIELDS

  - meta-spec

    - name

    - version

    - abstract

    - author

    - license

    apache, artistic, bsd, gpl, lgpl, mit, mozilla, open\_source, perl, restrictive, unrestricted

  - distribution\_type

    - requires

    - recommends

    - build\_requires

    - configure\_requires

    - conflicts

    - dynamic\_config

    - private

    - provides

    - no\_index

    - keywords

    - resources

    homepage, license, bugtracker

  - generated\_by

    - VERSION SPECIFICATIONS

  - SEE ALSO

  - HISTORY

  March 14, 2003 (Pi day), May 8, 2003, November 13, 2003, November 16, 2003, December 9, 2003, December 15, 2003, July 26, 2005, August 23, 2005, June 12, 2007

### CPAN::Meta::Merge - Merging CPAN Meta fragments

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

    - merge(@fragments)

    - MERGE STRATEGIES

  identical, set\_addition, uniq\_map, improvise

- AUTHORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type

- VERSION

  - DESCRIPTION

  - METHODS

  - new

    - requirements\_for

    - phases

    - types\_in

    - with\_merged\_prereqs

    - merged\_requirements

    - as\_string\_hash

    - is\_finalized

    - finalize

    - clone

    - BUGS

  - AUTHORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::Requirements - a set of version requirements for a CPAN dist

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

    - add\_minimum

    - add\_maximum

    - add\_exclusion

    - exact\_version

    - version\_range\_for\_module

    - add\_requirements

    - accepts\_module

    - clear\_requirement

    - requirements\_for\_module

    - structured\_requirements\_for\_module

    - required\_modules

    - clone

    - is\_simple

    - is\_finalized

    - finalize

    - as\_string\_hash

    - add\_string\_requirement

    \>= 1.3, \<= 1.3, != 1.3, \> 1.3, \< 1.3, \>= 1.3, != 1.5, \<= 2.0

  - from\_string\_hash

    - SUPPORT

  - Bugs / Feature Requests

    - Source Code

    - AUTHORS

  - CONTRIBUTORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::Requirements::Range - a set of version requirements for a CPAN dist

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - with\_string\_requirement

    \>= 1.3, \<= 1.3, != 1.3, \> 1.3, \< 1.3, \>= 1.3, != 1.5, \<= 2.0

  - with\_range

    - with\_exact\_version

    - with\_minimum

    - with\_maximum

    - with\_exclusion

    - as\_struct

    - as\_string

    - accepts

    - is\_simple

    - AUTHORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::Spec - specification for CPAN distribution metadata

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - TERMINOLOGY

  distribution, module, package, consumer, producer, must, should, may, etc

- DATA TYPES

  - Boolean

    - String

    - List

    - Map

    - License String

    - URL

    - Version

    - Version Range

    - STRUCTURE

  - REQUIRED FIELDS

    version, url, stable, testing, unstable

  - OPTIONAL FIELDS

    file, directory, package, namespace, description, prereqs, file, version, homepage, license, bugtracker, repository

  - DEPRECATED FIELDS

    - VERSION NUMBERS

  - Version Formats

    Decimal versions, Dotted-integer versions

  - Version Ranges

    - PREREQUISITES

  - Prereq Spec

    configure, build, test, runtime, develop, requires, recommends, suggests, conflicts

  - Merging and Resolving Prerequisites

    - SERIALIZATION

  - NOTES FOR IMPLEMENTORS

  - Extracting Version Numbers from Perl Modules

    - Comparing Version Numbers

    - Prerequisites for dynamically configured distributions

    - Indexing distributions a la PAUSE

    - SEE ALSO

  - HISTORY

  - AUTHORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::Validator - validate CPAN distribution metadata structures

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

    - is\_valid

    - errors

    - Check Methods

    - Validator Methods

    - BUGS

  - AUTHORS

  - COPYRIGHT AND LICENSE

  ### CPAN::Meta::YAML - Read and write a subset of YAML for CPAN Meta files

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - SUPPORT

  - SEE ALSO

  - AUTHORS

  - COPYRIGHT AND LICENSE

  - SYNOPSIS

  - DESCRIPTION

  new( LOCAL\_FILE\_NAME )

**continents()**

countries( \[CONTINENTS\] )

mirrors( \[COUNTRIES\] )

get\_mirrors\_by\_countries( \[COUNTRIES\] )

get\_mirrors\_by\_continents( \[CONTINENTS\] )

get\_countries\_by\_continents( \[CONTINENTS\] )

default\_mirror

best\_mirrors

get\_n\_random\_mirrors\_by\_continents( N, \[CONTINENTS\] )

get\_mirrors\_timings( MIRROR\_LIST, SEEN, CALLBACK, `%ARGS` );

find\_best\_continents( HASH\_REF );

- AUTHOR

  - LICENSE

  ### CPAN::Nox - Wrapper around CPAN.pm without using any XS module

- SYNOPSIS

  - DESCRIPTION

  - LICENSE

  - SEE ALSO

  ### CPAN::Plugin - Base class for CPAN shell extensions

- SYNOPSIS

  - DESCRIPTION

  - Alpha Status

    - How Plugins work?

    - METHODS

  - plugin\_requires

    - distribution\_object

    - distribution

    - distribution\_info

    - build\_dir

    - is\_xs

    - AUTHOR

  ### CPAN::Plugin::Specfile - Proof of concept implementation of a trivial CPAN::Plugin

- SYNOPSIS

  - DESCRIPTION

  - OPTIONS

    - AUTHOR

  ### CPAN::Queue - internal queue support for CPAN.pm

- LICENSE

  ### CPAN::Tarzip - internal handling of tar archives for CPAN.pm

- LICENSE

  ### CPAN::Version - utility functions to compare CPAN versions

- SYNOPSIS

  - DESCRIPTION

  - LICENSE

  ### Carp - alternative warn and die for modules

- SYNOPSIS

  - DESCRIPTION

  - Forcing a Stack Trace

    - Stack Trace formatting

    - GLOBAL VARIABLES

  - $Carp::MaxEvalLen

    - $Carp::MaxArgLen

    - $Carp::MaxArgNums

    - $Carp::Verbose

    - $Carp::RefArgFormatter

    - @CARP\_NOT

    - %Carp::Internal

    - %Carp::CarpInternal

    - $Carp::CarpLevel

    - BUGS

  - SEE ALSO

  - CONTRIBUTING

  - AUTHOR

  - COPYRIGHT

  - LICENSE

  ### Class::Struct - declare struct-like datatypes as Perl classes

- SYNOPSIS

  - DESCRIPTION

  - The struct() function

    - Class Creation at Compile Time

    - Element Types and Accessor Methods

    Scalar (`'$'` or `'*$'`), Array (`'@'` or `'*@'`), Hash (`'%'` or `'*%'`), Class (`'Class_Name'` or `'*Class_Name'`)

  - Initializing with "new"

    - EXAMPLES

  Example 1, Example 2, Example 3

- Author and Modification History

  ### Compress::Raw::Bzip2 - Low-Level Interface to bzip2 compression library

- SYNOPSIS

  - DESCRIPTION

  - Compression

  - ($z, $status) = new Compress::Raw::Bzip2 $appendOutput, $blockSize100k, $workfactor;

    **$appendOutput**, **$blockSize100k**, **$workfactor**

  - $status = $bz-\>bzdeflate($input, $output);

    - $status = $bz-\>bzflush($output);

    - $status = $bz-\>bzclose($output);

    - Example

    - Uncompression

  - ($z, $status) = new Compress::Raw::Bunzip2 $appendOutput, $consumeInput, $small, $verbosity, $limitOutput;

    **$appendOutput**, **$consumeInput**, **$small**, **$limitOutput**, **$verbosity**

  - $status = $z-\>bzinflate($input, $output);

    - Misc

  - my $version = **Compress::Raw::Bzip2::bzlibversion()**;

    - Constants

  - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### Compress::Raw::Zlib - Low-Level Interface to zlib or zlib-ng compression library

- SYNOPSIS

  - DESCRIPTION

  - Compress::Raw::Zlib::Deflate

  - **($d, $status) = new Compress::Raw::Zlib::Deflate( \[OPT\] )**

    **-Level**, **-Method**, **-WindowBits**, **-MemLevel**, **-Strategy**, **-Dictionary**, **-Bufsize**, **-AppendOutput**, **-CRC32**, **-ADLER32**

  - **$status = $d-\>deflate($input, $output)**

    - **$status = $d-\>flush($output \[, $flush\_type\])**

    - **$status = $d-\>deflateReset()**

    - **$status = $d-\>deflateParams(\[OPT\])**

    **-Level**, **-Strategy**, **-BufSize**

  - **$status = $d-\>deflateTune($good\_length, $max\_lazy, $nice\_length, $max\_chain)**

    - **$d-\>dict\_adler()**

    - **$d-\>crc32()**

    - **$d-\>adler32()**

    - **$d-\>msg()**

    - **$d-\>total\_in()**

    - **$d-\>total\_out()**

    - **$d-\>get\_Strategy()**

    - **$d-\>get\_Level()**

    - **$d-\>get\_BufSize()**

    - Example

    - Compress::Raw::Zlib::Inflate

  - **($i, $status) = new Compress::Raw::Zlib::Inflate( \[OPT\] )**

    **-WindowBits**, **-Bufsize**, **-Dictionary**, **-AppendOutput**, **-CRC32**, **-ADLER32**, **-ConsumeInput**, **-LimitOutput**

  - **$status = $i-\>inflate($input, $output \[,$eof\])**

    - **$status = $i-\>inflateSync($input)**

    - **$status = $i-\>inflateReset()**

    - **$i-\>dict\_adler()**

    - **$i-\>crc32()**

    - **$i-\>adler32()**

    - **$i-\>msg()**

    - **$i-\>total\_in()**

    - **$i-\>total\_out()**

    - **$d-\>get\_BufSize()**

    - Examples

    - CHECKSUM FUNCTIONS

  - Misc

  - my $version = **Compress::Raw::Zlib::zlib\_version()**;

    - my $version = **Compress::Raw::Zlib::zlibng\_version()**;

    - my $flags = **Compress::Raw::Zlib::zlibCompileFlags()**;

    - **is\_zlib\_native()**; =head2 **is\_zlibng\_native()**; =head2 **is\_zlibng\_compat()**; =head2 **is\_zlibng()**;

    - The LimitOutput option.

  - ACCESSING ZIP FILES

  - FAQ

  - Compatibility with Unix compress/uncompress.

    - Accessing .tar.Z files

    - Zlib Library Version Support

    - CONSTANTS

  - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### Compress::Zlib - Interface to zlib compression library

- SYNOPSIS

  - DESCRIPTION

  - Notes for users of Compress::Zlib version 1

    - GZIP INTERFACE

  **$gz = gzopen($filename, $mode)**, **$gz = gzopen($filehandle, $mode)**, **$bytesread = $gz-\>gzread($buffer \[, $size\]) ;**, **$bytesread =** **$gz-\>gzreadline($line) ;**, **$byteswritten = $gz-\>gzwrite($buffer)** **;**, **$status = $gz-\>gzflush($flush\_type) ;**, **$offset =** **$gz-\>gztell() ;**, **$status = $gz-\>gzseek($offset, $whence) ;**, **$gz-\>gzclose**, **$gz-\>gzsetparams($level, $strategy**, **$level**, **$strategy**, **$gz-\>gzerror**, **$gzerrno**

  - Examples

    - Compress::Zlib::memGzip

    - Compress::Zlib::memGunzip

    - COMPRESS/UNCOMPRESS

  **$dest = compress($source \[, $level\] ) ;**, **$dest = uncompress($source)** **;**

- Deflate Interface

  - **($d, $status) = deflateInit( \[OPT\] )**

    **-Level**, **-Method**, **-WindowBits**, **-MemLevel**, **-Strategy**, **-Dictionary**, **-Bufsize**

  - **($out, $status) = $d-\>deflate($buffer)**

    - **($out, $status) = $d-\>flush()** =head2 **($out, $status) = $d-\>flush($flush\_type)**

    - **$status = $d-\>deflateParams(\[OPT\])**

    **-Level**, **-Strategy**

  - **$d-\>dict\_adler()**

    - **$d-\>msg()**

    - **$d-\>total\_in()**

    - **$d-\>total\_out()**

    - Example

    - Inflate Interface

  - **($i, $status) = inflateInit()**

    **-WindowBits**, **-Bufsize**, **-Dictionary**

  - **($out, $status) = $i-\>inflate($buffer)**

    - **$status = $i-\>inflateSync($buffer)**

    - **$i-\>dict\_adler()**

    - **$i-\>msg()**

    - **$i-\>total\_in()**

    - **$i-\>total\_out()**

    - Example

    - CHECKSUM FUNCTIONS

  - Misc

  - my $version = **Compress::Zlib::zlib\_version()**;

    - CONSTANTS

  - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### Config, =for comment Generated by configpm. Any changes made here will be lost!

- SYNOPSIS

  - DESCRIPTION

  **myconfig()**, **config\_sh()**, config\_re($regex), config\_vars(@names), **bincompat\_options()**, **non\_bincompat\_options()**, **compile\_date()**, **local\_patches()**, **header\_files()**

- EXAMPLE

  - WARNING

  - GLOSSARY

  - P

  `"PERL_API_REVISION"`, `"PERL_API_SUBVERSION"`, `"PERL_API_VERSION"`, `"PERL_CONFIG_SH"`, `"PERL_PATCHLEVEL"`, `"PERL_REVISION"`, `"PERL_SUBVERSION"`, `"PERL_VERSION"`

- \_

  `"_a"`, `"_exe"`, `"_o"`

- a

  `"afs"`, `"afsroot"`, `"alignbytes"`, `"aphostname"`, `"api_revision"`, `"api_subversion"`, `"api_version"`, `"api_versionstring"`, `"ar"`, `"archlib"`, `"archlibexp"`, `"archname"`, `"archname64"`, `"archobjs"`, `"asctime_r_proto"`, `"awk"`

- b

  `"baserev"`, `"bash"`, `"bin"`, `"bin_ELF"`, `"binexp"`, `"bison"`, `"byacc"`, `"byteorder"`

- c

  `"c"`, `"castflags"`, `"cat"`, `"cc"`, `"cccdlflags"`, `"ccdlflags"`, `"ccflags"`, `"ccflags_uselargefiles"`, `"ccname"`, `"ccsymbols"`, `"ccversion"`, `"cf_by"`, `"cf_email"`, `"cf_time"`, `"charbits"`, `"charsize"`, `"chgrp"`, `"chmod"`, `"chown"`, `"clocktype"`, `"comm"`, `"compiler_warning"`, `"compress"`, `"config_arg0"`, `"config_argc"`, `"config_args"`, `"contains"`, `"cp"`, `"cpio"`, `"cpp"`, `"cpp_stuff"`, `"cppccsymbols"`, `"cppflags"`, `"cpplast"`, `"cppminus"`, `"cpprun"`, `"cppstdin"`, `"cppsymbols"`, `"crypt_r_proto"`, `"cryptlib"`, `"csh"`, `"ctermid_r_proto"`, `"ctime_r_proto"`

- d

  `"d_Gconvert"`, `"d_PRIEUldbl"`, `"d_PRIFUldbl"`, `"d_PRIGUldbl"`, `"d_PRIXU64"`, `"d_PRId64"`, `"d_PRIeldbl"`, `"d_PRIfldbl"`, `"d_PRIgldbl"`, `"d_PRIi64"`, `"d_PRIo64"`, `"d_PRIu64"`, `"d_PRIx64"`, `"d_SCNfldbl"`, `"d__fwalk"`, `"d_accept4"`, `"d_access"`, `"d_accessx"`, `"d_acosh"`, `"d_aintl"`, `"d_alarm"`, `"d_archlib"`, `"d_asctime64"`, `"d_asctime_r"`, `"d_asinh"`, `"d_atanh"`, `"d_atolf"`, `"d_atoll"`, `"d_attribute_always_inline"`, `"d_attribute_deprecated"`, `"d_attribute_format"`, `"d_attribute_malloc"`, `"d_attribute_nonnull"`, `"d_attribute_noreturn"`, `"d_attribute_pure"`, `"d_attribute_unused"`, `"d_attribute_visibility"`, `"d_attribute_warn_unused_result"`, `"d_backtrace"`, `"d_bsd"`, `"d_bsdgetpgrp"`, `"d_bsdsetpgrp"`, `"d_builtin_add_overflow"`, `"d_builtin_choose_expr"`, `"d_builtin_expect"`, `"d_builtin_mul_overflow"`, `"d_builtin_sub_overflow"`, `"d_c99_variadic_macros"`, `"d_casti32"`, `"d_castneg"`, `"d_cbrt"`, `"d_chown"`, `"d_chroot"`, `"d_chsize"`, `"d_class"`, `"d_clearenv"`, `"d_closedir"`, `"d_cmsghdr_s"`, `"d_copysign"`, `"d_copysignl"`, `"d_cplusplus"`, `"d_crypt"`, `"d_crypt_r"`, `"d_csh"`, `"d_ctermid"`, `"d_ctermid_r"`, `"d_ctime64"`, `"d_ctime_r"`, `"d_cuserid"`, `"d_dbminitproto"`, `"d_difftime"`, `"d_difftime64"`, `"d_dir_dd_fd"`, `"d_dirfd"`, `"d_dirnamlen"`, `"d_dladdr"`, `"d_dlerror"`, `"d_dlopen"`, `"d_dlsymun"`, `"d_dosuid"`, `"d_double_has_inf"`, `"d_double_has_nan"`, `"d_double_has_negative_zero"`, `"d_double_has_subnormals"`, `"d_double_style_cray"`, `"d_double_style_ibm"`, `"d_double_style_ieee"`, `"d_double_style_vax"`, `"d_drand48_r"`, `"d_drand48proto"`, `"d_dup2"`, `"d_dup3"`, `"d_duplocale"`, `"d_eaccess"`, `"d_endgrent"`, `"d_endgrent_r"`, `"d_endhent"`, `"d_endhostent_r"`, `"d_endnent"`, `"d_endnetent_r"`, `"d_endpent"`, `"d_endprotoent_r"`, `"d_endpwent"`, `"d_endpwent_r"`, `"d_endsent"`, `"d_endservent_r"`, `"d_eofnblk"`, `"d_erf"`, `"d_erfc"`, `"d_eunice"`, `"d_exp2"`, `"d_expm1"`, `"d_faststdio"`, `"d_fchdir"`, `"d_fchmod"`, `"d_fchmodat"`, `"d_fchown"`, `"d_fcntl"`, `"d_fcntl_can_lock"`, `"d_fd_macros"`, `"d_fd_set"`, `"d_fdclose"`, `"d_fdim"`, `"d_fdopendir"`, `"d_fds_bits"`, `"d_fegetround"`, `"d_ffs"`, `"d_ffsl"`, `"d_fgetpos"`, `"d_finite"`, `"d_finitel"`, `"d_flexfnam"`, `"d_flock"`, `"d_flockproto"`, `"d_fma"`, `"d_fmax"`, `"d_fmin"`, `"d_fork"`, `"d_fp_class"`, `"d_fp_classify"`, `"d_fp_classl"`, `"d_fpathconf"`, `"d_fpclass"`, `"d_fpclassify"`, `"d_fpclassl"`, `"d_fpgetround"`, `"d_fpos64_t"`, `"d_freelocale"`, `"d_frexpl"`, `"d_fs_data_s"`, `"d_fseeko"`, `"d_fsetpos"`, `"d_fstatfs"`, `"d_fstatvfs"`, `"d_fsync"`, `"d_ftello"`, `"d_ftime"`, `"d_futimes"`, `"d_gai_strerror"`, `"d_gdbm_ndbm_h_uses_prototypes"`, `"d_gdbmndbm_h_uses_prototypes"`, `"d_getaddrinfo"`, `"d_getcwd"`, `"d_getenv_preserves_other_thread"`, `"d_getespwnam"`, `"d_getfsstat"`, `"d_getgrent"`, `"d_getgrent_r"`, `"d_getgrgid_r"`, `"d_getgrnam_r"`, `"d_getgrps"`, `"d_gethbyaddr"`, `"d_gethbyname"`, `"d_gethent"`, `"d_gethname"`, `"d_gethostbyaddr_r"`, `"d_gethostbyname_r"`, `"d_gethostent_r"`, `"d_gethostprotos"`, `"d_getitimer"`, `"d_getlogin"`, `"d_getlogin_r"`, `"d_getmnt"`, `"d_getmntent"`, `"d_getnameinfo"`, `"d_getnbyaddr"`, `"d_getnbyname"`, `"d_getnent"`, `"d_getnetbyaddr_r"`, `"d_getnetbyname_r"`, `"d_getnetent_r"`, `"d_getnetprotos"`, `"d_getpagsz"`, `"d_getpbyname"`, `"d_getpbynumber"`, `"d_getpent"`, `"d_getpgid"`, `"d_getpgrp"`, `"d_getpgrp2"`, `"d_getppid"`, `"d_getprior"`, `"d_getprotobyname_r"`, `"d_getprotobynumber_r"`, `"d_getprotoent_r"`, `"d_getprotoprotos"`, `"d_getprpwnam"`, `"d_getpwent"`, `"d_getpwent_r"`, `"d_getpwnam_r"`, `"d_getpwuid_r"`, `"d_getsbyname"`, `"d_getsbyport"`, `"d_getsent"`, `"d_getservbyname_r"`, `"d_getservbyport_r"`, `"d_getservent_r"`, `"d_getservprotos"`, `"d_getspnam"`, `"d_getspnam_r"`, `"d_gettimeod"`, `"d_gmtime64"`, `"d_gmtime_r"`, `"d_gnulibc"`, `"d_grpasswd"`, `"d_has_C_UTF8"`, `"d_hasmntopt"`, `"d_htonl"`, `"d_hypot"`, `"d_ilogb"`, `"d_ilogbl"`, `"d_inc_version_list"`, `"d_inetaton"`, `"d_inetntop"`, `"d_inetpton"`, `"d_int64_t"`, `"d_ip_mreq"`, `"d_ip_mreq_source"`, `"d_ipv6_mreq"`, `"d_ipv6_mreq_source"`, `"d_isascii"`, `"d_isblank"`, `"d_isfinite"`, `"d_isfinitel"`, `"d_isinf"`, `"d_isinfl"`, `"d_isless"`, `"d_isnan"`, `"d_isnanl"`, `"d_isnormal"`, `"d_j0"`, `"d_j0l"`, `"d_killpg"`, `"d_lc_monetary_2008"`, `"d_lchown"`, `"d_ldbl_dig"`, `"d_ldexpl"`, `"d_lgamma"`, `"d_lgamma_r"`, `"d_libm_lib_version"`, `"d_libname_unique"`, `"d_link"`, `"d_linkat"`, `"d_llrint"`, `"d_llrintl"`, `"d_llround"`, `"d_llroundl"`, `"d_localeconv_l"`, `"d_localtime64"`, `"d_localtime_r"`, `"d_localtime_r_needs_tzset"`, `"d_locconv"`, `"d_lockf"`, `"d_log1p"`, `"d_log2"`, `"d_logb"`, `"d_long_double_style_ieee"`, `"d_long_double_style_ieee_doubledouble"`, `"d_long_double_style_ieee_extended"`, `"d_long_double_style_ieee_std"`, `"d_long_double_style_vax"`, `"d_longdbl"`, `"d_longlong"`, `"d_lrint"`, `"d_lrintl"`, `"d_lround"`, `"d_lroundl"`, `"d_lseekproto"`, `"d_lstat"`, `"d_madvise"`, `"d_malloc_good_size"`, `"d_malloc_size"`, `"d_malloc_usable_size"`, `"d_mblen"`, `"d_mbrlen"`, `"d_mbrtowc"`, `"d_mbstowcs"`, `"d_mbtowc"`, `"d_memmem"`, `"d_memrchr"`, `"d_mkdir"`, `"d_mkdtemp"`, `"d_mkfifo"`, `"d_mkostemp"`, `"d_mkstemp"`, `"d_mkstemps"`, `"d_mktime"`, `"d_mktime64"`, `"d_mmap"`, `"d_modfl"`, `"d_modflproto"`, `"d_mprotect"`, `"d_msg"`, `"d_msg_ctrunc"`, `"d_msg_dontroute"`, `"d_msg_oob"`, `"d_msg_peek"`, `"d_msg_proxy"`, `"d_msgctl"`, `"d_msgget"`, `"d_msghdr_s"`, `"d_msgrcv"`, `"d_msgsnd"`, `"d_msync"`, `"d_munmap"`, `"d_mymalloc"`, `"d_nan"`, `"d_nanosleep"`, `"d_ndbm"`, `"d_ndbm_h_uses_prototypes"`, `"d_nearbyint"`, `"d_newlocale"`, `"d_nextafter"`, `"d_nexttoward"`, `"d_nice"`, `"d_nl_langinfo"`, `"d_nl_langinfo_l"`, `"d_non_int_bitfields"`, `"d_nv_preserves_uv"`, `"d_nv_zero_is_allbits_zero"`, `"d_off64_t"`, `"d_old_pthread_create_joinable"`, `"d_oldpthreads"`, `"d_oldsock"`, `"d_open3"`, `"d_openat"`, `"d_pathconf"`, `"d_pause"`, `"d_perl_lc_all_category_positions_init"`, `"d_perl_lc_all_separator"`, `"d_perl_lc_all_uses_name_value_pairs"`, `"d_perl_otherlibdirs"`, `"d_phostname"`, `"d_pipe"`, `"d_pipe2"`, `"d_poll"`, `"d_portable"`, `"d_prctl"`, `"d_prctl_set_name"`, `"d_printf_format_null"`, `"d_procselfexe"`, `"d_pseudofork"`, `"d_pthread_atfork"`, `"d_pthread_attr_setscope"`, `"d_pthread_yield"`, `"d_ptrdiff_t"`, `"d_pwage"`, `"d_pwchange"`, `"d_pwclass"`, `"d_pwcomment"`, `"d_pwexpire"`, `"d_pwgecos"`, `"d_pwpasswd"`, `"d_pwquota"`, `"d_qgcvt"`, `"d_quad"`, `"d_querylocale"`, `"d_random_r"`, `"d_re_comp"`, `"d_readdir"`, `"d_readdir64_r"`, `"d_readdir_r"`, `"d_readlink"`, `"d_readv"`, `"d_recvmsg"`, `"d_regcmp"`, `"d_regcomp"`, `"d_remainder"`, `"d_remquo"`, `"d_rename"`, `"d_renameat"`, `"d_rewinddir"`, `"d_rint"`, `"d_rmdir"`, `"d_round"`, `"d_sbrkproto"`, `"d_scalbn"`, `"d_scalbnl"`, `"d_sched_yield"`, `"d_scm_rights"`, `"d_seekdir"`, `"d_select"`, `"d_sem"`, `"d_semctl"`, `"d_semctl_semid_ds"`, `"d_semctl_semun"`, `"d_semget"`, `"d_semop"`, `"d_sendmsg"`, `"d_setegid"`, `"d_setenv"`, `"d_seteuid"`, `"d_setgrent"`, `"d_setgrent_r"`, `"d_setgrps"`, `"d_sethent"`, `"d_sethostent_r"`, `"d_setitimer"`, `"d_setlinebuf"`, `"d_setlocale"`, `"d_setlocale_accepts_any_locale_name"`, `"d_setlocale_r"`, `"d_setnent"`, `"d_setnetent_r"`, `"d_setpent"`, `"d_setpgid"`, `"d_setpgrp"`, `"d_setpgrp2"`, `"d_setprior"`, `"d_setproctitle"`, `"d_setprotoent_r"`, `"d_setpwent"`, `"d_setpwent_r"`, `"d_setregid"`, `"d_setresgid"`, `"d_setresuid"`, `"d_setreuid"`, `"d_setrgid"`, `"d_setruid"`, `"d_setsent"`, `"d_setservent_r"`, `"d_setsid"`, `"d_setvbuf"`, `"d_shm"`, `"d_shmat"`, `"d_shmatprototype"`, `"d_shmctl"`, `"d_shmdt"`, `"d_shmget"`, `"d_sigaction"`, `"d_siginfo_si_addr"`, `"d_siginfo_si_band"`, `"d_siginfo_si_errno"`, `"d_siginfo_si_fd"`, `"d_siginfo_si_pid"`, `"d_siginfo_si_status"`, `"d_siginfo_si_uid"`, `"d_siginfo_si_value"`, `"d_signbit"`, `"d_sigprocmask"`, `"d_sigsetjmp"`, `"d_sin6_scope_id"`, `"d_sitearch"`, `"d_snprintf"`, `"d_sockaddr_in6"`, `"d_sockaddr_sa_len"`, `"d_sockaddr_storage"`, `"d_sockatmark"`, `"d_sockatmarkproto"`, `"d_socket"`, `"d_socklen_t"`, `"d_sockpair"`, `"d_socks5_init"`, `"d_sqrtl"`, `"d_srand48_r"`, `"d_srandom_r"`, `"d_sresgproto"`, `"d_sresuproto"`, `"d_stat"`, `"d_statblks"`, `"d_statfs_f_flags"`, `"d_statfs_s"`, `"d_static_inline"`, `"d_statvfs"`, `"d_stdio_cnt_lval"`, `"d_stdio_ptr_lval"`, `"d_stdio_ptr_lval_nochange_cnt"`, `"d_stdio_ptr_lval_sets_cnt"`, `"d_stdio_stream_array"`, `"d_stdiobase"`, `"d_stdstdio"`, `"d_strcoll"`, `"d_strerror_l"`, `"d_strerror_r"`, `"d_strftime"`, `"d_strlcat"`, `"d_strlcpy"`, `"d_strnlen"`, `"d_strtod"`, `"d_strtod_l"`, `"d_strtol"`, `"d_strtold"`, `"d_strtold_l"`, `"d_strtoll"`, `"d_strtoq"`, `"d_strtoul"`, `"d_strtoull"`, `"d_strtouq"`, `"d_strxfrm"`, `"d_strxfrm_l"`, `"d_suidsafe"`, `"d_symlink"`, `"d_syscall"`, `"d_syscallproto"`, `"d_sysconf"`, `"d_sysernlst"`, `"d_syserrlst"`, `"d_system"`, `"d_tcgetpgrp"`, `"d_tcsetpgrp"`, `"d_telldir"`, `"d_telldirproto"`, `"d_tgamma"`, `"d_thread_local"`, `"d_time"`, `"d_timegm"`, `"d_times"`, `"d_tm_tm_gmtoff"`, `"d_tm_tm_zone"`, `"d_tmpnam_r"`, `"d_towlower"`, `"d_towupper"`, `"d_trunc"`, `"d_truncate"`, `"d_truncl"`, `"d_ttyname_r"`, `"d_tzname"`, `"d_u32align"`, `"d_ualarm"`, `"d_umask"`, `"d_uname"`, `"d_union_semun"`, `"d_unlinkat"`, `"d_unordered"`, `"d_unsetenv"`, `"d_uselocale"`, `"d_usleep"`, `"d_usleepproto"`, `"d_ustat"`, `"d_vendorarch"`, `"d_vendorbin"`, `"d_vendorlib"`, `"d_vendorscript"`, `"d_vfork"`, `"d_void_closedir"`, `"d_voidsig"`, `"d_voidtty"`, `"d_vsnprintf"`, `"d_wait4"`, `"d_waitpid"`, `"d_wcrtomb"`, `"d_wcscmp"`, `"d_wcstombs"`, `"d_wcsxfrm"`, `"d_wctomb"`, `"d_writev"`, `"d_xenix"`, `"date"`, `"db_hashtype"`, `"db_prefixtype"`, `"db_version_major"`, `"db_version_minor"`, `"db_version_patch"`, `"default_inc_excludes_dot"`, `"direntrytype"`, `"dlext"`, `"dlsrc"`, `"doubleinfbytes"`, `"doublekind"`, `"doublemantbits"`, `"doublenanbytes"`, `"doublesize"`, `"drand01"`, `"drand48_r_proto"`, `"dtrace"`, `"dtraceobject"`, `"dtracexnolibs"`, `"dynamic_ext"`

- e

  `"eagain"`, `"ebcdic"`, `"echo"`, `"egrep"`, `"emacs"`, `"endgrent_r_proto"`, `"endhostent_r_proto"`, `"endnetent_r_proto"`, `"endprotoent_r_proto"`, `"endpwent_r_proto"`, `"endservent_r_proto"`, `"eunicefix"`, `"exe_ext"`, `"expr"`, `"extensions"`, `"extern_C"`, `"extras"`

- f

  `"fflushNULL"`, `"fflushall"`, `"find"`, `"firstmakefile"`, `"flex"`, `"fpossize"`, `"fpostype"`, `"freetype"`, `"from"`, `"full_ar"`, `"full_csh"`, `"full_sed"`

- g

  `"gccansipedantic"`, `"gccosandvers"`, `"gccversion"`, `"getgrent_r_proto"`, `"getgrgid_r_proto"`, `"getgrnam_r_proto"`, `"gethostbyaddr_r_proto"`, `"gethostbyname_r_proto"`, `"gethostent_r_proto"`, `"getlogin_r_proto"`, `"getnetbyaddr_r_proto"`, `"getnetbyname_r_proto"`, `"getnetent_r_proto"`, `"getprotobyname_r_proto"`, `"getprotobynumber_r_proto"`, `"getprotoent_r_proto"`, `"getpwent_r_proto"`, `"getpwnam_r_proto"`, `"getpwuid_r_proto"`, `"getservbyname_r_proto"`, `"getservbyport_r_proto"`, `"getservent_r_proto"`, `"getspnam_r_proto"`, `"gidformat"`, `"gidsign"`, `"gidsize"`, `"gidtype"`, `"glibpth"`, `"gmake"`, `"gmtime_r_proto"`, `"gnulibc_version"`, `"grep"`, `"groupcat"`, `"groupstype"`, `"gzip"`

- h

  `"h_fcntl"`, `"h_sysfile"`, `"hint"`, `"hostcat"`, `"hostgenerate"`, `"hostosname"`, `"hostperl"`, `"html1dir"`, `"html1direxp"`, `"html3dir"`, `"html3direxp"`

- i

  `"i16size"`, `"i16type"`, `"i32dformat"`, `"i32size"`, `"i32type"`, `"i64size"`, `"i64type"`, `"i8size"`, `"i8type"`, `"i_arpainet"`, `"i_bfd"`, `"i_bsdioctl"`, `"i_crypt"`, `"i_db"`, `"i_dbm"`, `"i_dirent"`, `"i_dlfcn"`, `"i_execinfo"`, `"i_fcntl"`, `"i_fenv"`, `"i_fp"`, `"i_fp_class"`, `"i_gdbm"`, `"i_gdbm_ndbm"`, `"i_gdbmndbm"`, `"i_grp"`, `"i_ieeefp"`, `"i_inttypes"`, `"i_langinfo"`, `"i_libutil"`, `"i_locale"`, `"i_machcthr"`, `"i_malloc"`, `"i_mallocmalloc"`, `"i_mntent"`, `"i_ndbm"`, `"i_netdb"`, `"i_neterrno"`, `"i_netinettcp"`, `"i_niin"`, `"i_poll"`, `"i_prot"`, `"i_pthread"`, `"i_pwd"`, `"i_quadmath"`, `"i_rpcsvcdbm"`, `"i_sgtty"`, `"i_shadow"`, `"i_socks"`, `"i_stdbool"`, `"i_stdint"`, `"i_stdlib"`, `"i_sunmath"`, `"i_sysaccess"`, `"i_sysdir"`, `"i_sysfile"`, `"i_sysfilio"`, `"i_sysin"`, `"i_sysioctl"`, `"i_syslog"`, `"i_sysmman"`, `"i_sysmode"`, `"i_sysmount"`, `"i_sysndir"`, `"i_sysparam"`, `"i_syspoll"`, `"i_sysresrc"`, `"i_syssecrt"`, `"i_sysselct"`, `"i_syssockio"`, `"i_sysstat"`, `"i_sysstatfs"`, `"i_sysstatvfs"`, `"i_syssyscall"`, `"i_systime"`, `"i_systimek"`, `"i_systimes"`, `"i_systypes"`, `"i_sysuio"`, `"i_sysun"`, `"i_sysutsname"`, `"i_sysvfs"`, `"i_syswait"`, `"i_termio"`, `"i_termios"`, `"i_time"`, `"i_unistd"`, `"i_ustat"`, `"i_utime"`, `"i_vfork"`, `"i_wchar"`, `"i_wctype"`, `"i_xlocale"`, `"ignore_versioned_solibs"`, `"inc_version_list"`, `"inc_version_list_init"`, `"incpath"`, `"incpth"`, `"inews"`, `"initialinstalllocation"`, `"installarchlib"`, `"installbin"`, `"installhtml1dir"`, `"installhtml3dir"`, `"installman1dir"`, `"installman3dir"`, `"installprefix"`, `"installprefixexp"`, `"installprivlib"`, `"installscript"`, `"installsitearch"`, `"installsitebin"`, `"installsitehtml1dir"`, `"installsitehtml3dir"`, `"installsitelib"`, `"installsiteman1dir"`, `"installsiteman3dir"`, `"installsitescript"`, `"installstyle"`, `"installusrbinperl"`, `"installvendorarch"`, `"installvendorbin"`, `"installvendorhtml1dir"`, `"installvendorhtml3dir"`, `"installvendorlib"`, `"installvendorman1dir"`, `"installvendorman3dir"`, `"installvendorscript"`, `"intsize"`, `"issymlink"`, `"ivdformat"`, `"ivsize"`, `"ivtype"`

- k

  `"known_extensions"`, `"ksh"`

- l

  `"ld"`, `"ld_can_script"`, `"lddlflags"`, `"ldflags"`, `"ldflags_uselargefiles"`, `"ldlibpthname"`, `"less"`, `"lib_ext"`, `"libc"`, `"libperl"`, `"libpth"`, `"libs"`, `"libsdirs"`, `"libsfiles"`, `"libsfound"`, `"libspath"`, `"libswanted"`, `"libswanted_uselargefiles"`, `"line"`, `"lint"`, `"lkflags"`, `"ln"`, `"lns"`, `"localtime_r_proto"`, `"locincpth"`, `"loclibpth"`, `"longdblinfbytes"`, `"longdblkind"`, `"longdblmantbits"`, `"longdblnanbytes"`, `"longdblsize"`, `"longlongsize"`, `"longsize"`, `"lp"`, `"lpr"`, `"ls"`, `"lseeksize"`, `"lseektype"`

- m

  `"mail"`, `"mailx"`, `"make"`, `"make_set_make"`, `"mallocobj"`, `"mallocsrc"`, `"malloctype"`, `"man1dir"`, `"man1direxp"`, `"man1ext"`, `"man3dir"`, `"man3direxp"`, `"man3ext"`, `"mips_type"`, `"mistrustnm"`, `"mkdir"`, `"mmaptype"`, `"modetype"`, `"more"`, `"multiarch"`, `"mv"`, `"myarchname"`, `"mydomain"`, `"myhostname"`, `"myuname"`

- n

  `"n"`, `"need_va_copy"`, `"netdb_hlen_type"`, `"netdb_host_type"`, `"netdb_name_type"`, `"netdb_net_type"`, `"nm"`, `"nm_opt"`, `"nm_so_opt"`, `"nonxs_ext"`, `"nroff"`, `"nvEUformat"`, `"nvFUformat"`, `"nvGUformat"`, `"nv_overflows_integers_at"`, `"nv_preserves_uv_bits"`, `"nveformat"`, `"nvfformat"`, `"nvgformat"`, `"nvmantbits"`, `"nvsize"`, `"nvtype"`

- o

  `"o_nonblock"`, `"obj_ext"`, `"old_pthread_create_joinable"`, `"optimize"`, `"orderlib"`, `"osname"`, `"osvers"`, `"otherlibdirs"`

- p

  `"package"`, `"pager"`, `"passcat"`, `"patchlevel"`, `"path_sep"`, `"perl"`, `"perl5"`, `"perl_lc_all_category_positions_init"`, `"perl_lc_all_separator"`, `"perl_patchlevel"`, `"perl_static_inline"`, `"perl_thread_local"`, `"perladmin"`, `"perllibs"`, `"perlpath"`, `"pg"`, `"phostname"`, `"pidtype"`, `"plibpth"`, `"pmake"`, `"pr"`, `"prefix"`, `"prefixexp"`, `"privlib"`, `"privlibexp"`, `"procselfexe"`, `"ptrsize"`

- q

  `"quadkind"`, `"quadtype"`

- r

  `"randbits"`, `"randfunc"`, `"random_r_proto"`, `"randseedtype"`, `"ranlib"`, `"rd_nodata"`, `"readdir64_r_proto"`, `"readdir_r_proto"`, `"revision"`, `"rm"`, `"rm_try"`, `"rmail"`, `"run"`, `"runnm"`

- s

  `"sGMTIME_max"`, `"sGMTIME_min"`, `"sLOCALTIME_max"`, `"sLOCALTIME_min"`, `"sPRIEUldbl"`, `"sPRIFUldbl"`, `"sPRIGUldbl"`, `"sPRIXU64"`, `"sPRId64"`, `"sPRIeldbl"`, `"sPRIfldbl"`, `"sPRIgldbl"`, `"sPRIi64"`, `"sPRIo64"`, `"sPRIu64"`, `"sPRIx64"`, `"sSCNfldbl"`, `"sched_yield"`, `"scriptdir"`, `"scriptdirexp"`, `"sed"`, `"seedfunc"`, `"selectminbits"`, `"selecttype"`, `"sendmail"`, `"setgrent_r_proto"`, `"sethostent_r_proto"`, `"setlocale_r_proto"`, `"setnetent_r_proto"`, `"setprotoent_r_proto"`, `"setpwent_r_proto"`, `"setservent_r_proto"`, `"sh"`, `"shar"`, `"sharpbang"`, `"shmattype"`, `"shortsize"`, `"shrpenv"`, `"shsharp"`, `"sig_count"`, `"sig_name"`, `"sig_name_init"`, `"sig_num"`, `"sig_num_init"`, `"sig_size"`, `"signal_t"`, `"sitearch"`, `"sitearchexp"`, `"sitebin"`, `"sitebinexp"`, `"sitehtml1dir"`, `"sitehtml1direxp"`, `"sitehtml3dir"`, `"sitehtml3direxp"`, `"sitelib"`, `"sitelib_stem"`, `"sitelibexp"`, `"siteman1dir"`, `"siteman1direxp"`, `"siteman3dir"`, `"siteman3direxp"`, `"siteprefix"`, `"siteprefixexp"`, `"sitescript"`, `"sitescriptexp"`, `"sizesize"`, `"sizetype"`, `"sleep"`, `"smail"`, `"so"`, `"sockethdr"`, `"socketlib"`, `"socksizetype"`, `"sort"`, `"spackage"`, `"spitshell"`, `"srand48_r_proto"`, `"srandom_r_proto"`, `"src"`, `"ssizetype"`, `"st_dev_sign"`, `"st_dev_size"`, `"st_ino_sign"`, `"st_ino_size"`, `"startperl"`, `"startsh"`, `"static_ext"`, `"stdchar"`, `"stdio_base"`, `"stdio_bufsiz"`, `"stdio_cnt"`, `"stdio_filbuf"`, `"stdio_ptr"`, `"stdio_stream_array"`, `"strerror_r_proto"`, `"submit"`, `"subversion"`, `"sysman"`, `"sysroot"`

- t

  `"tail"`, `"taint_disabled"`, `"taint_support"`, `"tar"`, `"targetarch"`, `"targetdir"`, `"targetenv"`, `"targethost"`, `"targetmkdir"`, `"targetport"`, `"targetsh"`, `"tbl"`, `"tee"`, `"test"`, `"timeincl"`, `"timetype"`, `"tmpnam_r_proto"`, `"to"`, `"touch"`, `"tr"`, `"trnl"`, `"troff"`, `"ttyname_r_proto"`

- u

  `"u16size"`, `"u16type"`, `"u32XUformat"`, `"u32oformat"`, `"u32size"`, `"u32type"`, `"u32uformat"`, `"u32xformat"`, `"u64size"`, `"u64type"`, `"u8size"`, `"u8type"`, `"uidformat"`, `"uidsign"`, `"uidsize"`, `"uidtype"`, `"uname"`, `"uniq"`, `"uquadtype"`, `"use64bitall"`, `"use64bitint"`, `"usecbacktrace"`, `"usecrosscompile"`, `"usedefaultstrict"`, `"usedevel"`, `"usedl"`, `"usedtrace"`, `"usefaststdio"`, `"useithreads"`, `"usekernprocpathname"`, `"uselanginfo"`, `"uselargefiles"`, `"uselongdouble"`, `"usemallocwrap"`, `"usemorebits"`, `"usemultiplicity"`, `"usemymalloc"`, `"usenm"`, `"usensgetexecutablepath"`, `"useopcode"`, `"useperlio"`, `"useposix"`, `"usequadmath"`, `"usereentrant"`, `"userelocatableinc"`, `"useshrplib"`, `"usesitecustomize"`, `"usesocks"`, `"usethreads"`, `"usevendorprefix"`, `"useversionedarchname"`, `"usevfork"`, `"usrinc"`, `"uuname"`, `"uvXUformat"`, `"uvoformat"`, `"uvsize"`, `"uvtype"`, `"uvuformat"`, `"uvxformat"`

- v

  `"vendorarch"`, `"vendorarchexp"`, `"vendorbin"`, `"vendorbinexp"`, `"vendorhtml1dir"`, `"vendorhtml1direxp"`, `"vendorhtml3dir"`, `"vendorhtml3direxp"`, `"vendorlib"`, `"vendorlib_stem"`, `"vendorlibexp"`, `"vendorman1dir"`, `"vendorman1direxp"`, `"vendorman3dir"`, `"vendorman3direxp"`, `"vendorprefix"`, `"vendorprefixexp"`, `"vendorscript"`, `"vendorscriptexp"`, `"version"`, `"version_patchlevel_string"`, `"versiononly"`, `"vi"`

- x

  `"xlibpth"`, `"xlocale_needed"`

- y

  `"yacc"`, `"yaccflags"`

- z

  `"zcat"`, `"zip"`

- GIT DATA

  - NOTE

  ### Config::Extensions - hash lookup of which core extensions were built.

- SYNOPSIS

  - DESCRIPTION

  dynamic, nonxs, static

- AUTHOR

  ### Config::Perl::V - Structured data retrieval of perl -V output

- SYNOPSIS

  - DESCRIPTION

  - $conf = myconfig ()

    - $conf = plv2hash ($text \[, ...\])

    - $info = summary (\[$conf\])

    - $md5 = signature (\[$conf\])

    - The hash structure

    build, osname, stamp, options, derived, patches, environment, config, inc

- REASONING

  - BUGS

  - TODO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### Cwd - get pathname of current working directory

- SYNOPSIS

  - DESCRIPTION

  - getcwd and friends

    getcwd, cwd, fastcwd, fastgetcwd, getdcwd

  - abs\_path and friends

    abs\_path, realpath, fast\_abs\_path

  - $ENV{PWD}

    - NOTES

  - AUTHOR

  - COPYRIGHT

  - SEE ALSO

  ### DB - programmatic interface to the Perl debugging API

- SYNOPSIS

  - DESCRIPTION

  - Global Variables

    ```
     $DB::sub,  %DB::sub,  $DB::single,  $DB::signal,  $DB::trace,  @DB::args,
    @DB::dbline,  %DB::dbline,  $DB::package,  $DB::filename,  $DB::subname,
    $DB::lineno
    ```

  - API Methods

    CLIENT-\>**register()**, CLIENT-\>evalcode(STRING), CLIENT-\>skippkg('D::hide'), CLIENT-\>**run()**, CLIENT-\>**step()**, CLIENT-\>**next()**, CLIENT-\>**done()**

  - Client Callback Methods

    CLIENT-\>**init()**, CLIENT-\>prestop(\[STRING\]), CLIENT-\>**stop()**, CLIENT-\>**idle()**, CLIENT-\>poststop(\[STRING\]), CLIENT-\>evalcode(STRING), CLIENT-\>**cleanup()**, CLIENT-\>output(LIST)

- BUGS

  - AUTHOR

  ### DBM\_Filter -- Filter DBM keys/values

- SYNOPSIS

  - DESCRIPTION

  - What is a DBM Filter?

  - So what's new?

    - METHODS

  - $db-\>**Filter\_Push()** / $db-\>**Filter\_Key\_Push()** / $db-\>**Filter\_Value\_Push()**

    Filter\_Push, Filter\_Key\_Push, Filter\_Value\_Push

  - $db-\>**Filter\_Pop()**

    - $db-\>**Filtered()**

    - Writing a Filter

  - Immediate Filters

    - Canned Filters

    "name", params

- Filters Included

  utf8, encode, compress, int32, null

- NOTES

  - Maintain Round Trip Integrity

    - Don't mix filtered & non-filtered data in the same database file.

    - EXAMPLE

  - SEE ALSO

  - AUTHOR

  ### DBM\_Filter::compress - filter for DBM\_Filter

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - AUTHOR

  ### DBM\_Filter::encode - filter for DBM\_Filter

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - AUTHOR

  ### DBM\_Filter::int32 - filter for DBM\_Filter

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - AUTHOR

  ### DBM\_Filter::null - filter for DBM\_Filter

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - AUTHOR

  ### DBM\_Filter::utf8 - filter for DBM\_Filter

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - AUTHOR

  ### DB\_File - Perl5 access to Berkeley DB version 1.x

- SYNOPSIS

  - DESCRIPTION

  **DB\_HASH**, **DB\_BTREE**, **DB\_RECNO**

  - Using DB\_File with Berkeley DB version 2 or greater

    - Interface to Berkeley DB

    - Opening a Berkeley DB Database File

    - Default Parameters

    - In Memory Databases

    - DB\_HASH

  - A Simple Example

    - DB\_BTREE

  - Changing the BTREE sort order

    - Handling Duplicate Keys

    - The **get\_dup()** Method

    - The **find\_dup()** Method

    - The **del\_dup()** Method

    - Matching Partial Keys

    - DB\_RECNO

  - The 'bval' Option

    - A Simple Example

    - Extra RECNO Methods

    **$X-\>push(list) ;**, **$value = $X-\>pop ;**, **$X-\>shift**, **$X-\>unshift(list) ;**, **$X-\>length**, **$X-\>splice(offset,** **length, elements);**

  - Another Example

    - THE API INTERFACE

  **$status = $X-\>get($key, $value \[, $flags\]) ;**, **$status =** **$X-\>put($key, $value \[, $flags\]) ;**, **$status = $X-\>del($key \[,** **$flags\]) ;**, **$status = $X-\>fd ;**, **$status = $X-\>seq($key,** **$value, $flags) ;**, **$status = $X-\>sync(\[$flags\]) ;**

- DBM FILTERS

  - DBM Filter Low-level API

    **filter\_store\_key**, **filter\_store\_value**, **filter\_fetch\_key**, **filter\_fetch\_value**

  - The Filter

    - An Example -- the NULL termination problem.

    - Another Example -- Key is a C int.

    - HINTS AND TIPS

  - Locking: The Trouble with fd

    - Safe ways to lock a database

    **Tie::DB\_Lock**, **Tie::DB\_LockFile**, **DB\_File::Lock**

  - Sharing Databases With C Applications

    - The **untie()** Gotcha

    - COMMON QUESTIONS

  - Why is there Perl source in my database?

    - How do I store complex data structures with DB\_File?

    - What does "wide character in subroutine entry" mean?

    - What does "Invalid Argument" mean?

    - What does "Bareword 'DB\_File' not allowed" mean?

    - REFERENCES

  - HISTORY

  - BUGS

  - SUPPORT

  - AVAILABILITY

  - COPYRIGHT

  - SEE ALSO

  - AUTHOR

  ### Data::Dumper - stringified perl data structures, suitable for both printing and "eval"

- SYNOPSIS

  - DESCRIPTION

  - Methods

    *PACKAGE*-\>new(*ARRAYREF \[*, *ARRAYREF\]*), *$OBJ*-\>Dump  *or*  *PACKAGE*-\>Dump(*ARRAYREF \[*, *ARRAYREF\]*), *$OBJ*-\>Seen(*\[HASHREF\]*), *$OBJ*-\>Values(*\[ARRAYREF\]*), *$OBJ*-\>Names(*\[ARRAYREF\]*), *$OBJ*-\>Reset

  - Functions

    Dumper(*LIST*)

  - Configuration Variables or Methods

    - Exports

    Dumper

- EXAMPLES

  - BUGS

  - NOTE

    - AUTHOR

  - VERSION

  - SEE ALSO

  ### Devel::PPPort - Perl/Pollution/Portability

- SYNOPSIS

  - Start using Devel::PPPort for XS projects

  - DESCRIPTION

  - Why use ppport.h?

    - How to use ppport.h

    - Running ppport.h

    - FUNCTIONS

  - WriteFile

    - GetFileContents

    - COMPATIBILITY

  - Provided Perl compatibility API

    - Supported Perl API, sorted by version

    perl 5.35.9, perl 5.35.8, perl 5.35.7, perl 5.35.6, perl 5.35.5, perl 5.35.4, perl 5.35.1, perl 5.33.8, perl 5.33.7, perl 5.33.5, perl 5.33.2, perl 5.32.1, perl 5.31.9, perl 5.31.7, perl 5.31.5, perl 5.31.4, perl 5.31.3, perl 5.29.10, perl 5.29.9, perl 5.27.11, perl 5.27.9, perl 5.27.8, perl 5.27.7, perl 5.27.6, perl 5.27.5, perl 5.27.4, perl 5.27.3, perl 5.27.2, perl 5.27.1, perl 5.25.11, perl 5.25.10, perl 5.25.9, perl 5.25.8, perl 5.25.7, perl 5.25.6, perl 5.25.5, perl 5.25.4, perl 5.25.3, perl 5.25.2, perl 5.25.1, perl 5.24.0, perl 5.23.9, perl 5.23.8, perl 5.23.6, perl 5.23.5, perl 5.23.2, perl 5.23.0, perl 5.21.10, perl 5.21.9, perl 5.21.8, perl 5.21.7, perl 5.21.6, perl 5.21.5, perl 5.21.4, perl 5.21.3, perl 5.21.2, perl 5.21.1, perl 5.19.10, perl 5.19.9, perl 5.19.7, perl 5.19.5, perl 5.19.4, perl 5.19.3, perl 5.19.2, perl 5.19.1, perl 5.18.0, perl 5.17.11, perl 5.17.8, perl 5.17.7, perl 5.17.6, perl 5.17.5, perl 5.17.4, perl 5.17.2, perl 5.17.1, perl 5.16.0, perl 5.15.8, perl 5.15.7, perl 5.15.6, perl 5.15.4, perl 5.15.3, perl 5.15.2, perl 5.15.1, perl 5.13.10, perl 5.13.9, perl 5.13.8, perl 5.13.7, perl 5.13.6, perl 5.13.5, perl 5.13.4, perl 5.13.3, perl 5.13.2, perl 5.13.1, perl 5.13.0, perl 5.11.5, perl 5.11.4, perl 5.11.2, perl 5.11.0, perl 5.10.1, perl 5.10.0, perl 5.9.5, perl 5.9.4, perl 5.9.3, perl 5.9.2, perl 5.9.1, perl 5.9.0, perl 5.8.9, perl 5.8.8, perl 5.8.3, perl 5.8.1, perl 5.8.0, perl 5.7.3, perl 5.7.2, perl 5.7.1, perl 5.7.0, perl 5.6.1, perl 5.6.0, perl 5.005\_03, perl 5.005, perl 5.004\_05, perl 5.004, perl 5.003\_07 (or maybe earlier), Backported version unknown

- BUGS

  - AUTHORS

  - COPYRIGHT

  - SEE ALSO

  ### Devel::Peek - A data debugging tool for the XS programmer

- SYNOPSIS

  - DESCRIPTION

  - Runtime debugging

    - Memory footprint debugging

    - EXAMPLES

  - A simple scalar string

    - A simple scalar number

    - A simple scalar with an extra reference

    - A reference to a simple scalar

    - A reference to an array

    - A reference to a hash

    - Dumping a large array or hash

    - A reference to an SV which holds a C pointer

    - A reference to a subroutine

    - EXPORTS

  - BUGS

  - AUTHOR

  - SEE ALSO

  ### Devel::SelfStubber - generate stubs for a SelfLoading module

- SYNOPSIS

  - DESCRIPTION

  ### Digest - Modules that calculate message digests

- SYNOPSIS

  - DESCRIPTION

  *binary*, *hex*, *base64*

- OO INTERFACE

  `$ctx` = Digest-\>XXX($arg,...), `$ctx` = Digest-\>new(XXX =\> `$arg`,...), `$ctx` = Digest::XXX-\>new($arg,...), `$other_ctx` = `$ctx`-\>clone, `$ctx`-\>reset, `$ctx`-\>add( `$data` ), `$ctx`-\>add( `$chunk1`, `$chunk2`, ... ), `$ctx`-\>addfile( `$io_handle` ), `$ctx`-\>add\_bits( `$data`, `$nbits` ), `$ctx`-\>add\_bits( `$bitstring` ), `$ctx`-\>digest, `$ctx`-\>hexdigest, `$ctx`-\>b64digest, `$ctx`-\>base64\_padded\_digest

- Digest speed

  - SEE ALSO

  - AUTHOR

  ### Digest::MD5 - Perl interface to the MD5 Algorithm

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  md5($data,...), md5\_hex($data,...), md5\_base64($data,...)

- METHODS

  `$md5` = Digest::MD5-\>new, `$md5`-\>reset, `$md5`-\>clone, `$md5`-\>add($data,...), `$md5`-\>addfile($io\_handle), `$md5`-\>add\_bits($data, `$nbits`), `$md5`-\>add\_bits($bitstring), `$md5`-\>digest, `$md5`-\>hexdigest, `$md5`-\>b64digest, `@ctx` = `$md5`-\>context, `$md5`-\>context(@ctx)

- EXAMPLES

  - SEE ALSO

  - COPYRIGHT

  - AUTHORS

  ### Digest::SHA - Perl extension for SHA-1/224/256/384/512

- SYNOPSIS

  - SYNOPSIS (HMAC-SHA)

  - ABSTRACT

  - DESCRIPTION

  - UNICODE AND SIDE EFFECTS

  - NIST STATEMENT ON SHA-1

  - PADDING OF BASE64 DIGESTS

  - EXPORT

  - EXPORTABLE FUNCTIONS

  **sha1($data, ...)**, **sha224($data, ...)**, **sha256($data, ...)**, **sha384($data, ...)**, **sha512($data, ...)**, **sha512224($data, ...)**, **sha512256($data, ...)**, **sha1\_hex($data, ...)**, **sha224\_hex($data,** **...)**, **sha256\_hex($data, ...)**, **sha384\_hex($data, ...)**, **sha512\_hex($data, ...)**, **sha512224\_hex($data, ...)**, **sha512256\_hex($data, ...)**, **sha1\_base64($data, ...)**, **sha224\_base64($data, ...)**, **sha256\_base64($data, ...)**, **sha384\_base64($data, ...)**, **sha512\_base64($data, ...)**, **sha512224\_base64($data, ...)**, **sha512256\_base64($data, ...)**, **new($alg)**, **reset($alg)**, **hashsize**, **algorithm**, **clone**, **add($data, ...)**, **add\_bits($data, $nbits)**, **add\_bits($bits)**, **addfile(\*FILE)**, **addfile($filename \[, $mode\])**, **getstate**, **putstate($str)**, **dump($filename)**, **load($filename)**, **digest**, **hexdigest**, **b64digest**, **hmac\_sha1($data, $key)**, **hmac\_sha224($data,** **$key)**, **hmac\_sha256($data, $key)**, **hmac\_sha384($data, $key)**, **hmac\_sha512($data, $key)**, **hmac\_sha512224($data, $key)**, **hmac\_sha512256($data, $key)**, **hmac\_sha1\_hex($data, $key)**, **hmac\_sha224\_hex($data, $key)**, **hmac\_sha256\_hex($data, $key)**, **hmac\_sha384\_hex($data, $key)**, **hmac\_sha512\_hex($data, $key)**, **hmac\_sha512224\_hex($data, $key)**, **hmac\_sha512256\_hex($data, $key)**, **hmac\_sha1\_base64($data, $key)**, **hmac\_sha224\_base64($data, $key)**, **hmac\_sha256\_base64($data, $key)**, **hmac\_sha384\_base64($data, $key)**, **hmac\_sha512\_base64($data, $key)**, **hmac\_sha512224\_base64($data, $key)**, **hmac\_sha512256\_base64($data, $key)**

- SEE ALSO

  - AUTHOR

  - ACKNOWLEDGMENTS

  - COPYRIGHT AND LICENSE

  ### Digest::base - Digest base class

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  ### Digest::file - Calculate digests of files

- SYNOPSIS

  - DESCRIPTION

  digest\_file( `$file`, `$algorithm`, \[$arg,...\] ), digest\_file\_hex( `$file`, `$algorithm`, \[$arg,...\] ), digest\_file\_base64( `$file`, `$algorithm`, \[$arg,...\] )

- SEE ALSO

  ### DirHandle - (obsolete) supply object methods for directory handles

- SYNOPSIS

  - DESCRIPTION

  ### Dumpvalue - provides screen dump of Perl data.

- SYNOPSIS

  - DESCRIPTION

  - Creation

    `"arrayDepth"`, `"hashDepth"`, `"compactDump"`, `"veryCompact"`, `"globPrint"`, `"dumpDBFiles"`, `"dumpPackages"`, `"dumpReused"`, `"tick"`, `"quoteHighBit"`, `"printUndef"`, `"usageOnly"`, unctrl, subdump, bareStringify, quoteHighBit, stopDbSignal

  - Methods

    dumpValue, dumpValues, stringify, dumpvars, set\_quote, set\_unctrl, compactDump, veryCompact, set, get

### DynaLoader - Dynamically load C libraries into Perl code

- SYNOPSIS

  - DESCRIPTION

  `@dl_library_path`, `@dl_resolve_using`, `@dl_require_symbols`, `@dl_librefs`, `@dl_modules`, `@dl_shared_objects`, **dl\_error()**, `$dl_debug`, `$dl_dlext`, **dl\_findfile()**, **dl\_expandspec()**, **dl\_load\_file()**, **dl\_unload\_file()**, **dl\_load\_flags()**, **dl\_find\_symbol()**, **dl\_find\_symbol\_anywhere()**, **dl\_undef\_symbols()**, **dl\_install\_xsub()**, **bootstrap()**

- AUTHOR

  ### Encode - character encodings in Perl

- SYNOPSIS

  - Table of Contents

    Encode::Alias - Alias definitions to encodings, Encode::Encoding - Encode Implementation Base Class, Encode::Supported - List of Supported Encodings, Encode::CN - Simplified Chinese Encodings, Encode::JP - Japanese Encodings, Encode::KR - Korean Encodings, Encode::TW - Traditional Chinese Encodings

- DESCRIPTION

  - TERMINOLOGY

    - THE PERL ENCODING API

  - Basic methods

    - Listing available encodings

    - Defining Aliases

    - Finding IANA Character Set Registry names

    - Encoding via PerlIO

  - Handling Malformed Data

  - List of *CHECK* values

    perlqq mode (*CHECK* = Encode::FB\_PERLQQ), HTML charref mode (*CHECK* = Encode::FB\_HTMLCREF), XML charref mode (*CHECK* = Encode::FB\_XMLCREF)

  - coderef for CHECK

    - Defining Encodings

  - The UTF8 flag

  Goal #1:, Goal #2:, Goal #3:, Goal #4:

  - Messing with Perl's Internals

    - UTF-8 vs. utf8 vs. UTF8

  - SEE ALSO

  - MAINTAINER

  - COPYRIGHT

  ### Encode::Alias - alias definitions to encodings

- SYNOPSIS

  - DESCRIPTION

  As a simple string, As a qr// compiled regular expression, e.g.:, As a code reference, e.g.:

  - Alias overloading

    - SEE ALSO

  ### Encode::Byte - Single Byte Encodings

- SYNOPSIS

  - ABSTRACT

  - DESCRIPTION

  - SEE ALSO

  ### Encode::CJKConstants -- Internally used by Encode::??::ISO\_2022\_\*

### Encode::CN - China-based Chinese Encodings

- SYNOPSIS

  - DESCRIPTION

  - NOTES

  - BUGS

  - SEE ALSO

  ### Encode::CN::HZ -- internally used by Encode::CN

### Encode::Config -- internally used by Encode

### Encode::EBCDIC - EBCDIC Encodings

- SYNOPSIS

  - ABSTRACT

  - DESCRIPTION

  - SEE ALSO

  ### Encode::Encoder -- Object Oriented Encoder

- SYNOPSIS

  - ABSTRACT

  - Description

  - Predefined Methods

    `$e` = Encode::Encoder-\>new(\[$data, `$encoding`\]);, **encoder()**, `$e`-\>data(\[$data\]), `$e`-\>encoding(\[$encoding\]), `$e`-\>bytes(\[$encoding\])

  - Example: base64 transcoder

    - Operator Overloading

    - SEE ALSO

  ### Encode::Encoding - Encode Implementation Base Class

- SYNOPSIS

  - DESCRIPTION

  - Methods you should implement

    \-\>encode($string \[,$check\]), -\>decode($octets \[,$check\]), -\>cat\_decode($destination, `$octets`, `$offset`, `$terminator` \[,$check\])

  - Other methods defined in Encode::Encodings

    \-\>name, -\>mime\_name, -\>renew, -\>renewed, -\>**perlio\_ok()**, -\>**needs\_lines()**

  - Example: Encode::ROT13

    - Why the heck Encode API is different?

  - Compiled Encodings

    - SEE ALSO

  Scheme 1, Scheme 2, Other Schemes

### Encode::GSM0338 -- ETSI GSM 03.38 Encoding

- SYNOPSIS

  - DESCRIPTION

  - Septets

    - BUGS

  - SEE ALSO

  ### Encode::Guess -- Guesses encoding from data

- SYNOPSIS

  - ABSTRACT

  - DESCRIPTION

  Encode::Guess-\>set\_suspects, Encode::Guess-\>add\_suspects, Encode::decode("Guess" ...), Encode::Guess-\>guess($data), guess\_encoding($data, \[, *list of suspects*\])

- CAVEATS

  - TO DO

  - SEE ALSO

  ### Encode::JP - Japanese Encodings

- SYNOPSIS

  - ABSTRACT

  - DESCRIPTION

  - Note on ISO-2022-JP(-1)?

  - BUGS

  - SEE ALSO

  ### Encode::JP::H2Z -- internally used by Encode::JP::2022\_JP\*

### Encode::JP::JIS7 -- internally used by Encode::JP

### Encode::KR - Korean Encodings

- SYNOPSIS

  - DESCRIPTION

  - BUGS

  - SEE ALSO

  ### Encode::KR::2022\_KR -- internally used by Encode::KR

### Encode::MIME::Header -- MIME encoding for an unstructured email header

- SYNOPSIS

  - ABSTRACT

  - DESCRIPTION

  - BUGS

  - AUTHORS

  - SEE ALSO

  ### Encode::MIME::Name, Encode::MIME::NAME -- internally used by Encode

- SEE ALSO

  ### Encode::PerlIO -- a detailed document on Encode and PerlIO

- Overview

  - How does it work?

  - Line Buffering

  - How can I tell whether my encoding fully supports PerlIO ?

    - SEE ALSO

  ### Encode::Supported -- Encodings supported by Encode

- DESCRIPTION

  - Encoding Names

    - Supported Encodings

  - Built-in Encodings

    - Encode::Unicode -- other Unicode encodings

    - Encode::Byte -- Extended ASCII

    ISO-8859 and corresponding vendor mappings, KOI8 - De Facto Standard for the Cyrillic world

  - gsm0338 - Hentai Latin 1

    gsm0338 support before 2.19

  - CJK: Chinese, Japanese, Korean (Multibyte)

    Encode::CN -- Continental China, Encode::JP -- Japan, Encode::KR -- Korea, Encode::TW -- Taiwan, Encode::HanExtra -- More Chinese via CPAN, Encode::JIS2K -- JIS X 0213 encodings via CPAN

  - Miscellaneous encodings

    Encode::EBCDIC, Encode::Symbol, Encode::MIME::Header, Encode::Guess

- Unsupported encodings

  ```
    ISO-2022-JP-2 [RFC1554], ISO-2022-CN [RFC1922], Various HP-UX encodings,
  Cyrillic encoding ISO-IR-111, ISO-8859-8-1 [Hebrew], ISIRI 3342, Iran
  System, ISIRI 2900 [Farsi], Thai encoding TCVN, Vietnamese encodings VPS,
  Various Mac encodings, (Mac) Indic encodings
  ```

- Encoding vs. Charset -- terminology

  - Encoding Classification (by Anton Tagunov and Dan Kogai)

  - Microsoft-related naming mess

    KS\_C\_5601-1987, GB2312, Big5, Shift\_JIS

- Glossary

  character repertoire, coded character set (CCS), character encoding scheme (CES), charset (in MIME context), EUC, ISO-2022, UCS, UCS-2, Unicode, UTF, UTF-16

- See Also

  - References

  ECMA, ECMA-035 (eq `"ISO-2022"`), IANA, Assigned Charset Names by IANA, ISO, RFC, UC, Unicode Glossary

  - Other Notable Sites

    czyborra.com, CJK.inf, Jungshik Shin's Hangul FAQ, debian.org: "Introduction to i18n"

  - Offline sources

    `"CJKV Information Processing"` by Ken Lunde

### Encode::Symbol - Symbol Encodings

- SYNOPSIS

  - ABSTRACT

  - DESCRIPTION

  - SEE ALSO

  ### Encode::TW - Taiwan-based Chinese Encodings

- SYNOPSIS

  - DESCRIPTION

  - NOTES

  - BUGS

  - SEE ALSO

  ### Encode::Unicode -- Various Unicode Transformation Formats

- SYNOPSIS

  - ABSTRACT

  \<http://www.unicode.org/glossary/\> says:, Quick Reference

- Size, Endianness, and BOM

  - by size

    - by endianness

    BOM as integer when fetched in network byte order

- Surrogate Pairs

  - Error Checking

  - SEE ALSO

  ### Encode::Unicode::UTF7 -- UTF-7 encoding

- SYNOPSIS

  - ABSTRACT

  - In Practice

  - SEE ALSO

  ### English - use nice English (or awk) names for ugly punctuation variables

- SYNOPSIS

  - DESCRIPTION

  - PERFORMANCE

  ### Env - perl module that imports environment variables as scalars or arrays

- SYNOPSIS

  - DESCRIPTION

  - LIMITATIONS

  - AUTHOR

  ### Errno - System errno constants

- SYNOPSIS

  - DESCRIPTION

  - CAVEATS

  - AUTHOR

  - COPYRIGHT

  ### Exporter - Implements default import method for modules

- SYNOPSIS

  - DESCRIPTION

  - How to Export

    - Selecting What to Export

    - How to Import

    `"use YourModule;"`, `"use YourModule ();"`, `"use YourModule qw(...);"`

- Advanced Features

  - Specialised Import Lists

    - Exporting Without Using Exporter's import Method

    - Exporting Without Inheriting from Exporter

    - Module Version Checking

    - Managing Unknown Symbols

    - Tag Handling Utility Functions

    - Generating Combined Tags

    - "AUTOLOAD"ed Constants

    - Good Practices

  - Declaring @EXPORT\_OK and Friends

    - Playing Safe

    - What Not to Export

    - SEE ALSO

  - LICENSE

  ### Exporter::Heavy - Exporter guts

- SYNOPSIS

  - DESCRIPTION

  ### ExtUtils::CBuilder - Compile and link C code for Perl modules

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  new, have\_compiler, have\_cplusplus, compile, `"object_file"`, `"include_dirs"`, `"extra_compiler_flags"`, `"C++"`, link, lib\_file, module\_name, extra\_linker\_flags, link\_executable, exe\_file, object\_file, lib\_file, exe\_file, prelink, need\_prelink, extra\_link\_args\_after\_prelink

- TO DO

  - HISTORY

  - SUPPORT

  - AUTHOR

  - COPYRIGHT

  - SEE ALSO

  ### ExtUtils::CBuilder::Platform::Windows - Builder class for Windows platforms

- DESCRIPTION

  - AUTHOR

  - SEE ALSO

  ### ExtUtils::Command - utilities to replace common UNIX commands in Makefiles etc.

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

    cat

eqtime

rm\_rf

rm\_f

touch

mv

cp

chmod

mkpath

test\_f

test\_d

dos2unix

- SEE ALSO

  - AUTHOR

  ### ExtUtils::Command::MM - Commands for the MM's to use in Makefiles

- SYNOPSIS

  - DESCRIPTION

  **test\_harness**

**pod2man**

**warn\_if\_old\_packlist**

**perllocal\_install**

**uninstall**

**test\_s**

**cp\_nonempty**

### ExtUtils::Constant - generate XS code to import C header constants

- SYNOPSIS

  - DESCRIPTION

  - USAGE

  IV, UV, NV, PV, PVN, SV, YES, NO, UNDEF

- FUNCTIONS

  constant\_types

XS\_constant PACKAGE, TYPES, XS\_SUBNAME, C\_SUBNAME

autoload PACKAGE, VERSION, AUTOLOADER

WriteMakefileSnippet

WriteConstants ATTRIBUTE =\> VALUE \[, ...\], NAME, DEFAULT\_TYPE, BREAKOUT\_AT, NAMES, PROXYSUBS, C\_FH, C\_FILE, XS\_FH, XS\_FILE, XS\_SUBNAME, C\_SUBNAME

- AUTHOR

  ### ExtUtils::Constant::Base - base class for ExtUtils::Constant objects

- SYNOPSIS

  - DESCRIPTION

  - USAGE

  header

memEQ\_clause args\_hashref

dump\_names arg\_hashref, ITEM..

assign arg\_hashref, VALUE..

return\_clause arg\_hashref, ITEM

switch\_clause arg\_hashref, NAMELEN, ITEMHASH, ITEM..

params WHAT

dogfood arg\_hashref, ITEM..

normalise\_items args, default\_type, seen\_types, seen\_items, ITEM..

C\_constant arg\_hashref, ITEM.., name, type, value, macro, default, pre, post, def\_pre, def\_post, utf8, weight

- BUGS

  - AUTHOR

  ### ExtUtils::Constant::Utils - helper functions for ExtUtils::Constant

- SYNOPSIS

  - DESCRIPTION

  - USAGE

  C\_stringify NAME

perl\_stringify NAME

- AUTHOR

  ### ExtUtils::Constant::XS - generate C code for XS modules' constants.

- SYNOPSIS

  - DESCRIPTION

  - BUGS

  - AUTHOR

  ### ExtUtils::Embed - Utilities for embedding Perl in C/C++ applications

- SYNOPSIS

  - DESCRIPTION

  - @EXPORT

  - FUNCTIONS

  **xsinit()**, Examples, **ldopts()**, Examples, **perl\_inc()**, **ccflags()**, **ccdlflags()**, **ccopts()**, **xsi\_header()**, xsi\_protos(@modules), xsi\_body(@modules)

- EXAMPLES

  - SEE ALSO

  - AUTHOR

  ### ExtUtils::Install - install files from here to there

- SYNOPSIS

  - VERSION

  - DESCRIPTION

  - \_chmod($$;$)

    - \_warnonce(@)

    - \_choke(@)

    - \_move\_file\_at\_boot( $file, $target, $moan )

  - \_unlink\_or\_rename( $file, $tryhard, $installing )

  - Functions

  - \_get\_install\_skip

    - \_have\_write\_access

  - \_can\_write\_dir($dir)

  - \_mkpath($dir,$show,$verbose,$dry\_run)

  - \_copy($from,$to,$verbose,$dry\_run)

  - \_chdir($from)

  - install

  - \_do\_cleanup

  - install\_rooted\_file( $file )

  - install\_rooted\_dir( $dir )

  - forceunlink( $file, $tryhard )

  - directory\_not\_empty( $dir )

  - install\_default

  - uninstall

  - inc\_uninstall($filepath,$libdir,$verbose,$dry\_run,$ignore,$results)

  - run\_filter($cmd,$src,$dest)

  - pm\_to\_blib

  - \_autosplit

  - \_invokant

  - ENVIRONMENT

  **PERL\_INSTALL\_ROOT**, **EU\_INSTALL\_IGNORE\_SKIP**, **EU\_INSTALL\_SITE\_SKIPFILE**, **EU\_INSTALL\_ALWAYS\_COPY**

- AUTHOR

  - LICENSE

  ### ExtUtils::Installed - Inventory management of installed modules

- SYNOPSIS

  - DESCRIPTION

  - USAGE

  - METHODS

  **new()**, **modules()**, **files()**, **directories()**, **directory\_tree()**, **validate()**, **packlist()**, **version()**

- EXAMPLE

  - AUTHOR

  ### ExtUtils::Liblist - determine libraries to use and how to use them

- SYNOPSIS

  - DESCRIPTION

  For static extensions, For dynamic extensions at build/link time, For dynamic extensions at load time

  - EXTRALIBS

    - LDLOADLIBS and LD\_RUN\_PATH

    - BSLOADLIBS

    - PORTABILITY

  - VMS implementation

    - Win32 implementation

    - SEE ALSO

  ### ExtUtils::MM - OS adjusted ExtUtils::MakeMaker subclass

- SYNOPSIS

  - DESCRIPTION

  ### ExtUtils::MM\_AIX - AIX specific subclass of ExtUtils::MM\_Unix

- SYNOPSIS

  - DESCRIPTION

  - Overridden methods

    - AUTHOR

  - SEE ALSO

  ### ExtUtils::MM\_Any - Platform-agnostic MM methods

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Cross-platform helper methods

    - Targets

  - Init methods

  - Tools

  - File::Spec wrappers

  - Misc

  - AUTHOR

  ### ExtUtils::MM\_BeOS - methods to override UN\*X behaviour in ExtUtils::MakeMaker

- SYNOPSIS

  - DESCRIPTION

  os\_flavor

init\_linker

### ExtUtils::MM\_Cygwin - methods to override UN\*X behaviour in ExtUtils::MakeMaker

- SYNOPSIS

  - DESCRIPTION

  os\_flavor

cflags

replace\_manpage\_separator

init\_linker

maybe\_command

dynamic\_lib

install

### ExtUtils::MM\_DOS - DOS specific subclass of ExtUtils::MM\_Unix

- SYNOPSIS

  - DESCRIPTION

  - Overridden methods

    os\_flavor

**replace\_manpage\_separator**

xs\_static\_lib\_is\_xs

- AUTHOR

  - SEE ALSO

  ### ExtUtils::MM\_Darwin - special behaviors for OS X

- SYNOPSIS

  - DESCRIPTION

  - Overridden Methods

    ### ExtUtils::MM\_MacOS - once produced Makefiles for MacOS Classic

- SYNOPSIS

  - DESCRIPTION

  ### ExtUtils::MM\_NW5 - methods to override UN\*X behaviour in ExtUtils::MakeMaker

- SYNOPSIS

  - DESCRIPTION

  os\_flavor

init\_platform, platform\_constants

static\_lib\_pure\_cmd

xs\_static\_lib\_is\_xs

dynamic\_lib

### ExtUtils::MM\_OS2 - methods to override UN\*X behaviour in ExtUtils::MakeMaker

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  init\_dist

init\_linker

os\_flavor

xs\_static\_lib\_is\_xs

### ExtUtils::MM\_OS390 - OS390 specific subclass of ExtUtils::MM\_Unix

- SYNOPSIS

  - DESCRIPTION

  - Overriden methods

    xs\_make\_dynamic\_lib

- AUTHOR

  - SEE ALSO

  ### ExtUtils::MM\_QNX - QNX specific subclass of ExtUtils::MM\_Unix

- SYNOPSIS

  - DESCRIPTION

  - Overridden methods

    - AUTHOR

  - SEE ALSO

  ### ExtUtils::MM\_UWIN - U/WIN specific subclass of ExtUtils::MM\_Unix

- SYNOPSIS

  - DESCRIPTION

  - Overridden methods

    os\_flavor

**replace\_manpage\_separator**

- AUTHOR

  - SEE ALSO

  ### ExtUtils::MM\_Unix - methods used by ExtUtils::MakeMaker

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Methods

  os\_flavor

c\_o (o)

xs\_obj\_opt

dbgoutflag

cflags (o)

const\_cccmd (o)

const\_config (o)

const\_loadlibs (o)

constants (o)

depend (o)

init\_DEST

init\_dist

dist (o)

dist\_basics (o)

dist\_ci (o)

dist\_core (o)

**dist\_target**

**tardist\_target**

**zipdist\_target**

**tarfile\_target**

zipfile\_target

uutardist\_target

shdist\_target

dlsyms (o)

dynamic\_bs (o)

dynamic\_lib (o)

xs\_dynamic\_lib\_macros

xs\_make\_dynamic\_lib

exescan

extliblist

find\_perl

fixin

force (o)

guess\_name

has\_link\_code

init\_dirscan

init\_MANPODS

init\_MAN1PODS

init\_MAN3PODS

init\_PM

init\_DIRFILESEP

init\_main

init\_tools

init\_linker

init\_lib2arch

init\_PERL

init\_platform, platform\_constants

init\_PERM

init\_xs

install (o)

installbin (o)

linkext (o)

lsdir

macro (o)

makeaperl (o)

xs\_static\_lib\_is\_xs (o)

makefile (o)

maybe\_command

needs\_linking (o)

parse\_abstract

parse\_version

pasthru (o)

perl\_script

perldepend (o)

pm\_to\_blib

ppd

prefixify

processPL (o)

specify\_shell

quote\_paren

replace\_manpage\_separator

cd

oneliner

quote\_literal

escape\_newlines

max\_exec\_len

static (o)

xs\_make\_static\_lib

static\_lib\_closures

static\_lib\_fixtures

static\_lib\_pure\_cmd

staticmake (o)

subdir\_x (o)

subdirs (o)

test (o)

test\_via\_harness (override)

test\_via\_script (override)

tool\_xsubpp (o)

all\_target

top\_targets (o)

writedoc

xs\_c (o)

xs\_cpp (o)

xs\_o (o)

- SEE ALSO

  ### ExtUtils::MM\_VMS - methods to override UN\*X behaviour in ExtUtils::MakeMaker

- SYNOPSIS

  - DESCRIPTION

  - Methods always loaded

    wraplist

- Methods

  guess\_name (override)

find\_perl (override)

\_fixin\_replace\_shebang (override)

maybe\_command (override)

pasthru (override)

pm\_to\_blib (override)

perl\_script (override)

replace\_manpage\_separator

init\_DEST

init\_DIRFILESEP

init\_main (override)

init\_tools (override)

init\_platform (override)

platform\_constants

init\_VERSION (override)

constants (override)

special\_targets

cflags (override)

const\_cccmd (override)

tools\_other (override)

init\_dist (override)

c\_o (override)

xs\_c (override)

xs\_o (override)

\_xsbuild\_replace\_macro (override)

\_xsbuild\_value (override)

dlsyms (override)

xs\_obj\_opt

dynamic\_lib (override)

xs\_make\_static\_lib (override)

static\_lib\_pure\_cmd (override)

xs\_static\_lib\_is\_xs

extra\_clean\_files

zipfile\_target, tarfile\_target, shdist\_target

install (override)

perldepend (override)

makeaperl (override)

maketext\_filter (override)

prefixify (override)

cd

oneliner

**echo**

quote\_literal

escape\_dollarsigns

escape\_all\_dollarsigns

escape\_newlines

max\_exec\_len

init\_linker

catdir (override), catfile (override)

eliminate\_macros

fixpath

os\_flavor

is\_make\_type (override)

make\_type (override)

- AUTHOR

  ### ExtUtils::MM\_VOS - VOS specific subclass of ExtUtils::MM\_Unix

- SYNOPSIS

  - DESCRIPTION

  - Overridden methods

    - AUTHOR

  - SEE ALSO

  ### ExtUtils::MM\_Win32 - methods to override UN\*X behaviour in ExtUtils::MakeMaker

- SYNOPSIS

  - DESCRIPTION

  - Overridden methods

  **dlsyms**

xs\_dlsyms\_ext

replace\_manpage\_separator

**maybe\_command**

**init\_DIRFILESEP**

init\_tools

init\_others

init\_platform, platform\_constants

specify\_shell

constants

special\_targets

static\_lib\_pure\_cmd

dynamic\_lib

extra\_clean\_files

init\_linker

perl\_script

quote\_dep

xs\_obj\_opt

pasthru

arch\_check (override)

oneliner

cd

max\_exec\_len

os\_flavor

dbgoutflag

cflags

make\_type

### ExtUtils::MM\_Win95 - method to customize MakeMaker for Win9X

- SYNOPSIS

  - DESCRIPTION

  - Overridden methods

    max\_exec\_len

os\_flavor

- AUTHOR

  ### ExtUtils::MY - ExtUtils::MakeMaker subclass for customization

- SYNOPSIS

  - DESCRIPTION

  ### ExtUtils::MakeMaker - Create a module Makefile

- SYNOPSIS

  - DESCRIPTION

  - How To Write A Makefile.PL

    - Default Makefile Behaviour

    - make test

    - make testdb

    - make install

    - INSTALL\_BASE

    - PREFIX and LIB attribute

    - AFS users

    - Static Linking of a new Perl Binary

    - Determination of Perl Library and Installation Locations

    - Which architecture dependent directory?

    - Using Attributes and Parameters

    ABSTRACT, ABSTRACT\_FROM, AUTHOR, BINARY\_LOCATION, BUILD\_REQUIRES, C, CCFLAGS, CONFIG, CONFIGURE, CONFIGURE\_REQUIRES, DEFINE, DESTDIR, DIR, DISTNAME, DISTVNAME, DLEXT, DL\_FUNCS, DL\_VARS, EXCLUDE\_EXT, EXE\_FILES, FIRST\_MAKEFILE, FULLPERL, FULLPERLRUN, FULLPERLRUNINST, FUNCLIST, H, IMPORTS, INC, INCLUDE\_EXT, INSTALLARCHLIB, INSTALLBIN, INSTALLDIRS, INSTALLMAN1DIR, INSTALLMAN3DIR, INSTALLPRIVLIB, INSTALLSCRIPT, INSTALLSITEARCH, INSTALLSITEBIN, INSTALLSITELIB, INSTALLSITEMAN1DIR, INSTALLSITEMAN3DIR, INSTALLSITESCRIPT, INSTALLVENDORARCH, INSTALLVENDORBIN, INSTALLVENDORLIB, INSTALLVENDORMAN1DIR, INSTALLVENDORMAN3DIR, INSTALLVENDORSCRIPT, INST\_ARCHLIB, INST\_BIN, INST\_LIB, INST\_MAN1DIR, INST\_MAN3DIR, INST\_SCRIPT, LD, LDDLFLAGS, LDFROM, LIB, LIBPERL\_A, LIBS, LICENSE, LINKTYPE, MAGICXS, MAKE, MAKEAPERL, MAKEFILE\_OLD, MAN1PODS, MAN3PODS, MAP\_TARGET, META\_ADD, META\_MERGE, MIN\_PERL\_VERSION, MYEXTLIB, NAME, NEEDS\_LINKING, NOECHO, NORECURS, NO\_META, NO\_MYMETA, NO\_PACKLIST, NO\_PERLLOCAL, NO\_VC, OBJECT, OPTIMIZE, PERL, PERL\_CORE, PERLMAINCC, PERL\_ARCHLIB, PERL\_LIB, PERL\_MALLOC\_OK, PERLPREFIX, PERLRUN, PERLRUNINST, PERL\_SRC, PERM\_DIR, PERM\_RW, PERM\_RWX, PL\_FILES, PM, PMLIBDIRS, PM\_FILTER, POLLUTE, PPM\_INSTALL\_EXEC, PPM\_INSTALL\_SCRIPT, PPM\_UNINSTALL\_EXEC, PPM\_UNINSTALL\_SCRIPT, PREFIX, PREREQ\_FATAL, PREREQ\_PM, PREREQ\_PRINT, PRINT\_PREREQ, SITEPREFIX, SIGN, SKIP, TEST\_REQUIRES, TYPEMAPS, VENDORPREFIX, VERBINST, VERSION, VERSION\_FROM, VERSION\_SYM, XS, XSBUILD, XSMULTI, XSOPT, XSPROTOARG, XS\_VERSION

  - Additional lowercase attributes

    clean, depend, dist, dynamic\_lib, linkext, macro, postamble, realclean, test, tool\_autosplit

  - Overriding MakeMaker Methods

    - The End Of Cargo Cult Programming

    `"MAN3PODS => ' '"`

  - Hintsfile support

    - Distribution Support

    ```
       make distcheck,    make skipcheck,    make distclean,    make veryclean,
       make manifest,    make distdir,   make disttest,    make tardist,
    make dist,    make uutardist,    make shdist,    make zipdist,    make ci
    ```

  - Module Meta-Data (META and MYMETA)

    - Disabling an extension

    - Other Handy Functions

    prompt, os\_unsupported

  - Supported versions of Perl

    - ENVIRONMENT

  PERL\_MM\_OPT, PERL\_MM\_USE\_DEFAULT, PERL\_CORE

- SEE ALSO

  - AUTHORS

  - LICENSE

  ### ExtUtils::MakeMaker::Config - Wrapper around Config.pm

- SYNOPSIS

  - DESCRIPTION

  ### ExtUtils::MakeMaker::FAQ - Frequently Asked Questions About MakeMaker

- DESCRIPTION

  - Module Installation

    How do I install a module into my home directory?, How do I get MakeMaker and Module::Build to install to the same place?, How do I keep from installing man pages?, How do I use a module without installing it?, How can I organize tests into subdirectories and have them run?, PREFIX vs INSTALL\_BASE from Module::Build::Cookbook, Generating \*.pm files with substitutions eg of `$VERSION`

  - Common errors and problems

    "No rule to make target \`/usr/lib/perl5/CORE/config.h', needed by \`Makefile'"

  - Philosophy and History

    Why not just use \<insert other build config tool here\>?, What is Module::Build and how does it relate to MakeMaker?, pure perl.	no make, no shell commands, easier to customize, cleaner internals, less cruft

  - Module Writing

    How do I keep my `$VERSION` up to date without resetting it manually?, What's this *META.yml* thing and how did it get in my *MANIFEST*?!, How do I delete everything not in my *MANIFEST*?, Which tar should I use on Windows?, Which zip should I use on Windows for '\[ndg\]make zipdist'?

  - XS

    How do I prevent "object version X.XX does not match bootstrap parameter Y.YY" errors?, How do I make two or more XS files coexist in the same directory?, XSMULTI, Separate directories, Bootstrapping

- DESIGN

  - MakeMaker object hierarchy (simplified)

    - MakeMaker object hierarchy (real)

    - The MM\_\* hierarchy

    - PATCHING

  make a pull request on the MakeMaker github repository, raise a issue on the MakeMaker github repository, file an RT ticket, email makemaker@perl.org

- AUTHOR

  - SEE ALSO

  ### ExtUtils::MakeMaker::Locale - bundled Encode::Locale

- SYNOPSIS

  - DESCRIPTION

  decode\_argv( ), decode\_argv( Encode::FB\_CROAK ), env( `$uni_key` ), env( `$uni_key` =\> `$uni_value` ), reinit( ), reinit( `$encoding` ), `$ENCODING_LOCALE`, `$ENCODING_LOCALE_FS`, `$ENCODING_CONSOLE_IN`, `$ENCODING_CONSOLE_OUT`

- NOTES

  - Windows

    - Mac OS X

    - POSIX (Linux and other Unixes)

    - SEE ALSO

  - AUTHOR

  ### ExtUtils::MakeMaker::Tutorial - Writing a module with MakeMaker

- SYNOPSIS

  - DESCRIPTION

  - The Mantra

    - The Layout

    Makefile.PL, MANIFEST, lib/, t/, Changes, README, INSTALL, MANIFEST.SKIP, bin/

- SEE ALSO

  ### ExtUtils::Manifest - Utilities to write and check a MANIFEST file

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  - mkmanifest

    - manifind

  - manicheck

  - filecheck

  - fullcheck

  - skipcheck

  - maniread

  - maniskip

  - manicopy

  - maniadd

  - MANIFEST

  - MANIFEST.SKIP

  \#!include\_default, #!include /Path/to/another/manifest.skip

- EXPORT\_OK

  - GLOBAL VARIABLES

  - DIAGNOSTICS

  `"Not in MANIFEST:"` *file*, `"Skipping"` *file*, `"No such file:"` *file*, `"MANIFEST:"` *$!*, `"Added to MANIFEST:"` *file*

- ENVIRONMENT

  **PERL\_MM\_MANIFEST\_DEBUG**

- SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### ExtUtils::Miniperl - write the C code for miniperlmain.c and perlmain.c

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  ### ExtUtils::Mkbootstrap - make a bootstrap file for use by DynaLoader

- SYNOPSIS

  - DESCRIPTION

  ### ExtUtils::Mksymlists - write linker options files for dynamic extension

- SYNOPSIS

  - DESCRIPTION

  DLBASE, DL\_FUNCS, DL\_VARS, FILE, FUNCLIST, IMPORTS, NAME

- AUTHOR

  - REVISION

  ### ExtUtils::PL2Bat - Batch file creation to run perl scripts on Windows

- VERSION

  - OVERVIEW

  - FUNCTIONS

  - pl2bat(%opts)

    `"in"`, `"out"`, `"ntargs"`, `"otherargs"`, `"stripsuffix"`, `"usewarnings"`, `"update"`

- ACKNOWLEDGEMENTS

  - AUTHOR

  - COPYRIGHT AND LICENSE

  **mkfh()**

\_\_find\_relocations

### ExtUtils::Packlist - manage .packlist files

- SYNOPSIS

  - DESCRIPTION

  - USAGE

  - FUNCTIONS

  **new()**, **read()**, **write()**, **validate()**, **packlist\_file()**

- EXAMPLE

  - AUTHOR

  ### ExtUtils::ParseXS - converts Perl XS code into C code

- SYNOPSIS

  - DESCRIPTION

  - EXPORT

  - METHODS

  `$pxs`-\>**new()**, `$pxs`-\>**process\_file()**, **C++**, **hiertype**, **except**, **typemap**, **prototypes**, **versioncheck**, **linenumbers**, **optimize**, **inout**, **argtypes**, **s**, **die\_on\_error**, `$pxs`-\>**report\_error\_count()**

- AUTHOR

  - COPYRIGHT

  - SEE ALSO

  ### ExtUtils::ParseXS::Constants - Initialization values for some globals

- SYNOPSIS

  - DESCRIPTION

  ### ExtUtils::ParseXS::Eval - Clean package to evaluate code in

- SYNOPSIS

  - SUBROUTINES

  - $pxs-\>eval\_output\_typemap\_code($typemapcode, $other\_hashref)

    - $pxs-\>eval\_input\_typemap\_code($typemapcode, $other\_hashref)

  - TODO

  ### ExtUtils::ParseXS::Utilities - Subroutines used with ExtUtils::ParseXS

- SYNOPSIS

  - SUBROUTINES

  - standard\_typemap\_locations()

    Purpose, Arguments, Return Value

- trim\_whitespace()

  Purpose, Argument, Return Value

- C\_string()

  Purpose, Arguments, Return Value

- valid\_proto\_string()

  Purpose, Arguments, Return Value

- process\_typemaps()

  Purpose, Arguments, Return Value

- map\_type()

  Purpose, Arguments, Return Value

- standard\_XS\_defs()

  Purpose, Arguments, Return Value

- assign\_func\_args()

  Purpose, Arguments, Return Value

- analyze\_preprocessor\_statements()

  Purpose, Arguments, Return Value

- set\_cond()

  Purpose, Arguments, Return Value

- current\_line\_number()

  Purpose, Arguments, Return Value

- Warn()

  Purpose, Arguments, Return Value

- WarnHint()

  Purpose, Arguments, Return Value

- \_MsgHint()

  Purpose, Arguments, Return Value

- blurt()

  Purpose, Arguments, Return Value

- death()

  Purpose, Arguments, Return Value

- check\_conditional\_preprocessor\_statements()

  Purpose, Arguments, Return Value

- escape\_file\_for\_line\_directive()

  Purpose, Arguments, Return Value

- "report\_typemap\_failure"

  Purpose, Arguments, Return Value

### ExtUtils::Typemaps - Read/Write/Modify Perl/XS typemap files

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

  - file

  - add\_typemap

  - add\_inputmap

  - add\_outputmap

  - add\_string

  - remove\_typemap

  - remove\_inputmap

  - remove\_outputmap

  - get\_typemap

  - get\_inputmap

  - get\_outputmap

  - write

  - as\_string

  - as\_embedded\_typemap

  - merge

  - is\_empty

  - list\_mapped\_ctypes

  - \_get\_typemap\_hash

  - \_get\_inputmap\_hash

  - \_get\_outputmap\_hash

  - \_get\_prototype\_hash

  - clone

  - tidy\_type

  - CAVEATS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT & LICENSE

  ### ExtUtils::Typemaps::Cmd - Quick commands for handling typemaps

- SYNOPSIS

  - DESCRIPTION

  - EXPORTED FUNCTIONS

  - embeddable\_typemap

    - SEE ALSO

  - AUTHOR

  - COPYRIGHT & LICENSE

  ### ExtUtils::Typemaps::InputMap - Entry in the INPUT section of a typemap

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

  - code

  - xstype

  - cleaned\_code

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT & LICENSE

  ### ExtUtils::Typemaps::OutputMap - Entry in the OUTPUT section of a typemap

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

  - code

  - xstype

  - cleaned\_code

  - targetable

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT & LICENSE

  ### ExtUtils::Typemaps::Type - Entry in the TYPEMAP section of a typemap

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

  - proto

  - xstype

  - ctype

  - tidy\_ctype

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT & LICENSE

  ### ExtUtils::testlib - add blib/\* directories to @INC

- SYNOPSIS

  - DESCRIPTION

  ### Fatal - Replace functions with equivalents which succeed or die

- SYNOPSIS

  - BEST PRACTICE

  - DESCRIPTION

  - DIAGNOSTICS

  Bad subroutine name for Fatal: `%s`, `%s` is not a Perl subroutine, `%s` is neither a builtin, nor a Perl subroutine, Cannot make the non-overridable `%s` fatal, Internal error: `%s`

- BUGS

  - AUTHOR

  - LICENSE

  - SEE ALSO

  ### Fcntl - various flag constants and helper functions from C's fcntl.h

- SYNOPSIS

  - DESCRIPTION

  - EXPORTED SYMBOLS

  - Default exports and export tags

    `":DEFAULT"`, `":flock"`, `":mode"`, `":seek"`, `":Fcompat"`

  - Symbols for use with "fcntl"

    `"F_ALLOCSP"`, `"F_ALLOCSP64"`, `"F_DUP2FD"`, `"F_DUPFD"`, `"F_FREESP"`, `"F_FREESP64"`, `"F_FSYNC"`, `"F_FSYNC64"`, `"F_GETFD"`, `"FD_CLOEXEC"`, `"F_GETFL"`, `"F_GETLEASE"`, `"F_RDLCK"`, `"F_WRLCK"`, `"F_UNLCK"`, `"F_GETLK"`, `"F_GETLK64"`, `"F_GETOWN"`, `"F_GETPIPE_SZ"`, `"F_GETSIG"`, `"F_NOTIFY"`, `"DN_ACCESS"`, `"DN_ATTRIB"`, `"DN_CREATE"`, `"DN_DELETE"`, `"DN_MODIFY"`, `"DN_MULTISHOT"`, `"DN_RENAME"`, `"F_SETFD"`, `"F_SETFL"`, `"F_SETLEASE"`, `"F_RDLCK"`, `"F_WRLCK"`, `"F_UNLCK"`, `"F_SETLK"`, `"F_SETLK64"`, `"F_SETLKW"`, `"F_SETLKW64"`, `"F_SETOWN"`, `"F_SETPIPE_SZ"`, `"F_SETSIG"`, `"F_SHARE"`, `"F_UNSHARE"`, `"F_COMPAT"`, `"F_EXLCK"`, `"F_NODNY"`, `"F_POSIX"`, `"F_RDACC"`, `"F_RDDNY"`, `"F_RWACC"`, `"F_RWDNY"`, `"F_SHLCK"`, `"F_WRACC"`, `"F_WRDNY"`

  - Symbols for use with "flock"

    `"LOCK_EX"`, `"LOCK_MAND"`, `"LOCK_NB"`, `"LOCK_READ"`, `"LOCK_RW"`, `"LOCK_SH"`, `"LOCK_UN"`, `"LOCK_WRITE"`

  - Symbols for use with "sysopen"

    `"O_ACCMODE"`, `"O_ALIAS"`, `"O_ALT_IO"`, `"O_APPEND"`, `"O_ASYNC"`, `"O_BINARY"`, `"O_CREAT"`, `"O_DEFER"`, `"O_DIRECT"`, `"O_DIRECTORY"`, `"O_DSYNC"`, `"O_EVTONLY"`, `"O_EXCL"`, `"O_EXLOCK"`, `"O_IGNORE_CTTY"`, `"O_LARGEFILE"`, `"O_NDELAY"`, `"O_NOATIME"`, `"O_NOCTTY"`, `"O_NOFOLLOW"`, `"O_NOINHERIT"`, `"O_NOLINK"`, `"O_NONBLOCK"`, `"O_NOSIGPIPE"`, `"O_NOTRANS"`, `"O_RANDOM"`, `"O_RAW"`, `"O_RDONLY"`, `"O_RDWR"`, `"O_RSRC"`, `"O_RSYNC"`, `"O_SEQUENTIAL"`, `"O_SHLOCK"`, `"O_SYMLINK"`, `"O_SYNC"`, `"O_TEMPORARY"`, `"O_TEXT"`, `"O_TMPFILE"`, `"O_TRUNC"`, `"O_TTY_INIT"`, `"O_WRONLY"`, `"FAPPEND"`, `"FASYNC"`, `"FCREAT"`, `"FDEFER"`, `"FDSYNC"`, `"FEXCL"`, `"FLARGEFILE"`, `"FNDELAY"`, `"FNONBLOCK"`, `"FRSYNC"`, `"FSYNC"`, `"FTRUNC"`

  - Symbols for use with "seek" and "sysseek"

    `"SEEK_CUR"`, `"SEEK_END"`, `"SEEK_SET"`

  - Symbols for use with "stat" and "chmod"

    `"S_ENFMT"`, `"S_IEXEC"`, `"S_IFBLK"`, `"S_IFCHR"`, `"S_IFDIR"`, `"S_IFIFO"`, `"S_IFLNK"`, `"S_IFMT"`, `"_S_IFMT"`, `"S_IFREG"`, `"S_IFSOCK"`, `"S_IFWHT"`, `"S_IMODE"`, `"S_IREAD"`, `"S_IRGRP"`, `"S_IROTH"`, `"S_IRUSR"`, `"S_IRWXG"`, `"S_IRWXO"`, `"S_IRWXU"`, `"S_ISBLK"`, `"S_ISCHR"`, `"S_ISDIR"`, `"S_ISENFMT"`, `"S_ISFIFO"`, `"S_ISGID"`, `"S_ISLNK"`, `"S_ISREG"`, `"S_ISSOCK"`, `"S_ISTXT"`, `"S_ISUID"`, `"S_ISVTX"`, `"S_ISWHT"`, `"S_IWGRP"`, `"S_IWOTH"`, `"S_IWRITE"`, `"S_IWUSR"`, `"S_IXGRP"`, `"S_IXOTH"`, `"S_IXUSR"`

- SEE ALSO

  - APPENDIX A

  ### File::Basename - Parse file paths into directory, filename and suffix.

- SYNOPSIS

  - DESCRIPTION

  `"fileparse"`

`"basename"`

`"dirname"`

`"fileparse_set_fstype"`

- SEE ALSO

  ### File::Compare - Compare files or filehandles

- SYNOPSIS

  - DESCRIPTION

  - RETURN

  - AUTHOR

  ### File::Copy - Copy files or filehandles

- SYNOPSIS

  - DESCRIPTION

  copy  , move   , syscopy , rmscopy($from,$to\[,$date\_flag\])

- RETURN

  - NOTES

  - AUTHOR

  ### File::DosGlob - DOS like globbing and then some

- SYNOPSIS

  - DESCRIPTION

  - EXPORTS (by request only)

  - BUGS

  - AUTHOR

  - HISTORY

  - SEE ALSO

  ### File::Fetch - A generic file fetching mechanism

- SYNOPSIS

  - DESCRIPTION

  - ACCESSORS

  `$ff`-\>uri, `$ff`-\>scheme, `$ff`-\>host, `$ff`-\>vol, `$ff`-\>share, `$ff`-\>path, `$ff`-\>file, `$ff`-\>file\_default

`$ff`-\>output\_file

- METHODS

  - $ff = File::Fetch-\>new( uri =\> 'http://some.where.com/dir/file.txt' );

    - $where = $ff-\>fetch( \[to =\> /my/output/dir/ \| \\$scalar\] )

  - $ff-\>error(\[BOOL\])

  - HOW IT WORKS

  - GLOBAL VARIABLES

  - $File::Fetch::FROM\_EMAIL

    - $File::Fetch::USER\_AGENT

    - $File::Fetch::FTP\_PASSIVE

    - $File::Fetch::TIMEOUT

    - $File::Fetch::WARN

    - $File::Fetch::DEBUG

    - $File::Fetch::BLACKLIST

    - $File::Fetch::METHOD\_FAIL

    - MAPPING

  - FREQUENTLY ASKED QUESTIONS

  - So how do I use a proxy with File::Fetch?

    - I used 'lynx' to fetch a file, but its contents is all wrong!

    - Files I'm trying to fetch have reserved characters or non-ASCII characters in them. What do I do?

    - TODO

  Implement `$PREFER_BIN`

- BUG REPORTS

  - AUTHOR

  - COPYRIGHT

  ### File::Find - Traverse a directory tree.

- SYNOPSIS

  - DESCRIPTION

  **find**, **finddepth**

  - %options

    `"wanted"`, `"bydepth"`, `"preprocess"`, `"postprocess"`, `"follow"`, `"follow_fast"`, `"follow_skip"`, `"dangling_symlinks"`, `"no_chdir"`, `"untaint"`, `"untaint_pattern"`, `"untaint_skip"`

  - The wanted function

    `$File::Find::dir` is the current directory name,, `$_` is the current filename within that directory, `$File::Find::name` is the complete pathname to the file

- WARNINGS

  - BUGS AND CAVEATS

  `$dont_use_nlink`, Symlinks

- HISTORY

  - SEE ALSO

  ### File::Glob - Perl extension for BSD glob routine

- SYNOPSIS

  - DESCRIPTION

  - META CHARACTERS

    - EXPORTS

    - POSIX FLAGS

    `"GLOB_ERR"`, `"GLOB_LIMIT"`, `"GLOB_MARK"`, `"GLOB_NOCASE"`, `"GLOB_NOCHECK"`, `"GLOB_NOSORT"`, `"GLOB_BRACE"`, `"GLOB_NOMAGIC"`, `"GLOB_QUOTE"`, `"GLOB_TILDE"`, `"GLOB_CSH"`, `"GLOB_ALPHASORT"`

- DIAGNOSTICS

  `"GLOB_NOSPACE"`, `"GLOB_ABEND"`

- NOTES

  - SEE ALSO

  - AUTHOR

  ### File::GlobMapper - Extend File Glob to Allow Input and Output Files

- SYNOPSIS

  - DESCRIPTION

  - Behind The Scenes

    - Limitations

    - Input File Glob

    **~**, **~user**, **.**, **\***, **?**, **\\**,  **\[\]**,  **{,}**,  **()**

  - Output File Glob

    "\*", #1

  - Returned Data

    - EXAMPLES

  - A Rename script

    - A few example globmaps

    - SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### File::Path - Create or remove directory trees

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  make\_path( `$dir1`, `$dir2`, .... ), make\_path( `$dir1`, `$dir2`, ...., \\%opts ), mode =\> `$num`, chmod =\> `$num`, verbose =\> `$bool`, error =\> \\$err, owner =\> `$owner`, user =\> `$owner`, uid =\> `$owner`, group =\> `$group`, mkpath( `$dir` ), mkpath( `$dir`, `$verbose`, `$mode` ), mkpath( \[$dir1, `$dir2`,...\], `$verbose`, `$mode` ), mkpath( `$dir1`, `$dir2`,..., \\%opt ), remove\_tree( `$dir1`, `$dir2`, .... ), remove\_tree( `$dir1`, `$dir2`, ...., \\%opts ), verbose =\> `$bool`, safe =\> `$bool`, keep\_root =\> `$bool`, result =\> \\$res, error =\> \\$err, rmtree( `$dir` ), rmtree( `$dir`, `$verbose`, `$safe` ), rmtree( \[$dir1, `$dir2`,...\], `$verbose`, `$safe` ), rmtree( `$dir1`, `$dir2`,..., \\%opt )

  - ERROR HANDLING

    **NOTE:**

  - NOTES

    \<http://cve.circl.lu/cve/CVE-2004-0452\>, \<http://cve.circl.lu/cve/CVE-2005-0448\>

- DIAGNOSTICS

  mkdir \[path\]: \[errmsg\] (SEVERE), No root path(s) specified, No such file or directory, cannot fetch initial working directory: \[errmsg\], cannot stat initial working directory: \[errmsg\], cannot chdir to \[dir\]: \[errmsg\], directory \[dir\] changed before chdir, expected dev=\[n\] ino=\[n\], actual dev=\[n\] ino=\[n\], aborting. (FATAL), cannot make directory \[dir\] read+writeable: \[errmsg\], cannot read \[dir\]: \[errmsg\], cannot reset chmod \[dir\]: \[errmsg\], cannot remove \[dir\] when cwd is \[dir\], cannot chdir to \[parent-dir\] from \[child-dir\]: \[errmsg\], aborting. (FATAL), cannot stat prior working directory \[dir\]: \[errmsg\], aborting. (FATAL), previous directory \[parent-dir\] changed before entering \[child-dir\], expected dev=\[n\] ino=\[n\], actual dev=\[n\] ino=\[n\], aborting. (FATAL), cannot make directory \[dir\] writeable: \[errmsg\], cannot remove directory \[dir\]: \[errmsg\], cannot restore permissions of \[dir\] to \[0nnn\]: \[errmsg\], cannot make file \[file\] writeable: \[errmsg\], cannot unlink file \[file\]: \[errmsg\], cannot restore permissions of \[file\] to \[0nnn\]: \[errmsg\], unable to map \[owner\] to a uid, ownership not changed");, unable to map \[group\] to a gid, group ownership not changed

- SEE ALSO

  - BUGS AND LIMITATIONS

  - MULTITHREADED APPLICATIONS

    - NFS Mount Points

    - REPORTING BUGS

    - ACKNOWLEDGEMENTS

  - AUTHORS

  - CONTRIBUTORS

  \<*bulkdd@cpan.org*\>, Charlie Gonzalez \<*itcharlie@cpan.org*\>, Craig A. Berry \<*craigberry@mac.com*\>, James E Keenan \<*jkeenan@cpan.org*\>, John Lightsey \<*john@perlsec.org*\>, Nigel Horne \<*njh@bandsman.co.uk*\>, Richard Elberger \<*riche@cpan.org*\>, Ryan Yee \<*ryee@cpan.org*\>, Skye Shaw \<*shaw@cpan.org*\>, Tom Lutz \<*tommylutz@gmail.com*\>, Will Sheppard \<*willsheppard@github*\>

- COPYRIGHT

  - LICENSE

  ### File::Spec - portably perform operations on file names

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  canonpath , catdir , catfile , curdir , devnull , rootdir , tmpdir , updir , no\_upwards, case\_tolerant, file\_name\_is\_absolute, path , join , splitpath  , splitdir\
    , **catpath()**, abs2rel   , **rel2abs()**

- SEE ALSO

  - AUTHOR

  - COPYRIGHT

  ### File::Spec::AmigaOS - File::Spec for AmigaOS

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  tmpdir

file\_name\_is\_absolute

### File::Spec::Cygwin - methods for Cygwin file specs

- SYNOPSIS

  - DESCRIPTION

  canonpath

file\_name\_is\_absolute

tmpdir (override)

case\_tolerant

- COPYRIGHT

  ### File::Spec::Epoc - methods for Epoc file specs

- SYNOPSIS

  - DESCRIPTION

  **canonpath()**

- AUTHOR

  - COPYRIGHT

  - SEE ALSO

  ### File::Spec::Functions - portably perform operations on file names

- SYNOPSIS

  - DESCRIPTION

  - Exports

    - COPYRIGHT

  - SEE ALSO

  ### File::Spec::Mac - File::Spec for Mac OS (Classic)

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  canonpath

**catdir()**

catfile

curdir

devnull

rootdir

tmpdir

updir

file\_name\_is\_absolute

path

splitpath

splitdir

catpath

abs2rel

rel2abs

- AUTHORS

  - COPYRIGHT

  - SEE ALSO

  ### File::Spec::OS2 - methods for OS/2 file specs

- SYNOPSIS

  - DESCRIPTION

  tmpdir, splitpath

- COPYRIGHT

  ### File::Spec::Unix - File::Spec for Unix, base for other File::Spec modules

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  **canonpath()**

**catdir()**

catfile

curdir

devnull

rootdir

tmpdir

updir

no\_upwards

case\_tolerant

file\_name\_is\_absolute

path

join

splitpath

splitdir

**catpath()**

abs2rel

**rel2abs()**

- COPYRIGHT

  - SEE ALSO

  ### File::Spec::VMS - methods for VMS file specs

- SYNOPSIS

  - DESCRIPTION

  canonpath (override)

catdir (override)

catfile (override)

curdir (override)

devnull (override)

rootdir (override)

tmpdir (override)

updir (override)

case\_tolerant (override)

path (override)

file\_name\_is\_absolute (override)

splitpath (override)

splitdir (override)

catpath (override)

abs2rel (override)

rel2abs (override)

- COPYRIGHT

  - SEE ALSO

  ### File::Spec::Win32 - methods for Win32 file specs

- SYNOPSIS

  - DESCRIPTION

  devnull

tmpdir

case\_tolerant

file\_name\_is\_absolute

catfile

canonpath

splitpath

splitdir

catpath

- Note For File::Spec::Win32 Maintainers

  - COPYRIGHT

  - SEE ALSO

  ### File::Temp - return name and handle of a temporary file safely

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - PORTABILITY

  - OBJECT-ORIENTED INTERFACE

  **new**, **newdir**, **filename**, **dirname**, **unlink\_on\_destroy**, **DESTROY**

- FUNCTIONS

  **tempfile**, **tempdir**

- MKTEMP FUNCTIONS

  **mkstemp**, **mkstemps**, **mkdtemp**, **mktemp**

- POSIX FUNCTIONS

  **tmpnam**, **tmpfile**

- ADDITIONAL FUNCTIONS

  **tempnam**

- UTILITY FUNCTIONS

  **unlink0**, **cmpstat**, **unlink1**, **cleanup**

- PACKAGE VARIABLES

  **safe\_level**, STANDARD, MEDIUM, HIGH, TopSystemUID, **$KEEP\_ALL**, **$DEBUG**

- WARNING

  - Temporary files and NFS

    - Forking

    - Directory removal

    - Taint mode

    - BINMODE

    - HISTORY

  - SEE ALSO

  - SUPPORT

  - AUTHOR

  - CONTRIBUTORS

  - COPYRIGHT AND LICENSE

  ### File::stat - by-name interface to Perl's built-in stat() functions

- SYNOPSIS

  - DESCRIPTION

  - BUGS

  - ERRORS

  \-%s is not implemented on a File::stat object

- WARNINGS

  File::stat ignores use filetest 'access', File::stat ignores VMS ACLs

- NOTE

  - AUTHOR

  ### FileCache - keep more files open than the system permits

- SYNOPSIS

  - DESCRIPTION

  cacheout EXPR, cacheout MODE, EXPR

- CAVEATS

  - BUGS

  ### FileHandle - supply object methods for filehandles

- SYNOPSIS

  - DESCRIPTION

  `$fh`-\>print, `$fh`-\>printf, `$fh`-\>getline, `$fh`-\>getlines

- SEE ALSO

  ### Filter::Simple - Simplified source filtering

- SYNOPSIS

  - DESCRIPTION

  - The Problem

    - A Solution

    - Disabling or changing \<no\> behaviour

    - All-in-one interface

    - Filtering only specific components of source code

    `"code"`, `"code_no_comments"`, `"executable"`, `"executable_no_comments"`, `"quotelike"`, `"string"`, `"regex"`, `"all"`

  - Filtering only the code parts of source code

    - Using Filter::Simple with an explicit "import" subroutine

    - Using Filter::Simple and Exporter together

    - How it works

    - AUTHOR

  - CONTACT

  - COPYRIGHT AND LICENSE

  ### Filter::Util::Call - Perl Source Filter Utility Module

- SYNOPSIS

  - DESCRIPTION

  - **use Filter::Util::Call**

    - **import()**

    - **filter\_add()**

    - **filter() and anonymous sub**

    **$\_**, **$status**, **filter\_read** and **filter\_read\_exact**, **filter\_del**, *real\_import*, ***unimport()***

- LIMITATIONS

  \_\_DATA\_\_ is ignored, Max. codesize limited to 32-bit

- EXAMPLES

  - Example 1: A simple filter.

    - Example 2: Using the context

    - Example 3: Using the context within the filter

    - Example 4: Using filter\_del

    - Filter::Simple

  - AUTHOR

  - DATE

  - LICENSE

  ### FindBin - Locate directory of original Perl script

- SYNOPSIS

  - DESCRIPTION

  - EXPORTABLE VARIABLES

  `$Bin` or `$Dir`, `$Script`, `$RealBin` or `$RealDir`, `$RealScript`

- KNOWN ISSUES

  - AUTHORS

  - COPYRIGHT

  ### GDBM\_File - Perl5 access to the gdbm library.

- SYNOPSIS

  - DESCRIPTION

  - Tie

    **GDBM\_READER**, **GDBM\_WRITER**, **GDBM\_WRCREAT**, **GDBM\_NEWDB**

- STATIC METHODS

  - GDBM\_version

    1  - exact guess, 2  - approximate, 3  - rough guess

- ERROR HANDLING

  - $GDBM\_File::gdbm\_errno

    - gdbm\_check\_syserr

    - DATABASE METHODS

  - close

    - errno

    - syserrno

    - strerror

    - clear\_error

    - needs\_recovery

    - reorganize

    - sync

    - count

    - flags

    - dbname

    - cache\_size

    - block\_size

    - sync\_mode

    - centfree

    - coalesce

    - mmap

    - mmapsize

    - recover

    err =\> sub { ... }, backup =\> \\$str, max\_failed\_keys =\> `$n`, max\_failed\_buckets =\> `$n`, max\_failures =\> `$n`, stat =\> \\%hash, recovered\_keys, recovered\_buckets, failed\_keys, failed\_buckets

  - convert

    - dump

    **binary** =\> 1, **mode** =\> *MODE*, **overwrite** =\> 1

  - load

    **replace** =\> 1, **restore\_mode** =\> 0 \| 1, **restore\_owner** =\> 0 \| 1, **strict\_errors** =\> 1

- CRASH TOLERANCE

  - crash\_tolerance\_status

    - failure\_atomic

    - latest\_snapshot

    GDBM\_SNAPSHOT\_BAD, GDBM\_SNAPSHOT\_ERR, GDBM\_SNAPSHOT\_SAME, GDBM\_SNAPSHOT\_SUSPICIOUS

- AVAILABILITY

  - SECURITY AND PORTABILITY

  - SEE ALSO

  ### Getopt::Long - Extended processing of command line options

- SYNOPSIS

  - DESCRIPTION

  - Command Line Options, an Introduction

  - Getting Started with Getopt::Long

  - Simple options

    - A little bit less simple options

    - Mixing command line option with other arguments

    - Options with values

    - Options with multiple values

    - Options with hash values

    - User-defined subroutines to handle options

    - Options with multiple names

    - Case and abbreviations

    - Summary of Option Specifications

    !, +, s, i, o, f, : *type* \[ *desttype* \], : *number* \[ *desttype* \], : + \[ *desttype* \]

- Advanced Possibilities

  - Object oriented interface

    - Callback object

    name, given

  - Thread Safety

    - Documentation and help texts

    - Parsing options from an arbitrary array

    - Parsing options from an arbitrary string

    - Storing options values in a hash

    - Bundling

    - The lonesome dash

    - Argument callback

    - Configuring Getopt::Long

  default, posix\_default, auto\_abbrev, getopt\_compat, gnu\_compat, gnu\_getopt, require\_order, permute, bundling (default: disabled), bundling\_override (default: disabled), ignore\_case  (default: enabled), ignore\_case\_always (default: disabled), auto\_version (default:disabled), auto\_help (default:disabled), pass\_through (default: disabled), prefix, prefix\_pattern, long\_prefix\_pattern, debug (default: disabled)

- Exportable Methods

  VersionMessage, `"-message"`, `"-msg"`, `"-exitval"`, `"-output"`, HelpMessage

- Return values and Errors

  - Legacy

  - Default destinations

    - Alternative option starters

    - Configuration variables

    - Tips and Techniques

  - Pushing multiple values in a hash option

    - Troubleshooting

  - GetOptions does not return a false result when an option is not supplied

    - GetOptions does not split the command line correctly

    - Undefined subroutine &main::GetOptions called

    - How do I put a "-?" option into a Getopt::Long?

    - AUTHOR

  - COPYRIGHT AND DISCLAIMER

  ### Getopt::Long::Parser - Getopt::Long object oriented interface

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  config

- METHODS

  - configure

    - getoptionsfromarray

  - getoptions

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT AND DISCLAIMER

  ### Getopt::Std - Process single-character switches with switch clustering

- SYNOPSIS

  - DESCRIPTION

  - "--help" and "--version"

  ### HTTP::Tiny - A small, simple, correct HTTP/1.1 client

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - new

    - get\|head\|put\|post\|patch\|delete

    - post\_form

    - mirror

    - request

    - www\_form\_urlencode

    - can\_ssl

    - connected

    - TLS/SSL SUPPORT

  - PROXY SUPPORT

  - LIMITATIONS

  - SEE ALSO

  - SUPPORT

  - Bugs / Feature Requests

    - Source Code

    - AUTHORS

  - CONTRIBUTORS

  - COPYRIGHT AND LICENSE

  ### Hash::Util - A selection of general-utility hash subroutines

- SYNOPSIS

  - DESCRIPTION

  - Restricted hashes

    **lock\_keys**, **unlock\_keys**

**lock\_keys\_plus**

**lock\_value**, **unlock\_value**

**lock\_hash**, **unlock\_hash**

**lock\_hash\_recurse**, **unlock\_hash\_recurse**

**hashref\_locked**, **hash\_locked**

**hashref\_unlocked**, **hash\_unlocked**

**legal\_keys**, **hidden\_keys**, **all\_keys**, **hash\_seed**, **hash\_value**, **bucket\_info**, **bucket\_stats**, **bucket\_array**

**bucket\_stats\_formatted**

**hv\_store**, **hash\_traversal\_mask**, **bucket\_ratio**, **used\_buckets**, **num\_buckets**

- Operating on references to hashes

  lock\_ref\_keys, unlock\_ref\_keys, lock\_ref\_keys\_plus, lock\_ref\_value, unlock\_ref\_value, lock\_hashref, unlock\_hashref, lock\_hashref\_recurse, unlock\_hashref\_recurse, hash\_ref\_unlocked, legal\_ref\_keys, hidden\_ref\_keys

- CAVEATS

  - BUGS

  - AUTHOR

  - SEE ALSO

  ### Hash::Util::FieldHash - Support for Inside-Out Classes

- SYNOPSIS

  - FUNCTIONS

  id, id\_2obj, register, idhash, idhashes, fieldhash, fieldhashes

- DESCRIPTION

  - The Inside-out Technique

    - Problems of Inside-out

    - Solutions

    - More Problems

    - The Generic Object

    - How to use Field Hashes

    - Garbage-Collected Hashes

    - EXAMPLES

  `init()`, `first()`, `last()`, `name()`, `"Name_hash"`, `"Name_id"`, `"Name_idhash"`, `"Name_id_reg"`, `"Name_idhash_reg"`, `"Name_fieldhash"`

  - Example 1

    - Example 2

    - GUTS

  - The "PERL\_MAGIC\_uvar" interface for hashes

    - Weakrefs call uvar magic

    - How field hashes work

    - Internal function Hash::Util::FieldHash::\_fieldhash

    - AUTHOR

  - COPYRIGHT AND LICENSE

  ### I18N::Collate - compare 8-bit scalar data according to the current locale

- SYNOPSIS

  - DESCRIPTION

  ### I18N::LangTags - functions for dealing with RFC3066-style language tags

- SYNOPSIS

  - DESCRIPTION

  the function is\_language\_tag($lang1)

the function extract\_language\_tags($whatever)

the function same\_language\_tag($lang1, `$lang2`)

the function similarity\_language\_tag($lang1, `$lang2`)

the function is\_dialect\_of($lang1, `$lang2`)

the function super\_languages($lang1)

the function locale2language\_tag($locale\_identifier)

the function encode\_language\_tag($lang1)

the function alternate\_language\_tags($lang1)

the function `@langs` = panic\_languages(@accept\_languages)

the function implicate\_supers( ...languages... ), the function implicate\_supers\_strictly( ...languages... )

- ABOUT LOWERCASING

  - ABOUT UNICODE PLAINTEXT LANGUAGE TAGS

  - SEE ALSO

  - COPYRIGHT

  - AUTHOR

  ### I18N::LangTags::Detect - detect the user's language preferences

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  - ENVIRONMENT

  - SEE ALSO

  - COPYRIGHT

  - AUTHOR

  ### I18N::LangTags::List -- tags and names for human languages

- SYNOPSIS

  - DESCRIPTION

  - ABOUT LANGUAGE TAGS

  - LIST OF LANGUAGES

  {ab} : Abkhazian, {ace} : Achinese, {ach} : Acoli, {ada} : Adangme, {ady} : Adyghe, {aa} : Afar, {afh} : Afrihili, {af} : Afrikaans, \[{afa} : Afro-Asiatic (Other)\], {ak} : Akan, {akk} : Akkadian, {sq} : Albanian, {ale} : Aleut, \[{alg} : Algonquian languages\], \[{tut} : Altaic (Other)\], {am} : Amharic, {i-ami} : Ami, \[{apa} : Apache languages\], {ar} : Arabic, {arc} : Aramaic, {arp} : Arapaho, {arn} : Araucanian, {arw} : Arawak, {hy} : Armenian, {an} : Aragonese, \[{art} : Artificial (Other)\], {ast} : Asturian, {as} : Assamese, \[{ath} : Athapascan languages\], \[{aus} : Australian languages\], \[{map} : Austronesian (Other)\], {av} : Avaric, {ae} : Avestan, {awa} : Awadhi, {ay} : Aymara, {az} : Azerbaijani, {ban} : Balinese, \[{bat} : Baltic (Other)\], {bal} : Baluchi, {bm} : Bambara, \[{bai} : Bamileke languages\], {bad} : Banda, \[{bnt} : Bantu (Other)\], {bas} : Basa, {ba} : Bashkir, {eu} : Basque, {btk} : Batak (Indonesia), {bej} : Beja, {be} : Belarusian, {bem} : Bemba, {bn} : Bengali, \[{ber} : Berber (Other)\], {bho} : Bhojpuri, {bh} : Bihari, {bik} : Bikol, {bin} : Bini, {bi} : Bislama, {bs} : Bosnian, {bra} : Braj, {br} : Breton, {bug} : Buginese, {bg} : Bulgarian, {i-bnn} : Bunun, {bua} : Buriat, {my} : Burmese, {cad} : Caddo, {car} : Carib, {ca} : Catalan, \[{cau} : Caucasian (Other)\], {ceb} : Cebuano, \[{cel} : Celtic (Other)\], \[{cai} : Central American Indian (Other)\], {chg} : Chagatai, \[{cmc} : Chamic languages\], {ch} : Chamorro, {ce} : Chechen, {chr} : Cherokee, {chy} : Cheyenne, {chb} : Chibcha, {ny} : Chichewa, {zh} : Chinese, {chn} : Chinook Jargon, {chp} : Chipewyan, {cho} : Choctaw, {cu} : Church Slavic, {chk} : Chuukese, {cv} : Chuvash, {cop} : Coptic, {kw} : Cornish, {co} : Corsican, {cr} : Cree, {mus} : Creek, \[{cpe} : English-based Creoles and pidgins (Other)\], \[{cpf} : French-based Creoles and pidgins (Other)\], \[{cpp} : Portuguese-based Creoles and pidgins (Other)\], \[{crp} : Creoles and pidgins (Other)\], {hr} : Croatian, \[{cus} : Cushitic (Other)\], {cs} : Czech, {dak} : Dakota, {da} : Danish, {dar} : Dargwa, {day} : Dayak, {i-default} : Default (Fallthru) Language, {del} : Delaware, {din} : Dinka, {dv} : Divehi, {doi} : Dogri, {dgr} : Dogrib, \[{dra} : Dravidian (Other)\], {dua} : Duala, {nl} : Dutch, {dum} : Middle Dutch (ca.1050-1350), {dyu} : Dyula, {dz} : Dzongkha, {efi} : Efik, {egy} : Ancient Egyptian, {eka} : Ekajuk, {elx} : Elamite, {en} : English, {enm} : Old English (1100-1500), {ang} : Old English (ca.450-1100), {i-enochian} : Enochian (Artificial), {myv} : Erzya, {eo} : Esperanto, {et} : Estonian, {ee} : Ewe, {ewo} : Ewondo, {fan} : Fang, {fat} : Fanti, {fo} : Faroese, {fj} : Fijian, {fi} : Finnish, \[{fiu} : Finno-Ugrian (Other)\], {fon} : Fon, {fr} : French, {frm} : Middle French (ca.1400-1600), {fro} : Old French (842-ca.1400), {fy} : Frisian, {fur} : Friulian, {ff} : Fulah, {gaa} : Ga, {gd} : Scots Gaelic, {gl} : Gallegan, {lg} : Ganda, {gay} : Gayo, {gba} : Gbaya, {gez} : Geez, {ka} : Georgian, {de} : German, {gmh} : Middle High German (ca.1050-1500), {goh} : Old High German (ca.750-1050), \[{gem} : Germanic (Other)\], {gil} : Gilbertese, {gon} : Gondi, {gor} : Gorontalo, {got} : Gothic, {grb} : Grebo, {grc} : Ancient Greek, {el} : Modern Greek, {gn} : Guarani, {gu} : Gujarati, {gwi} : Gwich'in, {hai} : Haida, {ht} : Haitian, {ha} : Hausa, {haw} : Hawaiian, {he} : Hebrew, {hz} : Herero, {hil} : Hiligaynon, {him} : Himachali, {hi} : Hindi, {ho} : Hiri Motu, {hit} : Hittite, {hmn} : Hmong, {hu} : Hungarian, {hup} : Hupa, {iba} : Iban, {is} : Icelandic, {io} : Ido, {ig} : Igbo, {ijo} : Ijo, {ilo} : Iloko, \[{inc} : Indic (Other)\], \[{ine} : Indo-European (Other)\], {id} : Indonesian, {inh} : Ingush, {ia} : Interlingua (International Auxiliary Language Association), {ie} : Interlingue, {iu} : Inuktitut, {ik} : Inupiaq, \[{ira} : Iranian (Other)\], {ga} : Irish, {mga} : Middle Irish (900-1200), {sga} : Old Irish (to 900), \[{iro} : Iroquoian languages\], {it} : Italian, {ja} : Japanese, {jv} : Javanese, {jrb} : Judeo-Arabic, {jpr} : Judeo-Persian, {kbd} : Kabardian, {kab} : Kabyle, {kac} : Kachin, {kl} : Kalaallisut, {xal} : Kalmyk, {kam} : Kamba, {kn} : Kannada, {kr} : Kanuri, {krc} : Karachay-Balkar, {kaa} : Kara-Kalpak, {kar} : Karen, {ks} : Kashmiri, {csb} : Kashubian, {kaw} : Kawi, {kk} : Kazakh, {kha} : Khasi, {km} : Khmer, \[{khi} : Khoisan (Other)\], {kho} : Khotanese, {ki} : Kikuyu, {kmb} : Kimbundu, {rw} : Kinyarwanda, {ky} : Kirghiz, {i-klingon} : Klingon, {kv} : Komi, {kg} : Kongo, {kok} : Konkani, {ko} : Korean, {kos} : Kosraean, {kpe} : Kpelle, {kro} : Kru, {kj} : Kuanyama, {kum} : Kumyk, {ku} : Kurdish, {kru} : Kurukh, {kut} : Kutenai, {lad} : Ladino, {lah} : Lahnda, {lam} : Lamba, {lo} : Lao, {la} : Latin, {lv} : Latvian, {lb} : Letzeburgesch, {lez} : Lezghian, {li} : Limburgish, {ln} : Lingala, {lt} : Lithuanian, {nds} : Low German, {art-lojban} : Lojban (Artificial), {loz} : Lozi, {lu} : Luba-Katanga, {lua} : Luba-Lulua, {lui} : Luiseno, {lun} : Lunda, {luo} : Luo (Kenya and Tanzania), {lus} : Lushai, {mk} : Macedonian, {mad} : Madurese, {mag} : Magahi, {mai} : Maithili, {mak} : Makasar, {mg} : Malagasy, {ms} : Malay, {ml} : Malayalam, {mt} : Maltese, {mnc} : Manchu, {mdr} : Mandar, {man} : Mandingo, {mni} : Manipuri, \[{mno} : Manobo languages\], {gv} : Manx, {mi} : Maori, {mr} : Marathi, {chm} : Mari, {mh} : Marshall, {mwr} : Marwari, {mas} : Masai, \[{myn} : Mayan languages\], {men} : Mende, {mic} : Micmac, {min} : Minangkabau, {i-mingo} : Mingo, \[{mis} : Miscellaneous languages\], {moh} : Mohawk, {mdf} : Moksha, {mo} : Moldavian, \[{mkh} : Mon-Khmer (Other)\], {lol} : Mongo, {mn} : Mongolian, {mos} : Mossi, \[{mul} : Multiple languages\], \[{mun} : Munda languages\], {nah} : Nahuatl, {nap} : Neapolitan, {na} : Nauru, {nv} : Navajo, {nd} : North Ndebele, {nr} : South Ndebele, {ng} : Ndonga, {ne} : Nepali, {new} : Newari, {nia} : Nias, \[{nic} : Niger-Kordofanian (Other)\], \[{ssa} : Nilo-Saharan (Other)\], {niu} : Niuean, {nog} : Nogai, {non} : Old Norse, \[{nai} : North American Indian\], {no} : Norwegian, {nb} : Norwegian Bokmal, {nn} : Norwegian Nynorsk, \[{nub} : Nubian languages\], {nym} : Nyamwezi, {nyn} : Nyankole, {nyo} : Nyoro, {nzi} : Nzima, {oc} : Occitan (post 1500), {oj} : Ojibwa, {or} : Oriya, {om} : Oromo, {osa} : Osage, {os} : Ossetian; Ossetic, \[{oto} : Otomian languages\], {pal} : Pahlavi, {i-pwn} : Paiwan, {pau} : Palauan, {pi} : Pali, {pam} : Pampanga, {pag} : Pangasinan, {pa} : Panjabi, {pap} : Papiamento, \[{paa} : Papuan (Other)\], {fa} : Persian, {peo} : Old Persian (ca.600-400 B.C.), \[{phi} : Philippine (Other)\], {phn} : Phoenician, {pon} : Pohnpeian, {pl} : Polish, {pt} : Portuguese, \[{pra} : Prakrit languages\], {pro} : Old Provencal (to 1500), {ps} : Pushto, {qu} : Quechua, {rm} : Raeto-Romance, {raj} : Rajasthani, {rap} : Rapanui, {rar} : Rarotongan, \[{qaa - qtz} : Reserved for local use.\], \[{roa} : Romance (Other)\], {ro} : Romanian, {rom} : Romany, {rn} : Rundi, {ru} : Russian, \[{sal} : Salishan languages\], {sam} : Samaritan Aramaic, {se} : Northern Sami, {sma} : Southern Sami, {smn} : Inari Sami, {smj} : Lule Sami, {sms} : Skolt Sami, \[{smi} : Sami languages (Other)\], {sm} : Samoan, {sad} : Sandawe, {sg} : Sango, {sa} : Sanskrit, {sat} : Santali, {sc} : Sardinian, {sas} : Sasak, {sco} : Scots, {sel} : Selkup, \[{sem} : Semitic (Other)\], {sr} : Serbian, {srr} : Serer, {shn} : Shan, {sn} : Shona, {sid} : Sidamo, {sgn-...} : Sign Languages, {bla} : Siksika, {sd} : Sindhi, {si} : Sinhalese, \[{sit} : Sino-Tibetan (Other)\], \[{sio} : Siouan languages\], {den} : Slave (Athapascan), \[{sla} : Slavic (Other)\], {sk} : Slovak, {sl} : Slovenian, {sog} : Sogdian, {so} : Somali, {son} : Songhai, {snk} : Soninke, {wen} : Sorbian languages, {nso} : Northern Sotho, {st} : Southern Sotho, \[{sai} : South American Indian (Other)\], {es} : Spanish, {suk} : Sukuma, {sux} : Sumerian, {su} : Sundanese, {sus} : Susu, {sw} : Swahili, {ss} : Swati, {sv} : Swedish, {syr} : Syriac, {tl} : Tagalog, {ty} : Tahitian, \[{tai} : Tai (Other)\], {tg} : Tajik, {tmh} : Tamashek, {ta} : Tamil, {i-tao} : Tao, {tt} : Tatar, {i-tay} : Tayal, {te} : Telugu, {ter} : Tereno, {tet} : Tetum, {th} : Thai, {bo} : Tibetan, {tig} : Tigre, {ti} : Tigrinya, {tem} : Timne, {tiv} : Tiv, {tli} : Tlingit, {tpi} : Tok Pisin, {tkl} : Tokelau, {tog} : Tonga (Nyasa), {to} : Tonga (Tonga Islands), {tsi} : Tsimshian, {ts} : Tsonga, {i-tsu} : Tsou, {tn} : Tswana, {tum} : Tumbuka, \[{tup} : Tupi languages\], {tr} : Turkish, {ota} : Ottoman Turkish (1500-1928), {crh} : Crimean Turkish, {tk} : Turkmen, {tvl} : Tuvalu, {tyv} : Tuvinian, {tw} : Twi, {udm} : Udmurt, {uga} : Ugaritic, {ug} : Uighur, {uk} : Ukrainian, {umb} : Umbundu, {und} : Undetermined, {ur} : Urdu, {uz} : Uzbek, {vai} : Vai, {ve} : Venda, {vi} : Vietnamese, {vo} : Volapuk, {vot} : Votic, \[{wak} : Wakashan languages\], {wa} : Walloon, {wal} : Walamo, {war} : Waray, {was} : Washo, {cy} : Welsh, {wo} : Wolof, {x-...} : Unregistered (Semi-Private Use), {xh} : Xhosa, {sah} : Yakut, {yao} : Yao, {yap} : Yapese, {ii} : Sichuan Yi, {yi} : Yiddish, {yo} : Yoruba, \[{ypk} : Yupik languages\], {znd} : Zande, \[{zap} : Zapotec\], {zen} : Zenaga, {za} : Zhuang, {zu} : Zulu, {zun} : Zuni

- SEE ALSO

  - COPYRIGHT AND DISCLAIMER

  - AUTHOR

  ### I18N::Langinfo - query locale information

- SYNOPSIS

  - DESCRIPTION

  `"-"`, `"+"`, `"."`, `"_NL_ADDRESS_POSTAL_FMT"`, `"_NL_ADDRESS_COUNTRY_NAME"`, `"_NL_ADDRESS_COUNTRY_POST"`, `"_NL_ADDRESS_COUNTRY_AB2"`, `"_NL_ADDRESS_COUNTRY_AB3"`, `"_NL_ADDRESS_COUNTRY_CAR"`, `"_NL_ADDRESS_COUNTRY_NUM"`, `"_NL_ADDRESS_COUNTRY_ISBN"`, `"_NL_ADDRESS_LANG_NAME"`, `"_NL_ADDRESS_LANG_AB"`, `"_NL_ADDRESS_LANG_TERM"`, `"_NL_ADDRESS_LANG_LIB"`, `"_NL_IDENTIFICATION_TITLE"`, `"_NL_IDENTIFICATION_SOURCE"`, `"_NL_IDENTIFICATION_ADDRESS"`, `"_NL_IDENTIFICATION_CONTACT"`, `"_NL_IDENTIFICATION_EMAIL"`, `"_NL_IDENTIFICATION_TEL"`, `"_NL_IDENTIFICATION_FAX"`, `"_NL_IDENTIFICATION_LANGUAGE"`, `"_NL_IDENTIFICATION_TERRITORY"`, `"_NL_IDENTIFICATION_AUDIENCE"`, `"_NL_IDENTIFICATION_APPLICATION"`, `"_NL_IDENTIFICATION_ABBREVIATION"`, `"_NL_IDENTIFICATION_REVISION"`, `"_NL_IDENTIFICATION_DATE"`, `"_NL_IDENTIFICATION_CATEGORY"`, `"_NL_MEASUREMENT_MEASUREMENT"`, `"_NL_NAME_NAME_FMT"`, `"_NL_NAME_NAME_GEN"`, `"_NL_NAME_NAME_MR"`, `"_NL_NAME_NAME_MRS"`, `"_NL_NAME_NAME_MISS"`, `"_NL_NAME_NAME_MS"`, `"_NL_PAPER_HEIGHT"`, `"_NL_PAPER_WIDTH"`, `"_NL_TELEPHONE_TEL_INT_FMT"`, `"_NL_TELEPHONE_TEL_DOM_FMT"`, `"_NL_TELEPHONE_INT_SELECT"`, `"_NL_TELEPHONE_INT_PREFIX"`

  - For systems without "nl\_langinfo"

    `"ERA"`, `"CODESET"`, `"YESEXPR"`, `"YESSTR"`, `"NOEXPR"`, `"NOSTR"`, `"ALT_DIGITS"`, `"D_FMT"`, `"T_FMT"`, `"D_T_FMT"`, `"CRNCYSTR"`, `"ERA_D_FMT"`, `"ERA_T_FMT"`, `"ERA_D_T_FMT"`, `"T_FMT_AMPM"`, All `"_NL_`*foo*`"` items

  - EXPORT

    - BUGS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### IO - load various IO modules

- SYNOPSIS

  - DESCRIPTION

  - DEPRECATED

  ### IO::Compress::Base - Base Class for IO::Compress modules

- SYNOPSIS

  - DESCRIPTION

  - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Compress::Bzip2 - Write bzip2 files/buffers

- SYNOPSIS

  - DESCRIPTION

  - Functional Interface

  - bzip2 $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeIn => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle

  - Oneshot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"BlockSize100K => number"`, `"WorkFactor => number"`, `"Strict => 0|1"`

  - Examples

    - Methods

  - print

    - printf

    - syswrite

    - write

    - flush

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - newStream(\[OPTS\])

    - Importing

  :all

- EXAMPLES

  - Apache::GZip Revisited

    - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Compress::Deflate - Write RFC 1950 files/buffers

- SYNOPSIS

  - DESCRIPTION

  - Functional Interface

  - deflate $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeIn => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle

  - Oneshot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"Merge => 0|1"`, -Level, -Strategy, `"Strict => 0|1"`

  - Examples

    - Methods

  - print

    - printf

    - syswrite

    - write

    - flush

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - newStream(\[OPTS\])

    - deflateParams

    - Importing

  :all, :constants, :flush, :level, :strategy

- EXAMPLES

  - Apache::GZip Revisited

    - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Compress::FAQ -- Frequently Asked Questions about IO::Compress

- DESCRIPTION

  - GENERAL

  - Compatibility with Unix compress/uncompress.

    - Accessing .tar.Z files

    - How do I recompress using a different compression?

    - ZIP

  - What Compression Types do IO::Compress::Zip & IO::Uncompress::Unzip support?

    Store (method 0), Deflate (method 8), Bzip2 (method 12), Lzma (method 14)

  - Can I Read/Write Zip files larger the 4 Gig?

    - Can I write more that 64K entries is a Zip files?

    - Zip Resources

    - GZIP

  - Gzip Resources

    - Dealing with concatenated gzip files

    - Reading bgzip files with IO::Uncompress::Gunzip

    - ZLIB

  - Zlib Resources

    - Bzip2

  - Bzip2 Resources

    - Dealing with Concatenated bzip2 files

    - Interoperating with Pbzip2

    - HTTP & NETWORK

  - Apache::GZip Revisited

    - Compressed files and Net::FTP

    - MISC

  - Using "InputLength" to uncompress data embedded in a larger file/buffer.

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Compress::Gzip - Write RFC 1952 files/buffers

- SYNOPSIS

  - DESCRIPTION

  - Functional Interface

  - gzip $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeIn => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle

  - Oneshot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"Merge => 0|1"`, -Level, -Strategy, `"Minimal => 0|1"`, `"Comment => $comment"`, `"Name => $string"`, `"Time => $number"`, `"TextFlag => 0|1"`, `"HeaderCRC => 0|1"`, `"OS_Code => $value"`, `"ExtraField => $data"`, `"ExtraFlags => $value"`, `"Strict => 0|1"`

  - Examples

    - Methods

  - print

    - printf

    - syswrite

    - write

    - flush

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - newStream(\[OPTS\])

    - deflateParams

    - Importing

  :all, :constants, :flush, :level, :strategy

- EXAMPLES

  - Apache::GZip Revisited

    - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Compress::RawDeflate - Write RFC 1951 files/buffers

- SYNOPSIS

  - DESCRIPTION

  - Functional Interface

  - rawdeflate $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeIn => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle

  - Oneshot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"Merge => 0|1"`, -Level, -Strategy, `"Strict => 0|1"`

  - Examples

    - Methods

  - print

    - printf

    - syswrite

    - write

    - flush

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - newStream(\[OPTS\])

    - deflateParams

    - Importing

  :all, :constants, :flush, :level, :strategy

- EXAMPLES

  - Apache::GZip Revisited

    - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Compress::Zip - Write zip files/buffers

- SYNOPSIS

  - DESCRIPTION

  Store (0), Deflate (8), Bzip2 (12), Lzma (14), Zstandard (93), Xz (95)

- Functional Interface

  - zip $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, the full filename contained in `$input_filename_or_reference`, the file protection attributes, the UID/GID for the file, the file timestamps, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeIn => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle

  - Oneshot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"Name => $string"`, If the `$input` parameter is not a filename, the *archive member name* will be an empty string, `"CanonicalName => 0|1"`, `"FilterName => sub { ... }"`, `"Efs => 0|1"`, `"Minimal => 1|0"`, `"Stream => 0|1"`, `"Zip64 => 0|1"`, -Level, -Strategy, `"BlockSize100K => number"`, `"WorkFactor => number"`, `"Preset => number"`, `"Extreme => 0|1"`, `"Time => $number"`, `"ExtAttr => $attr"`, `"exTime => [$atime, $mtime, $ctime]"`, `"exUnix2 => [$uid, $gid]"`, `"exUnixN => [$uid, $gid]"`, `Comment =>` `$comment`, `"ZipComment => $comment"`, `"Method => $method"`, `"TextFlag => 0|1"`, `"ExtraFieldLocal => $data"`, `"ExtraFieldCentral` `=> $data"`, `"Strict => 0|1"`

  - Examples

    - Methods

  - print

    - printf

    - syswrite

    - write

    - flush

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - newStream(\[OPTS\])

    - deflateParams

    - Importing

  :all, :constants, :flush, :level, :strategy, :zip\_method

- EXAMPLES

  - Apache::GZip Revisited

    - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Dir - supply object methods for directory handles

- SYNOPSIS

  - DESCRIPTION

  new ( \[ DIRNAME \] ), open ( DIRNAME ), read (), seek ( POS ), tell (), rewind (), close (), tie `%hash`, 'IO::Dir', DIRNAME \[, OPTIONS \]

- SEE ALSO

  - AUTHOR

  - COPYRIGHT

  ### IO::File - supply object methods for filehandles

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  new ( FILENAME \[,MODE \[,PERMS\]\] ), new\_tmpfile

- METHODS

  open( FILENAME \[,MODE \[,PERMS\]\] ), open( FILENAME, IOLAYERS )

- NOTE

  - SEE ALSO

  - HISTORY

  ### IO::Handle - supply object methods for I/O handles

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  new (), new\_from\_fd ( FD, MODE )

- METHODS

  `$io`-\>fdopen ( FD, MODE ), `$io`-\>opened, `$io`-\>getline, `$io`-\>getlines, `$io`-\>ungetc ( ORD ), `$io`-\>write ( BUF, LEN \[, OFFSET \] ), `$io`-\>error, `$io`-\>clearerr, `$io`-\>sync, `$io`-\>flush, `$io`-\>printflush ( ARGS ), `$io`-\>blocking ( \[ BOOL \] ), binmode( \[LAYER\] ), `$io`-\>untaint

- NOTE

  - SEE ALSO

  - BUGS

  - HISTORY

  ### IO::Pipe - supply object methods for pipes

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  new ( \[READER, WRITER\] )

- METHODS

  reader (\[ARGS\]), writer (\[ARGS\]), handles ()

- SEE ALSO

  - AUTHOR

  - COPYRIGHT

  ### IO::Poll - Object interface to system poll call

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  mask ( IO \[, EVENT\_MASK \] ), poll ( \[ TIMEOUT \] ), events ( IO ), remove ( IO ), handles( \[ EVENT\_MASK \] )

- SEE ALSO

  - AUTHOR

  - COPYRIGHT

  ### IO::Seekable - supply seek based methods for I/O objects

- SYNOPSIS

  - DESCRIPTION

  `$io`-\>getpos, `$io`-\>setpos, `$io`-\>seek ( POS, WHENCE ), WHENCE=0 (SEEK\_SET), WHENCE=1 (SEEK\_CUR), WHENCE=2 (SEEK\_END), `$io`-\>sysseek( POS, WHENCE ), `$io`-\>tell

- SEE ALSO

  - HISTORY

  ### IO::Select - OO interface to the "select" system call

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  new ( \[ HANDLES \] )

- METHODS

  add ( HANDLES ), remove ( HANDLES ), exists ( HANDLE ), handles, can\_read ( \[ TIMEOUT \] ), can\_write ( \[ TIMEOUT \] ), has\_exception ( \[ TIMEOUT \] ), count (), **bits()**, select ( READ, WRITE, EXCEPTION \[, TIMEOUT \] )

- EXAMPLE

  - AUTHOR

  - COPYRIGHT

  ### IO::Socket - Object interface to socket communications

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR ARGUMENTS

  - Blocking

    - Domain

    - Listen

    - Timeout

    - Type

    - CONSTRUCTORS

  - new

    - METHODS

  - accept

    - atmark

    - autoflush

    - bind

    - connected

    - getsockopt

    - listen

    - peername

    - protocol

    - recv

    - send

    - setsockopt

    - shutdown

    - sockdomain

    - socket

    - socketpair

    - sockname

    - sockopt

    - socktype

    - timeout

    - EXAMPLES

  - LIMITATIONS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT

  ### IO::Socket::INET - Object interface for AF\_INET domain sockets

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  new ( \[ARGS\] )

  - METHODS

    sockaddr (), sockport (), sockhost (), peeraddr (), peerport (), peerhost ()

- SEE ALSO

  - AUTHOR

  - COPYRIGHT

  ### IO::Socket::IP, "IO::Socket::IP" - Family-neutral IP socket supporting both IPv4 and IPv6

- SYNOPSIS

  - DESCRIPTION

  - REPLACING "IO::Socket" DEFAULT BEHAVIOUR

  - CONSTRUCTORS

  - new

  PeerHost =\> STRING, PeerService =\> STRING, PeerAddr =\> STRING, PeerPort =\> STRING, PeerAddrInfo =\> ARRAY, LocalHost =\> STRING, LocalService =\> STRING, LocalAddr =\> STRING, LocalPort =\> STRING, LocalAddrInfo =\> ARRAY, Family =\> INT, Type =\> INT, Proto =\> STRING or INT, GetAddrInfoFlags =\> INT, Listen =\> INT, ReuseAddr =\> BOOL, ReusePort =\> BOOL, Broadcast =\> BOOL, Sockopts =\> ARRAY, V6Only =\> BOOL, MultiHomed, Blocking =\> BOOL, Timeout =\> NUM

- new (one arg)

  - METHODS

  - sockhost\_service

  - sockhost

  - sockport

  - sockhostname

  - sockservice

  - sockaddr

  - peerhost\_service

  - peerhost

  - peerport

  - peerhostname

  - peerservice

  - peeraddr

  - as\_inet

  - NON-BLOCKING

  - "PeerHost" AND "LocalHost" PARSING

  - split\_addr

    - join\_addr

  - "IO::Socket::INET" INCOMPATIBILITES

  - TODO

  - AUTHOR

  ### IO::Socket::UNIX - Object interface for AF\_UNIX domain sockets

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  new ( \[ARGS\] )

- METHODS

  **hostpath()**, **peerpath()**

- SEE ALSO

  - AUTHOR

  - COPYRIGHT

  ### IO::Uncompress::AnyInflate - Uncompress zlib-based (zip, gzip) file/buffer

- SYNOPSIS

  - DESCRIPTION

  RFC 1950, RFC 1951 (optionally), gzip (RFC 1952), zip

- Functional Interface

  - anyinflate $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeOut => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"MultiStream => 0|1"`, `"TrailingData => $scalar"`

  - OneShot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"MultiStream => 0|1"`, `"Prime => $string"`, `"Transparent => 0|1"`, `"BlockSize => $num"`, `InputLength =>` `$size`, `"Append => 0|1"`, `"Strict => 0|1"`, `"RawInflate => 0|1"`, `"ParseExtra => 0|1"` If the gzip FEXTRA header field is present and this option is set, it will force the module to check that it conforms to the sub-field structure as defined in RFC 1952

- Methods

  - read

    - read

    - getline

    - getc

    - ungetc

    - inflateSync

    - getHeaderInfo

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - nextStream

    - trailingData

    - Importing

  :all

- EXAMPLES

  - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Uncompress::AnyUncompress - Uncompress gzip, zip, bzip2, zstd, xz, lzma, lzip, lzf or lzop file/buffer

- SYNOPSIS

  - DESCRIPTION

  RFC 1950, RFC 1951 (optionally), gzip (RFC 1952), zip, zstd (Zstandard), bzip2, lzop, lzf, lzma, lzip, xz

- Functional Interface

  - anyuncompress $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeOut => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"MultiStream => 0|1"`, `"TrailingData => $scalar"`

  - OneShot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"MultiStream => 0|1"`, `"Prime => $string"`, `"Transparent => 0|1"`, `"BlockSize => $num"`, `InputLength =>` `$size`, `"Append => 0|1"`, `"Strict => 0|1"`, `"RawInflate => 0|1"`, `"UnLzma => 0|1"`

- Methods

  - read

    - read

    - getline

    - getc

    - ungetc

    - getHeaderInfo

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - nextStream

    - trailingData

    - Importing

  :all

- EXAMPLES

  - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Uncompress::Base - Base Class for IO::Uncompress modules

- SYNOPSIS

  - DESCRIPTION

  - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Uncompress::Bunzip2 - Read bzip2 files/buffers

- SYNOPSIS

  - DESCRIPTION

  - Functional Interface

  - bunzip2 $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeOut => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"MultiStream => 0|1"`, `"TrailingData => $scalar"`

  - OneShot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"MultiStream => 0|1"`, `"Prime => $string"`, `"Transparent => 0|1"`, `"BlockSize => $num"`, `InputLength =>` `$size`, `"Append => 0|1"`, `"Strict => 0|1"`, `"Small => 0|1"`

- Methods

  - read

    - read

    - getline

    - getc

    - ungetc

    - getHeaderInfo

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - nextStream

    - trailingData

    - Importing

  :all

- EXAMPLES

  - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Uncompress::Gunzip - Read RFC 1952 files/buffers

- SYNOPSIS

  - DESCRIPTION

  - Functional Interface

  - gunzip $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeOut => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"MultiStream => 0|1"`, `"TrailingData => $scalar"`

  - OneShot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"MultiStream => 0|1"`, `"Prime => $string"`, `"Transparent => 0|1"`, `"BlockSize => $num"`, `InputLength =>` `$size`, `"Append => 0|1"`, `"Strict => 0|1"`, `"ParseExtra => 0|1"` If the gzip FEXTRA header field is present and this option is set, it will force the module to check that it conforms to the sub-field structure as defined in RFC 1952

- Methods

  - read

    - read

    - getline

    - getc

    - ungetc

    - inflateSync

    - getHeaderInfo

    Name, Comment

  - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - nextStream

    - trailingData

    - Importing

  :all

- EXAMPLES

  - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Uncompress::Inflate - Read RFC 1950 files/buffers

- SYNOPSIS

  - DESCRIPTION

  - Functional Interface

  - inflate $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeOut => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"MultiStream => 0|1"`, `"TrailingData => $scalar"`

  - OneShot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"MultiStream => 0|1"`, `"Prime => $string"`, `"Transparent => 0|1"`, `"BlockSize => $num"`, `InputLength =>` `$size`, `"Append => 0|1"`, `"Strict => 0|1"`

- Methods

  - read

    - read

    - getline

    - getc

    - ungetc

    - inflateSync

    - getHeaderInfo

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - nextStream

    - trailingData

    - Importing

  :all

- EXAMPLES

  - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Uncompress::RawInflate - Read RFC 1951 files/buffers

- SYNOPSIS

  - DESCRIPTION

  - Functional Interface

  - rawinflate $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeOut => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"MultiStream => 0|1"`, `"TrailingData => $scalar"`

  - OneShot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"AutoClose => 0|1"`, `"MultiStream => 0|1"`, `"Prime => $string"`, `"Transparent => 0|1"`, `"BlockSize => $num"`, `InputLength =>` `$size`, `"Append => 0|1"`, `"Strict => 0|1"`

- Methods

  - read

    - read

    - getline

    - getc

    - ungetc

    - inflateSync

    - getHeaderInfo

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - nextStream

    - trailingData

    - Importing

  :all

- EXAMPLES

  - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Uncompress::Unzip - Read zip files/buffers

- SYNOPSIS

  - DESCRIPTION

  Store (0), Deflate (8), Bzip2 (12), Lzma (14), Xz (95), Zstandard (93)

- Functional Interface

  - unzip $input\_filename\_or\_reference =\> $output\_filename\_or\_reference \[, OPTS\]

    A filename, A filehandle, A scalar reference, An array reference, An Input FileGlob string, A filename, A filehandle, A scalar reference, An Array Reference, An Output FileGlob

  - Notes

    - Optional Parameters

    `"AutoClose => 0|1"`, `"BinModeOut => 0|1"`, `"Append => 0|1"`, A Buffer, A Filename, A Filehandle, `"MultiStream => 0|1"`, `"TrailingData => $scalar"`

  - OneShot Examples

    - OO Interface

  - Constructor

    A filename, A filehandle, A scalar reference

  - Constructor Options

    `"Name => "membername""`, `"Efs => 0| 1"`, `"AutoClose => 0|1"`, `"MultiStream => 0|1"`, `"Prime => $string"`, `"Transparent => 0|1"`, `"BlockSize => $num"`, `"InputLength => $size"`, `"Append =>` `0|1"`, `"Strict => 0|1"`

- Methods

  - read

    - read

    - getline

    - getc

    - ungetc

    - inflateSync

    - getHeaderInfo

    - tell

    - eof

    - seek

    - binmode

    - opened

    - autoflush

    - input\_line\_number

    - fileno

    - close

    - nextStream

    - trailingData

    - Importing

  :all

- EXAMPLES

  - Simple Read

    - Walking through a zip file

    - Unzipping a complete zip file to disk

    - Working with Net::FTP

    - SUPPORT

  - SEE ALSO

  - AUTHOR

  - MODIFICATION HISTORY

  - COPYRIGHT AND LICENSE

  ### IO::Zlib - IO:: style interface to Compress::Zlib

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  new ( \[ARGS\] )

- OBJECT METHODS

  open ( FILENAME, MODE ), opened, close, getc, getline, getlines, print ( ARGS... ), read ( BUF, NBYTES, \[OFFSET\] ), eof, seek ( OFFSET, WHENCE ), tell, setpos ( POS ), getpos ( POS )

- USING THE EXTERNAL GZIP

  - CLASS METHODS

  has\_Compress\_Zlib, gzip\_external, gzip\_used, gzip\_read\_open, gzip\_write\_open

- DIAGNOSTICS

  IO::Zlib::getlines: must be called in list context, IO::Zlib::gzopen\_external: mode '...' is illegal, IO::Zlib::import: '...' is illegal, IO::Zlib::import: ':gzip\_external' requires an argument, IO::Zlib::import: 'gzip\_read\_open' requires an argument, IO::Zlib::import: 'gzip\_read' '...' is illegal, IO::Zlib::import: 'gzip\_write\_open' requires an argument, IO::Zlib::import: 'gzip\_write\_open' '...' is illegal, IO::Zlib::import: no Compress::Zlib and no external gzip, IO::Zlib::open: needs a filename, IO::Zlib::READ: NBYTES must be specified, IO::Zlib::WRITE: too long LENGTH

- SEE ALSO

  - HISTORY

  - COPYRIGHT

  ### IPC::Cmd - finding and running system commands made easy

- SYNOPSIS

  - DESCRIPTION

  - CLASS METHODS

  - $ipc\_run\_version = IPC::Cmd-\>can\_use\_ipc\_run( \[VERBOSE\] )

    - $ipc\_open3\_version = IPC::Cmd-\>can\_use\_ipc\_open3( \[VERBOSE\] )

  - $bool = IPC::Cmd-\>can\_capture\_buffer

  - $bool = IPC::Cmd-\>can\_use\_run\_forked

  - FUNCTIONS

  - $path = can\_run( PROGRAM );

    - $ok \| ($ok, $err, $full\_buf, $stdout\_buff, $stderr\_buff) = run( command =\> COMMAND, \[verbose =\> BOOL, buffer =\> \\$SCALAR, timeout =\> DIGIT\] );

  command, verbose, buffer, timeout, success, error message, full\_buffer, out\_buffer, error\_buffer

- $hashref = run\_forked( COMMAND, { child\_stdin =\> SCALAR, timeout =\> DIGIT, stdout\_handler =\> CODEREF, stderr\_handler =\> CODEREF} );

  `"timeout"`, `"child_stdin"`, `"stdout_handler"`, `"stderr_handler"`, `"wait_loop_callback"`, `"discard_output"`, `"terminate_on_parent_sudden_death"`, `"exit_code"`, `"timeout"`, `"stdout"`, `"stderr"`, `"merged"`, `"err_msg"`

- $q = QUOTE

  - HOW IT WORKS

  - Global Variables

  - $IPC::Cmd::VERBOSE

    - $IPC::Cmd::USE\_IPC\_RUN

    - $IPC::Cmd::USE\_IPC\_OPEN3

    - $IPC::Cmd::WARN

    - $IPC::Cmd::INSTANCES

    - $IPC::Cmd::ALLOW\_NULL\_ARGS

    - Caveats

  Whitespace and IPC::Open3 / **system()**, Whitespace and IPC::Run, IO Redirect, Interleaving STDOUT/STDERR

- See Also

  - ACKNOWLEDGEMENTS

  - BUG REPORTS

  - AUTHOR

  - COPYRIGHT

  ### IPC::Msg - SysV Msg IPC object class

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  new ( KEY , FLAGS ), id, rcv ( BUF, LEN \[, TYPE \[, FLAGS \]\] ), remove, set ( STAT ), set ( NAME =\> VALUE \[, NAME =\> VALUE ...\] ), snd ( TYPE, MSG \[, FLAGS \] ), stat

- SEE ALSO

  - AUTHORS

  - COPYRIGHT

  ### IPC::Open2 - open a process for both reading and writing using open2()

- SYNOPSIS

  - DESCRIPTION

  - WARNING

  - SEE ALSO

  ### IPC::Open3 - open a process for reading, writing, and error handling using open3()

- SYNOPSIS

  - DESCRIPTION

  - See Also

  IPC::Open2, IPC::Run

- WARNING

  ### IPC::Semaphore - SysV Semaphore IPC object class

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  new ( KEY , NSEMS , FLAGS ), getall, getncnt ( SEM ), getpid ( SEM ), getval ( SEM ), getzcnt ( SEM ), id, op ( OPLIST ), remove, set ( STAT ), set ( NAME =\> VALUE \[, NAME =\> VALUE ...\] ), setall ( VALUES ), setval ( N , VALUE ), stat

- SEE ALSO

  - AUTHORS

  - COPYRIGHT

  ### IPC::SharedMem - SysV Shared Memory IPC object class

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  new ( KEY , SIZE , FLAGS ), id, read ( POS, SIZE ), write ( STRING, POS, SIZE ), remove, is\_removed, stat, attach ( \[FLAG\] ), detach, addr

- SEE ALSO

  - AUTHORS

  - COPYRIGHT

  ### IPC::SysV - System V IPC constants and system calls

- SYNOPSIS

  - DESCRIPTION

  ftok( PATH ), ftok( PATH, ID ), shmat( ID, ADDR, FLAG ), shmdt( ADDR ), memread( ADDR, VAR, POS, SIZE ), memwrite( ADDR, STRING, POS, SIZE )

- SEE ALSO

  - AUTHORS

  - COPYRIGHT

  ### Internals - Reserved special namespace for internals related functions

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

    SvREFCNT(THING \[, `$value`\]), SvREADONLY(THING, \[, `$value`\]), hv\_clear\_placeholders(%hash), stack\_refcounted

- AUTHOR

  - SEE ALSO

  ### JSON::PP - JSON::XS compatible pure-Perl module.

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONAL INTERFACE

  - encode\_json

    - decode\_json

    - JSON::PP::is\_bool

    - OBJECT-ORIENTED INTERFACE

  - new

    - ascii

    - latin1

    - utf8

    - pretty

    - indent

    - space\_before

    - space\_after

    - relaxed

    list items can have an end-comma, shell-style '#'-comments, C-style multiple-line '/\* \*/'-comments (JSON::PP only), C++-style one-line '//'-comments (JSON::PP only), literal ASCII TAB characters in strings

  - canonical

    - allow\_nonref

    - allow\_unknown

    - allow\_blessed

    - convert\_blessed

    - allow\_tags

    - boolean\_values

    - core\_bools

    - filter\_json\_object

    - filter\_json\_single\_key\_object

    - shrink

    - max\_depth

    - max\_size

    - encode

    - decode

    - decode\_prefix

    - FLAGS FOR JSON::PP ONLY

  - allow\_singlequote

    - allow\_barekey

    - allow\_bignum

    - loose

    - escape\_slash

    - indent\_length

    - sort\_by

    - INCREMENTAL PARSING

  - incr\_parse

    - incr\_text

    - incr\_skip

    - incr\_reset

    - MAPPING

  - JSON -\> PERL

    object, array, string, number, true, false, null, shell-style comments (`"# `*text*`"`), tagged values (`"(`*tag*`)`*value*`"`)

  - PERL -\> JSON

    hash references, array references, other references, JSON::PP::true, JSON::PP::false, JSON::PP::null, blessed objects, simple scalars

  - OBJECT SERIALISATION

    1\. `"allow_tags"` is enabled and the object has a `"FREEZE"` method, 2. `"convert_blessed"` is enabled and the object has a `"TO_JSON"` method, 3. `"allow_bignum"` is enabled and the object is a `"Math::BigInt"` or `"Math::BigFloat"`, 4. `"allow_blessed"` is enabled, 5. none of the above

- ENCODING/CODESET FLAG NOTES

  `"utf8"` flag disabled, `"utf8"` flag enabled, `"latin1"` or `"ascii"` flags enabled

- BUGS

  - SEE ALSO

  - AUTHOR

  - CURRENT MAINTAINER

  - COPYRIGHT AND LICENSE

  ### JSON::PP::Boolean - dummy module providing JSON::PP::Boolean

- SYNOPSIS

  - DESCRIPTION

  - AUTHOR

  - LICENSE

  ### List::Util - A selection of general-utility list subroutines

- SYNOPSIS

  - DESCRIPTION

  - LIST-REDUCTION FUNCTIONS

  - reduce

  - reductions

  - any

  - all

  - none

  - notall

  - first

  - max

  - maxstr

  - min

  - minstr

  - product

  - sum

  - sum0

  - KEY/VALUE PAIR LIST FUNCTIONS

  - pairs

  - unpairs

  - pairkeys

  - pairvalues

  - pairgrep

  - pairfirst

  - pairmap

  - OTHER FUNCTIONS

  - shuffle

  - sample

  - uniq

  - uniqint

  - uniqnum

  - uniqstr

  - head

  - tail

  - zip

  - mesh

  - CONFIGURATION VARIABLES

  - $RAND

    - KNOWN BUGS

  - RT #95409

    - **uniqnum()** on oversized bignums

    - SUGGESTED ADDITIONS

  - SEE ALSO

  - COPYRIGHT

  ### List::Util::XS - Indicate if List::Util was compiled with a C compiler

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - COPYRIGHT

  ### Locale::Maketext - framework for localization

- SYNOPSIS

  - DESCRIPTION

  - QUICK OVERVIEW

  - METHODS

  - Construction Methods

    - The "maketext" Method

    `$lh`-\>fail\_with *or* `$lh`-\>fail\_with(*PARAM*), `$lh`-\>failure\_handler\_auto, `$lh`-\>denylist(@list) \<or\> `$lh`-\>blacklist(@list), `$lh`-\>allowlist(@list) \<or\> `$lh`-\>whitelist(@list)

  - Utility Methods

    `$language`-\>quant($number, `$singular`), `$language`-\>quant($number, `$singular`, `$plural`), `$language`-\>quant($number, `$singular`, `$plural`, `$negative`), `$language`-\>numf($number), `$language`-\>numerate($number, `$singular`, `$plural`, `$negative`), `$language`-\>sprintf($format, `@items`), `$language`-\>**language\_tag()**, `$language`-\>**encoding()**

  - Language Handle Attributes and Internals

    - LANGUAGE CLASS HIERARCHIES

  - ENTRIES IN EACH LEXICON

  - BRACKET NOTATION

  - BRACKET NOTATION SECURITY

  - AUTO LEXICONS

  - READONLY LEXICONS

  - CONTROLLING LOOKUP FAILURE

  - HOW TO USE MAKETEXT

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMER

  - AUTHOR

  ### Locale::Maketext::Cookbook - recipes for using Locale::Maketext

- INTRODUCTION

  - ONESIDED LEXICONS

  - DECIMAL PLACES IN NUMBER FORMATTING

  ### Locale::Maketext::Guts - Deprecated module to load Locale::Maketext utf8 code

- SYNOPSIS

  - DESCRIPTION

  ### Locale::Maketext::GutsLoader - Deprecated module to load Locale::Maketext utf8 code

- SYNOPSIS

  - DESCRIPTION

  ### Locale::Maketext::Simple - Simple interface to Locale::Maketext::Lexicon

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - OPTIONS

  - Class

    - Path

    - Style

    - Export

    - Subclass

    - Decode

    - Encoding

    - ACKNOWLEDGMENTS

  - SEE ALSO

  - AUTHORS

  - COPYRIGHT

  - The "MIT" License

    ### Locale::Maketext::TPJ13 -- article about software localization

- SYNOPSIS

  - DESCRIPTION

  - Localization and Perl: gettext breaks, Maketext fixes

  - A Localization Horror Story: It Could Happen To You

    - The Linguistic View

    - Breaking gettext

    - Replacing gettext

    - Buzzwords: Abstraction and Encapsulation

    - Buzzword: Isomorphism

    - Buzzword: Inheritance

    - Buzzword: Concision

    - The Devil in the Details

    - The Proof in the Pudding: Localizing Web Sites

    - References

    ### MIME::Base64 - Encoding and decoding of base64 strings

- SYNOPSIS

  - DESCRIPTION

  encode\_base64( `$bytes` ), encode\_base64( `$bytes`, `$eol` );, decode\_base64( `$str` ), encode\_base64url( `$bytes` ), decode\_base64url( `$str` ), encoded\_base64\_length( `$bytes` ), encoded\_base64\_length( `$bytes`, `$eol` ), decoded\_base64\_length( `$str` )

- EXAMPLES

  - COPYRIGHT

  - SEE ALSO

  ### MIME::QuotedPrint - Encoding and decoding of quoted-printable strings

- SYNOPSIS

  - DESCRIPTION

  encode\_qp( `$str`), encode\_qp( `$str`, `$eol`), encode\_qp( `$str`, `$eol`, `$binmode` ), decode\_qp( `$str` )

- COPYRIGHT

  - SEE ALSO

  ### Math::BigFloat - arbitrary size floating point math package

- SYNOPSIS

  - DESCRIPTION

  - Input

    - Output

    - METHODS

  - Configuration methods

    **accuracy()**, **precision()**

  - Constructor methods

    **from\_hex()**, **from\_oct()**, **from\_bin()**, **from\_ieee754()**, **bpi()**

  - Arithmetic methods

    **bmuladd()**, **binv()**, **bdiv()**, **bmod()**, **bexp()**, **bnok()**, **bsin()**, **bcos()**, **batan()**, **batan2()**, **as\_float()**, **to\_ieee754()**

  - ACCURACY AND PRECISION

    - Rounding

    bfround ( +$scale ), bfround ( -$scale ), bfround ( 0 ), bround  ( +$scale ), bround  ( -$scale ) and bround ( 0 )

- NUMERIC LITERALS

  - Hexadecimal, octal, and binary floating point literals

    - Math library

    - EXPORTS

  stringify, **bstr()**, **brsft()**, Modifying and =, **precision()** vs. **accuracy()**

- BUGS

  - SUPPORT

  GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - SEE ALSO

  - AUTHORS

  ### Math::BigInt - arbitrary size integer math package

- SYNOPSIS

  - DESCRIPTION

  - Input

    - Output

    - METHODS

  - Configuration methods

    **accuracy()**, **precision()**, **div\_scale()**, **round\_mode()**, **trap\_inf()**, **trap\_nan()**, **upgrade()**, **downgrade()**, **modify()**, **config()**

  - Constructor methods

    **new()**, **from\_dec()**, **from\_hex()**, **from\_oct()**, **from\_bin()**, **from\_bytes()**, **from\_base()**, **from\_base\_num()**, **bzero()**, **bone()**, **binf()**, **bnan()**, **bpi()**, **copy()**, **as\_int()**, **as\_number()**, **as\_float()**, **as\_rat()**

  - Boolean methods

    **is\_zero()**, is\_one( \[ SIGN \]), **is\_finite()**, is\_inf( \[ SIGN \] ), **is\_nan()**, **is\_positive()**, **is\_pos()**, **is\_negative()**, **is\_neg()**, **is\_non\_positive()**, **is\_non\_negative()**, **is\_odd()**, **is\_even()**, **is\_int()**

  - Comparison methods

    **bcmp()**, **bacmp()**, **beq()**, **bne()**, **blt()**, **ble()**, **bgt()**, **bge()**

  - Arithmetic methods

    **bneg()**, **babs()**, **bsgn()**, **bnorm()**, **binc()**, **bdec()**, **badd()**, **bsub()**, **bmul()**, **bmuladd()**, **binv()**, **bdiv()**, **btdiv()**, **bmod()**, **btmod()**, **bmodinv()**, **bmodpow()**, **bpow()**, **blog()**, **bexp()**, **bilog2()**, **bilog10()**, **bclog2()**, **bclog10()**, **bnok()**, **buparrow()**, **uparrow()**, **backermann()**, **ackermann()**, **bsin()**, **bcos()**, **batan()**, **batan2()**, **bsqrt()**, **broot()**, **bfac()**, **bdfac()**, **btfac()**, **bmfac()**, **bfib()**, **blucas()**, **brsft()**, **blsft()**

  - Bitwise methods

    **bbrsft()**, **bblsft()**, **band()**, **bior()**, **bxor()**, **bnot()**

  - Rounding methods

    **round()**, **bround()**, **bfround()**, **bfloor()**, **bceil()**, **bint()**

  - Other mathematical methods

    **bgcd()**, **blcm()**

  - Object property methods

    **sign()**, **digit()**, **digitsum()**, **bdigitsum()**, **length()**, **mantissa()**, **exponent()**, **parts()**, **sparts()**, **nparts()**, **eparts()**, **dparts()**, **fparts()**, **numerator()**, **denominator()**

  - String conversion methods

    **bstr()**, **bsstr()**, **bnstr()**, **bestr()**, **bdstr()**, **bfstr()**, **to\_hex()**, **to\_bin()**, **to\_oct()**, **to\_bytes()**, **to\_base()**, **to\_base\_num()**, **as\_hex()**, **as\_bin()**, **as\_oct()**, **as\_bytes()**

  - Other conversion methods

    **numify()**

  - Utility methods

    **dec\_str\_to\_dec\_flt\_str()**, **hex\_str\_to\_dec\_flt\_str()**, **oct\_str\_to\_dec\_flt\_str()**, **bin\_str\_to\_dec\_flt\_str()**, **dec\_str\_to\_dec\_str()**, **hex\_str\_to\_dec\_str()**, **oct\_str\_to\_dec\_str()**, **bin\_str\_to\_dec\_str()**

- ACCURACY and PRECISION

  - Precision P

    - Accuracy A

    - Fallback F

    - Rounding mode R

    'trunc', 'even', 'odd', '+inf', '-inf', 'zero', 'common', Precision, Accuracy (significant digits), Setting/Accessing, Creating numbers, Usage, Precedence, Overriding globals, Local settings, Rounding, Default values, Remarks

- Infinity and Not a Number

  **oct()**/**hex()**

- INTERNALS

  - MATH LIBRARY

    - SIGN

    - EXAMPLES

  - NUMERIC LITERALS

  - Hexadecimal, octal, and binary floating point literals

    - PERFORMANCE

  - Alternative math libraries

    - SUBCLASSING

  - Subclassing Math::BigInt

    - UPGRADING

  - Auto-upgrade

    - EXPORTS

  - CAVEATS

  Comparing numbers as strings, **int()**, Modifying and =, Overloading -$x, Mixing different object types

- BUGS

  - SUPPORT

  GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - SEE ALSO

  - AUTHORS

  ### Math::BigInt::Calc - pure Perl module to support Math::BigInt

- SYNOPSIS

  - DESCRIPTION

  - OPTIONS

  base\_len, use\_int

- METHODS

  **\_base\_len()**

- SEE ALSO

  ### Math::BigInt::FastCalc - Math::BigInt::Calc with some XS for more speed

- SYNOPSIS

  - DESCRIPTION

  - STORAGE

  - METHODS

  - BUGS

  - SUPPORT

  GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - AUTHORS

  - SEE ALSO

  ### Math::BigInt::Lib - virtual parent class for Math::BigInt libraries

- SYNOPSIS

  - DESCRIPTION

  - General Notes

    CLASS-\>**api\_version()**, CLASS-\>\_new(STR), CLASS-\>**\_zero()**, CLASS-\>**\_one()**, CLASS-\>**\_two()**, CLASS-\>**\_ten()**, CLASS-\>\_from\_bin(STR), CLASS-\>\_from\_oct(STR), CLASS-\>\_from\_hex(STR), CLASS-\>\_from\_bytes(STR), CLASS-\>\_from\_base(STR, BASE, COLLSEQ), CLASS-\>\_from\_base\_num(ARRAY, BASE), CLASS-\>\_add(OBJ1, OBJ2), CLASS-\>\_mul(OBJ1, OBJ2), CLASS-\>\_div(OBJ1, OBJ2), CLASS-\>\_sub(OBJ1, OBJ2, FLAG), CLASS-\>\_sub(OBJ1, OBJ2), CLASS-\>\_sadd(OBJ1, SIGN1, OBJ2, SIGN2), CLASS-\>\_ssub(OBJ1, SIGN1, OBJ2, SIGN2), CLASS-\>\_dec(OBJ), CLASS-\>\_inc(OBJ), CLASS-\>\_mod(OBJ1, OBJ2), CLASS-\>\_sqrt(OBJ), CLASS-\>\_root(OBJ, N), CLASS-\>\_fac(OBJ), CLASS-\>\_dfac(OBJ), CLASS-\>\_pow(OBJ1, OBJ2), CLASS-\>\_modinv(OBJ1, OBJ2), CLASS-\>\_modpow(OBJ1, OBJ2, OBJ3), CLASS-\>\_rsft(OBJ, N, B), CLASS-\>\_lsft(OBJ, N, B), CLASS-\>\_log\_int(OBJ, B), CLASS-\>\_ilog2(OBJ), CLASS-\>\_ilog10(OBJ), CLASS-\>\_clog2(OBJ), CLASS-\>\_clog10(OBJ), CLASS-\>\_gcd(OBJ1, OBJ2), CLASS-\>\_lcm(OBJ1, OBJ2), CLASS-\>\_fib(OBJ), CLASS-\>\_lucas(OBJ), CLASS-\>\_and(OBJ1, OBJ2), CLASS-\>\_or(OBJ1, OBJ2), CLASS-\>\_xor(OBJ1, OBJ2), CLASS-\>\_sand(OBJ1, OBJ2, SIGN1, SIGN2), CLASS-\>\_sor(OBJ1, OBJ2, SIGN1, SIGN2), CLASS-\>\_sxor(OBJ1, OBJ2, SIGN1, SIGN2), CLASS-\>\_is\_zero(OBJ), CLASS-\>\_is\_one(OBJ), CLASS-\>\_is\_two(OBJ), CLASS-\>\_is\_ten(OBJ), CLASS-\>\_is\_even(OBJ), CLASS-\>\_is\_odd(OBJ), CLASS-\>\_acmp(OBJ1, OBJ2), CLASS-\>\_str(OBJ), CLASS-\>\_to\_bin(OBJ), CLASS-\>\_to\_oct(OBJ), CLASS-\>\_to\_hex(OBJ), CLASS-\>\_to\_bytes(OBJ), CLASS-\>\_to\_base(OBJ, BASE, COLLSEQ), CLASS-\>\_to\_base\_num(OBJ, BASE), CLASS-\>\_as\_bin(OBJ), CLASS-\>\_as\_oct(OBJ), CLASS-\>\_as\_hex(OBJ), CLASS-\>\_as\_bytes(OBJ), CLASS-\>\_num(OBJ), CLASS-\>\_copy(OBJ), CLASS-\>\_len(OBJ), CLASS-\>\_zeros(OBJ), CLASS-\>\_digit(OBJ, N), CLASS-\>\_digitsum(OBJ), CLASS-\>\_check(OBJ), CLASS-\>\_set(OBJ)

  - API version 2

    CLASS-\>\_1ex(N), CLASS-\>\_nok(OBJ1, OBJ2), CLASS-\>\_alen(OBJ)

- WRAP YOUR OWN

  - BUGS

  - SUPPORT

  GitHub Source Repository, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - AUTHOR

  - SEE ALSO

  ### Math::BigRat - arbitrary size rational number math package

- SYNOPSIS

  - DESCRIPTION

  - MATH LIBRARY

    - METHODS

  **new()**, **numerator()**, **denominator()**, **parts()**, **dparts()**, **fparts()**, **numify()**, **as\_int()**, **as\_number()**, **as\_float()**, **as\_hex()**, **as\_bin()**, **as\_oct()**, **from\_hex()**, **from\_oct()**, **from\_bin()**, **bnan()**, **bzero()**, **binf()**, **bone()**, **length()**, **digit()**, **bnorm()**, **bfac()**, **bround()**/**round()**/**bfround()**, **bmod()**, **bmodinv()**, **bmodpow()**, **bneg()**, **is\_one()**, **is\_zero()**, **is\_pos()**/**is\_positive()**, **is\_neg()**/**is\_negative()**, **is\_int()**, **is\_odd()**, **is\_even()**, **bceil()**, **bfloor()**, **bint()**, **bsqrt()**, **broot()**, **badd()**, **bmul()**, **bsub()**, **bdiv()**, **binv()**, **bdec()**, **binc()**, **copy()**, **bstr()**/**bsstr()**, **bcmp()**, **bacmp()**, **beq()**, **bne()**, **blt()**, **ble()**, **bgt()**, **bge()**, **blsft()**/**brsft()**, **band()**, **bior()**, **bxor()**, **bnot()**, **bpow()**, **blog()**, **bexp()**, **bnok()**, **config()**

- NUMERIC LITERALS

  - Hexadecimal, octal, and binary floating point literals

    - BUGS

  - SUPPORT

  GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix

- LICENSE

  - SEE ALSO

  - AUTHORS

  ### Math::Complex - complex numbers and associated mathematical functions

- SYNOPSIS

  - DESCRIPTION

  - OPERATIONS

  - CREATION

  - DISPLAYING

  - CHANGED IN PERL 5.6

    - USAGE

  - CONSTANTS

  - PI

    - Inf

    - ERRORS DUE TO DIVISION BY ZERO OR LOGARITHM OF ZERO

  - ERRORS DUE TO INDIGESTIBLE ARGUMENTS

  - BUGS

  - SEE ALSO

  - AUTHORS

  - LICENSE

  ### Math::Trig - trigonometric functions

- SYNOPSIS

  - DESCRIPTION

  - ANGLES

  - TRIGONOMETRIC FUNCTIONS

  **tan**

  - ERRORS DUE TO DIVISION BY ZERO

    - SIMPLE (REAL) ARGUMENTS, COMPLEX RESULTS

    - PLANE ANGLE CONVERSIONS

  deg2rad, grad2rad, rad2deg, grad2deg, deg2grad, rad2grad, rad2rad, deg2deg, grad2grad

- RADIAL COORDINATE CONVERSIONS

  - COORDINATE SYSTEMS

    - 3-D ANGLE CONVERSIONS

    cartesian\_to\_cylindrical, cartesian\_to\_spherical, cylindrical\_to\_cartesian, cylindrical\_to\_spherical, spherical\_to\_cartesian, spherical\_to\_cylindrical

- GREAT CIRCLE DISTANCES AND DIRECTIONS

  - great\_circle\_distance

    - great\_circle\_direction

    - great\_circle\_bearing

    - great\_circle\_destination

    - great\_circle\_midpoint

    - great\_circle\_waypoint

    - EXAMPLES

  - CAVEAT FOR GREAT CIRCLE FORMULAS

    - Real-valued asin and acos

    asin\_real, acos\_real

- BUGS

  - SEE ALSO

  - AUTHORS

  - LICENSE

  ### Memoize - Make functions faster by trading space for time

- SYNOPSIS

  - DESCRIPTION

  - EXAMPLE

  - DETAILS

  - OPTIONS

  - INSTALL

    - NORMALIZER

    - "SCALAR\_CACHE", "LIST\_CACHE"

    `"MEMORY"`, `"HASH"`, `"TIE"`, `"FAULT"`, `"MERGE"`

- OTHER FACILITIES

  - "unmemoize"

    - "flush\_cache"

    - CAVEATS

  - PERSISTENT CACHE SUPPORT

  - EXPIRATION SUPPORT

  - BUGS

  - SEE ALSO

  - THANK YOU

  - AUTHOR

  - COPYRIGHT AND LICENSE

  ### Memoize::AnyDBM\_File - glue to provide EXISTS for AnyDBM\_File for Storable use

- DESCRIPTION

  ### Memoize::Expire - Plug-in module for automatic expiration of memoized values

- SYNOPSIS

  - DESCRIPTION

  - INTERFACE

  ```
   TIEHASH,  EXISTS,  STORE
  ```

- ALTERNATIVES

  - CAVEATS

  - AUTHOR

  - SEE ALSO

  ### Memoize::NDBM\_File - glue to provide EXISTS for NDBM\_File for Storable use

- DESCRIPTION

  ### Memoize::SDBM\_File - DEPRECATED compability shim

- DESCRIPTION

  ### Memoize::Storable - store Memoized data in Storable database

- DESCRIPTION

  ### Module::CoreList - what modules shipped with versions of perl

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS API

  `first_release( MODULE )`, `first_release_by_date( MODULE )`, `"find_modules( REGEX, [ LIST OF PERLS ] )"`, `find_version( PERL_VERSION` `)`, `"is_core( MODULE, [ MODULE_VERSION, [ PERL_VERSION ] ] )"`, `"is_deprecated( MODULE, PERL_VERSION )"`, `deprecated_in( MODULE )`, `removed_from( MODULE )`, `removed_from_by_date( MODULE )`, `"changes_between( PERL_VERSION, PERL_VERSION )"`

- DATA STRUCTURES

  `%Module::CoreList::version`, `%Module::CoreList::delta`, `%Module::CoreList::released`, `%Module::CoreList::families`, `%Module::CoreList::deprecated`, `%Module::CoreList::upstream`, `%Module::CoreList::bug_tracker`

- CAVEATS

  - HISTORY

  - AUTHOR

  - LICENSE

  - SEE ALSO

  ### Module::CoreList::Utils - what utilities shipped with versions of perl

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS API

  `"utilities"`, `first_release( UTILITY )`, `first_release_by_date( UTILITY` `)`, `removed_from( UTILITY )`, `removed_from_by_date( UTILITY )`

- DATA STRUCTURES

  `%Module::CoreList::Utils::utilities`

- AUTHOR

  - LICENSE

  - SEE ALSO

  ### Module::Load - runtime require of both modules and files

- SYNOPSIS

  - DESCRIPTION

  - Difference between "load" and "autoload"

    - FUNCTIONS

  load, autoload, load\_remote, autoload\_remote

- Rules

  - IMPORTS THE FUNCTIONS

  "load","autoload","load\_remote","autoload\_remote", 'all', '','none',undef

- Caveats

  - SEE ALSO

  - ACKNOWLEDGEMENTS

  - BUG REPORTS

  - AUTHOR

  - COPYRIGHT

  ### Module::Load::Conditional - Looking up module information / loading at runtime

- SYNOPSIS

  - DESCRIPTION

  - Methods

  - $href = check\_install( module =\> NAME \[, version =\> VERSION, verbose =\> BOOL \] );

    module, version, verbose, file, dir, version, uptodate

- $bool = can\_load( modules =\> { NAME =\> VERSION \[,NAME =\> VERSION\] }, \[verbose =\> BOOL, nocache =\> BOOL, autoload =\> BOOL\] )

  modules, verbose, nocache, autoload

- @list = requires( MODULE );

  - Global Variables

  - $Module::Load::Conditional::VERBOSE

    - $Module::Load::Conditional::FIND\_VERSION

    - $Module::Load::Conditional::CHECK\_INC\_HASH

    - $Module::Load::Conditional::FORCE\_SAFE\_INC

    - $Module::Load::Conditional::CACHE

    - $Module::Load::Conditional::ERROR

    - $Module::Load::Conditional::DEPRECATED

    - See Also

  - BUG REPORTS

  - AUTHOR

  - COPYRIGHT

  ### Module::Loaded - mark modules as loaded or unloaded

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  - $bool = mark\_as\_loaded( PACKAGE );

    - $bool = mark\_as\_unloaded( PACKAGE );

  - $loc = is\_loaded( PACKAGE );

  - BUG REPORTS

  - AUTHOR

  - COPYRIGHT

  ### Module::Metadata - Gather package and POD information from perl module files

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - CLASS METHODS

  - "new\_from\_file($filename, collect\_pod =\> 1, decode\_pod =\> 1)"

    - "new\_from\_handle($handle, $filename, collect\_pod =\> 1, decode\_pod =\> 1)"

    - "new\_from\_module($module, collect\_pod =\> 1, inc =\> \\@dirs, decode\_pod =\> 1)"

    - "find\_module\_by\_name($module, \\@dirs)"

    - "find\_module\_dir\_by\_name($module, \\@dirs)"

    - provides( %options )

    version **(required)**, dir, files, prefix

  - "package\_versions\_from\_directory($dir, \\@files?)"

    - "log\_info (internal)"

    - OBJECT METHODS

  - name()

    - version($package)

    - filename()

    - packages\_inside()

    - pod\_inside()

    - contains\_pod()

    - pod($section)

    - is\_indexable($package) or is\_indexable()

    - SUPPORT

  - AUTHOR

  - CONTRIBUTORS

  - COPYRIGHT & LICENSE

  ### NDBM\_File - Tied access to ndbm files

- SYNOPSIS

  - DESCRIPTION

  `"O_RDONLY"`, `"O_WRONLY"`, `"O_RDWR"`

- DIAGNOSTICS

  - "ndbm store returned -1, errno 22, key "..." at ..."

    - SECURITY AND PORTABILITY

  - BUGS AND WARNINGS

  ### NEXT - Provide a pseudo-class NEXT (et al) that allows method redispatch

- SYNOPSIS

  - DESCRIPTION

  - Enforcing redispatch

    - Avoiding repetitions

    - Invoking all versions of a method with a single call

    - Using "EVERY" methods

    - SEE ALSO

  - AUTHOR

  - BUGS AND IRRITATIONS

  - COPYRIGHT

  ### Net::Cmd - Network Command class (as used by FTP, SMTP etc)

- SYNOPSIS

  - DESCRIPTION

  - Public Methods

    `debug($level)`, `message()`, `code()`, `ok()`, `status()`, `datasend($data)`, `dataend()`

  - Protected Methods

    `"debug_print($dir, $text)"`, `"debug_text($dir, $text)"`, `"command($cmd[,` `$args, ... ])"`, `unsupported()`, `response()`, `parse_response($text)`, `getline()`, `ungetline($text)`, `rawdatasend($data)`, `read_until_dot()`, `tied_fh()`

  - Pseudo Responses

    Initial value, Connection closed, Timeout

- EXPORTS

  Default Exports, Optional Exports, Export Tags

- KNOWN BUGS

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::Config - Local configuration data for libnet

- SYNOPSIS

  - DESCRIPTION

  - Class Methods

    `requires_firewall($host)`

  - NetConfig Values

    nntp\_hosts, snpp\_hosts, pop3\_hosts, smtp\_hosts, ph\_hosts, daytime\_hosts, time\_hosts, inet\_domain, ftp\_firewall, ftp\_firewall\_type, 0, 1, 2, 3, 4, 5, 6, 7, ftp\_ext\_passive, ftp\_int\_passive, local\_netmask, test\_hosts, test\_exists

- EXPORTS

  Default Exports, Optional Exports, Export Tags

- KNOWN BUGS

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::Domain - Attempt to evaluate the current host's internet name and domain

- SYNOPSIS

  - DESCRIPTION

  - Functions

    `hostfqdn()`, `domainname()`, `hostname()`, `hostdomain()`

- EXPORTS

  Default Exports, Optional Exports, Export Tags

- KNOWN BUGS

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::FTP - FTP Client class

- SYNOPSIS

  - DESCRIPTION

  - Overview

    - Class Methods

    `"new([$host][, %options])"`

  - Object Methods

    `"login([$login[, $password[, $account]]])"`, `starttls()`, `stoptls()`, `prot($level)`, `host()`, `account($acct)`, `"authorize([$auth[,` `$resp]])"`, `site($args)`, `ascii()`, `binary()`, `type([$type])`, `"rename($oldname, $newname)"`, `delete($filename)`, `cwd([$dir])`, `cdup()`, `passive([$passive])`, `pwd()`, `restart($where)`, `"rmdir($dir[, $recurse])"`, `"mkdir($dir[, $recurse])"`, `"alloc($size[,` `$record_size])"`, `ls([$dir])`, `dir([$dir])`, `"get($remote_file[,` `$local_file[, $where]])"`, `"put($local_file[, $remote_file])"`, `"put_unique($local_file[, $remote_file])"`, `"append($local_file[,` `$remote_file])"`, `unique_name()`, `mdtm($file)`, `size($file)`, `supported($cmd)`, `"hash([$filehandle_glob_ref[,` `$bytes_per_hash_mark]])"`, `feature($name)`, `nlst([$dir])`, `list([$dir])`, `retr($file)`, `stor($file)`, `stou($file)`, `appe($file)`, `port([$port])`, `eprt([$port])`, `pasv()`, `epsv()`, `"pasv_xfer($src_file, $dest_server[, $dest_file ])"`, `"pasv_xfer_unique($src_file, $dest_server[, $dest_file ])"`, `pasv_wait($non_pasv_server)`, `abort()`, `quit()`

  - Methods for the Adventurous

    `"quot($cmd[, $args])"`, `can_inet6()`, `can_ssl()`

  - The dataconn Class

    - Unimplemented

    `"SMNT"`, `"HELP"`, `"MODE"`, `"SYST"`, `"STAT"`, `"STRU"`, `"REIN"`

- EXPORTS

  - KNOWN BUGS

  - Reporting Bugs

    - SEE ALSO

  - ACKNOWLEDGEMENTS

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::NNTP - NNTP Client class

- SYNOPSIS

  - DESCRIPTION

  - Class Methods

    `"new([$host][, %options])"`

  - Object Methods

    `host()`, `starttls()`, `"article([{$msgid|$msgnum}[, $fh]])"`, `"body([{$msgid|$msgnum}[, [$fh]])"`, `"head([{$msgid|$msgnum}[, [$fh]])"`, `articlefh([{$msgid|$msgnum}])`, `bodyfh([{$msgid|$msgnum}])`, `headfh([{$msgid|$msgnum}])`, `nntpstat([{$msgid|$msgnum}])`, `group([$group])`, `help()`, `"ihave($msgid[, $message])"`, `last()`, `date()`, `postok()`, `"authinfo($user, $pass)"`, `"authinfo_simple($user,` `$pass)"`, `list()`, `"newgroups($since[, $distributions])"`, `"newnews($since[, $groups[, $distributions]])"`, `next()`, `post([$message])`, `postfh()`, `slave()`, `quit()`, `can_inet6()`, `can_ssl()`

  - Extension Methods

    `newsgroups([$pattern])`, `distributions()`, `distribution_patterns()`, `subscriptions()`, `overview_fmt()`, `active_times()`, `active([$pattern])`, `xgtitle($pattern)`, `"xhdr($header,` `$message_spec)"`, `xover($message_spec)`, `xpath($message_id)`, `"xpat($header, $pattern, $message_spec)"`, `xrover($message_spec)`, `listgroup([$group])`, `reader()`

  - Unsupported

    - Definitions

    `$message_spec`, `$pattern`, Examples, `"[^]-]"`, `*bdc`, `"[0-9a-zA-Z]"`, `"a??d"`

- EXPORTS

  - KNOWN BUGS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::Netrc - OO interface to users netrc file

- SYNOPSIS

  - DESCRIPTION

  - The *.netrc* File

    machine name, default, login name, password string, account string, macdef name

  - Class Methods

    `"lookup($machine[, $login])"`

  - Object Methods

    `login()`, `password()`, `account()`, `lpa()`

- EXPORTS

  - KNOWN BUGS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::POP3 - Post Office Protocol 3 Client class (RFC1939)

- SYNOPSIS

  - DESCRIPTION

  - Class Methods

    `"new([$host][, %options])"`

  - Object Methods

    `host()`, `"auth($username, $password)"`, `user($user)`, `pass($pass)`, `"login([$user[, $pass]])"`, `starttls(%sslargs)`, `"apop([$user[,` `$pass]])"`, `banner()`, `capa()`, `capabilities()`, `"top($msgnum[,` `$numlines])"`, `list([$msgnum])`, `"get($msgnum[, $fh])"`, `getfh($msgnum)`, `last()`, `popstat()`, `ping($user)`, `uidl([$msgnum])`, `delete($msgnum)`, `reset()`, `quit()`, `can_inet6()`, `can_ssl()`

  - Notes

    - EXPORTS

  - KNOWN BUGS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::Ping - check a remote host for reachability

- SYNOPSIS

  - DESCRIPTION

  - Functions

    Net::Ping-\>new(\[proto, timeout, bytes, device, tos, ttl, family,	   \
     	   host, port, bind, gateway, retrans, pingstring,		   \
          source\_verify econnrefused dontfrag		       IPV6\_USE\_MIN\_MTU IPV6\_RECVPATHMTU\]) , `$p`-\>ping($host \[, `$timeout` \[, `$family`\]\]); , `$p`-\>source\_verify( { 0 \| 1 } ); , `$p`-\>service\_check( { 0 \| 1 } ); , `$p`-\>tcp\_service\_check( { 0 \| 1 } ); , `$p`-\>hires( { 0 \| 1 } ); , `$p`-\>time , `$p`-\>socket\_blocking\_mode( `$fh`, `$mode` ); , `$p`-\>IPV6\_USE\_MIN\_MTU , `$p`-\>IPV6\_RECVPATHMTU , `$p`-\>IPV6\_HOPLIMIT , `$p`-\>IPV6\_REACHCONF *NYI* , `$p`-\>bind($local\_addr); , `$p`-\>message\_type(\[$ping\_type\]); , `$p`-\>open($host); , `$p`-\>ack( \[ `$host` \] ); , `$p`-\>nack( `$failed_ack_host` ); , `$p`-\>ack\_unfork($host) , `$p`-\>ping\_icmp(\[$host, `$timeout`, `$family`\]) , `$p`-\>ping\_icmpv6(\[$host, `$timeout`, `$family`\]) , `$p`-\>ping\_stream(\[$host, `$timeout`, `$family`\]) , `$p`-\>ping\_syn(\[$host, `$ip`, `$start_time`, `$stop_time`\]) , `$p`-\>ping\_syn\_fork(\[$host, `$timeout`, `$family`\]) , `$p`-\>ping\_tcp(\[$host, `$timeout`, `$family`\]) , `$p`-\>ping\_udp(\[$host, `$timeout`, `$family`\]) , `$p`-\>ping\_external(\[$host, `$timeout`, `$family`\]) , `$p`-\>tcp\_connect(\[$ip, `$timeout`\]) , `$p`-\>tcp\_echo(\[$ip, `$timeout`, `$pingstring`\]) , `$p`-\>**close()**; , `$p`-\>port\_number(\[$port\_number\]) , `$p`-\>mselect , `$p`-\>ntop , `$p`-\>checksum($msg) , `$p`-\>icmp\_result , pingecho($host \[, `$timeout`\]); , wakeonlan($mac, \[$host, \[$port\]\])

- NOTES

  - INSTALL

  - BUGS

  - AUTHORS

  - COPYRIGHT

  ### Net::SMTP - Simple Mail Transfer Protocol Client

- SYNOPSIS

  - DESCRIPTION

  - Class Methods

    `"new([$host][, %options])"`

- Object Methods

  `banner()`, `domain()`, `hello($domain)`, `host()`, `etrn($domain)`, `starttls(%sslargs)`, `"auth($username, $password)"`, `auth($sasl)`, `"mail($address[, %options])"`, `send($address)`, `send_or_mail($address)`, `send_and_mail($address)`, `reset()`, `"recipient($address[, $address[, ...]][, %options])"`, `"to($address[,` `$address[, ...]])"`, `"cc($address[, $address[, ...]])"`, `"bcc($address[,` `$address[, ...]])"`, `data([$data])`, `bdat($data)`, `bdatlast($data)`, `expand($address)`, `verify($address)`, `help([$subject])`, `quit()`, `can_inet6()`, `can_ssl()`

  - Addresses

    - EXAMPLES

  - EXPORTS

  - KNOWN BUGS

  - SEE ALSO

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::Time - time and daytime network client interface

- SYNOPSIS

  - DESCRIPTION

  - Functions

    `"inet_time([$host[, $protocol[, $timeout]]])"`, `"inet_daytime([$host[,` `$protocol[, $timeout]]])"`

- EXPORTS

  Default Exports, Optional Exports, Export Tags

- KNOWN BUGS

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Net::hostent - by-name interface to Perl's built-in gethost\*() functions

- SYNOPSIS

  - DESCRIPTION

  - EXAMPLES

  - NOTE

  - AUTHOR

  ### Net::libnetFAQ, libnetFAQ - libnet Frequently Asked Questions

- DESCRIPTION

  - Where to get this document

    - How to contribute to this document

    - Author and Copyright Information

  - Disclaimer

    - Obtaining and installing libnet

  - What is libnet ?

    - Which version of perl do I need ?

    - What other modules do I need ?

    - What machines support libnet ?

    - Where can I get the latest libnet release

    - Using Net::FTP

  - How do I download files from an FTP server ?

    - How do I transfer files in binary mode ?

    - How can I get the size of a file on a remote FTP server ?

    - How can I get the modification time of a file on a remote FTP server ?

    - How can I change the permissions of a file on a remote server ?

    - Can I do a reget operation like the ftp command ?

    - How do I get a directory listing from an FTP server ?

    - Changing directory to "" does not fail ?

    - I am behind a SOCKS firewall, but the Firewall option does not work ?

    - I am behind an FTP proxy firewall, but cannot access machines outside ?

    - My ftp proxy firewall does not listen on port 21

    - Is it possible to change the file permissions of a file on an FTP server ?

    - I have seen scripts call a method message, but cannot find it documented ?

    - Why does Net::FTP not implement mput and mget methods

    - Using Net::SMTP

  - Why can't the part of an Email address after the @ be used as the hostname ?

    - Why does Net::SMTP not do DNS MX lookups ?

    - The verify method always returns true ?

    - Debugging scripts

  - How can I debug my scripts that use Net::\* modules ?

    - AUTHOR AND COPYRIGHT

  ### Net::netent - by-name interface to Perl's built-in getnet\*() functions

- SYNOPSIS

  - DESCRIPTION

  - EXAMPLES

  - NOTE

  - AUTHOR

  ### Net::protoent - by-name interface to Perl's built-in getproto\*() functions

- SYNOPSIS

  - DESCRIPTION

  - NOTE

  - AUTHOR

  ### Net::servent - by-name interface to Perl's built-in getserv\*() functions

- SYNOPSIS

  - DESCRIPTION

  - EXAMPLES

  - NOTE

  - AUTHOR

  ### O - Generic interface to Perl Compiler backends

- SYNOPSIS

  - DESCRIPTION

  - CONVENTIONS

  - IMPLEMENTATION

  - BUGS

  - AUTHOR

  ### ODBM\_File - Tied access to odbm files

- SYNOPSIS

  - DESCRIPTION

  `"O_RDONLY"`, `"O_WRONLY"`, `"O_RDWR"`

- DIAGNOSTICS

  - "odbm store returned -1, errno 22, key "..." at ..."

    - SECURITY AND PORTABILITY

  - BUGS AND WARNINGS

  ### Opcode - Disable named opcodes when compiling perl code

- SYNOPSIS

  - DESCRIPTION

  - NOTE

  - WARNING

  - Operator Names and Operator Lists

  an operator name (opname), an operator tag name (optag), a negated opname or optag, an operator set (opset)

- Opcode Functions

  opcodes, opset (OP, ...), opset\_to\_ops (OPSET), opset\_to\_hex (OPSET), full\_opset, empty\_opset, invert\_opset (OPSET), verify\_opset (OPSET, ...), define\_optag (OPTAG, OPSET), opmask\_add (OPSET), opmask, opdesc (OP, ...), opdump (PAT)

- Manipulating Opsets

  - TO DO (maybe)

  - Predefined Opcode Tags

  :base\_core, :base\_mem, :base\_loop, :base\_io, :base\_orig, :base\_math, :base\_thread, :default, :filesys\_read, :sys\_db, :browse, :filesys\_open, :filesys\_write, :subprocess, :ownprocess, :others, :load, :still\_to\_be\_decided, :dangerous

- SEE ALSO

  - AUTHORS

  ### POSIX - Perl interface to IEEE Std 1003.1

- SYNOPSIS

  - DESCRIPTION

  - CAVEATS

  - FUNCTIONS

  `"_exit"`, `"abort"`, `"abs"`, `"access"`, `"acos"`, `"acosh"`, `"alarm"`, `"asctime"`, `"asin"`, `"asinh"`, `"assert"`, `"atan"`, `"atanh"`, `"atan2"`, `"atexit"`, `"atof"`, `"atoi"`, `"atol"`, `"bsearch"`, `"calloc"`, `"cbrt"`, `"ceil"`, `"chdir"`, `"chmod"`, `"chown"`, `"clearerr"`, `"clock"`, `"close"`, `"closedir"`, `"cos"`, `"cosh"`, `"copysign"`, `"creat"`, `"ctermid"`, `"ctime"`, `"cuserid"` \[POSIX.1-1988\], `"difftime"`, `"div"`, `"dup"`, `"dup2"`, `"erf"`, `"erfc"`, `"errno"`, `"execl"`, `"execle"`, `"execlp"`, `"execv"`, `"execve"`, `"execvp"`, `"exit"`, `"exp"`, `"expm1"`, `"fabs"`, `"fcntl"`, `"fdopen"`, `"feof"`, `"ferror"`, `"fflush"`, `"fgetc"`, `"fgetpos"`, `"fgets"`, `"fileno"`, `"floor"`, `"fdim"`, `"fegetround"`, `"fesetround"`, `"fma"`, `"fmax"`, `"fmin"`, `"fmod"`, `"fopen"`, `"fork"`, `"fpathconf"`, `"fpclassify"`, `"fprintf"`, `"fputc"`, `"fputs"`, `"fread"`, `"free"`, `"freopen"`, `"frexp"`, `"fscanf"`, `"fseek"`, `"fsetpos"`, `"fstat"`, `"fsync"`, `"ftell"`, `"fwrite"`, `"getc"`, `"getchar"`, `"getcwd"`, `"getegid"`, `"getenv"`, `"geteuid"`, `"getgid"`, `"getgrgid"`, `"getgrnam"`, `"getgroups"`, `"getlogin"`, `"getpayload"`, `"getpgrp"`, `"getpid"`, `"getppid"`, `"getpwnam"`, `"getpwuid"`, `"gets"`, `"getuid"`, `"gmtime"`, `"hypot"`, `"ilogb"`, `"Inf"`, `"isalnum"`, `"isalpha"`, `"isatty"`, `"iscntrl"`, `"isdigit"`, `"isfinite"`, `"isgraph"`, `"isgreater"`, `"isinf"`, `"islower"`, `"isnan"`, `"isnormal"`, `"isprint"`, `"ispunct"`, `"issignaling"`, `"isspace"`, `"isupper"`, `"isxdigit"`, `"j0"`, `"j1"`, `"jn"`, `"y0"`, `"y1"`, `"yn"`, `"kill"`, `"labs"`, `"lchown"`, `"ldexp"`, `"ldiv"`, `"lgamma"`, `"log1p"`, `"log2"`, `"logb"`, `"link"`, `"localeconv"`, `"localtime"`, `"log"`, `"log10"`, `"longjmp"`, `"lseek"`, `"lrint"`, `"lround"`, `"malloc"`, `"mblen"`, `"mbtowc"`, `"memchr"`, `"memcmp"`, `"memcpy"`, `"memmove"`, `"memset"`, `"mkdir"`, `"mkfifo"`, `"mktime"`, `"modf"`, `"NaN"`, `"nan"`, `"nearbyint"`, `"nextafter"`, `"nexttoward"`, `"nice"`, `"offsetof"`, `"open"`, `"opendir"`, `"pathconf"`, `"pause"`, `"perror"`, `"pipe"`, `"pow"`, `"printf"`, `"putc"`, `"putchar"`, `"puts"`, `"qsort"`, `"raise"`, `"rand"`, `"read"`, `"readdir"`, `"realloc"`, `"remainder"`, `"remove"`, `"remquo"`, `"rename"`, `"rewind"`, `"rewinddir"`, `"rint"`, `"rmdir"`, `"round"`, `"scalbn"`, `"scanf"`, `"setgid"`, `"setjmp"`, `"setlocale"`, `"setpayload"`, `"setpayloadsig"`, `"setpgid"`, `"setsid"`, `"setuid"`, `"sigaction"`, `"siglongjmp"`, `"signbit"`, `"sigpending"`, `"sigprocmask"`, `"sigsetjmp"`, `"sigsuspend"`, `"sin"`, `"sinh"`, `"sleep"`, `"sprintf"`, `"sqrt"`, `"srand"`, `"sscanf"`, `"stat"`, `"strcat"`, `"strchr"`, `"strcmp"`, `"strcoll"`, `"strcpy"`, `"strcspn"`, `"strerror"`, `"strftime"`, `"strlen"`, `"strncat"`, `"strncmp"`, `"strncpy"`, `"strpbrk"`, `"strrchr"`, `"strspn"`, `"strstr"`, `"strtod"`, `"strtok"`, `"strtol"`, `"strtold"`, `"strtoul"`, `"strxfrm"`, `"sysconf"`, `"system"`, `"tan"`, `"tanh"`, `"tcdrain"`, `"tcflow"`, `"tcflush"`, `"tcgetpgrp"`, `"tcsendbreak"`, `"tcsetpgrp"`, `"tgamma"`, `"time"`, `"times"`, `"tmpfile"`, `"tmpnam"`, `"tolower"`, `"toupper"`, `"trunc"`, `"ttyname"`, `"tzname"`, `"tzset"`, `"umask"`, `"uname"`, `"ungetc"`, `"unlink"`, `"utime"`, `"vfprintf"`, `"vprintf"`, `"vsprintf"`, `"wait"`, `"waitpid"`, `"wctomb"`, `"write"`

- CLASSES

  - "POSIX::SigAction"

    `"new"`, `"handler"`, `"mask"`, `"flags"`, `"safe"`

  - "POSIX::SigRt"

    `%SIGRT`, `"SIGRTMIN"`, `"SIGRTMAX"`

  - "POSIX::SigSet"

    `"new"`, `"addset"`, `"delset"`, `"emptyset"`, `"fillset"`, `"ismember"`

  - "POSIX::Termios"

    `"new"`, `"getattr"`, `"getcc"`, `"getcflag"`, `"getiflag"`, `"getispeed"`, `"getlflag"`, `"getoflag"`, `"getospeed"`, `"setattr"`, `"setcc"`, `"setcflag"`, `"setiflag"`, `"setispeed"`, `"setlflag"`, `"setoflag"`, `"setospeed"`, Baud rate values, Terminal interface values, `"c_cc"` field values, `"c_cflag"` field values, `"c_iflag"` field values, `"c_lflag"` field values, `"c_oflag"` field values

- PATHNAME CONSTANTS

  Constants

- POSIX CONSTANTS

  Constants

- RESOURCE CONSTANTS

  Constants

- SYSTEM CONFIGURATION

  Constants

- ERRNO

  Constants

- FCNTL

  Constants

- FLOAT

  Constants

- FLOATING-POINT ENVIRONMENT

  Constants

- LIMITS

  Constants

- LOCALE

  Constants

- MATH

  Constants

- SIGNAL

  Constants

- STAT

  Constants, Macros

- STDLIB

  Constants

- STDIO

  Constants

- TIME

  Constants

- UNISTD

  Constants

- WAIT

  Constants, `"WNOHANG"`, `"WUNTRACED"`, Macros, `"WIFEXITED"`, `"WEXITSTATUS"`, `"WIFSIGNALED"`, `"WTERMSIG"`, `"WIFSTOPPED"`, `"WSTOPSIG"`

- WINSOCK

  Constants

### Params::Check - A generic input parsing/checking mechanism.

- SYNOPSIS

  - DESCRIPTION

  - Template

  default, required, strict\_type, defined, no\_override, store, allow

- Functions

  - check( \\%tmpl, \\%args, \[$verbose\] );

    Template, Arguments, Verbose

- allow( $test\_me, \\@criteria );

  string, regexp, subroutine, array ref

- **last\_error()**

  - Global Variables

  - $Params::Check::VERBOSE

    - $Params::Check::STRICT\_TYPE

    - $Params::Check::ALLOW\_UNKNOWN

    - $Params::Check::STRIP\_LEADING\_DASHES

    - $Params::Check::NO\_DUPLICATES

    - $Params::Check::PRESERVE\_CASE

    - $Params::Check::ONLY\_ALLOW\_DEFINED

    - $Params::Check::SANITY\_CHECK\_TEMPLATE

    - $Params::Check::WARNINGS\_FATAL

    - $Params::Check::CALLER\_DEPTH

    - Acknowledgements

  - BUG REPORTS

  - AUTHOR

  - COPYRIGHT

  ### Parse::CPAN::Meta - Parse META.yml and META.json CPAN metadata files

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - load\_file

    - load\_yaml\_string

    - load\_json\_string

    - load\_string

    - yaml\_backend

    - json\_backend

    - json\_decoder

    - FUNCTIONS

  - Load

    - LoadFile

    - ENVIRONMENT

  - CPAN\_META\_JSON\_DECODER

    - CPAN\_META\_JSON\_BACKEND

    - PERL\_JSON\_BACKEND

    - PERL\_YAML\_BACKEND

    - AUTHORS

  - COPYRIGHT AND LICENSE

  ### Perl::OSType - Map Perl operating system names to generic types

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - USAGE

  - **os\_type()**

    - **is\_os\_type()**

    - SEE ALSO

  - SUPPORT

  - Bugs / Feature Requests

    - Source Code

    - AUTHOR

  - CONTRIBUTORS

  - COPYRIGHT AND LICENSE

  ### PerlIO - On demand loader for PerlIO layers and root of PerlIO::\* name space

- SYNOPSIS

  - DESCRIPTION

  - Layers

    :unix, :stdio, :perlio, :crlf, :utf8, :bytes, :raw, :pop

  - Custom Layers

    :encoding, :mmap, :via, :scalar

  - Alternatives to raw

    - Defaults and how to override them

    - Querying the layers of filehandles

    - AUTHOR

  - SEE ALSO

  ### PerlIO::encoding - encoding layer

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  ### PerlIO::mmap - Memory mapped IO

- SYNOPSIS

  - DESCRIPTION

  - IMPLEMENTATION NOTE

  ### PerlIO::scalar - in-memory IO, scalar IO

- SYNOPSIS

  - DESCRIPTION

  - IMPLEMENTATION NOTE

  ### PerlIO::via - Helper class for PerlIO layers implemented in perl

- SYNOPSIS

  - DESCRIPTION

  - EXPECTED METHODS

  `$class`-\>PUSHED(\[$mode,\[$fh\]\]), `$obj`-\>POPPED(\[$fh\]), `$obj`-\>UTF8($belowFlag,\[$fh\]), `$obj`-\>OPEN($path,$mode,\[$fh\]), `$obj`-\>BINMODE(\[$fh\]), `$obj`-\>FDOPEN($fd,\[$fh\]), `$obj`-\>SYSOPEN($path,$imode,$perm,\[$fh\]), `$obj`-\>FILENO($fh), `$obj`-\>READ($buffer,$len,$fh), `$obj`-\>WRITE($buffer,$fh), `$obj`-\>FILL($fh), `$obj`-\>CLOSE($fh), `$obj`-\>SEEK($posn,$whence,$fh), `$obj`-\>TELL($fh), `$obj`-\>UNREAD($buffer,$fh), `$obj`-\>FLUSH($fh), `$obj`-\>SETLINEBUF($fh), `$obj`-\>CLEARERR($fh), `$obj`-\>ERROR($fh), `$obj`-\>EOF($fh)

- EXAMPLES

  - Example - a Hexadecimal Handle

    ### PerlIO::via::QuotedPrint - PerlIO layer for quoted-printable strings

- SYNOPSIS

  - DESCRIPTION

  - EXPORTS

  - KNOWN BUGS

  - FEEDBACK

  - SEE ALSO

  - ACKNOWLEDGEMENTS

  - AVAILABILITY

  - INSTALLATION

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Pod::Checker - check pod documents for syntax errors

- SYNOPSIS

  - OPTIONS/ARGUMENTS

  - **podchecker()**

    **-warnings** =\> *val*, **-quiet** =\> *val*

- DESCRIPTION

  - DIAGNOSTICS

  - Errors

    empty =headn, =over on line *N* without closing =back, You forgot a '=back' before '=head*N*', =over is the last thing in the document?!, '=item' outside of any '=over', =back without =over, Can't have a 0 in =over *N*, =over should be: '=over' or '=over positive\_number', =begin *TARGET* without matching =end *TARGET*, =begin without a target?, =end *TARGET* without matching =begin, '=end' without a target?, '=end *TARGET*' is invalid, =end *CONTENT* doesn't match =begin *TARGET*, =for without a target?, unresolved internal link *NAME*, Unknown directive: *CMD*, Deleting unknown formatting code *SEQ*, Unterminated *SEQ*\<\> sequence, An E\<...\> surrounding strange content, An empty E\<\>, An empty `"L<>"`, An empty X\<\>, Spurious text after =pod / =cut, =back doesn't take any parameters, but you said =back *ARGUMENT*, =pod directives shouldn't be over one line long!  Ignoring all *N* lines of content, =cut found outside a pod block, Invalid =encoding syntax: *CONTENT*

  - Warnings

    nested commands *CMD*\<...*CMD*\<...\>...\>, multiple occurrences (*N*) of link target *name*, line containing nothing but whitespace in paragraph, =item has no contents, You can't have =items (as at line *N*) unless the first thing after the =over is an =item, Expected '=item *EXPECTED VALUE*', Expected '=item \*', Possible =item type mismatch: '*x*' found leading a supposed definition =item, You have '=item x' instead of the expected '=item *N*', Unknown E content in E\<*CONTENT*\>, empty =over/=back block, empty section in previous paragraph, Verbatim paragraph in NAME section, =head*n* without preceding higher level, A non-empty Z\<\>

  - Hyperlinks

    ignoring leading/trailing whitespace in link, alternative text/node '%s' contains non-escaped \| or /

- RETURN VALUE

  - EXAMPLES

  - SCRIPTS

  - INTERFACE

  end\_B, end\_C, end\_Document, end\_F, end\_I, end\_L, end\_Para, end\_S, end\_X, end\_fcode, end\_for, end\_head, end\_head1, end\_head2, end\_head3, end\_head4, end\_item, end\_item\_bullet, end\_item\_number, end\_item\_text, handle\_pod\_and\_cut, handle\_text, handle\_whiteline, hyperlink, scream, start\_B, start\_C, start\_Data, start\_F, start\_I, start\_L, start\_Para, start\_S, start\_Verbatim, start\_X, start\_fcode, start\_for, start\_head, start\_head1, start\_head2, start\_head3, start\_head4, start\_item\_bullet, start\_item\_number, start\_item\_text, start\_over, start\_over\_block, start\_over\_bullet, start\_over\_empty, start\_over\_number, start\_over\_text, whine

`"Pod::Checker->new( %options )"`

`"$checker->poderror( @args )"`, `"$checker->poderror( {%opts},` `@args )"`

`"$checker->num_errors()"`

`"$checker->num_warnings()"`

`"$checker->name()"`

`"$checker->node()"`

`"$checker->idx()"`

`"$checker->hyperlinks()"`

**line()**

**type()**

**page()**

**node()**

- AUTHOR

  ### Pod::Escapes - for resolving Pod E\<...\> sequences

- SYNOPSIS

  - DESCRIPTION

  - GOODIES

  e2char($e\_content), e2charnum($e\_content), `$Name2character`{*name*}, `$Name2character_number`{*name*}, `$Latin1Code_to_fallback`{*integer*}, `$Latin1Char_to_fallback`{*character*}, `$Code2USASCII`{*integer*}

- CAVEATS

  - SEE ALSO

  - REPOSITORY

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Html - module to convert pod files to HTML

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  - pod2html

    backlink, cachedir, css, flush, header, help, htmldir, htmlroot, index, infile, outfile, poderrors, podpath, podroot, quiet, recurse, title, verbose

  - Formerly Exported Auxiliary Functions

    `htmlify()` (by default), `anchorify()` (upon request), `relativize_url()` (upon request)

- ENVIRONMENT

  - AUTHOR

  - SEE ALSO

  - COPYRIGHT

  ### Pod::Html::Util - helper functions for Pod-Html

- SUBROUTINES

  - process\_command\_line()

  - usage()

  - unixify()

  - relativize\_url()

  - html\_escape()

  - htmlify()

  - anchorify()

  - trim\_leading\_whitespace()

  ### Pod::Man - Convert POD data to formatted \*roff input

- SYNOPSIS

  - DESCRIPTION

  - CLASS METHODS

  new(ARGS), center, date, encoding, errors, fixed, fixedbold, fixeditalic, fixedbolditalic, guesswork, functions, manref, quoting, variables, language, lquote, rquote, name, nourls, quotes, release, section, stderr, utf8

- INSTANCE METHODS

  output\_fh(FH), output\_string(REF), parse\_file(PATH), parse\_from\_file(INPUT, OUTPUT), parse\_from\_filehandle(FH, OUTPUT), parse\_lines(LINES\[, ...\[, undef\]\]), parse\_string\_document(INPUT)

- ENCODING

  - History

    - Testing results

    \[1\], \[2\], \[3\]

- DIAGNOSTICS

  roff font should be 1 or 2 chars, not "%s", Invalid errors setting "%s", Invalid quote specification "%s", POD document had syntax errors

- ENVIRONMENT

  PERL\_CORE, POD\_MAN\_DATE, SOURCE\_DATE\_EPOCH

- COMPATIBILITY

  - BUGS

  - CAVEATS

  - Sentence spacing

    - Hyphens

    - AUTHOR

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  ### Pod::ParseLink - Parse an L\<\> formatting code in POD text

- SYNOPSIS

  - DESCRIPTION

  - AUTHOR

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  ### Pod::Perldoc - Look up Perl documentation in Pod format.

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::BaseTo - Base for Pod::Perldoc formatters

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::GetOptsOO - Customized option parser for Pod::Perldoc

- SYNOPSIS

  - DESCRIPTION

  Call Pod::Perldoc::GetOptsOO::getopts($object, \\@ARGV, `$truth`), Given -n, if there's a opt\_n\_with, it'll call `$object`-\>opt\_n\_with( ARGUMENT )    (e.g., "-n foo" =\> `$object`-\>opt\_n\_with('foo').	Ditto "-nfoo"), Otherwise (given -n) if there's an opt\_n, we'll call it `$object`-\>opt\_n($truth)    (Truth defaults to 1), Otherwise we try calling `$object`-\>handle\_unknown\_option('n')    (and we increment the error count by the return value of it), If there's no handle\_unknown\_option, then we just warn, and then increment    the error counter

- SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToANSI - render Pod with ANSI color escapes

- SYNOPSIS

  - DESCRIPTION

  - CAVEAT

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToChecker - let Perldoc check Pod for errors

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToMan - let Perldoc render Pod as man pages

- SYNOPSIS

  - DESCRIPTION

  - CAVEAT

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToNroff - let Perldoc convert Pod to nroff

- SYNOPSIS

  - DESCRIPTION

  - CAVEAT

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToPod - let Perldoc render Pod as ... Pod!

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToRtf - let Perldoc render Pod as RTF

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToTerm - render Pod with terminal escapes

- SYNOPSIS

  - DESCRIPTION

  - PAGER FORMATTING

  - CAVEAT

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToText - let Perldoc render Pod as plaintext

- SYNOPSIS

  - DESCRIPTION

  - CAVEAT

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Perldoc::ToTk - let Perldoc use Tk::Pod to render Pod

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - AUTHOR

  ### Pod::Perldoc::ToXml - let Perldoc render Pod as XML

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  ### Pod::Simple - framework for parsing Pod

- SYNOPSIS

  - DESCRIPTION

  - MAIN METHODS

  `"$parser = `*SomeClass*`->new();"`, `"$parser->output_fh( *OUT );"`, `"$parser->output_string( \$somestring );"`, `"$parser->parse_file(` *$some\_filename*` );"`, `"$parser->parse_file( *INPUT_FH );"`, `"$parser->parse_string_document( `*$all\_content*` );"`, `"$parser->parse_lines( `*...@lines...*`, undef );"`, `"$parser->content_seen"`, `"`*SomeClass*`->filter( `*$filename*` );"`, `"`*SomeClass*`->filter( `*\*INPUT\_FH*` );"`, `"`*SomeClass*`->filter(` *\\$document\_content*` );"`

- SECONDARY METHODS

  `"$parser->parse_characters( `*SOMEVALUE*` )"`, `"$parser->no_whining(` *SOMEVALUE*` )"`, `"$parser->no_errata_section( `*SOMEVALUE*` )"`, `"$parser->complain_stderr( `*SOMEVALUE*` )"`, `"$parser->source_filename"`, `"$parser->doc_has_started"`, `"$parser->source_dead"`, `"$parser->strip_verbatim_indent( `*SOMEVALUE*` )"`, `"$parser->expand_verbatim_tabs( `*n*` )"`

- TERTIARY METHODS

  `"$parser->abandon_output_fh()"`, `"$parser->abandon_output_string()"`, `"$parser->accept_code( @codes )"`, `"$parser->accept_codes(` `@codes )"`, `"$parser->accept_directive_as_data(` `@directives )"`, `"$parser->accept_directive_as_processed( @directives )"`, `"$parser->accept_directive_as_verbatim( @directives )"`, `"$parser->accept_target( @targets )"`, `"$parser->accept_target_as_text( @targets )"`, `"$parser->accept_targets( @targets )"`, `"$parser->accept_targets_as_text( @targets )"`, `"$parser->any_errata_seen()"`, `"$parser->errata_seen()"`, `"$parser->detected_encoding()"`, `"$parser->encoding()"`, `"$parser->parse_from_file( $source,` `$to )"`, `"$parser->scream( @error_messages )"`, `"$parser->unaccept_code( @codes )"`, `"$parser->unaccept_codes( @codes )"`, `"$parser->unaccept_directive( @directives )"`, `"$parser->unaccept_directives( @directives )"`, `"$parser->unaccept_target( @targets )"`, `"$parser->unaccept_targets( @targets )"`, `"$parser->version_report()"`, `"$parser->whine(` `@error_messages )"`

- ENCODING

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`, Karl Williamson `"khw@cpan.org"`, Gabor Szabo `"szabgab@gmail.com"`, Shawn H Corey  `"SHCOREY at cpan.org"`

### Pod::Simple::Checker -- check the Pod syntax of a document

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::Debug -- put Pod::Simple into trace/debug mode

- SYNOPSIS

  - DESCRIPTION

  - CAVEATS

  - GUTS

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::DumpAsText -- dump Pod-parsing events as text

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::DumpAsXML -- turn Pod into XML

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::HTML - convert Pod to HTML

- SYNOPSIS

  - DESCRIPTION

  - CALLING FROM THE COMMAND LINE

  - CALLING FROM PERL

  - Minimal code

    - More detailed example

    - METHODS

  - html\_css

    - html\_javascript

    - title\_prefix

    - title\_postfix

    - html\_header\_before\_title

    - top\_anchor

    - html\_h\_level

    - index

    - html\_header\_after\_title

    - html\_footer

    - SUBCLASSING

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - ACKNOWLEDGEMENTS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::HTMLBatch - convert several Pod files to several HTML files

- SYNOPSIS

  - DESCRIPTION

  - FROM THE COMMAND LINE

    - MAIN METHODS

  `$batchconv` = Pod::Simple::HTMLBatch-\>new;, `$batchconv`-\>batch\_convert( *indirs*, *outdir* );, `$batchconv`-\>batch\_convert( undef    , ...);, `$batchconv`-\>batch\_convert( q{@INC}, ...);, `$batchconv`-\>batch\_convert( \\@dirs , ...);, `$batchconv`-\>batch\_convert( "somedir" , ...);, `$batchconv`-\>batch\_convert( 'somedir:someother:also' , ...);, `$batchconv`-\>batch\_convert( ... , undef );, `$batchconv`-\>batch\_convert( ... , 'somedir' );

  - ACCESSOR METHODS

    `$batchconv`-\>verbose( *nonnegative\_integer* );, `$batchconv`-\>index( *true-or-false* );, `$batchconv`-\>contents\_file( *filename* );, `$batchconv`-\>contents\_page\_start( *HTML\_string* );, `$batchconv`-\>contents\_page\_end( *HTML\_string* );, `$batchconv`-\>add\_css( `$url` );, `$batchconv`-\>add\_javascript( `$url` );, `$batchconv`-\>css\_flurry( *true-or-false* );, `$batchconv`-\>javascript\_flurry( *true-or-false* );, `$batchconv`-\>no\_contents\_links( *true-or-false* );, `$batchconv`-\>html\_render\_class( *classname* );, `$batchconv`-\>search\_class( *classname* );

- NOTES ON CUSTOMIZATION

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::JustPod -- just the Pod, the whole Pod, and nothing but the Pod

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::LinkSection -- represent "section" attributes of L codes

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::Methody -- turn Pod::Simple events into method calls

- SYNOPSIS

  - DESCRIPTION

  - METHOD CALLING

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::PullParser -- a pull-parser interface to parsing Pod

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  my `$token` = `$parser`-\>get\_token, `$parser`-\>unget\_token( `$token` ), `$parser`-\>unget\_token( `$token1`, `$token2`, ... ), `$parser`-\>set\_source( `$filename` ), `$parser`-\>set\_source( `$filehandle_object` ), `$parser`-\>set\_source( \\$document\_source ), `$parser`-\>set\_source( \\@document\_lines ), `$parser`-\>parse\_file(...), `$parser`-\>parse\_string\_document(...), `$parser`-\>filter(...), `$parser`-\>parse\_from\_file(...), my `$title_string` = `$parser`-\>get\_title, my `$title_string` = `$parser`-\>get\_short\_title, `$author_name`	 = `$parser`-\>get\_author, `$description_name` = `$parser`-\>get\_description, `$version_block` = `$parser`-\>get\_version

- NOTE

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::PullParserEndToken -- end-tokens from Pod::Simple::PullParser

- SYNOPSIS

  - DESCRIPTION

  `$token`-\>tagname, `$token`-\>tagname(*somestring*), `$token`-\>tag(...), `$token`-\>is\_tag(*somestring*) or `$token`-\>is\_tagname(*somestring*)

- SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::PullParserStartToken -- start-tokens from Pod::Simple::PullParser

- SYNOPSIS

  - DESCRIPTION

  `$token`-\>tagname, `$token`-\>tagname(*somestring*), `$token`-\>tag(...), `$token`-\>is\_tag(*somestring*) or `$token`-\>is\_tagname(*somestring*), `$token`-\>attr(*attrname*), `$token`-\>attr(*attrname*, *newvalue*), `$token`-\>attr\_hash

- SEE ALSO

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::PullParserTextToken -- text-tokens from Pod::Simple::PullParser

- SYNOPSIS

  - DESCRIPTION

  `$token`-\>text, `$token`-\>text(*somestring*), `$token`-\>**text\_r()**

- SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::PullParserToken -- tokens from Pod::Simple::PullParser

- SYNOPSIS

  - DESCRIPTION

  `$token`-\>type, `$token`-\>is\_start, `$token`-\>is\_text, `$token`-\>is\_end, `$token`-\>dump

- SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::RTF -- format Pod as RTF

- SYNOPSIS

  - DESCRIPTION

  - FORMAT CONTROL ATTRIBUTES

  `$parser`-\>head1\_halfpoint\_size( *halfpoint\_integer* );, `$parser`-\>head2\_halfpoint\_size( *halfpoint\_integer* );, `$parser`-\>head3\_halfpoint\_size( *halfpoint\_integer* );, `$parser`-\>head4\_halfpoint\_size( *halfpoint\_integer* );, `$parser`-\>codeblock\_halfpoint\_size( *halfpoint\_integer* );, `$parser`-\>header\_halfpoint\_size( *halfpoint\_integer* );, `$parser`-\>normal\_halfpoint\_size( *halfpoint\_integer* );, `$parser`-\>no\_proofing\_exemptions( *true\_or\_false* );, `$parser`-\>doc\_lang( *microsoft\_decimal\_language\_code* )

- SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::Search - find POD documents in directory trees

- SYNOPSIS

  - DESCRIPTION

  - CONSTRUCTOR

  - ACCESSORS

  `$search`-\>inc( *true-or-false* );, `$search`-\>verbose( *nonnegative-number* );, `$search`-\>limit\_glob( *some-glob-string* );, `$search`-\>callback( *\\&some\_routine* );, `$search`-\>laborious( *true-or-false* );, `$search`-\>recurse( *true-or-false* );, `$search`-\>shadows( *true-or-false* );, `$search`-\>is\_case\_insensitive( *true-or-false* );, `$search`-\>limit\_re( *some-regxp* );, `$search`-\>dir\_prefix( *some-string-value* );, `$search`-\>progress( *some-progress-object* );, `$name2path` = `$self`-\>name2path;, `$path2name` = `$self`-\>path2name;

- MAIN SEARCH METHODS

  - "$search-\>survey( @directories )"

    `"name2path"`, `"path2name"`

  - "$search-\>simplify\_name( $str )"

    - "$search-\>find( $pod )"

    - "$search-\>find( $pod, @search\_dirs )"

    - "$self-\>contains\_pod( $file )"

    - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::SimpleTree -- parse Pod into a simple parse tree

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Tree Contents

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::Subclassing -- write a formatter as a Pod::Simple subclass

- SYNOPSIS

  - DESCRIPTION

  Pod::Simple, Pod::Simple::Methody, Pod::Simple::PullParser, Pod::Simple::SimpleTree

- Events

  `"$parser->_handle_element_start( `*element\_name*`, `*attr\_hashref*` )"`, `"$parser->_handle_element_end( `*element\_name*`  )"`, `"$parser->_handle_text(	`*text\_string*`	)"`, events with an element\_name of Document, events with an element\_name of Para, events with an element\_name of B, C, F, or I, events with an element\_name of S, events with an element\_name of X, events with an element\_name of L, events with an element\_name of E or Z, events with an element\_name of Verbatim, events with an element\_name of head1 .. head4, events with an element\_name of encoding, events with an element\_name of over-bullet, events with an element\_name of over-number, events with an element\_name of over-text, events with an element\_name of over-block, events with an element\_name of over-empty, events with an element\_name of item-bullet, events with an element\_name of item-number, events with an element\_name of item-text, events with an element\_name of for, events with an element\_name of Data

- More Pod::Simple Methods

  `"$parser->accept_targets( `*SOMEVALUE*` )"`, `"$parser->accept_targets_as_text(  `*SOMEVALUE*`	)"`, `"$parser->accept_codes( `*Codename*`, `*Codename*`...  )"`, `"$parser->accept_directive_as_data( `*directive\_name*` )"`, `"$parser->accept_directive_as_verbatim( `*directive\_name*` )"`, `"$parser->accept_directive_as_processed( `*directive\_name*` )"`, `"$parser->nbsp_for_S( `*BOOLEAN*` );"`, `"$parser->version_report()"`, `"$parser->pod_para_count()"`, `"$parser->line_count()"`, `"$parser->nix_X_codes(  `*SOMEVALUE*`  )"`, `"$parser->keep_encoding_directive(  `*SOMEVALUE*`  )"`, `"$parser->merge_text(  `*SOMEVALUE*`  )"`, `"$parser->code_handler( ` *CODE\_REF*`  )"`, `"$parser->cut_handler(  `*CODE\_REF*`  )"`, `"$parser->pod_handler(  `*CODE\_REF*`  )"`, `"$parser->whiteline_handler( ` *CODE\_REF*`  )"`, `"$parser->whine( `*linenumber*`, `*complaint string*` )"`, `"$parser->scream( `*linenumber*`, `*complaint string*` )"`, `"$parser->source_dead(1)"`, `"$parser->hide_line_numbers( `*SOMEVALUE*` )"`, `"$parser->no_whining( `*SOMEVALUE*` )"`, `"$parser->no_errata_section( `*SOMEVALUE*` )"`, `"$parser->complain_stderr( `*SOMEVALUE*` )"`, `"$parser->bare_output(` *SOMEVALUE*` )"`, `"$parser->preserve_whitespace( `*SOMEVALUE*` )"`, `"$parser->parse_empty_lists( `*SOMEVALUE*` )"`

- SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::Text -- format Pod as plaintext

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::TextContent -- get the text content of Pod

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::XHTML -- format Pod as validating XHTML

- SYNOPSIS

  - DESCRIPTION

  - Minimal code

    - METHODS

  - perldoc\_url\_prefix

    - perldoc\_url\_postfix

    - man\_url\_prefix

    - man\_url\_postfix

    - title\_prefix, title\_postfix

    - html\_css

    - html\_javascript

    - html\_doctype

    - html\_charset

    - html\_header\_tags

    - html\_h\_level

    - default\_title

    - force\_title

    - html\_header, html\_footer

    - index

    - anchor\_items

    - backlink

    - SUBCLASSING

  - handle\_text

  - handle\_code

  - accept\_targets\_as\_html

  - resolve\_pod\_page\_link

  - resolve\_man\_page\_link

  - idify

  - batch\_mode\_page\_object\_init

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - ACKNOWLEDGEMENTS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Simple::XMLOutStream -- turn Pod into XML

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - ABOUT EXTENDING POD

  - SEE ALSO

  - SUPPORT

  - COPYRIGHT AND DISCLAIMERS

  - AUTHOR

  Allison Randal `"allison@perl.org"`, Hans Dieter Pearcey `"hdp@cpan.org"`, David E. Wheeler `"dwheeler@cpan.org"`

### Pod::Text - Convert POD data to formatted text

- SYNOPSIS

  - DESCRIPTION

  - Encoding

    - CLASS METHODS

  new(ARGS), alt, code, encoding, errors, guesswork, quoting, indent, loose, margin, nourls, quotes, sentence, stderr, utf8, width

- INSTANCE METHODS

  output\_fh(FH), output\_string(REF), parse\_file(PATH), parse\_from\_file(INPUT, OUTPUT), parse\_from\_filehandle(FH, OUTPUT), parse\_lines(LINES\[, ...\[, undef\]\]), parse\_string\_document(INPUT)

- FUNCTIONS

  pod2text(\[\[-a,\] \[-NNN,\]\] INPUT\[, OUTPUT\])

- DIAGNOSTICS

  Bizarre space in item, Item called without tag, Can't open `%s` for reading: `%s`, Invalid errors setting "%s", Invalid quote specification "%s", POD document had syntax errors

- COMPATIBILITY

  - AUTHOR

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  ### Pod::Text::Color - Convert POD data to formatted color ASCII text

- SYNOPSIS

  - DESCRIPTION

  - COMPATIBILITY

  - AUTHOR

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  ### Pod::Text::Overstrike - Convert POD data to formatted overstrike text

- SYNOPSIS

  - DESCRIPTION

  - BUGS

  - COMPATIBILITY

  - AUTHOR

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  ### Pod::Text::Termcap - Convert POD data to ASCII text with format escapes

- SYNOPSIS

  - DESCRIPTION

  - COMPATIBILITY

  - AUTHOR

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  ### Pod::Usage - extracts POD documentation and shows usage information

- SYNOPSIS

  - ARGUMENTS

  `"-message"` *string*, `"-msg"` *string*, `"-exitval"` *value*, `"-verbose"` *value*, `"-sections"` *spec*, `"-output"` *handle*, `"-input"` *handle*, `"-pathlist"` *string*, `"-noperldoc"`, `"-perlcmd"`, `"-perldoc"` *path-to-perldoc*, `"-perldocopt"` *string*

  - Formatting base class

    - Pass-through options

    - DESCRIPTION

  - Scripts

    - EXAMPLES

  - Recommended Use

    - CAVEATS

  - SUPPORT

  - AUTHOR

  - LICENSE

  - ACKNOWLEDGMENTS

  - SEE ALSO

  ### SDBM\_File - Tied access to sdbm files

- SYNOPSIS

  - DESCRIPTION

  - Tie

    - EXPORTS

  - DIAGNOSTICS

  - "sdbm store returned -1, errno 22, key "..." at ..."

    - SECURITY WARNING

  - BUGS AND WARNINGS

  ### Safe - Compile and execute code in restricted compartments

- SYNOPSIS

  - DESCRIPTION

  a new namespace, an operator mask

- WARNING

  - METHODS

  - permit (OP, ...)

    - permit\_only (OP, ...)

    - deny (OP, ...)

    - deny\_only (OP, ...)

    - trap (OP, ...), untrap (OP, ...)

    - share (NAME, ...)

    - share\_from (PACKAGE, ARRAYREF)

    - varglob (VARNAME)

    - reval (STRING, STRICT)

    - rdo (FILENAME)

    - root (NAMESPACE)

    - mask (MASK)

    - wrap\_code\_ref (CODEREF)

    - wrap\_code\_refs\_within (...)

    - RISKS

  Memory, CPU, Snooping, Signals, State Changes

- AUTHOR

  ### Scalar::Util - A selection of general-utility scalar subroutines

- SYNOPSIS

  - DESCRIPTION

  - Core Perl "builtin" Functions

    - FUNCTIONS FOR REFERENCES

  - blessed

    - refaddr

    - reftype

    - weaken

    - unweaken

    - isweak

    - OTHER FUNCTIONS

  - dualvar

    - isdual

    - isvstring

    - looks\_like\_number

    - openhandle

    - readonly

    - set\_prototype

    - tainted

    - DIAGNOSTICS

  Vstrings are not implemented in this version of perl

- KNOWN BUGS

  - SEE ALSO

  - COPYRIGHT

  ### Search::Dict - look - search for key in dictionary file

- SYNOPSIS

  - DESCRIPTION

  ### SelectSaver - save and restore selected file handle

- SYNOPSIS

  - DESCRIPTION

  ### SelfLoader - load functions only on demand

- SYNOPSIS

  - DESCRIPTION

  - The \_\_DATA\_\_ token

    - SelfLoader autoloading

    - Autoloading and package lexicals

    - SelfLoader and AutoLoader

    - \_\_DATA\_\_, \_\_END\_\_, and the FOOBAR::DATA filehandle

    - Classes and inherited methods

    - Multiple packages and fully qualified subroutine names

  - AUTHOR

  - COPYRIGHT AND LICENSE

  a), b)

### Socket, "Socket" - networking constants and support functions

- SYNOPSIS

  - DESCRIPTION

  - CONSTANTS

  - PF\_INET, PF\_INET6, PF\_UNIX, ...

  - AF\_INET, AF\_INET6, AF\_UNIX, ...

  - SOCK\_STREAM, SOCK\_DGRAM, SOCK\_RAW, ...

  - SOCK\_NONBLOCK. SOCK\_CLOEXEC

  - SOL\_SOCKET

  - SO\_ACCEPTCONN, SO\_BROADCAST, SO\_ERROR, ...

  - IP\_OPTIONS, IP\_TOS, IP\_TTL, ...

  - IP\_PMTUDISC\_WANT, IP\_PMTUDISC\_DONT, ...

  - IPTOS\_LOWDELAY, IPTOS\_THROUGHPUT, IPTOS\_RELIABILITY, ...

  - MSG\_BCAST, MSG\_OOB, MSG\_TRUNC, ...

  - SHUT\_RD, SHUT\_RDWR, SHUT\_WR

  - INADDR\_ANY, INADDR\_BROADCAST, INADDR\_LOOPBACK, INADDR\_NONE

  - IPPROTO\_IP, IPPROTO\_IPV6, IPPROTO\_TCP, ...

  - TCP\_CORK, TCP\_KEEPALIVE, TCP\_NODELAY, ...

  - IN6ADDR\_ANY, IN6ADDR\_LOOPBACK

  - IPV6\_ADD\_MEMBERSHIP, IPV6\_MTU, IPV6\_V6ONLY, ...

  - STRUCTURE MANIPULATORS

  - $family = sockaddr\_family $sockaddr

  - $sockaddr = pack\_sockaddr\_in $port, $ip\_address

  - ($port, $ip\_address) = unpack\_sockaddr\_in $sockaddr

  - $sockaddr = sockaddr\_in $port, $ip\_address

  - ($port, $ip\_address) = sockaddr\_in $sockaddr

  - $sockaddr = pack\_sockaddr\_in6 $port, $ip6\_address, \[$scope\_id, \[$flowinfo\]\]

  - ($port, $ip6\_address, $scope\_id, $flowinfo) = unpack\_sockaddr\_in6 $sockaddr

  - $sockaddr = sockaddr\_in6 $port, $ip6\_address, \[$scope\_id, \[$flowinfo\]\]

  - ($port, $ip6\_address, $scope\_id, $flowinfo) = sockaddr\_in6 $sockaddr

  - $sockaddr = pack\_sockaddr\_un $path

  - ($path) = unpack\_sockaddr\_un $sockaddr

  - $sockaddr = sockaddr\_un $path

  - ($path) = sockaddr\_un $sockaddr

  - $ip\_mreq = pack\_ip\_mreq $multiaddr, $interface

  - ($multiaddr, $interface) = unpack\_ip\_mreq $ip\_mreq

  - $ip\_mreq\_source = pack\_ip\_mreq\_source $multiaddr, $source, $interface

  - ($multiaddr, $source, $interface) = unpack\_ip\_mreq\_source $ip\_mreq

  - $ipv6\_mreq = pack\_ipv6\_mreq $multiaddr6, $ifindex

  - ($multiaddr6, $ifindex) = unpack\_ipv6\_mreq $ipv6\_mreq

  - FUNCTIONS

  - $ip\_address = inet\_aton $string

  - $string = inet\_ntoa $ip\_address

  - $address = inet\_pton $family, $string

  - $string = inet\_ntop $family, $address

  - ($err, @result) = getaddrinfo $host, $service, \[$hints\]

  flags =\> INT, family =\> INT, socktype =\> INT, protocol =\> INT, family =\> INT, socktype =\> INT, protocol =\> INT, addr =\> STRING, canonname =\> STRING, AI\_PASSIVE, AI\_CANONNAME, AI\_NUMERICHOST

- ($err, $hostname, $servicename) = getnameinfo $sockaddr, \[$flags, \[$xflags\]\]

  NI\_NUMERICHOST, NI\_NUMERICSERV, NI\_NAMEREQD, NI\_DGRAM, NIx\_NOHOST, NIx\_NOSERV

- **getaddrinfo()** / **getnameinfo()** ERROR CONSTANTS

  EAI\_AGAIN, EAI\_BADFLAGS, EAI\_FAMILY, EAI\_NODATA, EAI\_NONAME, EAI\_SERVICE

- EXAMPLES

  - Lookup for **connect()**

    - Making a human-readable string out of an address

    - Resolving hostnames into IP addresses

    - Accessing socket options

    - AUTHOR

  ### Storable - persistence for Perl data structures

- SYNOPSIS

  - DESCRIPTION

  - MEMORY STORE

  - ADVISORY LOCKING

  - SPEED

  - CANONICAL REPRESENTATION

  - CODE REFERENCES

  - FORWARD COMPATIBILITY

  utf8 data, restricted hashes, huge objects, files from future versions of Storable

- ERROR REPORTING

  - WIZARDS ONLY

  - Hooks

    `"STORABLE_freeze"` *obj*, *cloning*, `"STORABLE_thaw"` *obj*, *cloning*, *serialized*, .., `"STORABLE_attach"` *class*, *cloning*, *serialized*

  - Predicates

    `"Storable::last_op_in_netorder"`, `"Storable::is_storing"`, `"Storable::is_retrieving"`

  - Recursion

    - Deep Cloning

    - Storable magic

  `$info` = Storable::file\_magic( `$filename` ), `"version"`, `"version_nv"`, `"major"`, `"minor"`, `"hdrsize"`, `"netorder"`, `"byteorder"`, `"intsize"`, `"longsize"`, `"ptrsize"`, `"nvsize"`, `"file"`, `$info` = Storable::read\_magic( `$buffer` ), `$info` = Storable::read\_magic( `$buffer`, `$must_be_file` )

- EXAMPLES

  - SECURITY WARNING

  - WARNING

  - REGULAR EXPRESSIONS

  - BUGS

  - 64 bit data in perl 5.6.0 and 5.6.1

    - CREDITS

  - AUTHOR

  - SEE ALSO

  ### Sub::Util - A selection of utility subroutines for subs and CODE references

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  - prototype

  - set\_prototype

  - subname

  - set\_subname

  - AUTHOR

  ### Symbol - manipulate Perl symbols and their names

- SYNOPSIS

  - DESCRIPTION

  - BUGS

  ### Sys::Hostname - Try every conceivable way to get hostname

- SYNOPSIS

  - DESCRIPTION

  - AUTHOR

  ### Sys::Syslog - Perl interface to the UNIX syslog(3) calls

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - EXPORTS

  - FUNCTIONS

  **openlog($ident, $logopt, $facility)**, **syslog($priority, $message)**, **syslog($priority, $format, @args)**, **Note**, **setlogmask($mask\_priority)**, **setlogsock()**, **Note**, **closelog()**

- THE RULES OF SYS::SYSLOG

  - EXAMPLES

  - CONSTANTS

  - Facilities

    - Levels

    - DIAGNOSTICS

  `"Invalid argument passed to setlogsock"`, `"eventlog passed to setlogsock,` `but no Win32 API available"`, `"no connection to syslog available"`, `"stream` `passed to setlogsock, but %s is not writable"`, `"stream passed to` `setlogsock, but could not find any device"`, `"tcp passed to setlogsock, but` `tcp service unavailable"`, `"syslog: expecting argument %s"`, `"syslog:` `invalid level/facility: %s"`, `"syslog: too many levels given: %s"`, `"syslog: too many facilities given: %s"`, `"syslog: level must be given"`, `"udp passed to setlogsock, but udp service unavailable"`, `"unix passed to` `setlogsock, but path not available"`

- HISTORY

  - SEE ALSO

  - Other modules

    - Manual Pages

    - RFCs

    - Articles

    - Event Log

    - AUTHORS & ACKNOWLEDGEMENTS

  - BUGS

  - SUPPORT

  Perl Documentation, MetaCPAN, Search CPAN, AnnoCPAN: Annotated CPAN documentation, CPAN Ratings, RT: CPAN's request tracker

- COPYRIGHT

  - LICENSE

  ### TAP::Base - Base class that provides common functionality to TAP::Parser and TAP::Harness

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    ### TAP::Formatter::Base - Base class for harness output delegates

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  - Class Methods

    `"verbosity"`, `"verbose"`, `"timer"`, `"failures"`, `"comments"`, `"quiet"`, `"really_quiet"`, `"silent"`, `"errors"`, `"directives"`, `"stdout"`, `"color"`, `"jobs"`, `"show_count"`

### TAP::Formatter::Color - Run Perl test scripts with color

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  - Class Methods

    ### TAP::Formatter::Console - Harness output delegate for default console output

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - "open\_test"

    ### TAP::Formatter::Console::ParallelSession - Harness output delegate for parallel console output

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  - Class Methods

    ### TAP::Formatter::Console::Session - Harness output delegate for default console output

- VERSION

  - DESCRIPTION

  - "clear\_for\_close"

  - "close\_test"

  - "header"

  - "result"

  ### TAP::Formatter::File - Harness output delegate for file output

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - "open\_test"

    ### TAP::Formatter::File::Session - Harness output delegate for file output

- VERSION

  - DESCRIPTION

  - METHODS

  - result

    - close\_test

  ### TAP::Formatter::Session - Abstract base class for harness output delegate

- VERSION

  - METHODS

  - Class Methods

    `"formatter"`, `"parser"`, `"name"`, `"show_count"`

### TAP::Harness - Run test scripts with statistics

- VERSION

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  - Class Methods

    `"verbosity"`, `"timer"`, `"failures"`, `"comments"`, `"show_count"`, `"normalize"`, `"lib"`, `"switches"`, `"test_args"`, `"color"`, `"exec"`, `"merge"`, `"sources"`, `"aggregator_class"`, `"version"`, `"formatter_class"`, `"multiplexer_class"`, `"parser_class"`, `"scheduler_class"`, `"formatter"`, `"errors"`, `"directives"`, `"ignore_exit"`, `"jobs"`, `"rules"`, `"rulesfiles"`, `"stdout"`, `"trap"`

- Instance Methods

  the source name of a test to run, a reference to a \[ source name, display name \] array

- CONFIGURING

  - Plugins

    - "Module::Build"

    - "ExtUtils::MakeMaker"

    - "prove"

    - WRITING PLUGINS

  Customize how TAP gets into the parser, Customize how TAP results are output from the parser

- SUBCLASSING

  - Methods

    "new" in TAP::Harness, "runtests" in TAP::Harness, "summary" in TAP::Harness

- REPLACING

  - SEE ALSO

  ### TAP::Harness::Beyond, Test::Harness::Beyond - Beyond make test

- Beyond make test

  - Saved State

    - Parallel Testing

    - Non-Perl Tests

    - Mixing it up

    - Rolling My Own

    - Deeper Customisation

    - Callbacks

    - Parsing TAP

    - Getting Support

    ### TAP::Harness::Env - Parsing harness related environmental variables where appropriate

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  create( \\%args )

- ENVIRONMENTAL VARIABLES

  `"HARNESS_PERL_SWITCHES"`, `"HARNESS_VERBOSE"`, `"HARNESS_SUBCLASS"`, `"HARNESS_OPTIONS"`, `"j<n>"`, `"c"`, `"a<file.tgz>"`, `"fPackage-With-Dashes"`, `"HARNESS_TIMER"`, `"HARNESS_COLOR"`, `"HARNESS_IGNORE_EXIT"`

### TAP::Object - Base class that provides common functionality to all "TAP::\*" modules

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  ### TAP::Parser - Parse TAP output

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    `"source"`, `"tap"`, `"exec"`, `"sources"`, `"callback"`, `"switches"`, `"test_args"`, `"spool"`, `"merge"`, `"grammar_class"`, `"result_factory_class"`, `"iterator_factory_class"`

- Instance Methods

  - INDIVIDUAL RESULTS

  - Result types

    Version, Plan, Pragma, Test, Comment, Bailout, Unknown

  - Common type methods

    - "plan" methods

    - "pragma" methods

    - "comment" methods

    - "bailout" methods

    - "unknown" methods

    - "test" methods

    - TOTAL RESULTS

  - Individual Results

    - Pragmas

  - Summary Results

  - "ignore\_exit"

  Misplaced plan, No plan, More than one plan, Test numbers out of sequence

- CALLBACKS

  `"test"`, `"version"`, `"plan"`, `"comment"`, `"bailout"`, `"yaml"`, `"unknown"`, `"ELSE"`, `"ALL"`, `"EOF"`

- TAP GRAMMAR

  - BACKWARDS COMPATIBILITY

  - Differences

    TODO plans, 'Missing' tests

- SUBCLASSING

  - Parser Components

    option 1, option 2

- ACKNOWLEDGMENTS

  Michael Schwern, Andy Lester, chromatic, GEOFFR, Shlomi Fish, Torsten Schoenfeld, Jerry Gay, Aristotle, Adam Kennedy, Yves Orton, Adrian Howard, Sean & Lil, Andreas J. Koenig, Florian Ragwitz, Corion, Mark Stosberg, Matt Kraai, David Wheeler, Alex Vandiver, Cosimo Streppone, Ville Skyttä

- AUTHORS

  - BUGS

  - COPYRIGHT & LICENSE

  ### TAP::Parser::Aggregator - Aggregate TAP::Parser results

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  - Summary methods

  failed, parse\_errors, passed, planned, skipped, todo, todo\_passed, wait, exit

Failed tests, Parse errors, Bad exit or wait status

- See Also

  ### TAP::Parser::Grammar - A grammar for the Test Anything Protocol.

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  - TAP GRAMMAR

  - SUBCLASSING

  - SEE ALSO

  ### TAP::Parser::Iterator - Base class for TAP source iterators

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

    - SUBCLASSING

  - Example

    - SEE ALSO

  ### TAP::Parser::Iterator::Array - Iterator for array-based TAP sources

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

    - ATTRIBUTION

  - SEE ALSO

  ### TAP::Parser::Iterator::Process - Iterator for process-based TAP sources

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

    - ATTRIBUTION

  - SEE ALSO

  ### TAP::Parser::Iterator::Stream - Iterator for filehandle-based TAP sources

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  - ATTRIBUTION

  - SEE ALSO

  ### TAP::Parser::IteratorFactory - Figures out which SourceHandler objects to use for a given Source

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  - SUBCLASSING

  - Example

    - AUTHORS

  - ATTRIBUTION

  - SEE ALSO

  ### TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  - See Also

  ### TAP::Parser::Result - Base class for TAP::Parser output objects

- VERSION

  - SYNOPSIS

  - DESCRIPTION

    - METHODS

    - Boolean methods

  `"is_plan"`, `"is_pragma"`, `"is_test"`, `"is_comment"`, `"is_bailout"`, `"is_version"`, `"is_unknown"`, `"is_yaml"`

- SUBCLASSING

  - Example

    - SEE ALSO

  ### TAP::Parser::Result::Bailout - Bailout result token.

- VERSION

  - DESCRIPTION

  - OVERRIDDEN METHODS

  `"as_string"`

- Instance Methods

  ### TAP::Parser::Result::Comment - Comment result token.

- VERSION

  - DESCRIPTION

  - OVERRIDDEN METHODS

  `"as_string"`

- Instance Methods

  ### TAP::Parser::Result::Plan - Plan result token.

- VERSION

  - DESCRIPTION

  - OVERRIDDEN METHODS

  `"as_string"`, `"raw"`

- Instance Methods

  ### TAP::Parser::Result::Pragma - TAP pragma token.

- VERSION

  - DESCRIPTION

  - OVERRIDDEN METHODS

  `"as_string"`, `"raw"`

- Instance Methods

  ### TAP::Parser::Result::Test - Test result token.

- VERSION

  - DESCRIPTION

  - OVERRIDDEN METHODS

  - Instance Methods

    ### TAP::Parser::Result::Unknown - Unknown result token.

- VERSION

  - DESCRIPTION

  - OVERRIDDEN METHODS

  `"as_string"`, `"raw"`

### TAP::Parser::Result::Version - TAP syntax version token.

- VERSION

  - DESCRIPTION

  - OVERRIDDEN METHODS

  `"as_string"`, `"raw"`

- Instance Methods

  ### TAP::Parser::Result::YAML - YAML result token.

- VERSION

  - DESCRIPTION

  - OVERRIDDEN METHODS

  `"as_string"`, `"raw"`

- Instance Methods

  ### TAP::Parser::ResultFactory - Factory for creating TAP::Parser output objects

- SYNOPSIS

  - VERSION

  - DESCRIPTION

  - METHODS

  - Class Methods

  - SUBCLASSING

  - Example

    - SEE ALSO

  ### TAP::Parser::Scheduler - Schedule tests during parallel testing

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Rules data structure

    By default, all tests are eligible to be run in parallel. Specifying any of your own rules removes this one, "First match wins". The first rule that matches a test will be the one that applies, Any test which does not match a rule will be run in sequence at the end of the run, The existence of a rule does not imply selecting a test. You must still specify the tests to run, Specifying a rule to allow tests to run in parallel does not make the run in parallel. You still need specify the number of parallel `"jobs"` in your Harness object

- Instance Methods

  ### TAP::Parser::Scheduler::Job - A single testing job.

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  - Attributes

  ### TAP::Parser::Scheduler::Spinner - A no-op job.

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  - SEE ALSO

  ### TAP::Parser::Source - a TAP source & meta data about it

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

  - AUTHORS

  - SEE ALSO

  ### TAP::Parser::SourceHandler - Base class for different TAP source handlers

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - SUBCLASSING

  - Example

    - AUTHORS

  - SEE ALSO

  ### TAP::Parser::SourceHandler::Executable - Stream output from an executable TAP source

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - SUBCLASSING

  - Example

    - SEE ALSO

  ### TAP::Parser::SourceHandler::File - Stream TAP from a text file.

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - CONFIGURATION

  - SUBCLASSING

  - SEE ALSO

  ### TAP::Parser::SourceHandler::Handle - Stream TAP from an IO::Handle or a GLOB.

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - SUBCLASSING

  - SEE ALSO

  ### TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - SUBCLASSING

  - Example

    - SEE ALSO

  ### TAP::Parser::SourceHandler::RawTAP - Stream output from raw TAP in a scalar/array ref.

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - SUBCLASSING

  - SEE ALSO

  ### TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

    - AUTHOR

  - SEE ALSO

  - COPYRIGHT

  ### TAP::Parser::YAMLish::Writer - Write YAMLish data

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  - Class Methods

    - Instance Methods

    a reference to a scalar to append YAML to, the handle of an open file, a reference to an array into which YAML will be pushed, a code reference

- AUTHOR

  - SEE ALSO

  - COPYRIGHT

  ### Term::ANSIColor - Color screen output using ANSI escape sequences

- SYNOPSIS

  - DESCRIPTION

  - Supported Colors

    - Function Interface

    color(ATTR\[, ATTR ...\]), colored(STRING, ATTR\[, ATTR ...\]), colored(ATTR-REF, STRING\[, STRING...\]), uncolor(ESCAPE), colorstrip(STRING\[, STRING ...\]), colorvalid(ATTR\[, ATTR ...\]), coloralias(ALIAS\[, ATTR ...\])

  - Constant Interface

    - The Color Stack

    - Supporting CLICOLOR

    - DIAGNOSTICS

  Bad color mapping `%s`, Bad escape sequence `%s`, Bareword "%s" not allowed while "strict subs" in use, Cannot alias standard color `%s`, Cannot alias standard color `%s` in `%s`, Invalid alias name `%s`, Invalid alias name `%s` in `%s`, Invalid attribute name `%s`, Invalid attribute name `%s` in `%s`, Name "%s" used only once: possible typo, No comma allowed after filehandle, No name for escape sequence `%s`

- ENVIRONMENT

  ANSI\_COLORS\_ALIASES, ANSI\_COLORS\_DISABLED, NO\_COLOR

- COMPATIBILITY

  - RESTRICTIONS

  - NOTES

  - AUTHORS

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  ### Term::Cap - Perl termcap interface

- SYNOPSIS

  - DESCRIPTION

  - METHODS

    **Tgetent**, OSPEED, TERM

**Tpad**, **$string**, **$cnt**, **$FH**

**Tputs**, **$cap**, **$cnt**, **$FH**

**Tgoto**, **$cap**, **$col**, **$row**, **$FH**

**Trequire**

- EXAMPLES

  - COPYRIGHT AND LICENSE

  - AUTHOR

  - SEE ALSO

  ### Term::Complete - Perl word completion module

- SYNOPSIS

  - DESCRIPTION

  \<tab\>, ^D, ^U, \<del\>, \<bs\>

- DIAGNOSTICS

  - BUGS

  - AUTHOR

  ### Term::ReadLine - Perl interface to various "readline" packages. If no real package is found, substitutes stubs instead of basic functions.

- SYNOPSIS

  - DESCRIPTION

  - Minimal set of supported functions

  `"ReadLine"`, `"new"`, `"readline"`, `"addhistory"`, `"IN"`, `"OUT"`, `"MinLine"`, `"findConsole"`, Attribs, `"Features"`

- Additional supported functions

  `"tkRunning"`, `"event_loop"`, `"ornaments"`, `"newTTY"`

- EXPORTS

  - ENVIRONMENT

  ### Term::Table - Format a header and rows into a table

- DESCRIPTION

  - SYNOPSIS

  - INTERFACE

  - OPTIONS

    header =\> \[ ... \], rows =\> \[ \[...\], \[...\], ... \], collapse =\> `$bool`, max\_width =\> `$num`, pad =\> `$num`, allow\_overflow =\> `$bool`, sanitize =\> `$bool`, mark\_tail =\> `$bool`, show\_header =\> `$bool`, auto\_columns =\> `$bool`, no\_collapse =\> \[ `$col_num_a`, `$col_num_b`, ... \], no\_collapse =\> \[ `$col_name_a`, `$col_name_b`, ... \], no\_collapse =\> { `$col_num_a` =\> 1, `$col_num_b` =\> 1, ... }, no\_collapse =\> { `$col_name_a` =\> 1, `$col_name_b` =\> 1, ... }

- NOTE ON UNICODE/WIDE CHARACTERS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Term::Table::Cell - Representation of a cell in a table.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Term::Table::CellStack - Combine several cells into one (vertical)

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Term::Table::HashBase - Build hash based classes.

- SYNOPSIS

  - DESCRIPTION

  - THIS IS A BUNDLED COPY OF HASHBASE

  - METHODS

  - PROVIDED BY HASH BASE

    `$it` = `$class`-\>new(%PAIRS), `$it` = `$class`-\>new(\\%PAIRS), `$it` = `$class`-\>new(\\@ORDERED\_VALUES)

  - HOOKS

    `$self`-\>**init()**

- ACCESSORS

  - READ/WRITE

    **foo()**, **set\_foo()**, **FOO()**

  - READ ONLY

    **set\_foo()**

  - DEPRECATED SETTER

    **set\_foo()**

  - NO SETTER

    - NO READER

    - CONSTANT ONLY

    - SUBCLASSING

  - GETTING A LIST OF ATTRIBUTES FOR A CLASS

  `@list` = Term::Table::HashBase::attr\_list($class), `@list` = `$class`-\>**Term::Table::HashBase::attr\_list()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Term::Table::LineBreak - Break up lines for use in tables.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Term::Table::Util - Utilities for Term::Table.

- DESCRIPTION

  - EXPORTS

  - CONSTANTS

    `$bool` = USE\_GCS, `$bool` = USE\_TERM\_READKEY

  - UTILITIES

    `$width` = **term\_size()**, `$width` = uni\_length($string)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test - provides a simple framework for writing test scripts

- SYNOPSIS

  - DESCRIPTION

  - QUICK START GUIDE

  - Functions

    `plan(...)`, `"tests => `*number*`"`, `"todo => [`*1,5,14*`]"`, `"onfail => sub { ... }"`, `"onfail => \&some_sub"`

**\_to\_value**

`ok(...)`

`"skip(`*skip\_if\_true*`, `*args...*`)"`

- TEST TYPES

  NORMAL TESTS, SKIPPED TESTS, TODO TESTS

- ONFAIL

  - BUGS and CAVEATS

  - ENVIRONMENT

  - NOTE

  - SEE ALSO

  - AUTHOR

  ### Test2 - Framework for writing test tools that all work together.

- DESCRIPTION

  - WHAT IS NEW?

    Easier to test new testing tools, Better diagnostics capabilities, Event driven, More complete API, Support for output other than TAP, Subtest implementation is more sane, Support for threading/forking

- GETTING STARTED

  ### Test2, This describes the namespace layout for the Test2 ecosystem. Not all the namespaces listed here are part of the Test2 distribution, some are implemented in Test2::Suite.

- Test2::Tools::

  - Test2::Plugin::

  - Test2::Bundle::

  - Test2::Require::

  - Test2::Formatter::

  - Test2::Event::

  - Test2::Hub::

  - Test2::IPC::

  - Test2::Util::

  - Test2::API::

  - Test2::

  - SEE ALSO

  - CONTACTING US

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::API - Primary interface for writing Test2 based testing tools.

- \*\*\*INTERNALS NOTE\*\*\*

  - DESCRIPTION

  - SYNOPSIS

  - WRITING A TOOL

    - TESTING YOUR TOOLS

    - OTHER API FUNCTIONS

    - MAIN API EXPORTS

  - context(...)

    `$ctx` = **context()**, `$ctx` = context(%params), level =\> `$int`, wrapped =\> `$int`, stack =\> `$stack`, hub =\> `$hub`, on\_init =\> sub { ... }, on\_release =\> sub { ... }

  - release($;$)

    release `$ctx`;, release `$ctx`, ...;

  - context\_do(&;@)

    - no\_context(&;$)

    no\_context { ... };, no\_context { ... } `$hid`;

  - intercept(&)

    - run\_subtest(...)

    `$NAME`, \\&CODE, `$BUFFERED` or \\%PARAMS, 'buffered' =\> `$bool`, 'inherit\_trace' =\> `$bool`, 'no\_fork' =\> `$bool`, `@ARGS`, Things not affected by this flag, Things that are affected by this flag, Things that are formatter dependent

- OTHER API EXPORTS

  - STATUS AND INITIALIZATION STATE

    `$bool` = **test2\_init\_done()**, `$bool` = **test2\_load\_done()**, **test2\_set\_is\_end()**, test2\_set\_is\_end($bool), `$bool` = **test2\_get\_is\_end()**, `$stack` = **test2\_stack()**, `$bool` = **test2\_is\_testing\_done()**, test2\_ipc\_disable, `$bool` = test2\_ipc\_disabled, **test2\_ipc\_wait\_enable()**, **test2\_ipc\_wait\_disable()**, `$bool` = **test2\_ipc\_wait\_enabled()**, `$bool` = **test2\_no\_wait()**, test2\_no\_wait($bool), `$fh` = **test2\_stdout()**, `$fh` = **test2\_stderr()**, **test2\_reset\_io()**

  - BEHAVIOR HOOKS

    test2\_add\_callback\_exit(sub { ... }), test2\_add\_callback\_post\_load(sub { ... }), test2\_add\_callback\_testing\_done(sub { ... }), test2\_add\_callback\_context\_acquire(sub { ... }), test2\_add\_callback\_context\_init(sub { ... }), test2\_add\_callback\_context\_release(sub { ... }), test2\_add\_callback\_pre\_subtest(sub { ... }), `@list` = **test2\_list\_context\_acquire\_callbacks()**, `@list` = **test2\_list\_context\_init\_callbacks()**, `@list` = **test2\_list\_context\_release\_callbacks()**, `@list` = **test2\_list\_exit\_callbacks()**, `@list` = **test2\_list\_post\_load\_callbacks()**, `@list` = **test2\_list\_pre\_subtest\_callbacks()**, test2\_add\_uuid\_via(sub { ... }), `$sub` = **test2\_add\_uuid\_via()**

  - IPC AND CONCURRENCY

    `$bool` = **test2\_has\_ipc()**, `$ipc` = **test2\_ipc()**, test2\_ipc\_add\_driver($DRIVER), `@drivers` = **test2\_ipc\_drivers()**, `$bool` = **test2\_ipc\_polling()**, **test2\_ipc\_enable\_polling()**, **test2\_ipc\_disable\_polling()**, **test2\_ipc\_enable\_shm()**, test2\_ipc\_set\_pending($uniq\_val), `$pending` = **test2\_ipc\_get\_pending()**, `$timeout` = **test2\_ipc\_get\_timeout()**, test2\_ipc\_set\_timeout($timeout)

  - MANAGING FORMATTERS

    `$formatter` = test2\_formatter, test2\_formatter\_set($class\_or\_instance), `@formatters` = **test2\_formatters()**, test2\_formatter\_add($class\_or\_instance)

  - TIME STAMPS

    **test2\_enable\_trace\_stamps()**, **test2\_disable\_trace\_stamps()**, `$bool` = **test2\_trace\_stamps\_enabled()**

- OTHER EXAMPLES

  - SEE ALSO

  - MAGIC

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::API::Breakage - What breaks at what version

- DESCRIPTION

  - FUNCTIONS

  `%mod_ver` = **upgrade\_suggested()**, `%mod_ver` = Test2::API::Breakage-\>**upgrade\_suggested()**, `%mod_ver` = **upgrade\_required()**, `%mod_ver` = Test2::API::Breakage-\>**upgrade\_required()**, `%mod_ver` = **known\_broken()**, `%mod_ver` = Test2::API::Breakage-\>**known\_broken()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::API::Context - Object to represent a testing context.

- DESCRIPTION

  - SYNOPSIS

  - CRITICAL DETAILS

  you MUST always use the **context()** sub from Test2::API, You MUST always release the context when done with it, You MUST NOT pass context objects around, You MUST NOT store or cache a context for later, You SHOULD obtain your context as soon as possible in a given tool

- METHODS

  `$ctx`-\>done\_testing;, `$clone` = `$ctx`-\>**snapshot()**, `$ctx`-\>**release()**, `$ctx`-\>throw($message), `$ctx`-\>alert($message), `$stack` = `$ctx`-\>**stack()**, `$hub` = `$ctx`-\>**hub()**, `$dbg` = `$ctx`-\>**trace()**, `$ctx`-\>do\_in\_context(\\&code, `@args`);, `$ctx`-\>**restore\_error\_vars()**, $! = `$ctx`-\>**errno()**, $? = `$ctx`-\>**child\_error()**, $@ = `$ctx`-\>**eval\_error()**

  - EVENT PRODUCTION METHODS

    `$event` = `$ctx`-\>**pass()**, `$event` = `$ctx`-\>pass($name), `$true` = `$ctx`-\>**pass\_and\_release()**, `$true` = `$ctx`-\>pass\_and\_release($name), my `$event` = `$ctx`-\>**fail()**, my `$event` = `$ctx`-\>fail($name), my `$event` = `$ctx`-\>fail($name, `@diagnostics`), my `$false` = `$ctx`-\>**fail\_and\_release()**, my `$false` = `$ctx`-\>fail\_and\_release($name), my `$false` = `$ctx`-\>fail\_and\_release($name, `@diagnostics`), `$event` = `$ctx`-\>ok($bool, `$name`), `$event` = `$ctx`-\>ok($bool, `$name`, \\@on\_fail), `$event` = `$ctx`-\>note($message), `$event` = `$ctx`-\>diag($message), `$event` = `$ctx`-\>plan($max), `$event` = `$ctx`-\>plan(0, 'SKIP', `$reason`), `$event` = `$ctx`-\>skip($name, `$reason`);, `$event` = `$ctx`-\>bail($reason), `$event` = `$ctx`-\>send\_ev2(%facets), `$event` = `$ctx`-\>build\_e2(%facets), `$event` = `$ctx`-\>send\_ev2\_and\_release($Type, `%parameters`), `$event` = `$ctx`-\>send\_event($Type, `%parameters`), `$event` = `$ctx`-\>build\_event($Type, `%parameters`), `$event` = `$ctx`-\>send\_event\_and\_release($Type, `%parameters`)

- HOOKS

  - INIT HOOKS

    - RELEASE HOOKS

    - THIRD PARTY META-DATA

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>, Kent Fredric \<kentnl@cpan.org\>

- COPYRIGHT

  ### Test2::API::Instance - Object used by Test2::API under the hood

- DESCRIPTION

  - SYNOPSIS

  `$pid` = `$obj`-\>pid, `$obj`-\>tid, `$obj`-\>**reset()**, `$obj`-\>**load()**, `$bool` = `$obj`-\>loaded, `$arrayref` = `$obj`-\>post\_load\_callbacks, `$obj`-\>add\_post\_load\_callback(sub { ... }), `$hashref` = `$obj`-\>**contexts()**, `$arrayref` = `$obj`-\>context\_acquire\_callbacks, `$arrayref` = `$obj`-\>context\_init\_callbacks, `$arrayref` = `$obj`-\>context\_release\_callbacks, `$arrayref` = `$obj`-\>pre\_subtest\_callbacks, `$obj`-\>add\_context\_init\_callback(sub { ... }), `$obj`-\>add\_context\_release\_callback(sub { ... }), `$obj`-\>add\_pre\_subtest\_callback(sub { ... }), `$obj`-\>**set\_exit()**, `$obj`-\>set\_ipc\_pending($val), `$pending` = `$obj`-\>**get\_ipc\_pending()**, `$timeout` = `$obj`-\>ipc\_timeout;, `$obj`-\>set\_ipc\_timeout($timeout);, `$drivers` = `$obj`-\>ipc\_drivers, `$obj`-\>add\_ipc\_driver($DRIVER\_CLASS), `$bool` = `$obj`-\>ipc\_polling, `$obj`-\>enable\_ipc\_polling, `$obj`-\>disable\_ipc\_polling, `$bool` = `$obj`-\>no\_wait, `$bool` = `$obj`-\>set\_no\_wait($bool), `$arrayref` = `$obj`-\>exit\_callbacks, `$obj`-\>add\_exit\_callback(sub { ... }), `$bool` = `$obj`-\>finalized, `$ipc` = `$obj`-\>ipc, `$obj`-\>ipc\_disable, `$bool` = `$obj`-\>ipc\_disabled, `$stack` = `$obj`-\>stack, `$formatter` = `$obj`-\>formatter, `$bool` = `$obj`-\>**formatter\_set()**, `$obj`-\>add\_formatter($class), `$obj`-\>add\_formatter($obj), `$obj`-\>set\_add\_uuid\_via(sub { ... }), `$sub` = `$obj`-\>**add\_uuid\_via()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::API::InterceptResult - Representation of a list of events.

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  - CONSTRUCTION

    `$events` = Test2::API::InterceptResult-\>new(@EVENTS), `$events` = Test2::API::InterceptResult-\>new\_from\_ref(\\@EVENTS), `$clone` = `$events`-\>**clone()**

  - NORMALIZATION

    `@events` = `$events`-\>event\_list, `$hub` = `$events`-\>hub, `$state` = `$events`-\>state, `$new` = `$events`-\>upgrade, `$events`-\>upgrade(in\_place =\> `$BOOL`), `$new` = `$events`-\>squash\_info, `$events`-\>squash\_info(in\_place =\> `$BOOL`)

  - FILTERING

    in\_place =\> `$BOOL`, args =\> \\@ARGS, `$events`-\>grep($CALL, `%PARAMS`), `$events`-\>asserts(%PARAMS), `$events`-\>subtests(%PARAMS), `$events`-\>diags(%PARAMS), `$events`-\>notes(%PARAMS), `$events`-\>errors(%PARAMS), `$events`-\>plans(%PARAMS), `$events`-\>causes\_fail(%PARAMS), `$events`-\>causes\_failure(%PARAMS)

  - MAPPING

    `$arrayref` = `$events`-\>map($CALL, `%PARAMS`), `$arrayref` = `$events`-\>flatten(%PARAMS), `$arrayref` = `$events`-\>briefs(%PARAMS), `$arrayref` = `$events`-\>summaries(%PARAMS), `$arrayref` = `$events`-\>subtest\_results(%PARAMS), `$arrayref` = `$events`-\>diag\_messages(%PARAMS), `$arrayref` = `$events`-\>note\_messages(%PARAMS), `$arrayref` = `$events`-\>error\_messages(%PARAMS)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::API::InterceptResult::Event - Representation of an event for use in testing other test tools.

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  - !!! IMPORTANT NOTES ON DESIGN !!!

    - ATTRIBUTES

    `$hashref` = `$event`-\>facet\_data, `$class` = `$event`-\>result\_class

  - DUPLICATION

    `$copy` = `$event`-\>clone

  - CONDENSED MULTI-FACET DATA

    `$bool` = `$event`-\>causes\_failure, `$bool` = `$event`-\>causes\_fail, STRING\_OR\_EMPTY\_LIST = `$event`-\>brief, `$hashref` = `$event`-\>flatten, `$hashref` = `$event`-\>flatten(include\_subevents =\> 1), always present, Present if the event has a trace facet, If an assertion is present, If a plan is present:, If amnesty facets are present, If Info (note/diag) facets are present, If error facets are present, Present if the event is a subtest, If a bail-out is being requested, `$hashref` = `$event`-\>**summary()**

  - DIRECT ARBITRARY FACET ACCESS

    `@list_of_facets` = `$event`-\>facet($name), `$undef_or_facet` = `$event`-\>the\_facet($name)

  - TRACE FACET

    `@list_of_facets` = `$event`-\>trace, `$undef_or_hashref` = `$event`-\>the\_trace, `$undef_or_arrayref` = `$event`-\>frame, `$undef_or_string` = `$event`-\>trace\_details, `$undef_or_string` = `$event`-\>trace\_package, `$undef_or_string` = `$event`-\>trace\_file, `$undef_or_integer` = `$event`-\>trace\_line, `$undef_or_string` = `$event`-\>trace\_subname, `$undef_or_string` = `$event`-\>trace\_tool, `$undef_or_string` = `$event`-\>trace\_signature

  - ASSERT FACET

    `$bool` = `$event`-\>has\_assert, `$undef_or_hashref` = `$event`-\>the\_assert, `@list_of_facets` = `$event`-\>assert, EMPTY\_LIST\_OR\_STRING = `$event`-\>assert\_brief

  - SUBTESTS (PARENT FACET)

    `$bool` = `$event`-\>has\_subtest, `$undef_or_hashref` = `$event`-\>the\_subtest, `@list_of_facets` = `$event`-\>subtest, EMPTY\_LIST\_OR\_OBJECT = `$event`-\>subtest\_result

  - CONTROL FACET (BAILOUT, ENCODING)

    `$bool` = `$event`-\>has\_bailout, `$undef_hashref` = `$event`-\>the\_bailout, EMPTY\_LIST\_OR\_HASHREF = `$event`-\>bailout, EMPTY\_LIST\_OR\_STRING = `$event`-\>bailout\_brief, EMPTY\_LIST\_OR\_STRING = `$event`-\>bailout\_reason

  - PLAN FACET

    `$bool` = `$event`-\>has\_plan, `$undef_or_hashref` = `$event`-\>the\_plan, `@list_if_hashrefs` = `$event`-\>plan, EMPTY\_LIST\_OR\_STRING `$event`-\>plan\_brief

  - AMNESTY FACET (TODO AND SKIP)

    `$event`-\>has\_amnesty, `$event`-\>the\_amnesty, `$event`-\>amnesty, `$event`-\>amnesty\_reasons, `$event`-\>has\_todos, `$event`-\>todos, `$event`-\>todo\_reasons, `$event`-\>has\_skips, `$event`-\>skips, `$event`-\>skip\_reasons, `$event`-\>has\_other\_amnesty, `$event`-\>other\_amnesty, `$event`-\>other\_amnesty\_reasons

  - ERROR FACET (CAPTURED EXCEPTIONS)

    `$event`-\>has\_errors, `$event`-\>the\_errors, `$event`-\>errors, `$event`-\>error\_messages, `$event`-\>error\_brief

  - INFO FACET (DIAG, NOTE)

    `$event`-\>has\_info, `$event`-\>the\_info, `$event`-\>info, `$event`-\>info\_messages, `$event`-\>has\_diags, `$event`-\>diags, `$event`-\>diag\_messages, `$event`-\>has\_notes, `$event`-\>notes, `$event`-\>note\_messages, `$event`-\>has\_other\_info, `$event`-\>other\_info, `$event`-\>other\_info\_messages

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::API::InterceptResult::Hub - Hub used by InterceptResult.

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::API::InterceptResult::Squasher - Encapsulation of the algorithm that squashes diags into assertions.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::API::Stack - Object to manage a stack of Test2::Hub instances.

- \*\*\*INTERNALS NOTE\*\*\*

  - DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$stack` = Test2::API::Stack-\>**new()**, `$hub` = `$stack`-\>**new\_hub()**, `$hub` = `$stack`-\>new\_hub(%params), `$hub` = `$stack`-\>new\_hub(%params, class =\> `$class`), `$hub` = `$stack`-\>**top()**, `$hub` = `$stack`-\>**peek()**, `$stack`-\>cull, `@hubs` = `$stack`-\>all, `$stack`-\>clear, `$stack`-\>push($hub), `$stack`-\>pop($hub)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::AsyncSubtest - Object representing an async subtest.

- DESCRIPTION

  - SYNOPSIS

  - CONSTRUCTION

  name =\> `$name` (required), send\_to =\> `$hub` (optional), trace =\> `$trace` (optional), hub =\> `$hub` (optional)

- METHODS

  - SIMPLE ACCESSORS

    `$bool` = `$ast`-\>active, `$arrayref` = `$ast`-\>children, `$arrayref` = `$ast`-\>events, `$bool` = `$ast`-\>finished, `$hub` = `$ast`-\>hub, `$int` = `$ast`-\>id, `$str` = `$ast`-\>name, `$pid` = `$ast`-\>pid, `$tid` = `$ast`-\>tid, `$hub` = `$ast`-\>send\_to, `$arrayref` = `$ast`-\>stack, `$trace` = `$ast`-\>trace

  - INTERFACE

    `$ast`-\>attach($id), `$id` = `$ast`-\>cleave, `$ctx` = `$ast`-\>context, `$ast`-\>detach, `$ast`-\>finish, `$ast`-\>finish(%options), collapse =\> 1, silent =\> 1, no\_plan =\> 1, skip =\> "reason", `$out` = `$ast`-\>fork, `$bool` = `$ast`-\>pending, `$bool` = `$ast`-\>ready, `$ast`-\>run(sub { ... }), `$pid` = `$ast`-\>run\_fork(sub { ... }), my `$thr` = `$ast`-\>run\_thread(sub { ... });, `$passing` = `$ast`-\>start, `$ast`-\>stop, `$ast`-\>wait

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::AsyncSubtest::Event::Attach - Event to attach a subtest to the parent.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::AsyncSubtest::Event::Detach - Event to detach a subtest from the parent.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::AsyncSubtest::Hub - Hub used by async subtests.

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$ast` = `$hub`-\>ast

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Bundle - Documentation for bundles.

- DESCRIPTION

  - FAQ

  Should my bundle subclass Test2::Bundle?

- HOW DO I WRITE A BUNDLE?

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Bundle::Extended - Old name for Test2::V0

- \*\*\* DEPRECATED \*\*\*

  - DESCRIPTION

  - SYNOPSIS

  - RESOLVING CONFLICTS WITH MOOSE

  - TAGS

    :v1, :DEFAULT

  - RENAMING ON IMPORT

    ':v1', '!ok', ok =\> {-as =\> 'my\_ok'}

- PRAGMAS

  - STRICT

    - WARNINGS

    - UTF8

    - PLUGINS

  - SRAND

    - UTF8

    - EXIT SUMMARY

    - API FUNCTIONS

  `$ctx` = **context()**, `$events` = intercept { ... }

- TOOLS

  - TARGET

    `$CLASS`, `$class` = **CLASS()**

  - DEFER

    def `$func` =\> `@args`;, **do\_def()**

  - BASIC

    ok($bool, `$name`), pass($name), fail($name), diag($message), note($message), `$todo` = todo($reason), todo `$reason` =\> sub { ... }, skip($reason, `$count`), plan($count), skip\_all($reason), **done\_testing()**, bail\_out($reason)

  - COMPARE

    is($got, `$want`, `$name`), isnt($got, `$do_not_want`, `$name`), like($got, qr/match/, `$name`), unlike($got, qr/mismatch/, `$name`), `$check` = match(qr/pattern/), `$check` = mismatch(qr/pattern/), `$check` = validator(sub { return `$bool` }), `$check` = hash { ... }, `$check` = array { ... }, `$check` = bag { ... }, `$check` = object { ... }, `$check` = meta { ... }, `$check` = number($num), `$check` = string($str), `$check` = check\_isa($class\_name), `$check` = in\_set(@things), `$check` = not\_in\_set(@things), `$check` = check\_set(@things), `$check` = item($thing), `$check` = item($idx =\> `$thing`), `$check` = field($name =\> `$val`), `$check` = call($method =\> `$expect`), `$check` = call\_list($method =\> `$expect`), `$check` = call\_hash($method =\> `$expect`), `$check` = prop($name =\> `$expect`), `$check` = check($thing), `$check` = T(), `$check` = F(), `$check` = D(), `$check` = **DF()**, `$check` = E(), `$check` = **DNE()**, `$check` = **FDNE()**, `$check` = U(), `$check` = L(), `$check` = exact\_ref($ref), **end()**, **etc()**, filter\_items { grep { ... } `@_` }, `$check` = event `$type` =\> .., `@checks` = fail\_events `$type` =\> ..

  - CLASSIC COMPARE

    cmp\_ok($got, `$op`, `$want`, `$name`)

  - SUBTEST

    subtest `$name` =\> sub { ... }

  - CLASS

    can\_ok($thing, `@methods`), isa\_ok($thing, `@classes`), DOES\_ok($thing, `@roles`)

  - ENCODING

    set\_encoding($encoding)

  - EXPORTS

    imported\_ok('function', '$scalar', ...), not\_imported\_ok('function', '$scalar', ...)

  - REF

    ref\_ok($ref, `$type`), ref\_is($got, `$want`), ref\_is\_not($got, `$do_not_want`)

  - MOCK

    `$control` = mock .., `$bool` = mocked($thing)

  - EXCEPTION

    `$exception` = dies { ... }, `$bool` = lives { ... }, `$bool` = try\_ok { ... }

  - WARNINGS

    `$count` = warns { ... }, `$warning` = warning { ... }, `$warnings_ref` = warnings { ... }, `$bool` = no\_warnings { ... }

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Bundle::More - ALMOST a drop-in replacement for Test::More.

- DESCRIPTION

  - SYNOPSIS

  - PLUGINS

  - TOOLS

  ok($bool, `$name`), pass($name), fail($name), skip($why, `$count`), `$todo` = todo($why), diag($message), note($message), plan($count), skip\_all($why), **done\_testing()**, BAIL\_OUT($why), is($got, `$want`, `$name`), isnt($got, `$donotwant`, `$name`), like($got, qr/match/, `$name`), unlike($got, qr/mismatch/, `$name`), is\_deeply($got, `$want`, "Deep compare"), cmp\_ok($got, `$op`, `$want`, `$name`), isa\_ok($thing, `@classes`), can\_ok($thing, `@subs`), subtest `$name` =\> sub { ... }

- KEY DIFFERENCES FROM Test::More

  You cannot plan at import, You have three subs imported for use in planning, isa\_ok accepts different arguments

  - THESE FUNCTIONS AND VARIABLES HAVE BEEN REMOVED

    `$TODO`, **use\_ok()**, **require\_ok()**, **todo\_skip()**, **eq\_array()**, **eq\_hash()**, **eq\_set()**, **explain()**, **new\_ok()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Bundle::Simple - ALMOST a drop-in replacement for Test::Simple.

- DESCRIPTION

  - SYNOPSIS

  - PLUGINS

  - TOOLS

  ok($bool, `$name`), plan($count), skip\_all($reason), **done\_testing()**;

- KEY DIFFERENCES FROM Test::Simple

  You cannot plan at import, You have three subs imported for use in planning

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare - Test2 extension for writing deep comparison tools.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  `$delta` = compare($got, `$expect`, \\&convert), `$build` = **get\_build()**, push\_build($build), `$build` = pop\_build($build), build($class, sub { ... }), `$check` = convert($thing), `$check` = convert($thing, `$config`), implicit\_end =\> 1, use\_regex =\> 1, use\_code =\> 0, `$check` = strict\_convert($thing), implicit\_end =\> 1, use\_code =\> 0, use\_regex =\> 0, `$compare` = relaxed\_convert($thing), implicit\_end =\> 0, use\_code =\> 1, use\_regex =\> 1

- WRITING A VARIANT OF IS/LIKE

  **compare()**, \\&convert, `$delta`

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Array - Internal representation of an array comparison.

- DESCRIPTION

  - METHODS

  `$ref` = `$arr`-\>**inref()**, `$bool` = `$arr`-\>ending, `$arr`-\>set\_ending($bool), `$hashref` = `$arr`-\>**items()**, `$arr`-\>set\_items($hashref), `$arrayref` = `$arr`-\>**order()**, `$arr`-\>set\_order($arrayref), `$name` = `$arr`-\>**name()**, `$bool` = `$arr`-\>verify(got =\> `$got`, exists =\> `$bool`), `$idx` = `$arr`-\>**top\_index()**, `$arr`-\>add\_item($item), `$arr`-\>add\_item($idx =\> `$item`), `$arr`-\>add\_filter(sub { ... }), `@deltas` = `$arr`-\>deltas(got =\> `$got`, convert =\> \\&convert, seen =\> \\%seen)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Bag - Internal representation of a bag comparison.

- DESCRIPTION

  - METHODS

  `$bool` = `$arr`-\>ending, `$arr`-\>set\_ending($bool), `$arrayref` = `$arr`-\>**items()**, `$arr`-\>set\_items($arrayref), `$name` = `$arr`-\>**name()**, `$bool` = `$arr`-\>verify(got =\> `$got`, exists =\> `$bool`), `$arr`-\>add\_item($item), `@deltas` = `$arr`-\>deltas(got =\> `$got`, convert =\> \\&convert, seen =\> \\%seen)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>, Gianni Ceccarelli \<dakkar@thenautilus.net\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>, Gianni Ceccarelli \<dakkar@thenautilus.net\>

- COPYRIGHT

  ### Test2::Compare::Base - Base class for comparison classes.

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$dclass` = `$check`-\>delta\_class, `@deltas` = `$check`-\>deltas(id =\> `$id`, exists =\> `$bool`, got =\> `$got`, convert =\> \\&convert, seen =\> \\%seen), `@lines` = `$check`-\>got\_lines($got), `$op` = `$check`-\>**operator()**, `$op` = `$check`-\>operator($got), `$bool` = `$check`-\>verify(id =\> `$id`, exists =\> `$bool`, got =\> `$got`, convert =\> \\&convert, seen =\> \\%seen), `$name` = `$check`-\>name, `$display` = `$check`-\>render, `$delta` = `$check`-\>run(id =\> `$id`, exists =\> `$bool`, got =\> `$got`, convert =\> \\&convert, seen =\> \\%seen)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Bool - Compare two values as booleans

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Custom - Custom field check for comparisons.

- DESCRIPTION

  - SYNOPSIS

  - ARGUMENTS

  got, `$_`, exists, operator, name

- METHODS

  `$code` = `$cus`-\>code, `$name` = `$cus`-\>name, `$op` = `$cus`-\>operator, `$stringify` = `$cus`-\>stringify\_got, `$bool` = `$cus`-\>verify(got =\> `$got`, exists =\> `$bool`)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>, Daniel Böhmer \<dboehmer@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::DeepRef - Ref comparison

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Delta - Representation of differences between nested data structures.

- DESCRIPTION

  - METHODS

  - CLASS METHODS

    `$class`-\>add\_column($NAME =\> sub { ... }), `$class`-\>add\_column($NAME, `%PARAMS`), `$bool` = `$class`-\>remove\_column($NAME), `$class`-\>set\_column\_alias($NAME, `$ALIAS`)

  - ATTRIBUTES

    `$bool` = `$delta`-\>verified, `$delta`-\>set\_verified($bool), `$aref` = `$delta`-\>id, `$delta`-\>set\_id(\[$type, `$name`\]), `$val` = `$delta`-\>got, `$delta`-\>set\_got($val), `$check` = `$delta`-\>chk, `$check` = `$delta`-\>check, `$delta`-\>set\_chk($check), `$delta`-\>set\_check($check), `$aref` = `$delta`-\>children, `$delta`-\>set\_children(\[$delta1, `$delta2`, ...\]), `$dne` = `$delta`-\>dne, `$delta`-\>set\_dne($dne), `$e` = `$delta`-\>exception, `$delta`-\>set\_exception($e)

  - OTHER

    `$string` = `$delta`-\>render\_got, `$string` = `$delta`-\>render\_check, `$bool` = `$delta`-\>should\_show, `$aref` = `$delta`-\>filter\_visible, `$aref` = `$delta`-\>table\_header, `$string` = `$delta`-\>table\_op, `$string` = `$delta`-\>table\_check\_lines, `$string` = `$delta`-\>table\_got\_lines, `$aref` = `$delta`-\>table\_rows, `@table_lines` = `$delta`-\>table

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Event - Event specific Object subclass.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::EventMeta - Meta class for events in deep comparisons

- DESCRIPTION

  - DEFINED CHECKS

  file, line, package, subname, debug, tid, pid

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Float - Compare two values as numbers with tolerance.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Andrew Grangaard \<spazm@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Hash - Representation of a hash in a deep comparison.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Isa - Check if the value is an instance of the class.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>, TOYAMA Nao \<nanto@moon.email.ne.jp\>

- COPYRIGHT

  ### Test2::Compare::Meta - Check library for meta-checks

- DESCRIPTION

  - DEFINED CHECKS

  blessed, reftype, isa, this, size

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Negatable - Poor mans 'role' for compare objects that can be negated.

- DESCRIPTION

  - WHY?

  - ATTRIBUTES

  `$bool` = `$obj`-\>negate, `$obj`-\>set\_negate($bool), `$attr` = **NEGATE()**

- METHODS

  `$clone` = `$obj`-\>**clone\_negate()**, `$obj`-\>**toggle\_negate()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Number - Compare two values as numbers

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Object - Representation of an object during deep comparison.

- DESCRIPTION

  - METHODS

  `$class` = `$obj`-\>meta\_class, `$class` = `$obj`-\>object\_base, `$obj`-\>add\_prop(...), `$obj`-\>add\_field(...), `$obj`-\>add\_item(...), `$obj`-\>add\_call($method, `$check`), `$obj`-\>add\_call($method, `$check`, `$name`), `$obj`-\>add\_call($method, `$check`, `$name`, `$context`)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::OrderedSubset - Internal representation of an ordered subset.

- DESCRIPTION

  - METHODS

  `$ref` = `$arr`-\>**inref()**, `$arrayref` = `$arr`-\>**items()**, `$arr`-\>set\_items($arrayref), `$name` = `$arr`-\>**name()**, `$bool` = `$arr`-\>verify(got =\> `$got`, exists =\> `$bool`), `$arr`-\>add\_item($item), `@deltas` = `$arr`-\>deltas(got =\> `$got`, convert =\> \\&convert, seen =\> \\%seen)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Pattern - Use a pattern to validate values in a deep comparison.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Ref - Ref comparison

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Regex - Regex direct comparison

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Scalar - Representation of a Scalar Ref in deep comparisons

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Set - Allows a field to be matched against a set of checks.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::String - Compare two values as strings

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Undef - Check that something is undefined

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Compare::Wildcard - Placeholder check.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event - Base class for events

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  - GENERAL

    `$trace` = `$e`-\>trace, `$bool_or_undef` = `$e`-\>related($e2), `$e`-\>add\_amnesty({tag =\> `$TAG`, details =\> `$DETAILS`});, `$uuid` = `$e`-\>uuid, `$class` = `$e`-\>load\_facet($name), `@classes` = `$e`-\>**FACET\_TYPES()**, `@classes` = Test2::Event-\>**FACET\_TYPES()**

  - NEW API

    `$hashref` = `$e`-\>**common\_facet\_data()**;, `$hashref` = `$e`-\>**facet\_data()**, `$hashref` = `$e`-\>**facets()**, `@errors` = `$e`-\>**validate\_facet\_data()**;, `@errors` = `$e`-\>validate\_facet\_data(%params);, `@errors` = `$e`-\>validate\_facet\_data(\\%facets, `%params`);, `@errors` = Test2::Event-\>validate\_facet\_data(%params);, `@errors` = Test2::Event-\>validate\_facet\_data(\\%facets, `%params`);, require\_facet\_class =\> `$BOOL`, about =\> {...}, assert =\> {...}, control =\> {...}, meta =\> {...}, parent =\> {...}, plan =\> {...}, trace =\> {...}, amnesty =\> \[{...}, ...\], errors =\> \[{...}, ...\], info =\> \[{...}, ...\]

  - LEGACY API

    `$bool` = `$e`-\>causes\_fail, `$bool` = `$e`-\>increments\_count, `$e`-\>callback($hub), `$num` = `$e`-\>nested, `$bool` = `$e`-\>global, `$code` = `$e`-\>terminate, `$msg` = `$e`-\>summary, ($count, `$directive`, `$reason`) = `$e`-\>**sets\_plan()**, `$bool` = `$e`-\>diagnostics, `$bool` = `$e`-\>no\_display, `$id` = `$e`-\>in\_subtest, `$id` = `$e`-\>subtest\_id

- THIRD PARTY META-DATA

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Bail - Bailout!

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$reason` = `$e`-\>reason

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Diag - Diag event type

- DESCRIPTION

  - SYNOPSIS

  - ACCESSORS

  `$diag`-\>message

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Encoding - Set the encoding for the output stream

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$encoding` = `$e`-\>encoding

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Exception - Exception event

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$reason` = `$e`-\>error

- CAVEATS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Fail - Event for a simple failed assertion

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Generic - Generic event type.

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$e`-\>facet\_data($data), `$data` = `$e`-\>facet\_data, `$e`-\>callback($hub), `$e`-\>set\_callback(sub { ... }), `$bool` = `$e`-\>causes\_fail, `$e`-\>set\_causes\_fail($bool), `$bool` = `$e`-\>diagnostics, `$e`-\>set\_diagnostics($bool), `$bool_or_undef` = `$e`-\>global, `@bool_or_empty` = `$e`-\>global, `$e`-\>set\_global($bool\_or\_undef), `$bool` = `$e`-\>increments\_count, `$e`-\>set\_increments\_count($bool), `$bool` = `$e`-\>no\_display, `$e`-\>set\_no\_display($bool), `@plan` = `$e`-\>sets\_plan, `$e`-\>set\_sets\_plan(\\@plan), `$summary` = `$e`-\>summary, `$e`-\>set\_summary($summary\_or\_undef), `$int_or_undef` = `$e`-\>terminate, `@int_or_empty` = `$e`-\>terminate, `$e`-\>set\_terminate($int\_or\_undef)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Note - Note event type

- DESCRIPTION

  - SYNOPSIS

  - ACCESSORS

  `$note`-\>message

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Ok - Ok event type

- DESCRIPTION

  - SYNOPSIS

  - ACCESSORS

  `$rb` = `$e`-\>pass, `$name` = `$e`-\>name, `$b` = `$e`-\>effective\_pass

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Pass - Event for a simple passing assertion

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Plan - The event of a plan

- DESCRIPTION

  - SYNOPSIS

  - ACCESSORS

  `$num` = `$plan`-\>max, `$dir` = `$plan`-\>directive, `$reason` = `$plan`-\>reason

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Skip - Skip event type

- DESCRIPTION

  - SYNOPSIS

  - ACCESSORS

  `$reason` = `$e`-\>reason

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Subtest - Event for subtest types

- DESCRIPTION

  - ACCESSORS

  `$arrayref` = `$e`-\>subevents, `$bool` = `$e`-\>buffered

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::TAP::Version - Event for TAP version.

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$version` = `$e`-\>version

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::V2 - Second generation event.

- DESCRIPTION

  - SYNOPSIS

  - USING A CONTEXT

    - USING THE CONSTRUCTOR

    - METHODS

  `$fd` = `$e`-\>**facet\_data()**, `$about` = `$e`-\>**about()**, `$trace` = `$e`-\>**trace()**

  - MUTATION

    `$e`-\>add\_amnesty({...}), `$e`-\>add\_hub({...}), `$e`-\>set\_uuid($UUID), `$e`-\>set\_trace($trace)

  - LEGACY SUPPORT METHODS

    causes\_fail, diagnostics, global, increments\_count, no\_display, sets\_plan, subtest\_id, summary, terminate

- THIRD PARTY META-DATA

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Event::Waiting - Tell all procs/threads it is time to be done

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet - Base class for all event facets.

- DESCRIPTION

  - METHODS

  `$key` = `$facet_class`-\>**facet\_key()**, `$bool` = `$facet_class`-\>**is\_list()**, `$clone` = `$facet`-\>**clone()**, `$clone` = `$facet`-\>clone(%replace)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::About - Facet with event details.

- DESCRIPTION

  - FIELDS

  `$string` = `$about`-\>{details}, `$string` = `$about`-\>**details()**, `$package` = `$about`-\>{package}, `$package` = `$about`-\>**package()**, `$bool` = `$about`-\>{no\_display}, `$bool` = `$about`-\>**no\_display()**, `$uuid` = `$about`-\>{uuid}, `$uuid` = `$about`-\>**uuid()**, `$uuid` = `$about`-\>{eid}, `$uuid` = `$about`-\>**eid()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Amnesty - Facet for assertion amnesty.

- DESCRIPTION

  - NOTES

  - FIELDS

  `$string` = `$amnesty`-\>{details}, `$string` = `$amnesty`-\>**details()**, `$short_string` = `$amnesty`-\>{tag}, `$short_string` = `$amnesty`-\>**tag()**, `$bool` = `$amnesty`-\>{inherited}, `$bool` = `$amnesty`-\>**inherited()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Assert - Facet representing an assertion.

- DESCRIPTION

  - FIELDS

  `$string` = `$assert`-\>{details}, `$string` = `$assert`-\>**details()**, `$bool` = `$assert`-\>{pass}, `$bool` = `$assert`-\>**pass()**, `$bool` = `$assert`-\>{no\_debug}, `$bool` = `$assert`-\>**no\_debug()**, `$int` = `$assert`-\>{number}, `$int` = `$assert`-\>**number()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Control - Facet for hub actions and behaviors.

- DESCRIPTION

  - FIELDS

  `$string` = `$control`-\>{details}, `$string` = `$control`-\>**details()**, `$bool` = `$control`-\>{global}, `$bool` = `$control`-\>**global()**, `$exit` = `$control`-\>{terminate}, `$exit` = `$control`-\>**terminate()**, `$bool` = `$control`-\>{halt}, `$bool` = `$control`-\>**halt()**, `$bool` = `$control`-\>{has\_callback}, `$bool` = `$control`-\>**has\_callback()**, `$encoding` = `$control`-\>{encoding}, `$encoding` = `$control`-\>**encoding()**, `$phase` = `$control`-\>{phase}, `$phase` = `$control`-\>**phase()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Error - Facet for errors that need to be shown.

- DESCRIPTION

  - NOTES

  - FIELDS

  `$string` = `$error`-\>{details}, `$string` = `$error`-\>**details()**, `$short_string` = `$error`-\>{tag}, `$short_string` = `$error`-\>**tag()**, `$bool` = `$error`-\>{fail}, `$bool` = `$error`-\>**fail()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Hub - Facet for the hubs an event passes through.

- DESCRIPTION

  - FACET FIELDS

  `$string` = `$trace`-\>{details}, `$string` = `$trace`-\>**details()**, `$int` = `$trace`-\>{pid}, `$int` = `$trace`-\>**pid()**, `$int` = `$trace`-\>{tid}, `$int` = `$trace`-\>**tid()**, `$hid` = `$trace`-\>{hid}, `$hid` = `$trace`-\>**hid()**, `$huuid` = `$trace`-\>{huuid}, `$huuid` = `$trace`-\>**huuid()**, `$int` = `$trace`-\>{nested}, `$int` = `$trace`-\>**nested()**, `$bool` = `$trace`-\>{buffered}, `$bool` = `$trace`-\>**buffered()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Info - Facet for information a developer might care about.

- DESCRIPTION

  - NOTES

  - FIELDS

  `$string_or_structure` = `$info`-\>{details}, `$string_or_structure` = `$info`-\>**details()**, `$structure` = `$info`-\>{table}, `$structure` = `$info`-\>**table()**, `$short_string` = `$info`-\>{tag}, `$short_string` = `$info`-\>**tag()**, `$bool` = `$info`-\>{debug}, `$bool` = `$info`-\>**debug()**, `$bool` = `$info`-\>{important}, `$bool` = `$info`-\>important

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Info::Table - Intermediary representation of a table.

- DESCRIPTION

  - SYNOPSIS

  - ATTRIBUTES

  `$header_aref` = `$t`-\>**header()**, `$rows_aref` = `$t`-\>**rows()**, `$bool` = `$t`-\>**collapse()**, `$aref` = `$t`-\>**no\_collapse()**, `$str` = `$t`-\>**as\_string()**, `$href` = `$t`-\>**as\_hash()**, `%args` = `$t`-\>**info\_args()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Meta - Facet for meta-data

- DESCRIPTION

  - METHODS AND FIELDS

  `$anything` = `$meta`-\>{anything}, `$anything` = `$meta`-\>**anything()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Parent - Facet for events contains other events

- DESCRIPTION

  - FIELDS

  `$string` = `$parent`-\>{details}, `$string` = `$parent`-\>**details()**, `$hid` = `$parent`-\>{hid}, `$hid` = `$parent`-\>**hid()**, `$arrayref` = `$parent`-\>{children}, `$arrayref` = `$parent`-\>**children()**, `$bool` = `$parent`-\>{buffered}, `$bool` = `$parent`-\>**buffered()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Plan - Facet for setting the plan

- DESCRIPTION

  - FIELDS

  `$string` = `$plan`-\>{details}, `$string` = `$plan`-\>**details()**, `$positive_int` = `$plan`-\>{count}, `$positive_int` = `$plan`-\>**count()**, `$bool` = `$plan`-\>{skip}, `$bool` = `$plan`-\>**skip()**, `$bool` = `$plan`-\>{none}, `$bool` = `$plan`-\>**none()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Render - Facet that dictates how to render an event.

- DESCRIPTION

  - FIELDS

  `$string` = `$render`-\>\[#\]-\>{details}, `$string` = `$render`-\>\[#\]-\>**details()**, `$string` = `$render`-\>\[#\]-\>{tag}, `$string` = `$render`-\>\[#\]-\>**tag()**, `$string` = `$render`-\>\[#\]-\>{facet}, `$string` = `$render`-\>\[#\]-\>**facet()**, `$mode` = `$render`-\>\[#\]-\>{mode}, `$mode` = `$render`-\>\[#\]-\>**mode()**, calculated, replace

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::EventFacet::Trace - Debug information for events

- DESCRIPTION

  - SYNOPSIS

  - FACET FIELDS

  `$string` = `$trace`-\>{details}, `$string` = `$trace`-\>**details()**, `$frame` = `$trace`-\>{frame}, `$frame` = `$trace`-\>**frame()**, `$int` = `$trace`-\>{pid}, `$int` = `$trace`-\>**pid()**, `$int` = `$trace`-\>{tid}, `$int` = `$trace`-\>**tid()**, `$id` = `$trace`-\>{cid}, `$id` = `$trace`-\>**cid()**, `$uuid` = `$trace`-\>{uuid}, `$uuid` = `$trace`-\>**uuid()**, ($pkg, `$file`, `$line`, `$subname`) = `$trace`-\>call, `@caller` = `$trace`-\>full\_call, `$warning_bits` = `$trace`-\>warning\_bits

  - DISCOURAGED HUB RELATED FIELDS

    `$hid` = `$trace`-\>{hid}, `$hid` = `$trace`-\>**hid()**, `$huuid` = `$trace`-\>{huuid}, `$huuid` = `$trace`-\>**huuid()**, `$int` = `$trace`-\>{nested}, `$int` = `$trace`-\>**nested()**, `$bool` = `$trace`-\>{buffered}, `$bool` = `$trace`-\>**buffered()**

- METHODS

  `$trace`-\>set\_detail($msg), `$msg` = `$trace`-\>detail, `$str` = `$trace`-\>debug, `$trace`-\>alert($MESSAGE), `$trace`-\>throw($MESSAGE), ($package, `$file`, `$line`, `$subname`) = `$trace`-\>**call()**, `$pkg` = `$trace`-\>package, `$file` = `$trace`-\>file, `$line` = `$trace`-\>line, `$subname` = `$trace`-\>subname, `$sig` = trace-\>signature

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Formatter - Namespace for formatters.

- DESCRIPTION

  - CREATING FORMATTERS

  The number of tests that were planned, The number of tests actually seen, The number of tests which failed, A boolean indicating whether or not the test suite passed, A boolean indicating whether or not this call is for a subtest

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Formatter::TAP - Standard TAP formatter

- DESCRIPTION

  - SYNOPSIS

  - METHODS

  `$bool` = `$tap`-\>no\_numbers, `$tap`-\>set\_no\_numbers($bool), `$arrayref` = `$tap`-\>handles, `$tap`-\>set\_handles(\\@handles);, `$encoding` = `$tap`-\>encoding, `$tap`-\>encoding($encoding), `$tap`-\>write($e, `$num`)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>, Kent Fredric \<kentnl@cpan.org\>

- COPYRIGHT

  ### Test2::Hub - The conduit through which all events flow.

- SYNOPSIS

  - DESCRIPTION

  - COMMON TASKS

  - SENDING EVENTS

    - ALTERING OR REMOVING EVENTS

    - LISTENING FOR EVENTS

    - POST-TEST BEHAVIORS

    - SETTING THE FORMATTER

    - METHODS

  `$hub`-\>send($event), `$hub`-\>process($event), `$old` = `$hub`-\>format($formatter), `$sub` = `$hub`-\>listen(sub { ... }, `%optional_params`), `$hub`-\>unlisten($sub), `$sub` = `$hub`-\>filter(sub { ... }, `%optional_params`), `$sub` = `$hub`-\>pre\_filter(sub { ... }, `%optional_params`), `$hub`-\>unfilter($sub), `$hub`-\>pre\_unfilter($sub), `$hub`-\>follow\_op(sub { ... }), `$sub` = `$hub`-\>add\_context\_acquire(sub { ... });, `$hub`-\>remove\_context\_acquire($sub);, `$sub` = `$hub`-\>add\_context\_init(sub { ... });, `$hub`-\>remove\_context\_init($sub);, `$sub` = `$hub`-\>add\_context\_release(sub { ... });, `$hub`-\>remove\_context\_release($sub);, `$hub`-\>**cull()**, `$pid` = `$hub`-\>**pid()**, `$tid` = `$hub`-\>**tid()**, `$hud` = `$hub`-\>**hid()**, `$uuid` = `$hub`-\>**uuid()**, `$ipc` = `$hub`-\>**ipc()**, `$hub`-\>set\_no\_ending($bool), `$bool` = `$hub`-\>no\_ending, `$bool` = `$hub`-\>active, `$hub`-\>set\_active($bool)

  - STATE METHODS

    `$hub`-\>**reset\_state()**, `$num` = `$hub`-\>count, `$num` = `$hub`-\>failed, `$bool` = `$hub`-\>ended, `$bool` = `$hub`-\>is\_passing, `$hub`-\>is\_passing($bool), `$hub`-\>plan($plan), `$plan` = `$hub`-\>plan, `$bool` = `$hub`-\>check\_plan

- THIRD PARTY META-DATA

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Hub::Interceptor - Hub used by interceptor to grab results.

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Hub::Interceptor::Terminator - Exception class used by Test2::Hub::Interceptor

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Hub::Subtest - Hub used by subtests

- DESCRIPTION

  - TOGGLES

  `$bool` = `$hub`-\>manual\_skip\_all, `$hub`-\>set\_manual\_skip\_all($bool)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::IPC - Turn on IPC for threading or forking support.

- SYNOPSIS

  - DISABLING IT

    - EXPORTS

  **cull()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::IPC::Driver - Base class for Test2 IPC drivers.

- SYNOPSIS

  - METHODS

  `$self`-\>abort($msg), `$self`-\>abort\_trace($msg)

- LOADING DRIVERS

  - WRITING DRIVERS

  - METHODS SUBCLASSES MUST IMPLEMENT

    `$ipc`-\>is\_viable, `$ipc`-\>add\_hub($hid), `$ipc`-\>drop\_hub($hid), `$ipc`-\>send($hid, `$event`);, `$ipc`-\>send($hid, `$event`, `$global`);, `@events` = `$ipc`-\>cull($hid), `$ipc`-\>**waiting()**

  - METHODS SUBCLASSES MAY IMPLEMENT OR OVERRIDE

    `$ipc`-\>driver\_abort($msg)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::IPC::Driver::Files - Temp dir + Files concurrency model.

- DESCRIPTION

  - SYNOPSIS

  - ENVIRONMENT VARIABLES

  T2\_KEEP\_TEMPDIR=0, T2\_TEMPDIR\_TEMPLATE='test2-XXXXXX'

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual - Documentation hub for Test2 and Test2-Suite.

- DESCRIPTION

  - WRITING TESTS

  - WRITING TOOLS

  - GUTS AND INNER WORKINGS

  - A NOTE ON CONCURRENCY (SUPPORT FOR FORKING AND THREADING)

  - CONTRIBUTING

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Anatomy - The hub for documentation of the inner workings of Test2 components.

- DESCRIPTION

  - END TO END

  - EVENTS

  - THE CONTEXT

  - THE API AND THE API INSTANCE

  - HUBS

  - THE IPC SYSTEM

  - INTERNAL UTILITIES

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Anatomy::API - Internals documentation for the API.

- DESCRIPTION

  - IMPLEMENTATION DETAILS

  - Test2::API

    - Test2::API::Instance

    - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Anatomy::Context - Internals documentation for the Context objects.

- DESCRIPTION

  - WHAT IS THE CONTEXT OBJECT?

  - PRIMARY INTERFACE FOR TEST TOOLS

    - TRACK FILE AND LINE NUMBERS FOR ERROR REPORTING

    - PRESERVE $?, $!, $^E AND $@

    - FINALIZE THE API STATE

    - FIND/CREATE THE CURRENT/ROOT HUB

    - PROVIDE HOOKS

    - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Anatomy::EndToEnd, Test2::Manual::EndToEnd - Overview of Test2 from load to finish.

- DESCRIPTION

  - WHAT HAPPENS WHEN I LOAD THE API?

  A singleton instance of Test2::API::Instance is created, Several API functions are defined that use the singleton instance, Then what?

- WHAT HAPPENS WHEN I USE A TOOL?

  A tool function is run, The tool acquires a context object, The tool uses the context object to create, send, and return events, When done the tool MUST release the context, The tool returns

- WHAT HAPPENS WHEN I ACQUIRE A CONTEXT?

  $!, $@, $? and $^E are captured and preserved, The API state is changed to 'loaded', The current hub is found, Context acquire hooks fire, Any existing context is found, Stack depth is measured, A new context is created (if no existing context was found), Context init hooks fire (if no existing context was found), $!, $@, $?, and $^E are restored, The context is returned

- WHAT HAPPENS WHEN I SEND AN EVENT?

  The Test2::Event::Ok module is loaded, A new instance of Test2::Event::Ok is created, The event object is sent to the hub, The hub runs the event through any filters, The global test state is updated to reflect the event, The event is sent to the formatter, The event is sent to all listeners

- WHAT HAPPENS WHEN I RELEASE A CONTEXT?

  The current context clone is released, If this was the canonical context, it will actually release, Release hooks are called, The context is cleared, $!, $@, $?, and $^E are restored

- WHAT HAPPENS WHEN I USE **done\_testing()**?

  Any pending IPC events will be culled, Follow-up hooks are run, The final plan event is generated and processed, The current hub is finalized

- WHAT HAPPENS WHEN A TEST SCRIPT IS DONE?

  API Versions are checked, Any remaining context objects are cleaned up, Child processes are sent a 'waiting' event, The script will wait for all child processes and/or threads to complete, The hub stack is cleaned up, The root hub is finalized, Exit callbacks are called, The scripts exit value ($?) is set, Broken module diagnostics

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Anatomy::Event - The internals of events

- DESCRIPTION

  - HISTORY

  - THE EVENT OBJECT

  - THE FACET API

  assert =\> {details =\> `$name`, pass =\> `$bool`, no\_debug =\> `$bool`, number =\> `$maybe_int`}, about =\> {details =\> `$string`, no\_display =\> `$bool`, package =\> `$pkg`}, amnesty =\> \[{details =\> `$string`, tag =\> `$short_string`, inherited =\> `$bool`}\], control =\> {details =\> `$string`, global =\> `$bool`, terminate =\> `$maybe_int`, halt =\> `$bool`,  has\_callback =\> `$bool`, encoding =\> `$enc`}, errors =\> \[{details =\> `$string`, tag =\> `$short_string`, fail =\> `$bool`}\], info =\> \[{details =\> `$string`, tag =\> `$short_string`, debug =\> `$bool`, important =\> `$bool`}\], parent =\> {details =\> `$string`, hid =\> `$hid`, children =\> \[...\], buffered =\> 1}, plan =\> {details =\> `$string`, count =\> `$int`, skip =\> `$bool`, none =\> `$bool`}, trace =\> {details =\> `$string`, frame =\> \[$pkg, `$file`, `$line`, `$sub`\], pid =\> `$int`, tid =\> `$int`, cid =\> `$cid`, hid =\> `$hid`, nested =\> `$int`, buffered =\> `$bool`}

  - CUSTOM FACETS

    `$string` = `$facet_class`-\>facet\_key, `$bool` = `$facet_class`-\>is\_list

- THE OLD API

  `$bool` = `$e`-\>causes\_fail, `$bool` = `$e`-\>increments\_count, `$e`-\>callback($hub), `$num` = `$e`-\>nested, `$bool` = `$e`-\>global, `$code` = `$e`-\>terminate, `$msg` = `$e`-\>summary, ($count, `$directive`, `$reason`) = `$e`-\>**sets\_plan()**, `$bool` = `$e`-\>diagnostics, `$bool` = `$e`-\>no\_display

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Anatomy::Hubs - Internals documentation for the hub stack, and hubs.

- DESCRIPTION

  - WHAT IS A HUB?

  - WHY DO WE HAVE A HUB STACK?

  subtests, testing your test tools

- WHEN SHOULD I ADD A HUB TO THE STACK?

  - WHERE IS THE STACK?

  - WHAT ABOUT THE ROOT HUB?

  - HOW DO HUBS HANDLE IPC?

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Anatomy::IPC - Manual for the IPC system.

- DESCRIPTION

  - WHAT IS THE IPC SYSTEM

  - HOW DOES THE IPC SYSTEM EFFECT EVERYTHING?

  - WHAT DOES AN IPC DRIVER DO?

  - HOW DOES THE DEFAULT IPC DRIVER WORK?

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Anatomy::Utilities - Overview of utilities for Test2.

- DESCRIPTION

  - Test2::Util

  - Test2::Util::ExternalMeta

  - Test2::Util::Facets2Legacy

  - Test2::Util::HashBase

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Concurrency - Documentation for Concurrency support.

- FORKING

  - Test2

    - Test::Builder

    - Test2::Suite

    - Test::SharedFork

    - Others

    - THREADING

  - Test2

    - Test::Builder

    - Test2::Suite

    - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Contributing - How to contribute to the Test2 project.

- DESCRIPTION

  - WAYS TO HELP

  - REPORT BUGS

    Test2/Test-Builder/Test-More, Test2-Suite, Test2-Harness

  - SUBMIT PATCHES

    - ADD/UPDATE DOCUMENTATION

    - ANSWER QUESTIONS ON IRC/SLACK

    - WRITE NEW TOOLS USING TEST2

    - PORT OLD TOOLS TO TEST2

    - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Testing - Hub for documentation about writing tests with Test2.

- DESCRIPTION

  ### Test2::Manual::Testing, When writing tests there are a couple namespaces to focus on:

Test2::Tools::\*, Test2::Plugins::\*, Test2::Bundle::\*, Test2::Require::\*

- LISTING DEPENDENCIES

  - TUTORIALS

  - SIMPLE/INTRODUCTION TUTORIAL

    - MIGRATING FROM TEST::BUILDER and TEST::MORE

    - ADVANCED PLANNING

    - TODO TESTS

    - SUBTESTS

    - COMPARISONS

    - TESTING EXPORTERS

    - TESTING CLASSES

    - TRAPPING

    - DEFERRED TESTING

    - MANAGING ENCODINGS

    - AUTO-ABORT ON FAILURE

    - CONTROLLING RANDOM BEHAVIOR

    - WRITING YOUR OWN BUNDLE

    - TOOLSET DOCUMENTATION

  - PLUGIN DOCUMENTATION

  - BUNDLE DOCUMENTATION

  - REQUIRE DOCUMENTATION

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Testing::Introduction - Introduction to testing with Test2.

- DESCRIPTION

  - BOILERPLATE

  - THE TEST FILE

    use Test2::V0;, done\_testing;

  - DIST CONFIG

    - MAKING ASSERTIONS

  - RUNNING THE TEST

  - RUN DIRECTLY

    - USING YATH

    - USING PROVE

    - THE "PLAN"

  **done\_testing()**, plan($COUNT)

- ADDITIONAL ASSERTION TOOLS

  is($a, `$b`, `$description`), like($a, `$b`, `$description`)

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Testing::Migrating - How to migrate existing tests from Test::More to Test2.

- DESCRIPTION

  - LEGACY TEST

  - BOILERPLATE

  Replace Test::More with Test2::V0, NOTE: srand, Stop using **use\_ok()**, Stop using **require\_ok()**, Remove strict/warnings (optional), Change where the plan is set

- SIMPLE ASSERTIONS

  - TODO

  todo `$reason` =\> sub { ... }, { my `$TODO` = todo `$reason`; ... }

- DEEP COMPARISONS

  - COMPARING REFERENCES

  - TOOLS THAT ARE GONE

  - TOOLS THAT HAVE CHANGED

  - FINAL VERSION

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Testing::Planning - The many ways to set a plan.

- DESCRIPTION

  - TEST COUNT

  - DONE TESTING

  - SKIP ALL

  - CUSTOM PLAN EVENT

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Testing::Todo - Tutorial for marking tests as TODO.

- DESCRIPTION

  - THE TOOL

  - TODO BLOCK

    - TODO VARIABLE

    - MANUAL TODO EVENTS

  - HOW THE TODO TOOLS WORK UNDER THE HOOD

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling - Manual page for tool authors.

- DESCRIPTION

  - TOOL TUTORIALS

  - FIRST TOOL

    - MOVING FROM Test::Builder

    - NESTING TOOLS

    - TOOLS WITH SUBTESTS

    - TESTING YOUR TEST TOOLS

    - PLUGIN TUTORIALS

  - TAKING ACTION WHEN A NEW TOOL STARTS

    - TAKING ACTION AFTER A TOOL IS DONE

    - TAKING ACTION AT THE END OF TESTING

    - TAKING ACTION JUST BEFORE EXIT

    - WRITING A SIMPLE JSONL FORMATTER

  - WHERE TO FIND HOOKS AND APIS

  global API, In hubs

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::FirstTool - Write your first tool with Test2.

- DESCRIPTION

  - COMPLETE CODE UP FRONT

  - LINE BY LINE

  sub ok($;$@) {, my ($bool, `$name`, `@diag`) = `@_`;, my `$ctx` = **context()**;, return `$ctx`-\>pass\_and\_release($name) if `$bool`;, return `$ctx`-\>fail\_and\_release($name, `@diag`);

- CONTEXT OBJECT DOCUMENTATION

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::Formatter - How to write a custom formatter, in our case a JSONL formatter.

- DESCRIPTION

  - COMPLETE CODE UP FRONT

  - LINE BY LINE

  use base qw/Test2::Formatter/;, sub new { bless {}, shift }, sub encoding {};, sub write { ... }, my ($self, `$e`, `$num`, `$f`) = `@_`;, `$self`, `$e`, `$num`, `$f`, `$f` \|\|= `$e`-\>facet\_data;, print encode\_json($f), "\\n";

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::Nesting - Tutorial for using other tools within your own.

- DESCRIPTION

  - NAIVE WAY

  - WHATS WRONG WITH IT?

    - HOW TO FIX IT

    - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::Plugin::TestExit - How to safely add pre-exit behaviors.

- DESCRIPTION

  - COMPLETE CODE UP FRONT

  - LINE BY LINE

  use Test2::API qw{test2\_add\_callback\_exit};, test2\_add\_callback\_exit(sub { ... });, my ($ctx, `$orig_code`, `$new_exit_code_ref`) = `@_`, return if `$orig_code` == 42, $$new\_exit\_code\_ref = 42

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::Plugin::TestingDone - Run code when the test file is finished, or when done\_testing is called.

- DESCRIPTION

  - COMPLETE CODE UP FRONT

  - LINE BY LINE

  use Test2::API qw{test2\_add\_callback\_testing\_done};, test2\_add\_callback\_testing\_done(sub { ... });, ok(!$some\_global, '$some\_global was not set'), print "The test file is done, or done\_testing was just called\\n"

- UNDER THE HOOD

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::Plugin::ToolCompletes - How to add behaviors that occur when a tool completes work.

- DESCRIPTION

  - COMPLETE CODE UP FRONT

  - LINE BY LINE

  use Test2::API qw{test2\_add\_callback\_context\_release};, test2\_add\_callback\_context\_release(sub { ... }), my `$ctx_ref` = shift, print "Context was released\\n"

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::Plugin::ToolStarts - How to add behaviors that occur when a tool starts work.

- DESCRIPTION

  - COMPLETE CODE UP FRONT

  - LINE BY LINE

  use Test2::API qw{test2\_add\_callback\_context\_init test2\_add\_callback\_context\_acquire};, test2\_add\_callback\_context\_acquire(sub { ... }), my `$params_ref` = shift, print "A tool has requested the context\\n", test2\_add\_callback\_context\_init(sub { ... }), my `$ctx_ref` = shift, print "A new context was created\\n"

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::Subtest - How to implement a tool that makes use of subtests.

- DESCRIPTION

  - WHICH TYPE OF SUBTEST DO I NEED?

  - SUBTEST WITH USER SUPPLIED CODEREF

    `@args`, \\%params, buffered =\> `$bool`, inherit\_trace =\> `$bool`, no\_fork =\> `$bool`

  - SUBTEST WITH TOOL-SIDE CODEREF

    - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::TestBuilder - This section maps Test::Builder methods to Test2 concepts.

- DESCRIPTION

  - CONTEXT

  - TEST BUILDER METHODS

  `$tb`-\>BAIL\_OUT($reason), `$tb`-\>diag($string), `$tb`-\>note($string), `$tb`-\>done\_testing, `$tb`-\>like, `$tb`-\>unlike, `$tb`-\>ok($bool, `$name`), `$tb`-\>subtest, `$tb`-\>todo\_start, `$tb`-\>todo\_end, `$tb`-\>output, `$tb`-\>failure\_output, and `$tb`-\>todo\_output

- LEVEL

  - TODO

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Manual::Tooling::Testing - Tutorial on how to test your testing tools.

- DESCRIPTION

  - THE HOLY GRAIL OF TESTING YOUR TOOLS

  - ADDITIONAL HELPERS

  - Test2::Tools::Tester

    - Test2::Tools::HarnessTester

    - Test2::Tools::Compare

    event `$TYPE` =\> .., fail\_events `$TYPE` =\> ..

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Mock - Module for managing mocked classes and instances.

- DESCRIPTION

  - SYNOPSIS

  - CONSTRUCTION

  - METHODS

  `$mock` = Test2::Mock-\>new(class =\> `$CLASS`, ...), `$mock`-\>track($bool), `$hashref` = `$mock`-\>sub\_tracking, `$arrayref` = `$mock`-\>call\_tracking, `$mock`-\>**clear\_sub\_tracking()**, `$mock`-\>clear\_sub\_tracking(\\@subnames), `$mock`-\>**clear\_call\_tracking()**, `$mock`-\>add('symbol' =\> ..., 'symbol2' =\> ...), `$mock`-\>override('symbol1' =\> ..., 'symbol2' =\> ...), `$mock`-\>set('symbol1' =\> ..., 'symbol2' =\> ...), `$mock`-\>restore($SYMBOL), `$mock`-\>reset($SYMBOL), `$mock`-\>orig($SYMBOL), `$mock`-\>current($SYMBOL), `$mock`-\>reset\_all, `$mock`-\>add\_constructor($NAME =\> `$TYPE`), `$mock`-\>override\_constructor($NAME =\> `$TYPE`), `$mock`-\>before($NAME, sub { ... }), `$mock`-\>after($NAME, sub { ... }), `$mock`-\>around($NAME, sub { ... }), `$mock`-\>autoload, `$mock`-\>block\_load, `$pm_file` = `$mock`-\>file, `$bool` = `$mock`-\>purge\_on\_destroy($bool), `$stash` = `$mock`-\>stash, `$class` = `$mock`-\>class, `$p` = `$mock`-\>parent, `$c` = `$mock`-\>child

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Plugin - Documentation for plugins

- DESCRIPTION

  - FAQ

  Should I subclass Test2::Plugin?

- HOW DO I WRITE A PLUGIN?

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Plugin::BailOnFail - Automatically bail out of testing on the first test failure.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Plugin::DieOnFail - Automatically die on the first test failure.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Plugin::ExitSummary - Add extra diagnostics on failure at the end of the test.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Plugin::SRand - Control the random seed for more controlled test environments.

- DESCRIPTION

  - SYNOPSIS

  - NOTE ON LOAD ORDER

  - CAVEATS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Plugin::Times - Output timing data at the end of the test.

- CAVEAT

  - DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Plugin::UTF8 - Test2 plugin to test with utf8.

- DESCRIPTION

  - SYNOPSIS

  - import options

  - encoding\_only

    - NOTES

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require - Base class and documentation for skip-unless type test packages.

- DESCRIPTION

  - HOW DO I WRITE A 'REQUIRE' MODULE?

  - AS A SUBCLASS

    - STAND-ALONE

    - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::AuthorTesting - Only run a test when the AUTHOR\_TESTING environment variable is set.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::AutomatedTesting - Only run a test when the AUTOMATED\_TESTING environment variable is set.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::EnvVar - Only run a test when a specific environment variable is set.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::ExtendedTesting - Only run a test when the EXTENDED\_TESTING environment variable is set.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::Fork - Skip a test file unless the system supports forking

- DESCRIPTION

  - SYNOPSIS

  - EXPLANATION

  - SEE ALSO

  Test2::Require::CanReallyfork, Test2::Require::CanThread

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::Module - Skip tests if certain packages are not installed, or insufficient versions.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::NonInteractiveTesting - Only run a test when the NONINTERACTIVE\_TESTING environment variable is set.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::Perl - Skip the test unless the necessary version of Perl is installed.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::RealFork - Skip a test file unless the system supports true forking

- DESCRIPTION

  - SYNOPSIS

  - SEE ALSO

  Test2::Require::Canfork, Test2::Require::CanThread

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::ReleaseTesting - Only run a test when the RELEASE\_TESTING environment variable is set.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Require::Threads - Skip a test file unless the system supports threading

- DESCRIPTION

  - SYNOPSIS

  - EXPLANATION

  - SEE ALSO

  Test2::Require::CanFork, Test2

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Suite - Distribution with a rich set of tools built upon the Test2 framework.

- DESCRIPTION

  - WHAT ARE TOOLS, PLUGINS, AND BUNDLES?

    TOOLS, PLUGINS, BUNDLES

- INCLUDED BUNDLES

  Test2::V#, Extended, More, Simple

- INCLUDED TOOLS

  Basic, Compare, ClassicCompare, Class, Defer, Encoding, Exports, Mock, Ref, Spec, Subtest, Target

- INCLUDED PLUGINS

  BailOnFail, DieOnFail, ExitSummary, SRand, UTF8

- INCLUDED REQUIREMENT CHECKERS

  AuthorTesting, EnvVar, Fork, RealFork, Module, Perl, Threads

- SEE ALSO

  - CONTACTING US

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Todo - TODO extension for Test2.

- DESCRIPTION

  - SYNOPSIS

  - CONSTRUCTION OPTIONS

  reason (required), hub (optional)

- INSTANCE METHODS

  `$todo`-\>end

- CLASS METHODS

  `$count` = Test2::Todo-\>hub\_in\_todo($hub)

- OTHER NOTES

  - How it works

    - $todo-\>end is called at destruction

    - Can I use multiple instances?

    - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools - Documentation for Tools.

- DESCRIPTION

  - FAQ

  Why is it called Test2::Tools, and not Test2::Tool?, Should my tools subclass Test2::Tools?

- HOW DO I WRITE A 'TOOLS' MODULE?

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::AsyncSubtest - Tools for writing async subtests.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  `$ast` = async\_subtest `$name`, `$ast` = async\_subtest `$name` =\> sub { ... }, `$ast` = async\_subtest `$name` =\> \\%hub\_params, sub { ... }, `$ast` = fork\_subtest `$name` =\> sub { ... }, `$ast` = fork\_subtest `$name` =\> \\%hub\_params, sub { ... }, `$ast` = thread\_subtest `$name` =\> sub { ... }, `$ast` = thread\_subtest `$name` =\> \\%hub\_params, sub { ... }

- NOTES

  Async Subtests are always buffered, Do not use **done\_testing()** yourself

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Basic - Test2 implementation of the basic testing tools.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  - PLANNING

    plan($num), plan('tests' =\> `$num`), plan('skip\_all' =\> `$reason`), skip\_all($reason), done\_testing, bail\_out($reason)

  - ASSERTIONS

    ok($bool), ok($bool, `$name`), ok($bool, `$name`, `@diag`), **pass()**, pass($name), **fail()**, fail($name), fail($name, `@diag`)

  - DIAGNOSTICS

    diag(@messages), note(@messages)

  - META

    `$todo` = todo($reason), todo `$reason` =\> sub { ... }, skip($why), skip($why, `$count`)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Class - Test2 implementation of the tools for testing classes.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  can\_ok($thing, `@methods`), can\_ok($thing, \\@methods, `$test_name`), isa\_ok($thing, `@classes`), isa\_ok($thing, \\@classes, `$test_name`), DOES\_ok($thing, `@roles`), DOES\_ok($thing, \\@roles, `$test_name`)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::ClassicCompare - Classic (Test::More style) comparison tools.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  `$bool` = is($got, `$expect`), `$bool` = is($got, `$expect`, `$name`), `$bool` = is($got, `$expect`, `$name`, `@diag`), `$bool` = isnt($got, `$dont_expect`), `$bool` = isnt($got, `$dont_expect`, `$name`), `$bool` = isnt($got, `$dont_expect`, `$name`, `@diag`), `$bool` = like($got, `$pattern`), `$bool` = like($got, `$pattern`, `$name`), `$bool` = like($got, `$pattern`, `$name`, `@diag`), `$bool` = unlike($got, `$pattern`), `$bool` = unlike($got, `$pattern`, `$name`), `$bool` = unlike($got, `$pattern`, `$name`, `@diag`), `$bool` = is\_deeply($got, `$expect`), `$bool` = is\_deeply($got, `$expect`, `$name`), `$bool` = is\_deeply($got, `$expect`, `$name`, `@diag`), cmp\_ok($got, `$op`, `$expect`), cmp\_ok($got, `$op`, `$expect`, `$name`), cmp\_ok($got, `$op`, `$expect`, `$name`, `@diag`), !=  (num), \>=  (num), \<=  (num), \>   (num), \< \
    (num), \<=\> (num), eq  (str), ne  (str), gt  (str), lt	(str), ge  (str), le  (str), cmp (str), !~  (str), &&, \|\|, xor, or, and, //, &, \|, ~~

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Compare - Tools for comparing deep data structures.

- DESCRIPTION

  - SYNOPSIS

  - ADVANCED

    - COMPARISON TOOLS

  `$bool` = is($got, `$expect`), `$bool` = is($got, `$expect`, `$name`), `$bool` = is($got, `$expect`, `$name`, `@diag`), `$bool` = isnt($got, `$expect`), `$bool` = isnt($got, `$expect`, `$name`), `$bool` = isnt($got, `$expect`, `$name`, `@diag`), `$bool` = like($got, `$expect`), `$bool` = like($got, `$expect`, `$name`), `$bool` = like($got, `$expect`, `$name`, `@diag`), `$bool` = unlike($got, `$expect`), `$bool` = unlike($got, `$expect`, `$name`), `$bool` = unlike($got, `$expect`, `$name`, `@diag`)

  - QUICK CHECKS

    `$check` = T(), `$check` = F(), `$check` = D(), `$check` = U(), `$check` = **DF()**, `$check` = E(), `$check` = **DNE()**, `$check` = **FDNE()**, `$check` = L()

  - VALUE SPECIFICATIONS

    `$check` = string "...", `$check` = !string "...", `$check` = number ...;, `$check` = !number ...;, `$check` = number\_lt ...;, `$check` = number\_le ...;, `$check` = number\_ge ...;, `$check` = number\_gt ...;, `$check` = float ...;, `$check` = !float ...;, `$check` = within($num, `$tolerance`);, `$check` = !within($num, `$tolerance`);, `$check` = rounded($num, `$precision`);, `$check` = !rounded($num, `$precision`);, `$check` = bool ...;, `$check` = !bool ...;, `$check` = check\_isa ...;, `$check` = !check\_isa ...;, `$check` = match qr/.../, `$check` = !mismatch qr/.../, `$check` = !match qr/.../, `$check` = mismatch qr/.../, `$check` = validator(sub{ ... }), `$check` = validator($NAME =\> sub{ ... }), `$check` = validator($OP, `$NAME`, sub{ ... }), `$check` = exact\_ref($ref)

  - SET BUILDERS

    my `$check` = check\_set($check1, `$check2`, ...), my `$check` = in\_set($check1, `$check2`, ...), not\_in\_set($check1, `$check2`, ...), check `$thing`

  - HASH BUILDER

    `$check` = hash { ... }, field `$NAME` =\> `$VAL`, field `$NAME` =\> `$CHECK`, all\_keys($CHECK1, `$CHECK2`, ...), all\_vals($CHECK1, `$CHECK2`, ...), all\_values($CHECK1, `$CHECK2`, ...), **end()**, **etc()**, **DNE()**

  - ARRAY BUILDER

    `$check` = array { ... }, item `$VAL`, item `$CHECK`, item `$IDX`, `$VAL`, item `$IDX`, `$CHECK`, filter\_items { my `@remaining` = `@_`; ...; return `@filtered` }, all\_items($CHECK1, `$CHECK2`, ...), **end()**, **etc()**, **DNE()**

  - BAG BUILDER

    `$check` = bag { ... }, item `$VAL`, item `$CHECK`, all\_items($CHECK1, `$CHECK2`, ...), **end()**, **etc()**

  - ORDERED SUBSET BUILDER

    `$check` = subset { ... }, item `$VAL`, item `$CHECK`

  - META BUILDER

    meta { ... }, meta\_check { ... }, prop `$NAME` =\> `$VAL`, prop `$NAME` =\> `$CHECK`, 'blessed', 'reftype', 'isa', 'this', 'size'

  - OBJECT BUILDER

    `$check` = object { ... }, call `$METHOD_NAME` =\> `$RESULT`, call `$METHOD_NAME` =\> `$CHECK`, call \[$METHOD\_NAME, `@METHOD_ARGS`\] =\> `$RESULT`, call \[$METHOD\_NAME, `@METHOD_ARGS`\] =\> `$CHECK`, call sub { ... }, `$RESULT`, call sub { ... }, `$CHECK`, call\_list `$METHOD_NAME` =\> `$RESULT`, call\_list `$METHOD_NAME` =\> `$CHECK`, call\_list \[$METHOD\_NAME, `@METHOD_ARGS`\] =\> `$RESULT`, call\_list \[$METHOD\_NAME, `@METHOD_ARGS`\] =\> `$CHECK`, call\_list sub { ... }, `$RESULT`, call\_list sub { ... }, `$CHECK`, call\_hash `$METHOD_NAME` =\> `$RESULT`, call\_hash `$METHOD_NAME` =\> `$CHECK`, call\_hash \[$METHOD\_NAME, `@METHOD_ARGS`\] =\> `$RESULT`, call\_hash \[$METHOD\_NAME, `@METHOD_ARGS`\] =\> `$CHECK`, call\_hash sub { ... }, `$RESULT`, call\_hash sub { ... }, `$CHECK`, field `$NAME` =\> `$VAL`, item `$VAL`, item `$IDX`, `$VAL`, prop `$NAME` =\> `$VAL`, prop `$NAME` =\> `$CHECK`, 'blessed', 'reftype', 'isa', 'this', 'size', **DNE()**, **end()**, **etc()**

  - EVENT BUILDERS

    `$check` = event `$TYPE`;, `$check` = event `$TYPE` =\> sub { ... };, `$check` = event `$TYPE` =\> { ... };, 'file', 'line', 'package', 'subname', 'skip', 'todo', 'trace', 'tid', 'pid', `@checks` = fail\_events `$TYPE`;, `@checks` = fail\_events `$TYPE` =\> sub { ... };, `@checks` = fail\_events `$TYPE` =\> { ... };

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Defer - Write tests that get executed at a later time

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  def function =\> `@args`;, **do\_def()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Encoding - Tools for managing the encoding of Test2 based tests.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  set\_encoding($encoding)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Event - Tools for generating test events.

- DESCRIPTION

  - EXPORTS

  `$e` = gen\_event($TYPE), `$e` = gen\_event($TYPE, `%FIELDS`), `$e` = gen\_event 'Ok';, `$e` = gen\_event Ok =\> ( ... ), `$e` = gen\_event '+Test2::Event::Ok' =\> ( ... )

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Exception - Test2 based tools for checking exceptions

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  `$e` = dies { ... }, `$bool` = lives { ... }, `$bool` = try\_ok { ... }, `$bool` = try\_ok { ... } "Test Description"

- DIFFERENCES FROM TEST::FATAL

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Exports - Tools for validating exporters.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  imported\_ok(@SYMBOLS), not\_imported\_ok(@SYMBOLS)

- CAVEATS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::GenTemp - Tool for generating a populated temp directory.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  gen\_temp(file =\> 'content', subdir =\> \[ sub\_dir\_file =\> 'content', ...\], ...), gen\_temp(-tempdir =\> \\@TEMPDIR\_ARGS, file =\> 'content', subdir =\> \[ sub\_dir\_file =\> 'content', ...\], ...)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Grab - Temporarily intercept all events without adding a scope level.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  `$grab` = **grab()**

- SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Mock - Class/Instance mocking for Test2.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  - DEFAULT

    mock, `@mocks` = mocked($object), `@mocks` = mocked($class), `$mock` = mock `$class` =\> ( ... );, `$mock` = mock `$instance` =\> ( ... ), `$mock` = mock 'class', `$class` =\> ( ... ), `$obj` = **mock()**, `$obj` = mock { ... }, `$obj` = mock 'obj', ...;, mock `$mock` =\> sub { ... }, mock `$method` =\> ( ... )

  - BY REQUEST

    `$obj` = mock\_obj( ... ), `$obj` = mock\_obj { ... } =\> ( ... ), `$obj` = mock\_obj sub { ... }, `$obj` = mock\_obj { ... } =\> sub { ... }, `$mock` = mock\_class `$class` =\> ( ... ), `$mock` = mock\_class `$instance` =\> ( ... ), `$mock` = mock\_class ... =\> sub { ... }, mock\_build `$mock` =\> sub { ... }, `$mock` = **mock\_building()**, mock\_do `$method` =\> `$args`, `$sub` = mock\_accessor `$field`, `$sub` = mock\_getter `$field`, `$sub` = mock\_setter `$field`, `%pairs` = mock\_accessors(qw/name1 name2 name3/), `%pairs` = mock\_getters(qw/name1 name2 name3/), `%pairs` = mock\_setters(qw/name1 name2 name3/)

- MOCK CONTROL OBJECTS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Ref - Tools for validating references.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  ref\_ok($thing), ref\_ok($thing, `$type`), ref\_ok($thing, `$type`, `$name`), ref\_is($ref1, `$ref2`, `$name`), ref\_is\_not($ref1, `$ref2`, `$name`)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Refcount, "Test2::Tools::Refcount" - assert reference counts on objects

- SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  - is\_refcount

  - is\_oneref

  - refcount

  - EXAMPLE

  - BUGS

  Temporaries created on the stack

- ACKNOWLEDGEMENTS

  - AUTHOR

  ### Test2::Tools::Spec - RSPEC implementation on top of Test2::Workflow

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  NAME, PARAMS, flat =\> `$bool`, async =\> `$bool`, iso =\> `$bool`, todo =\> `$reason`, skip =\> `$reason`, CODEREF

  - ESSENTIALS

    tests NAME =\> sub { ... }, tests NAME =\> \\%params, sub { ... }, tests($NAME, \\%PARAMS, \\&CODE), it NAME =\> sub { ... }, it NAME =\> \\%params, sub { ... }, it($NAME, \\%PARAMS, \\&CODE), case NAME =\> sub { ... }, case NAME =\> \\%params, sub { ... }, case($NAME, \\%PARAMS, \\&CODE), before\_each NAME =\> sub { ... }, before\_each NAME =\> \\%params, sub { ... }, before\_each($NAME, \\%PARAMS, \\&CODE), before\_case NAME =\> sub { ... }, before\_case NAME =\> \\%params, sub { ... }, before\_case($NAME, \\%PARAMS, \\&CODE), before\_all NAME =\> sub { ... }, before\_all NAME =\> \\%params, sub { ... }, before\_all($NAME, \\%PARAMS, \\&CODE), around\_each NAME =\> sub { ... }, around\_each NAME =\> \\%params, sub { ... }, around\_each($NAME, \\%PARAMS, \\&CODE), around\_case NAME =\> sub { ... }, around\_case NAME =\> \\%params, sub { ... }, around\_case($NAME, \\%PARAMS, \\&CODE), around\_all NAME =\> sub { ... }, around\_all NAME =\> \\%params, sub { ... }, around\_all($NAME, \\%PARAMS, \\&CODE), after\_each NAME =\> sub { ... }, after\_each NAME =\> \\%params, sub { ... }, after\_each($NAME, \\%PARAMS, \\&CODE), after\_case NAME =\> sub { ... }, after\_case NAME =\> \\%params, sub { ... }, after\_case($NAME, \\%PARAMS, \\&CODE), after\_all NAME =\> sub { ... }, after\_all NAME =\> \\%params, sub { ... }, after\_all($NAME, \\%PARAMS, \\&CODE)

  - SHORTCUTS

    mini NAME =\> sub { ... }, iso NAME =\> sub { ... }, miso NAME =\> sub { ... }, async NAME =\> sub { ... }, masync NAME =\> sub { ... }

  - CUSTOM ATTRIBUTE DEFAULTS

    - EXECUTION ORDER

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Subtest - Tools for writing subtests

- DESCRIPTION

  - SYNOPSIS

  - BUFFERED

    - STREAMED

    - IMPORTANT NOTE

  - EXPORTS

  subtest\_streamed `$name` =\> `$sub`, subtest\_streamed($name, `$sub`, `@args`), subtest\_streamed `$name` =\> \\%params, `$sub`, subtest\_streamed($name, \\%params, `$sub`, `@args`), subtest\_buffered `$name` =\> `$sub`, subtest\_buffered($name, `$sub`, `@args`), subtest\_buffered `$name` =\> \\%params, `$sub`, subtest\_buffered($name, \\%params, `$sub`, `@args`)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Target - Alias the testing target package.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Tester - Tools to help you test other testing tools.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  `$array_ref` = filter `$events` =\> `$PACKAGE`, `$array_ref` = filter `$events` =\> `$PACKAGE1`, `$PACKAGE2`, `$array_ref` = filter `$events` =\> qr/match/, `$array_ref` = filter `$events` =\> qr/match/, `$PACKAGE`, `$grouped` = group\_events($events), `$arrayref` = facets TYPE =\> `$events`

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Tiny - Tiny set of tools for unfortunate souls who cannot use Test2::Suite.

- DESCRIPTION

  - USE Test2::Suite INSTEAD

  - EXPORTS

  ok($bool, `$name`), ok($bool, `$name`, `@diag`), is($got, `$want`, `$name`), is($got, `$want`, `$name`, `@diag`), isnt($got, `$do_not_want`, `$name`), isnt($got, `$do_not_want`, `$name`, `@diag`), like($got, `$regex`, `$name`), like($got, `$regex`, `$name`, `@diag`), unlike($got, `$regex`, `$name`), unlike($got, `$regex`, `$name`, `@diag`), is\_deeply($got, `$want`, `$name`), is\_deeply($got, `$want`, `$name`, `@diag`), diag($msg), note($msg), skip\_all($reason), todo `$reason` =\> sub { ... }, plan($count), **done\_testing()**, `$warnings` = warnings { ... }, `$exception` = exception { ... }, tests `$name` =\> sub { ... }, `$output` = capture { ... }

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Tools::Warnings - Tools to verify warnings.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  `$count` = warns { ... }, `$warning` = warning { ... }, `$warnings_ref` = warnings { ... }, `$bool` = no\_warnings { ... }

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Transition - Transition notes when upgrading to Test2

- DESCRIPTION

  - THINGS THAT BREAK

  - Test::Builder1.5/2 conditionals

    - Replacing the Test::Builder singleton

    - Directly Accessing Hash Elements

    - Subtest indentation

    - DISTRIBUTIONS THAT BREAK OR NEED TO BE UPGRADED

  - WORKS BUT TESTS WILL FAIL

    Test::DBIx::Class::Schema, Device::Chip

  - UPGRADE SUGGESTED

    Test::Exception, Data::Peek, circular::require, Test::Module::Used, Test::Moose::More, Test::FITesque, Test::Kit, autouse

  - NEED TO UPGRADE

    Test::SharedFork, Test::Builder::Clutch, Test::Dist::VersionSync, Test::Modern, Test::UseAllModules, Test::More::Prefix

  - STILL BROKEN

    Test::Aggregate, Test::Wrapper, Test::ParallelSubtest, Test::Pretty, Net::BitTorrent, Test::Group, Test::Flatten, Log::Dispatch::Config::TestLog, Test::Able

- MAKE ASSERTIONS -\> SEND EVENTS

  - LEGACY

    - TEST2

    ok($bool, `$name`), diag(@messages), note(@messages), subtest($name, `$code`)

- WRAP EXISTING TOOLS

  - LEGACY

    - TEST2

    - USING UTF8

  - LEGACY

    - TEST2

    - AUTHORS, CONTRIBUTORS AND REVIEWERS

  Chad Granum (EXODIST) \<exodist@cpan.org\>

- SOURCE

  - MAINTAINER

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util - Tools used by Test2 and friends.

- DESCRIPTION

  - EXPORTS

  ($success, `$error`) = try { ... }, protect { ... }, CAN\_FORK, CAN\_REALLY\_FORK, CAN\_THREAD, USE\_THREADS, get\_tid, my `$file` = pkg\_to\_file($package), `$string` = **ipc\_separator()**, `$string` = **gen\_uid()**, ($ok, `$err`) = do\_rename($old\_name, `$new_name`), ($ok, `$err`) = do\_unlink($filename), ($ok, `$err`) = try\_sig\_mask { ... }, SIGINT, SIGALRM, SIGHUP, SIGTERM, SIGUSR1, SIGUSR2

- NOTES && CAVEATS

  Devel::Cover

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>, Kent Fredric \<kentnl@cpan.org\>

- COPYRIGHT

  ### Test2::Util::ExternalMeta - Allow third party tools to safely attach meta-data to your instances.

- DESCRIPTION

  - SYNOPSIS

  - WHERE IS THE DATA STORED?

  - EXPORTS

  `$val` = `$obj`-\>meta($key), `$val` = `$obj`-\>meta($key, `$default`), `$val` = `$obj`-\>get\_meta($key), `$val` = `$obj`-\>delete\_meta($key), `$obj`-\>set\_meta($key, `$val`)

- META-KEY RESTRICTIONS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Facets2Legacy - Convert facet data to the legacy event API.

- DESCRIPTION

  - SYNOPSIS

  - AS METHODS

    - AS FUNCTIONS

    - NOTE ON CYCLES

  - EXPORTS

  `$bool` = `$e`-\>**causes\_fail()**, `$bool` = causes\_fail($f), `$bool` = `$e`-\>**diagnostics()**, `$bool` = diagnostics($f), `$bool` = `$e`-\>**global()**, `$bool` = global($f), `$bool` = `$e`-\>**increments\_count()**, `$bool` = increments\_count($f), `$bool` = `$e`-\>**no\_display()**, `$bool` = no\_display($f), ($max, `$directive`, `$reason`) = `$e`-\>**sets\_plan()**, ($max, `$directive`, `$reason`) = sets\_plan($f), `$id` = `$e`-\>**subtest\_id()**, `$id` = subtest\_id($f), `$string` = `$e`-\>**summary()**, `$string` = summary($f), `$undef_or_int` = `$e`-\>**terminate()**, `$undef_or_int` = terminate($f), `$uuid` = `$e`-\>**uuid()**, `$uuid` = uuid($f)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Grabber - Object used to temporarily intercept all events.

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  `$grab` = **grab()**

- METHODS

  `$grab` = `$class`-\>**new()**, `$ar` = `$grab`-\>**flush()**, `$ar` = `$grab`-\>**events()**, `$ar` = `$grab`-\>**finish()**, `$hub` = `$grab`-\>**hub()**

- ENDING BEHAVIOR

  - SEE ALSO

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Guard - Inline copy of Scope::Guard

- SEE ALSO

  - ORIGINAL AUTHOR

  chocolateboy \<chocolate@cpan.org\>

  - INLINE AND MODIFICATION AUTHOR

    Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::HashBase - Build hash based classes.

- SYNOPSIS

  - DESCRIPTION

  - THIS IS A BUNDLED COPY OF HASHBASE

  - METHODS

  - PROVIDED BY HASH BASE

    `$it` = `$class`-\>new(%PAIRS), `$it` = `$class`-\>new(\\%PAIRS), `$it` = `$class`-\>new(\\@ORDERED\_VALUES)

  - HOOKS

    `$self`-\>**init()**

- ACCESSORS

  - READ/WRITE

    **foo()**, **set\_foo()**, **FOO()**

  - READ ONLY

    **set\_foo()**

  - DEPRECATED SETTER

    **set\_foo()**

  - NO SETTER

    - NO READER

    - CONSTANT ONLY

    - SUBCLASSING

  - GETTING A LIST OF ATTRIBUTES FOR A CLASS

  `@list` = Test2::Util::HashBase::attr\_list($class), `@list` = `$class`-\>**Test2::Util::HashBase::attr\_list()**

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Importer - Inline copy of Importer.

- DESCRIPTION

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Ref - Tools for inspecting or manipulating references.

- DESCRIPTION

  - EXPORTS

  `$type` = rtype($ref), `$addr_str` = render\_ref($ref)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>, Kent Fredric \<kentnl@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Stash - Utilities for manipulating stashes and globs.

- DESCRIPTION

  - EXPORTS

  `$stash` = get\_stash($package), `$sym_spec` = parse\_symbol($symbol), `$sym_spec` = parse\_symbol($symbol, `$package`), `$glob_ref` = get\_glob($symbol), `$glob_ref` = get\_glob($symbol, `$package`), `$ref` = get\_symbol($symbol), `$ref` = get\_symbol($symbol, `$package`), `$ref` = purge\_symbol($symbol), `$ref` = purge\_symbol($symbol, `$package`), `$sig` = slot\_to\_sig($slot), `$slot` = sig\_to\_slot($sig)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Sub - Tools for inspecting and manipulating subs.

- DESCRIPTION

  - EXPORTS

  `$name` = sub\_name(\\&sub), my `$hr` = sub\_info(\\&code), `$info`-\>{ref} =\> \\&code, `$info`-\>{cobj} =\> `$cobj`, `$info`-\>{name} =\> "Some::Mod::code", `$info`-\>{file} =\> "Some/Mod.pm", `$info`-\>{package} =\> "Some::Mod", `$info`-\>{start\_line} =\> 22, `$info`-\>{end\_line} =\> 42, `$info`-\>{lines} =\> \[22, 42\], `$info`-\>{all\_lines} =\> \[23, 25, ..., 39, 41\]

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>, Kent Fredric \<kentnl@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Table - Format a header and rows into a table

- DESCRIPTION

  - SYNOPSIS

  - EXPORTS

  - @rows = table(...)

    header =\> \[ ... \], rows =\> \[ \[...\], \[...\], ... \], collapse =\> `$bool`, max\_width =\> `$num`, sanitize =\> `$bool`, mark\_tail =\> `$bool`

  - my $cols = **term\_size()**

    - NOTE ON UNICODE/WIDE CHARACTERS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Table::LineBreak - Break up lines for use in tables.

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Times - Format timing/benchmark information.

- DESCRIPTION

  - EXPORTS

  `$str` = render\_bench($start, `$end`, `$user`, `$system`, `$cuser`, `$csystem`), `$str` = render\_bench($start, **time()**, **times()**)

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Util::Trace - Legacy wrapper fro Test2::EventFacet::Trace.

- DESCRIPTION

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::V0 - 0Th edition of the Test2 recommended bundle.

- DESCRIPTION

  - NAMING, USING, DEPENDING

  - SYNOPSIS

  - RESOLVING CONFLICTS WITH MOOSE

  - TAGS

    :DEFAULT

  - RENAMING ON IMPORT

    '!ok', ok =\> {-as =\> 'my\_ok'}

- PRAGMAS

  - STRICT

    - WARNINGS

    - UTF8

    - PLUGINS

  - SRAND

    - UTF8

    - EXIT SUMMARY

    - API FUNCTIONS

  `$ctx` = **context()**, `$events` = intercept { ... }

- TOOLS

  - TARGET

    `$CLASS`, `$class` = **CLASS()**

  - DEFER

    def `$func` =\> `@args`;, **do\_def()**

  - BASIC

    ok($bool, `$name`), ok($bool, `$name`, `@diag`), pass($name), pass($name, `@diag`), fail($name), fail($name, `@diag`), diag($message), note($message), `$todo` = todo($reason), todo `$reason` =\> sub { ... }, skip($reason, `$count`), plan($count), skip\_all($reason), **done\_testing()**, bail\_out($reason)

  - COMPARE

    is($got, `$want`, `$name`), isnt($got, `$do_not_want`, `$name`), like($got, qr/match/, `$name`), unlike($got, qr/mismatch/, `$name`), `$check` = match(qr/pattern/), `$check` = mismatch(qr/pattern/), `$check` = validator(sub { return `$bool` }), `$check` = hash { ... }, `$check` = array { ... }, `$check` = bag { ... }, `$check` = object { ... }, `$check` = meta { ... }, `$check` = number($num), `$check` = string($str), `$check` = bool($bool), `$check` = check\_isa($class\_name), `$check` = in\_set(@things), `$check` = not\_in\_set(@things), `$check` = check\_set(@things), `$check` = item($thing), `$check` = item($idx =\> `$thing`), `$check` = field($name =\> `$val`), `$check` = call($method =\> `$expect`), `$check` = call\_list($method =\> `$expect`), `$check` = call\_hash($method =\> `$expect`), `$check` = prop($name =\> `$expect`), `$check` = check($thing), `$check` = T(), `$check` = F(), `$check` = D(), `$check` = **DF()**, `$check` = E(), `$check` = **DNE()**, `$check` = **FDNE()**, `$check` = U(), `$check` = L(), `$check` = exact\_ref($ref), **end()**, **etc()**, filter\_items { grep { ... } `@_` }, `$check` = event `$type` =\> .., `@checks` = fail\_events `$type` =\> ..

  - CLASSIC COMPARE

    cmp\_ok($got, `$op`, `$want`, `$name`)

  - SUBTEST

    subtest `$name` =\> sub { ... };

  - CLASS

    can\_ok($thing, `@methods`), isa\_ok($thing, `@classes`), DOES\_ok($thing, `@roles`)

  - ENCODING

    set\_encoding($encoding)

  - EXPORTS

    imported\_ok('function', '$scalar', ...), not\_imported\_ok('function', '$scalar', ...)

  - REF

    ref\_ok($ref, `$type`), ref\_is($got, `$want`), ref\_is\_not($got, `$do_not_want`), is\_refcount($ref, `$count`, `$description`), is\_oneref($ref, `$description`), `$count` = refcount($ref)

  - MOCK

    `$control` = mock .., `$bool` = mocked($thing)

  - EXCEPTION

    `$exception` = dies { ... }, `$bool` = lives { ... }, `$bool` = try\_ok { ... }

  - WARNINGS

    `$count` = warns { ... }, `$warning` = warning { ... }, `$warnings_ref` = warnings { ... }, `$bool` = no\_warnings { ... }

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Workflow - A test workflow is a way of structuring tests using composable units.

- DESCRIPTION

  - IMPORTANT CONCEPTS

  - BUILD

    - RUNNER

    - TASK

    - EXPORTS

  `$parsed` = parse\_args(args =\> \\@args), `$parsed` = parse\_args(args =\> \\@args, level =\> `$L`), `$parsed` = parse\_args(args =\> \\@args, caller =\> \[caller($L)\]), `$build` = init\_root($pkg, `%args`), `$build` = root\_build($pkg), `$build` = **current\_build()**, `$build` = build($name, \\%params, sub { ... })

- SEE ALSO

  Test2::Tools::Spec

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Workflow::BlockBase - Base class for all workflow blocks.

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Workflow::Build - Represents a build in progress.

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Workflow::Runner - Runs the workflows.

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Workflow::Task - Encapsulation of a Task

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Workflow::Task::Action - Encapsulation of an action.

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test2::Workflow::Task::Group - Encapsulation of a group (describe).

- SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test::Builder - Backend for building test libraries

- SYNOPSIS

  - DESCRIPTION

  - Construction

    **new**, **create**, **subtest**, **name**, **reset**

  - Setting up tests

    **plan**, **expected\_tests**, **no\_plan**, **done\_testing**, **has\_plan**, **skip\_all**, **exported\_to**

  - Running tests

    **ok**, **is\_eq**, **is\_num**, **isnt\_eq**, **isnt\_num**, **like**, **unlike**, **cmp\_ok**

  - Other Testing Methods

    **BAIL\_OUT**, **skip**, **todo\_skip**, **skip\_rest**

  - Test building utility methods

    **maybe\_regex**, **is\_fh**

- Test style

  **level**, **use\_numbers**, **no\_diag**, **no\_ending**, **no\_header**

- Output

  **diag**, **note**, **explain**, **output**, **failure\_output**, **todo\_output**, reset\_outputs, carp, croak

- Test Status and Info

  **no\_log\_results**, **current\_test**, **is\_passing**, **summary**, **details**, **todo**, **find\_TODO**, **in\_todo**, **todo\_start**, `"todo_end"`, **caller**

- EXIT CODES

  - THREADS

  - MEMORY

  - EXAMPLES

  - SEE ALSO

  - INTERNALS

    - LEGACY

    - EXTERNAL

    - AUTHORS

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test::Builder::Formatter - Test::Builder subclass of Test2::Formatter::TAP

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test::Builder::IO::Scalar - A copy of IO::Scalar for Test::Builder

- DESCRIPTION

  - COPYRIGHT and LICENSE

  - Construction

  new \[ARGS...\]

open \[SCALARREF\]

opened

close

- Input and output

  flush

getc

getline

getlines

print ARGS..

read BUF, NBYTES, \[OFFSET\]

write BUF, NBYTES, \[OFFSET\]

sysread BUF, LEN, \[OFFSET\]

syswrite BUF, NBYTES, \[OFFSET\]

- Seeking/telling and other attributes

  autoflush

binmode

clearerr

eof

seek OFFSET, WHENCE

sysseek OFFSET, WHENCE

tell

```
 use_RS [YESNO]
```

setpos POS

getpos

sref

- WARNINGS

  - VERSION

  - AUTHORS

  - Primary Maintainer

    - Principal author

    - Other contributors

    - SEE ALSO

  ### Test::Builder::Module - Base class for test modules

- SYNOPSIS

  - DESCRIPTION

  - Importing

    - Builder

  - SEE ALSO

  ### Test::Builder::Tester - test testsuites that have been built with Test::Builder

- SYNOPSIS

  - DESCRIPTION

  - Functions

  test\_out, test\_err

test\_fail

test\_diag

test\_test, title (synonym 'name', 'label'), skip\_out, skip\_err

line\_num

color

- BUGS

  - AUTHOR

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- NOTES

  - SEE ALSO

  ### Test::Builder::Tester::Color - turn on colour in Test::Builder::Tester

- SYNOPSIS

  - DESCRIPTION

  - AUTHOR

  - BUGS

  - SEE ALSO

  ### Test::Builder::TodoDiag - Test::Builder subclass of Test2::Event::Diag

- DESCRIPTION

  - SYNOPSIS

  - SOURCE

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- AUTHORS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test::Harness - Run Perl standard test scripts with statistics

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  - runtests( @test\_files )

    - execute\_tests( tests =\> \\@test\_files, out =\> \\\*FH )

  - EXPORT

  - ENVIRONMENT VARIABLES THAT TAP::HARNESS::COMPATIBLE SETS

  `"HARNESS_ACTIVE"`, `"HARNESS_VERSION"`

- ENVIRONMENT VARIABLES THAT AFFECT TEST::HARNESS

  `"HARNESS_PERL_SWITCHES"`, `"HARNESS_TIMER"`, `"HARNESS_VERBOSE"`, `"HARNESS_OPTIONS"`, `"j<n>"`, `"c"`, `"a<file.tgz>"`, `"fPackage-With-Dashes"`, `"HARNESS_SUBCLASS"`, `"HARNESS_SUMMARY_COLOR_SUCCESS"`, `"HARNESS_SUMMARY_COLOR_FAIL"`

- Taint Mode

  - SEE ALSO

  - BUGS

  - AUTHORS

  - LICENCE AND COPYRIGHT

  ### Test::More - yet another framework for writing test scripts

- SYNOPSIS

  - DESCRIPTION

  - I love it when a plan comes together

    **done\_testing**

- Test names

  - I'm ok, you're not ok.

  **ok**

**is**, **isnt**

**like**

**unlike**

**cmp\_ok**

**can\_ok**

**isa\_ok**

**new\_ok**

**subtest**

**pass**, **fail**

- Module tests

  **require\_ok**

**use\_ok**

- Complex data structures

  **is\_deeply**

- Diagnostics

  **diag**, **note**

**explain**

- Conditional tests

  **SKIP: BLOCK**

**TODO: BLOCK**, **todo\_skip**

When do I use SKIP vs. TODO?

- Test control

  **BAIL\_OUT**

- Discouraged comparison functions

  **eq\_array**

**eq\_hash**

**eq\_set**

- Extending and Embedding Test::More

  **builder**

- EXIT CODES

  - COMPATIBILITY

  subtests, `done_testing()`, `cmp_ok()`, `new_ok()` `note()` and `explain()`

- CAVEATS and NOTES

  utf8 / "Wide character in print", Overloaded objects, Threads

- HISTORY

  - SEE ALSO

  - ALTERNATIVES

    - ADDITIONAL LIBRARIES

    - OTHER COMPONENTS

    - BUNDLES

    - AUTHORS

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- BUGS

  - SOURCE

  - COPYRIGHT

  ### Test::Simple - Basic utilities for writing tests.

- SYNOPSIS

  - DESCRIPTION

  **ok**

- EXAMPLE

  - CAVEATS

  - NOTES

  - HISTORY

  - SEE ALSO

  Test::More

- AUTHORS

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test::Tester - Ease testing test modules built with Test::Builder

- SYNOPSIS

  - DESCRIPTION

  - HOW TO USE (THE EASY WAY)

  - HOW TO USE (THE HARD WAY)

  - TEST RESULTS

  ok, actual\_ok, name, type, reason, diag, depth

- SPACES AND TABS

  - COLOUR

  - EXPORTED FUNCTIONS

  - HOW IT WORKS

  - CAVEATS

  - SEE ALSO

  - AUTHOR

  - LICENSE

  ### Test::Tester::Capture - Help testing test modules built with Test::Builder

- DESCRIPTION

  - AUTHOR

  - LICENSE

  ### Test::Tester::CaptureRunner - Help testing test modules built with Test::Builder

- DESCRIPTION

  - AUTHOR

  - LICENSE

  ### Test::Tutorial - A tutorial about writing really basic tests

- DESCRIPTION

  - Nuts and bolts of testing.

    - Where to start?

    - Names

    - Test the manual

    - Sometimes the tests are wrong

    - Testing lots of values

    - Informative names

    - Skipping tests

    - Todo tests

    - Testing with taint mode.

    - FOOTNOTES

  - AUTHORS

  - MAINTAINERS

  Chad Granum \<exodist@cpan.org\>

- COPYRIGHT

  ### Test::use::ok - Alternative to Test::More::use\_ok

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  - MAINTAINER

  Chad Granum \<exodist@cpan.org\>

- CC0 1.0 Universal

  ### Text::Abbrev - abbrev - create an abbreviation table from a list

- SYNOPSIS

  - DESCRIPTION

  - EXAMPLE

  ### Text::Balanced - Extract delimited text sequences from strings.

- SYNOPSIS

  - DESCRIPTION

  - General Behaviour in List Contexts

    \[0\], \[1\], \[2\]

  - General Behaviour in Scalar and Void Contexts

    - A Note About Prefixes

    - Functions

    `"extract_delimited"`, `"extract_bracketed"`, `"extract_variable"`, \[0\], \[1\], \[2\], `"extract_tagged"`, `"reject => $listref"`, `ignore =>` `$listref`, `"fail => $str"`, \[0\], \[1\], \[2\], \[3\], \[4\], \[5\], `"gen_extract_tagged"`, `"extract_quotelike"`, \[0\], \[1\], \[2\], \[3\], \[4\], \[5\], \[6\], \[7\], \[8\], \[9\], \[10\], `"extract_quotelike"`, \[0\], \[1\], \[2\], \[3\], \[4\], \[5\], \[6\], \[7..10\], `"extract_codeblock"`, `"extract_multiple"`, `"gen_delimited_pat"`, `"delimited_pat"`

- DIAGNOSTICS

  ```
   C<Did not find a suitable bracket: "%s">,  C<Did not find prefix: /%s/>,
  C<Did not find opening bracket after prefix: "%s">,  C<No quotelike
  operator found after prefix: "%s">,  C<Unmatched closing bracket: "%c">,
  C<Unmatched opening bracket(s): "%s">, C<Unmatched embedded quote (%s)>,
  C<Did not find closing delimiter to match '%s'>,  C<Mismatched closing
  bracket: expected "%c" but found "%s">,  C<No block delimiter found after
  quotelike "%s">, C<Did not find leading dereferencer>, C<Bad identifier
  after dereferencer>, C<Did not find expected opening bracket at %s>,
  C<Improperly nested codeblock at %s>,  C<Missing second block for quotelike
  "%s">, C<No match found for opening bracket>, C<Did not find opening tag:
  /%s/>, C<Unable to construct closing tag to match: /%s/>, C<Found invalid
  nested tag: %s>, C<Found unbalanced nested tag: %s>, C<Did not find closing
  tag>
  ```

- EXPORTS

  Default Exports, Optional Exports, Export Tags, `":ALL"`

- KNOWN BUGS

  - FEEDBACK

  - AVAILABILITY

  - INSTALLATION

  - AUTHOR

  - COPYRIGHT

  - LICENCE

  - VERSION

  - DATE

  - HISTORY

  ### Text::ParseWords - parse text into an array of tokens or array of arrays

- SYNOPSIS

  - DESCRIPTION

  true, false, `"delimiters"`

- EXAMPLES

  0, 1, 2, 3, 4, 5

- SEE ALSO

  - AUTHORS

  - COPYRIGHT AND LICENSE

  ### Text::Tabs - expand and unexpand tabs like unix expand(1) and unexpand(1)

- SYNOPSIS

  - DESCRIPTION

  - EXPORTS

  expand, unexpand, `$tabstop`

- EXAMPLE

  - BUGS

  - LICENSE

  ### Text::Wrap - line wrapping to form simple paragraphs

- SYNOPSIS

  - DESCRIPTION

  - OVERRIDES

  - EXAMPLES

  - SEE ALSO

  - AUTHOR

  - LICENSE

  ### Thread - Manipulate threads in Perl (for old code only)

- DEPRECATED

  - HISTORY

  - SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  `$thread` = Thread-\>new(\\&start\_sub), `$thread` = Thread-\>new(\\&start\_sub, LIST), lock VARIABLE, async BLOCK;, Thread-\>self, Thread-\>list, cond\_wait VARIABLE, cond\_signal VARIABLE, cond\_broadcast VARIABLE, yield

- METHODS

  join, detach, equal, tid, done

- DEFUNCT

  lock(\\&sub), eval, flags

- SEE ALSO

  ### Thread::Queue - Thread-safe queues

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  Ordinary scalars, Array refs, Hash refs, Scalar refs, Objects based on the above

- QUEUE CREATION

  \-\>**new()**, -\>new(LIST)

- BASIC METHODS

  \-\>enqueue(LIST), -\>**dequeue()**, -\>dequeue(COUNT), -\>**dequeue\_nb()**, -\>dequeue\_nb(COUNT), -\>dequeue\_timed(TIMEOUT), -\>dequeue\_timed(TIMEOUT, COUNT), -\>**pending()**, -\>limit, -\>**end()**

- ADVANCED METHODS

  \-\>**peek()**, -\>peek(INDEX), -\>insert(INDEX, LIST), -\>**extract()**, -\>extract(INDEX), -\>extract(INDEX, COUNT)

- NOTES

  - LIMITATIONS

  - SEE ALSO

  - MAINTAINER

  - LICENSE

  ### Thread::Semaphore - Thread-safe semaphores

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - METHODS

  \-\>**new()**, -\>new(NUMBER), -\>**down()**, -\>down(NUMBER), -\>**down\_nb()**, -\>down\_nb(NUMBER), -\>**down\_force()**, -\>down\_force(NUMBER), -\>down\_timed(TIMEOUT), -\>down\_timed(TIMEOUT, NUMBER), -\>**up()**, -\>up(NUMBER)

- NOTES

  - SEE ALSO

  - MAINTAINER

  - LICENSE

  ### Tie::Array - base class for tied arrays

- SYNOPSIS

  - DESCRIPTION

  TIEARRAY classname, LIST, STORE this, index, value, FETCH this, index, FETCHSIZE this, STORESIZE this, count, EXTEND this, count, EXISTS this, key, DELETE this, key, CLEAR this, DESTROY this, PUSH this, LIST, POP this, SHIFT this, UNSHIFT this, LIST, SPLICE this, offset, length, LIST

- CAVEATS

  - AUTHOR

  ### Tie::File - Access the lines of a disk file via a Perl array

- SYNOPSIS

  - DESCRIPTION

  - "unicode"

    - "recsep"

    - "autochomp"

    - "mode"

    - "memory"

    - "dw\_size"

    - Option Format

    - Public Methods

  - "flock"

    - "autochomp"

    - "defer", "flush", "discard", and "autodefer"

    - "offset"

    - Tying to an already-opened filehandle

  - Deferred Writing

  - Autodeferring

    - CONCURRENT ACCESS TO FILES

  - CAVEATS

  - SUBCLASSING

  - WHAT ABOUT "DB\_File"?

  - AUTHOR

  - LICENSE

  - WARRANTY

  - THANKS

  - TODO

  ### Tie::Handle - base class definitions for tied handles

- SYNOPSIS

  - DESCRIPTION

  TIEHANDLE classname, LIST, WRITE this, scalar, length, offset, PRINT this, LIST, PRINTF this, format, LIST, READ this, scalar, length, offset, READLINE this, GETC this, CLOSE this, OPEN this, filename, BINMODE this, EOF this, TELL this, SEEK this, offset, whence, DESTROY this

- MORE INFORMATION

  - COMPATIBILITY

  ### Tie::Hash, Tie::StdHash, Tie::ExtraHash - base class definitions for tied hashes

- SYNOPSIS

  - DESCRIPTION

  TIEHASH classname, LIST, STORE this, key, value, FETCH this, key, FIRSTKEY this, NEXTKEY this, lastkey, EXISTS this, key, DELETE this, key, CLEAR this, SCALAR this

- Inheriting from **Tie::StdHash**

  - Inheriting from **Tie::ExtraHash**

  - "SCALAR", "UNTIE" and "DESTROY"

  - MORE INFORMATION

  ### Tie::Hash::NamedCapture - Named regexp capture buffers

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  ### Tie::Memoize - add data to hash when needed

- SYNOPSIS

  - DESCRIPTION

  - Inheriting from **Tie::Memoize**

  - EXAMPLE

  - BUGS

  - AUTHOR

  ### Tie::RefHash - Use references as hash keys

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - EXAMPLE

  - THREAD SUPPORT

  - STORABLE SUPPORT

  - SEE ALSO

  - SUPPORT

  - AUTHORS

  - CONTRIBUTORS

  - COPYRIGHT AND LICENCE

  ### Tie::Scalar, Tie::StdScalar - base class definitions for tied scalars

- SYNOPSIS

  - DESCRIPTION

  TIESCALAR classname, LIST, FETCH this, STORE this, value, DESTROY this

  - Tie::Scalar vs Tie::StdScalar

    - MORE INFORMATION

  ### Tie::StdHandle - base class definitions for tied handles

- SYNOPSIS

  - DESCRIPTION

  ### Tie::SubstrHash - Fixed-table-size, fixed-key-length hashing

- SYNOPSIS

  - DESCRIPTION

  - CAVEATS

  ### Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers

- SYNOPSIS

  - DESCRIPTION

  gettimeofday (), usleep ( `$useconds` ), nanosleep ( `$nanoseconds` ), ualarm ( `$useconds` \[, `$interval_useconds` \] ), tv\_interval, time (), sleep ( `$floating_seconds` ), alarm ( `$floating_seconds` \[, `$interval_floating_seconds` \] ), setitimer ( `$which`, `$floating_seconds` \[, `$interval_floating_seconds` \] ), getitimer ( `$which` ), clock\_gettime ( `$which` ), clock\_getres ( `$which` ), clock\_nanosleep ( `$which`, `$nanoseconds`, `$flags` = 0), **clock()**, stat, stat FH, stat EXPR, lstat, lstat FH, lstat EXPR, utime LIST

- EXAMPLES

  - C API

  - DIAGNOSTICS

  - useconds or interval more than ...

    - negative time not invented yet

    - internal error: useconds \< 0 (unsigned ... signed ...)

    - useconds or uinterval equal to or more than 1000000

    - unimplemented in this platform

    - CAVEATS

  - SEE ALSO

  - AUTHORS

  - COPYRIGHT AND LICENSE

  ### Time::Local - Efficiently compute time from local and GMT time

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - FUNCTIONS

  - timelocal\_posix() and timegm\_posix()

    - timelocal\_modern() and timegm\_modern()

    - timelocal() and timegm()

    - timelocal\_nocheck() and timegm\_nocheck()

    - Year Value Interpretation

    - Limits of time\_t

    - Ambiguous Local Times (DST)

    - Non-Existent Local Times (DST)

    - Negative Epoch Values

    - IMPLEMENTATION

  - AUTHORS EMERITUS

  - BUGS

  - SOURCE

  - AUTHOR

  - CONTRIBUTORS

  - COPYRIGHT AND LICENSE

  ### Time::Piece - Object Oriented time objects

- SYNOPSIS

  - DESCRIPTION

  - USAGE

  - Local Locales

    - Date Calculations

    - Truncation

    - Date Comparisons

    - Date Parsing

    - YYYY-MM-DDThh:mm:ss

    - Week Number

    - Global Overriding

    - CAVEATS

  - Setting $ENV{TZ} in Threads on Win32

    - Use of epoch seconds

    - AUTHOR

  - COPYRIGHT AND LICENSE

  - SEE ALSO

  - BUGS

  ### Time::Seconds - a simple API to convert seconds to other date values

- SYNOPSIS

  - DESCRIPTION

  - METHODS

  - AUTHOR

  - COPYRIGHT AND LICENSE

  - Bugs

  ### Time::gmtime - by-name interface to Perl's built-in gmtime() function

- SYNOPSIS

  - DESCRIPTION

  - NOTE

  - AUTHOR

  ### Time::localtime - by-name interface to Perl's built-in localtime() function

- SYNOPSIS

  - DESCRIPTION

  - NOTE

  - AUTHOR

  ### Time::tm - internal object used by Time::gmtime and Time::localtime

- SYNOPSIS

  - DESCRIPTION

  - AUTHOR

  ### UNIVERSAL - base class for ALL classes (blessed references)

- SYNOPSIS

  - DESCRIPTION

  `"$obj->isa( TYPE )"`, `"CLASS->isa( TYPE )"`, `"eval { VAL->isa(` `TYPE ) }"`, `"TYPE"`, `$obj`, `"CLASS"`, `"VAL"`, `"$obj->DOES( ROLE )"`, `"CLASS->DOES( ROLE )"`, `"$obj->can( METHOD )"`, `"CLASS->can(` `METHOD )"`, `"eval { VAL->can( METHOD ) }"`, `"VERSION ( [ REQUIRE ] )"`

- WARNINGS

  - EXPORTS

  ### Unicode::Collate - Unicode Collation Algorithm

- SYNOPSIS

  - DESCRIPTION

  - Constructor and Tailoring

    UCA\_Version, alternate, backwards, entry, hangul\_terminator, highestFFFF, identical, ignoreChar, ignoreName, ignore\_level2, katakana\_before\_hiragana, level, long\_contraction, minimalFFFE, normalization, overrideCJK, overrideHangul, overrideOut, preprocess, rearrange, rewrite, suppress, table, undefChar, undefName, upper\_before\_lower, variable

  - Methods for Collation

    `"@sorted = $Collator->sort(@not_sorted)"`, `"$result =` `$Collator->cmp($a, $b)"`, `"$result = $Collator->eq($a, $b)"`, `"$result = $Collator->ne($a, $b)"`, `"$result = $Collator->lt($a,` `$b)"`, `"$result = $Collator->le($a, $b)"`, `"$result =` `$Collator->gt($a, $b)"`, `"$result = $Collator->ge($a, $b)"`, `"$sortKey = $Collator->getSortKey($string)"`, `"$sortKeyForm =` `$Collator->viewSortKey($string)"`

  - Methods for Searching

    `"$position = $Collator->index($string, $substring[, $position])"`, `"($position, $length) = $Collator->index($string, $substring[,` `$position])"`, `"$match_ref = $Collator->match($string, $substring)"`, `"($match)   = $Collator->match($string, $substring)"`, `"@match =` `$Collator->gmatch($string, $substring)"`, `"$count =` `$Collator->subst($string, $substring, $replacement)"`, `"$count =` `$Collator->gsubst($string, $substring, $replacement)"`

  - Other Methods

    `"%old_tailoring = $Collator->change(%new_tailoring)"`, `"$modified_collator = $Collator->change(%new_tailoring)"`, `"$version =` `$Collator->version()"`, `UCA_Version()`, `Base_Unicode_Version()`

- EXPORT

  - INSTALL

  - CAVEATS

  Normalization, Conformance Test

- AUTHOR, COPYRIGHT AND LICENSE

  - SEE ALSO

  Unicode Collation Algorithm - UTS #10, The Default Unicode Collation Element Table (DUCET), The conformance test for the UCA, Hangul Syllable Type, Unicode Normalization Forms - UAX #15, Unicode Locale Data Markup Language (LDML) - UTS #35

### Unicode::Collate::CJK::Big5 - weighting CJK Unified Ideographs for Unicode::Collate

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  CLDR - Unicode Common Locale Data Repository, Unicode Locale Data Markup Language (LDML) - UTS #35, Unicode::Collate, Unicode::Collate::Locale

### Unicode::Collate::CJK::GB2312 - weighting CJK Unified Ideographs for Unicode::Collate

- SYNOPSIS

  - DESCRIPTION

  - CAVEAT

  - SEE ALSO

  CLDR - Unicode Common Locale Data Repository, Unicode Locale Data Markup Language (LDML) - UTS #35, Unicode::Collate, Unicode::Collate::Locale

### Unicode::Collate::CJK::JISX0208 - weighting JIS KANJI for Unicode::Collate

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  Unicode::Collate, Unicode::Collate::Locale

### Unicode::Collate::CJK::Korean - weighting CJK Unified Ideographs for Unicode::Collate

- SYNOPSIS

  - DESCRIPTION

  - SEE ALSO

  CLDR - Unicode Common Locale Data Repository, Unicode Locale Data Markup Language (LDML) - UTS #35, Unicode::Collate, Unicode::Collate::Locale

### Unicode::Collate::CJK::Pinyin - weighting CJK Unified Ideographs for Unicode::Collate

- SYNOPSIS

  - DESCRIPTION

  - CAVEAT

  - SEE ALSO

  CLDR - Unicode Common Locale Data Repository, Unicode Locale Data Markup Language (LDML) - UTS #35, Unicode::Collate, Unicode::Collate::Locale

### Unicode::Collate::CJK::Stroke - weighting CJK Unified Ideographs for Unicode::Collate

- SYNOPSIS

  - DESCRIPTION

  - CAVEAT

  - SEE ALSO

  CLDR - Unicode Common Locale Data Repository, Unicode Locale Data Markup Language (LDML) - UTS #35, Unicode::Collate, Unicode::Collate::Locale

### Unicode::Collate::CJK::Zhuyin - weighting CJK Unified Ideographs for Unicode::Collate

- SYNOPSIS

  - DESCRIPTION

  - CAVEAT

  - SEE ALSO

  CLDR - Unicode Common Locale Data Repository, Unicode Locale Data Markup Language (LDML) - UTS #35, Unicode::Collate, Unicode::Collate::Locale

### Unicode::Collate::Locale - Linguistic tailoring for DUCET via Unicode::Collate

- SYNOPSIS

  - DESCRIPTION

  - Constructor

    - Methods

    `"$Collator->getlocale"`, `"$Collator->locale_version"`

  - A list of tailorable locales

    - A list of variant codes and their aliases

    - INSTALL

  - CAVEAT

  Tailoring is not maximum, Collation reordering is not supported

  - Reference

    - AUTHOR

  - SEE ALSO

  Unicode Collation Algorithm - UTS #10, The Default Unicode Collation Element Table (DUCET), Unicode Locale Data Markup Language (LDML) - UTS #35, CLDR - Unicode Common Locale Data Repository, Unicode::Collate, Unicode::Normalize

### Unicode::Normalize - Unicode Normalization Forms

- SYNOPSIS

  - DESCRIPTION

  - Normalization Forms

    `"$NFD_string = NFD($string)"`, `"$NFC_string = NFC($string)"`, `"$NFKD_string = NFKD($string)"`, `"$NFKC_string = NFKC($string)"`, `"$FCD_string = FCD($string)"`, `"$FCC_string = FCC($string)"`, `"$normalized_string = normalize($form_name, $string)"`

  - Decomposition and Composition

    `"$decomposed_string = decompose($string [, $useCompatMapping])"`, `"$reordered_string = reorder($string)"`, `$composed_string =` `compose($string)`, `($processed, $unprocessed) =` `splitOnLastStarter($normalized)`, `"$processed = normalize_partial($form,` `$unprocessed)"`, `"$processed = NFD_partial($unprocessed)"`, `$processed =` `NFC_partial($unprocessed)`, `"$processed = NFKD_partial($unprocessed)"`, `"$processed = NFKC_partial($unprocessed)"`

  - Quick Check

    `"$result = checkNFD($string)"`, `"$result = checkNFC($string)"`, `$result =` `checkNFKD($string)`, `"$result = checkNFKC($string)"`, `$result =` `checkFCD($string)`, `"$result = checkFCC($string)"`, `"$result =` `check($form_name, $string)"`

  - Character Data

    `"$canonical_decomposition = getCanon($code_point)"`, `"$compatibility_decomposition = getCompat($code_point)"`, `"$code_point_composite = getComposite($code_point_here,` `$code_point_next)"`, `"$combining_class = getCombinClass($code_point)"`, `"$may_be_composed_with_prev_char = isComp2nd($code_point)"`, `"$is_exclusion = isExclusion($code_point)"`, `$is_singleton =` `isSingleton($code_point)`, `$is_non_starter_decomposition =` `isNonStDecomp($code_point)`, `$is_Full_Composition_Exclusion =` `isComp_Ex($code_point)`, `"$NFD_is_NO = isNFD_NO($code_point)"`, `"$NFC_is_NO = isNFC_NO($code_point)"`, `$NFC_is_MAYBE =` `isNFC_MAYBE($code_point)`, `"$NFKD_is_NO = isNFKD_NO($code_point)"`, `"$NFKC_is_NO = isNFKC_NO($code_point)"`, `$NFKC_is_MAYBE =` `isNFKC_MAYBE($code_point)`

- EXPORT

  - CAVEATS

  Perl's version vs. Unicode version, Correction of decomposition mapping, Revised definition of canonical composition

- AUTHOR

  - LICENSE

  - SEE ALSO

  \<http://www.unicode.org/reports/tr15/\>, \<http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt\>, \<http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt\>, \<http://www.unicode.org/Public/UNIDATA/NormalizationCorrections.txt\>, \<http://www.unicode.org/review/pr-29.html\>, \<http://www.unicode.org/notes/tn5/\>

### Unicode::UCD - Unicode character database

- SYNOPSIS

  - DESCRIPTION

  - code point argument

    - **charinfo()**

  **code**, **name**, **category**, **combining**, **bidi**, **decomposition**, **decimal**, **digit**, **numeric**, **mirrored**, **unicode10**, **comment**, **upper**, **lower**, **title**, **block**, **script**

- **charprop()**

  Block, Decomposition\_Mapping, Name\_Alias, Numeric\_Value, Script\_Extensions

- **charprops\_all()**

  - **charblock()**

  - **charscript()**

  - **charblocks()**

  - **charscripts()**

  - **charinrange()**

  - **general\_categories()**

  - **bidi\_types()**

  - **compexcl()**

  - **casefold()**

  **code**, **full**, **simple**, **mapping**, **status**, **\*** If you use this `"I"` mapping, **\*** If you exclude this `"I"` mapping, **turkic**

- **all\_casefolds()**

  - **casespec()**

  **code**, **lower**, **title**, **upper**, **condition**

- **namedseq()**

  - **num()**

  - **prop\_aliases()**

  - **prop\_values()**

  - **prop\_value\_aliases()**

  - **prop\_invlist()**

  - **prop\_invmap()**

  **"s"**, **"sl"**, `"correction"`, `"control"`, `"alternate"`, `"figment"`, `"abbreviation"`, **"a"**, **"al"**, **"ae"**, **"ale"**, **"ar"**, **"n"**, **"ad"**

- **search\_invlist()**

  - Unicode::UCD::UnicodeVersion

  - **Blocks versus Scripts**

  - **Matching Scripts and Blocks**

  - Old-style versus new-style block names

  - Use with older Unicode versions

  - AUTHOR

  ### User::grent - by-name interface to Perl's built-in getgr\*() functions

- SYNOPSIS

  - DESCRIPTION

  - NOTE

  - AUTHOR

  ### User::pwent - by-name interface to Perl's built-in getpw\*() functions

- SYNOPSIS

  - DESCRIPTION

  - System Specifics

    - NOTE

  - AUTHOR

  - HISTORY

  March 18th, 2000

### XSLoader - Dynamically load C libraries into Perl code

- VERSION

  - SYNOPSIS

  - DESCRIPTION

  - Migration from "DynaLoader"

    - Backward compatible boilerplate

    - Order of initialization: early **load()**

  - The most hairy case

    - DIAGNOSTICS

  `"Can't find '%s' symbol in %s"`, `"Can't load '%s' for module %s: %s"`, `"Undefined symbols present after loading %s: %s"`

- LIMITATIONS

  - KNOWN BUGS

  - BUGS

  - SEE ALSO

  - AUTHORS

  - COPYRIGHT & LICENSE

  ## AUXILIARY DOCUMENTATION

Here should be listed all the extra programs' documentation, but they don't all have manual pages yet:

- h2ph

  - h2xs

  - perlbug

  - pl2pm

  - pod2html

  - pod2man

  - splain

  - xsubpp

  ## AUTHOR

Larry Wall \<*larry@wall.org*\>, with the help of oodles of other folks.
