You are viewing the version of this documentation from Perl 5.41.5. This is a development version of Perl.

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], -Dletters , -Dnumber, -e commandline , -E commandline , -f , -Fpattern , -g , -h , -? , -i[extension] , -Idirectory , -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 , -xdirectory

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
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 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!)

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

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 , U<text> -- underline 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, U<text> -- underline 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
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

$<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}

$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, $@

$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
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, 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") 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",, [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
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

\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, source::encoding, 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::Node, 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, 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::List::Utils, 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::EndToEnd, Test2::Manual::Anatomy::Event, Test2::Manual::Anatomy::Hubs, Test2::Manual::Anatomy::IPC, Test2::Manual::Anatomy::Utilities, Test2::Manual::Concurrency, Test2::Manual::Contributing, 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

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" AVs (see next section), have an av_top_index value > -2, Every accessible element in the array is either initialized but empty or contains a pointer to a live SV, When a SV* is assigned to an array element, the reference count on the SV is incremented. Conversely, when the element is unset, or assigned a different SV*, the reference count of the expelled SV is decremented

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), 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, xop_dump

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, av_clear , av_count , av_create_and_push , av_create_and_unshift_one , av_delete , av_exists , av_extend , av_fetch , av_fill , av_len*, av_make , av_pop , av_push, av_push_simple , av_shift , av_store , av_top_index, av_tindex, AvFILL, av_len , av_undef , av_unshift , AvALLOC, AvARRAY , AvFILL*, AvREFCNT_inc, AvREFCNT_inc_simple, AvREFCNT_inc_simple_NN , 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, G_KEEPERR, G_LIST, G_NOARGS, G_SCALAR, G_VOID, GIMME , GIMME_V , is_lvalue_sub , LEAVE , LEAVE_with_name , mortal_destructor_sv , MORTALDESTRUCTOR_SV, MORTALSVFUNC_X, PL_errgv, save_aelem, save_aelem_flags , save_aptr, save_ary, save_hash, save_helem, save_helem_flags , save_hptr, save_item, save_scalar, save_svref, SAVEBOOL, SAVEDELETE, SAVEDESTRUCTOR, SAVEDESTRUCTOR_X, SAVEFREEOP, SAVEFREEPV, SAVEFREERCPV, SAVEFREESV, SAVEGENERICSV, SAVEINT, SAVEIV, SAVEI8, SAVEI16, SAVEI32, SAVEMORTALIZESV, SAVEPPTR, SAVERCPV, SAVESPTR, SAVESTACK_POS, SAVESTRLEN, SAVETMPS

Casting

cBOOL , I_V , I_32 , INT2PTR, PTRV, PTR2IV, PTR2nat, PTR2NV, PTR2ul, PTR2UV, 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 , 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 , 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 , HASATTRIBUTE_ALWAYS_INLINE , HASATTRIBUTE_DEPRECATED , HASATTRIBUTE_FORMAT , HASATTRIBUTE_NONNULL , HASATTRIBUTE_NORETURN , HASATTRIBUTE_PURE , HASATTRIBUTE_UNUSED , HASATTRIBUTE_VISIBILITY , HASATTRIBUTE_WARN_UNUSED_RESULT , 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_START, STMT_END , 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 , 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 , cop_store_label , CopFILE , CopFILE_copy , CopFILE_free , CopFILE_LEN , CopFILE_set, CopFILE_setn , CopFILEAV , CopFILEAVn , CopFILEGV , CopFILEGV_set , 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_new_empty , cophh_store_pv, cophh_store_pvn, cophh_store_pvs, cophh_store_sv , cophh_2hv , CopLABEL, CopLABEL_len, CopLABEL_len_flags , CopLINE , CopSTASH , CopSTASH_eq , CopSTASH_set , CopSTASHPV , CopSTASHPV_set , 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 , XopENTRY_set , XopENTRYCUSTOM , XopFLAGS

CV Handling

caller_cx , CvDEPTH , CvGV , CvREFCNT_inc, CvREFCNT_inc_simple, CvREFCNT_inc_simple_NN , CvSTASH , find_runcv , get_cv, get_cvn_flags, get_cvs , Nullcv

Debugging

av_dump , deb, deb_nocontext, vdeb , 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 , opdump_printf , PL_op, PL_runops, PL_sv_serial, pmop_dump , sv_dump, sv_dump_depth , vdeb*

Display functions

form, form_nocontext, vform , mess, mess_nocontext, vmess , 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 , 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_pvs, pad_findmy_sv , pad_tidy , padnamelist_fetch , padnamelist_store , perl_alloc , PERL_ASYNC_CHECK, perl_clone , perl_construct , perl_destruct , perl_free , PERL_GET_CONTEXT, perl_parse , perl_run , PERL_SET_CONTEXT, PERL_SYS_INIT, PERL_SYS_INIT3 , PERL_SYS_TERM , PerlInterpreter, 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_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 , ST_INO_SIGN , ST_INO_SIZE , STDCHAR , STDIO_CNT_LVALUE , STDIO_PTR_LVAL_NOCHANGE_CNT , STDIO_PTR_LVAL_SETS_CNT , STDIO_PTR_LVALUE , STDIO_STREAM_ARRAY , VAL_EAGAIN , VAL_O_NONBLOCK , VOID_CLOSEDIR

Floating point

CASTFLAGS , CASTNEGFLOAT , DOUBLE_HAS_INF , DOUBLE_HAS_NAN , DOUBLE_HAS_NEGATIVE_ZERO , DOUBLE_HAS_SUBNORMALS , DOUBLE_STYLE_CRAY , DOUBLE_STYLE_IBM , DOUBLE_STYLE_IEEE , DOUBLE_STYLE_VAX , DOUBLEINFBYTES , DOUBLEKIND , DOUBLEMANTBITS , DOUBLENANBYTES , DOUBLESIZE , Gconvert , HAS_ATOLF , HAS_CLASS , HAS_FINITE , HAS_FINITEL , HAS_FP_CLASS , HAS_FP_CLASSIFY , HAS_FP_CLASSL , HAS_FPCLASS , HAS_FPCLASSIFY , HAS_FPCLASSL , HAS_FPGETROUND , HAS_FREXPL , HAS_ILOGB , HAS_ISFINITE , HAS_ISFINITEL , HAS_ISINF , HAS_ISINFL , HAS_ISNAN , HAS_ISNANL , HAS_ISNORMAL , HAS_J0 , HAS_J0L , 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 , LONG_DOUBLE_STYLE_IEEE , LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE , LONG_DOUBLE_STYLE_IEEE_EXTENDED , LONG_DOUBLE_STYLE_IEEE_STD , LONG_DOUBLE_STYLE_VAX , LONG_DOUBLEKIND , LONG_DOUBLESIZE , LONGDBLINFBYTES , LONGDBLMANTBITS , LONGDBLNANBYTES , NV, NV_OVERFLOWS_INTEGERS_AT , NV_PRESERVES_UV , NV_PRESERVES_UV_BITS , NV_ZERO_IS_ALLBITS_ZERO , NVMANTBITS , NVSIZE , NVTYPE

General Configuration

ASCIIish , BYTEORDER , CAT2 , CHARBITS , DB_VERSION_MAJOR_CFG , DB_VERSION_MINOR_CFG , DB_VERSION_PATCH_CFG , DEFAULT_INC_EXCLUDES_DOT , DLSYM_NEEDS_UNDERSCORE , Drand01 , 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 , seedDrand01 , SELECT_MIN_BITS , SETUID_SCRIPTS_ARE_SECURE_NOW , ST_DEV_SIGN , ST_DEV_SIZE , STRINGIFY

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 , gv_AVadd, gv_HVadd, gv_IOadd, gv_SVadd , gv_const_sv , gv_efullname3, gv_efullname4, gv_fullname3, gv_fullname4 , gv_fetchfile, gv_fetchfile_flags , gv_fetchmeth, gv_fetchmeth_autoload, gv_fetchmeth_pv, gv_fetchmeth_pv_autoload, gv_fetchmeth_pvn, gv_fetchmeth_pvn_autoload, gv_fetchmeth_sv, gv_fetchmeth_sv_autoload , If -1, If 0, gv_fetchmethod, gv_fetchmethod_autoload , gv_fetchpv, gv_fetchpvn, gv_fetchpvn_flags, gv_fetchpvs, gv_fetchsv, gv_fetchsv_nomg , gv_fullname3*, gv_fullname4*, gv_HVadd*, gv_init, gv_init_pv, gv_init_pvn, gv_init_sv , gv_IOadd*, gv_name_set , gv_stashpv, gv_stashpvn, gv_stashpvs, gv_stashsv , gv_SVadd*, GvAV , GvCV , GvHV , GvREFCNT_inc, GvREFCNT_inc_simple, GvREFCNT_inc_simple_NN , 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 , hv_exists, hv_existss, hv_exists_ent , hv_fetch, hv_fetchs , hv_fetch_ent , hv_fetchs*, hv_iterinit , hv_iterkey , hv_iterkeysv , hv_iternext , hv_iternext_flags , hv_iternextsv , hv_iterval , hv_ksplit , hv_magic , hv_name_set, hv_name_sets , hv_scalar , hv_store, hv_stores , hv_store_ent , hv_stores*, hv_undef , HvENAME , HvENAMELEN , HvENAMEUTF8 , HvFILL , HvHasAUX , HvNAME , HvNAMELEN , HvNAMEUTF8 , HvREFCNT_inc, HvREFCNT_inc_simple, HvREFCNT_inc_simple_NN , newHV , newHVhv , Nullhv , PERL_HASH, PL_modglobal

Input/Output

do_close , IoDIRP, IOf_FLUSH, IOf_UNTAINT, IoFLAGS, 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_fast_gets*, PerlIO_fdopen*, PerlIO_fileno*, PerlIO_fill*, PerlIO_findFILE*, PerlIO_flush*, PERLIO_FUNCS_CAST , PERLIO_FUNCS_DECL , 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_K_BUFFERED, PERLIO_K_CANCRLF, PERLIO_K_FASTGETS, PERLIO_K_MULTIARG, PERLIO_K_RAW, PERLIO_NOT_STDIO, 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*, PL_maxsysfd, repeatcpy , USE_STDIO

Integer

CASTI32 , HAS_INT64_T , HAS_LONG_LONG , HAS_QUAD , INTMAX_C , INTSIZE , INT16_C, INT32_C, INT64_C , IV, I8, I16, I32, I64, IV_MAX , IV_MIN , IVSIZE , IVTYPE , I8*, I8SIZE , I8TYPE , I16*, I16SIZE , I16TYPE , I32*, I32df , I32SIZE , I32TYPE , I64*, I64SIZE , I64TYPE , 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 , PERL_UINT_FAST8_T*, PERL_UINT_FAST16_T*, SHORTSIZE , UINTMAX_C , UINT16_C, UINT32_C, UINT64_C , UV, U8, U16, U32, U64, UV_MAX , UV_MIN , UVSIZE , UVTYPE , U8*, U8SIZE , U8TYPE , U16*, U16SIZE , U16TYPE , U32*, U32of , U32SIZE , U32TYPE , U32uf , U32Xf , U32xf , U64*, U64SIZE , U64TYPE , 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, SVf_QUOTEDPREFIX, SVfARG, UTF8f, UTF8f_QUOTEDPREFIX, UTF8fARG, 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 , resume_compcv_and_save , resume_compcv_final , suspend_compcv , wrap_infix_plugin , wrap_keyword_plugin

Locales

DECLARATION_FOR_LC_NUMERIC_MANIPULATION , 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 , I_XLOCALE , IN_LOCALE , IN_LOCALE_COMPILETIME , IN_LOCALE_RUNTIME , NEED_XLOCALE_H , Perl_langinfo*, Perl_langinfo8*, 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, Perl_langinfo, Perl_langinfo8 , a, b, c, d, e, 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 , mg_find , mg_findext , mg_free , mg_free_type , mg_freeext , mg_get , mg_magical , mg_set , MGf_COPY, MGf_DUP, MGf_LOCAL, 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 , HAS_MALLOC_GOOD_SIZE , HAS_MALLOC_SIZE , HASATTRIBUTE_MALLOC , I_MALLOCMALLOC , MYMALLOC , Newx, safemalloc , Newxc , Newxz, safecalloc , PERL_MALLOC_WRAP , Renew, saferealloc , Renewc , safecalloc*, Safefree , safemalloc*, saferealloc*, 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

Atof*, grok_atoUV , grok_bin , grok_hex , grok_infnan , grok_number, grok_number_flags , grok_numeric_radix, GROK_NUMERIC_RADIX , grok_oct , isinfnan , my_atof, Atof , my_strtod, 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 , Perl_signbit , Perl_sin*, Perl_sinh*, Perl_sqrt*, Perl_tan*, Perl_tanh*, PL_hexdigit , READ_XDIGIT , scan_bin , scan_hex , scan_oct , 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 , 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 , 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 , op_linklist , op_lvalue , OP_NAME , op_null , op_parent , op_prepend_elem , op_scope , op_sibling_splice , OP_TYPE_IS , OP_TYPE_IS_OR_WAS , op_wrap_finally , opcode , OpHAS_SIBLING , OpLASTSIB_set , OpMAYBESIB_set , OpMORESIB_set , OpSIBLING , optimize_optree , 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 , pad_new , PadARRAY , PadlistARRAY , PadlistMAX , PadlistNAMES , PadlistNAMESARRAY , PadlistNAMESMAX , PadlistREFCNT , PadMAX , PadnameLEN , PadnamelistARRAY , PadnamelistMAX , PadnamelistREFCNT , PadnamelistREFCNT_dec , PadnamePV , PadnameREFCNT , PadnameREFCNT_dec , PadnameREFCNT_inc , PadnameSV , PadnameUTF8 , 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 , GDBM_NDBM_H_USES_PROTOTYPES , GDBMNDBM_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_pop_1_norc , rpp_popfree_to , rpp_popfree_to_NN , rpp_popfree_1 , rpp_popfree_1_NN , rpp_popfree_2 , rpp_popfree_2_NN , rpp_push_1, rpp_push_IMM, rpp_push_2, rpp_xpush_1, rpp_xpush_IMM, rpp_xpush_2 , rpp_push_1_norc , rpp_push_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 , rpp_xpush_IMM*, rpp_xpush_1*, rpp_xpush_2*, XSPP_wrapped

REGEXP Functions

pregcomp, pregexec, re_compile , re_dup_guts , REGEX_LOCALE_CHARSET, REGEXP, regexp , regexp_engine , regexp_paren_pair, regmatch_info , REXEC_COPY_SKIP_POST, REXEC_COPY_SKIP_PRE, REXEC_COPY_STR, 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, RX_MATCH_COPIED, 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, 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, RXf_SKIPWHITE*, RXf_SPLIT*, RXf_START_ONLY*, RXf_WHITE*, struct regexp, SV_SAVED_COPY, SvRX , SvRXOK

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 , SIG_NAME , SIG_NUM , SIG_SIZE , Sigjmp_buf , Siglongjmp , Sigsetjmp , 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_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 , USE_64_BIT_ALL , USE_64_BIT_INT

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, POPpx , 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 , XS_VERSION , XS_VERSION_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

String Handling

Copy, CopyD , delimcpy , do_join , do_sprintf , fbm_compile , fbm_instr , foldEQ, foldEQ_locale , ibcmp, ibcmp_locale, ibcmp_utf8 , instr , memCHRs , memEQ , memEQs , memNE , memNEs , Move, MoveD , my_snprintf , my_sprintf , my_strlcat , my_strlcpy , my_strnlen , my_vsnprintf , NewCopy , ninstr , Nullch , PL_na , rninstr , savepv, savepvn, savepvs, savesvpv, savesharedpv, savesharedpvn, savesharedpvs, savesharedsvpv , STR_WITH_LEN , strEQ , strGE , strGT , strLE , STRLEN, strLT , strNE , strnEQ , strnNE , 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, GV_FROM_REF, HV_FROM_REF , BOOL_INTERNALS_sv_isbool , BOOL_INTERNALS_sv_isbool_false , BOOL_INTERNALS_sv_isbool_true , boolSV , croak_xs_usage , CV_FROM_REF*, DEFSV , DEFSV_set , get_sv , GV_FROM_REF*, HV_FROM_REF*, 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 , newSV_false , newSV_true , newSV_type , newSV_type_mortal , newSVbool , newSVhek , newSVhek_mortal , newSViv , newSVnv , newSVpadname , newSVpv , newSVpv_share , newSVpvf , newSVpvf_nocontext , newSVpvn , newSVpvn_flags , newSVpvn_share , newSVpvn_utf8 , newSVpvs , newSVpvs_flags , newSVpvs_share , newSVpvz , newSVrv , newSVsv, newSVsv_flags, newSVsv_nomg , newSVuv , Nullsv , PL_sv_no , PL_sv_undef , PL_sv_yes , PL_sv_zero , SAVE_DEFSV , sortsv , sortsv_flags , SV, sv_backoff , sv_bless , sv_catpv, sv_catpv_flags, sv_catpv_mg, sv_catpv_nomg, sv_catpvn, sv_catpvn_flags, sv_catpvn_mg, sv_catpvn_nomg, sv_catpvn_nomg_maybeutf8, sv_catpvs, sv_catpvs_flags, sv_catpvs_mg, sv_catpvs_nomg , sv_catpvf, sv_catpvf_nocontext, sv_catpvf_mg, sv_catpvf_mg_nocontext, sv_vcatpvf, sv_vcatpvf_mg, sv_vcatpvfn, sv_vcatpvfn_flags , sv_catpvn*, sv_catpvn_flags*, sv_catpvn_mg*, sv_catpvn_nomg*, sv_catpvn_nomg_maybeutf8*, 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 , 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 , sv_eq, sv_eq_flags , sv_force_normal, sv_force_normal_flags , if the PV is a shared string, if we're a ref, if we're a glob, if we're a copy-on-write scalar, if this is a vstring, in sv_force_normal_flags if SV_COW_DROP_PV is set in flags, sv_free , sv_get_backrefs , sv_gets , sv_inc, sv_inc_nomg , sv_insert, sv_insert_flags , sv_isa , sv_isa_sv , sv_isobject , sv_len , sv_len_utf8, sv_len_utf8_nomg , sv_magic , sv_magicext , sv_mortalcopy, sv_mortalcopy_flags , sv_newmortal , sv_nolocking , sv_nounlocking , sv_numeq, sv_numeq_flags , sv_pos_b2u, sv_pos_b2u_flags , sv_pos_u2b, sv_pos_u2b_flags , sv_pvn_force_flags , sv_ref , sv_reftype , sv_replace , sv_report_used , sv_reset , sv_rvunweaken , sv_rvweaken , sv_set_bool , sv_set_false , sv_set_true , sv_set_undef , sv_setbool, sv_setbool_mg , sv_setiv, sv_setiv_mg , 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_setpv_mg*, sv_setpvf, sv_setpvf_mg, sv_setpvf_mg_nocontext, sv_setpvf_nocontext , sv_setpvn*, sv_setpvn_fresh*, sv_setpvn_mg*, sv_setpvs*, sv_setpvs_mg*, 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_setuv, sv_setuv_mg , sv_streq, sv_streq_flags , sv_unmagic , sv_unmagicext , sv_unref, sv_unref_flags , 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 , sv_utf8_upgrade, sv_utf8_upgrade_flags, sv_utf8_upgrade_flags_grow, sv_utf8_upgrade_nomg , sv_vcatpvf*, sv_vcatpvf_mg*, sv_vcatpvfn*, sv_vcatpvfn_flags*, sv_vsetpvf, sv_vsetpvf_mg , sv_vsetpvfn , sv_2cv , sv_2io , sv_2iv_flags , sv_2mortal , sv_2nv_flags , sv_2pv, sv_2pv_flags , sv_2pvbyte, sv_2pvbyte_flags , sv_2pvutf8, sv_2pvutf8_flags , sv_2uv_flags , SvAMAGIC , SvAMAGIC_off , SvAMAGIC_on , SvBoolFlagsOK , SvCUR , SvCUR_set , SvEND , SvGAMAGIC , SvGETMAGIC , SvGROW , SvIandPOK , SvIandPOK_off , SvIandPOK_on , SvIOK , SvIOK_notUV , SvIOK_off , SvIOK_on , SvIOK_only , SvIOK_only_UV , SvIOK_UV , SvIOKp , SvIsBOOL , SvIsCOW , SvIsCOW_shared_hash , SvIV, SvIV_nomg, SvIVx , SvIV_set , SvIVX , SvIVx*, SvLEN , SvLEN_set , SvLOCK , SvMAGIC_set , SvNIOK , SvNIOK_off , SvNIOKp , SvNOK , SvNOK_off , SvNOK_on , SvNOK_only , SvNOKp , SvNV, SvNV_nomg, SvNVx , SvNV_set , SvNVX , SvNVx*, SvOK , SvOOK , SvOOK_off , SvOOK_offset , SvPOK , SvPOK_off , SvPOK_on , SvPOK_only , SvPOK_only_UTF8 , SvPOKp , 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 , 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 , SvPV_mutable*, SvPV_nolen*, SvPV_nolen_const*, SvPV_nomg*, SvPV_nomg_const*, SvPV_nomg_const_nolen*, SvPV_nomg_nolen*, SvPV_renew , SvPV_set , SvPV_shrink_to_cur , SvPVbyte*, SvPVbyte_force*, SvPVbyte_nolen*, SvPVbyte_nomg*, SvPVbyte_or_null*, SvPVbyte_or_null_nomg*, SvPVbytex*, SvPVbytex_force*, SvPVbytex_nolen*, SvPVCLEAR , SvPVCLEAR_FRESH , SvPVutf8*, SvPVutf8_force*, SvPVutf8_nolen*, SvPVutf8_nomg*, SvPVutf8_or_null*, SvPVutf8_or_null_nomg*, SvPVutf8x*, SvPVutf8x_force*, SvPVX, SvPVX_const, SvPVX_mutable, SvPVXx , SvPVx*, SvPVx_const*, SvPVx_force*, SvPVx_nolen*, SvPVx_nolen_const*, SvPVXtrue , SvPVXx*, SvREADONLY , SvREADONLY_off , SvREADONLY_on , 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 , SvROK , SvROK_off , SvROK_on , SvRV , SvRV_set , SvSETMAGIC , SvSetMagicSV, SvSetMagicSV_nosteal, SvSetSV, SvSetSV_nosteal , SvSHARE , SvSHARED_HASH , SvSTASH , SvSTASH_set , SvTRUE, SvTRUE_NN, SvTRUE_nomg, SvTRUE_nomg_NN, SvTRUEx , SvTYPE , SvUNLOCK , SvUOK , SvUPGRADE , SvUTF8 , SvUTF8_off , SvUTF8_on , SvUV, SvUV_nomg, SvUVx , SvUV_set , SvUVX , SvUVx*, SvUVXx , SvVOK , 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 , L_R_TZSET , LOCALTIME_MAX , LOCALTIME_MIN , LOCALTIME_R_NEEDS_TZSET , LOCALTIME_R_PROTO , mini_mktime , sv_strftime_tm, sv_strftime_ints, my_strftime , >0, <0, The fmt parameter and the return are char * instead of SV *, The is_dst parameter is ignored, It has extra parameters yday and wday that are ignored

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

BOM_UTF8 , bytes_cmp_utf8 , bytes_from_utf8 , bytes_to_utf8 , DO_UTF8 , foldEQ_utf8 , is_ascii_string*, is_c9strict_utf8_string*, is_c9strict_utf8_string_loc*, is_c9strict_utf8_string_loclen*, is_invariant_string*, is_strict_utf8_string*, is_strict_utf8_string_loc*, is_strict_utf8_string_loclen*, is_utf8_char_buf*, 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_ascii_string, is_invariant_string , is_utf8_string, is_utf8_string_loc, is_utf8_string_loclen, is_strict_utf8_string, is_strict_utf8_string_loc, is_strict_utf8_string_loclen, is_c9strict_utf8_string, is_c9strict_utf8_string_loc, is_c9strict_utf8_string_loclen, is_utf8_string_flags, is_utf8_string_loc_flags, is_utf8_string_loclen_flags , is_utf8_valid_partial_char, is_utf8_valid_partial_char_flags , isUTF8_CHAR, isSTRICT_UTF8_CHAR, isC9_STRICT_UTF8_CHAR, isUTF8_CHAR_flags, is_utf8_char_buf , 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 , UNI_TO_NATIVE , UNICODE_IS_NONCHAR , UNICODE_IS_REPLACEMENT , UNICODE_IS_SUPER , UNICODE_IS_SURROGATE , UNICODE_REPLACEMENT , 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 , UTF8_SAFE_SKIP*, UTF8_SKIP*, utf8_to_bytes , utf8_to_uvchr , utf8_to_uvchr_buf , 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, utf8ness_t , UTF8NESS_YES, UTF8NESS_NO, UTF8NESS_IMMATERIAL, UTF8NESS_UNKNOWN, 0 <= enum value <= UTF8NESS_IMMATERIAL, UTF8NESS_IMMATERIAL <= <enum value, UTF8SKIP, UTF8_SKIP, UTF8_CHK_SKIP, UTF8_SAFE_SKIP , "UTF8_SAFE_SKIP" in perlapi if you know the maximum ending pointer in the buffer pointed to by s, "UTF8_CHK_SKIP" in perlapi if you don't know the maximum ending pointer, UVCHR_IS_INVARIANT , UVCHR_SKIP , uvchr_to_utf8, uvchr_to_utf8_flags , uvchr_to_utf8_flags_msgs , text, warn_categories, flag

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 , PoisonFree, Poison , 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

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

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 , av_new_alloc , av_store_simple , AvFILLp

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, CX_LEAVE_SCOPE, CX_POP, cx_type, CXINC, cxstack, cxstack_ix, CXt_BLOCK, CXt_EVAL, CXt_FORMAT, CXt_LOOP_ARY, CXt_LOOP_LAZYIV, CXt_LOOP_LAZYSV, CXt_LOOP_LIST, CXt_LOOP_PLAIN, CXt_NULL, CXt_SUB, CXt_SUBST, 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 , noshutdownhook , pad_alloc_name , pad_block_start , pad_check_dup , pad_findlex , pad_fixup_inner_anons , pad_free , pad_leavemy , pad_push , pad_reset , pad_setsv , pad_sv , pad_swipe , padlist_dup , padname_dup , padnamelist_dup , set_context , si_dup , ss_dup

Errno

dSAVE_ERRNO , dSAVEDERRNO , 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

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 , PAD_RESTORE_LOCAL , PAD_SAVE_LOCAL , PAD_SAVE_SETNULLPAD , PAD_SET_CUR , PAD_SET_CUR_NOSAVE , PAD_SETSV , PAD_SV , PAD_SVl , PadnameIsFIELD , PadnameIsOUR , PadnameIsSTATE , PadnameOURSTASH , PadnameOUTER , PadnameTYPE , 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_clean_all , sv_clean_objs , sv_free_arenas , sv_grow , sv_grow_fresh , sv_newref , sv_pv , sv_pvbyte , sv_pvbyten_force , sv_pvn_force , sv_pvutf8 , sv_pvutf8n_force , sv_tainted , sv_true , sv_untaint , sv_2bool , sv_2bool_flags , sv_2num , sv_2pv_nolen , sv_2pvbyte_nolen , sv_2pvutf8_nolen , SvTHINKFIRST

Tainting

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

Time
Typedef names
Unicode Support

bytes_from_utf8_loc , is_utf8_non_invariant_string , isSCRIPT_RUN , utf8_to_uvuni , utf8n_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 , find_uninit_var , 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 file-level 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
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
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

Aristotle Pagaltzis, Graham Knop, Philippe Bruhat

Core Team Members
Active Members

Aristotle Pagaltzis <pagaltzis@gmx.de>, 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.41.5

DESCRIPTION
Modules and Pragmata
Updated Modules and Pragmata
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO

perl5415delta, perldelta - what is new for perl v5.41.5

DESCRIPTION
Modules and Pragmata
Updated Modules and Pragmata
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO

perl5414delta - what is new for perl v5.41.4

DESCRIPTION
Modules and Pragmata
Updated Modules and Pragmata
Diagnostics
Configuration and Compilation
Internal Changes
Selected Bug Fixes
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO

perl5413delta - what is new for perl v5.41.3

DESCRIPTION
Incompatible Changes
Apostrophe is no longer recognized as a global name separator
Switch and Smart Match operator removed
Performance Enhancements
Modules and Pragmata
Updated Modules and Pragmata
Diagnostics
Changes to Existing Diagnostics
Testing
Internal Changes
Selected Bug Fixes
Obituary
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO

perl5412delta - what is new for perl v5.41.2

DESCRIPTION
Core Enhancements
New pragma source::encoding
Modules and Pragmata
Updated Modules and Pragmata
Documentation
Changes to Existing Documentation
Diagnostics
New Diagnostics
Utility Changes
Porting/test-dist-modules.pl
Testing
Internal Changes
Selected Bug Fixes
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO

perl5411delta - what is new for perl v5.41.1

DESCRIPTION
Core Enhancements
More CORE:: subs
Performance Enhancements
Modules and Pragmata
Updated Modules and Pragmata
Documentation
Changes to Existing Documentation
Testing
Internal Changes
Selected Bug Fixes
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO

perl5410delta - what is new for perl v5.41.0

DESCRIPTION
Notice
Modules and Pragmata
Updated Modules and Pragmata
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 gotos 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 0oddddd
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
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
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
\cX 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)
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)
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 \cX, 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
subs 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
\cX
"\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), 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 @_