PERLTOC(1) Perl Programmers Reference Guide PERLTOC(1) #
PERLTOC(1) Perl Programmers Reference Guide PERLTOC(1)
NNAAMMEE #
perltoc - perl documentation table of contents
DDEESSCCRRIIPPTTIIOONN #
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.
BBAASSIICC DDOOCCUUMMEENNTTAATTIIOONN #
ppeerrll -- TThhee PPeerrll 55 llaanngguuaaggee iinntteerrpprreetteerr
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 #
DIAGNOSTICS #
BUGS #
NOTES #
ppeerrlliinnttrroo -- aa bbrriieeff iinnttrroodduuccttiioonn aanndd oovveerrvviieeww ooff PPeerrll
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 #
ppeerrllrruunn -- hhooww ttoo eexxeeccuuttee tthhee PPeerrll iinntteerrpprreetteerr
SYNOPSIS #
DESCRIPTION #
#! and quoting on non-Unix systems
OS/2, MS-DOS, Win95/NT, VMS
Location of Perl
Command Switches
--00[_o_c_t_a_l_/_h_e_x_a_d_e_c_i_m_a_l] , --aa , --CC [[_nn_uu_mm_bb_ee_rr_//_ll_ii_ss_tt]] , --cc , --dd , --ddtt,
--dd::_M_O_D_[_=_b_a_r_,_b_a_z_] , --ddtt::_M_O_D_[_=_b_a_r_,_b_a_z_], --DD_l_e_t_t_e_r_s , --DD_n_u_m_b_e_r, --ee
_c_o_m_m_a_n_d_l_i_n_e , --EE _c_o_m_m_a_n_d_l_i_n_e , --ff
, --FF_p_a_t_t_e_r_n , --gg , --hh , --?? , --ii[_e_x_t_e_n_s_i_o_n] , --II_d_i_r_e_c_t_o_r_y ,
--ll[_o_c_t_n_u_m] , --mm[--]_m_o_d_u_l_e , --MM[--]_m_o_d_u_l_e, --MM[--]_'_m_o_d_u_l_e _._._._',
--[[mmMM]][--]_m_o_d_u_l_e_=_a_r_g_[_,_a_r_g_]_._._., --nn , --pp , --ss , --SS , --tt , --TT , --uu ,
--UU , --vv , --VV , --VV::_c_o_n_f_i_g_v_a_r, --ww , --WW , --XX , --xx , --xx_d_i_r_e_c_t_o_r_y
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
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
ppeerrllrreeffttuutt -- MMaarrkk’’ss vveerryy sshhoorrtt ttuuttoorriiaall aabboouutt rreeffeerreenncceess
DESCRIPTION #
Who Needs Complicated Data Structures?
The Solution
Syntax
Making References
Using References
An Example
Arrow Rule
Solution
The Rest
Summary
Credits
Distribution Conditions
ppeerrllddsscc -- PPeerrll DDaattaa SSttrruuccttuurreess CCooookkbbooookk
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 #
ppeerrllllooll -- MMaanniippuullaattiinngg AArrrraayyss ooff AArrrraayyss iinn PPeerrll
DESCRIPTION #
Declaration and Access of Arrays of Arrays
Growing Your Own
Access and Printing
Slices
SEE ALSO #
AUTHOR #
ppeerrllrreeqquuiicckk -- PPeerrll rreegguullaarr eexxpprreessssiioonnss qquuiicckk ssttaarrtt
DESCRIPTION #
The Guide
Simple word matching
Using character classes
Matching this or that
Grouping things and hierarchical matching
Extracting matches
Matching repetitions
More matching
Search and replace
The split operator
"use re 'strict'"
BUGS #
SEE ALSO #
AUTHOR AND COPYRIGHT #
Acknowledgments
ppeerrllrreettuutt -- PPeerrll rreegguullaarr eexxpprreessssiioonnss ttuuttoorriiaall
DESCRIPTION #
Part 1: The basics
Simple word matching
Using character classes
Matching this or that
Grouping things and hierarchical matching
0. Start with the first letter in the string 'a', 1. Try the
first alternative in the first group 'abd', 2. Match 'a'
followed by 'b'. So far so good, 3. 'd' in the regexp doesn't
match 'c' in the string - a dead end. So backtrack two
characters and pick the second alternative in the first group
'abc', 4. Match 'a' followed by 'b' followed by 'c'. We are on a
roll and have satisfied the first group. Set $1 to 'abc', 5 Move
on to the second group and pick the first alternative 'df', 6
Match the 'd', 7. 'f' in the regexp doesn't match 'e' in the
string, so a dead end. Backtrack one character and pick the
second alternative in the second group 'd', 8.
'd' matches. The second grouping is satisfied, so set $2 to 'd',
9. We are at the end of the regexp, so we are done! We have
matched 'abcd' out of the string "abcde"
Extracting matches
Backreferences
Relative backreferences
Named backreferences
Alternative capture group numbering
Position information
Non-capturing groupings
Matching repetitions
0. Start with the first letter in the string 't', 1. The first
quantifier '.*' starts out by matching the whole string ""the cat
in the hat"", 2. 'a' in the regexp element 'at' doesn't match
the end of the string. Backtrack one character, 3. 'a' in the
regexp element 'at' still doesn't match the last letter of the
string 't', so backtrack one more character, 4. Now we can
match the 'a' and the 't', 5. Move on to the third element '.*'.
Since we are at the end of the string and '.*' can match 0 times,
assign it the empty string, 6. We are done!
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
ppeerrlloooottuutt -- OObbjjeecctt--OOrriieenntteedd PPrrooggrraammmmiinngg iinn PPeerrll TTuuttoorriiaall
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 #
ppeerrllppeerrff -- PPeerrll PPeerrffoorrmmaannccee aanndd OOppttiimmiizzaattiioonn TTeecchhnniiqquueess
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 #
ppeerrllssttyyllee -- PPeerrll ssttyyllee gguuiiddee
DESCRIPTION #
ppeerrllcchheeaatt -- PPeerrll 55 CChheeaatt SShheeeett
DESCRIPTION #
The sheet
ACKNOWLEDGEMENTS #
AUTHOR #
SEE ALSO #
ppeerrllttrraapp -- PPeerrll ttrraappss ffoorr tthhee uunnwwaarryy
DESCRIPTION #
Awk Traps
C/C++ Traps
JavaScript Traps
Sed Traps
Shell Traps
Perl Traps
ppeerrllddeebbttuutt -- PPeerrll ddeebbuuggggiinngg ttuuttoorriiaall
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 #
ppeerrllffaaqq -- FFrreeqquueennttllyy aasskkeedd qquueessttiioonnss aabboouutt PPeerrll
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 #
ppeerrllffaaqq11 -- GGeenneerraall QQuueessttiioonnss AAbboouutt PPeerrll
VERSION #
DESCRIPTION #
What is Perl?
Who supports Perl? Who develops it? Why is it free?
Which version of Perl should I use?
What are Perl 4, Perl 5, or Raku (Perl 6)?
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 #
ppeerrllffaaqq22 -- OObbttaaiinniinngg aanndd LLeeaarrnniinngg aabboouutt PPeerrll
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 #
ppeerrllffaaqq33 -- PPrrooggrraammmmiinngg TToooollss
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 #
ppeerrllffaaqq44 -- DDaattaa MMaanniippuullaattiioonn
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 iinntt(()) broken?
Why isn't my octal data interpreted correctly?
Does Perl have a rroouunndd(()) function? What about cceeiill(()) and fflloooorr(())?
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 ddeeffiinneedd(()) 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 eeaacchh(()) 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 #
ppeerrllffaaqq55 -- FFiilleess aanndd FFoorrmmaattss
VERSION #
DESCRIPTION #
How do I flush/unbuffer an output filehandle? Why must I do this?
How do I change, delete, or insert a line in a file, or append to the
beginning of a file?
How do I count the number of lines in a file?
How do I delete the last N lines from a file?
How can I use Perl's "-i" option from within a program?
How can I copy a file?
How do I make a temporary file name?
How can I manipulate fixed-record-length files?
How can I make a filehandle local to a subroutine? How do I pass
filehandles between subroutines? How do I make an array of
filehandles?
How can I use a filehandle indirectly?
How can I open a filehandle to a string?
How can I set up a footer format to be used with wwrriittee(())?
How can I wwrriittee(()) into a string?
How can I output my numbers with commas added?
How can I translate tildes (~) in a filename?
How come when I open a file read-write it wipes 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 dduupp(()) 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 #
ppeerrllffaaqq66 -- RReegguullaarr EExxpprreessssiioonnss
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 #
ppeerrllffaaqq77 -- GGeenneerraall PPeerrll LLaanngguuaaggee IIssssuueess
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 llooccaall(()) and mmyy(())?
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 ffoooo(())?
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 #
ppeerrllffaaqq88 -- SSyysstteemm IInntteerraaccttiioonn
VERSION #
DESCRIPTION #
How do I find out which operating system I'm running under?
How come eexxeecc(()) doesn't 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 sslleeeepp(()) or aallaarrmm(()) for under a second?
How can I measure time under a second?
How can I do an aatteexxiitt(()) or sseettjjmmpp(())/lloonnggjjmmpp(())? (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 iiooccttll(()) or ssyyssccaallll(())?
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 ssyysstteemm(())?
How can I capture STDERR from an external command?
Why doesn't ooppeenn(()) 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 ssyysstteemm(()) 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 #
ppeerrllffaaqq99 -- WWeebb,, EEmmaaiill aanndd NNeettwwoorrkkiinngg
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 #
ppeerrllssyynn -- PPeerrll ssyynnttaaxx
DESCRIPTION #
Declarations
Comments
Simple Statements
Statement Modifiers
Compound Statements
Loop Control
For Loops
Foreach Loops
Try Catch Exception Handling
Basic BLOCKs
defer blocks
Switch Statements
Goto
The Ellipsis Statement
PODs: Embedded Documentation
Plain Old Comments (Not!)
Experimental Details on given and when
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
ppeerrllddaattaa -- PPeerrll ddaattaa ttyyppeess
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 #
ppeerrlloopp -- PPeerrll ooppeerraattoorrss aanndd pprreecceeddeennccee
DESCRIPTION #
Operator Precedence and Associativity
Terms and List Operators (Leftward)
The Arrow Operator
Auto-increment and Auto-decrement
Exponentiation
Symbolic Unary Operators
Binding Operators
Multiplicative Operators
Additive Operators
Shift Operators
Named Unary Operators
Relational Operators
Equality Operators
Class Instance Operator
Smartmatch Operator
1. Empty hashes or arrays match, 2. That is, each element
smartmatches the element of the same index in the other
array.[3], 3. If a circular reference is found, fall back to
referential equality, 4. Either an actual number, or a string
that looks like one
Bitwise And
Bitwise Or and Exclusive Or
C-style Logical And
C-style Logical Or
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/_S_T_R_I_N_G/msixpodualn" , "m/_P_A_T_T_E_R_N/msixpodualngc"
, "/_P_A_T_T_E_R_N/msixpodualngc", The empty pattern "//", Matching in
list context, "\G _a_s_s_e_r_t_i_o_n", "m?_P_A_T_T_E_R_N?msixpodualngc"
, "s/_P_A_T_T_E_R_N/_R_E_P_L_A_C_E_M_E_N_T/msixpodualngcer"
Quote-Like Operators
"q/_S_T_R_I_N_G/" , '_S_T_R_I_N_G', "qq/_S_T_R_I_N_G/" , "_S_T_R_I_N_G",
"qx/_S_T_R_I_N_G/" , "`_S_T_R_I_N_G`", "qw/_S_T_R_I_N_G/" ,
"tr/_S_E_A_R_C_H_L_I_S_T/_R_E_P_L_A_C_E_M_E_N_T_L_I_S_T/cdsr"
, "y/_S_E_A_R_C_H_L_I_S_T/_R_E_P_L_A_C_E_M_E_N_T_L_I_S_T/cdsr", "<<_E_O_F" , 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
ppeerrllssuubb -- PPeerrll ssuubbrroouuttiinneess
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 mmyy(())
Persistent Private Variables
Temporary Values via llooccaall(())
Lvalue subroutines
Lexical Subroutines
Passing Symbol Table Entries (typeglobs)
When to Still Use llooccaall(())
Pass by Reference
Prototypes
Constant Functions
Overriding Built-in Functions
Autoloading
Subroutine Attributes
SEE ALSO #
ppeerrllffuunncc -- PPeerrll bbuuiillttiinn ffuunnccttiioonnss
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, 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, 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__ , 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, 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, Calling "open" with one argument
via global variables, Assigning a filehandle to a bareword, 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__ , 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
ppeerrllooppeennttuutt -- ssiimmppllee rreecciippeess ffoorr ooppeenniinngg ffiilleess aanndd ppiippeess iinn PPeerrll
DESCRIPTION #
_O_K, _H_A_N_D_L_E, _M_O_D_E, _P_A_T_H_N_A_M_E #
Opening Text Files
Opening Text Files for Reading
Opening Text Files for Writing
Opening Binary Files
Opening Pipes
Opening a pipe for reading
Opening a pipe for writing
Expressing the command as a list
SEE ALSO #
AUTHOR and COPYRIGHT
ppeerrllppaacckkttuutt -- ttuuttoorriiaall oonn “"ppaacckk"” aanndd “"uunnppaacckk"”
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
ppeerrllppoodd -- tthhee PPllaaiinn OOlldd DDooccuummeennttaattiioonn ffoorrmmaatt
DESCRIPTION #
Ordinary Paragraph
Verbatim Paragraph
Command Paragraph
"=head1 _H_e_a_d_i_n_g _T_e_x_t"
, "=head2 _H_e_a_d_i_n_g _T_e_x_t", "=head3 _H_e_a_d_i_n_g _T_e_x_t", "=head4
_H_e_a_d_i_n_g _T_e_x_t", "=head5 _H_e_a_d_i_n_g _T_e_x_t", "=head6 _H_e_a_d_i_n_g _T_e_x_t",
"=over _i_n_d_e_n_t_l_e_v_e_l" , "=item _s_t_u_f_f_._._.", "=back", "=cut" ,
"=pod" , "=begin _f_o_r_m_a_t_n_a_m_e" , "=end _f_o_r_m_a_t_n_a_m_e", "=for
_f_o_r_m_a_t_n_a_m_e _t_e_x_t_._._.", "=encoding _e_n_c_o_d_i_n_g_n_a_m_e"
Formatting Codes
"I<text>" -- italic text , "B<text>" -- bold text
, "C<code>" -- code text
, "L<name>" -- a hyperlink , "E<escape>" -- a character escape
, "F<filename>" -- used for filenames , "S<text>" -- text
contains non-breaking spaces
, "X<topic name>" -- an index entry
, "Z<>" -- a null (zero-effect) formatting code
The Intent
Embedding Pods in Perl Modules
Hints for Writing Pod
SEE ALSO #
AUTHOR #
ppeerrllppooddssppeecc -- PPllaaiinn OOlldd DDooccuummeennttaattiioonn:: ffoorrmmaatt ssppeecciiffiiccaattiioonn aanndd nnootteess
DESCRIPTION #
Pod Definitions
Pod Commands
"=head1", "=head2", "=head3", "=head4", "=head5", "=head6", "=pod",
"=cut", "=over", "=item", "=back", "=begin formatname", "=begin
formatname parameter", "=end formatname", "=for formatname text...",
"=encoding encodingname"
Pod Formatting Codes
"I<text>" -- italic text, "B<text>" -- bold text, "C<code>" -- code
text, "F<filename>" -- style for filenames, "X<topic name>" -- an
index entry, "Z<>" -- a null (zero-effect) formatting code, "L<name>"
-- a hyperlink, "E<escape>" -- a character escape, "S<text>" -- text
contains non-breaking spaces
Notes on Implementing Pod Processors
About L<...> Codes
First:, Second:, Third:, Fourth:, Fifth:, Sixth:
About =over...=back Regions
About Data Paragraphs and "=begin/=end" Regions
SEE ALSO #
AUTHOR #
ppeerrllddooccssttyyllee -- AA ssttyyllee gguuiiddee ffoorr wwrriittiinngg PPeerrll’’ss ddooccuummeennttaattiioonn
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 #
ppeerrllppooddssttyyllee -- PPeerrll PPOODD ssttyyllee gguuiiddee
DESCRIPTION #
NAME, SYNOPSIS, DESCRIPTION, OPTIONS, RETURN VALUE, ERRORS, #
DIAGNOSTICS, EXAMPLES, ENVIRONMENT, FILES, CAVEATS, BUGS, #
RESTRICTIONS, NOTES, AUTHOR, HISTORY, COPYRIGHT AND LICENSE, SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
SEE ALSO #
ppeerrllddiiaagg -- vvaarriioouuss PPeerrll ddiiaaggnnoossttiiccss
DESCRIPTION #
SEE ALSO #
ppeerrllddeepprreeccaattiioonn -- lliisstt PPeerrll ddeepprreeccaattiioonnss
DESCRIPTION #
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 #
ppeerrlllleexxwwaarrnn -- PPeerrll LLeexxiiccaall WWaarrnniinnggss
DESCRIPTION #
ppeerrllddeebbuugg -- PPeerrll ddeebbuuggggiinngg
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 #
ppeerrllvvaarr -- PPeerrll pprreeddeeffiinneedd vvaarriiaabblleess
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 , $INPLACE_EDIT, $^I , @ISA , $^M , $OSNAME, #
$^O , %SIG , $BASETIME, $^T , $PERL_VERSION, $^V , #
$EXECUTABLE_NAME, $^X #
Variables related to regular expressions
$<_d_i_g_i_t_s> ($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_REGEXP_CODE_RESULT, $^R , ${^RE_COMPILE_RECURSION_LIMIT} , #
${^RE_DEBUG_FLAGS} , ${^RE_TRIE_MAXBUF} #
Variables related to filehandles
$ARGV , @ARGV , ARGV , ARGVOUT , #
IO::Handle->output_field_separator( EXPR ),
$OUTPUT_FIELD_SEPARATOR, $OFS, $, , HANDLE->input_line_number(
EXPR ), $INPUT_LINE_NUMBER, $NR, $. , #
IO::Handle->input_record_separator( EXPR ),
$INPUT_RECORD_SEPARATOR, $RS, $/ , #
IO::Handle->output_record_separator( EXPR ),
$OUTPUT_RECORD_SEPARATOR, $ORS, $\ , HANDLE->autoflush( EXPR ),
$OUTPUT_AUTOFLUSH, $| , ${^LAST_FH} , $ACCUMULATOR, $^A , #
IO::Handle->format_formfeed(EXPR), $FORMAT_FORMFEED, $^L ,
HANDLE->format_page_number(EXPR), $FORMAT_PAGE_NUMBER, $% ,
HANDLE->format_lines_left(EXPR), $FORMAT_LINES_LEFT, $- ,
IO::Handle->format_line_break_characters EXPR,
$FORMAT_LINE_BREAK_CHARACTERS, $: , #
HANDLE->format_lines_per_page(EXPR), $FORMAT_LINES_PER_PAGE, $= ,
HANDLE->format_top_name(EXPR), $FORMAT_TOP_NAME, $^ ,
HANDLE->format_name(EXPR), $FORMAT_NAME, $~
Error Variables
${^CHILD_ERROR_NATIVE} , $EXTENDED_OS_ERROR, $^E #
, $EXCEPTIONS_BEING_CAUGHT, $^S , $WARNING, $^W , #
${^WARNING_BITS} , $OS_ERROR, $ERRNO, $! , %OS_ERROR, %ERRNO, %! #
, $CHILD_ERROR, $? , $EVAL_ERROR, $@ #
Variables related to the interpreter state
$COMPILING, $^C , $DEBUGGING, $^D , ${^GLOBAL_PHASE} , #
CONSTRUCT, START, CHECK, INIT, RUN, END, DESTRUCT, $^H , %^H , #
${^OPEN} , $PERLDB, $^P #
, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200,
0x400, 0x800, 0x1000, ${^TAINT} , ${^SAFE_LOCALES} , ${^UNICODE}
, ${^UTF8CACHE} , ${^UTF8LOCALE} #
Deprecated and removed variables
$# , $* , $[ , ${^ENCODING} , ${^WIN32_SLOPPY_STAT} #
ppeerrllrree -- PPeerrll rreegguullaarr eexxpprreessssiioonnss
DESCRIPTION #
The Basics
Modifiers
""mm"" , ""ss"" , ""ii"" , ""xx"" and ""xxxx"" , ""pp"" , ""aa"", ""dd"", ""ll"",
and ""uu""
, ""nn"" , Other Modifiers
Regular Expressions
[1], [2], [3], [4], [5], [6], [7], [8]
Quoting metacharacters
Extended Patterns
"(?#_t_e_x_t)" , "(?adlupimnsx-imnsx)", "(?^alupimnsx)" ,
"(?:_p_a_t_t_e_r_n)" , "(?adluimnsx-imnsx:_p_a_t_t_e_r_n)",
"(?^aluimnsx:_p_a_t_t_e_r_n)" , "(?|_p_a_t_t_e_r_n)" , Lookaround Assertions
, "(?=_p_a_t_t_e_r_n)", "(*pla:_p_a_t_t_e_r_n)",
"(*positive_lookahead:_p_a_t_t_e_r_n)"
, "(?!_p_a_t_t_e_r_n)", "(*nla:_p_a_t_t_e_r_n)",
"(*negative_lookahead:_p_a_t_t_e_r_n)"
, "(?<=_p_a_t_t_e_r_n)", "\K", "(*plb:_p_a_t_t_e_r_n)",
"(*positive_lookbehind:_p_a_t_t_e_r_n)"
, "(?<!_p_a_t_t_e_r_n)", "(*nlb:_p_a_t_t_e_r_n)",
"(*negative_lookbehind:_p_a_t_t_e_r_n)"
, "(?<_N_A_M_E>_p_a_t_t_e_r_n)", "(?'_N_A_M_E'_p_a_t_t_e_r_n)"
, "\k<_N_A_M_E>", "\k'_N_A_M_E'", "\k{_N_A_M_E}", "(?{ _c_o_d_e })" , "(??{
_c_o_d_e })" , "(?_P_A_R_N_O)" "(?-_P_A_R_N_O)" "(?+_P_A_R_N_O)" "(?R)" "(?0)"
, "(?&_N_A_M_E)" , "(?(_c_o_n_d_i_t_i_o_n)_y_e_s_-_p_a_t_t_e_r_n|_n_o_-_p_a_t_t_e_r_n)" ,
"(?(_c_o_n_d_i_t_i_o_n)_y_e_s_-_p_a_t_t_e_r_n)", 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)” .., “(<_N_A_M_E>)” “(’_N_A_M_E’)”, “(?=…)” “(?!…)” “(?<=…)” #
“(?<!…)”, “(?{ _C_O_D_E })”, “(R)”, “(R1)” “(R2)” .., “(R&_N_A_M_E)”, #
"(DEFINE)", "(?>_p_a_t_t_e_r_n)", "(*atomic:_p_a_t_t_e_r_n)"
, "(?[ ])"
Backtracking
Script Runs
Special Backtracking Control Verbs
Verbs, "(*PRUNE)" "(*PRUNE:_N_A_M_E)" , "(*SKIP)" "(*SKIP:_N_A_M_E)" ,
“(MARK:_N_A_M_E)” “(:_N_A_M_E)” #
, "(*THEN)" "(*THEN:_N_A_M_E)", "(*COMMIT)" "(*COMMIT:_a_r_g)" ,
"(*FAIL)" "(*F)" "(*FAIL:_a_r_g)" , "(*ACCEPT)" "(*ACCEPT:_a_r_g)"
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)”, “(??{ _E_X_P_R })”, “(?_P_A_R_N_O)”, #
"(?(_c_o_n_d_i_t_i_o_n)_y_e_s_-_p_a_t_t_e_r_n|_n_o_-_p_a_t_t_e_r_n)"
Creating Custom RE Engines
Embedded Code Execution Frequency
PCRE/Python Support
"(?P<_N_A_M_E>_p_a_t_t_e_r_n)", "(?P=_N_A_M_E)", "(?P>_N_A_M_E)"
BUGS #
SEE ALSO #
ppeerrllrreebbaacckkssllaasshh -- PPeerrll RReegguullaarr EExxpprreessssiioonn BBaacckkssllaasshh SSeeqquueenncceess aanndd EEssccaappeess
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 #
ppeerrllrreecchhaarrccllaassss -- PPeerrll RReegguullaarr EExxpprreessssiioonn CChhaarraacctteerr CCllaasssseess
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 ..
ppeerrllrreerreeff -- PPeerrll RReegguullaarr EExxpprreessssiioonnss RReeffeerreennccee
DESCRIPTION #
OPERATORS #
SYNTAX #
ESCAPE SEQUENCES #
CHARACTER CLASSES #
ANCHORS #
QUANTIFIERS #
EXTENDED CONSTRUCTS #
VARIABLES #
FUNCTIONS #
TERMINOLOGY #
AUTHOR #
SEE ALSO #
THANKS #
ppeerrllrreeff -- PPeerrll rreeffeerreenncceess aanndd nneesstteedd ddaattaa ssttrruuccttuurreess
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 #
ppeerrllffoorrmm -- PPeerrll ffoorrmmaattss
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 #
ppeerrlloobbjj -- PPeerrll oobbjjeecctt rreeffeerreennccee
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 #
ppeerrllttiiee -- hhooww ttoo hhiiddee aann oobbjjeecctt ccllaassss iinn aa ssiimmppllee vvaarriiaabbllee
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 #
ppeerrllddbbmmffiilltteerr -- PPeerrll DDBBMM FFiilltteerrss
SYNOPSIS #
DESCRIPTION #
ffiilltteerr__ssttoorree__kkeeyy, ffiilltteerr__ssttoorree__vvaalluuee, ffiilltteerr__ffeettcchh__kkeeyy,
ffiilltteerr__ffeettcchh__vvaalluuee
The Filter
An Example: the NULL termination problem.
Another Example: Key is a C int.
SEE ALSO #
AUTHOR #
ppeerrlliippcc -- PPeerrll iinntteerrpprroocceessss ccoommmmuunniiccaattiioonn ((ssiiggnnaallss,, ffiiffooss,, ppiippeess,, ssaaffee ssuubbpprroocceesssseess,, ssoocckkeettss,, aanndd sseemmaapphhoorreess))
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 ooppeenn(()) 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 #
ppeerrllffoorrkk -- PPeerrll’’ss ffoorrkk(()) eemmuullaattiioonn
SYNOPSIS #
DESCRIPTION #
Behavior of other Perl features in forked pseudo-processes
$$ or $PROCESS_ID, %ENV, cchhddiirr(()) and all other builtins that
accept filenames, wwaaiitt(()) and wwaaiittppiidd(()), kkiillll(()), eexxeecc(()), eexxiitt(()),
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
ooppeenn(()) not yet implemented, Global state maintained by XSUBs,
Interpreter embedded in larger application, Thread-safety of
extensions
PORTABILITY CAVEATS #
BUGS #
AUTHOR #
SEE ALSO #
ppeerrllnnuummbbeerr -- sseemmaannttiiccss ooff nnuummbbeerrss aanndd nnuummeerriicc ooppeerraattiioonnss iinn PPeerrll
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 #
ppeerrlltthhrrttuutt -- TTuuttoorriiaall oonn tthhrreeaaddss iinn PPeerrll
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: lloocckk(())
A Thread Pitfall: Deadlocks
Queues: Passing Data Around
Semaphores: Synchronizing Data Access
Basic semaphores
Advanced Semaphores
Waiting for a Condition
Giving up control
General Thread Utility Routines
What Thread Am I In?
Thread IDs
Are These Threads The Same?
What Threads Are Running?
A Complete Example
Different implementations of threads
Performance considerations
Process-scope Changes
Thread-Safety of System Libraries
Conclusion
SEE ALSO #
Bibliography
Introductory Texts
OS-Related References
Other References
Acknowledgements
AUTHOR #
Copyrights
ppeerrllppoorrtt -- WWrriittiinngg ppoorrttaabbllee PPeerrll
DESCRIPTION #
Not all Perl programs have to be portable, Nearly all of Perl already
_i_s 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.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 #
ppeerrllllooccaallee -- PPeerrll llooccaallee hhaannddlliinngg ((iinntteerrnnaattiioonnaalliizzaattiioonn aanndd llooccaalliizzaattiioonn))
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_MESSAGES": Error and other messages,
Category "LC_COLLATE": Collation, Category "LC_CTYPE": Character
Types, Other categories
PREPARING TO USE LOCALES #
USING LOCALES #
The "use locale" pragma
NNoott wwiitthhiinn tthhee ssccooppee ooff ""uussee llooccaallee"", LLiinnggeerriinngg eeffffeeccttss ooff
""uussee  llooccaallee"", UUnnddeerr """"uussee llooccaallee"";;""
The setlocale function
Multi-threaded operation
Finding locales
LOCALE PROBLEMS #
Testing for broken locales
Temporarily fixing locale problems
Permanently fixing locale problems
Permanently fixing your system's locale configuration
Fixing system locale configuration
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
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
Multi-threaded
Broken systems
SEE ALSO #
HISTORY #
ppeerrlluunniiiinnttrroo -- PPeerrll UUnniiccooddee iinnttrroodduuccttiioonn
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 #
ppeerrlluunniiccooddee -- UUnniiccooddee ssuuppppoorrtt iinn PPeerrll
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
""\\pp{{AAllll}}"", ""\\pp{{AAllnnuumm}}"", ""\\pp{{AAnnyy}}"", ""\\pp{{AASSCCIIII}}"", ""\\pp{{AAssssiiggnneedd}}"",
""\\pp{{BBllaannkk}}"", ""\\pp{{DDeeccoommppoossiittiioonn__TTyyppee:: NNoonn__CCaannoonniiccaall}}"" (Short:
"\p{Dt=NonCanon}"), ""\\pp{{GGrraapphh}}"", ""\\pp{{HHoorriizzSSppaaccee}}"", ""\\pp{{IInn==**}}"",
""\\pp{{PPeerrllSSppaaccee}}"", ""\\pp{{PPeerrllWWoorrdd}}"", ""\\pp{{PPoossiixx......}}"", ""\\pp{{PPrreesseenntt__IInn::
**}}"" (Short: "\p{In=*}"), ""\\pp{{PPrriinntt}}"", ""\\pp{{SSppaacceePPeerrll}}"",
""\\pp{{TTiittllee}}"" and ""\\pp{{TTiittlleeccaassee}}"", ""\\pp{{UUnniiccooddee}}"", ""\\pp{{VVeerrttSSppaaccee}}"",
""\\pp{{WWoorrdd}}"", ""\\pp{{XXPPoossiixx......}}""
Comparison of "\N{...}" and "\p{name=...}"
[1], [2], [3], [4], [5]
Wildcards in Property Values
User-Defined Character Properties
User-Defined Case Mappings (for serious hackers only)
Character Encodings for Input and Output
Unicode Regular Expression Support Level
[1] "\N{U+...}" and "\x{...}", [2] "\p{...}" "\P{...}". This
requirement is for a minimal list of properties. Perl supports
these. See R2.7 for other properties, [3], [4], [5] "\b" "\B"
meet most, but not all, the details of this requirement, but
"\b{wb}" and "\B{wb}" do, as well as the stricter R2.3, [6], [7],
[8] UTF-8/UTF-EBDDIC used in Perl allows not only "U+10000" to
"U+10FFFF" but also beyond "U+10FFFF", [9] Unicode has rewritten
this portion of UTS#18 to say that getting canonical equivalence
(see UAX#15 "Unicode Normalization Forms"
<https://www.unicode.org/reports/tr15>) is basically to be done
at the programmer level. Use NFD to write both your regular
expressions and text to match them against (you can use
Unicode::Normalize), [10] Perl has "\X" and "\b{gcb}". Unicode
has retracted their "Grapheme Cluster Mode", and recently added
string properties, which Perl does not yet support, [11] see
UAX#29 "Unicode Text Segmentation"
<https://www.unicode.org/reports/tr29>,, [12] see "Wildcards in
Property Values" 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 #
ppeerrlluunniiccooookk -- ccooookkbbooookkiisshh eexxaammpplleess ooff hhaannddlliinngg UUnniiccooddee iinn PPeerrll
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- _a_n_d accent-insensitive Unicode sort
â„ž 37: Unicode locale collation
â„ž 38: Making "cmp" work on text instead of codepoints
â„ž 39: Case- _a_n_d accent-insensitive comparisons
â„ž 40: Case- _a_n_d accent-insensitive locale comparisons
â„ž 41: Unicode linebreaking
â„ž 42: Unicode text in DBM hashes, the tedious way
â„ž 43: Unicode text in DBM hashes, the easy way
â„ž 44: PROGRAM: Demo of Unicode collation and printing
SEE ALSO #
§3.13 Default Case Algorithms, page 113; §4.2 Case, pages 120–122;
Case Mappings, page 166–172, especially Caseless Matching starting on
page 170, UAX #44: Unicode Character Database, UTS #18: Unicode
Regular Expressions, UAX #15: Unicode Normalization Forms, UTS #10:
Unicode Collation Algorithm, UAX #29: Unicode Text Segmentation, UAX
#14: Unicode Line Breaking Algorithm, UAX #11: East Asian Width
AUTHOR #
COPYRIGHT AND LICENCE #
REVISION HISTORY #
ppeerrlluunniiffaaqq -- PPeerrll UUnniiccooddee FFAAQQ 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 #
ppeerrlluunniipprrooppss -- IInnddeexx ooff UUnniiccooddee VVeerrssiioonn 1144..00..00 cchhaarraacctteerr pprrooppeerrttiieess iinn PPeerrll
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,
((\\dd++)) in the info column gives the number of Unicode code points
matched by this property, DD means this is deprecated, OO means this is
obsolete, SS means this is stabilized, TT means tighter (stricter) name
matching applies, XX means use of this form is discouraged, and may
not be stable
Legal "\p{}" and "\P{}" constructs that match no characters
\p{Canonical_Combining_Class=Attached_Below_Left},
\p{Canonical_Combining_Class=CCC133},
\p{Grapheme_Cluster_Break=E_Base},
\p{Grapheme_Cluster_Break=E_Base_GAZ},
\p{Grapheme_Cluster_Break=E_Modifier},
\p{Grapheme_Cluster_Break=Glue_After_Zwj}, \p{Word_Break=E_Base},
\p{Word_Break=E_Base_GAZ}, \p{Word_Break=E_Modifier},
\p{Word_Break=Glue_After_Zwj}
Properties accessible through Unicode::UCD
Properties accessible through other means
Unicode character properties that are NOT accepted by Perl
_E_x_p_a_n_d_s___O_n___N_F_C (XO_NFC), _E_x_p_a_n_d_s___O_n___N_F_D (XO_NFD), _E_x_p_a_n_d_s___O_n___N_F_K_C
(XO_NFKC), _E_x_p_a_n_d_s___O_n___N_F_K_D (XO_NFKD), _G_r_a_p_h_e_m_e___L_i_n_k (Gr_Link),
_J_a_m_o___S_h_o_r_t___N_a_m_e (JSN), _O_t_h_e_r___A_l_p_h_a_b_e_t_i_c (OAlpha),
_O_t_h_e_r___D_e_f_a_u_l_t___I_g_n_o_r_a_b_l_e___C_o_d_e___P_o_i_n_t (ODI), _O_t_h_e_r___G_r_a_p_h_e_m_e___E_x_t_e_n_d
(OGr_Ext), _O_t_h_e_r___I_D___C_o_n_t_i_n_u_e (OIDC), _O_t_h_e_r___I_D___S_t_a_r_t (OIDS),
_O_t_h_e_r___L_o_w_e_r_c_a_s_e (OLower), _O_t_h_e_r___M_a_t_h (OMath), _O_t_h_e_r___U_p_p_e_r_c_a_s_e
(OUpper), _S_c_r_i_p_t_=_K_a_t_a_k_a_n_a___O_r___H_i_r_a_g_a_n_a (sc=Hrkt),
_S_c_r_i_p_t___E_x_t_e_n_s_i_o_n_s_=_K_a_t_a_k_a_n_a___O_r___H_i_r_a_g_a_n_a (scx=Hrkt)
Other information in the Unicode data base
_a_u_x_i_l_i_a_r_y_/_G_r_a_p_h_e_m_e_B_r_e_a_k_T_e_s_t_._h_t_m_l, _a_u_x_i_l_i_a_r_y_/_L_i_n_e_B_r_e_a_k_T_e_s_t_._h_t_m_l,
_a_u_x_i_l_i_a_r_y_/_S_e_n_t_e_n_c_e_B_r_e_a_k_T_e_s_t_._h_t_m_l, _a_u_x_i_l_i_a_r_y_/_W_o_r_d_B_r_e_a_k_T_e_s_t_._h_t_m_l,
_B_i_d_i_C_h_a_r_a_c_t_e_r_T_e_s_t_._t_x_t, _B_i_d_i_T_e_s_t_._t_x_t, _N_o_r_m_T_e_s_t_._t_x_t, _C_J_K_R_a_d_i_c_a_l_s_._t_x_t,
_e_m_o_j_i_/_R_e_a_d_M_e_._t_x_t, _R_e_a_d_M_e_._t_x_t, _E_m_o_j_i_S_o_u_r_c_e_s_._t_x_t, _e_x_t_r_a_c_t_e_d_/_D_N_a_m_e_._t_x_t,
_I_n_d_e_x_._t_x_t, _N_a_m_e_d_S_q_P_r_o_v_._t_x_t, _N_a_m_e_s_L_i_s_t_._h_t_m_l, _N_a_m_e_s_L_i_s_t_._t_x_t,
_N_o_r_m_a_l_i_z_a_t_i_o_n_C_o_r_r_e_c_t_i_o_n_s_._t_x_t, _N_u_s_h_u_S_o_u_r_c_e_s_._t_x_t,
_S_t_a_n_d_a_r_d_i_z_e_d_V_a_r_i_a_n_t_s_._h_t_m_l, _S_t_a_n_d_a_r_d_i_z_e_d_V_a_r_i_a_n_t_s_._t_x_t,
_T_a_n_g_u_t_S_o_u_r_c_e_s_._t_x_t, _U_S_o_u_r_c_e_D_a_t_a_._t_x_t, _U_S_o_u_r_c_e_G_l_y_p_h_s_._p_d_f
SEE ALSO #
ppeerrlluunniittuutt -- PPeerrll UUnniiccooddee TTuuttoorriiaall
DESCRIPTION #
Definitions
Your new toolkit
I/O flow (the actual 5 minute tutorial)
SUMMARY #
Q and A (or FAQ)
ACKNOWLEDGEMENTS #
AUTHOR #
SEE ALSO #
ppeerrlleebbccddiicc -- CCoonnssiiddeerraattiioonnss ffoorr rruunnnniinngg PPeerrll oonn EEBBCCDDIICC ppllaattffoorrmmss
DESCRIPTION #
COMMON CHARACTER CODE SETS #
ASCII #
ISO 8859 #
Latin 1 (ISO 8859-1)
EBCDIC #
00003377, 11004477, PPOOSSIIXX--BBCC #
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 #
ppeerrllsseecc -- PPeerrll sseeccuurriittyy
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 #
ppeerrllsseeccppoolliiccyy -- PPeerrll sseeccuurriittyy rreeppoorrtt hhaannddlliinngg ppoolliiccyy
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
ppeerrllmmoodd -- PPeerrll mmoodduulleess ((ppaacckkaaggeess aanndd ssyymmbbooll ttaabblleess))
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 #
ppeerrllmmooddlliibb -- ccoonnssttrruuccttiinngg nneeww PPeerrll mmoodduulleess aanndd ffiinnddiinngg eexxiissttiinngg oonneess
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, 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", 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::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,
Configure, Cwd, DB, DBM_Filter, DBM_Filter::compress,
DBM_Filter::encode, DBM_Filter::int32, DBM_Filter::null,
DBM_Filter::utf8, DB_File, Data::Dumper, Devel::PPPort,
Devel::Peek, Devel::SelfStubber, Digest, Digest::MD5,
Digest::SHA, Digest::base, Digest::file, DirHandle, Dumpvalue,
DynaLoader, Encode, Encode::Alias, Encode::Byte,
Encode::CJKConstants, Encode::CN, Encode::CN::HZ, Encode::Config,
Encode::EBCDIC, Encode::Encoder, Encode::Encoding,
Encode::GSM0338, Encode::Guess, Encode::JP, Encode::JP::H2Z,
Encode::JP::JIS7, Encode::KR, Encode::KR::2022_KR,
Encode::MIME::Header, Encode::MIME::Name, Encode::PerlIO,
Encode::Supported, Encode::Symbol, Encode::TW, Encode::Unicode,
Encode::Unicode::UTF7, English, Env, Errno, Exporter,
Exporter::Heavy, ExtUtils::CBuilder,
ExtUtils::CBuilder::Platform::Windows, ExtUtils::Command,
ExtUtils::Command::MM, ExtUtils::Constant,
ExtUtils::Constant::Base, ExtUtils::Constant::Utils,
ExtUtils::Constant::XS, ExtUtils::Embed, ExtUtils::Install,
ExtUtils::Installed, ExtUtils::Liblist, ExtUtils::MM,
ExtUtils::MM_AIX, ExtUtils::MM_Any, ExtUtils::MM_BeOS,
ExtUtils::MM_Cygwin, ExtUtils::MM_DOS, ExtUtils::MM_Darwin,
ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2,
ExtUtils::MM_OS390, ExtUtils::MM_QNX, ExtUtils::MM_UWIN,
ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_VOS,
ExtUtils::MM_Win32, ExtUtils::MM_Win95, ExtUtils::MY,
ExtUtils::MakeMaker, ExtUtils::MakeMaker::Config,
ExtUtils::MakeMaker::FAQ, ExtUtils::MakeMaker::Locale,
ExtUtils::MakeMaker::Tutorial, ExtUtils::Manifest,
ExtUtils::Miniperl, ExtUtils::Mkbootstrap, ExtUtils::Mksymlists,
ExtUtils::PL2Bat, ExtUtils::Packlist, ExtUtils::ParseXS,
ExtUtils::ParseXS::Constants, ExtUtils::ParseXS::Eval,
ExtUtils::ParseXS::Utilities, ExtUtils::Typemaps,
ExtUtils::Typemaps::Cmd, ExtUtils::Typemaps::InputMap,
ExtUtils::Typemaps::OutputMap, ExtUtils::Typemaps::Type,
ExtUtils::XSSymSet, ExtUtils::testlib, Fatal, Fcntl,
File::Basename, File::Compare, File::Copy, File::DosGlob,
File::Fetch, File::Find, File::Glob, File::GlobMapper,
File::Path, File::Spec, File::Spec::AmigaOS, File::Spec::Cygwin,
File::Spec::Epoc, File::Spec::Functions, File::Spec::Mac,
File::Spec::OS2, File::Spec::Unix, File::Spec::VMS,
File::Spec::Win32, File::Temp, File::stat, FileCache, FileHandle,
Filter::Simple, Filter::Util::Call, FindBin, GDBM_File,
Getopt::Long, Getopt::Std, HTTP::Tiny, Hash::Util,
Hash::Util::FieldHash, I18N::Collate, I18N::LangTags,
I18N::LangTags::Detect, I18N::LangTags::List, I18N::Langinfo, IO,
IO::Compress::Base, IO::Compress::Bzip2, IO::Compress::Deflate,
IO::Compress::FAQ, IO::Compress::Gzip, IO::Compress::RawDeflate,
IO::Compress::Zip, IO::Dir, IO::File, IO::Handle, IO::Pipe,
IO::Poll, IO::Seekable, IO::Select, IO::Socket, IO::Socket::INET,
IO::Socket::UNIX, IO::Uncompress::AnyInflate,
IO::Uncompress::AnyUncompress, IO::Uncompress::Base,
IO::Uncompress::Bunzip2, IO::Uncompress::Gunzip,
IO::Uncompress::Inflate, IO::Uncompress::RawInflate,
IO::Uncompress::Unzip, IO::Zlib, IPC::Cmd, IPC::Msg, IPC::Open2,
IPC::Open3, IPC::Semaphore, IPC::SharedMem, IPC::SysV, Internals,
JSON::PP, JSON::PP::Boolean, List::Util, List::Util::XS,
Locale::Maketext, Locale::Maketext::Cookbook,
Locale::Maketext::Guts, Locale::Maketext::GutsLoader,
Locale::Maketext::Simple, Locale::Maketext::TPJ13, MIME::Base64,
MIME::QuotedPrint, Math::BigFloat, Math::BigInt,
Math::BigInt::Calc, Math::BigInt::FastCalc, Math::BigInt::Lib,
Math::BigRat, Math::Complex, Math::Trig, Memoize,
Memoize::AnyDBM_File, Memoize::Expire, Memoize::ExpireFile,
Memoize::ExpireTest, 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, OpenBSD::Pledge, OpenBSD::Unveil, POSIX,
Params::Check, Parse::CPAN::Meta, Perl::OSType, PerlIO,
PerlIO::encoding, PerlIO::mmap, PerlIO::scalar, PerlIO::via,
PerlIO::via::QuotedPrint, Pod::Checker, Pod::Escapes,
Pod::Functions, Pod::Html, Pod::Html::Util, Pod::Man,
Pod::ParseLink, Pod::Perldoc, Pod::Perldoc::BaseTo,
Pod::Perldoc::GetOptsOO, Pod::Perldoc::ToANSI,
Pod::Perldoc::ToChecker, Pod::Perldoc::ToMan,
Pod::Perldoc::ToNroff, Pod::Perldoc::ToPod, Pod::Perldoc::ToRtf,
Pod::Perldoc::ToTerm, Pod::Perldoc::ToText, Pod::Perldoc::ToTk,
Pod::Perldoc::ToXml, Pod::Simple, Pod::Simple::Checker,
Pod::Simple::Debug, Pod::Simple::DumpAsText,
Pod::Simple::DumpAsXML, Pod::Simple::HTML,
Pod::Simple::HTMLBatch, Pod::Simple::JustPod,
Pod::Simple::LinkSection, Pod::Simple::Methody,
Pod::Simple::PullParser, Pod::Simple::PullParserEndToken,
Pod::Simple::PullParserStartToken,
Pod::Simple::PullParserTextToken, Pod::Simple::PullParserToken,
Pod::Simple::RTF, Pod::Simple::Search, Pod::Simple::SimpleTree,
Pod::Simple::Subclassing, Pod::Simple::Text,
Pod::Simple::TextContent, Pod::Simple::XHTML,
Pod::Simple::XMLOutStream, Pod::Text, Pod::Text::Color,
Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Usage, SDBM_File,
Safe, Scalar::Util, Search::Dict, SelectSaver, SelfLoader,
Storable, Sub::Util, Symbol, Sys::Hostname, Sys::Syslog,
Sys::Syslog::Win32, TAP::Base, TAP::Formatter::Base,
TAP::Formatter::Color, TAP::Formatter::Console,
TAP::Formatter::Console::ParallelSession,
TAP::Formatter::Console::Session, TAP::Formatter::File,
TAP::Formatter::File::Session, TAP::Formatter::Session,
TAP::Harness, TAP::Harness::Env, TAP::Object, TAP::Parser,
TAP::Parser::Aggregator, TAP::Parser::Grammar,
TAP::Parser::Iterator, TAP::Parser::Iterator::Array,
TAP::Parser::Iterator::Process, TAP::Parser::Iterator::Stream,
TAP::Parser::IteratorFactory, TAP::Parser::Multiplexer,
TAP::Parser::Result, TAP::Parser::Result::Bailout,
TAP::Parser::Result::Comment, TAP::Parser::Result::Plan,
TAP::Parser::Result::Pragma, TAP::Parser::Result::Test,
TAP::Parser::Result::Unknown, TAP::Parser::Result::Version,
TAP::Parser::Result::YAML, TAP::Parser::ResultFactory,
TAP::Parser::Scheduler, TAP::Parser::Scheduler::Job,
TAP::Parser::Scheduler::Spinner, TAP::Parser::Source,
TAP::Parser::SourceHandler,
TAP::Parser::SourceHandler::Executable,
TAP::Parser::SourceHandler::File,
TAP::Parser::SourceHandler::Handle,
TAP::Parser::SourceHandler::Perl,
TAP::Parser::SourceHandler::RawTAP, TAP::Parser::YAMLish::Reader,
TAP::Parser::YAMLish::Writer, Term::ANSIColor, Term::Cap,
Term::Complete, Term::ReadKey, Term::ReadLine, 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::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::Tools::Tiny, Test2::Transition, Test2::Util,
Test2::Util::ExternalMeta, Test2::Util::Facets2Legacy,
Test2::Util::HashBase, Test2::Util::Trace, 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 #
ppeerrllmmooddssttyyllee -- PPeerrll mmoodduullee ssttyyllee gguuiiddee
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 #
ppeerrllmmooddiinnssttaallll -- IInnssttaalllliinngg CCPPAANN MMoodduulleess
DESCRIPTION #
PREAMBLE #
DDEECCOOMMPPRREESSSS the file, UUNNPPAACCKK the file into a directory, BBUUIILLDD the
module (sometimes unnecessary), IINNSSTTAALLLL the module
PORTABILITY #
HEY #
AUTHOR #
COPYRIGHT #
ppeerrllnneewwmmoodd -- pprreeppaarriinngg aa nneeww mmoodduullee ffoorr ddiissttrriibbuuttiioonn
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 _m_o_d_u_l_e_-_s_t_a_r_t_e_r or _h_2_x_s, Use strict and warnings, Use
Carp, Use Exporter - wisely!, Use plain old documentation, Write
tests, Write the _R_E_A_D_M_E, Write _C_h_a_n_g_e_s
Step-by-step: Distributing your module
Get a CPAN user ID, Make the tarball, Upload the tarball, Fix
bugs!
AUTHOR #
SEE ALSO #
ppeerrllpprraaggmmaa -- hhooww ttoo wwrriittee aa uusseerr pprraaggmmaa
DESCRIPTION #
A basic example
Key naming
Implementation details
ppeerrlluuttiill -- uuttiilliittiieess ppaacckkaaggeedd wwiitthh tthhee PPeerrll ddiissttrriibbuuttiioonn
DESCRIPTION #
LIST OF UTILITIES #
Documentation
perldoc, pod2man, pod2text, pod2html, pod2usage, podchecker,
splain, _r_o_f_f_i_t_a_l_l
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 #
ppeerrllffiilltteerr -- SSoouurrccee FFiilltteerrss
DESCRIPTION #
CONCEPTS #
USING FILTERS #
WRITING A SOURCE FILTER #
WRITING A SOURCE FILTER IN C #
DDeeccrryyppttiioonn FFiilltteerrss
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
ppeerrllddttrraaccee -- PPeerrll’’ss ssuuppppoorrtt ffoorr DDTTrraaccee
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 #
ppeerrllgglloossssaarryy -- PPeerrll GGlloossssaarryy
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
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 #
ppeerrlleemmbbeedd -- hhooww ttoo eemmbbeedd ppeerrll iinn yyoouurr CC pprrooggrraamm
DESCRIPTION #
PREAMBLE #
UUssee CC ffrroomm PPeerrll??, UUssee aa UUnniixx pprrooggrraamm ffrroomm PPeerrll??, UUssee PPeerrll ffrroomm
PPeerrll??, UUssee CC ffrroomm CC??, UUssee PPeerrll ffrroomm CC??
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 #
ppeerrllddeebbgguuttss -- GGuuttss ooff PPeerrll ddeebbuuggggiinngg
DESCRIPTION #
Debugger Internals
Writing Your Own Debugger
Frame Listing Output Examples
Debugging Regular Expressions
Compile-time Output
"anchored" _S_T_R_I_N_G "at" _P_O_S, "floating" _S_T_R_I_N_G "at" _P_O_S_1_._._P_O_S_2,
"matching floating/anchored", "minlen", "stclass" _T_Y_P_E, "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 #
ppeerrllxxssttuutt -- TTuuttoorriiaall ffoorr wwrriittiinngg XXSSUUBBss
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
ppeerrllxxss -- XXSS llaanngguuaaggee rreeffeerreennccee mmaannuuaall
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)
Thread-aware system interfaces
EXAMPLES #
CAVEATS #
Non-locale-aware XS code, Locale-aware XS code
XS VERSION #
AUTHOR #
ppeerrllxxssttyyppeemmaapp -- PPeerrll XXSS CC//PPeerrll ttyyppee mmaappppiinngg
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 #
ppeerrllcclliibb -- IInntteerrnnaall rreeppllaacceemmeennttss ffoorr ssttaannddaarrdd CC lliibbrraarryy ffuunnccttiioonnss
DESCRIPTION #
Conventions
"t", "p", "n", "s"
File Operations
File Input and Output
File Positioning
Memory Management and String Handling
Character Class Tests
_s_t_d_l_i_b_._h functions
Miscellaneous functions
SEE ALSO #
ppeerrllgguuttss -- IInnttrroodduuccttiioonn ttoo tthhee PPeerrll AAPPII
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 OORR 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 MMUUSSTT 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
Working with HVs
Hash API Extensions
AVs, HVs and undefined values
References
Blessed References and Class Objects
Creating New Variables
GV_ADDMULTI, GV_ADDWARN #
Reference Counts and Mortality
Stashes and Globs
I/O Handles
Double-Typed SVs
Read-Only Values
Copy on Write
Magic Variables
Assigning Magic
Magic Virtual Tables
Finding Magic
Understanding the Magic of Tied Hashes and Arrays
Localizing changes
"SAVEINT(int i)", "SAVEIV(IV i)", "SAVEI32(I32 i)",
"SAVELONG(long i)", "SAVEI8(I8 i)", "SAVEI16(I16 i)",
"SAVEBOOL(int i)", "SAVESTRLEN(STRLEN i)", SAVESPTR(s),
SAVEPPTR(p), "SAVEFREESV(SV *sv)", "SAVEMORTALIZESV(SV *sv)",
"SAVEFREEOP(OP *op)", SAVEFREEPV(p), "SAVECLEARSV(SV *sv)",
"SAVEDELETE(HV *hv, char *key, I32 length)",
"SAVEDESTRUCTOR(DESTRUCTORFUNC_NOCONTEXT_t f, void *p)",
"SAVEDESTRUCTOR_X(DESTRUCTORFUNC_t f, void *p)",
"SAVESTACK_POS()", "SV* save_scalar(GV *gv)", "AV* save_ary(GV
*gv)", "HV* save_hash(GV *gv)", "void save_item(SV *item)", "void
save_list(SV **sarg, I32 maxsarg)", "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 iiss Unicode, anyway?
How can I recognise a UTF-8 string?
How does UTF-8 represent Unicode characters?
How does Perl store UTF-8 strings?
How do I pass a Perl string to a C library?
bytes: 0x64 0x78 0x8c, UTF-8: 0x64 0x78 0xc2 0x8c
How do I convert a string to UTF-8?
How do I compare strings?
Is there anything else I need to know?
Custom Operators
xop_name, xop_desc, xop_class, OA_BASEOP, OA_UNOP, OA_BINOP,
OA_LOGOP, OA_LISTOP, OA_PMOP, OA_SVOP, OA_PADOP, OA_PVOP_OR_SVOP, #
OA_LOOP, OA_COP, xop_peep
Stacks
Value Stack
Mark Stack
Temporaries Stack
Save Stack
Scope Stack
Dynamic Scope and the Context Stack
Introduction to the context stack
Pushing contexts
Popping contexts
Redoing contexts
Slab-based operator allocation
AUTHORS #
SEE ALSO #
ppeerrllccaallll -- PPeerrll ccaalllliinngg ccoonnvveennttiioonnss ffrroomm CC
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 #
ppeerrllmmrrooaappii -- PPeerrll mmeetthhoodd rreessoolluuttiioonn pplluuggiinn iinntteerrffaaccee
DESCRIPTION #
resolve, name, length, kflags, hash
Callbacks
Caching
Examples
AUTHORS #
ppeerrllrreeaappii -- PPeerrll rreegguullaarr eexxpprreessssiioonn pplluuggiinn iinntteerrffaaccee
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", "lastparen", and "lastcloseparen"
"intflags"
"pprivate"
"offs"
"precomp" "prelen"
"paren_names"
"substrs"
"subbeg" "sublen" "saved_copy" "suboffset" "subcoffset"
"wrapped" "wraplen"
"seen_evals"
"refcnt"
HISTORY #
AUTHORS #
LICENSE #
ppeerrllrreegguuttss -- DDeessccrriippttiioonn ooff tthhee PPeerrll rreegguullaarr eexxpprreessssiioonn eennggiinnee..
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"
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 #
ppeerrllaappii -- aauuttooggeenneerraatteedd ddooccuummeennttaattiioonn ffoorr tthhee ppeerrll ppuubblliicc AAPPII
DESCRIPTION #
"AV Handling", "Callback Functions", "Casting", "Character case
changing", "Character classification", "Compiler and Preprocessor
information", "Compiler directives", "Compile-time scope hooks",
"Concurrency", "COPs and Hint Hashes", "Custom Operators", "CV
Handling", "Debugging", "Display functions", "Embedding, Threads, and
Interpreter Cloning", "Errno", "Exception Handling (simple) Macros",
"Filesystem configuration values", "Floating point", "General
Configuration", "Global Variables", "GV Handling and Stashes", "Hook
manipulation", "HV Handling", "Input/Output", "Integer", "I/O
Formats", "Lexer interface", "Locales", "Magic", "Memory Management",
"MRO", "Multicall Functions", "Numeric Functions", "Optrees", "Pack
and Unpack", "Pad Data Structures", "Password and Group access",
"Paths to system commands", "Prototype information", "REGEXP
Functions", "Reports and Formats", "Signals", "Site configuration",
"Sockets configuration values", "Source Filters", "Stack Manipulation
Macros", "String Handling", "SV Flags", "SV Handling", "Tainting",
"Time", "Typedef names", "Unicode Support", "Utility Functions",
"Versioning", "Warning and Dieing", "XS", "Undocumented elements"
AV Handling
"AV", "AvALLOC", "AvARRAY" , "av_clear" , "av_count" ,
"av_create_and_push" , "av_create_and_unshift_one" , "av_delete" ,
"av_exists" , "av_extend" , "av_fetch" , "AvFILL" , "av_fill" ,
"av_len" , "av_make" , "av_pop" , "av_push" , "av_shift" , "av_store"
, "av_tindex", "av_top_index" , "av_undef" , "av_unshift" , "get_av"
, "newAV", "newAV_alloc_x", "newAV_alloc_xz" , "newAV" form,
"newAV_alloc_x" form, "newAV_alloc_xz" form, "Nullav"
Callback Functions
"call_argv" , "call_method" , "call_pv" , "call_sv" ,
"DESTRUCTORFUNC_NOCONTEXT_t", "DESTRUCTORFUNC_t", "ENTER" ,
"ENTER_with_name" , "eval_pv" , "eval_sv" , "FREETMPS" , "G_DISCARD",
“G_EVAL”, “GIMME” , “GIMME_V” , “G_KEEPERR”, “G_LIST”, “G_NOARGS”, #
"G_SCALAR", "G_VOID", "is_lvalue_sub" , "LEAVE" , "LEAVE_with_name" ,
"PL_errgv", "save_aptr", "save_ary", "SAVEBOOL", "SAVEDELETE",
“SAVEDESTRUCTOR”, “SAVEDESTRUCTOR_X”, “SAVEFREEOP”, “SAVEFREEPV”, #
"SAVEFREESV", "save_hash", "save_hptr", "SAVEI8", "SAVEI32",
"SAVEI16", "SAVEINT", "save_item", "SAVEIV", "save_list", "SAVELONG",
"SAVEMORTALIZESV", "SAVEPPTR", "save_scalar", "SAVESPTR",
"SAVESTACK_POS", "SAVESTRLEN", "save_svref", "SAVETMPS"
Casting
"cBOOL" , "I_32" , "INT2PTR", "I_V" , "PTR2IV", "PTR2nat", "PTR2NV",
"PTR2ul", "PTR2UV", "PTRV", "U_32" , "U_V"
Character case changing
"toFOLD", "toFOLD_A", "toFOLD_uvchr", "toFOLD_utf8",
"toFOLD_utf8_safe" , "toLOWER", "toLOWER_A", "toLOWER_L1",
"toLOWER_LATIN1", "toLOWER_LC", "toLOWER_uvchr", "toLOWER_utf8",
"toLOWER_utf8_safe" , "toTITLE", "toTITLE_A", "toTITLE_uvchr",
"toTITLE_utf8", "toTITLE_utf8_safe" , "toUPPER", "toUPPER_A",
"toUPPER_uvchr", "toUPPER_utf8", "toUPPER_utf8_safe"
Character classification
"isALPHA", "isALPHA_A", "isALPHA_L1", "isALPHA_uvchr",
"isALPHA_utf8_safe", "isALPHA_utf8", "isALPHA_LC",
"isALPHA_LC_uvchr", "isALPHA_LC_utf8_safe" , "isALPHANUMERIC",
"isALPHANUMERIC_A", "isALPHANUMERIC_L1", "isALPHANUMERIC_uvchr",
"isALPHANUMERIC_utf8_safe", "isALPHANUMERIC_utf8",
"isALPHANUMERIC_LC", "isALPHANUMERIC_LC_uvchr",
"isALPHANUMERIC_LC_utf8_safe", "isALNUMC", "isALNUMC_A",
"isALNUMC_L1", "isALNUMC_LC", "isALNUMC_LC_uvchr" , "isASCII",
"isASCII_A", "isASCII_L1", "isASCII_uvchr", "isASCII_utf8_safe",
"isASCII_utf8", "isASCII_LC", "isASCII_LC_uvchr",
"isASCII_LC_utf8_safe" , "isBLANK", "isBLANK_A", "isBLANK_L1",
"isBLANK_uvchr", "isBLANK_utf8_safe", "isBLANK_utf8", "isBLANK_LC",
"isBLANK_LC_uvchr", "isBLANK_LC_utf8_safe" , "isCNTRL", "isCNTRL_A",
"isCNTRL_L1", "isCNTRL_uvchr", "isCNTRL_utf8_safe", "isCNTRL_utf8",
"isCNTRL_LC", "isCNTRL_LC_uvchr", "isCNTRL_LC_utf8_safe" , "isDIGIT",
"isDIGIT_A", "isDIGIT_L1", "isDIGIT_uvchr", "isDIGIT_utf8_safe",
"isDIGIT_utf8", "isDIGIT_LC", "isDIGIT_LC_uvchr",
"isDIGIT_LC_utf8_safe" , "isGRAPH", "isGRAPH_A", "isGRAPH_L1",
"isGRAPH_uvchr", "isGRAPH_utf8_safe", "isGRAPH_utf8", "isGRAPH_LC",
"isGRAPH_LC_uvchr", "isGRAPH_LC_utf8_safe" , "isIDCONT",
"isIDCONT_A", "isIDCONT_L1", "isIDCONT_uvchr", "isIDCONT_utf8_safe",
"isIDCONT_utf8", "isIDCONT_LC", "isIDCONT_LC_uvchr",
"isIDCONT_LC_utf8_safe"
, "isIDFIRST", "isIDFIRST_A", "isIDFIRST_L1", "isIDFIRST_uvchr",
"isIDFIRST_utf8_safe", "isIDFIRST_utf8", "isIDFIRST_LC",
"isIDFIRST_LC_uvchr", "isIDFIRST_LC_utf8_safe" , "isLOWER",
"isLOWER_A", "isLOWER_L1", "isLOWER_uvchr", "isLOWER_utf8_safe",
"isLOWER_utf8", "isLOWER_LC", "isLOWER_LC_uvchr",
"isLOWER_LC_utf8_safe" , "isOCTAL", "isOCTAL_A", "isOCTAL_L1" ,
"isPRINT", "isPRINT_A", "isPRINT_L1", "isPRINT_uvchr",
"isPRINT_utf8_safe", "isPRINT_utf8", "isPRINT_LC",
"isPRINT_LC_uvchr", "isPRINT_LC_utf8_safe" , "isPSXSPC",
"isPSXSPC_A", "isPSXSPC_L1", "isPSXSPC_uvchr", "isPSXSPC_utf8_safe",
"isPSXSPC_utf8", "isPSXSPC_LC", "isPSXSPC_LC_uvchr",
"isPSXSPC_LC_utf8_safe"
, "isPUNCT", "isPUNCT_A", "isPUNCT_L1", "isPUNCT_uvchr",
"isPUNCT_utf8_safe", "isPUNCT_utf8", "isPUNCT_LC",
"isPUNCT_LC_uvchr", "isPUNCT_LC_utf8_safe" , "isSPACE", "isSPACE_A",
"isSPACE_L1", "isSPACE_uvchr", "isSPACE_utf8_safe", "isSPACE_utf8",
"isSPACE_LC", "isSPACE_LC_uvchr", "isSPACE_LC_utf8_safe" , "isUPPER",
"isUPPER_A", "isUPPER_L1", "isUPPER_uvchr", "isUPPER_utf8_safe",
"isUPPER_utf8", "isUPPER_LC", "isUPPER_LC_uvchr",
"isUPPER_LC_utf8_safe" , "isWORDCHAR", "isWORDCHAR_A",
"isWORDCHAR_L1", "isWORDCHAR_uvchr", "isWORDCHAR_utf8_safe",
"isWORDCHAR_utf8", "isWORDCHAR_LC", "isWORDCHAR_LC_uvchr",
"isWORDCHAR_LC_utf8_safe", "isALNUM", "isALNUM_A", "isALNUM_LC",
"isALNUM_LC_uvchr" , "isXDIGIT", "isXDIGIT_A", "isXDIGIT_L1",
"isXDIGIT_uvchr", "isXDIGIT_utf8_safe", "isXDIGIT_utf8",
"isXDIGIT_LC", "isXDIGIT_LC_uvchr", "isXDIGIT_LC_utf8_safe"
Compiler and Preprocessor information
“CPPLAST” , “CPPMINUS” , “CPPRUN” , “CPPSTDIN” , #
“HASATTRIBUTE_ALWAYS_INLINE” , “HASATTRIBUTE_DEPRECATED” , #
“HASATTRIBUTE_FORMAT” , “HASATTRIBUTE_NONNULL” , #
“HASATTRIBUTE_NORETURN” , “HASATTRIBUTE_PURE” , “HASATTRIBUTE_UNUSED” #
, “HASATTRIBUTE_WARN_UNUSED_RESULT” , “HAS_BUILTIN_ADD_OVERFLOW” , #
“HAS_BUILTIN_CHOOSE_EXPR” , “HAS_BUILTIN_EXPECT” , #
“HAS_BUILTIN_MUL_OVERFLOW” , “HAS_BUILTIN_SUB_OVERFLOW” , #
“HAS_C99_VARIADIC_MACROS” , “HAS_STATIC_INLINE” , “MEM_ALIGNBYTES” , #
“PERL_STATIC_INLINE” , “PERL_THREAD_LOCAL” , “U32_ALIGNMENT_REQUIRED” #
Compiler directives
"ASSUME" , "dNOOP" , "END_EXTERN_C" , "EXTERN_C" , "LIKELY" , "NOOP"
, “PERL_UNUSED_ARG” , “PERL_UNUSED_CONTEXT” , “PERL_UNUSED_DECL” , #
“PERL_UNUSED_RESULT” , “PERL_UNUSED_VAR” , #
“PERL_USE_GCC_BRACE_GROUPS” , “START_EXTERN_C” , “STATIC”, #
“STMT_START”, “STMT_END” , “UNLIKELY” , “_ASSERT” #
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_PTHREADS_API” , “OLD_PTHREAD_CREATE_JOINABLE” , #
"PERL_IMPLICIT_CONTEXT", "pTHX", "pTHX_", "SCHED_YIELD"
COPs and Hint Hashes
"cop_fetch_label" , "CopFILE" , "CopFILEAV" , "CopFILEAVn" ,
"CopFILEGV" , "CopFILEGV_set" , "CopFILE_set" , "CopFILESV" ,
"cophh_2hv" , "cophh_copy" , "cophh_delete_pvn", "cophh_delete_pv",
"cophh_delete_pvs", "cophh_delete_sv" , "cophh_exists_pvn" ,
"cophh_fetch_pvn", "cophh_fetch_pv", "cophh_fetch_pvs",
"cophh_fetch_sv" , "cophh_free" , "cophh_new_empty" ,
"cophh_store_pvn", "cophh_store_pv", "cophh_store_pvs",
"cophh_store_sv" , "cop_hints_2hv" , "cop_hints_exists_pvn",
"cop_hints_exists_pv", "cop_hints_exists_pvs", "cop_hints_exists_sv"
, "cop_hints_fetch_pvn", "cop_hints_fetch_pv", "cop_hints_fetch_pvs",
"cop_hints_fetch_sv" , "CopLABEL", "CopLABEL_len",
"CopLABEL_len_flags" , "CopLINE" , "CopSTASH" , "CopSTASH_eq" ,
"CopSTASHPV" , "CopSTASHPV_set" , "CopSTASH_set" , "cop_store_label"
, "PERL_SI" , "PL_curcop"
Custom Operators
"custom_op_desc" , "custom_op_name" , "custom_op_register" ,
"Perl_custom_op_xop" , "XopDISABLE" , "XopENABLE" , "XopENTRY" ,
"XopENTRYCUSTOM" , "XopENTRY_set" , "XopFLAGS"
CV Handling
"caller_cx" , "CvDEPTH" , "CvGV" , "CvSTASH" , "find_runcv" ,
"get_cv", "get_cvs", "get_cvn_flags" , "Nullcv" , "SvAMAGIC_off" ,
"SvAMAGIC_on"
Debugging
"deb", "deb_nocontext" , "debstack" , "dump_all" , "dump_c_backtrace"
, "dump_eval", "dump_form" , "dump_packsubs" , "dump_sub",
"get_c_backtrace_dump" , "gv_dump" , "HAS_BACKTRACE" , "magic_dump" ,
"op_class" , "op_dump" , "PL_op", "PL_runops", "PL_sv_serial",
"pmop_dump" , "sv_dump" , "vdeb"
Display functions
"form", "form_nocontext" , "mess", "mess_nocontext" , "mess_sv" ,
"pv_display" , "pv_escape" , "pv_pretty" , "vform" , "vmess"
Embedding, Threads, and Interpreter Cloning
"call_atexit" , "cv_clone" , "cv_name" , "cv_undef" , "find_rundefsv"
, "find_rundefsvoffset" , "HAS_SKIP_LOCALE_INIT", "intro_my" ,
"load_module", "load_module_nocontext" , "my_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_sv" , "padnamelist_fetch" , "padnamelist_store" ,
"pad_tidy" , "perl_alloc" , "PERL_ASYNC_CHECK", "perl_construct" ,
"perl_destruct" , "perl_free" , "PERL_GET_CONTEXT",
"PerlInterpreter", "perl_parse" , "perl_run" , "PERL_SET_CONTEXT",
"PERL_SYS_INIT", "PERL_SYS_INIT3" , "PERL_SYS_TERM" , "PL_exit_flags"
, “PERL_EXIT_DESTRUCT_END”, “PERL_EXIT_ABORT”, “PERL_EXIT_WARN”, #
"PERL_EXIT_EXPECTED", "PL_origalen", "PL_perl_destruct_level" , 0 -
none, 1 - full, 2 or greater - full with checks, "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_OPEN3” , “HAS_OPENAT” , “HAS_POLL” , #
“HAS_READDIR” , “HAS_READDIR64_R” , “HAS_REWINDDIR” , “HAS_RMDIR” , #
“HAS_SEEKDIR” , “HAS_SELECT” , “HAS_SETVBUF” , #
“HAS_STDIO_STREAM_ARRAY” , “HAS_STRUCT_FS_DATA” , “HAS_STRUCT_STATFS” #
, “HAS_STRUCT_STATFS_F_FLAGS” , “HAS_TELLDIR” , “HAS_USTAT” , #
“I_FCNTL” , “I_SYS_DIR” , “I_SYS_FILE” , “I_SYS_NDIR” , #
“I_SYS_STATFS” , “LSEEKSIZE” , “RD_NODATA” , “READDIR64_R_PROTO” , #
“STDCHAR” , “STDIO_CNT_LVALUE” , “STDIO_PTR_LVALUE” , #
“STDIO_PTR_LVAL_NOCHANGE_CNT” , “STDIO_PTR_LVAL_SETS_CNT” , #
“STDIO_STREAM_ARRAY” , “ST_INO_SIGN” , “ST_INO_SIZE” , “VAL_EAGAIN” , #
“VAL_O_NONBLOCK” , “VOID_CLOSEDIR” #
Floating point
“CASTFLAGS” , “CASTNEGFLOAT” , “DOUBLE_HAS_INF” , “DOUBLE_HAS_NAN” , #
“DOUBLE_HAS_NEGATIVE_ZERO” , “DOUBLE_HAS_SUBNORMALS” , #
“DOUBLEINFBYTES” , “DOUBLEKIND” , “DOUBLEMANTBITS” , “DOUBLENANBYTES” #
, “DOUBLESIZE” , “DOUBLE_STYLE_CRAY” , “DOUBLE_STYLE_IBM” , #
“DOUBLE_STYLE_IEEE” , “DOUBLE_STYLE_VAX” , “HAS_ATOLF” , “HAS_CLASS” #
, “HAS_FINITE” , “HAS_FINITEL” , “HAS_FPCLASS” , “HAS_FPCLASSIFY” , #
“HAS_FPCLASSL” , “HAS_FPGETROUND” , “HAS_FP_CLASS” , #
“HAS_FP_CLASSIFY” , “HAS_FP_CLASSL” , “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” , “LONGDBLINFBYTES” , #
“LONGDBLMANTBITS” , “LONGDBLNANBYTES” , “LONG_DOUBLEKIND” , #
“LONG_DOUBLESIZE” , “LONG_DOUBLE_STYLE_IEEE” , #
“LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE” , #
“LONG_DOUBLE_STYLE_IEEE_EXTENDED” , “LONG_DOUBLE_STYLE_IEEE_STD” , #
“LONG_DOUBLE_STYLE_VAX” , “NV”, “NVMANTBITS” , #
“NV_OVERFLOWS_INTEGERS_AT” , “NV_PRESERVES_UV” , #
“NV_PRESERVES_UV_BITS” , “NVSIZE” , “NVTYPE” , #
“NV_ZERO_IS_ALLBITS_ZERO” #
General Configuration
“BYTEORDER” , “CHARBITS” , “DB_VERSION_MAJOR_CFG” , #
“DB_VERSION_MINOR_CFG” , “DB_VERSION_PATCH_CFG” , #
“DEFAULT_INC_EXCLUDES_DOT” , “DLSYM_NEEDS_UNDERSCORE” , “EBCDIC” , #
“HAS_CSH” , “HAS_GETHOSTNAME” , “HAS_GNULIBC” , “HAS_LGAMMA” , #
“HAS_LGAMMA_R” , “HAS_NON_INT_BITFIELDS” , “HAS_PRCTL_SET_NAME” , #
“HAS_PROCSELFEXE” , “HAS_PSEUDOFORK” , “HAS_REGCOMP” , “HAS_SETPGID” #
, “HAS_SIGSETJMP” , “HAS_STRUCT_CMSGHDR” , “HAS_STRUCT_MSGHDR” , #
“HAS_TGAMMA” , “HAS_UNAME” , “HAS_UNION_SEMUN” , “I_DIRENT” , #
“I_POLL” , “I_SYS_RESOURCE” , “LIBM_LIB_VERSION” , “NEED_VA_COPY”, #
“OSNAME” , “OSVERS” , “PHOSTNAME” , “PROCSELFEXE_PATH” , “PTRSIZE” , #
“RANDBITS” , “SELECT_MIN_BITS” , “SETUID_SCRIPTS_ARE_SECURE_NOW” , #
“ST_DEV_SIGN” , “ST_DEV_SIZE” #
List of capability "HAS__f_o_o" symbols
List of "#include" needed symbols
Global Variables
"PL_check" , "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_autoload4" , "GvAV" , "gv_AVadd",
"gv_HVadd", "gv_IOadd", "gv_SVadd" , "gv_const_sv" , "GvCV" ,
"gv_fetchfile", "gv_fetchfile_flags" , "gv_fetchmeth" ,
"gv_fetchmethod" , "gv_fetchmethod_autoload" ,
"gv_fetchmeth_autoload" , "gv_fetchmeth_pv" , "gv_fetchmeth_pvn" ,
"gv_fetchmeth_pvn_autoload" , "gv_fetchmeth_pv_autoload" ,
"gv_fetchmeth_sv" , "gv_fetchmeth_sv_autoload" , "gv_fetchpv",
"gv_fetchpvn", "gv_fetchpvn_flags", "gv_fetchpvs", "gv_fetchsv",
"gv_fetchsv_nomg" X <gv_fetchsv_nomg>, "gv_fullname3",
"gv_fullname4", "gv_efullname3", "gv_efullname4" , "GvHV" , "gv_init"
, "gv_init_pv" , "gv_init_pvn" , "gv_init_sv" , "gv_stashpv" ,
"gv_stashpvn" , "gv_stashpvs" , "gv_stashsv" , "GvSV" , "GvSVn" ,
"newGVgen", "newGVgen_flags" , "PL_curstash" , "PL_defgv" ,
"PL_defstash", "save_gp" , "setdefout"
Hook manipulation
"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_delete_ent" , "HvENAME" , "HvENAMELEN" , "HvENAMEUTF8" ,
"hv_exists" , "hv_exists_ent" , "hv_fetch" , "hv_fetchs" ,
"hv_fetch_ent" , "HvFILL" , "hv_iterinit" , "hv_iterkey" ,
"hv_iterkeysv" , "hv_iternext" , "hv_iternextsv" ,
"hv_iternext_flags" , "hv_iterval" , "hv_magic" , "HvNAME" ,
"HvNAMELEN" , "HvNAMEUTF8" , "hv_scalar" , "hv_store" , "hv_stores" ,
"hv_store_ent" , "hv_undef" , "newHV" , "newHVhv" , "Nullhv" ,
"PERL_HASH", "PL_modglobal"
Input/Output
"IoDIRP", "IOf_FLUSH", "IoFLAGS", "IOf_UNTAINT", "IoIFP", "IoOFP",
"IoTYPE", "my_chsize" , "my_dirfd" , "my_pclose" , "my_popen" ,
"newIO" , "PERL_FLUSHALL_FOR_CHILD" , "PerlIO_apply_layers",
"PerlIO_binmode", "PerlIO_canset_cnt", "PerlIO_clearerr",
"PerlIO_close", "PerlIO_debug", "PerlIO_eof", "PerlIO_error",
"PerlIO_exportFILE", "PerlIO_fast_gets", "PerlIO_fdopen",
"PerlIO_fileno", "PerlIO_fill", "PerlIO_findFILE", "PerlIO_flush",
"PerlIO_get_base", "PerlIO_get_bufsiz", "PerlIO_getc",
"PerlIO_get_cnt", "PerlIO_getpos", "PerlIO_get_ptr",
"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_setlinebuf", "PerlIO_setpos", "PerlIO_set_ptrcnt",
"PerlIO_stderr", "PerlIO_stdin", "PerlIO_stdout", "PerlIO_stdoutf",
"PerlIO_tell", "PerlIO_ungetc", "PerlIO_unread", "PerlIO_vprintf",
"PerlIO_write", "PERLIO_FUNCS_CAST" , "PERLIO_FUNCS_DECL" ,
“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_K_BUFFERED”, “PERLIO_K_CANCRLF”, “PERLIO_K_FASTGETS”, #
“PERLIO_K_MULTIARG”, “PERLIO_K_RAW”, “PERLIO_NOT_STDIO”, #
"PL_maxsysfd", "repeatcpy" , "USE_STDIO"
Integer
“CASTI32” , “HAS_INT64_T” , “HAS_LONG_LONG” , “HAS_QUAD” , “I8”, #
“I16”, “I32”, “I64”, “IV”, “I32SIZE” , “I32TYPE” , “I64SIZE” , #
“I64TYPE” , “I16SIZE” , “I16TYPE” , “INT16_C”, “INT32_C”, “INT64_C” , #
“INTMAX_C” , “INTSIZE” , “I8SIZE” , “I8TYPE” , “IV_MAX” , “IV_MIN” , #
"IVSIZE" , "IVTYPE" , "line_t" , "LONGLONGSIZE" , "LONGSIZE" ,
"memzero" , "PERL_INT_FAST8_T", "PERL_INT_FAST16_T",
“PERL_UINT_FAST8_T”, “PERL_UINT_FAST16_T” , “PERL_INT_MAX”, #
“PERL_INT_MIN”, “PERL_LONG_MAX”, “PERL_LONG_MIN”, “PERL_SHORT_MAX”, #
“PERL_SHORT_MIN”, “PERL_UCHAR_MAX”, “PERL_UCHAR_MIN”, #
“PERL_UINT_MAX”, “PERL_UINT_MIN”, “PERL_ULONG_MAX”, “PERL_ULONG_MIN”, #
“PERL_USHORT_MAX”, “PERL_USHORT_MIN”, “PERL_QUAD_MAX”, #
“PERL_QUAD_MIN”, “PERL_UQUAD_MAX”, “PERL_UQUAD_MIN” , “SHORTSIZE” , #
“U8”, “U16”, “U32”, “U64”, “UV”, “U32SIZE” , “U32TYPE” , “U64SIZE” , #
“U64TYPE” , “U16SIZE” , “U16TYPE” , “UINT16_C”, “UINT32_C”, #
“UINT64_C” , “UINTMAX_C” , “U8SIZE” , “U8TYPE” , “UV_MAX” , “UV_MIN” #
, “UVSIZE” , “UVTYPE” , “WIDEST_UTYPE” #
I/O Formats
"IVdf" , "NVef" , "NVff" , "NVgf" , "PERL_PRIeldbl" , "PERL_PRIfldbl"
, "PERL_PRIgldbl" , "PERL_SCNfldbl" , "PRINTF_FORMAT_NULL_OK" ,
"SVf", "SVfARG", "UTF8f", "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" ,
"wrap_keyword_plugin"
Locales
"DECLARATION_FOR_LC_NUMERIC_MANIPULATION" , "foldEQ_locale" ,
“HAS_DUPLOCALE” , “HAS_FREELOCALE” , “HAS_LC_MONETARY_2008” , #
“HAS_LOCALECONV” , “HAS_LOCALECONV_L” , “HAS_NEWLOCALE” , #
“HAS_NL_LANGINFO” , “HAS_NL_LANGINFO_L” , “HAS_QUERYLOCALE” , #
“HAS_SETLOCALE” , “HAS_SETLOCALE_R” , “HAS_THREAD_SAFE_NL_LANGINFO_L” #
, “HAS_USELOCALE” , “I_LANGINFO” , “I_LOCALE” , “IN_LOCALE” , #
“IN_LOCALE_COMPILETIME” , “IN_LOCALE_RUNTIME” , “I_XLOCALE” , #
"NEED_XLOCALE_H" , "Perl_langinfo" , "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" , "switch_to_global_locale" ,
POSIX::localeconv, I18N::Langinfo, items "CRNCYSTR" and "THOUSEP",
"Perl_langinfo" in perlapi, items "CRNCYSTR" and "THOUSEP",
"sync_locale" , "WITH_LC_NUMERIC_SET_TO_NEEDED" ,
“WITH_LC_NUMERIC_SET_TO_NEEDED_IN” #
Magic
"mg_clear" , "mg_copy" , "MGf_COPY", "MGf_DUP", "MGf_LOCAL",
"mg_find" , "mg_findext" , "mg_free" , "mg_freeext" , "mg_free_type"
, "mg_get" , "mg_length" , "mg_magical" , "mg_set" , "MGVTBL",
"perl_clone" , "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_env",
"PERL_MAGIC_envelem", "PERL_MAGIC_ext", "PERL_MAGIC_fm",
"PERL_MAGIC_hints", "PERL_MAGIC_hintselem", "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",
"ptr_table_fetch" , "ptr_table_free" , "ptr_table_new" ,
"ptr_table_split" , "ptr_table_store" , "SvTIED_obj"
Memory Management
"dump_mstats" , "HASATTRIBUTE_MALLOC" , "HAS_MALLOC_GOOD_SIZE" ,
"HAS_MALLOC_SIZE" , "I_MALLOCMALLOC" , "MYMALLOC" , "Newx",
"safemalloc" , "Newxc" , "Newxz", "safecalloc" , "PERL_MALLOC_WRAP" ,
"Renew", "saferealloc" , "Renewc" , "Safefree" , "safesyscalloc" ,
"safesysfree" , "safesysmalloc" , "safesysrealloc"
MRO "HvMROMETA", "mro_get_from_name" , "mro_get_linear_isa" ,
"MRO_GET_PRIVATE_DATA", "mro_method_changed_in" , "mro_register" ,
"mro_set_mro" , "mro_set_private_data"
Multicall Functions
"dMULTICALL" , "MULTICALL" , "POP_MULTICALL" , "PUSH_MULTICALL"
Numeric Functions
"Atol", "Atoul", "Drand01" , "Gconvert" , "grok_atoUV" , "grok_bin" ,
"grok_hex" , "grok_infnan" , "grok_number" , "grok_number_flags" ,
"GROK_NUMERIC_RADIX" , "grok_numeric_radix" , "grok_oct" , "isinfnan"
, "my_atof" , "my_strtod" , "PERL_ABS" , "Perl_acos", "Perl_asin",
"Perl_atan", "Perl_atan2", "Perl_ceil", "Perl_cos", "Perl_cosh",
"Perl_exp", "Perl_floor", "Perl_fmod", "Perl_frexp", "Perl_isfinite",
"Perl_isinf", "Perl_isnan", "Perl_ldexp", "Perl_log", "Perl_log10",
"Perl_modf", "Perl_pow", "Perl_sin", "Perl_sinh", "Perl_sqrt",
"Perl_tan", "Perl_tanh" X <Perl_isinf>X <Perl_pow>, "Perl_signbit" ,
"PL_hexdigit" , "READ_XDIGIT" , "scan_bin" , "scan_hex" , "scan_oct"
, "seedDrand01" , "Strtod" , "Strtol" , "Strtoul"
Optrees
"alloccopstash" , "BINOP", "block_end" , "block_start" ,
"ck_entersub_args_list" , "ck_entersub_args_proto" ,
"ck_entersub_args_proto_or_list" , "cv_const_sv" ,
"cv_get_call_checker" , "cv_get_call_checker_flags" ,
"cv_set_call_checker" , "cv_set_call_checker_flags" , "LINKLIST" ,
"LISTOP", "LOGOP", "LOOP", "newASSIGNOP" , "newATTRSUB" , "newBINOP"
, "newCONDOP" , "newCONSTSUB" , "newCONSTSUB_flags" , "newDEFEROP" ,
"newDEFSVOP" , "newFOROP" , "newGIVENOP" , "newGVOP" , "newLISTOP" ,
"newLOGOP" , "newLOOPEX" , "newLOOPOP" , "newMETHOP" ,
"newMETHOP_named" , "newNULLLIST" , "newOP" , "newPADOP" , "newPMOP"
, "newPVOP" , "newRANGE" , "newSLICEOP" , "newSTATEOP" , "newSUB" ,
"newSVOP" , "newTRYCATCHOP" , "newUNOP" , "newUNOP_AUX" , "newWHENOP"
, "newWHILEOP" , "newXS" , "OA_BASEOP", "OA_BINOP", "OA_COP",
“OA_LISTOP”, “OA_LOGOP”, “OA_PADOP”, “OA_PMOP”, “OA_PVOP_OR_SVOP”, #
"OA_SVOP", "OA_UNOP", "OA_LOOP", "OP", "op_append_elem" ,
"op_append_list" , "OP_CLASS" , "op_contextualize" ,
"op_convert_list" , "OP_DESC" , "op_free" , "OpHAS_SIBLING" ,
"OpLASTSIB_set" , "op_linklist" , "op_lvalue" , "OpMAYBESIB_set" ,
"OpMORESIB_set" , "OP_NAME" , "op_null" , "op_parent" ,
"op_prepend_elem" , "op_scope" , "OpSIBLING" , "op_sibling_splice" ,
"OP_TYPE_IS" , "OP_TYPE_IS_OR_WAS" , "op_wrap_finally" , "peep_t",
"Perl_cpeep_t", "PL_opfreehook" , "PL_peepp" , "PL_rpeepp" , "PMOP",
"rv2cv_op_cv" , "UNOP", "XOP"
Pack and Unpack
"pack_cat" , "packlist" , "unpack_str" , "unpackstring"
Pad Data Structures
"CvPADLIST" , "pad_add_name_pvs" , "PadARRAY" , "pad_compname_type" ,
"pad_findmy_pvs" , "PadlistARRAY" , "PadlistMAX" , "PadlistNAMES" ,
"PadlistNAMESARRAY" , "PadlistNAMESMAX" , "PadlistREFCNT" , "PadMAX"
, "PadnameLEN" , "PadnamelistARRAY" , "PadnamelistMAX" ,
"PadnamelistREFCNT" , "PadnamelistREFCNT_dec" , "PadnamePV" ,
"PadnameREFCNT" , "PadnameREFCNT_dec" , "PadnameSV" , "PadnameUTF8" ,
"pad_new" , "PL_comppad" , "PL_comppad_name" , "PL_curpad" ,
"SVs_PADMY", "SVs_PADTMP"
Password and Group access
“GRPASSWD” , “HAS_ENDGRENT” , “HAS_ENDGRENT_R” , “HAS_ENDPWENT” , #
“HAS_ENDPWENT_R” , “HAS_GETGRENT” , “HAS_GETGRENT_R” , “HAS_GETPWENT” #
, “HAS_GETPWENT_R” , “HAS_SETGRENT” , “HAS_SETGRENT_R” , #
“HAS_SETPWENT” , “HAS_SETPWENT_R” , “PWAGE” , “PWCHANGE” , “PWCLASS” #
, “PWCOMMENT” , “PWEXPIRE” , “PWGECOS” , “PWPASSWD” , “PWQUOTA” #
Paths to system commands
“CSH” , “LOC_SED” , “SH_PATH” #
Prototype information
“CRYPT_R_PROTO” , “CTERMID_R_PROTO” , “DRAND48_R_PROTO” , #
“ENDGRENT_R_PROTO” , “ENDHOSTENT_R_PROTO” , “ENDNETENT_R_PROTO” , #
“ENDPROTOENT_R_PROTO” , “ENDPWENT_R_PROTO” , “ENDSERVENT_R_PROTO” , #
“GDBMNDBM_H_USES_PROTOTYPES” , “GDBM_NDBM_H_USES_PROTOTYPES” , #
“GETGRENT_R_PROTO” , “GETGRGID_R_PROTO” , “GETGRNAM_R_PROTO” , #
“GETHOSTBYADDR_R_PROTO” , “GETHOSTBYNAME_R_PROTO” , #
“GETHOSTENT_R_PROTO” , “GETLOGIN_R_PROTO” , “GETNETBYADDR_R_PROTO” , #
“GETNETBYNAME_R_PROTO” , “GETNETENT_R_PROTO” , #
“GETPROTOBYNAME_R_PROTO” , “GETPROTOBYNUMBER_R_PROTO” , #
“GETPROTOENT_R_PROTO” , “GETPWENT_R_PROTO” , “GETPWNAM_R_PROTO” , #
“GETPWUID_R_PROTO” , “GETSERVBYNAME_R_PROTO” , #
“GETSERVBYPORT_R_PROTO” , “GETSERVENT_R_PROTO” , “GETSPNAM_R_PROTO” , #
“HAS_DBMINIT_PROTO” , “HAS_DRAND48_PROTO” , “HAS_FLOCK_PROTO” , #
“HAS_GETHOST_PROTOS” , “HAS_GETNET_PROTOS” , “HAS_GETPROTO_PROTOS” , #
“HAS_GETSERV_PROTOS” , “HAS_MODFL_PROTO” , “HAS_SBRK_PROTO” , #
“HAS_SETRESGID_PROTO” , “HAS_SETRESUID_PROTO” , “HAS_SHMAT_PROTOTYPE” #
, “HAS_SOCKATMARK_PROTO” , “HAS_SYSCALL_PROTO” , “HAS_TELLDIR_PROTO” #
, “NDBM_H_USES_PROTOTYPES” , “RANDOM_R_PROTO” , “READDIR_R_PROTO” , #
“SETGRENT_R_PROTO” , “SETHOSTENT_R_PROTO” , “SETLOCALE_R_PROTO” , #
“SETNETENT_R_PROTO” , “SETPROTOENT_R_PROTO” , “SETPWENT_R_PROTO” , #
“SETSERVENT_R_PROTO” , “SRAND48_R_PROTO” , “SRANDOM_R_PROTO” , #
“STRERROR_R_PROTO” , “TMPNAM_R_PROTO” , “TTYNAME_R_PROTO” #
REGEXP Functions
"pregcomp", "pregexec", "re_compile" , "re_dup_guts" ,
"REGEX_LOCALE_CHARSET", "REGEXP", "regexp_engine" ,
"regexp_paren_pair", "regmatch_info" , "REXEC_COPY_STR",
"REXEC_COPY_SKIP_PRE", "REXEC_COPY_SKIP_POST", "RXapif_CLEAR",
"RXapif_DELETE", "RXapif_EXISTS", "RXapif_FETCH", "RXapif_FIRSTKEY",
"RXapif_NEXTKEY", "RXapif_SCALAR", "RXapif_STORE", "RXapif_ALL",
"RXapif_ONE", "RXapif_REGNAME", "RXapif_REGNAMES",
"RXapif_REGNAMES_COUNT", "RX_BUFF_IDX_CARET_FULLMATCH",
“RX_BUFF_IDX_CARET_POSTMATCH”, “RX_BUFF_IDX_CARET_PREMATCH”, #
“RX_BUFF_IDX_FULLMATCH”, “RX_BUFF_IDX_POSTMATCH”, #
"RX_BUFF_IDX_PREMATCH", "RXf_PMf_MULTILINE", "RXf_PMf_SINGLELINE",
"RXf_PMf_FOLD", "RXf_PMf_EXTENDED", "RXf_PMf_KEEPCOPY", "RXf_SPLIT",
"RXf_SKIPWHITE", "RXf_START_ONLY", "RXf_WHITE", "RXf_NULL",
"RXf_NO_INPLACE_SUBST", "RX_MATCH_COPIED", "RX_OFFS", "SvRX" ,
"SvRXOK" , "SV_SAVED_COPY"
Reports and Formats
"IoBOTTOM_GV", "IoBOTTOM_NAME", "IoFMT_GV", "IoFMT_NAME", "IoLINES",
"IoLINES_LEFT", "IoPAGE", "IoPAGE_LEN", "IoTOP_GV", "IoTOP_NAME"
Signals
“HAS_SIGINFO_SI_ADDR” , “HAS_SIGINFO_SI_BAND” , #
“HAS_SIGINFO_SI_ERRNO” , “HAS_SIGINFO_SI_PID” , #
“HAS_SIGINFO_SI_STATUS” , “HAS_SIGINFO_SI_UID” , #
"HAS_SIGINFO_SI_VALUE" , "PERL_SIGNALS_UNSAFE_FLAG" , "rsignal" ,
"rsignal_state" , "Sigjmp_buf" , "Siglongjmp" , "SIG_NAME" ,
"SIG_NUM" , "Sigsetjmp" , "SIG_SIZE" , "whichsig", "whichsig_pv",
"whichsig_pvn", "whichsig_sv"
Site configuration
“ARCHLIB” , “ARCHLIB_EXP” , “ARCHNAME” , “BIN” , “BIN_EXP” , #
“INSTALL_USR_BIN_PERL” , “MULTIARCH” , “PERL_INC_VERSION_LIST” , #
“PERL_OTHERLIBDIRS” , “PERL_RELOCATABLE_INC” , “PERL_TARGETARCH” , #
“PERL_USE_DEVEL” , “PERL_VENDORARCH” , “PERL_VENDORARCH_EXP” , #
“PERL_VENDORLIB_EXP” , “PERL_VENDORLIB_STEM” , “PRIVLIB” , #
“PRIVLIB_EXP” , “SITEARCH” , “SITEARCH_EXP” , “SITELIB” , #
“SITELIB_EXP” , “SITELIB_STEM” , “STARTPERL” , “USE_64_BIT_ALL” , #
“USE_64_BIT_INT” , “USE_BSD_GETPGRP” , “USE_BSD_SETPGRP” , #
“USE_CPLUSPLUS” , “USE_CROSS_COMPILE” , “USE_C_BACKTRACE” , #
“USE_DTRACE” , “USE_DYNAMIC_LOADING” , “USE_FAST_STDIO” , #
“USE_ITHREADS” , “USE_KERN_PROC_PATHNAME” , “USE_LARGE_FILES” , #
“USE_LONG_DOUBLE” , “USE_MORE_BITS” , “USE_NSGETEXECUTABLEPATH” , #
“USE_PERLIO” , “USE_QUADMATH” , “USE_REENTRANT_API” , #
“USE_SEMCTL_SEMID_DS” , “USE_SEMCTL_SEMUN” , “USE_SITECUSTOMIZE” , #
“USE_SOCKS” , “USE_STAT_BLOCKS” , “USE_STDIO_BASE” , “USE_STDIO_PTR” #
, “USE_STRICT_BY_DEFAULT” , “USE_THREADS” #
Sockets configuration values
“HAS_SOCKADDR_IN6” , “HAS_SOCKADDR_SA_LEN” , “HAS_SOCKADDR_STORAGE” , #
“HAS_SOCKATMARK” , “HAS_SOCKET” , “HAS_SOCKETPAIR” , #
“HAS_SOCKS5_INIT” , “I_SOCKS” , “I_SYS_SOCKIO” #
Source Filters
"filter_add", "filter_del" , "filter_read", "scan_vstring"
Stack Manipulation Macros
"dMARK" , "dORIGMARK" , "dSP" , "dTARGET" , "EXTEND" , "MARK" ,
"mPUSHi" , "mPUSHn" , "mPUSHp" , "mPUSHs" , "mPUSHu" , "mXPUSHi" ,
"mXPUSHn" , "mXPUSHp" , "mXPUSHs" , "mXPUSHu" , "newXSproto" ,
"ORIGMARK" , "PL_markstack", "PL_markstack_ptr", "PL_savestack",
"PL_savestack_ix", "PL_scopestack", "PL_scopestack_ix",
"PL_scopestack_name", "PL_stack_base", "PL_stack_sp",
"PL_tmps_floor", "PL_tmps_ix", "PL_tmps_stack", "POPi" , "POPl" ,
"POPn" , "POPp" , "POPpbytex" , "POPpx" , "POPs" , "POPu" , "POPul" ,
"PUSHi" , "PUSHMARK" , "PUSHmortal" , "PUSHn" , "PUSHp" , "PUSHs" ,
"PUSHu" , "PUTBACK" , "SAVEt_INT", "SP" , "SPAGAIN" , "SSNEW",
"SSNEWa", "SSNEWt", "SSNEWat" , "SSPTR", "SSPTRt" , "TARG" , "TOPs",
"XPUSHi" , "XPUSHmortal" , "XPUSHn" , "XPUSHp" , "XPUSHs" , "XPUSHu"
, “XS_APIVERSION_BOOTCHECK” , “XSRETURN” , “XSRETURN_EMPTY” , #
“XSRETURN_IV” , “XSRETURN_NO” , “XSRETURN_NV” , “XSRETURN_PV” , #
"XSRETURN_UNDEF" , "XSRETURN_UV" , "XSRETURN_YES" , "XST_mIV" ,
"XST_mNO" , "XST_mNV" , "XST_mPV" , "XST_mUNDEF" , "XST_mUV" ,
"XST_mYES" , "XS_VERSION" , "XS_VERSION_BOOTCHECK"
String Handling
"CAT2" , "Copy", "CopyD" , "delimcpy" , "do_join" , "do_sprintf" ,
"fbm_compile" , "fbm_instr" , "foldEQ" , "ibcmp" , "ibcmp_locale" ,
"ibcmp_utf8" , "instr" , "memCHRs" , "memEQ" , "memEQs" , "memNE" ,
"memNEs" , "Move", "MoveD" , "my_snprintf" , "my_sprintf" ,
"my_strlcat" , "my_strlcpy" , "my_strnlen" , "my_vsnprintf" ,
"ninstr" , "Nullch" , "PL_na" , "rninstr" , "savepv" , "savepvn" ,
"savepvs" , "savesharedpv" , "savesharedpvn" , "savesharedpvs" ,
"savesharedsvpv" , "savesvpv" , "strEQ" , "strGE" , "strGT" ,
"STRINGIFY" , "strLE" , "STRLEN", "strLT" , "strNE" , "strnEQ" ,
"strnNE" , "STR_WITH_LEN" , "Zero", "ZeroD"
SV Flags
"SVt_IV" , "SVt_NULL" , "SVt_NV" , "SVt_PV" , "SVt_PVAV" , "SVt_PVCV"
, "SVt_PVFM" , "SVt_PVGV" , "SVt_PVHV" , "SVt_PVIO" , "SVt_PVIV" ,
"SVt_PVLV" , "SVt_PVMG" , "SVt_PVNV" , "SVt_REGEXP" , "svtype"
SV Handling
"boolSV" , "croak_xs_usage" , "DEFSV" , "DEFSV_set" , "get_sv" ,
"isGV_with_GP" , "looks_like_number" , "MUTABLE_PTR", "MUTABLE_AV",
“MUTABLE_CV”, “MUTABLE_GV”, “MUTABLE_HV”, “MUTABLE_IO”, “MUTABLE_SV” #
, "newRV", "newRV_inc" , "newRV_noinc" , "newSV" , "newSVhek" ,
"newSViv" , "newSVnv" , "newSVpadname" , "newSVpv" , "newSVpvf" ,
"newSVpvf_nocontext" , "newSVpvn" , "newSVpvn_flags" ,
"newSVpvn_share" , "newSVpvn_utf8" , "newSVpvs" , "newSVpvs_flags" ,
"newSVpv_share" , "newSVpvs_share" , "newSVrv" , "newSVsv",
"newSVsv_nomg", "newSVsv_flags" , "newSV_type" , "newSV_type_mortal"
, "newSVuv" , "Nullsv" , "PL_sv_no" , "PL_sv_undef" , "PL_sv_yes" ,
"PL_sv_zero" , "SAVE_DEFSV" , "sortsv" , "sortsv_flags" , "SV",
"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" ,
"sv_backoff" , "sv_bless" , "sv_catpv", "sv_catpv_flags",
"sv_catpv_mg", "sv_catpv_nomg" , "sv_catpvf", "sv_catpvf_nocontext",
"sv_catpvf_mg", "sv_catpvf_mg_nocontext" , "sv_catpvn",
"sv_catpvn_flags", "sv_catpvn_mg", "sv_catpvn_nomg" , "sv_catpvs" ,
"sv_catpvs_flags" , "sv_catpvs_mg" , "sv_catpvs_nomg" , "sv_catsv",
"sv_catsv_flags", "sv_catsv_mg", "sv_catsv_nomg" , "sv_chop" ,
"sv_clear" , "sv_cmp" , "sv_cmp_flags" , "sv_cmp_locale" ,
"sv_cmp_locale_flags" , "sv_collxfrm" , "sv_collxfrm_flags" ,
"sv_copypv", "sv_copypv_nomg", "sv_copypv_flags" , "SvCUR" ,
"SvCUR_set" , "sv_dec", "sv_dec_nomg" , "sv_derived_from" ,
"sv_derived_from_pv" , "sv_derived_from_pvn" , "sv_derived_from_sv" ,
"sv_does" , "sv_does_pv" , "sv_does_pvn" , "sv_does_sv" , "SvEND" ,
"sv_eq" , "sv_eq_flags" , "sv_force_normal" , "sv_force_normal_flags"
, "sv_free" , "SvGAMAGIC" , "SvGETMAGIC" , "sv_gets" ,
"sv_get_backrefs" , "SvGROW" , "sv_inc", "sv_inc_nomg" , "sv_insert"
, "sv_insert_flags" , "SvIOK" , "SvIOK_notUV" , "SvIOK_off" ,
"SvIOK_on" , "SvIOK_only" , "SvIOK_only_UV" , "SvIOKp" , "SvIOK_UV" ,
"sv_isa" , "sv_isa_sv" , "SvIsBOOL" , "SvIsCOW" ,
"SvIsCOW_shared_hash" , "sv_isobject" , "SvIV", "SvIVx", "SvIV_nomg"
, "SvIV_set" , "SvIVX" , "SvLEN" , "sv_len" , "SvLEN_set" ,
"sv_len_utf8", "sv_len_utf8_nomg" , "SvLOCK" , "sv_magic" ,
"sv_magicext" , "SvMAGIC_set" , "sv_mortalcopy" ,
"sv_mortalcopy_flags" , "sv_newmortal" , "SvNIOK" , "SvNIOK_off" ,
"SvNIOKp" , "SvNOK" , "SvNOK_off" , "SvNOK_on" , "SvNOK_only" ,
"SvNOKp" , "sv_nolocking" , "sv_nounlocking" , "sv_numeq" ,
"sv_numeq_flags" , "SvNV", "SvNVx", "SvNV_nomg" , "SvNV_set" ,
"SvNVX" , "SvOK" , "SvOOK" , "SvOOK_off" , "SvOOK_offset" , "SvPOK" ,
"SvPOK_off" , "SvPOK_on" , "SvPOK_only" , "SvPOK_only_UTF8" ,
"SvPOKp" , "sv_pos_b2u" , "sv_pos_b2u_flags" , "sv_pos_u2b" ,
"sv_pos_u2b_flags" , "SvPV", "SvPVx", "SvPV_nomg", "SvPV_nolen",
"SvPVx_nolen", "SvPV_nomg_nolen", "SvPV_mutable", "SvPV_const",
"SvPVx_const", "SvPV_nolen_const", "SvPVx_nolen_const",
"SvPV_nomg_const", "SvPV_nomg_const_nolen", "SvPV_flags",
"SvPV_flags_const", "SvPV_flags_mutable", "SvPVbyte",
"SvPVbyte_nomg", "SvPVbyte_nolen", "SvPVbytex_nolen", "SvPVbytex",
"SvPVbyte_or_null", "SvPVbyte_or_null_nomg", "SvPVutf8", "SvPVutf8x",
"SvPVutf8_nomg", "SvPVutf8_nolen", "SvPVutf8_or_null",
"SvPVutf8_or_null_nomg" , "SvPVCLEAR" , "SvPV_force",
"SvPV_force_nolen", "SvPVx_force", "SvPV_force_nomg",
"SvPV_force_nomg_nolen", "SvPV_force_mutable", "SvPV_force_flags",
"SvPV_force_flags_nolen", "SvPV_force_flags_mutable",
"SvPVbyte_force", "SvPVbytex_force", "SvPVutf8_force",
"SvPVutf8x_force" , "SvPV_free" , "sv_pvn_force_flags" , "SvPV_renew"
, "SvPV_set" , "SvPVX", "SvPVXx", "SvPVX_const", "SvPVX_mutable" ,
"SvPVXtrue" , "SvREADONLY" , "SvREADONLY_off" , "SvREADONLY_on" ,
"sv_ref" , "SvREFCNT" , "SvREFCNT_dec", "SvREFCNT_dec_NN" ,
"SvREFCNT_inc", "SvREFCNT_inc_NN", "SvREFCNT_inc_void",
"SvREFCNT_inc_void_NN", "SvREFCNT_inc_simple",
"SvREFCNT_inc_simple_NN", "SvREFCNT_inc_simple_void",
"SvREFCNT_inc_simple_void_NN"
, "sv_reftype" , "sv_replace" , "sv_report_used" , "sv_reset" ,
"SvROK" , "SvROK_off" , "SvROK_on" , "SvRV" , "SvRV_set" ,
"sv_rvunweaken" , "sv_rvweaken" , "sv_setbool", "sv_setbool_mg" ,
"sv_setiv", "sv_setiv_mg" , "SvSETMAGIC" , "sv_setnv", "sv_setnv_mg"
, "sv_setpv", "sv_setpv_mg", "sv_setpvn", "sv_setpvn_fresh",
"sv_setpvn_mg", "sv_setpvs", "sv_setpvs_mg" , "sv_setpvf",
"sv_setpvf_nocontext", "sv_setpvf_mg", "sv_setpvf_mg_nocontext" ,
"sv_setpviv", "sv_setpviv_mg" , "sv_setpv_bufsize" , "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" , "SvSetSV", "SvSetMagicSV",
"SvSetSV_nosteal", "SvSetMagicSV_nosteal" , "sv_setsv",
"sv_setsv_flags", "sv_setsv_mg", "sv_setsv_nomg" , "sv_setuv",
"sv_setuv_mg" , "sv_set_undef" , "SvSHARE" , "SvSHARED_HASH" ,
"SvSTASH" , "SvSTASH_set" , "sv_streq" , "sv_streq_flags" , "SvTRUE",
"SvTRUEx", "SvTRUE_nomg", "SvTRUE_NN", "SvTRUE_nomg_NN" , "SvTYPE" ,
"SvUNLOCK" , "sv_unmagic" , "sv_unmagicext" , "sv_unref" ,
"sv_unref_flags" , "SvUOK" , "SvUPGRADE" , "sv_upgrade" ,
"sv_usepvn", "sv_usepvn_mg", "sv_usepvn_flags" , "SvUTF8" ,
"sv_utf8_decode" , "sv_utf8_downgrade", "sv_utf8_downgrade_flags",
"sv_utf8_downgrade_nomg" , "sv_utf8_encode" , "sv_utf8_upgrade",
"sv_utf8_upgrade_nomg", "sv_utf8_upgrade_flags",
"sv_utf8_upgrade_flags_grow" , "SvUTF8_off" , "SvUTF8_on" , "SvUV",
"SvUVx", "SvUV_nomg" , "SvUV_set" , "SvUVX" , "SvUVXx" ,
"sv_vcatpvf", "sv_vcatpvf_mg" , "sv_vcatpvfn", "sv_vcatpvfn_flags" ,
"SvVOK" , "sv_vsetpvf", "sv_vsetpvf_mg" , "sv_vsetpvfn" ,
"SvVSTRING_mg" , "vnewSVpvf"
Tainting
"SvTAINT" , "SvTAINTED" , "SvTAINTED_off" , "SvTAINTED_on"
Time
“ASCTIME_R_PROTO” , “CTIME_R_PROTO” , “GMTIME_MAX” , “GMTIME_MIN” , #
“GMTIME_R_PROTO” , “HAS_ASCTIME64” , “HAS_ASCTIME_R” , “HAS_CTIME64” #
, “HAS_CTIME_R” , “HAS_DIFFTIME” , “HAS_DIFFTIME64” , “HAS_FUTIMES” , #
“HAS_GETITIMER” , “HAS_GETTIMEOFDAY” , “HAS_GMTIME64” , #
“HAS_GMTIME_R” , “HAS_LOCALTIME64” , “HAS_LOCALTIME_R” , “HAS_MKTIME” #
, “HAS_MKTIME64” , “HAS_NANOSLEEP” , “HAS_SETITIMER” , “HAS_STRFTIME” #
, “HAS_TIME” , “HAS_TIMEGM” , “HAS_TIMES” , “HAS_TM_TM_GMTOFF” , #
“HAS_TM_TM_ZONE” , “HAS_TZNAME” , “HAS_USLEEP” , “HAS_USLEEP_PROTO” , #
“I_TIME” , “I_UTIME” , “LOCALTIME_MAX” , “LOCALTIME_MIN” , #
“LOCALTIME_R_NEEDS_TZSET” , “LOCALTIME_R_PROTO” , “L_R_TZSET” , #
"mini_mktime" , "my_strftime"
Typedef names
"DB_Hash_t" , "DB_Prefix_t" , "Direntry_t" , "Fpos_t" , "Free_t" ,
"Gid_t" , "Gid_t_f" , "Gid_t_sign" , "Gid_t_size" , "Groups_t" ,
"Malloc_t" , "Mmap_t" , "Mode_t" , "Netdb_hlen_t" , "Netdb_host_t" ,
"Netdb_name_t" , "Netdb_net_t" , "Off_t" , "Off_t_size" , "Pid_t" ,
"Rand_seed_t" , "Select_fd_set_t" , "Shmat_t" , "Signal_t" , "Size_t"
, "Size_t_size" , "Sock_size_t" , "SSize_t" , "Time_t" , "Uid_t" ,
"Uid_t_f" , "Uid_t_sign" , "Uid_t_size"
Unicode Support
"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" , "isC9_STRICT_UTF8_CHAR" ,
"is_invariant_string" , "isSTRICT_UTF8_CHAR" ,
"is_strict_utf8_string" , "is_strict_utf8_string_loc" ,
"is_strict_utf8_string_loclen" , "is_utf8_char" , "is_utf8_char_buf"
, "is_utf8_fixed_width_buf_flags" ,
"is_utf8_fixed_width_buf_loclen_flags" ,
"is_utf8_fixed_width_buf_loc_flags" , "is_utf8_invariant_string" ,
"is_utf8_invariant_string_loc" , "is_utf8_string" ,
"is_utf8_string_flags" , "is_utf8_string_loc" ,
"is_utf8_string_loclen" , "is_utf8_string_loclen_flags" ,
"is_utf8_string_loc_flags" , "is_utf8_valid_partial_char" ,
"is_utf8_valid_partial_char_flags" , "isUTF8_CHAR" ,
"isUTF8_CHAR_flags" , "LATIN1_TO_NATIVE" , "NATIVE_TO_LATIN1" ,
"NATIVE_TO_UNI" , "pv_uni_display" , "REPLACEMENT_CHARACTER_UTF8" ,
"sv_cat_decode" , "sv_recode_to_utf8" , "sv_uni_display" ,
“UNICODE_IS_NONCHAR” , “UNICODE_IS_REPLACEMENT” , “UNICODE_IS_SUPER” #
, “UNICODE_IS_SURROGATE” , “UNICODE_REPLACEMENT” , “UNI_TO_NATIVE” , #
"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", "UTF8SKIP"
, "UTF8_SAFE_SKIP" if you know the maximum ending pointer in the
buffer pointed to by "s"; or, "UTF8_CHK_SKIP" if you don't know it,
"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" ,
"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" , "phase_name" , "Poison" ,
"PoisonFree" , "PoisonNew" , "PoisonWith" , "StructCopy" ,
"sv_destroyable" , "sv_nosharing"
Versioning
"new_version" , "PERL_REVISION" , "PERL_SUBVERSION" , "PERL_VERSION"
, “PERL_VERSION_EQ”, “PERL_VERSION_NE”, “PERL_VERSION_LT”, #
“PERL_VERSION_LE”, “PERL_VERSION_GT”, “PERL_VERSION_GE” , #
"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
"ckWARN", "ckWARN2", "ckWARN3", "ckWARN4" , "ckWARN_d", "ckWARN2_d",
"ckWARN3_d", "ckWARN4_d" , "ck_warner", "ck_warner_d" , "CLEAR_ERRSV"
, "croak", "croak_nocontext" , "croak_no_modify" , "croak_sv" ,
"die", "die_nocontext" , "die_sv" , "ERRSV" , "packWARN",
"packWARN2", "packWARN3", "packWARN4" , "SANE_ERRSV" , "vcroak" ,
"vwarn" , "vwarner" , "warn", "warn_nocontext" , "warner",
"warner_nocontext" , "warn_sv"
XS "aMY_CXT", "aMY_CXT_", "_aMY_CXT", "ax" , "CLASS" , "dAX" , "dAXMARK"
, "dITEMS" , "dMY_CXT", "dMY_CXT_SV" , "dUNDERBAR" , "dXSARGS" ,
"dXSI32" , "items" , "ix" , "MY_CXT", "MY_CXT_CLONE", "MY_CXT_INIT",
"pMY_CXT", "pMY_CXT_", "_pMY_CXT", "RETVAL" , "ST" , "START_MY_CXT",
“THIS” , “UNDERBAR” , “XS” , “XS_EXTERNAL” , “XS_INTERNAL” , #
“XSPROTO” #
Undocumented elements
AUTHORS #
SEE ALSO #
ppeerrlliinntteerrnn -- aauuttooggeenneerraatteedd ddooccuummeennttaattiioonn ooff ppuurreellyy iinntteerrnnaall PPeerrll ffuunnccttiioonnss
DESCRIPTION #
AV Handling
"av_fetch_simple" , "AvFILLp" , "av_new_alloc" , "av_store_simple"
Callback Functions
"dowantarray" , "leave_scope" , "pop_scope" , "push_scope" ,
"save_adelete" , "save_generic_pvref" , "save_generic_svref" ,
"save_hdelete" , "save_hints" , "save_op" ,
"save_padsv_and_mortalize" , "save_set_svflags" , "save_shared_pvref"
, "save_vptr"
Casting
Character case changing
Character classification
Compiler and Preprocessor information
Compiler directives
Compile-time scope hooks
"BhkENTRY" , "BhkFLAGS" , "CALL_BLOCK_HOOKS"
Concurrency
"CVf_SLABBED", "CvROOT", "CvSTART", "CX_CUR", "CXINC",
"CX_LEAVE_SCOPE", "CX_POP", "cxstack", "cxstack_ix", "CXt_BLOCK",
"CXt_EVAL", "CXt_FORMAT", "CXt_GIVEN", "CXt_LOOP_ARY",
"CXt_LOOP_LAZYIV", "CXt_LOOP_LAZYSV", "CXt_LOOP_LIST",
"CXt_LOOP_PLAIN", "CXt_NULL", "CXt_SUB", "CXt_SUBST", "CXt_WHEN",
"cx_type", "dounwind", "my_fork" , "PERL_CONTEXT"
COPs and Hint Hashes
Custom Operators
"core_prototype"
CV Handling
"CvWEAKOUTSIDE" , "docatch"
Debugging
"_aDEPTH" , "debop" , "debprof" , "debprofdump" , "free_c_backtrace"
, "get_c_backtrace" , "_pDEPTH" , "PL_DBsingle" , "PL_DBsub" ,
"PL_DBtrace" , "runops_debug", "runops_standard"
Display functions
"sv_peek"
Embedding, Threads, and Interpreter Cloning
"cv_dump" , "cv_forget_slab" , "do_dump_pad" , "get_context" ,
"pad_alloc_name" , "pad_block_start" , "pad_check_dup" ,
"pad_findlex" , "pad_fixup_inner_anons" , "pad_free" , "pad_leavemy"
, "padlist_dup" , "padname_dup" , "padnamelist_dup" , "pad_push" ,
"pad_reset" , "pad_setsv" , "pad_sv" , "pad_swipe" , "set_context"
Errno
"dSAVEDERRNO" , "dSAVE_ERRNO" , "RESTORE_ERRNO" , "SAVE_ERRNO" ,
“SETERRNO” #
Exception Handling (simple) Macros
Filesystem configuration values
Floating point
General Configuration
Global Variables
GV Handling and Stashes
"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" , "si_dup" , "ss_dup"
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
"finalize_optree" , "newATTRSUB_x" , "newXS_len_flags" ,
"op_refcnt_lock" , "op_refcnt_unlock" , "optimize_optree" ,
"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” , #
"PadnameIsOUR" , "PadnameIsSTATE" , "PadnameOURSTASH" ,
"PadnameOUTER" , "PadnameTYPE" , "PAD_RESTORE_LOCAL" ,
“PAD_SAVE_LOCAL” , “PAD_SAVE_SETNULLPAD” , “PAD_SETSV” , #
"PAD_SET_CUR" , "PAD_SET_CUR_NOSAVE" , "PAD_SV" , "PAD_SVl" ,
“SAVECLEARSV” , “SAVECOMPPAD” , “SAVEPADSV” #
Password and Group access
Paths to system commands
Prototype information
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_2bool" , "sv_2bool_flags" , "sv_2num" ,
"sv_2pvbyte_nolen" , "sv_2pvutf8_nolen" , "sv_2pv_nolen" ,
"sv_add_arena" , "sv_clean_all" , "sv_clean_objs" , "sv_free_arenas"
, "sv_grow" , "sv_grow_fresh" , "sv_iv" , "sv_newref" , "sv_nv" ,
"sv_pv" , "sv_pvbyte" , "sv_pvbyten" , "sv_pvbyten_force" , "sv_pvn"
, "sv_pvn_force" , "sv_pvutf8" , "sv_pvutf8n" , "sv_pvutf8n_force" ,
"sv_tainted" , "SvTHINKFIRST" , "sv_true" , "sv_untaint" , "sv_uv"
Tainting
"sv_taint" , "TAINT" , "TAINT_ENV" , "taint_env" , "TAINT_get" ,
"TAINT_IF" , "TAINTING_get" , "TAINTING_set" , "TAINT_NOT" ,
"TAINT_PROPER" , "taint_proper" , "TAINT_set" , "TAINT_WARN_get" ,
"TAINT_WARN_set"
Time
Typedef names
Unicode Support
"bytes_from_utf8_loc" , "find_uninit_var" , "isSCRIPT_RUN" ,
"is_utf8_non_invariant_string" , "report_uninit" , "utf8n_to_uvuni" ,
"utf8_to_uvuni" , "utf8_to_uvuni_buf" , "uvoffuni_to_utf8_flags" ,
"uvuni_to_utf8_flags" , "valid_utf8_to_uvchr" ,
"variant_under_utf8_count"
Utility Functions
"my_popen_list" , "my_socketpair"
Versioning
Warning and Dieing
"PL_dowarn"
XS #
Undocumented elements
AUTHORS #
SEE ALSO #
ppeerrlliiooll -- CC AAPPII ffoorr PPeerrll’’ss iimmpplleemmeennttaattiioonn ooff IIOO iinn LLaayyeerrss..
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 #
ppeerrllaappiioo -- ppeerrll’’ss IIOO aabbssttrraaccttiioonn iinntteerrffaaccee..
SYNOPSIS #
DESCRIPTION #
1. USE_STDIO, 2. USE_PERLIO, PPeerrllIIOO__ssttddiinn(()), PPeerrllIIOO__ssttddoouutt(()),
PPeerrllIIOO__ssttddeerrrr(()), PPeerrllIIOO__ooppeenn((ppaatthh,, mmooddee)), PPeerrllIIOO__ffddooppeenn((ffdd,,mmooddee)),
PPeerrllIIOO__rreeooppeenn((ppaatthh,,mmooddee,,ff)), PPeerrllIIOO__pprriinnttff((ff,,ffmmtt,,......)),
PPeerrllIIOO__vvpprriinnttff((ff,,ffmmtt,,aa)), PPeerrllIIOO__ssttddoouuttff((ffmmtt,,......)),
PPeerrllIIOO__rreeaadd((ff,,bbuuff,,ccoouunntt)), PPeerrllIIOO__wwrriittee((ff,,bbuuff,,ccoouunntt)), PPeerrllIIOO__ffiillll((ff)),
PPeerrllIIOO__cclloossee((ff)), PPeerrllIIOO__ppuuttss((ff,,ss)), PPeerrllIIOO__ppuuttcc((ff,,cc)),
PPeerrllIIOO__uunnggeettcc((ff,,cc)), PPeerrllIIOO__uunnrreeaadd((ff,,bbuuff,,ccoouunntt)), PPeerrllIIOO__ggeettcc((ff)),
PPeerrllIIOO__eeooff((ff)), PPeerrllIIOO__eerrrroorr((ff)), PPeerrllIIOO__ffiilleennoo((ff)), PPeerrllIIOO__cclleeaarreerrrr((ff)),
PPeerrllIIOO__fflluusshh((ff)), PPeerrllIIOO__sseeeekk((ff,,ooffffsseett,,wwhheennccee)), PPeerrllIIOO__tteellll((ff)),
PPeerrllIIOO__ggeettppooss((ff,,pp)), PPeerrllIIOO__sseettppooss((ff,,pp)), PPeerrllIIOO__rreewwiinndd((ff)),
PPeerrllIIOO__ttmmppffiillee(()), PPeerrllIIOO__sseettlliinneebbuuff((ff))
Co-existence with stdio
PPeerrllIIOO__iimmppoorrttFFIILLEE((ff,,mmooddee)), PPeerrllIIOO__eexxppoorrttFFIILLEE((ff,,mmooddee)),
PPeerrllIIOO__rreelleeaasseeFFIILLEE((pp,,ff)), PPeerrllIIOO__ffiinnddFFIILLEE((ff))
"Fast gets" Functions
PPeerrllIIOO__ffaasstt__ggeettss((ff)), PPeerrllIIOO__hhaass__ccnnttppttrr((ff)), PPeerrllIIOO__ggeett__ccnntt((ff)),
PPeerrllIIOO__ggeett__ppttrr((ff)), PPeerrllIIOO__sseett__ppttrrccnntt((ff,,pp,,cc)),
PPeerrllIIOO__ccaannsseett__ccnntt((ff)), PPeerrllIIOO__sseett__ccnntt((ff,,cc)), PPeerrllIIOO__hhaass__bbaassee((ff)),
PPeerrllIIOO__ggeett__bbaassee((ff)), PPeerrllIIOO__ggeett__bbuuffssiizz((ff))
Other Functions
PerlIO_apply_layers(aTHX_ f,mode,layers), PerlIO_binmode(aTHX_
f,ptype,imode,layers), '<' read, '>' write, '+' read/write,
PerlIO_debug(fmt,...)
ppeerrllhhaacckk -- HHooww ttoo hhaacckk oonn PPeerrll
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_/_b_a_s_e, _t_/_c_o_m_p and _t_/_o_p_b_a_s_i_c, 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_/_h_a_r_n_e_s_s 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, _P_o_r_t_i_n_g_/_p_u_m_p_k_i_n_._p_o_d
CPAN TESTERS AND PERL SMOKERS #
WHAT NEXT? #
"The Road goes ever on and on, down from the door where it began."
Metaphoric Quotations
AUTHOR #
ppeerrllssoouurrccee -- AA gguuiiddee ttoo tthhee PPeerrll ssoouurrccee ttrreeee
DESCRIPTION #
FINDING YOUR WAY AROUND #
C code
Core modules
_l_i_b_/, _e_x_t_/, _d_i_s_t_/, _c_p_a_n_/
Tests
Module tests, _t_/_b_a_s_e_/, _t_/_c_m_d_/, _t_/_c_o_m_p_/, _t_/_i_o_/, _t_/_m_r_o_/, _t_/_o_p_/,
_t_/_o_p_b_a_s_i_c_/, _t_/_r_e_/, _t_/_r_u_n_/, _t_/_u_n_i_/, _t_/_w_i_n_3_2_/, _t_/_p_o_r_t_i_n_g_/, _t_/_l_i_b_/
Documentation
Hacking tools and documentation
_c_h_e_c_k_*, _M_a_i_n_t_a_i_n_e_r_s, _M_a_i_n_t_a_i_n_e_r_s_._p_l, and _M_a_i_n_t_a_i_n_e_r_s_._p_m, _p_o_d_t_i_d_y
Build system
_A_U_T_H_O_R_S #
_M_A_N_I_F_E_S_T #
ppeerrlliinntteerrpp -- AAnn oovveerrvviieeww ooff tthhee PPeerrll iinntteerrpprreetteerr
DESCRIPTION #
ELEMENTS OF THE INTERPRETER #
Startup
Parsing
Optimization
Running
Exception handing
INTERNAL VARIABLE TYPES #
OP TREES #
STACKS #
Argument stack
Mark stack
Save stack
MILLIONS OF MACROS #
FURTHER READING #
ppeerrllhhaacckkttuutt -- WWaallkk tthhrroouugghh tthhee ccrreeaattiioonn ooff aa ssiimmppllee CC ccooddee ppaattcchh
DESCRIPTION #
EXAMPLE OF A SIMPLE PATCH #
Writing the patch
Testing the patch
Documenting the patch
Submit
AUTHOR #
ppeerrllhhaacckkttiippss -- TTiippss ffoorr PPeerrll ccoorree CC ccooddee hhaacckkiinngg
DESCRIPTION #
COMMON PROBLEMS #
Perl environment problems
C99 AIX, HP/UX, Solaris
Portability problems
Problematic System Interfaces
Security problems
DEBUGGING #
Poking at Perl
Using a source-level debugger
run [args], break function_name, break source.c:xxx, step, next,
continue, finish, 'enter', ptype, print
gdb macro support
Dumping Perl Data Structures
Using gdb to look at specific parts of a program
Using gdb to look at what the parser/lexer are doing
SOURCE CODE STATIC ANALYSIS #
lint
Coverity
HP-UX cadvise (Code Advisor)
cpd (cut-and-paste detector)
gcc warnings
Warnings of other C compilers
MEMORY DEBUGGERS #
valgrind
AddressSanitizer
-Dcc=clang, -Accflags=-fsanitize=address,
-Aldflags=-fsanitize=address, -Alddlflags=-shared\
-fsanitize=address, -fsanitize-blacklist=`pwd`/asan_ignore
PROFILING #
Gprof Profiling
-a, -b, -e routine, -f routine, -s, -z
GCC gcov Profiling
callgrind profiling
--threshold, --auto
MISCELLANEOUS TRICKS #
PERL_DESTRUCT_LEVEL #
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 #
ppeerrllppoolliiccyy -- VVaarriioouuss aanndd ssuunnddrryy ppoolliicciieess aanndd ccoommmmiittmmeennttss rreellaatteedd ttoo tthhee PPeerrll ccoorree
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 #
ppeerrllggoovv -- PPeerrll RRuulleess ooff GGoovveerrnnaannccee
PREAMBLE #
Mandate
Definitions
"Core Team", "Steering Council", "Vote Administrator"
The Core Team
The Steering Council
The Vote Administrator
Steering Council Members
Neil Bowers, Paul Evans, Ricardo Signes
Core Team Members
Active Members
Chad Granum <exodist7@gmail.com>, Chris 'BinGOs' Williams
<chris@bingosnet.co.uk>, Craig Berry <craigberry@mac.com>,
Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>, David Golden
<xdg@xdg.me>, David Mitchell <davem@iabyn.com>, H. Merijn Brand
<perl5@tux.freedom.nl>, Hugo van der Sanden <hv@crypt.org>, James
E Keenan <jkeenan@cpan.org>, Jason McIntosh <jmac@jmac.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>
Inactive Members
Abhijit Menon-Sen <ams@toroid.org>, Andy Dougherty
<doughera@lafayette.edu>, Jan Dubois <jan@jandubois.com>, Jesse
Vincent <jesse@fsck.com>
ppeerrllggiitt -- DDeettaaiilleedd iinnffoorrmmaattiioonn aabboouutt ggiitt aanndd tthhee PPeerrll rreeppoossiittoorryy
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
ppeerrllhhiisstt -- tthhee PPeerrll hhiissttoorryy rreeccoorrddss
DESCRIPTION #
INTRODUCTION #
THE KEEPERS OF THE PUMPKIN #
PUMPKIN? #
THE RECORDS #
SELECTED RELEASE SIZES #
SELECTED PATCH SIZES #
THE KEEPERS OF THE RECORDS #
ppeerrllddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3366..33
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 #
ppeerrll55336633ddeellttaa,, ppeerrllddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3366..33
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 #
ppeerrll55336622ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3366..22
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 #
ppeerrll55336611ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3366..11
DESCRIPTION #
Incompatible Changes
Modules and Pragmata
Updated Modules and Pragmata
Configuration and Compilation
Testing
Selected Bug Fixes
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO #
ppeerrll55336600ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3366..00
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 #
ppeerrll55334433ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3344..33
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 #
ppeerrll55334422ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3344..22
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 #
ppeerrll55334411ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3344..11
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 #
ppeerrll55334400ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3344..00
DESCRIPTION #
Core Enhancements
Experimental Try/Catch Syntax
"qr/{,n}/" is now accepted
Blanks freely allowed within but adjacent to curly braces
New octal syntax "0o_d_d_d_d_d"
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 #
ppeerrll55332211ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3322..11
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 #
ppeerrll55332200ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3322..00
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{_u_s_e_r_-_d_e_f_i_n_e_d}" 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
_C_o_n_f_i_g_u_r_e
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 #
ppeerrll55330033ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3300..33
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 #
ppeerrll55330022ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3300..22
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 #
ppeerrll55330011ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3300..11
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 #
ppeerrll55330000ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..3300..00
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 ssyyssrreeaadd(())/ssyysswwrriittee(()) on :utf8 handles is now
fatal
mmyy(()) in false conditional prohibited
Fatalize $* and $#
Fatalize unqualified use of dduummpp(())
Remove FFiillee::::GGlloobb::::gglloobb(())
"pack()" no longer can return malformed UTF-8
Any set of digits in the Common script are legal in a script run of
another script
JSON::PP enables allow_nonref by default
Deprecations
In XS code, use of various macros dealing with UTF-8.
Performance Enhancements
Modules and Pragmata
Updated Modules and Pragmata
Removed Modules and Pragmata
Documentation
Changes to Existing Documentation
Diagnostics
Changes to Existing Diagnostics
Utility Changes
xsubpp
Configuration and Compilation
Testing
Platform Support
Platform-Specific Notes
HP-UX 11.11, Mac OS X, Minix3, Cygwin, Win32 Mingw, Windows
Internal Changes
Selected Bug Fixes
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO #
ppeerrll55228833ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2288..33
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 #
ppeerrll55228822ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2288..22
DESCRIPTION #
Incompatible Changes
Any set of digits in the Common script are legal in a script run of
another script
Modules and Pragmata
Updated Modules and Pragmata
Platform Support
Platform-Specific Notes
Windows, Mac OS X
Selected Bug Fixes
Acknowledgements
Reporting Bugs
Give Thanks
SEE ALSO #
ppeerrll55228811ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2288..11
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 #
ppeerrll55228800ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2288..00
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
hhoossttnnaammee(()) 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 #
ppeerrll55226633ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2266..33
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 #
ppeerrll55226622ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2266..22
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 #
ppeerrll55226611ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2266..11
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 #
ppeerrll55226600ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2266..00
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{_s_c_r_i_p_t}" 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
_C_o_n_f_i_g_u_r_e _-_U_d_e_f_a_u_l_t___i_n_c___e_x_c_l_u_d_e_s___d_o_t, "PERL_USE_UNSAFE_INC", A
new deprecation warning issued by "do", Script authors,
Installing and using CPAN modules, Module Authors
Escaped colons and relative paths in PATH
New "-Di" switch is now required for PerlIO debugging output
Incompatible Changes
Unescaped literal "{" characters in regular expression patterns are
no longer permissible
"scalar(%hash)" return signature changed
"keys" returned from an lvalue subroutine
The "${^ENCODING}" facility has been removed
"POSIX::tmpnam()" has been removed
require ::Foo::Bar is now illegal.
Literal control character variable names are no longer permissible
"NBSP" is no longer permissible in "\N{...}"
Deprecations
String delimiters that aren't stand-alone graphemes are now
deprecated
"\c_X" that maps to a printable is no longer deprecated
Performance Enhancements
New Faster Hash Function on 64 bit builds, readline is faster
Modules and Pragmata
Updated Modules and Pragmata
Documentation
New Documentation
Changes to Existing Documentation
Diagnostics
New Diagnostics
Changes to Existing Diagnostics
Utility Changes
_c_2_p_h and _p_s_t_r_u_c_t
_P_o_r_t_i_n_g_/_p_o_d___l_i_b_._p_l
_P_o_r_t_i_n_g_/_s_y_n_c_-_w_i_t_h_-_c_p_a_n
_p_e_r_f_/_b_e_n_c_h_m_a_r_k_s
_P_o_r_t_i_n_g_/_c_h_e_c_k_A_U_T_H_O_R_S_._p_l
_t_/_p_o_r_t_i_n_g_/_r_e_g_e_n_._t
_u_t_i_l_s_/_h_2_x_s_._P_L
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 #
ppeerrll55224444ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2244..44
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 #
ppeerrll55224433ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2244..33
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 #
ppeerrll55224422ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2244..22
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 #
ppeerrll55224411ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2244..11
DESCRIPTION #
Security
--DDii 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 #
ppeerrll55224400ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2244..00
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 #
ppeerrll55222244ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2222..44
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 #
ppeerrll55222233ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2222..33
DESCRIPTION #
Security
--DDii 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 #
ppeerrll55222222ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2222..22
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 #
ppeerrll55222211ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2222..11
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 #
ppeerrll55222200ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2222..00
DESCRIPTION #
Core Enhancements
New bitwise operators
New double-diamond operator
New "\b" boundaries in regular expressions
Non-Capturing Regular Expression Flag
"use re 'strict'"
Unicode 7.0 (with correction) is now supported
"use locale" can restrict which locale categories are affected
Perl now supports POSIX 2008 locale currency additions
Better heuristics on older platforms for determining locale UTF-8ness
Aliasing via reference
"prototype" with no arguments
New ":const" subroutine attribute
"fileno" now works on directory handles
List form of pipe open implemented for Win32
Assignment to list repetition
Infinity and NaN (not-a-number) handling improved
Floating point parsing has been improved
Packing infinity or not-a-number into a character is now fatal
Experimental C Backtrace API
Security
Perl is now compiled with "-fstack-protector-strong" if available
The Safe module could allow outside packages to be replaced
Perl is now always compiled with "-D_FORTIFY_SOURCE=2" if available
Incompatible Changes
Subroutine signatures moved before attributes
"&" and "\&" prototypes accepts only subs
"use encoding" is now lexical
List slices returning empty lists
"\N{}" with a sequence of multiple spaces is now a fatal error
"use UNIVERSAL '...'" is now a fatal error
In double-quotish "\c_X", _X must now be a printable ASCII character
Splitting the tokens "(?" and "(*" in regular expressions is now a
fatal compilation error.
"qr/foo/x" now ignores all Unicode pattern white space
Comment lines within "(?[Â ])" are now ended only by a "\n"
"(?[...])" operators now follow standard Perl precedence
Omitting "%" and "@" on hash and array names is no longer permitted
"$!" text is now in English outside the scope of "use locale"
"$!" text will be returned in UTF-8 when appropriate
Support for "?PATTERN?" without explicit operator has been removed
"defined(@array)" and "defined(%hash)" are now fatal errors
Using a hash or an array as a reference are now fatal errors
Changes to the "*" prototype
Deprecations
Setting "${^ENCODING}" to anything but "undef"
Use of non-graphic characters in single-character variable names
Inlining of "sub () { $var }" with observable side-effects
Use of multiple "/x" regexp modifiers
Using a NO-BREAK space in a character alias for "\N{...}" is now
deprecated
A literal "{" should now be escaped in a pattern
Making all warnings fatal is discouraged
Performance Enhancements
Modules and Pragmata
Updated Modules and Pragmata
Removed Modules and Pragmata
Documentation
New Documentation
Changes to Existing Documentation
Diagnostics
New Diagnostics
Changes to Existing Diagnostics
Diagnostic Removals
Utility Changes
_f_i_n_d_2_p_e_r_l, _s_2_p and _a_2_p 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 #
ppeerrll55220033ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2200..33
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 #
ppeerrll55220022ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2200..22
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 #
ppeerrll55220011ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2200..11
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 #
ppeerrll55220000ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..2200..00
DESCRIPTION #
Core Enhancements
Experimental Subroutine signatures
"sub"s now take a "prototype" attribute
More consistent prototype parsing
"rand" now uses a consistent random number generator
New slice syntax
Experimental Postfix Dereferencing
Unicode 6.3 now supported
New "\p{Unicode}" regular expression pattern property
Better 64-bit support
"use locale" now works on UTF-8 locales
"use locale" now compiles on systems without locale ability
More locale initialization fallback options
"-DL" runtime option now added for tracing locale setting
--FF now implies --aa and --aa implies --nn
$a and $b warnings exemption
Security
Avoid possible read of ffrreeee(())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 _e_r_r_n_o_._h
values over WWSSAAGGeettLLaassttEErrrroorr(()) 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 _d_i_s_c_o_u_r_a_g_e_d
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 #
ppeerrll55118844ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1188..44
DESCRIPTION #
Modules and Pragmata
Updated Modules and Pragmata
Platform Support
Platform-Specific Notes
Win32
Selected Bug Fixes
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55118822ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1188..22
DESCRIPTION #
Modules and Pragmata
Updated Modules and Pragmata
Documentation
Changes to Existing Documentation
Selected Bug Fixes
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55118811ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1188..11
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 #
ppeerrll55118800ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1188..00
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
rreeaaddlliinnee(()) 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 #
ppeerrll55116633ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1166..33
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 #
ppeerrll55116622ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1166..22
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 #
ppeerrll55116611ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1166..11
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 #
ppeerrll55116600ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1166..00
DESCRIPTION #
Notice
Core Enhancements
"use _V_E_R_S_I_O_N"
“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 _l_i_b_/_u_n_i_c_o_r_e
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 #
ppeerrll55114444ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1144..44
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.cc::SS__jjooiinn__eexxaacctt(())
[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 #
ppeerrll55114433ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1144..33
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 #
ppeerrll55114422ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1144..22
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 #
ppeerrll55114411ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1144..11
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 #
ppeerrll55114400ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1144..00
DESCRIPTION #
Notice
Core Enhancements
Unicode
Regular Expressions
Syntactical Enhancements
Exception Handling
Other Enhancements
"-d:-foo", "-d:-foo=bar"
New C APIs
Security
User-defined regular expression properties
Incompatible Changes
Regular Expressions and String Escapes
Stashes and Package Variables
Changes to Syntax or to Perl Operators
Threads and Processes
Configuration
Deprecations
Omitting a space between a regular expression and subsequent word
"\c_X"
"\b{" and "\B{"
Perl 4-era .pl libraries
List assignment to $[
Use of qw(...) as parentheses
“\N{BELL}” #
“?PATTERN?” #
Tie functions on scalars holding typeglobs
User-defined case-mapping
Deprecated modules
Devel::DProf
Performance Enhancements
"Safe signals" optimisation
Optimisation of sshhiifftt(()) and ppoopp(()) 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
_M_E_T_A_/_M_Y_M_E_T_A_._j_s_o_n, 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 bbzziipp22(1), allow _F_o_o_/_B_a_r_._p_m on
the command line to mean "Foo::Bar", cchhaarriinnffoo(()), cchhaarrssccrriipptt(()),
cchhaarrbblloocckk(())
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
kkeeyyss(()), vvaalluueess(()), and eeaacchh(()) work on arrays
sspplliitt(()) and @_
Obituary
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55112255ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1122..55
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
sspplliitt(()) and @_
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55112244ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1122..44
DESCRIPTION #
Incompatible Changes
Selected Bug Fixes
Modules and Pragmata
Testing
Documentation
Platform Specific Notes
Linux
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55112233ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1122..33
DESCRIPTION #
Incompatible Changes
Core Enhancements
"keys", "values" work on arrays
Bug Fixes
Platform Specific Notes
Solaris, VMS, VOS
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55112222ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1122..22
DESCRIPTION #
Incompatible Changes
Core Enhancements
Modules and Pragmata
New Modules and Pragmata
Pragmata Changes
Updated Modules
"Carp", "CPANPLUS", "File::Glob", "File::Copy", "File::Spec"
Utility Changes
Changes to Existing Documentation
Installation and Configuration Improvements
Configuration improvements
Compilation improvements
Selected Bug Fixes
Platform Specific Notes
AIX #
Windows
VMS #
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55112211ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1122..11
DESCRIPTION #
Incompatible Changes
Core Enhancements
Modules and Pragmata
Pragmata Changes
Updated Modules
Changes to Existing Documentation
Testing
Testing Improvements
Installation and Configuration Improvements
Configuration improvements
Bug Fixes
Platform Specific Notes
HP-UX #
AIX #
FreeBSD 7
VMS #
Known Problems
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55112200ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1122..00
DESCRIPTION #
Core Enhancements
New "package NAME VERSION" syntax
The "..." operator
Implicit strictures
Unicode improvements
Y2038 compliance
qr overloading
Pluggable keywords
APIs for more internals
Overridable function lookup
A proper interface for pluggable Method Resolution Orders
"\N" experimental regex escape
DTrace support
Support for "configure_requires" in CPAN module metadata
"each", "keys", "values" are now more flexible
"when" as a statement modifier
$, flexibility
// in when clauses
Enabling warnings from your shell environment
"delete local"
New support for Abstract namespace sockets
32-bit limit on substr arguments removed
Potentially Incompatible Changes
Deprecations warn by default
Version number formats
@INC reorganization
REGEXPs are now first class
Switch statement changes
flip-flop operators, defined-or operator
Smart match changes
Other potentially incompatible changes
Deprecations
suidperl, Use of ":=" to mean an empty attribute list,
"UNIVERSAL->import()", Use of "goto" to jump into a construct, Custom
character names in \N{name} that don't look like names, Deprecated
Modules, Class::ISA, Pod::Plainer, Shell, Switch, Assignment to $[,
Use of the attribute :locked on subroutines, Use of "locked" with the
attributes pragma, Use of "unique" with the attributes pragma,
Perl_pmflag, Numerous Perl 4-era libraries
Unicode overhaul
Modules and Pragmata
New Modules and Pragmata
"autodie", "Compress::Raw::Bzip2", "overloading", "parent",
"Parse::CPAN::Meta", "VMS::DCLsym", "VMS::Stdio",
"XS::APItest::KeywordRPN"
Updated Pragmata
"base", "bignum", "charnames", "constant", "diagnostics",
"feature", "less", "lib", "mro", "overload", "threads",
"threads::shared", "version", "warnings"
Updated Modules
"Archive::Extract", "Archive::Tar", "Attribute::Handlers",
"AutoLoader", "B::Concise", "B::Debug", "B::Deparse", "B::Lint",
"CGI", "Class::ISA", "Compress::Raw::Zlib", "CPAN", "CPANPLUS",
"CPANPLUS::Dist::Build", "Data::Dumper", "DB_File",
"Devel::PPPort", "Digest", "Digest::MD5", "Digest::SHA",
"Encode", "Exporter", "ExtUtils::CBuilder", "ExtUtils::Command",
"ExtUtils::Constant", "ExtUtils::Install", "ExtUtils::MakeMaker",
"ExtUtils::Manifest", "ExtUtils::ParseXS", "File::Fetch",
"File::Path", "File::Temp", "Filter::Simple",
"Filter::Util::Call", "Getopt::Long", "IO", "IO::Zlib",
"IPC::Cmd", "IPC::SysV", "Locale::Maketext",
"Locale::Maketext::Simple", "Log::Message",
"Log::Message::Simple", "Math::BigInt", "Math::BigInt::FastCalc",
"Math::BigRat", "Math::Complex", "Memoize", "MIME::Base64",
"Module::Build", "Module::CoreList", "Module::Load",
"Module::Load::Conditional", "Module::Loaded",
"Module::Pluggable", "Net::Ping", "NEXT", "Object::Accessor",
"Package::Constants", "PerlIO", "Pod::Parser", "Pod::Perldoc",
"Pod::Plainer", "Pod::Simple", "Safe", "SelfLoader", "Storable",
"Switch", "Sys::Syslog", "Term::ANSIColor", "Term::UI", "Test",
"Test::Harness", "Test::Simple", "Text::Balanced",
"Text::ParseWords", "Text::Soundex", "Thread::Queue",
"Thread::Semaphore", "Tie::RefHash", "Time::HiRes",
"Time::Local", "Time::Piece", "Unicode::Collate",
"Unicode::Normalize", "Win32", "Win32API::File", "XSLoader"
Removed Modules and Pragmata
"attrs", "CPAN::API::HOWTO", "CPAN::DeferedCode",
"CPANPLUS::inc", "DCLsym", "ExtUtils::MakeMaker::bytes",
"ExtUtils::MakeMaker::vmsish", "Stdio", "Test::Harness::Assert",
"Test::Harness::Iterator", "Test::Harness::Point",
"Test::Harness::Results", "Test::Harness::Straps",
"Test::Harness::Util", "XSSymSet"
Deprecated Modules and Pragmata
Documentation
New Documentation
Changes to Existing Documentation
Selected Performance Enhancements
Installation and Configuration Improvements
Internal Changes
Testing
Testing improvements
Parallel tests, Test harness flexibility, Test watchdog
New Tests
New or Changed Diagnostics
New Diagnostics
Changed Diagnostics
"Illegal character in prototype for %s : %s", "Prototype after
'%c' for %s : %s"
Utility Changes
Selected Bug Fixes
Platform Specific Changes
New Platforms
Haiku, MirOS BSD
Discontinued Platforms
Domain/OS, MiNT, Tenon MachTen
Updated Platforms
AIX, Cygwin, Darwin (Mac OS X), DragonFly BSD, FreeBSD, Irix,
NetBSD, OpenVMS, Stratus VOS, Symbian, Windows
Known Problems
Errata
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55110011ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..1100..11
DESCRIPTION #
Incompatible Changes
Switch statement changes
flip-flop operators, defined-or operator
Smart match changes
Other incompatible changes
Core Enhancements
Unicode Character Database 5.1.0
A proper interface for pluggable Method Resolution Orders
The "overloading" pragma
Parallel tests
DTrace support
Support for "configure_requires" in CPAN module metadata
Modules and Pragmata
New Modules and Pragmata
"autodie", "Compress::Raw::Bzip2", "parent", "Parse::CPAN::Meta"
Pragmata Changes
"attributes", "attrs", "base", "bigint", "bignum", "bigrat",
"charnames", "constant", "feature", "fields", "lib", "open",
"overload", "overloading", "version"
Updated Modules
"Archive::Extract", "Archive::Tar", "Attribute::Handlers",
"AutoLoader", "AutoSplit", "B", "B::Debug", "B::Deparse",
"B::Lint", "B::Xref", "Benchmark", "Carp", "CGI",
"Compress::Zlib", "CPAN", "CPANPLUS", "CPANPLUS::Dist::Build",
"Cwd", "Data::Dumper", "DB", "DB_File", "Devel::PPPort",
"Digest::MD5", "Digest::SHA", "DirHandle", "Dumpvalue",
"DynaLoader", "Encode", "Errno", "Exporter",
"ExtUtils::CBuilder", "ExtUtils::Command", "ExtUtils::Constant",
"ExtUtils::Embed", "ExtUtils::Install", "ExtUtils::MakeMaker",
"ExtUtils::Manifest", "ExtUtils::ParseXS", "Fatal",
"File::Basename", "File::Compare", "File::Copy", "File::Fetch",
"File::Find", "File::Path", "File::Spec", "File::stat",
"File::Temp", "FileCache", "FileHandle", "Filter::Simple",
"Filter::Util::Call", "FindBin", "GDBM_File", "Getopt::Long",
"Hash::Util::FieldHash", "I18N::Collate", "IO",
"IO::Compress::*", "IO::Dir", "IO::Handle", "IO::Socket",
"IO::Zlib", "IPC::Cmd", "IPC::Open3", "IPC::SysV", "lib",
"List::Util", "Locale::MakeText", "Log::Message",
"Math::BigFloat", "Math::BigInt", "Math::BigInt::FastCalc",
"Math::BigRat", "Math::Complex", "Math::Trig", "Memoize",
"Module::Build", "Module::CoreList", "Module::Load",
"Module::Load::Conditional", "Module::Loaded",
"Module::Pluggable", "NDBM_File", "Net::Ping", "NEXT",
"Object::Accessor", "OS2::REXX", "Package::Constants", "PerlIO",
"PerlIO::via", "Pod::Man", "Pod::Parser", "Pod::Simple",
"Pod::Text", "POSIX", "Safe", "Scalar::Util", "SelectSaver",
"SelfLoader", "Socket", "Storable", "Switch", "Symbol",
"Sys::Syslog", "Term::ANSIColor", "Term::ReadLine", "Term::UI",
"Test::Harness", "Test::Simple", "Text::ParseWords",
"Text::Tabs", "Text::Wrap", "Thread::Queue", "Thread::Semaphore",
"threads", "threads::shared", "Tie::RefHash", "Tie::StdHandle",
"Time::HiRes", "Time::Local", "Time::Piece",
"Unicode::Normalize", "Unicode::UCD", "UNIVERSAL", "Win32",
"Win32API::File", "XSLoader"
Utility Changes
_h_2_p_h, _h_2_x_s, _p_e_r_l_5_d_b_._p_l, _p_e_r_l_t_h_a_n_k_s
New Documentation
perlhaiku, perlmroapi, perlperf, perlrepository, perlthanks
Changes to Existing Documentation
Performance Enhancements
Installation and Configuration Improvements
_e_x_t_/ reorganisation
Configuration improvements
Compilation improvements
Platform Specific Changes
AIX, Cygwin, FreeBSD, Irix, Haiku, MirOS BSD, NetBSD, Stratus
VOS, Symbian, Win32, VMS
Selected Bug Fixes
New or Changed Diagnostics
"panic: sv_chop %s", "Can't locate package %s for the parents of %s",
"v-string in use/require is non-portable", "Deep recursion on
subroutine "%s""
Changed Internals
"SVf_UTF8", "SVs_TEMP"
New Tests
t/comp/retainedlines.t, t/io/perlio_fail.t, t/io/perlio_leaks.t,
t/io/perlio_open.t, t/io/perlio.t, t/io/pvbm.t,
t/mro/package_aliases.t, t/op/dbm.t, t/op/index_thr.t,
t/op/pat_thr.t, t/op/qr_gc.t, t/op/reg_email_thr.t,
t/op/regexp_qr_embed_thr.t, t/op/regexp_unicode_prop.t,
t/op/regexp_unicode_prop_thr.t, t/op/reg_nc_tie.t,
t/op/reg_posixcc.t, t/op/re.t, t/op/setpgrpstack.t,
t/op/substr_thr.t, t/op/upgrade.t, t/uni/lex_utf8.t, t/uni/tie.t
Known Problems
Deprecations
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll55110000ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll 55..1100..00
DESCRIPTION #
Core Enhancements
The "feature" pragma
New --EE command-line switch
Defined-or operator
Switch and Smart Match operator
Regular expressions
Recursive Patterns, Named Capture Buffers, Possessive
Quantifiers, Backtracking control verbs, Relative backreferences,
"\K" escape, Vertical and horizontal whitespace, and linebreak,
Optional pre-match and post-match captures with the /p flag
"say()"
Lexical $_
The "_" prototype
UNITCHECK blocks
New Pragma, "mro"
rreeaaddddiirr(()) may return a "short filename" on Windows
rreeaaddppiippee(()) is now overridable
Default argument for rreeaaddlliinnee(())
ssttaattee(()) variables
Stacked filetest operators
UUNNIIVVEERRSSAALL::::DDOOEESS(()) #
Formats
Byte-order modifiers for ppaacckk(()) and uunnppaacckk(())
"no VERSION"
"chdir", "chmod" and "chown" on filehandles
OS groups
Recursive sort subs
Exceptions in constant folding
Source filters in @INC
New internal variables
“${^RE_DEBUG_FLAGS}”, “${^CHILD_ERROR_NATIVE}”, #
“${^RE_TRIE_MAXBUF}”, “${^WIN32_SLOPPY_STAT}” #
Miscellaneous
UCD 5.0.0 #
MAD #
kkiillll(()) on Windows
Incompatible Changes
Packing and UTF-8 strings
Byte/character count feature in uunnppaacckk(())
The $* and $# variables have been removed
ssuubbssttrr(()) lvalues are no longer fixed-length
Parsing of "-f _"
":unique"
Effect of pragmas in eval
chdir FOO
Handling of .pmc files
$^V is now a "version" object instead of a v-string
@- and @+ in patterns
$AUTOLOAD can now be tainted
Tainting and printf
undef and signal handlers
strictures and dereferencing in ddeeffiinneedd(())
"(?p{})" has been removed
Pseudo-hashes have been removed
Removal of the bytecode compiler and of perlcc
Removal of the JPL
Recursive inheritance detected earlier
warnings::enabled and warnings::warnif changed to favor users of
modules
Modules and Pragmata
Upgrading individual core modules
Pragmata Changes
"feature", "mro", Scoping of the "sort" pragma, Scoping of
"bignum", "bigint", "bigrat", "base", "strict" and "warnings",
"version", "warnings", "less"
New modules
Selected Changes to Core Modules
"Attribute::Handlers", "B::Lint", "B", "Thread"
Utility Changes
perl -d, ptar, ptardiff, shasum, corelist, h2ph and h2xs, perlivp,
find2perl, config_data, cpanp, cpan2dist, pod2html
New Documentation
Performance Enhancements
In-place sorting
Lexical array access
XS-assisted SWASHGET
Constant subroutines
“PERL_DONT_CREATE_GVSV” #
Weak references are cheaper
ssoorrtt(()) enhancements
Memory optimisations
UTF-8 cache optimisation
Sloppy stat on Windows
Regular expressions optimisations
Engine de-recursivised, Single char char-classes treated as
literals, Trie optimisation of literal string alternations, Aho-
Corasick start-point optimisation
Installation and Configuration Improvements
Configuration improvements
"-Dusesitecustomize", Relocatable installations, ssttrrllccaatt(()) and
ssttrrllccppyy(()), "d_pseudofork" and "d_printf_format_null", Configure
help
Compilation improvements
Parallel build, Borland's compilers support, Static build on
Windows, ppport.h files, C++ compatibility, Support for Microsoft
64-bit compiler, Visual C++, Win32 builds
Installation improvements
Module auxiliary files
New Or Improved Platforms
Selected Bug Fixes
strictures in regexp-eval blocks, Calling CCOORREE::::rreeqquuiirree(()), Subscripts
of slices, "no warnings 'category'" works correctly with -w, threads
improvements, cchhrr(()) and negative values, PERL5SHELL and tainting,
Using *FILE{IO}, Overloading and reblessing, Overloading and UTF-8,
eval memory leaks fixed, Random device on Windows, PERLIO_DEBUG,
PerlIO::scalar and read-only scalars, ssttuuddyy(()) and UTF-8, Critical
signals, @INC-hook fix, "-t" switch fix, Duping UTF-8 filehandles,
Localisation of hash elements
New or Changed Diagnostics
Use of uninitialized value, Deprecated use of mmyy(()) in false
conditional, !=~ should be !~, Newline in left-justified string, Too
late for "-T" option, "%s" variable %s masks earlier declaration,
rreeaaddddiirr(())/cclloosseeddiirr(())/etc. attempted on invalid dirhandle, Opening
dirhandle/filehandle %s also as a file/directory, Use of -P is
deprecated, v-string in use/require is non-portable, perl -V
Changed Internals
Reordering of SVt_* constants
Elimination of SVt_PVBM
New type SVt_BIND
Removal of CPP symbols
Less space is used by ops
New parser
Use of "const"
Mathoms
"AvFLAGS" has been removed
"av_*" changes
$^H and %^H
B:: modules inheritance changed
Anonymous hash and array constructors
Known Problems
UTF-8 problems
Platform Specific Problems
Reporting Bugs
SEE ALSO #
ppeerrll558899ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..99
DESCRIPTION #
Notice
Incompatible Changes
Core Enhancements
Unicode Character Database 5.1.0.
stat and -X on directory handles
Source filters in @INC
Exceptions in constant folding
"no VERSION"
Improved internal UTF-8 caching code
Runtime relocatable installations
New internal variables
“${^CHILD_ERROR_NATIVE}”, “${^UTF8CACHE}” #
"readpipe" is now overridable
simple exception handling macros
-D option enhancements
XS-assisted SWASHGET
Constant subroutines
New Platforms
Modules and Pragmata
New Modules
Updated Modules
Utility Changes
debugger upgraded to version 1.31
_p_e_r_l_t_h_a_n_k_s
_p_e_r_l_b_u_g
_h_2_x_s
_h_2_p_h
New Documentation
Changes to Existing Documentation
Performance Enhancements
Installation and Configuration Improvements
Relocatable installations
Configuration improvements
Compilation improvements
Installation improvements.
Platform Specific Changes
Selected Bug Fixes
Unicode
PerlIO
Magic
Reblessing overloaded objects now works
"strict" now propagates correctly into string evals
Other fixes
Platform Specific Fixes
Smaller fixes
New or Changed Diagnostics
panic: sv_chop %s
Maximal count of pending signals (%s) exceeded
panic: attempt to call %s in %s
FETCHSIZE returned a negative value
Can't upgrade %s (%d) to %d
%s argument is not a HASH or ARRAY element or a subroutine
Cannot make the non-overridable builtin %s fatal
Unrecognized character '%s' in column %d
Offset outside string
Invalid escape in the specified encoding in regexp; marked by <--
HERE in m/%s/
Your machine doesn't support dump/undump.
Changed Internals
Macro cleanups
New Tests
ext/DynaLoader/t/DynaLoader.t, t/comp/fold.t, t/io/pvbm.t,
t/lib/proxy_constant_subs.t, t/op/attrhand.t, t/op/dbm.t,
t/op/inccode-tie.t, t/op/incfilter.t, t/op/kill0.t, t/op/qrstack.t,
t/op/qr.t, t/op/regexp_qr_embed.t, t/op/regexp_qr.t, t/op/rxcode.t,
t/op/studytied.t, t/op/substT.t, t/op/symbolcache.t, t/op/upgrade.t,
t/mro/package_aliases.t, t/pod/twice.t, t/run/cloexec.t,
t/uni/cache.t, t/uni/chr.t, t/uni/greek.t, t/uni/latin2.t,
t/uni/overload.t, t/uni/tie.t
Known Problems
Platform Specific Notes
Win32
OS/2 #
VMS #
Obituary
Acknowledgements
Reporting Bugs
SEE ALSO #
ppeerrll558888ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..88
DESCRIPTION #
Incompatible Changes
Core Enhancements
Modules and Pragmata
Utility Changes
"h2xs" enhancements
"perlivp" enhancements
New Documentation
Performance Enhancements
Installation and Configuration Improvements
Selected Bug Fixes
no warnings 'category' works correctly with -w
Remove over-optimisation
sspprriinnttff(()) fixes
Debugger and Unicode slowdown
Smaller fixes
New or Changed Diagnostics
Attempt to set length of freed array
Non-string passed as bitmask
Search pattern not terminated or ternary operator parsed as search
pattern
Changed Internals
Platform Specific Problems
Reporting Bugs
SEE ALSO #
ppeerrll558877ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..77
DESCRIPTION #
Incompatible Changes
Core Enhancements
Unicode Character Database 4.1.0
suidperl less insecure
Optional site customization script
"Config.pm" is now much smaller.
Modules and Pragmata
Utility Changes
find2perl enhancements
Performance Enhancements
Installation and Configuration Improvements
Selected Bug Fixes
New or Changed Diagnostics
Changed Internals
Known Problems
Platform Specific Problems
Reporting Bugs
SEE ALSO #
ppeerrll558866ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..66
DESCRIPTION #
Incompatible Changes
Core Enhancements
Modules and Pragmata
Utility Changes
Performance Enhancements
Selected Bug Fixes
New or Changed Diagnostics
Changed Internals
New Tests
Reporting Bugs
SEE ALSO #
ppeerrll558855ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..55
DESCRIPTION #
Incompatible Changes
Core Enhancements
Modules and Pragmata
Utility Changes
Perl's debugger
h2ph
Installation and Configuration Improvements
Selected Bug Fixes
New or Changed Diagnostics
Changed Internals
Known Problems
Platform Specific Problems
Reporting Bugs
SEE ALSO #
ppeerrll558844ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..44
DESCRIPTION #
Incompatible Changes
Core Enhancements
Malloc wrapping
Unicode Character Database 4.0.1
suidperl less insecure
format
Modules and Pragmata
Updated modules
Attribute::Handlers, B, Benchmark, CGI, Carp, Cwd, Exporter,
File::Find, IO, IPC::Open3, Local::Maketext, Math::BigFloat,
Math::BigInt, Math::BigRat, MIME::Base64, ODBM_File, POSIX,
Shell, Socket, Storable, Switch, Sys::Syslog, Term::ANSIColor,
Time::HiRes, Unicode::UCD, Win32, base, open, threads, utf8
Performance Enhancements
Utility Changes
Installation and Configuration Improvements
Selected Bug Fixes
New or Changed Diagnostics
Changed Internals
Future Directions
Platform Specific Problems
Reporting Bugs
SEE ALSO #
ppeerrll558833ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..33
DESCRIPTION #
Incompatible Changes
Core Enhancements
Modules and Pragmata
CGI, Cwd, Digest, Digest::MD5, Encode, File::Spec, FindBin,
List::Util, Math::BigInt, PodParser, Pod::Perldoc, POSIX,
Unicode::Collate, Unicode::Normalize, Test::Harness, threads::shared
Utility Changes
New Documentation
Installation and Configuration Improvements
Selected Bug Fixes
New or Changed Diagnostics
Changed Internals
Configuration and Building
Platform Specific Problems
Known Problems
Future Directions
Obituary
Reporting Bugs
SEE ALSO #
ppeerrll558822ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..22
DESCRIPTION #
Incompatible Changes
Core Enhancements
Hash Randomisation
Threading
Modules and Pragmata
Updated Modules And Pragmata
Devel::PPPort, Digest::MD5, I18N::LangTags, libnet, MIME::Base64,
Pod::Perldoc, strict, Tie::Hash, Time::HiRes, Unicode::Collate,
Unicode::Normalize, UNIVERSAL
Selected Bug Fixes
Changed Internals
Platform Specific Problems
Future Directions
Reporting Bugs
SEE ALSO #
ppeerrll558811ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..11
DESCRIPTION #
Incompatible Changes
Hash Randomisation
UTF-8 On Filehandles No Longer Activated By Locale
Single-number v-strings are no longer v-strings before "=>"
(Win32) The -C Switch Has Been Repurposed
(Win32) The /d Switch Of cmd.exe
Core Enhancements
UTF-8 no longer default under UTF-8 locales
Unsafe signals again available
Tied Arrays with Negative Array Indices
local ${$x}
Unicode Character Database 4.0.0
Deprecation Warnings
Miscellaneous Enhancements
Modules and Pragmata
Updated Modules And Pragmata
base, B::Bytecode, B::Concise, B::Deparse, Benchmark, ByteLoader,
bytes, CGI, charnames, CPAN, Data::Dumper, DB_File,
Devel::PPPort, Digest::MD5, Encode, fields, libnet, Math::BigInt,
MIME::Base64, NEXT, Net::Ping, PerlIO::scalar, podlators,
Pod::LaTeX, PodParsers, Pod::Perldoc, Scalar::Util, Storable,
strict, Term::ANSIcolor, Test::Harness, Test::More, Test::Simple,
Text::Balanced, Time::HiRes, threads, threads::shared,
Unicode::Collate, Unicode::Normalize, Win32::GetFolderPath,
Win32::GetOSVersion
Utility Changes
New Documentation
Installation and Configuration Improvements
Platform-specific enhancements
Selected Bug Fixes
Closures, eval and lexicals
Generic fixes
Platform-specific fixes
New or Changed Diagnostics
Changed "A thread exited while %d threads were running"
Removed "Attempt to clear a restricted hash"
New "Illegal declaration of anonymous subroutine"
Changed "Invalid range "%s" in transliteration operator"
New "Missing control char name in \c"
New "Newline in left-justified string for %s"
New "Possible precedence problem on bitwise %c operator"
New "Pseudo-hashes are deprecated"
New "rreeaadd(()) on %s filehandle %s"
New "5.005 threads are deprecated"
New "Tied variable freed while still in use"
New "To%s: illegal mapping '%s'"
New "Use of freed value in iteration"
Changed Internals
New Tests
Known Problems
Tied hashes in scalar context
Net::Ping 450_service and 510_ping_udp failures
B::C #
Platform Specific Problems
EBCDIC Platforms
Cygwin 1.5 problems
HP-UX: HP cc warnings about sendfile and sendpath
IRIX: t/uni/tr_7jis.t falsely failing
Mac OS X: no usemymalloc
Tru64: No threaded builds with GNU cc (gcc)
Win32: sysopen, sysread, syswrite
Future Directions
Reporting Bugs
SEE ALSO #
ppeerrll5588ddeellttaa -- wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..00
DESCRIPTION #
Highlights In 5.8.0
Incompatible Changes
Binary Incompatibility
64-bit platforms and malloc
AIX Dynaloading
Attributes for "my" variables now handled at run-time
Socket Extension Dynamic in VMS
IEEE-format Floating Point Default on OpenVMS Alpha
New Unicode Semantics (no more "use utf8", almost)
New Unicode Properties
REF(...) Instead Of SCALAR(...)
pack/unpack D/F recycled
gglloobb(()) now returns filenames in alphabetical order
Deprecations
Core Enhancements
Unicode Overhaul
PerlIO is Now The Default
ithreads
Restricted Hashes
Safe Signals
Understanding of Numbers
Arrays now always interpolate into double-quoted strings [561]
Miscellaneous Changes
Modules and Pragmata
New Modules and Pragmata
Updated And Improved Modules and Pragmata
Utility Changes
New Documentation
Performance Enhancements
Installation and Configuration Improvements
Generic Improvements
New Or Improved Platforms
Selected Bug Fixes
Platform Specific Changes and Fixes
New or Changed Diagnostics
Changed Internals
Security Vulnerability Closed [561]
New Tests
Known Problems
The Compiler Suite Is Still Very Experimental
Localising Tied Arrays and Hashes Is Broken
Building Extensions Can Fail Because Of Largefiles
Modifying $_ Inside for(..)
mod_perl 1.26 Doesn't Build With Threaded Perl
lib/ftmp-security tests warn 'system possibly insecure'
libwww-perl (LWP) fails base/date #51
PDL failing some tests
Perl_get_sv
Self-tying Problems
ext/threads/t/libc
Failure of Thread (5.005-style) tests
Timing problems
Tied/Magical Array/Hash Elements Do Not Autovivify
Unicode in package/class and subroutine names does not work
Platform Specific Problems
AIX #
Alpha systems with old gccs fail several tests
AmigaOS
BeOS
Cygwin "unable to remap"
Cygwin ndbm tests fail on FAT
DJGPP Failures
FreeBSD built with ithreads coredumps reading large directories
FreeBSD Failing locale Test 117 For ISO 8859-15 Locales
IRIX fails ext/List/Util/t/shuffle.t or Digest::MD5
HP-UX lib/posix Subtest 9 Fails When LP64-Configured
Linux with glibc 2.2.5 fails t/op/int subtest #6 with -Duse64bitint
Linux With Sfio Fails op/misc Test 48
Mac OS X
Mac OS X dyld undefined symbols
OS/2 Test Failures
op/sprintf tests 91, 129, and 130
SCO #
Solaris 2.5
Solaris x86 Fails Tests With -Duse64bitint
SUPER-UX (NEC SX) #
Term::ReadKey not working on Win32
UNICOS/mk
UTS #
VOS (Stratus)
VMS #
Win32
XML::Parser not working
z/OS (OS/390)
Unicode Support on EBCDIC Still Spotty
Seen In Perl 5.7 But Gone Now
Reporting Bugs
SEE ALSO #
HISTORY #
ppeerrll556611ddeellttaa -- wwhhaatt’’ss nneeww ffoorr ppeerrll vv55..66..11
DESCRIPTION #
Summary of changes between 5.6.0 and 5.6.1
Security Issues
Core bug fixes
"UNIVERSAL::isa()", Memory leaks, Numeric conversions, qw(a\\b),
ccaalllleerr(()), Bugs in regular expressions, "slurp" mode,
Autovivification of symbolic references to special variables,
Lexical warnings, Spurious warnings and errors, gglloobb(()), Tainting,
ssoorrtt(()), #line directives, Subroutine prototypes, mmaapp(()), Debugger,
PERL5OPT, cchhoopp(()), Unicode support, 64-bit support, Compiler,
Lvalue subroutines, IO::Socket, File::Find, xsubpp, "no Module;",
Tests
Core features
Configuration issues
Documentation
Bundled modules
B::Concise, File::Temp, Pod::LaTeX, Pod::Text::Overstrike, CGI,
CPAN, Class::Struct, DB_File, Devel::Peek, File::Find,
Getopt::Long, IO::Poll, IPC::Open3, Math::BigFloat,
Math::Complex, Net::Ping, Opcode, Pod::Parser, Pod::Text,
SDBM_File, Sys::Syslog, Tie::RefHash, Tie::SubstrHash
Platform-specific improvements
NCR MP-RAS, NonStop-UX
Core Enhancements
Interpreter cloning, threads, and concurrency
Lexically scoped warning categories
Unicode and UTF-8 support
Support for interpolating named characters
"our" declarations
Support for strings represented as a vector of ordinals
Improved Perl version numbering system
New syntax for declaring subroutine attributes
File and directory handles can be autovivified
ooppeenn(()) with more than two arguments
64-bit support
Large file support
Long doubles
"more bits"
Enhanced support for ssoorrtt(()) subroutines
"sort $coderef @foo" allowed
File globbing implemented internally
Support for CHECK blocks
POSIX character class syntax [: :] supported
Better pseudo-random number generator
Improved "qw//" operator
Better worst-case behavior of hashes
ppaacckk(()) format 'Z' supported
ppaacckk(()) format modifier '!' supported
ppaacckk(()) and uunnppaacckk(()) support counted strings
Comments in ppaacckk(()) templates
Weak references
Binary numbers supported
Lvalue subroutines
Some arrows may be omitted in calls through references
Boolean assignment operators are legal lvalues
eexxiissttss(()) is supported on subroutine names
eexxiissttss(()) and ddeelleettee(()) are supported on array elements
Pseudo-hashes work better
Automatic flushing of output buffers
Better diagnostics on meaningless filehandle operations
Where possible, buffered data discarded from duped input filehandle
eeooff(()) has the same old magic as <>
bbiinnmmooddee(()) can be used to set :crlf and :raw modes
"-T" filetest recognizes UTF-8 encoded files as "text"
ssyysstteemm(()), backticks and pipe open now reflect eexxeecc(()) failure
Improved diagnostics
Diagnostics follow STDERR
More consistent close-on-exec behavior
ssyysswwrriittee(()) ease-of-use
Better syntax checks on parenthesized unary operators
Bit operators support full native integer width
Improved security features
More functional bareword prototype (*)
"require" and "do" may be overridden
$^X variables may now have names longer than one character
New variable $^C reflects "-c" switch
New variable $^V contains Perl version as a string
Optional Y2K warnings
Arrays now always interpolate into double-quoted strings
@- and @+ provide starting/ending offsets of regex submatches
Modules and Pragmata
Modules
attributes, B, Benchmark, ByteLoader, constant, charnames,
Data::Dumper, DB, DB_File, Devel::DProf, Devel::Peek, Dumpvalue,
DynaLoader, English, Env, Fcntl, File::Compare, File::Find,
File::Glob, File::Spec, File::Spec::Functions, Getopt::Long, IO,
JPL, lib, Math::BigInt, Math::Complex, Math::Trig, Pod::Parser,
Pod::InputObjects, Pod::Checker, podchecker, Pod::ParseUtils,
Pod::Find, Pod::Select, podselect, Pod::Usage, pod2usage,
Pod::Text and Pod::Man, SDBM_File, Sys::Syslog, Sys::Hostname,
Term::ANSIColor, Time::Local, Win32, XSLoader, DBM Filters
Pragmata
Utility Changes
dprofpp
find2perl
h2xs
perlcc
perldoc
The Perl Debugger
Improved Documentation
perlapi.pod, perlboot.pod, perlcompile.pod, perldbmfilter.pod,
perldebug.pod, perldebguts.pod, perlfork.pod, perlfilter.pod,
perlhack.pod, perlintern.pod, perllexwarn.pod, perlnumber.pod,
perlopentut.pod, perlreftut.pod, perltootc.pod, perltodo.pod,
perlunicode.pod
Performance enhancements
Simple ssoorrtt(()) using { $a <=> $b } and the like are optimized
Optimized assignments to lexical variables
Faster subroutine calls
ddeelleettee(()), eeaacchh(()), vvaalluueess(()) and hash iteration are faster
Installation and Configuration Improvements
-Dusethreads means something different
New Configure flags
Threadedness and 64-bitness now more daring
Long Doubles
-Dusemorebits
-Duselargefiles
installusrbinperl
SOCKS support
"-A" flag
Enhanced Installation Directories
gcc automatically tried if 'cc' does not seem to be working
Platform specific changes
Supported platforms
DOS #
OS390 (OpenEdition MVS)
VMS #
Win32
Significant bug fixes
<HANDLE> on empty files
"eval '...'" improvements
All compilation errors are true errors
Implicitly closed filehandles are safer
Behavior of list slices is more consistent
"(\$)" prototype and $foo{a}
"goto &sub" and AUTOLOAD
"-bareword" allowed under "use integer"
Failures in DDEESSTTRROOYY(())
Locale bugs fixed
Memory leaks
Spurious subroutine stubs after failed subroutine calls
Taint failures under "-U"
END blocks and the "-c" switch
Potential to leak DATA filehandles
New or Changed Diagnostics
"%s" variable %s masks earlier declaration in same %s, "my sub" not
yet implemented, "our" variable %s redeclared, '!' allowed only after
types %s, / cannot take a count, / must be followed by a, A or Z, /
must be followed by a*, A* or Z*, / must follow a numeric type, /%s/:
Unrecognized escape \\%c passed through, /%s/: Unrecognized escape
\\%c in character class passed through, /%s/ should probably be
written as "%s", %s() called too early to check prototype, %s
argument is not a HASH or ARRAY element, %s argument is not a HASH or
ARRAY element or slice, %s argument is not a subroutine name, %s
package attribute may clash with future reserved word: %s, (in
cleanup) %s, <> should be quotes, Attempt to join self, Bad evalled
substitution pattern, Bad rreeaalllloocc(()) ignored, Bareword found in
conditional, Binary number > 0b11111111111111111111111111111111 non-
portable, Bit vector size > 32 non-portable, Buffer overflow in
prime_env_iter: %s, Can't check filesystem of script "%s", Can't
declare class for non-scalar %s in "%s", Can't declare %s in "%s",
Can't ignore signal CHLD, forcing to default, Can't modify non-lvalue
subroutine call, Can't read CRTL environ, Can't remove %s: %s,
skipping file, Can't return %s from lvalue subroutine, Can't weaken a
nonreference, Character class [:%s:] unknown, Character class syntax
[%s] belongs inside character classes, Constant is not %s reference,
constant(%s): %s, CORE::%s is not a keyword, defined(@array) is
deprecated, defined(%hash) is deprecated, Did not produce a valid
header, (Did you mean "local" instead of "our"?), Document contains
no data, entering effective %s failed, false [] range "%s" in regexp,
Filehandle %s opened only for output, fflloocckk(()) on closed filehandle
%s, Global symbol "%s" requires explicit package name, Hexadecimal
number > 0xffffffff non-portable, Ill-formed CRTL environ value "%s",
Ill-formed message in prime_env_iter: |%s|, Illegal binary digit %s,
Illegal binary digit %s ignored, Illegal number of bits in vec,
Integer overflow in %s number, Invalid %s attribute: %s, Invalid %s
attributes: %s, invalid [] range "%s" in regexp, Invalid separator
character %s in attribute list, Invalid separator character %s in
subroutine attribute list, leaving effective %s failed, Lvalue subs
returning %s not implemented yet, Method %s not permitted, Missing
%sbrace%s on \N{}, Missing command in piped open, Missing name in "my
sub", No %s specified for -%c, No package name allowed for variable
%s in "our", No space allowed after -%c, no UTC offset information;
assuming local time is UTC, Octal number > 037777777777 non-portable,
panic: del_backref, panic: kid popen errno read, panic:
magic_killbackrefs, Parentheses missing around "%s" list, Possible
unintended interpolation of %s in string, Possible Y2K bug: %s,
pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead,
Premature end of script headers, Repeat count in pack overflows,
Repeat count in unpack overflows, rreeaalllloocc(()) of freed memory ignored,
Reference is already weak, setpgrp can't take arguments, Strange
*+?{} on zero-length expression, switching effective %s is not
implemented, This Perl can't reset CRTL environ elements (%s), This
Perl can't set CRTL environ elements (%s=%s), Too late to run %s
block, Unknown ooppeenn(()) mode '%s', Unknown process %x sent message to
prime_env_iter: %s, Unrecognized escape \\%c passed through,
Unterminated attribute parameter in attribute list, Unterminated
attribute list, Unterminated attribute parameter in subroutine
attribute list, Unterminated subroutine attribute list, Value of CLI
symbol "%s" too long, Version number must be a constant number
New tests
Incompatible Changes
Perl Source Incompatibilities
CHECK is a new keyword, Treatment of list slices of undef has
changed, Format of $English::PERL_VERSION is different, Literals
of the form 1.2.3 parse differently, Possibly changed pseudo-
random number generator, Hashing function for hash keys has
changed, "undef" fails on read only values, Close-on-exec bit may
be set on pipe and socket handles, Writing "$$1" to mean "${$}1"
is unsupported, ddeelleettee(()), eeaacchh(()), vvaalluueess(()) and "\(%h)",
vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS, Text of some
diagnostic output has changed, "%@" has been removed,
Parenthesized nnoott(()) behaves like a list operator, Semantics of
bareword prototype "(*)" have changed, Semantics of bit operators
may have changed on 64-bit platforms, More builtins taint their
results
C Source Incompatibilities
“PERL_POLLUTE”, “PERL_IMPLICIT_CONTEXT”, “PERL_POLLUTE_MALLOC” #
Compatible C Source API Changes
"PATCHLEVEL" is now "PERL_VERSION"
Binary Incompatibilities
Known Problems
Localizing a tied hash element may leak memory
Known test failures
EBCDIC platforms not fully supported
UNICOS/mk CC failures during Configure run
Arrow operator and arrays
Experimental features
Threads, Unicode, 64-bit support, Lvalue subroutines, Weak
references, The pseudo-hash data type, The Compiler suite,
Internal implementation of file globbing, The DB module, The
regular expression code constructs:
Obsolete Diagnostics
Character class syntax [: :] is reserved for future extensions, Ill-
formed logical name |%s| in prime_env_iter, In string, @%s now must
be written as \@%s, Probable precedence problem on %s, regexp too
big, Use of "$$<digit>" to mean "${$}<digit>" is deprecated
Reporting Bugs
SEE ALSO #
HISTORY #
ppeerrll5566ddeellttaa -- wwhhaatt’’ss nneeww ffoorr ppeerrll vv55..66..00
DESCRIPTION #
Core Enhancements
Interpreter cloning, threads, and concurrency
Lexically scoped warning categories
Unicode and UTF-8 support
Support for interpolating named characters
"our" declarations
Support for strings represented as a vector of ordinals
Improved Perl version numbering system
New syntax for declaring subroutine attributes
File and directory handles can be autovivified
ooppeenn(()) with more than two arguments
64-bit support
Large file support
Long doubles
"more bits"
Enhanced support for ssoorrtt(()) subroutines
"sort $coderef @foo" allowed
File globbing implemented internally
Support for CHECK blocks
POSIX character class syntax [: :] supported
Better pseudo-random number generator
Improved "qw//" operator
Better worst-case behavior of hashes
ppaacckk(()) format 'Z' supported
ppaacckk(()) format modifier '!' supported
ppaacckk(()) and uunnppaacckk(()) support counted strings
Comments in ppaacckk(()) templates
Weak references
Binary numbers supported
Lvalue subroutines
Some arrows may be omitted in calls through references
Boolean assignment operators are legal lvalues
eexxiissttss(()) is supported on subroutine names
eexxiissttss(()) and ddeelleettee(()) are supported on array elements
Pseudo-hashes work better
Automatic flushing of output buffers
Better diagnostics on meaningless filehandle operations
Where possible, buffered data discarded from duped input filehandle
eeooff(()) has the same old magic as <>
bbiinnmmooddee(()) can be used to set :crlf and :raw modes
"-T" filetest recognizes UTF-8 encoded files as "text"
ssyysstteemm(()), backticks and pipe open now reflect eexxeecc(()) failure
Improved diagnostics
Diagnostics follow STDERR
More consistent close-on-exec behavior
ssyysswwrriittee(()) ease-of-use
Better syntax checks on parenthesized unary operators
Bit operators support full native integer width
Improved security features
More functional bareword prototype (*)
"require" and "do" may be overridden
$^X variables may now have names longer than one character
New variable $^C reflects "-c" switch
New variable $^V contains Perl version as a string
Optional Y2K warnings
Arrays now always interpolate into double-quoted strings
@- and @+ provide starting/ending offsets of regex matches
Modules and Pragmata
Modules
attributes, B, Benchmark, ByteLoader, constant, charnames,
Data::Dumper, DB, DB_File, Devel::DProf, Devel::Peek, Dumpvalue,
DynaLoader, English, Env, Fcntl, File::Compare, File::Find,
File::Glob, File::Spec, File::Spec::Functions, Getopt::Long, IO,
JPL, lib, Math::BigInt, Math::Complex, Math::Trig, Pod::Parser,
Pod::InputObjects, Pod::Checker, podchecker, Pod::ParseUtils,
Pod::Find, Pod::Select, podselect, Pod::Usage, pod2usage,
Pod::Text and Pod::Man, SDBM_File, Sys::Syslog, Sys::Hostname,
Term::ANSIColor, Time::Local, Win32, XSLoader, DBM Filters
Pragmata
Utility Changes
dprofpp
find2perl
h2xs
perlcc
perldoc
The Perl Debugger
Improved Documentation
perlapi.pod, perlboot.pod, perlcompile.pod, perldbmfilter.pod,
perldebug.pod, perldebguts.pod, perlfork.pod, perlfilter.pod,
perlhack.pod, perlintern.pod, perllexwarn.pod, perlnumber.pod,
perlopentut.pod, perlreftut.pod, perltootc.pod, perltodo.pod,
perlunicode.pod
Performance enhancements
Simple ssoorrtt(()) using { $a <=> $b } and the like are optimized
Optimized assignments to lexical variables
Faster subroutine calls
ddeelleettee(()), eeaacchh(()), vvaalluueess(()) and hash iteration are faster
Installation and Configuration Improvements
-Dusethreads means something different
New Configure flags
Threadedness and 64-bitness now more daring
Long Doubles
-Dusemorebits
-Duselargefiles
installusrbinperl
SOCKS support
"-A" flag
Enhanced Installation Directories
Platform specific changes
Supported platforms
DOS #
OS390 (OpenEdition MVS)
VMS #
Win32
Significant bug fixes
<HANDLE> on empty files
"eval '...'" improvements
All compilation errors are true errors
Implicitly closed filehandles are safer
Behavior of list slices is more consistent
"(\$)" prototype and $foo{a}
"goto &sub" and AUTOLOAD
"-bareword" allowed under "use integer"
Failures in DDEESSTTRROOYY(())
Locale bugs fixed
Memory leaks
Spurious subroutine stubs after failed subroutine calls
Taint failures under "-U"
END blocks and the "-c" switch
Potential to leak DATA filehandles
New or Changed Diagnostics
"%s" variable %s masks earlier declaration in same %s, "my sub" not
yet implemented, "our" variable %s redeclared, '!' allowed only after
types %s, / cannot take a count, / must be followed by a, A or Z, /
must be followed by a*, A* or Z*, / must follow a numeric type, /%s/:
Unrecognized escape \\%c passed through, /%s/: Unrecognized escape
\\%c in character class passed through, /%s/ should probably be
written as "%s", %s() called too early to check prototype, %s
argument is not a HASH or ARRAY element, %s argument is not a HASH or
ARRAY element or slice, %s argument is not a subroutine name, %s
package attribute may clash with future reserved word: %s, (in
cleanup) %s, <> should be quotes, Attempt to join self, Bad evalled
substitution pattern, Bad rreeaalllloocc(()) ignored, Bareword found in
conditional, Binary number > 0b11111111111111111111111111111111 non-
portable, Bit vector size > 32 non-portable, Buffer overflow in
prime_env_iter: %s, Can't check filesystem of script "%s", Can't
declare class for non-scalar %s in "%s", Can't declare %s in "%s",
Can't ignore signal CHLD, forcing to default, Can't modify non-lvalue
subroutine call, Can't read CRTL environ, Can't remove %s: %s,
skipping file, Can't return %s from lvalue subroutine, Can't weaken a
nonreference, Character class [:%s:] unknown, Character class syntax
[%s] belongs inside character classes, Constant is not %s reference,
constant(%s): %s, CORE::%s is not a keyword, defined(@array) is
deprecated, defined(%hash) is deprecated, Did not produce a valid
header, (Did you mean "local" instead of "our"?), Document contains
no data, entering effective %s failed, false [] range "%s" in regexp,
Filehandle %s opened only for output, fflloocckk(()) on closed filehandle
%s, Global symbol "%s" requires explicit package name, Hexadecimal
number > 0xffffffff non-portable, Ill-formed CRTL environ value "%s",
Ill-formed message in prime_env_iter: |%s|, Illegal binary digit %s,
Illegal binary digit %s ignored, Illegal number of bits in vec,
Integer overflow in %s number, Invalid %s attribute: %s, Invalid %s
attributes: %s, invalid [] range "%s" in regexp, Invalid separator
character %s in attribute list, Invalid separator character %s in
subroutine attribute list, leaving effective %s failed, Lvalue subs
returning %s not implemented yet, Method %s not permitted, Missing
%sbrace%s on \N{}, Missing command in piped open, Missing name in "my
sub", No %s specified for -%c, No package name allowed for variable
%s in "our", No space allowed after -%c, no UTC offset information;
assuming local time is UTC, Octal number > 037777777777 non-portable,
panic: del_backref, panic: kid popen errno read, panic:
magic_killbackrefs, Parentheses missing around "%s" list, Possible
unintended interpolation of %s in string, Possible Y2K bug: %s,
pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead,
Premature end of script headers, Repeat count in pack overflows,
Repeat count in unpack overflows, rreeaalllloocc(()) of freed memory ignored,
Reference is already weak, setpgrp can't take arguments, Strange
*+?{} on zero-length expression, switching effective %s is not
implemented, This Perl can't reset CRTL environ elements (%s), This
Perl can't set CRTL environ elements (%s=%s), Too late to run %s
block, Unknown ooppeenn(()) mode '%s', Unknown process %x sent message to
prime_env_iter: %s, Unrecognized escape \\%c passed through,
Unterminated attribute parameter in attribute list, Unterminated
attribute list, Unterminated attribute parameter in subroutine
attribute list, Unterminated subroutine attribute list, Value of CLI
symbol "%s" too long, Version number must be a constant number
New tests
Incompatible Changes
Perl Source Incompatibilities
CHECK is a new keyword, Treatment of list slices of undef has
changed, Format of $English::PERL_VERSION is different, Literals
of the form 1.2.3 parse differently, Possibly changed pseudo-
random number generator, Hashing function for hash keys has
changed, "undef" fails on read only values, Close-on-exec bit may
be set on pipe and socket handles, Writing "$$1" to mean "${$}1"
is unsupported, ddeelleettee(()), eeaacchh(()), vvaalluueess(()) and "\(%h)",
vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS, Text of some
diagnostic output has changed, "%@" has been removed,
Parenthesized nnoott(()) behaves like a list operator, Semantics of
bareword prototype "(*)" have changed, Semantics of bit operators
may have changed on 64-bit platforms, More builtins taint their
results
C Source Incompatibilities
“PERL_POLLUTE”, “PERL_IMPLICIT_CONTEXT”, “PERL_POLLUTE_MALLOC” #
Compatible C Source API Changes
"PATCHLEVEL" is now "PERL_VERSION"
Binary Incompatibilities
Known Problems
Thread test failures
EBCDIC platforms not supported
In 64-bit HP-UX the lib/io_multihomed test may hang
NEXTSTEP 3.3 POSIX test failure
Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with
gcc
UNICOS/mk CC failures during Configure run
Arrow operator and arrays
Experimental features
Threads, Unicode, 64-bit support, Lvalue subroutines, Weak
references, The pseudo-hash data type, The Compiler suite,
Internal implementation of file globbing, The DB module, The
regular expression code constructs:
Obsolete Diagnostics
Character class syntax [: :] is reserved for future extensions, Ill-
formed logical name |%s| in prime_env_iter, In string, @%s now must
be written as \@%s, Probable precedence problem on %s, regexp too
big, Use of "$$<digit>" to mean "${$}<digit>" is deprecated
Reporting Bugs
SEE ALSO #
HISTORY #
ppeerrll55000055ddeellttaa -- wwhhaatt’’ss nneeww ffoorr ppeerrll55..000055
DESCRIPTION #
About the new versioning system
Incompatible Changes
WARNING: This version is not binary compatible with Perl 5.004.
Default installation structure has changed
Perl Source Compatibility
C Source Compatibility
Binary Compatibility
Security fixes may affect compatibility
Relaxed new mandatory warnings introduced in 5.004
Licensing
Core Changes
Threads
Compiler
Regular Expressions
Many new and improved optimizations, Many bug fixes, New regular
expression constructs, New operator for precompiled regular
expressions, Other improvements, Incompatible changes
Improved mmaalllloocc(())
Quicksort is internally implemented
Reliable signals
Reliable stack pointers
More generous treatment of carriage returns
Memory leaks
Better support for multiple interpreters
Behavior of llooccaall(()) on array and hash elements is now well-defined
"%!" is transparently tied to the Errno module
Pseudo-hashes are supported
"EXPR foreach EXPR" is supported
Keywords can be globally overridden
$^E is meaningful on Win32
"foreach (1..1000000)" optimized
"Foo::" can be used as implicitly quoted package name
"exists $Foo::{Bar::}" tests existence of a package
Better locale support
Experimental support for 64-bit platforms
pprroottoottyyppee(()) returns useful results on builtins
Extended support for exception handling
Re-blessing in DDEESSTTRROOYY(()) supported for chaining DDEESSTTRROOYY(()) methods
All "printf" format conversions are handled internally
New "INIT" keyword
New "lock" keyword
New "qr//" operator
"our" is now a reserved word
Tied arrays are now fully supported
Tied handles support is better
4th argument to substr
Negative LENGTH argument to splice
Magic lvalues are now more magical
<> now reads in records
Supported Platforms
New Platforms
Changes in existing support
Modules and Pragmata
New Modules
B, Data::Dumper, Dumpvalue, Errno, File::Spec,
ExtUtils::Installed, ExtUtils::Packlist, Fatal, IPC::SysV, Test,
Tie::Array, Tie::Handle, Thread, attrs, fields, re
Changes in existing modules
Benchmark, Carp, CGI, Fcntl, Math::Complex, Math::Trig, POSIX,
DB_File, MakeMaker, CPAN, Cwd
Utility Changes
Documentation Changes
New Diagnostics
Ambiguous call resolved as CORE::%s(), qualify as such or use &, Bad
index while coercing array into hash, Bareword "%s" refers to
nonexistent package, Can't call method "%s" on an undefined value,
Can't check filesystem of script "%s" for nosuid, Can't coerce array
into hash, Can't goto subroutine from an eval-string, Can't localize
pseudo-hash element, Can't use %%! because Errno.pm is not available,
Cannot find an opnumber for "%s", Character class syntax [. .] is
reserved for future extensions, Character class syntax [: :] is
reserved for future extensions, Character class syntax [= =] is
reserved for future extensions, %s: Eval-group in insecure regular
expression, %s: Eval-group not allowed, use re 'eval', %s: Eval-group
not allowed at run time, Explicit blessing to '' (assuming package
main), Illegal hex digit ignored, No such array field, No such field
"%s" in variable %s of type %s, Out of memory during ridiculously
large request, Range iterator outside integer range, Recursive
inheritance detected while looking for method '%s' %s, Reference
found where even-sized list expected, Undefined value assigned to
typeglob, Use of reserved word "%s" is deprecated, perl: warning:
Setting locale failed
Obsolete Diagnostics
Can't mmkktteemmpp(()), Can't write to temp file for --ee: %s, Cannot open
temporary file, regexp too big
Configuration Changes
BUGS #
SEE ALSO #
HISTORY #
ppeerrll55000044ddeellttaa -- wwhhaatt’’ss nneeww ffoorr ppeerrll55..000044
DESCRIPTION #
Supported Environments
Core Changes
List assignment to %ENV works
Change to "Can't locate Foo.pm in @INC" error
Compilation option: Binary compatibility with 5.003
$PERL5OPT environment variable
Limitations on --MM, --mm, and --TT options
More precise warnings
Deprecated: Inherited "AUTOLOAD" for non-methods
Previously deprecated %OVERLOAD is no longer usable
Subroutine arguments created only when they're modified
Group vector changeable with $)
Fixed parsing of $$<digit>, &$<digit>, etc.
Fixed localization of $<digit>, $&, etc.
No resetting of $. on implicit close
"wantarray" may return undef
"eval EXPR" determines value of EXPR in scalar context
Changes to tainting checks
No gglloobb(()) or <*>, No spawning if tainted $CDPATH, $ENV,
$BASH_ENV, No spawning if tainted $TERM doesn't look like a
terminal name
New Opcode module and revised Safe module
Embedding improvements
Internal change: FileHandle class based on IO::* classes
Internal change: PerlIO abstraction interface
New and changed syntax
$coderef->(PARAMS)
New and changed builtin constants
PACKAGE #
New and changed builtin variables
$^E, $^H, $^M #
New and changed builtin functions
delete on slices, flock, printf and sprintf, keys as an lvalue,
mmyy(()) in Control Structures, ppaacckk(()) and uunnppaacckk(()), ssyysssseeeekk(()), use
VERSION, use Module VERSION LIST, prototype(FUNCTION), srand, $_
as Default, "m//gc" does not reset search position on failure,
"m//x" ignores whitespace before ?*+{}, nested "sub{}" closures
work now, formats work right on changing lexicals
New builtin methods
isa(CLASS), can(METHOD), VERSION( [NEED] )
TIEHANDLE now supported
TIEHANDLE classname, LIST, PRINT this, LIST, PRINTF this, LIST,
READ this LIST, READLINE this, GETC this, DESTROY this
Malloc enhancements
-DPERL_EMERGENCY_SBRK, -DPACK_MALLOC, -DTWO_POT_OPTIMIZE #
Miscellaneous efficiency enhancements
Support for More Operating Systems
Win32
Plan 9
QNX #
AmigaOS
Pragmata
use autouse MODULE => qw(sub1 sub2 sub3), use blib, use blib 'dir',
use constant NAME => VALUE, use locale, use ops, use vmsish
Modules
Required Updates
Installation directories
Module information summary
Fcntl
IO #
Math::Complex
Math::Trig
DB_File
Net::Ping
Object-oriented overrides for builtin operators
Utility Changes
pod2html
Sends converted HTML to standard output
xsubpp
"void" XSUBs now default to returning nothing
C Language API Changes
"gv_fetchmethod" and "perl_call_sv", "perl_eval_pv", Extended API for
manipulating hashes
Documentation Changes
perldelta, perlfaq, perllocale, perltoot, perlapio, perlmodlib,
perldebug, perlsec
New Diagnostics
"my" variable %s masks earlier declaration in same scope, %s argument
is not a HASH element or slice, Allocation too large: %lx, Allocation
too large, Applying %s to %s will act on scalar(%s), Attempt to free
nonexistent shared string, Attempt to use reference as lvalue in
substr, Bareword "%s" refers to nonexistent package, Can't redefine
active sort subroutine %s, Can't use bareword ("%s") as %s ref while
"strict refs" in use, Cannot resolve method `%s' overloading `%s' in
package `%s', Constant subroutine %s redefined, Constant subroutine
%s undefined, Copy method did not return a reference, Died, Exiting
pseudo-block via %s, Identifier too long, Illegal character %s
(carriage return), Illegal switch in PERL5OPT: %s, Integer overflow
in hex number, Integer overflow in octal number, internal error: glob
failed, Invalid conversion in %s: "%s", Invalid type in pack: '%s',
Invalid type in unpack: '%s', Name "%s::%s" used only once: possible
typo, Null picture in formline, Offset outside string, Out of
memory!, Out of memory during request for %s, panic: frexp, Possible
attempt to put comments in qqww(()) list, Possible attempt to separate
words with commas, Scalar value @%s{%s} better written as $%s{%s},
Stub found while resolving method `%s' overloading `%s' in %s, Too
late for "--TT" option, untie attempted while %d inner references still
exist, Unrecognized character %s, Unsupported function fork, Use of
"$$<digit>" to mean "${$}<digit>" is deprecated, Value of %s can be
"0"; test with ddeeffiinneedd(()), Variable "%s" may be unavailable, Variable
"%s" will not stay shared, Warning: something's wrong, Ill-formed
logical name |%s| in prime_env_iter, Got an error from DosAllocMem,
Malformed PERLLIB_PREFIX, PERL_SH_DIR too long, Process terminated by
SIG%s
BUGS #
SEE ALSO #
HISTORY #
ppeerrllbbooookk -- BBooookkss aabboouutt aanndd rreellaatteedd ttoo PPeerrll
DESCRIPTION #
The most popular books
_P_r_o_g_r_a_m_m_i_n_g _P_e_r_l (the "Camel Book"):, _T_h_e _P_e_r_l _C_o_o_k_b_o_o_k (the "Ram
Book"):, _L_e_a_r_n_i_n_g _P_e_r_l (the "Llama Book"), _I_n_t_e_r_m_e_d_i_a_t_e _P_e_r_l
(the "Alpaca Book")
References
_P_e_r_l _5 _P_o_c_k_e_t _R_e_f_e_r_e_n_c_e, _P_e_r_l _D_e_b_u_g_g_e_r _P_o_c_k_e_t _R_e_f_e_r_e_n_c_e, _R_e_g_u_l_a_r
_E_x_p_r_e_s_s_i_o_n _P_o_c_k_e_t _R_e_f_e_r_e_n_c_e
Tutorials
_B_e_g_i_n_n_i_n_g _P_e_r_l, _L_e_a_r_n_i_n_g _P_e_r_l (the "Llama Book"), _I_n_t_e_r_m_e_d_i_a_t_e
_P_e_r_l (the "Alpaca Book"), _M_a_s_t_e_r_i_n_g _P_e_r_l, _E_f_f_e_c_t_i_v_e _P_e_r_l
_P_r_o_g_r_a_m_m_i_n_g
Task-Oriented
_W_r_i_t_i_n_g _P_e_r_l _M_o_d_u_l_e_s _f_o_r _C_P_A_N, _T_h_e _P_e_r_l _C_o_o_k_b_o_o_k, _A_u_t_o_m_a_t_i_n_g
_S_y_s_t_e_m _A_d_m_i_n_i_s_t_r_a_t_i_o_n _w_i_t_h _P_e_r_l, _R_e_a_l _W_o_r_l_d _S_Q_L _S_e_r_v_e_r
_A_d_m_i_n_i_s_t_r_a_t_i_o_n _w_i_t_h _P_e_r_l
Special Topics
_R_e_g_u_l_a_r _E_x_p_r_e_s_s_i_o_n_s _C_o_o_k_b_o_o_k, _P_r_o_g_r_a_m_m_i_n_g _t_h_e _P_e_r_l _D_B_I, _P_e_r_l _B_e_s_t
_P_r_a_c_t_i_c_e_s, _H_i_g_h_e_r_-_O_r_d_e_r _P_e_r_l, _M_a_s_t_e_r_i_n_g _R_e_g_u_l_a_r _E_x_p_r_e_s_s_i_o_n_s,
_N_e_t_w_o_r_k _P_r_o_g_r_a_m_m_i_n_g _w_i_t_h _P_e_r_l, _P_e_r_l _T_e_m_p_l_a_t_e _T_o_o_l_k_i_t, _O_b_j_e_c_t
_O_r_i_e_n_t_e_d _P_e_r_l, _D_a_t_a _M_u_n_g_i_n_g _w_i_t_h _P_e_r_l, _M_a_s_t_e_r_i_n_g _P_e_r_l_/_T_k,
_E_x_t_e_n_d_i_n_g _a_n_d _E_m_b_e_d_d_i_n_g _P_e_r_l, _P_r_o _P_e_r_l _D_e_b_u_g_g_i_n_g
Free (as in beer) books
Other interesting, non-Perl books
_P_r_o_g_r_a_m_m_i_n_g _P_e_a_r_l_s, _M_o_r_e _P_r_o_g_r_a_m_m_i_n_g _P_e_a_r_l_s
A note on freshness
Get your book listed
ppeerrllccoommmmuunniittyy -- aa bbrriieeff oovveerrvviieeww ooff tthhee PPeerrll ccoommmmuunniittyy
DESCRIPTION #
Where to Find the Community
Mailing Lists and Newsgroups
IRC #
Websites
<https://perl.com/>, <http://blogs.perl.org/>,
<https://perl.theplanetarium.org/>, <https://perlweekly.com/>,
<https://www.perlmonks.org/>, <https://stackoverflow.com/>,
<http://prepan.org/>
User Groups
Workshops
Hackathons
Conventions
The Perl Conference, OSCON
Calendar of Perl Events
AUTHOR #
ppeerrllddoocc -- LLooookk uupp PPeerrll ddooccuummeennttaattiioonn iinn PPoodd ffoorrmmaatt..
SYNOPSIS #
DESCRIPTION #
OPTIONS #
--hh, --DD, --tt, --uu, --mm _m_o_d_u_l_e, --ll, --UU, --FF, --ff _p_e_r_l_f_u_n_c, --qq _p_e_r_l_f_a_q_-
_s_e_a_r_c_h_-_r_e_g_e_x_p, --aa _p_e_r_l_a_p_i_f_u_n_c, --vv _p_e_r_l_v_a_r, --TT, --dd _d_e_s_t_i_n_a_t_i_o_n_-
_f_i_l_e_n_a_m_e, --oo _o_u_t_p_u_t_-_f_o_r_m_a_t_n_a_m_e, --MM _m_o_d_u_l_e_-_n_a_m_e, --ww _o_p_t_i_o_n_:_v_a_l_u_e or --ww
_o_p_t_i_o_n, --XX, --LL _l_a_n_g_u_a_g_e___c_o_d_e, PPaaggeeNNaammee||MMoodduulleeNNaammee||PPrrooggrraammNNaammee||UURRLL, --nn
_s_o_m_e_-_f_o_r_m_a_t_t_e_r, --rr, --ii, --VV
SECURITY #
ENVIRONMENT #
CHANGES #
SEE ALSO #
AUTHOR #
ppeerrlleexxppeerriimmeenntt -- AA lliissttiinngg ooff eexxppeerriimmeennttaall ffeeaattuurreess iinn PPeerrll
DESCRIPTION #
Current experiments
Smart match ("~~"), Pluggable keywords, Aliasing via reference,
The "const" attribute, use re 'strict';, Declaring a reference to
a variable, There is an "installhtml" target in the Makefile,
(Limited) Variable-length look-behind, Unicode private use
character hooks, Unicode property wildcards, try/catch control
structure, Use of @_ within subroutine signatures, for loop with
multiple iteration variables, The builtin namespace, The defer
block modifier, Extra paired delimiters for quote-like operators
Accepted features
64-bit support, die accepts a reference, DB module, Weak
references, Internal file glob, ffoorrkk(()) emulation,
-Dusemultiplicity -Duseithreads, Support for long doubles, The
"\N" regex character class, "(?{code})" and "(??{ code })", Linux
abstract Unix domain sockets, Lvalue subroutines, Backtracking
control verbs, The ":pop" IO pseudolayer, "\s" in regexp matches
vertical tab, Postfix dereference syntax, Lexical subroutines,
String- and number-specific bitwise operators, Alphabetic
assertions, Script runs, The infix "isa" operator, Subroutine
signatures, Regular Expression Set Operations
Removed features
5.005-style threading, perlcc, The pseudo-hash data type,
GetOpt::Long Options can now take multiple values at once
(experimental), Assertions, Test::Harness::Straps, "legacy",
Lexical $_, Array and hash container functions accept references,
"our" can have an experimental optional attribute "unique", The
":win32" IO pseudolayer
SEE ALSO #
AUTHORS #
COPYRIGHT #
LICENSE #
ppeerrllaarrttiissttiicc -- tthhee PPeerrll AArrttiissttiicc LLiicceennssee
SYNOPSIS #
DESCRIPTION #
The "Artistic License"
Preamble
Definitions
"Package", "Standard Version", "Copyright Holder", "You",
"Reasonable copying fee", "Freely Available"
Conditions
a), b), c), d), a), b), c), d)
ppeerrllggppll -- tthhee GGNNUU GGeenneerraall PPuubblliicc LLiicceennssee,, vveerrssiioonn 11
SYNOPSIS #
DESCRIPTION #
GNU GENERAL PUBLIC LICENSE #
ppeerrllaaiixx -- PPeerrll vveerrssiioonn 55 oonn IIBBMM AAIIXX ((UUNNIIXX)) ssyysstteemmss
DESCRIPTION #
Compiling Perl 5 on AIX
Supported Compilers
Incompatibility with AIX Toolbox lib gdbm
Perl 5 was successfully compiled and tested on:
Building Dynamic Extensions on AIX
Using Large Files with Perl
Threaded Perl
64-bit Perl
Long doubles
Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/32-bit)
Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (32-bit)
Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/64-bit)
Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64-bit)
Compiling Perl 5 on AIX 7.1.0
Compiling Perl 5 on older AIX versions up to 4.3.3
OS level
Building Dynamic Extensions on AIX < 5L
The IBM ANSI C Compiler
The usenm option
Using GNU's gcc for building Perl
Using Large Files with Perl < 5L
Threaded Perl < 5L
64-bit Perl < 5L
AIX 4.2 and extensions using C++ with statics
AUTHORS #
ppeerrllaammiiggaa -- PPeerrll uunnddeerr AAmmiiggaaOOSS 44..11
NOTE #
SYNOPSIS #
DESCRIPTION #
Prerequisites for running Perl 5.22.1 under AmigaOS 4.1
AAmmiiggaaOOSS 44..11 uuppddaattee 66 wwiitthh aallll uuppddaatteess aapppplliieedd aass ooff 99tthh OOccttoobbeerr
22001133, nneewwlliibb..lliibbrraarryy vveerrssiioonn 5533..2288 oorr ggrreeaatteerr, AAmmiiggaaOOSS SSDDKK, aabbcc--
sshheellll
Starting Perl programs under AmigaOS 4.1
Limitations of Perl under AmigaOS 4.1
NNeesstteedd PPiippeedd pprrooggrraammss ccaann ccrraasshh wwhheenn rruunn ffrroomm oollddeerr aabbcc--sshheellllss,
IInnccoorrrreecctt oorr uunneexxppeecctteedd ccoommmmaanndd lliinnee uunneessccaappiinngg, SSttaarrttiinngg
ssuubbpprroocceesssseess vviiaa ooppeenn hhaass lliimmiittaattiioonnss, If you find any other
limitations or bugs then let me know
INSTALLATION #
Amiga Specific Modules
Amiga::ARexx
Amiga::Exec
BUILDING #
CHANGES #
AAuugguusstt 22001155, Port to Perl 5.22, Add handling of NIL: to aaffssttaatt(()), Fix
inheritance of environment variables by subprocesses, Fix exec, and
exit in "forked" subprocesses, Fix issue with newlib's unlink, which
could cause infinite loops, Add fflloocckk(()) emulation using
IDOS->LockRecord thanks to Tony Cook for the suggestion, Fix issue
where kill was using the wrong kind of process ID, 2277tthh NNoovveemmbbeerr
22001133, Create new installation system based on installperl links and
Amiga protection bits now set correctly, Pod now defaults to text,
File::Spec should now recognise an Amiga style absolute path as well
as an Unix style one. Relative paths must always be Unix style, 2200tthh
NNoovveemmbbeerr 22001133, Configured to use SDK:Local/C/perl to start standard
scripts, Added Amiga::Exec module with support for WWaaiitt(()) and AmigaOS
signal numbers, 1100tthh OOccttoobbeerr 1133
SEE ALSO #
ppeerrllaannddrrooiidd -- PPeerrll uunnddeerr AAnnddrrooiidd
SYNOPSIS #
DESCRIPTION #
Cross-compilation
Get the Android Native Development Kit (NDK)
Determine the architecture you'll be cross-compiling for
Set up a standalone toolchain
adb or ssh?
Configure and beyond
Native Builds
CCTools
Termux
AUTHOR #
ppeerrllbbss22000000 -- bbuuiillddiinngg aanndd iinnssttaalllliinngg PPeerrll ffoorr BBSS22000000..
SYNOPSIS #
DESCRIPTION #
gzip on BS2000
bison on BS2000
Unpacking Perl Distribution on BS2000
Compiling Perl on BS2000
Testing Perl on BS2000
Installing Perl on BS2000
Using Perl in the Posix-Shell of BS2000
Using Perl in "native" BS2000
Floating point anomalies on BS2000
Using PerlIO and different encodings on ASCII and EBCDIC partitions
AUTHORS #
SEE ALSO #
Mailing list
HISTORY #
ppeerrllccyyggwwiinn -- PPeerrll ffoorr CCyyggwwiinn
SYNOPSIS #
PREREQUISITES FOR COMPILING PERL ON CYGWIN #
Cygwin = GNU+Cygnus+Windows (Don't leave UNIX without it)
Cygwin Configuration
"PATH", _n_r_o_f_f
CONFIGURE PERL ON CYGWIN #
Stripping Perl Binaries on Cygwin
Optional Libraries for Perl on Cygwin
"-lcrypt", "-lgdbm_compat" ("use GDBM_File"), "-ldb" ("use
DB_File"), "cygserver" ("use IPC::SysV"), "-lutil"
Configure-time Options for Perl on Cygwin
"-Uusedl", "-Dusemymalloc", "-Uuseperlio", "-Dusemultiplicity",
"-Uuse64bitint", "-Duselongdouble", "-Uuseithreads",
"-Duselargefiles", "-Dmksymlinks"
Suspicious Warnings on Cygwin
Win9x and "d_eofnblk", Compiler/Preprocessor defines
MAKE ON CYGWIN #
TEST ON CYGWIN #
File Permissions on Cygwin
NDBM_File and ODBM_File do not work on FAT filesystems
"fork()" failures in io_* tests
Specific features of the Cygwin port
Script Portability on Cygwin
Pathnames, Text/Binary, PerlIO, _._e_x_e, Cygwin vs. Windows process
ids, Cygwin vs. Windows errors, rebase errors on fork or system,
"chown()", Miscellaneous
Prebuilt methods:
"Cwd::cwd", "Cygwin::pid_to_winpid", "Cygwin::winpid_to_pid",
"Cygwin::win_to_posix_path", "Cygwin::posix_to_win_path",
"Cygwin::mount_table()", "Cygwin::mount_flags",
"Cygwin::is_binmount", "Cygwin::sync_winenv"
INSTALL PERL ON CYGWIN #
MANIFEST ON CYGWIN #
Documentation, Build, Configure, Make, Install, Tests, Compiled Perl
Source, Compiled Module Source, Perl Modules/Scripts, Perl Module
Tests
BUGS ON CYGWIN #
AUTHORS #
HISTORY #
ppeerrllffrreeeebbssdd -- PPeerrll vveerrssiioonn 55 oonn FFrreeeeBBSSDD ssyysstteemmss
DESCRIPTION #
FreeBSD core dumps from readdir_r with ithreads
$^X doesn't always contain a full path in FreeBSD
AUTHOR #
ppeerrllhhaaiikkuu -- PPeerrll vveerrssiioonn 55..1100++ oonn HHaaiikkuu
DESCRIPTION #
BUILD AND INSTALL #
KNOWN PROBLEMS #
CONTACT #
ppeerrllhhppuuxx -- PPeerrll vveerrssiioonn 55 oonn HHeewwlleetttt--PPaacckkaarrdd UUnniixx ((HHPP--UUXX)) ssyysstteemmss
DESCRIPTION #
Using perl as shipped with HP-UX
Using perl from HP's porting centre
Other prebuilt perl binaries
Compiling Perl 5 on HP-UX
PA-RISC #
PA-RISC 1.0 #
PA-RISC 1.1 #
PA-RISC 2.0 #
Portability Between PA-RISC Versions
Itanium Processor Family (IPF) and HP-UX
Itanium, Itanium 2 & Madison 6
HP-UX versions
Building Dynamic Extensions on HP-UX
The HP ANSI C Compiler
The GNU C Compiler
Using Large Files with Perl on HP-UX
Threaded Perl on HP-UX
64-bit Perl on HP-UX
Oracle on HP-UX
GDBM and Threads on HP-UX
NFS filesystems and uuttiimmee(2) on HP-UX
HP-UX Kernel Parameters (maxdsiz) for Compiling Perl
nss_delete core dump from op/pwent or op/grent
error: pasting ")" and "l" does not give a valid preprocessing token
Redeclaration of "sendpath" with a different storage class specifier
Miscellaneous
AUTHOR #
ppeerrllhhuurrdd -- PPeerrll vveerrssiioonn 55 oonn HHuurrdd
DESCRIPTION #
Known Problems with Perl on Hurd
AUTHOR #
ppeerrlliirriixx -- PPeerrll vveerrssiioonn 55 oonn IIrriixx ssyysstteemmss
DESCRIPTION #
Building 32-bit Perl in Irix
Building 64-bit Perl in Irix
About Compiler Versions of Irix
Linker Problems in Irix
Malloc in Irix
Building with threads in Irix
Irix 5.3
AUTHOR #
ppeerrlllliinnuuxx -- PPeerrll vveerrssiioonn 55 oonn LLiinnuuxx ssyysstteemmss
DESCRIPTION #
Deploying Perl on Linux
Experimental Support for Sun Studio Compilers for Linux OS
AUTHOR #
ppeerrllmmaaccoossxx -- PPeerrll uunnddeerr MMaacc OOSS XX
SYNOPSIS #
DESCRIPTION #
Installation Prefix
SDK support
Universal Binary support
64-bit PPC support
libperl and Prebinding
Updating Apple's Perl
Known problems
Cocoa
Starting From Scratch
AUTHOR #
DATE #
ppeerrllooppeennbbssdd -- PPeerrll vveerrssiioonn 55 oonn OOppeennBBSSDD ssyysstteemmss
DESCRIPTION #
OpenBSD core dumps from getprotobyname_r and getservbyname_r with
ithreads
AUTHOR #
ppeerrllooss22 -- PPeerrll uunnddeerr OOSS//22,, DDOOSS,, WWiinn00..33,, WWiinn00..9955 aanndd WWiinnNNTT..
SYNOPSIS #
DESCRIPTION #
Target
Other OSes
Prerequisites
EMX, RSX, HPFS, pdksh
Starting Perl programs under OS/2 (and DOS and...)
Starting OS/2 (and DOS) programs under Perl
Frequently asked questions
"It does not work"
I cannot run external programs
I cannot embed perl into my program, or use _p_e_r_l_._d_l_l from my program.
Is your program EMX-compiled with "-Zmt -Zcrtdll"?, Did you use
ExtUtils::Embed?
"``" and pipe-"open" do not work under DOS.
Cannot start "find.exe "pattern" file"
INSTALLATION #
Automatic binary installation
"PERL_BADLANG", "PERL_BADFREE", _C_o_n_f_i_g_._p_m
Manual binary installation
Perl VIO and PM executables (dynamically linked), Perl_ VIO
executable (statically linked), Executables for Perl utilities,
Main Perl library, Additional Perl modules, Tools to compile Perl
modules, Manpages for Perl and utilities, Manpages for Perl
modules, Source for Perl documentation, Perl manual in _._I_N_F
format, Pdksh
WWaarrnniinngg
Accessing documentation
OS/2 _._I_N_F file
Plain text
Manpages
HTML #
GNU "info" files
_P_D_F files
"LaTeX" docs
BUILD #
The short story
Prerequisites
Getting perl source
Application of the patches
Hand-editing
Making
Testing
A lot of "bad free", Process terminated by SIGTERM/SIGINT,
_o_p_/_f_s_._t, 18, 25, _o_p_/_s_t_a_t_._t
Installing the built perl
"a.out"-style build
Building a binary distribution
Building custom _._E_X_E files
Making executables with a custom collection of statically loaded
extensions
Making executables with a custom search-paths
Build FAQ
Some "/" became "\" in pdksh.
'errno' - unresolved external
Problems with tr or sed
Some problem (forget which ;-)
Library ... not found
Segfault in make
op/sprintf test failure
Specific (mis)features of OS/2 port
"setpriority", "getpriority"
"system()"
"extproc" on the first line
Additional modules:
Prebuilt methods:
"File::Copy::syscopy", "DynaLoader::mod2fname",
"Cwd::current_drive()",
"Cwd::sys_chdir(name)", "Cwd::change_drive(name)",
"Cwd::sys_is_absolute(name)", "Cwd::sys_is_rooted(name)",
"Cwd::sys_is_relative(name)", "Cwd::sys_cwd(name)",
"Cwd::sys_abspath(name, dir)", "Cwd::extLibpath([type])",
"Cwd::extLibpath_set( path [, type ] )",
"OS2::Error(do_harderror,do_exception)",
"OS2::Errors2Drive(drive)", OOSS22::::SSyyssIInnffoo(()), OOSS22::::BBoooottDDrriivvee(()),
"OS2::MorphPM(serve)", "OS2::UnMorphPM(serve)",
"OS2::Serve_Messages(force)", "OS2::Process_Messages(force [,
cnt])", "OS2::_control87(new,mask)", OOSS22::::ggeett__ccoonnttrrooll8877(()),
"OS2::set_control87_em(new=MCW_EM,mask=MCW_EM)",
"OS2::DLLname([how [, \&xsub]])"
Prebuilt variables:
$OS2::emx_rev, $OS2::emx_env, $OS2::os_ver, $OS2::is_aout,
$OS2::can_fork, $OS2::nsyserror
Misfeatures
Modifications
"popen", "tmpnam", "tmpfile", "ctermid", "stat", "mkdir",
"rmdir", "flock"
Identifying DLLs
Centralized management of resources
"HAB", "HMQ", Treating errors reported by OS/2 API,
"CheckOSError(expr)", "CheckWinError(expr)",
"SaveWinError(expr)", "SaveCroakWinError(expr,die,name1,name2)",
"WinError_2_Perl_rc", "FillWinError", "FillOSError(rc)", Loading
DLLs and ordinals in DLLs
Perl flavors
_p_e_r_l_._e_x_e
_p_e_r_l___._e_x_e
_p_e_r_l_____._e_x_e
_p_e_r_l_______._e_x_e
Why strange names?
Why dynamic linking?
Why chimera build?
ENVIRONMENT #
“PERLLIB_PREFIX” #
“PERL_BADLANG” #
“PERL_BADFREE” #
“PERL_SH_DIR” #
“USE_PERL_FLOCK” #
"TMP" or "TEMP"
Evolution
Text-mode filehandles
Priorities
DLL name mangling: pre 5.6.2
DLL name mangling: 5.6.2 and beyond
Global DLLs, specific DLLs, "BEGINLIBPATH" and "ENDLIBPATH", _.
from "LIBPATH"
DLL forwarder generation
Threading
Calls to external programs
Memory allocation
Threads
"COND_WAIT", _o_s_2_._c
BUGS #
AUTHOR #
SEE ALSO #
ppeerrllooss339900 -- bbuuiillddiinngg aanndd iinnssttaalllliinngg PPeerrll ffoorr zz//OOSS ((pprreevviioouussllyy ccaalllleedd
OOSS//339900)) #
SYNOPSIS #
DESCRIPTION #
Tools
Building a 64-bit Dynamic ASCII Perl
Building a 64-bit Dynamic EBCDIC Perl
Setup and utilities for Perl on OS/390
Useful files for trouble-shooting
Build Anomalies with Perl on OS/390
Testing Anomalies with Perl on OS/390
Usage Hints for Perl on z/OS
Modules and Extensions for Perl on z/OS (Static Only)
Running Perl on z/OS
For ASCII Only:, For ASCII or EBCDIC:
AUTHORS #
OTHER SITES #
HISTORY #
ppeerrllooss440000 -- PPeerrll vveerrssiioonn 55 oonn OOSS//440000
DESCRIPTION #
Compiling Perl for OS/400 PASE
Installing Perl in OS/400 PASE
Using Perl in OS/400 PASE
Known Problems
Perl on ILE
AUTHORS #
ppeerrllppllaann99 -- PPllaann 99--ssppeecciiffiicc ddooccuummeennttaattiioonn ffoorr PPeerrll
DESCRIPTION #
Invoking Perl
What's in Plan 9 Perl
What's not in Plan 9 Perl
Perl5 Functions not currently supported in Plan 9 Perl
Signals in Plan 9 Perl
COMPILING AND INSTALLING PERL ON PLAN 9 #
Installing Perl Documentation on Plan 9
BUGS #
Revision date
AUTHOR #
ppeerrllqqnnxx -- PPeerrll vveerrssiioonn 55 oonn QQNNXX
DESCRIPTION #
Required Software for Compiling Perl on QNX4
/bin/sh, ar, nm, cpp, make
Outstanding Issues with Perl on QNX4
QNX auxiliary files
qnx/ar, qnx/cpp
Outstanding issues with perl under QNX6
Cross-compilation
AUTHOR #
ppeerrllrriissccooss -- PPeerrll vveerrssiioonn 55 ffoorr RRIISSCC OOSS
DESCRIPTION #
BUILD #
AUTHOR #
ppeerrllssoollaarriiss -- PPeerrll vveerrssiioonn 55 oonn SSoollaarriiss ssyysstteemmss
DESCRIPTION #
Solaris Version Numbers.
RESOURCES #
Solaris FAQ, Precompiled Binaries, Solaris Documentation
SETTING UP #
File Extraction Problems on Solaris.
Compiler and Related Tools on Solaris.
Environment for Compiling perl on Solaris
RUN CONFIGURE. #
64-bit perl on Solaris.
Threads in perl on Solaris.
Malloc Issues with perl on Solaris.
MAKE PROBLEMS. #
Dynamic Loading Problems With GNU as and GNU ld, ld.so.1: ./perl:
fatal: relocation error:, dlopen: stub interception failed, #error
"No DATAMODEL_NATIVE specified", sh: ar: not found
MAKE TEST #
op/stat.t test 4 in Solaris
nss_delete core dump from op/pwent or op/grent
CROSS-COMPILATION #
PREBUILT BINARIES OF PERL FOR SOLARIS. #
RUNTIME ISSUES FOR PERL ON SOLARIS. #
Limits on Numbers of Open Files on Solaris.
SOLARIS-SPECIFIC MODULES. #
SOLARIS-SPECIFIC PROBLEMS WITH MODULES. #
Proc::ProcessTable on Solaris
BSD::Resource on Solaris
Net::SSLeay on Solaris
SunOS 4.x
AUTHOR #
ppeerrllssyynnoollooggyy -- PPeerrll 55 oonn SSyynnoollooggyy DDSSMM ssyysstteemmss
DESCRIPTION #
Setting up the build environment
Compiling Perl 5
Known problems
Error message "No error definitions found",
_e_x_t_/_D_y_n_a_L_o_a_d_e_r_/_t_/_D_y_n_a_L_o_a_d_e_r_._t
Smoke testing Perl 5
Adding libraries
REVISION #
AUTHOR #
ppeerrllttrruu6644 -- PPeerrll vveerrssiioonn 55 oonn TTrruu6644 ((ffoorrmmeerrllyy kknnoowwnn aass DDiiggiittaall UUNNIIXX ffoorrmmeerrllyy kknnoowwnn aass DDEECC OOSSFF//11)) ssyysstteemmss
DESCRIPTION #
Compiling Perl 5 on Tru64
Using Large Files with Perl on Tru64
Threaded Perl on Tru64
Long Doubles on Tru64
DB_File tests failing on Tru64
64-bit Perl on Tru64
Warnings about floating-point overflow when compiling Perl on Tru64
Testing Perl on Tru64
ext/ODBM_File/odbm Test Failing With Static Builds
Perl Fails Because Of Unresolved Symbol sockatmark
read_cur_obj_info: bad file magic number
AUTHOR #
ppeerrllvvmmss -- VVMMSS--ssppeecciiffiicc ddooccuummeennttaattiioonn ffoorr PPeerrll
DESCRIPTION #
Installation
Organization of Perl Images
Core Images
Perl Extensions
Installing static extensions
Installing dynamic extensions
File specifications
Syntax
Filename Case
Symbolic Links
Wildcard expansion
Pipes
PERL5LIB and PERLLIB
The Perl Forked Debugger
PERL_VMS_EXCEPTION_DEBUG #
Command line
I/O redirection and backgrounding
Command line switches
-i, -S, -u
Perl functions
File tests, backticks, binmode FILEHANDLE, crypt PLAINTEXT, USER,
die, dump, exec LIST, fork, getpwent, getpwnam, getpwuid, gmtime,
kill, qx//, select (system call), stat EXPR, system LIST, time,
times, unlink LIST, utime LIST, waitpid PID,FLAGS
Perl variables
%ENV, CRTL_ENV, CLISYM_[LOCAL], Any other string, $!, $^E, $?, $|
Standard modules with VMS-specific differences
SDBM_File
Revision date
AUTHOR #
ppeerrllvvooss -- PPeerrll ffoorr SSttrraattuuss OOppeennVVOOSS
SYNOPSIS #
BUILDING PERL FOR OPENVOS #
INSTALLING PERL IN OPENVOS #
USING PERL IN OPENVOS #
Restrictions of Perl on OpenVOS
TEST STATUS #
SUPPORT STATUS #
AUTHOR #
LAST UPDATE #
ppeerrllwwiinn3322 -- PPeerrll uunnddeerr WWiinnddoowwss
SYNOPSIS #
DESCRIPTION #
<https://osdn.net/projects/mingw/>, <http://mingw-w64.org>
Setting Up Perl on Windows
Make, Command Shell, Microsoft Visual C++, Microsoft Visual C++
2013-2022 Community Edition, GCC, Intel C++ Compiler
Building
Testing Perl on Windows
Installation of Perl on Windows
Usage Hints for Perl on Windows
Environment Variables, File Globbing, Using perl from the command
line, Building Extensions, Command-line Wildcard Expansion, Notes
on 64-bit Windows
Running Perl Scripts
Miscellaneous Things
BUGS AND CAVEATS #
ACKNOWLEDGEMENTS #
AUTHORS #
Gary Ng <71564.1743@CompuServe.COM>, Gurusamy Sarathy
<gsar@activestate.com>, Nick Ing-Simmons <nick@ing-simmons.net>, Jan
Dubois <jand@activestate.com>, Steve Hay <steve.m.hay@googlemail.com>
SEE ALSO #
HISTORY #
ppeerrllbboooott -- LLiinnkkss ttoo iinnffoorrmmaattiioonn oonn oobbjjeecctt--oorriieenntteedd pprrooggrraammmmiinngg iinn PPeerrll
DESCRIPTION #
ppeerrllbboott -- LLiinnkkss ttoo iinnffoorrmmaattiioonn oonn oobbjjeecctt--oorriieenntteedd pprrooggrraammmmiinngg iinn PPeerrll
DESCRIPTION #
ppeerrllrreeppoossiittoorryy -- LLiinnkkss ttoo ccuurrrreenntt iinnffoorrmmaattiioonn oonn tthhee PPeerrll ssoouurrccee rreeppoossiittoorryy
DESCRIPTION #
ppeerrllttooddoo -- LLiinnkk ttoo tthhee PPeerrll ttoo--ddoo lliisstt
DESCRIPTION #
ppeerrllttoooocc -- LLiinnkkss ttoo iinnffoorrmmaattiioonn oonn oobbjjeecctt--oorriieenntteedd pprrooggrraammmmiinngg iinn PPeerrll
DESCRIPTION #
ppeerrllttoooott -- LLiinnkkss ttoo iinnffoorrmmaattiioonn oonn oobbjjeecctt--oorriieenntteedd pprrooggrraammmmiinngg iinn PPeerrll
DESCRIPTION #
PPRRAAGGMMAA DDOOCCUUMMEENNTTAATTIIOONN #
aattttrriibbuutteess -- ggeett//sseett ssuubbrroouuttiinnee oorr vvaarriiaabbllee aattttrriibbuutteess
SYNOPSIS #
DESCRIPTION #
What "import" does
Built-in Attributes
lvalue, method, prototype(..), const, shared
Available Subroutines
get, reftype
Package-specific Attribute Handling
FETCH__t_y_p_e_ATTRIBUTES, MODIFY__t_y_p_e_ATTRIBUTES
Syntax of Attribute Lists
EXPORTS #
Default exports
Available exports
Export tags defined
EXAMPLES #
MORE EXAMPLES #
SEE ALSO #
aauuttooddiiee -- RReeppllaaccee ffuunnccttiioonnss wwiitthh oonneess tthhaatt ssuucccceeeedd oorr ddiiee wwiitthh lleexxiiccaall ssccooppee
SYNOPSIS #
DESCRIPTION #
EXCEPTIONS #
CATEGORIES #
FUNCTION SPECIFIC NOTES #
print
flock
system/exec
GOTCHAS #
DIAGNOSTICS #
:void cannot be used with lexical scope, No user hints defined for %s
Tips and Tricks
Importing autodie into another namespace than "caller"
BUGS #
autodie and string eval
REPORTING BUGS #
FEEDBACK #
AUTHOR #
LICENSE #
SEE ALSO #
ACKNOWLEDGEMENTS #
aauuttooddiiee::::SSccooppee::::GGuuaarrdd -- WWrraappppeerr ccllaassss ffoorr ccaalllliinngg ssuubbss aatt eenndd ooff ssccooppee
SYNOPSIS #
DESCRIPTION #
Methods
AUTHOR #
LICENSE #
aauuttooddiiee::::SSccooppee::::GGuuaarrddSSttaacckk -- HHooookk ssttaacckk ffoorr mmaannaaggiinngg ssccooppeess vviiaa %%^^HH
SYNOPSIS #
DESCRIPTION #
Methods
AUTHOR #
LICENSE #
aauuttooddiiee::::UUttiill -- IInntteerrnnaall UUttiilliittyy ssuubbrroouuttiinneess ffoorr aauuttooddiiee aanndd FFaattaall
SYNOPSIS #
DESCRIPTION #
Methods
AUTHOR #
LICENSE #
aauuttooddiiee::::eexxcceeppttiioonn -- EExxcceeppttiioonnss ffrroomm aauuttooddyyiinngg ffuunnccttiioonnss..
SYNOPSIS #
DESCRIPTION #
Common Methods
Advanced methods
SEE ALSO #
LICENSE #
AUTHOR #
aauuttooddiiee::::eexxcceeppttiioonn::::ssyysstteemm -- EExxcceeppttiioonnss ffrroomm aauuttooddyyiinngg ssyysstteemm(())..
SYNOPSIS #
DESCRIPTION #
stringify
LICENSE #
AUTHOR #
aauuttooddiiee::::hhiinnttss -- PPrroovviiddee hhiinnttss aabboouutt uusseerr ssuubbrroouuttiinneess ttoo aauuttooddiiee
SYNOPSIS #
DESCRIPTION #
Introduction
What are hints?
Example hints
Manually setting hints from within your program
Adding hints to your module
Insisting on hints
Diagnostics
Attempts to set_hints_for unidentifiable subroutine, fail hints
cannot be provided with either scalar or list hints for %s, %s hint
missing for %s
ACKNOWLEDGEMENTS #
AUTHOR #
LICENSE #
SEE ALSO #
aauuttooddiiee::::sskkiipp -- SSkkiipp aa ppaacckkaaggee wwhheenn tthhrroowwiinngg aauuttooddiiee eexxcceeppttiioonnss
SYNPOSIS #
DESCRIPTION #
AUTHOR #
LICENSE #
SEE ALSO #
aauuttoouussee -- ppoossttppoonnee llooaadd ooff mmoodduulleess uunnttiill aa ffuunnccttiioonn iiss uusseedd
SYNOPSIS #
DESCRIPTION #
WARNING #
AUTHOR #
SEE ALSO #
bbaassee -- EEssttaabblliisshh aann IISSAA rreellaattiioonnsshhiipp wwiitthh bbaassee ccllaasssseess aatt ccoommppiillee ttiimmee
SYNOPSIS #
DESCRIPTION #
DIAGNOSTICS #
Base class package "%s" is empty, Class 'Foo' tried to inherit from
itself
HISTORY #
CAVEATS #
SEE ALSO #
bbiiggffllooaatt -- ttrraannssppaarreenntt bbiigg ffllooaattiinngg ppooiinntt nnuummbbeerr ssuuppppoorrtt ffoorr PPeerrll
SYNOPSIS #
DESCRIPTION #
Options
a or accuracy, p or precision, t or trace, l, lib, try, or only,
hex, oct, v or version
Math Library
Method calls
Methods
iinnff(()), NNaaNN(()), e, PI, bbeexxpp(()), bbppii(()), aaccccuurraaccyy(()), pprreecciissiioonn(()),
rroouunndd__mmooddee(()), ddiivv__ssccaallee(()), uuppggrraaddee(()), ddoowwnnggrraaddee(()), iinn__eeffffeecctt(())
CAVEATS #
Hexadecimal, octal, and binary floating point literals, Operator vs
literal overloading, Ranges, iinn__eeffffeecctt(()), hheexx(())/oocctt(())
EXAMPLES #
BUGS #
SUPPORT #
GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix,
CPAN Ratings
LICENSE #
SEE ALSO #
AUTHORS #
bbiiggiinntt -- ttrraannssppaarreenntt bbiigg iinntteeggeerr ssuuppppoorrtt ffoorr PPeerrll
SYNOPSIS #
DESCRIPTION #
use integer vs. use bigint
Options
a or accuracy, p or precision, t or trace, l, lib, try, or only,
hex, oct, v or version
Math Library
Method calls
Methods
iinnff(()), NNaaNN(()), e, PI, bbeexxpp(()), bbppii(()), aaccccuurraaccyy(()), pprreecciissiioonn(()),
rroouunndd__mmooddee(()), ddiivv__ssccaallee(()), iinn__eeffffeecctt(())
CAVEATS #
Hexadecimal, octal, and binary floating point literals, Operator vs
literal overloading, Ranges, iinn__eeffffeecctt(()), hheexx(())/oocctt(())
EXAMPLES #
BUGS #
SUPPORT #
GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix,
CPAN Ratings
LICENSE #
SEE ALSO #
AUTHORS #
bbiiggnnuumm -- ttrraannssppaarreenntt bbiigg nnuummbbeerr ssuuppppoorrtt ffoorr PPeerrll
SYNOPSIS #
DESCRIPTION #
Literal numeric constants
Upgrading and downgrading
Overloading
Options
a or accuracy, p or precision, l, lib, try, or only, hex, oct, v
or version
Math Library
Method calls
Methods
iinnff(()), NNaaNN(()), e, PI, bbeexxpp(()), bbppii(()), aaccccuurraaccyy(()), pprreecciissiioonn(()),
rroouunndd__mmooddee(()), ddiivv__ssccaallee(()), uuppggrraaddee(()), ddoowwnnggrraaddee(()), iinn__eeffffeecctt(())
CAVEATS #
The uuppggrraaddee(()) and ddoowwnnggrraaddee(()) methods, Hexadecimal, octal, and binary
floating point literals, Operator vs literal overloading, Ranges,
iinn__eeffffeecctt(()), hheexx(())/oocctt(())
EXAMPLES #
BUGS #
SUPPORT #
GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix,
CPAN Ratings
LICENSE #
SEE ALSO #
AUTHORS #
bbiiggrraatt -- ttrraannssppaarreenntt bbiigg rraattiioonnaall nnuummbbeerr ssuuppppoorrtt ffoorr PPeerrll
SYNOPSIS #
DESCRIPTION #
Options
a or accuracy, p or precision, t or trace, l, lib, try, or only,
hex, oct, v or version
Math Library
Method calls
Methods
iinnff(()), NNaaNN(()), e, PI, bbeexxpp(()), bbppii(()), aaccccuurraaccyy(()), pprreecciissiioonn(()),
rroouunndd__mmooddee(()), ddiivv__ssccaallee(()), iinn__eeffffeecctt(())
CAVEATS #
Hexadecimal, octal, and binary floating point literals, Operator vs
literal overloading, Ranges, iinn__eeffffeecctt(()), hheexx(())/oocctt(())
EXAMPLES #
BUGS #
SUPPORT #
GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix,
CPAN Ratings
LICENSE #
SEE ALSO #
AUTHORS #
bblliibb -- UUssee MMaakkeeMMaakkeerr’’ss uunniinnssttaalllleedd vveerrssiioonn ooff aa ppaacckkaaggee
SYNOPSIS #
DESCRIPTION #
BUGS #
AUTHOR #
bbuuiillttiinn -- PPeerrll pprraaggmmaa ttoo iimmppoorrtt bbuuiilltt--iinn uuttiilliittyy ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
Lexical Import
FUNCTIONS #
true
false
is_bool
weaken
unweaken
is_weak
blessed
refaddr
reftype
created_as_string
created_as_number
ceil
floor
indexed
trim
SEE ALSO #
bbyytteess -- PPeerrll pprraaggmmaa ttoo eexxppoossee tthhee iinnddiivviidduuaall bbyytteess ooff cchhaarraacctteerrss
NOTICE #
SYNOPSIS #
DESCRIPTION #
LIMITATIONS #
SEE ALSO #
cchhaarrnnaammeess -- aacccceessss ttoo UUnniiccooddee cchhaarraacctteerr nnaammeess aanndd nnaammeedd cchhaarraacctteerr sseeqquueenncceess;; aallssoo ddeeffiinnee cchhaarraacctteerr nnaammeess
SYNOPSIS #
DESCRIPTION #
LOOSE MATCHES #
ALIASES #
CUSTOM ALIASES #
charnames::string_vianame(_n_a_m_e)
charnames::vianame(_n_a_m_e)
charnames::viacode(_c_o_d_e)
CUSTOM TRANSLATORS #
BUGS #
ccoonnssttaanntt -- PPeerrll pprraaggmmaa ttoo ddeeccllaarree ccoonnssttaannttss
SYNOPSIS #
DESCRIPTION #
NOTES #
List constants
Defining multiple constants at once
Magic constants
TECHNICAL NOTES #
CAVEATS #
SEE ALSO #
BUGS #
AUTHORS #
COPYRIGHT & LICENSE #
ddeepprreeccaattee -- PPeerrll pprraaggmmaa ffoorr ddeepprreeccaattiinngg tthhee iinncclluussiioonn ooff aa mmoodduullee iinn ccoorree
SYNOPSIS #
DESCRIPTION #
Important Caveat
EXPORT #
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
ddiiaaggnnoossttiiccss,, ssppllaaiinn -- pprroodduuccee vveerrbboossee wwaarrnniinngg ddiiaaggnnoossttiiccss
SYNOPSIS #
DESCRIPTION #
The "diagnostics" Pragma
The _s_p_l_a_i_n Program
EXAMPLES #
INTERNALS #
BUGS #
AUTHOR #
eennccooddiinngg -- aalllloowwss yyoouu ttoo wwrriittee yyoouurr ssccrriipptt iinn nnoonn--AASSCCIIII aanndd nnoonn--UUTTFF--88
WARNING #
SYNOPSIS #
DESCRIPTION #
"use encoding ['_E_N_C_N_A_M_E'] ;", "use encoding _E_N_C_N_A_M_E, Filter=>1;", "no
encoding;"
OPTIONS #
Setting "STDIN" and/or "STDOUT" individually
The ":locale" sub-pragma
CAVEATS #
SIDE EFFECTS #
DO NOT MIX MULTIPLE ENCODINGS #
Prior to Perl v5.22
Prior to Encode version 1.87
Prior to Perl v5.8.1
"NON-EUC" doublebyte encodings, "tr///", Legend of characters
above
EXAMPLE - Greekperl
BUGS #
Thread safety, Can't be used by more than one module in a single
program, Other modules using "STDIN" and "STDOUT" get the encoded
stream, literals in regex that are longer than 127 bytes, EBCDIC,
"format", See also "CAVEATS"
HISTORY #
SEE ALSO #
eennccooddiinngg::::wwaarrnniinnggss -- WWaarrnn oonn iimmpplliicciitt eennccooddiinngg ccoonnvveerrssiioonnss
VERSION #
NOTICE #
SYNOPSIS #
DESCRIPTION #
Overview of the problem
Detecting the problem
Solving the problem
Upgrade both sides to unicode-strings, Downgrade both sides to
byte-strings, Specify the encoding for implicit byte-string
upgrading, PerlIO layers for SSTTDDIINN and SSTTDDOOUUTT, Literal
conversions, Implicit upgrading for byte-strings
CAVEATS #
SEE ALSO #
AUTHORS #
COPYRIGHT #
eexxppeerriimmeennttaall -- EExxppeerriimmeennttaall ffeeaattuurreess mmaaddee eeaassyy
VERSION #
SYNOPSIS #
DESCRIPTION #
"args_array_with_signatures" - allow @_ to be used in signatured
subs, "array_base" - allow the use of $[ to change the starting index
of @array, "autoderef" - allow push, each, keys, and other built-ins
on references, "bitwise" - allow the new stringwise bit operators,
"builtin" - allow the use of the functions in the builtin::
namespace, "const_attr" - allow the :const attribute on subs,
"declared_refs" - enables aliasing via assignment to references,
"defer" - enables the use of defer blocks, "for_list" - allows
iterating over multiple values at a time with "for", "isa" - allow
the use of the "isa" infix operator, "lexical_topic" - allow the use
of lexical $_ via "my $_", "lexical_subs" - allow the use of lexical
subroutines, "postderef" - allow the use of postfix dereferencing
expressions, "postderef_qq" - allow the use of postfix dereferencing
expressions inside interpolating strings, "re_strict" - enables
strict mode in regular expressions, "refaliasing" - allow aliasing
via "\$x = \$y", "regex_sets" - allow extended bracketed character
classes in regexps, "signatures" - allow subroutine signatures (for
named arguments), "smartmatch" - allow the use of "~~", "switch" -
allow the use of "~~", given, and when, "try" - allow the use of
"try" and "catch", "win32_perlio" - allows the use of the :win32 IO
layer
Ordering matters
Disclaimer
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
ffeeaattuurree -- PPeerrll pprraaggmmaa ttoo eennaabbllee nneeww ffeeaattuurreess
SYNOPSIS #
DESCRIPTION #
Lexical effect
"no feature"
AVAILABLE FEATURES #
The 'say' feature
The 'state' feature
The 'switch' feature
The 'unicode_strings' feature
The 'unicode_eval' and 'evalbytes' features
The 'current_sub' feature
The 'array_base' feature
The 'fc' feature
The 'lexical_subs' feature
The 'postderef' and 'postderef_qq' features
The 'signatures' feature
The 'refaliasing' feature
The 'bitwise' feature
The 'declared_refs' feature
The 'isa' feature
The 'indirect' feature
The 'multidimensional' feature
The 'bareword_filehandles' feature.
The 'try' feature.
The 'defer' feature
The 'extra_paired_delimiters' feature
FEATURE BUNDLES #
IMPLICIT LOADING #
CHECKING FEATURES #
feature_enabled($feature), feature_enabled($feature, $depth),
ffeeaattuurreess__eennaabblleedd(()), features_enabled($depth), ffeeaattuurree__bbuunnddllee(()),
feature_bundle($depth)
ffiieellddss -- ccoommppiillee--ttiimmee ccllaassss ffiieellddss
SYNOPSIS #
DESCRIPTION #
new, phash
SEE ALSO #
ffiilleetteesstt -- PPeerrll pprraaggmmaa ttoo ccoonnttrrooll tthhee ffiilleetteesstt ppeerrmmiissssiioonn ooppeerraattoorrss
SYNOPSIS #
DESCRIPTION #
Consider this carefully
The "access" sub-pragma
Limitation with regard to "_"
iiff -- “"uussee"” aa PPeerrll mmoodduullee iiff aa ccoonnddiittiioonn hhoollddss
SYNOPSIS #
DESCRIPTION #
"use if"
"no if"
BUGS #
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENCE #
iinntteeggeerr -- PPeerrll pprraaggmmaa ttoo uussee iinntteeggeerr aarriitthhmmeettiicc iinnsstteeaadd ooff ffllooaattiinngg ppooiinntt
SYNOPSIS #
DESCRIPTION #
lleessss -- ppeerrll pprraaggmmaa ttoo rreeqquueesstt lleessss ooff ssoommeetthhiinngg
SYNOPSIS #
DESCRIPTION #
FOR MODULE AUTHORS #
"BOOLEAN = less->of( FEATURE )"
"FEATURES = less->of()"
CAVEATS #
This probably does nothing, This works only on 5.10+
lliibb -- mmaanniippuullaattee @@IINNCC aatt ccoommppiillee ttiimmee
SYNOPSIS #
DESCRIPTION #
Adding directories to @INC
Deleting directories from @INC
Restoring original @INC
CAVEATS #
NOTES #
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
llooccaallee -- PPeerrll pprraaggmmaa ttoo uussee oorr aavvooiidd PPOOSSIIXX llooccaalleess ffoorr bbuuiilltt--iinn ooppeerraattiioonnss
WARNING #
SYNOPSIS #
DESCRIPTION #
mmrroo -- MMeetthhoodd RReessoolluuttiioonn OOrrddeerr
SYNOPSIS #
DESCRIPTION #
OVERVIEW #
The C3 MRO
What is C3?
How does C3 work
Functions
mro::get_linear_isa($classname[, $type])
mro::set_mro ($classname, $type)
mro::get_mro($classname)
mro::get_isarev($classname)
mro::is_universal($classname)
mmrroo::::iinnvvaalliiddaattee__aallll__mmeetthhoodd__ccaacchheess(())
mro::method_changed_in($classname)
mro::get_pkg_gen($classname)
next::method
next::can
maybe::next::method
SEE ALSO #
The original Dylan paper
"/citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.19.3910&rep=rep1
&type=pdf" in http:
Python 2.3 MRO
<https://www.python.org/download/releases/2.3/mro/>
Class::C3
Class::C3
AUTHOR #
ookk -- AAlltteerrnnaattiivvee ttoo TTeesstt::::MMoorree::::uussee__ookk
SYNOPSIS #
DESCRIPTION #
CC0 1.0 Universal
ooppeenn -- ppeerrll pprraaggmmaa ttoo sseett ddeeffaauulltt PPeerrllIIOO llaayyeerrss ffoorr iinnppuutt aanndd oouuttppuutt
SYNOPSIS #
DESCRIPTION #
IMPLEMENTATION DETAILS #
SEE ALSO #
ooppss -- PPeerrll pprraaggmmaa ttoo rreessttrriicctt uunnssaaffee ooppeerraattiioonnss wwhheenn ccoommppiilliinngg
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
oovveerrllooaadd -- PPaacckkaaggee ffoorr oovveerrllooaaddiinngg PPeerrll ooppeerraattiioonnss
SYNOPSIS #
DESCRIPTION #
Fundamentals
Overloadable Operations
"not", "neg", "++", "--", _A_s_s_i_g_n_m_e_n_t_s, _N_o_n_-_m_u_t_a_t_o_r_s _w_i_t_h _a
_m_u_t_a_t_o_r _v_a_r_i_a_n_t, "int", _S_t_r_i_n_g_, _n_u_m_e_r_i_c_, _b_o_o_l_e_a_n_, _a_n_d _r_e_g_e_x_p
_c_o_n_v_e_r_s_i_o_n_s, _I_t_e_r_a_t_i_o_n, _F_i_l_e _t_e_s_t_s, _M_a_t_c_h_i_n_g, _D_e_r_e_f_e_r_e_n_c_i_n_g,
_S_p_e_c_i_a_l
Magic Autogeneration
Special Keys for "use overload"
defined, but FALSE, "undef", TRUE
How Perl Chooses an Operator Implementation
Losing Overloading
Inheritance and Overloading
Method names in the "use overload" directive, Overloading of an
operation is inherited by derived classes
Run-time Overloading
Public Functions
overload::StrVal(arg), overload::Overloaded(arg),
overload::Method(obj,op)
Overloading Constants
integer, float, binary, q, qr
IMPLEMENTATION #
COOKBOOK #
Two-face Scalars
Two-face References
Symbolic Calculator
_R_e_a_l_l_y Symbolic Calculator
AUTHOR #
SEE ALSO #
DIAGNOSTICS #
Odd number of arguments for overload::constant, '%s' is not an
overloadable type, '%s' is not a code reference, overload arg '%s' is
invalid
BUGS AND PITFALLS #
oovveerrllooaaddiinngg -- ppeerrll pprraaggmmaa ttoo lleexxiiccaallllyy ccoonnttrrooll oovveerrllooaaddiinngg
SYNOPSIS #
DESCRIPTION #
"no overloading", "no overloading @ops", "use overloading", "use
overloading @ops"
ppaarreenntt -- EEssttaabblliisshh aann IISSAA rreellaattiioonnsshhiipp wwiitthh bbaassee ccllaasssseess aatt ccoommppiillee ttiimmee
SYNOPSIS #
DESCRIPTION #
HISTORY #
CAVEATS #
SEE ALSO #
base, parent::versioned
AUTHORS AND CONTRIBUTORS #
MAINTAINER #
LICENSE #
rree -- PPeerrll pprraaggmmaa ttoo aalltteerr rreegguullaarr eexxpprreessssiioonn bbeehhaavviioouurr
SYNOPSIS #
DESCRIPTION #
'taint' mode
'eval' mode
'strict' mode
'/flags' mode
'debug' mode
'Debug' mode
Compile related options, COMPILE, PARSE, OPTIMISE, TRIEC, DUMP,
FLAGS, TEST, Execute related options, EXECUTE, MATCH, TRIEE,
INTUIT, Extra debugging options, EXTRA, BUFFERS, TRIEM, STATE,
STACK, GPOS, OPTIMISEM, DUMP_PRE_OPTIMIZE, WILDCARD, Other useful
flags, ALL, All, MORE, More
Exportable Functions
is_regexp($ref), regexp_pattern($ref), regname($name,$all),
regnames($all), rreeggnnaammeess__ccoouunntt(()), regmust($ref),
optimization($ref), minlen, minlenret, gofs, noscan, isall,
anchor SBOL, anchor MBOL, anchor GPOS, skip, implicit,
anchored/floating, anchored utf8/floating utf8, anchored min
offset/floating min offset, anchored max offset/floating max
offset, anchored end shift/floating end shift, checking, stclass
SEE ALSO #
ssiiggttrraapp -- PPeerrll pprraaggmmaa ttoo eennaabbllee ssiimmppllee ssiiggnnaall hhaannddlliinngg
SYNOPSIS #
DESCRIPTION #
OPTIONS #
SIGNAL HANDLERS #
ssttaacckk--ttrraaccee, ddiiee, hhaannddlleerr _y_o_u_r_-_h_a_n_d_l_e_r
SIGNAL LISTS #
nnoorrmmaall--ssiiggnnaallss, eerrrroorr--ssiiggnnaallss, oolldd--iinntteerrffaaccee--ssiiggnnaallss
OTHER #
uunnttrraappppeedd, aannyy, _s_i_g_n_a_l, _n_u_m_b_e_r
EXAMPLES #
ssoorrtt -- ppeerrll pprraaggmmaa ttoo ccoonnttrrooll ssoorrtt(()) bbeehhaavviioouurr
SYNOPSIS #
DESCRIPTION #
CAVEATS #
ssttrriicctt -- PPeerrll pprraaggmmaa ttoo rreessttrriicctt uunnssaaffee ccoonnssttrruuccttss
SYNOPSIS #
DESCRIPTION #
"strict refs", "strict vars", "strict subs"
HISTORY #
ssuubbss -- PPeerrll pprraaggmmaa ttoo pprreeddeeccllaarree ssuubbrroouuttiinnee nnaammeess
SYNOPSIS #
DESCRIPTION #
tthhrreeaaddss -- PPeerrll iinntteerrpprreetteerr--bbaasseedd tthhrreeaaddss
VERSION #
WARNING #
SYNOPSIS #
DESCRIPTION #
$thr = threads->create(FUNCTION, ARGS), $thr->jjooiinn(()), $thr->ddeettaacchh(()),
threads->ddeettaacchh(()), threads->sseellff(()), $thr->ttiidd(()), threads->ttiidd(()),
"$thr", threads->object($tid), threads->yyiieelldd(()), threads->lliisstt(()),
threads->list(threads::all), threads->list(threads::running),
threads->list(threads::joinable), $thr1->equal($thr2), async BLOCK;,
$thr->eerrrroorr(()), $thr->__hhaannddllee(()), threads->__hhaannddllee(())
EXITING A THREAD #
threads->eexxiitt(()), threads->exit(status), ddiiee(()), exit(status), use
threads 'exit' => 'threads_only', threads->create({'exit' =>
'thread_only'}, ...), $thr->set_thread_exit_only(boolean),
threads->set_thread_exit_only(boolean)
THREAD STATE #
$thr->iiss__rruunnnniinngg(()), $thr->iiss__jjooiinnaabbllee(()), $thr->iiss__ddeettaacchheedd(()),
threads->iiss__ddeettaacchheedd(())
THREAD CONTEXT #
Explicit context
Implicit context
$thr->wwaannttaarrrraayy(())
threads->wwaannttaarrrraayy(())
THREAD STACK SIZE #
threads->ggeett__ssttaacckk__ssiizzee(());, $size = $thr->ggeett__ssttaacckk__ssiizzee(());,
$old_size = threads->set_stack_size($new_size);, use threads
('stack_size' => VALUE);, $ENV{'PERL5_ITHREADS_STACK_SIZE'},
threads->create({'stack_size' => VALUE}, FUNCTION, ARGS), $thr2 =
$thr1->create(FUNCTION, ARGS)
THREAD SIGNALLING #
$thr->kill('SIG...');
WARNINGS #
Perl exited with active threads:, Thread creation failed:
pthread_create returned #, Thread # terminated abnormally: .., Using
minimum thread stack size of #, Thread creation failed:
pthread_attr_setstacksize(_S_I_Z_E) returned 22
ERRORS #
This Perl not built to support threads, Cannot change stack size of
an existing thread, Cannot signal threads without safe signals,
Unrecognized signal name: ..
BUGS AND LIMITATIONS #
Thread-safe modules, Using non-thread-safe modules, Memory
consumption, Current working directory, Locales, Environment
variables, Catching signals, Parent-child threads, Unsafe signals,
Perl has been built with "PERL_OLD_SIGNALS" (see "perl -V"), The
environment variable "PERL_SIGNALS" is set to "unsafe" (see
"PERL_SIGNALS" in perlrun), The module Perl::Unsafe::Signals is used,
Identity of objects returned from threads, Returning blessed objects
from threads, END blocks in threads, Open directory handles, Detached
threads and global destruction, Perl Bugs and the CPAN Version of
threads
REQUIREMENTS #
SEE ALSO #
AUTHOR #
LICENSE #
ACKNOWLEDGEMENTS #
tthhrreeaaddss::::sshhaarreedd -- PPeerrll eexxtteennssiioonn ffoorr sshhaarriinngg ddaattaa ssttrruuccttuurreess bbeettwweeeenn tthhrreeaaddss
VERSION #
SYNOPSIS #
DESCRIPTION #
EXPORT #
FUNCTIONS #
share VARIABLE, shared_clone REF, is_shared VARIABLE, lock VARIABLE,
cond_wait VARIABLE, cond_wait CONDVAR, LOCKVAR, cond_timedwait
VARIABLE, ABS_TIMEOUT, cond_timedwait CONDVAR, ABS_TIMEOUT, LOCKVAR,
cond_signal VARIABLE, cond_broadcast VARIABLE
OBJECTS #
NOTES #
WARNINGS #
ccoonndd__bbrrooaaddccaasstt(()) called on unlocked variable, ccoonndd__ssiiggnnaall(()) called on
unlocked variable
BUGS AND LIMITATIONS #
SEE ALSO #
AUTHOR #
LICENSE #
uunniiccoorree::::NNaammee,, ==ccuutt uuttff88 -- PPeerrll pprraaggmmaa ttoo eennaabbllee//ddiissaabbllee UUTTFF--88 ((oorr UUTTFF--EEBBCCDDIICC)) iinn ssoouurrccee ccooddee
SYNOPSIS #
DESCRIPTION #
Utility functions
"$num_octets = utf8::upgrade($string)", "$success =
utf8::downgrade($string[, $fail_ok])", "utf8::encode($string)",
"$success = utf8::decode($string)", "$unicode =
utf8::native_to_unicode($code_point)", "$native =
utf8::unicode_to_native($code_point)", "$flag =
utf8::is_utf8($string)", "$flag = utf8::valid($string)"
BUGS #
SEE ALSO #
vvaarrss -- PPeerrll pprraaggmmaa ttoo pprreeddeeccllaarree gglloobbaall vvaarriiaabbllee nnaammeess
SYNOPSIS #
DESCRIPTION #
vveerrssiioonn -- PPeerrll eexxtteennssiioonn ffoorr VVeerrssiioonn OObbjjeeccttss
SYNOPSIS #
DESCRIPTION #
TYPES OF VERSION OBJECTS #
Decimal Versions, Dotted Decimal Versions
DECLARING VERSIONS #
How to convert a module from decimal to dotted-decimal
How to "declare()" a dotted-decimal version
PARSING AND COMPARING VERSIONS #
How to "parse()" a version
How to check for a legal version string
"is_lax()", "is_strict()"
How to compare version objects
OBJECT METHODS #
iiss__aallpphhaa(())
iiss__qqvv(())
nnoorrmmaall(())
nnuummiiffyy(())
ssttrriinnggiiffyy(())
EXPORTED FUNCTIONS #
qqvv(())
iiss__llaaxx(())
iiss__ssttrriicctt(())
AUTHOR #
SEE ALSO #
vveerrssiioonn::::IInntteerrnnaallss -- PPeerrll eexxtteennssiioonn ffoorr VVeerrssiioonn OObbjjeeccttss
DESCRIPTION #
WHAT IS A VERSION? #
Decimal versions, Dotted-Decimal versions
Decimal Versions
Dotted-Decimal Versions
Alpha Versions
Regular Expressions for Version Parsing
$version::LAX, $version::STRICT, v1.234.5
IMPLEMENTATION DETAILS #
Equivalence between Decimal and Dotted-Decimal Versions
Quoting Rules
What about v-strings?
Version Object Internals
original, qv, alpha, version
Replacement UNIVERSAL::VERSION
USAGE DETAILS #
Using modules that use version.pm
Decimal versions always work, Dotted-Decimal version work
sometimes
Object Methods
nneeww(()), qqvv(()), Normal Form, Numification, Stringification,
Comparison operators, Logical Operators
AUTHOR #
SEE ALSO #
vvmmssiisshh -- PPeerrll pprraaggmmaa ttoo ccoonnttrrooll VVMMSS--ssppeecciiffiicc llaanngguuaaggee ffeeaattuurreess
SYNOPSIS #
DESCRIPTION #
"vmsish status", "vmsish exit", "vmsish time", "vmsish hushed"
wwaarrnniinnggss -- PPeerrll pprraaggmmaa ttoo ccoonnttrrooll ooppttiioonnaall wwaarrnniinnggss
SYNOPSIS #
DESCRIPTION #
Default Warnings and Optional Warnings
"Negative warnings"
What's wrong with --ww and $^W
Controlling Warnings from the Command Line
--ww , --WW , --XX
Backward Compatibility
Category Hierarchy
Fatal Warnings
Reporting Warnings from a Module
FUNCTIONS #
use warnings::register, wwaarrnniinnggss::::eennaabblleedd(()),
warnings::enabled($category), warnings::enabled($object),
warnings::enabled_at_level($category, $level),
wwaarrnniinnggss::::ffaattaall__eennaabblleedd(()), warnings::fatal_enabled($category),
warnings::fatal_enabled($object),
warnings::fatal_enabled_at_level($category, $level),
warnings::warn($message), warnings::warn($category, $message),
warnings::warn($object, $message), warnings::warn_at_level($category,
$level, $message), warnings::warnif($message),
warnings::warnif($category, $message), warnings::warnif($object,
$message), warnings::warnif_at_level($category, $level, $message),
warnings::register_categories(@names)
wwaarrnniinnggss::::rreeggiisstteerr -- wwaarrnniinnggss iimmppoorrtt ffuunnccttiioonn
SYNOPSIS #
DESCRIPTION #
MMOODDUULLEE DDOOCCUUMMEENNTTAATTIIOONN #
AAnnyyDDBBMM__FFiillee -- pprroovviiddee ffrraammeewwoorrkk ffoorr mmuullttiippllee DDBBMMss
SYNOPSIS #
DESCRIPTION #
DBM Comparisons
[0], [1], [2], [3]
SEE ALSO #
AApppp::::CCppaann -- eeaassiillyy iinntteerraacctt wwiitthh CCPPAANN ffrroomm tthhee ccoommmmaanndd lliinnee
SYNOPSIS #
DESCRIPTION #
Options
-a, -A module [ module ... ], -c module, -C module [ module ...
], -D module [ module ... ], -f, -F, -g module [ module ... ], -G
module [ module ... ], -h, -i module [ module ... ], -I, -j
Config.pm, -J, -l, -L author [ author ... ], -m, -M
mirror1,mirror2,.., -n, -O, -p, -P, -r, -s, -t module [ module
... ], -T, -u, -v, -V, -w, -x module [ module ... ], -_X
Examples
Environment variables
NONINTERACTIVE_TESTING, PERL_MM_USE_DEFAULT, CPAN_OPTS, #
CPANSCRIPT_LOGLEVEL, GIT_COMMAND #
Methods
run( ARGS )
EXIT VALUES #
TO DO #
BUGS #
SEE ALSO #
SOURCE AVAILABILITY #
CREDITS #
AUTHOR #
COPYRIGHT #
AApppp::::PPrroovvee -- IImmpplleemmeennttss tthhee “"pprroovvee"” ccoommmmaanndd..
VERSION #
DESCRIPTION #
SYNOPSIS #
METHODS #
Class Methods
Attributes
"archive", "argv", "backwards", "blib", "color", "directives", "dry",
"exec", "extensions", "failures", "comments", "formatter", "harness",
"ignore_exit", "includes", "jobs", "lib", "merge", "modules",
"parse", "plugins", "quiet", "really_quiet", "recurse", "rules",
"show_count", "show_help", "show_man", "show_version", "shuffle",
"state", "state_class", "taint_fail", "taint_warn", "test_args",
"timer", "verbose", "warnings_fail", "warnings_warn", "tapversion",
"trap"
PLUGINS #
Sample Plugin
SEE ALSO #
AApppp::::PPrroovvee::::SSttaattee -- SSttaattee ssttoorraaggee ffoorr tthhee “"pprroovvee"” ccoommmmaanndd..
VERSION #
DESCRIPTION #
SYNOPSIS #
METHODS #
Class Methods
"store", "extensions" (optional), "result_class" (optional)
"result_class"
"extensions"
"results"
"commit"
Instance Methods
"last", "failed", "passed", "all", "hot", "todo", "slow", "fast",
"new", "old", "save"
AApppp::::PPrroovvee::::SSttaattee::::RReessuulltt -- IInnddiivviidduuaall tteesstt ssuuiittee rreessuullttss..
VERSION #
DESCRIPTION #
SYNOPSIS #
METHODS #
Class Methods
"state_version"
"test_class"
AApppp::::PPrroovvee::::SSttaattee::::RReessuulltt::::TTeesstt -- IInnddiivviidduuaall tteesstt rreessuullttss..
VERSION #
DESCRIPTION #
SYNOPSIS #
METHODS #
Class Methods
Instance Methods
AArrcchhiivvee::::TTaarr -- mmoodduullee ffoorr mmaanniippuullaattiioonnss ooff ttaarr aarrcchhiivveess
SYNOPSIS #
DESCRIPTION #
Object Methods
Archive::Tar->new( [$file, $compressed] )
$tar->read ( $filename|$handle, [$compressed, {opt => 'val'}] )
limit, filter, md5, extract
$tar->contains_file( $filename )
$tar->extract( [@filenames] )
$tar->extract_file( $file, [$extract_path] )
$tar->list_files( [\@properties] )
$tar->get_files( [@filenames] )
$tar->get_content( $file )
$tar->replace_content( $file, $content )
$tar->rename( $file, $new_name )
$tar->chmod( $file, $mode )
$tar->chown( $file, $uname [, $gname] )
$tar->remove (@filenamelist)
$tar->clear
$tar->write ( [$file, $compressed, $prefix] )
$tar->add_files( @filenamelist )
$tar->add_data ( $filename, $data, [$opthashref] )
FILE, HARDLINK, SYMLINK, CHARDEV, BLOCKDEV, DIR, FIFO, SOCKET #
$tar->error( [$BOOL] )
$tar->setcwd( $cwd );
Class Methods
Archive::Tar->create_archive($file, $compressed, @filelist)
Archive::Tar->iter( $filename, [ $compressed, {opt => $val} ] )
Archive::Tar->list_archive($file, $compressed, [\@properties])
Archive::Tar->extract_archive($file, $compressed)
$bool = Archive::Tar->has_io_string
$bool = Archive::Tar->has_perlio
$bool = Archive::Tar->has_zlib_support
$bool = Archive::Tar->has_bzip2_support
$bool = Archive::Tar->has_xz_support
Archive::Tar->can_handle_compressed_files
GLOBAL VARIABLES #
$Archive::Tar::FOLLOW_SYMLINK
$Archive::Tar::CHOWN
$Archive::Tar::CHMOD
$Archive::Tar::SAME_PERMISSIONS
$Archive::Tar::DO_NOT_USE_PREFIX
$Archive::Tar::DEBUG
$Archive::Tar::WARN
$Archive::Tar::error
$Archive::Tar::INSECURE_EXTRACT_MODE
$Archive::Tar::HAS_PERLIO
$Archive::Tar::HAS_IO_STRING
$Archive::Tar::ZERO_PAD_NUMBERS
Tuning the way RESOLVE_SYMLINK will works
FAQ What's the minimum perl version required to run Archive::Tar?, Isn't
Archive::Tar slow?, Isn't Archive::Tar heavier on memory than
/bin/tar?, Can you lazy-load data instead?, How much memory will an X
kb tar file need?, What do you do with unsupported filetypes in an
archive?, I'm using WinZip, or some other non-POSIX client, and files
are not being extracted properly!, How do I extract only files that
have property X from an archive?, How do I access .tar.Z files?, How
do I handle Unicode strings?
CAVEATS #
TODO #
Check if passed in handles are open for read/write, Allow archives to
be passed in as string, Facilitate processing an opened filehandle of
a compressed archive
SEE ALSO #
The GNU tar specification, The PAX format specification, A comparison
of GNU and POSIX tar standards;
"http://www.delorie.com/gnu/docs/tar/tar_114.html", GNU tar intends
to switch to POSIX compatibility, A Comparison between various tar
implementations
AUTHOR #
ACKNOWLEDGEMENTS #
COPYRIGHT #
AArrcchhiivvee::::TTaarr::::FFiillee -- aa ssuubbccllaassss ffoorr iinn--mmeemmoorryy eexxttrraacctteedd ffiillee ffrroomm AArrcchhiivvee::::TTaarr
SYNOPSIS #
DESCRIPTION #
Accessors
name, mode, uid, gid, size, mtime, chksum, type, linkname, magic,
version, uname, gname, devmajor, devminor, prefix, raw
Methods
Archive::Tar::File->new( file => $path )
Archive::Tar::File->new( data => $path, $data, $opt )
Archive::Tar::File->new( chunk => $chunk )
$bool = $file->extract( [ $alternative_name ] )
$path = $file->full_path
$bool = $file->validate
$bool = $file->has_content
$content = $file->get_content
$cref = $file->get_content_by_ref
$bool = $file->replace_content( $content )
$bool = $file->rename( $new_name )
$bool = $file->chmod $mode)
$bool = $file->chown( $user [, $group])
Convenience methods
$file->is_file, $file->is_dir, $file->is_hardlink, $file->is_symlink,
$file->is_chardev, $file->is_blockdev, $file->is_fifo,
$file->is_socket, $file->is_longlink, $file->is_label,
$file->is_unknown
AAttttrriibbuuttee::::HHaannddlleerrss -- SSiimmpplleerr ddeeffiinniittiioonn ooff aattttrriibbuuttee hhaannddlleerrss
VERSION #
SYNOPSIS #
DESCRIPTION #
[0], [1], [2], [3], [4], [5], [6], [7]
Typed lexicals
Type-specific attribute handlers
Non-interpretive attribute handlers
Phase-specific attribute handlers
Attributes as "tie" interfaces
EXAMPLES #
UTILITY FUNCTIONS #
findsym
DIAGNOSTICS #
"Bad attribute type: ATTR(%s)", "Attribute handler %s doesn't handle
%s attributes", "Declaration of %s attribute in package %s may clash
with future reserved word", "Can't have two ATTR specifiers on one
subroutine", "Can't autotie a %s", "Internal error: %s symbol went
missing", "Won't be able to apply END handler"
AUTHOR #
BUGS #
COPYRIGHT AND LICENSE #
AAuuttooLLooaaddeerr -- llooaadd ssuubbrroouuttiinneess oonnllyy oonn ddeemmaanndd
SYNOPSIS #
DESCRIPTION #
Subroutine Stubs
Using AAuuttooLLooaaddeerr's AUTOLOAD Subroutine
Overriding AAuuttooLLooaaddeerr's AUTOLOAD Subroutine
Package Lexicals
Not Using AutoLoader
AAuuttooLLooaaddeerr vs. SSeellffLLooaaddeerr
Forcing AutoLoader to Load a Function
CAVEATS #
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
AAuuttooSSpplliitt -- sspplliitt aa ppaacckkaaggee ffoorr aauuttoollooaaddiinngg
SYNOPSIS #
DESCRIPTION #
$keep, $check, $modtime
Multiple packages
DIAGNOSTICS #
AUTHOR #
COPYRIGHT AND LICENSE #
BB -- TThhee PPeerrll CCoommppiilleerr BBaacckkeenndd
SYNOPSIS #
DESCRIPTION #
OVERVIEW #
Utility Functions
Functions Returning "B::SV", "B::AV", "B::HV", and "B::CV" objects
sv_undef, sv_yes, sv_no, svref_2object(SVREF), amagic_generation,
init_av, check_av, unitcheck_av, begin_av, end_av, comppadlist,
regex_padav, main_cv
Functions for Examining the Symbol Table
walksymtable(SYMREF, METHOD, RECURSE, PREFIX)
Functions Returning "B::OP" objects or for walking op trees
main_root, main_start, walkoptree(OP, METHOD),
walkoptree_debug(DEBUG)
Miscellaneous Utility Functions
ppname(OPNUM), hash(STR), cast_I32(I), minus_c, cstring(STR),
perlstring(STR), safename(STR), class(OBJ), threadsv_names
Exported utility variables
@optype, @specialsv_name
OVERVIEW OF CLASSES #
SV-RELATED CLASSES #
B::SV Methods
REFCNT, FLAGS, object_2svref
B::IV Methods
IV, IVX, UVX, int_value, needs64bits, packiv
B::NV Methods
NV, NVX, COP_SEQ_RANGE_LOW, COP_SEQ_RANGE_HIGH #
B::RV Methods
RV #
B::PV Methods
PV, RV, PVX, CUR, LEN #
B::PVMG Methods
MAGIC, SvSTASH
B::MAGIC Methods
MOREMAGIC, precomp, PRIVATE, TYPE, FLAGS, OBJ, PTR, REGEX
B::INVLIST Methods
prev_index, is_offset, array_len, get_invlist_array
B::PVLV Methods
TARGOFF, TARGLEN, TYPE, TARG #
B::BM Methods
USEFUL, PREVIOUS, RARE, TABLE #
B::REGEXP Methods
REGEX, precomp, qr_anoncv, compflags
B::GV Methods
is_empty, NAME, SAFENAME, STASH, SV, IO, FORM, AV, HV, EGV, CV,
CVGEN, LINE, FILE, FILEGV, GvREFCNT, FLAGS, GPFLAGS
B::IO Methods
LINES, PAGE, PAGE_LEN, LINES_LEFT, TOP_NAME, TOP_GV, FMT_NAME, #
FMT_GV, BOTTOM_NAME, BOTTOM_GV, SUBPROCESS, IoTYPE, IoFLAGS,
IsSTD
B::AV Methods
FILL, MAX, ARRAY, ARRAYelt
B::CV Methods
STASH, START, ROOT, GV, FILE, DEPTH, PADLIST, OUTSIDE, #
OUTSIDE_SEQ, XSUB, XSUBANY, CvFLAGS, const_sv, NAME_HEK
B::HV Methods
FILL, MAX, KEYS, RITER, NAME, ARRAY #
OP-RELATED CLASSES #
B::OP Methods
next, sibling, parent, name, ppaddr, desc, targ, type, opt,
flags, private, spare
B::UNOP Method
first
B::UNOP_AUX Methods (since 5.22)
aux_list(cv), string(cv)
B::BINOP Method
last
B::LOGOP Method
other
B::LISTOP Method
children
B::PMOP Methods
pmreplroot, pmreplstart, pmflags, precomp, pmoffset, code_list,
pmregexp
B::SVOP Methods
sv, gv
B::PADOP Method
padix
B::PVOP Method
pv
B::LOOP Methods
redoop, nextop, lastop
B::COP Methods
label, stash, stashpv, stashoff (threaded only), file, cop_seq,
line, warnings, io, hints, hints_hash
B::METHOP Methods (Since Perl 5.22)
first, meth_sv
PAD-RELATED CLASSES #
B::PADLIST Methods
MAX, ARRAY, ARRAYelt, NAMES, REFCNT, id, outid
B::PADNAMELIST Methods
MAX, ARRAY, ARRAYelt, REFCNT
B::PADNAME Methods
PV, PVX, LEN, REFCNT, FLAGS, TYPE, SvSTASH, OURSTASH, PROTOCV,
COP_SEQ_RANGE_LOW, COP_SEQ_RANGE_HIGH, PARENT_PAD_INDEX, #
PARENT_FAKELEX_FLAGS #
$B::overlay
AUTHOR #
BB::::CCoonncciissee -- WWaallkk PPeerrll ssyynnttaaxx ttrreeee,, pprriinnttiinngg ccoonncciissee iinnffoo aabboouutt ooppss
SYNOPSIS #
DESCRIPTION #
EXAMPLE #
OPTIONS #
Options for Opcode Ordering
--bbaassiicc, --eexxeecc, --ttrreeee
Options for Line-Style
--ccoonncciissee, --tteerrssee, --lliinneennooiissee, --ddeebbuugg, --eennvv
Options for tree-specific formatting
--ccoommppaacctt, --lloooossee, --vvtt, --aasscciiii
Options controlling sequence numbering
--bbaassee_n, --bbiiggeennddiiaann, --lliittttlleeeennddiiaann
Other options
--ssrrcc, --ssttaasshh==""ssoommeeppaacckkaaggee"", --mmaaiinn, --nnoommaaiinn, --nnoobbaannnneerr, --bbaannnneerr,
--bbaannnneerriiss => subref
Option Stickiness
ABBREVIATIONS #
OP class abbreviations
OP flags abbreviations
FORMATTING SPECIFICATIONS #
Special Patterns
((xx((_e_x_e_c___t_e_x_t;;_b_a_s_i_c___t_e_x_t))xx)), ((**((_t_e_x_t))**)), ((**((_t_e_x_t_1;;_t_e_x_t_2))**)),
((??((_t_e_x_t_1##_v_a_r_T_e_x_t_2))??)), ~~
# Variables
##_v_a_r, ##_v_a_r_N, ##_V_a_r, ##aaddddrr, ##aarrgg, ##ccllaassss, ##ccllaassssssyymm, ##ccooppllaabbeell,
##eexxnnaammee, ##eexxttaarrgg, ##ffiirrssttaaddddrr, ##ffllaaggss, ##ffllaaggvvaall, ##hhiinnttss,
##hhiinnttssvvaall, ##hhyypphhsseeqq, ##llaabbeell, ##llaassttaaddddrr, ##nnaammee, ##NNAAMMEE, ##nneexxtt,
##nneexxttaaddddrr, ##nnooiissee, ##pprriivvaattee, ##pprriivvvvaall, ##sseeqq, ##oopptt, ##ssiibbaaddddrr,
##ssvvaaddddrr, ##ssvvccllaassss, ##ssvvvvaall, ##ttaarrgg, ##ttaarrggaarrgg, ##ttaarrggaarrgglliiffee,
##ttyyppeennuumm
One-Liner Command tips
perl -MO=Concise,bar foo.pl, perl -MDigest::MD5=md5 -MO=Concise,md5
-e1, perl -MPOSIX -MO=Concise,_POSIX_ARG_MAX -e1, perl -MPOSIX
-MO=Concise,a -e 'print _POSIX_SAVED_IDS', perl -MPOSIX -MO=Concise,a
-e 'sub a{_POSIX_SAVED_IDS}', perl -MB::Concise -e
'B::Concise::compile("-exec","-src", \%B::Concise::)->()'
Using B::Concise outside of the O framework
Example: Altering Concise Renderings
sseett__ssttyyllee(())
set_style_standard($name)
add_style ()
add_callback ()
Running BB::::CCoonncciissee::::ccoommppiillee(())
BB::::CCoonncciissee::::rreesseett__sseeqquueennccee(())
Errors
AUTHOR #
BB::::DDeeppaarrssee -- PPeerrll ccoommppiilleerr bbaacckkeenndd ttoo pprroodduuccee ppeerrll ccooddee
SYNOPSIS #
DESCRIPTION #
OPTIONS #
--dd, --ff_F_I_L_E, --ll, --pp, --PP, --qq, --ss_L_E_T_T_E_R_S, CC, ii_N_U_M_B_E_R, TT, vv_S_T_R_I_N_G..,
--xx_L_E_V_E_L
USING B::Deparse AS A MODULE
Synopsis
Description
new
ambient_pragmas
strict, $[, bytes, utf8, integer, re, warnings, hint_bits,
warning_bits, %^H
coderef2text
BUGS #
AUTHOR #
BB::::OOpp__pprriivvaattee -- OOPP oopp__pprriivvaattee ffllaagg ddeeffiinniittiioonnss
SYNOPSIS #
DESCRIPTION #
%bits
%defines
%labels
%ops_using
BB::::SShhoowwlleexx -- SShhooww lleexxiiccaall vvaarriiaabblleess uusseedd iinn ffuunnccttiioonnss oorr ffiilleess
SYNOPSIS #
DESCRIPTION #
EXAMPLES #
OPTIONS #
SEE ALSO #
TODO #
AUTHOR #
BB::::TTeerrssee -- WWaallkk PPeerrll ssyynnttaaxx ttrreeee,, pprriinnttiinngg tteerrssee iinnffoo aabboouutt ooppss
SYNOPSIS #
DESCRIPTION #
AUTHOR #
BB::::XXrreeff -- GGeenneerraatteess ccrroossss rreeffeerreennccee rreeppoorrttss ffoorr PPeerrll pprrooggrraammss
SYNOPSIS #
DESCRIPTION #
i, &, s, r
OPTIONS #
"-oFILENAME", "-r", "-d", "-D[tO]"
BUGS #
AUTHOR #
BBeenncchhmmaarrkk -- bbeenncchhmmaarrkk rruunnnniinngg ttiimmeess ooff PPeerrll ccooddee
SYNOPSIS #
DESCRIPTION #
Methods
new, debug, iters
Standard Exports
timeit(COUNT, CODE), timethis ( COUNT, CODE, [ TITLE, [ STYLE ]]
), timethese ( COUNT, CODEHASHREF, [ STYLE ] ), timediff ( T1, T2
), timestr ( TIMEDIFF, [ STYLE, [ FORMAT ] ] )
Optional Exports
clearcache ( COUNT ), clearallcache ( ), cmpthese ( COUNT,
CODEHASHREF, [ STYLE ] ), cmpthese ( RESULTSHASHREF, [ STYLE ] ),
countit(TIME, CODE), disablecache ( ), enablecache ( ), timesum (
T1, T2 ) #
:hireswallclock
Benchmark Object
cpu_p, cpu_c, cpu_a, real, iters
NOTES #
EXAMPLES #
INHERITANCE #
CAVEATS #
SEE ALSO #
AUTHORS #
MODIFICATION HISTORY #
CCOORREE -- NNaammeessppaaccee ffoorr PPeerrll’’ss ccoorree rroouuttiinneess
SYNOPSIS #
DESCRIPTION #
OVERRIDING CORE FUNCTIONS #
AUTHOR #
SEE ALSO #
CCPPAANN -- qquueerryy,, ddoowwnnllooaadd aanndd bbuuiilldd ppeerrll mmoodduulleess ffrroomm CCPPAANN ssiitteess
SYNOPSIS #
DESCRIPTION #
CPAN::shell([$prompt, $command]) Starting Interactive Mode
Searching for authors, bundles, distribution files and modules,
"get", "make", "test", "install", "clean" modules or
distributions, "readme", "perldoc", "look" module or
distribution, "ls" author, "ls" globbing_expression, "failed",
Persistence between sessions, The "force" and the "fforce"
pragma, Lockfile, Signals
CPAN::Shell
autobundle
hosts
install_tested, is_tested
mkmyconfig
r [Module|/Regexp/]...
recent ***EXPERIMENTAL COMMAND***
recompile
report Bundle|Distribution|Module
smoke ***EXPERIMENTAL COMMAND***
upgrade [Module|/Regexp/]...
The four "CPAN::*" Classes: Author, Bundle, Module, Distribution
Integrating local directories
Redirection
Plugin support ***EXPERIMENTAL***
CONFIGURATION #
completion support, displaying some help: o conf help, displaying
current values: o conf [KEY], changing of scalar values: o conf KEY
VALUE, changing of list values: o conf KEY
SHIFT|UNSHIFT|PUSH|POP|SPLICE|LIST, reverting to saved: o conf
defaults, saving the config: o conf commit
Config Variables
"o conf <scalar option>", "o conf <scalar option> <value>", "o
conf <list option>", "o conf <list option> [shift|pop]", "o conf
<list option> [unshift|push|splice] <list>", interactive editing:
o conf init [MATCH|LIST]
CPAN::anycwd($path): Note on config variable getcwd
cwd, getcwd, fastcwd, getdcwd, backtickcwd
Note on the format of the urllist parameter
The urllist parameter has CD-ROM support
Maintaining the urllist parameter
The "requires" and "build_requires" dependency declarations
Configuration of the allow_installing_* parameters
Configuration for individual distributions (_D_i_s_t_r_o_p_r_e_f_s)
Filenames
Fallback Data::Dumper and Storable
Blueprint
Language Specs
comment [scalar], cpanconfig [hash], depends [hash] ***
EXPERIMENTAL FEATURE ***, disabled [boolean], features [array]
*** EXPERIMENTAL FEATURE ***, goto [string], install [hash], make
[hash], match [hash], patches [array], pl [hash], test [hash]
Processing Instructions
args [array], commandline, eexpect [hash], env [hash], expect
[array]
Schema verification with "Kwalify"
Example Distroprefs Files
PROGRAMMER’S INTERFACE #
expand($type,@things), expandany(@things), Programming Examples
Methods in the other Classes
CCPPAANN::::AAuutthhoorr::::aass__gglliimmppssee(()), CCPPAANN::::AAuutthhoorr::::aass__ssttrriinngg(()),
CCPPAANN::::AAuutthhoorr::::eemmaaiill(()), CCPPAANN::::AAuutthhoorr::::ffuullllnnaammee(()),
CCPPAANN::::AAuutthhoorr::::nnaammee(()), CCPPAANN::::BBuunnddllee::::aass__gglliimmppssee(()),
CCPPAANN::::BBuunnddllee::::aass__ssttrriinngg(()), CCPPAANN::::BBuunnddllee::::cclleeaann(()),
CCPPAANN::::BBuunnddllee::::ccoonnttaaiinnss(()), CPAN::Bundle::force($method,@args),
CCPPAANN::::BBuunnddllee::::ggeett(()), CCPPAANN::::BBuunnddllee::::iinnsstt__ffiillee(()),
CCPPAANN::::BBuunnddllee::::iinnsstt__vveerrssiioonn(()), CCPPAANN::::BBuunnddllee::::uuppttooddaattee(()),
CCPPAANN::::BBuunnddllee::::iinnssttaallll(()), CCPPAANN::::BBuunnddllee::::mmaakkee(()),
CCPPAANN::::BBuunnddllee::::rreeaaddmmee(()), CCPPAANN::::BBuunnddllee::::tteesstt(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::aass__gglliimmppssee(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::aass__ssttrriinngg(()), CPAN::Distribution::author,
CCPPAANN::::DDiissttrriibbuuttiioonn::::pprreettttyy__iidd(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::bbaassee__iidd(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::cclleeaann(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::ccoonnttaaiinnssmmooddss(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::ccvvss__iimmppoorrtt(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::ddiirr(()),
CPAN::Distribution::force($method,@args),
CCPPAANN::::DDiissttrriibbuuttiioonn::::ggeett(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::iinnssttaallll(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::iissaa__ppeerrll(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::llooookk(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::mmaakkee(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::ppeerrllddoocc(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::pprreeffss(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::pprreerreeqq__ppmm(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::rreeaaddmmee(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::rreeppoorrttss(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::rreeaadd__yyaammll(()), CCPPAANN::::DDiissttrriibbuuttiioonn::::tteesstt(()),
CCPPAANN::::DDiissttrriibbuuttiioonn::::uuppttooddaattee(()), CCPPAANN::::IInnddeexx::::ffoorrccee__rreellooaadd(()),
CCPPAANN::::IInnddeexx::::rreellooaadd(()), CCPPAANN::::IInnffooOObbjj::::dduummpp(()),
CCPPAANN::::MMoodduullee::::aass__gglliimmppssee(()), CCPPAANN::::MMoodduullee::::aass__ssttrriinngg(()),
CCPPAANN::::MMoodduullee::::cclleeaann(()), CCPPAANN::::MMoodduullee::::ccppaann__ffiillee(()),
CCPPAANN::::MMoodduullee::::ccppaann__vveerrssiioonn(()), CCPPAANN::::MMoodduullee::::ccvvss__iimmppoorrtt(()),
CCPPAANN::::MMoodduullee::::ddeessccrriippttiioonn(()), CCPPAANN::::MMoodduullee::::ddiissttrriibbuuttiioonn(()),
CCPPAANN::::MMoodduullee::::ddsslliipp__ssttaattuuss(()), CPAN::Module::force($method,@args),
CCPPAANN::::MMoodduullee::::ggeett(()), CCPPAANN::::MMoodduullee::::iinnsstt__ffiillee(()),
CCPPAANN::::MMoodduullee::::aavvaaiillaabbllee__ffiillee(()), CCPPAANN::::MMoodduullee::::iinnsstt__vveerrssiioonn(()),
CCPPAANN::::MMoodduullee::::aavvaaiillaabbllee__vveerrssiioonn(()), CCPPAANN::::MMoodduullee::::iinnssttaallll(()),
CCPPAANN::::MMoodduullee::::llooookk(()), CCPPAANN::::MMoodduullee::::mmaakkee(()),
CCPPAANN::::MMoodduullee::::mmaannppaaggee__hheeaaddlliinnee(()), CCPPAANN::::MMoodduullee::::ppeerrllddoocc(()),
CCPPAANN::::MMoodduullee::::rreeaaddmmee(()), CCPPAANN::::MMoodduullee::::rreeppoorrttss(()),
CCPPAANN::::MMoodduullee::::tteesstt(()), CCPPAANN::::MMoodduullee::::uuppttooddaattee(()),
CCPPAANN::::MMoodduullee::::uusseerriidd(())
Cache Manager
Bundles
PREREQUISITES #
UTILITIES #
Finding packages and VERSION
Debugging
o debug package.., o debug -package.., o debug all, o debug
number
Floppy, Zip, Offline Mode
Basic Utilities for Programmers
has_inst($module), use_inst($module), has_usable($module),
instance($module), ffrroonntteenndd(()), frontend($new_frontend)
SECURITY #
Cryptographically signed modules
EXPORT #
ENVIRONMENT #
POPULATE AN INSTALLATION WITH LOTS OF MODULES #
WORKING WITH CPAN.pm BEHIND FIREWALLS
Three basic types of firewalls
http firewall, ftp firewall, One-way visibility, SOCKS, IP
Masquerade
Configuring lynx or ncftp for going through a firewall
FAQ 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), #
16), 17), 18), 19)
COMPATIBILITY #
OLD PERL VERSIONS #
CPANPLUS #
CPANMINUS #
SECURITY ADVICE #
BUGS #
AUTHOR #
LICENSE #
TRANSLATIONS #
SEE ALSO #
CCPPAANN::::AAPPII::::HHOOWWTTOO -- aa rreecciippee bbooookk ffoorr pprrooggrraammmmiinngg wwiitthh CCPPAANN..ppmm
RECIPES #
What distribution contains a particular module?
What modules does a particular distribution contain?
SEE ALSO #
LICENSE #
AUTHOR #
CCPPAANN::::DDeebbuugg -- iinntteerrnnaall ddeebbuuggggiinngg ffoorr CCPPAANN..ppmm
LICENSE #
CCPPAANN::::DDiissttrroopprreeffss -–- rreeaadd aanndd mmaattcchh ddiissttrroopprreeffss
SYNOPSIS #
DESCRIPTION #
INTERFACE #
a CPAN::Distroprefs::Result object, "undef", indicating that no prefs
files remain to be found
RESULTS #
Common
Errors
Successes
PREFS #
LICENSE #
CCPPAANN::::FFiirrssttTTiimmee -- UUttiilliittyy ffoorr CCPPAANN::::CCoonnffiigg ffiillee IInniittiiaalliizzaattiioonn
SYNOPSIS #
DESCRIPTION #
allow_installing_module_downgrades, allow_installing_outdated_dists,
auto_commit, build_cache, build_dir, build_dir_reuse,
build_requires_install_policy, cache_metadata, check_sigs,
cleanup_after_install, colorize_output, colorize_print, colorize_warn,
colorize_debug, commandnumber_in_prompt, connect_to_internet_ok,
ftp_passive, ftpstats_period, ftpstats_size, getcwd, halt_on_failure,
histfile, histsize, inactivity_timeout, index_expire,
inhibit_startup_message, keep_source_where, load_module_verbosity,
makepl_arg, make_arg, make_install_arg, make_install_make_command,
mbuildpl_arg, mbuild_arg, mbuild_install_arg,
mbuild_install_build_command, pager, prefer_installer, prefs_dir,
prerequisites_policy, pushy_https, randomize_urllist, recommends_policy,
scan_cache, shell, show_unparsable_versions, show_upload_date,
show_zero_versions, suggests_policy, tar_verbosity, term_is_latin,
term_ornaments, test_report, perl5lib_verbosity, prefer_external_tar,
trust_test_report_history, urllist_ping_external, urllist_ping_verbose,
use_prompt_default, use_sqlite, version_timeout, yaml_load_code,
yaml_module
LICENSE #
CCPPAANN::::HHaannddlleeCCoonnffiigg -- iinntteerrnnaall ccoonnffiigguurraattiioonn hhaannddlliinngg ffoorr CCPPAANN..ppmm “CLASS->safe_quote ITEM”
LICENSE #
CCPPAANN::::KKwwaalliiffyy -- IInntteerrffaaccee bbeettwweeeenn CCPPAANN..ppmm aanndd KKwwaalliiffyy..ppmm
SYNOPSIS #
DESCRIPTION #
_validate($schema_name, $data, $file, $doc), yaml($schema_name)
AUTHOR #
LICENSE #
CCPPAANN::::MMeettaa -- tthhee ddiissttrriibbuuttiioonn mmeettaaddaattaa ffoorr aa CCPPAANN ddiisstt
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
new
create
load_file
load_yaml_string
load_json_string
load_string
save
meta_spec_version
effective_prereqs
should_index_file
should_index_package
features
feature
as_struct
as_string
STRING DATA #
LIST DATA #
MAP DATA #
CUSTOM DATA #
BUGS #
SEE ALSO #
SUPPORT #
Bugs / Feature Requests
Source Code
AUTHORS #
CONTRIBUTORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::CCoonnvveerrtteerr -- CCoonnvveerrtt CCPPAANN ddiissttrriibbuuttiioonn mmeettaaddaattaa ssttrruuccttuurreess
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
new
convert
upgrade_fragment
BUGS #
AUTHORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::FFeeaattuurree -- aann ooppttiioonnaall ffeeaattuurree pprroovviiddeedd bbyy aa CCPPAANN ddiissttrriibbuuttiioonn
VERSION #
DESCRIPTION #
METHODS #
new
identifier
description
prereqs
BUGS #
AUTHORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::HHiissttoorryy -- hhiissttoorryy ooff CCPPAANN MMeettaa SSppeecc cchhaannggeess
VERSION #
DESCRIPTION #
HISTORY #
Version 2
Version 1.4
Version 1.3
Version 1.2
Version 1.1
Version 1.0
AUTHORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::HHiissttoorryy::::MMeettaa__11__00 -- VVeerrssiioonn 11..00 mmeettaaddaattaa ssppeecciiffiiccaattiioonn ffoorr MMEETTAA..yymmll
PREFACE #
DESCRIPTION #
Format
Fields
name, version, license, perl, gpl, lgpl, artistic, bsd, open_source,
unrestricted, restrictive, distribution_type, requires, recommends,
build_requires, conflicts, dynamic_config, generated_by
Related Projects
DOAP #
History
CCPPAANN::::MMeettaa::::HHiissttoorryy::::MMeettaa__11__11 -- VVeerrssiioonn 11..11 mmeettaaddaattaa ssppeecciiffiiccaattiioonn ffoorr MMEETTAA..yymmll
PREFACE #
DESCRIPTION #
Format
Fields
name, version, license, perl, gpl, lgpl, artistic, bsd, open_source,
unrestricted, restrictive, license_uri, distribution_type, private,
requires, recommends, build_requires, conflicts, dynamic_config,
generated_by
Ingy's suggestions
short_description, description, maturity, author_id, owner_id,
categorization, keyword, chapter_id, URL for further information,
namespaces
History
CCPPAANN::::MMeettaa::::HHiissttoorryy::::MMeettaa__11__22 -- VVeerrssiioonn 11..22 mmeettaaddaattaa ssppeecciiffiiccaattiioonn ffoorr MMEETTAA..yymmll
PREFACE #
SYNOPSIS #
DESCRIPTION #
FORMAT #
TERMINOLOGY #
distribution, module
VERSION SPECIFICATIONS #
HEADER #
FIELDS #
meta-spec
name
version
abstract
author
license
perl, gpl, lgpl, artistic, bsd, open_source, unrestricted,
restrictive
distribution_type
requires
recommends
build_requires
conflicts
dynamic_config
private
provides
no_index
keywords
resources
homepage, license, bugtracker
generated_by
SEE ALSO #
HISTORY #
March 14, 2003 (Pi day), May 8, 2003, November 13, 2003, November 16,
2003, December 9, 2003, December 15, 2003, July 26, 2005, August 23,
2005
CCPPAANN::::MMeettaa::::HHiissttoorryy::::MMeettaa__11__33 -- VVeerrssiioonn 11..33 mmeettaaddaattaa ssppeecciiffiiccaattiioonn ffoorr MMEETTAA..yymmll
PREFACE #
SYNOPSIS #
DESCRIPTION #
FORMAT #
TERMINOLOGY #
distribution, module
HEADER #
FIELDS #
meta-spec
name
version
abstract
author
license
apache, artistic, bsd, gpl, lgpl, mit, mozilla, open_source,
perl, restrictive, unrestricted
distribution_type
requires
recommends
build_requires
conflicts
dynamic_config
private
provides
no_index
keywords
resources
homepage, license, bugtracker
generated_by
VERSION SPECIFICATIONS #
SEE ALSO #
HISTORY #
March 14, 2003 (Pi day), May 8, 2003, November 13, 2003, November 16,
2003, December 9, 2003, December 15, 2003, July 26, 2005, August 23,
2005
CCPPAANN::::MMeettaa::::HHiissttoorryy::::MMeettaa__11__44 -- VVeerrssiioonn 11..44 mmeettaaddaattaa ssppeecciiffiiccaattiioonn ffoorr MMEETTAA..yymmll
PREFACE #
SYNOPSIS #
DESCRIPTION #
FORMAT #
TERMINOLOGY #
distribution, module
HEADER #
FIELDS #
meta-spec
name
version
abstract
author
license
apache, artistic, bsd, gpl, lgpl, mit, mozilla, open_source,
perl, restrictive, unrestricted
distribution_type
requires
recommends
build_requires
configure_requires
conflicts
dynamic_config
private
provides
no_index
keywords
resources
homepage, license, bugtracker
generated_by
VERSION SPECIFICATIONS #
SEE ALSO #
HISTORY #
March 14, 2003 (Pi day), May 8, 2003, November 13, 2003, November 16,
2003, December 9, 2003, December 15, 2003, July 26, 2005, August 23,
2005, June 12, 2007
CCPPAANN::::MMeettaa::::MMeerrggee -- MMeerrggiinngg CCPPAANN MMeettaa ffrraaggmmeennttss
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
new
merge(@fragments)
MERGE STRATEGIES #
identical, set_addition, uniq_map, improvise
AUTHORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::PPrreerreeqqss -- aa sseett ooff ddiissttrriibbuuttiioonn pprreerreeqquuiissiitteess bbyy pphhaassee aanndd ttyyppee
VERSION #
DESCRIPTION #
METHODS #
new
requirements_for
phases
types_in
with_merged_prereqs
merged_requirements
as_string_hash
is_finalized
finalize
clone
BUGS #
AUTHORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::RReeqquuiirreemmeennttss -- aa sseett ooff vveerrssiioonn rreeqquuiirreemmeennttss ffoorr aa CCPPAANN ddiisstt
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
new
add_minimum
add_maximum
add_exclusion
exact_version
add_requirements
accepts_module
clear_requirement
requirements_for_module
structured_requirements_for_module
required_modules
clone
is_simple
is_finalized
finalize
as_string_hash
add_string_requirement
>= 1.3, <= 1.3, != 1.3, > 1.3, < 1.3, >= 1.3, != 1.5, <= 2.0
from_string_hash
SUPPORT #
Bugs / Feature Requests
Source Code
AUTHORS #
CONTRIBUTORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::SSppeecc -- ssppeecciiffiiccaattiioonn ffoorr CCPPAANN ddiissttrriibbuuttiioonn mmeettaaddaattaa
VERSION #
SYNOPSIS #
DESCRIPTION #
TERMINOLOGY #
distribution, module, package, consumer, producer, must, should, may,
etc
DATA TYPES #
Boolean
String
List
Map
License String
URL #
Version
Version Range
STRUCTURE #
REQUIRED FIELDS #
version, url, stable, testing, unstable
OPTIONAL FIELDS #
file, directory, package, namespace, description, prereqs, file,
version, homepage, license, bugtracker, repository
DEPRECATED FIELDS #
VERSION NUMBERS #
Version Formats
Decimal versions, Dotted-integer versions
Version Ranges
PREREQUISITES #
Prereq Spec
configure, build, test, runtime, develop, requires, recommends,
suggests, conflicts
Merging and Resolving Prerequisites
SERIALIZATION #
NOTES FOR IMPLEMENTORS #
Extracting Version Numbers from Perl Modules
Comparing Version Numbers
Prerequisites for dynamically configured distributions
Indexing distributions a la PAUSE
SEE ALSO #
HISTORY #
AUTHORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::VVaalliiddaattoorr -- vvaalliiddaattee CCPPAANN ddiissttrriibbuuttiioonn mmeettaaddaattaa ssttrruuccttuurreess
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
new
is_valid
errors
Check Methods
Validator Methods
BUGS #
AUTHORS #
COPYRIGHT AND LICENSE #
CCPPAANN::::MMeettaa::::YYAAMMLL -- RReeaadd aanndd wwrriittee aa ssuubbsseett ooff YYAAMMLL ffoorr CCPPAANN MMeettaa ffiilleess
VERSION #
SYNOPSIS #
DESCRIPTION #
SUPPORT #
SEE ALSO #
AUTHORS #
COPYRIGHT AND LICENSE #
SYNOPSIS #
DESCRIPTION #
new( LOCAL_FILE_NAME )
ccoonnttiinneennttss(())
countries( [CONTINENTS] )
mirrors( [COUNTRIES] )
get_mirrors_by_countries( [COUNTRIES] )
get_mirrors_by_continents( [CONTINENTS] )
get_countries_by_continents( [CONTINENTS] )
default_mirror
best_mirrors
get_n_random_mirrors_by_continents( N, [CONTINENTS] )
get_mirrors_timings( MIRROR_LIST, SEEN, CALLBACK, %ARGS );
find_best_continents( HASH_REF );
AUTHOR #
LICENSE #
CCPPAANN::::NNooxx -- WWrraappppeerr aarroouunndd CCPPAANN..ppmm wwiitthhoouutt uussiinngg aannyy XXSS mmoodduullee
SYNOPSIS #
DESCRIPTION #
LICENSE #
SEE ALSO #
CCPPAANN::::PPlluuggiinn -- BBaassee ccllaassss ffoorr CCPPAANN sshheellll eexxtteennssiioonnss
SYNOPSIS #
DESCRIPTION #
Alpha Status
How Plugins work?
METHODS #
plugin_requires
distribution_object
distribution
distribution_info
build_dir
is_xs
AUTHOR #
CCPPAANN::::PPlluuggiinn::::SSppeeccffiillee -- PPrrooooff ooff ccoonncceepptt iimmpplleemmeennttaattiioonn ooff aa ttrriivviiaall CCPPAANN::::PPlluuggiinn
SYNOPSIS #
DESCRIPTION #
OPTIONS #
AUTHOR #
CCPPAANN::::QQuueeuuee -- iinntteerrnnaall qquueeuuee ssuuppppoorrtt ffoorr CCPPAANN..ppmm
LICENSE #
CCPPAANN::::TTaarrzziipp -- iinntteerrnnaall hhaannddlliinngg ooff ttaarr aarrcchhiivveess ffoorr CCPPAANN..ppmm
LICENSE #
CCPPAANN::::VVeerrssiioonn -- uuttiilliittyy ffuunnccttiioonnss ttoo ccoommppaarree CCPPAANN vveerrssiioonnss
SYNOPSIS #
DESCRIPTION #
LICENSE #
CCaarrpp -- aalltteerrnnaattiivvee wwaarrnn aanndd ddiiee ffoorr mmoodduulleess
SYNOPSIS #
DESCRIPTION #
Forcing a Stack Trace
Stack Trace formatting
GLOBAL VARIABLES #
$Carp::MaxEvalLen
$Carp::MaxArgLen
$Carp::MaxArgNums
$Carp::Verbose
$Carp::RefArgFormatter
@CARP_NOT #
%Carp::Internal
%Carp::CarpInternal
$Carp::CarpLevel
BUGS #
SEE ALSO #
CONTRIBUTING #
AUTHOR #
COPYRIGHT #
LICENSE #
CCllaassss::::SSttrruucctt -- ddeeccllaarree ssttrruucctt--lliikkee ddaattaattyyppeess aass PPeerrll ccllaasssseess
SYNOPSIS #
DESCRIPTION #
The "struct()" function
Class Creation at Compile Time
Element Types and Accessor Methods
Scalar ('$' or '*$'), Array ('@' or '*@'), Hash ('%' or '*%'),
Class ('Class_Name' or '*Class_Name')
Initializing with "new"
EXAMPLES #
Example 1, Example 2, Example 3
Author and Modification History
CCoommpprreessss::::RRaaww::::BBzziipp22 -- LLooww--LLeevveell IInntteerrffaaccee ttoo bbzziipp22 ccoommpprreessssiioonn lliibbrraarryy
SYNOPSIS #
DESCRIPTION #
Compression
($z, $status) = new Compress::Raw::Bzip2 $appendOutput,
$blockSize100k, $workfactor;
$$aappppeennddOOuuttppuutt, $$bblloocckkSSiizzee110000kk, $$wwoorrkkffaaccttoorr
$status = $bz->bzdeflate($input, $output);
$status = $bz->bzflush($output);
$status = $bz->bzclose($output);
Example
Uncompression
($z, $status) = new Compress::Raw::Bunzip2 $appendOutput,
$consumeInput, $small, $verbosity, $limitOutput;
$$aappppeennddOOuuttppuutt, $$ccoonnssuummeeIInnppuutt, $$ssmmaallll, $$lliimmiittOOuuttppuutt, $$vveerrbboossiittyy
$status = $z->bzinflate($input, $output);
Misc
my $version = CCoommpprreessss::::RRaaww::::BBzziipp22::::bbzzlliibbvveerrssiioonn(());
Constants
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
CCoommpprreessss::::RRaaww::::ZZlliibb -- LLooww--LLeevveell IInntteerrffaaccee ttoo zzlliibb oorr zzlliibb--nngg ccoommpprreessssiioonn lliibbrraarryy
SYNOPSIS #
DESCRIPTION #
Compress::Raw::Zlib::Deflate
(($$dd,, $$ssttaattuuss)) == nneeww CCoommpprreessss::::RRaaww::::ZZlliibb::::DDeeffllaattee(( [[OOPPTT]] ))
--LLeevveell, --MMeetthhoodd, --WWiinnddoowwBBiittss, --MMeemmLLeevveell, --SSttrraatteeggyy, --DDiiccttiioonnaarryy,
--BBuuffssiizzee, --AAppppeennddOOuuttppuutt, --CCRRCC3322, --AADDLLEERR3322
$$ssttaattuuss == $$dd-->>ddeeffllaattee(($$iinnppuutt,, $$oouuttppuutt))
$$ssttaattuuss == $$dd-->>fflluusshh(($$oouuttppuutt [[,, $$fflluusshh__ttyyppee]]))
$$ssttaattuuss == $$dd-->>ddeeffllaatteeRReesseett(())
$$ssttaattuuss == $$dd-->>ddeeffllaatteePPaarraammss(([[OOPPTT]]))
--LLeevveell, --SSttrraatteeggyy, --BBuuffSSiizzee
$$ssttaattuuss == $$dd-->>ddeeffllaatteeTTuunnee(($$ggoooodd__lleennggtthh,, $$mmaaxx__llaazzyy,, $$nniiccee__lleennggtthh,,
$$mmaaxx__cchhaaiinn))
$$dd-->>ddiicctt__aaddlleerr(())
$$dd-->>ccrrcc3322(())
$$dd-->>aaddlleerr3322(())
$$dd-->>mmssgg(())
$$dd-->>ttoottaall__iinn(())
$$dd-->>ttoottaall__oouutt(())
$$dd-->>ggeett__SSttrraatteeggyy(())
$$dd-->>ggeett__LLeevveell(())
$$dd-->>ggeett__BBuuffSSiizzee(())
Example
Compress::Raw::Zlib::Inflate
(($$ii,, $$ssttaattuuss)) == nneeww CCoommpprreessss::::RRaaww::::ZZlliibb::::IInnffllaattee(( [[OOPPTT]] ))
--WWiinnddoowwBBiittss, --BBuuffssiizzee, --DDiiccttiioonnaarryy, --AAppppeennddOOuuttppuutt, --CCRRCC3322,
--AADDLLEERR3322, --CCoonnssuummeeIInnppuutt, --LLiimmiittOOuuttppuutt
$$ssttaattuuss == $$ii-->>iinnffllaattee(($$iinnppuutt,, $$oouuttppuutt [[,,$$eeooff]]))
$$ssttaattuuss == $$ii-->>iinnffllaatteeSSyynncc(($$iinnppuutt))
$$ssttaattuuss == $$ii-->>iinnffllaatteeRReesseett(())
$$ii-->>ddiicctt__aaddlleerr(())
$$ii-->>ccrrcc3322(())
$$ii-->>aaddlleerr3322(())
$$ii-->>mmssgg(())
$$ii-->>ttoottaall__iinn(())
$$ii-->>ttoottaall__oouutt(())
$$dd-->>ggeett__BBuuffSSiizzee(())
Examples
CHECKSUM FUNCTIONS #
Misc
my $version = CCoommpprreessss::::RRaaww::::ZZlliibb::::zzlliibb__vveerrssiioonn(());
my $version = CCoommpprreessss::::RRaaww::::ZZlliibb::::zzlliibbnngg__vveerrssiioonn(());
my $flags = CCoommpprreessss::::RRaaww::::ZZlliibb::::zzlliibbCCoommppiilleeFFllaaggss(());
iiss__zzlliibb__nnaattiivvee(()); =head2 iiss__zzlliibbnngg__nnaattiivvee(()); =head2
iiss__zzlliibbnngg__ccoommppaatt(()); =head2 iiss__zzlliibbnngg(());
The LimitOutput option.
ACCESSING ZIP FILES #
FAQ #
Compatibility with Unix compress/uncompress.
Accessing .tar.Z files
Zlib Library Version Support
CONSTANTS #
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
CCoommpprreessss::::ZZlliibb -- IInntteerrffaaccee ttoo zzlliibb ccoommpprreessssiioonn lliibbrraarryy
SYNOPSIS #
DESCRIPTION #
Notes for users of Compress::Zlib version 1
GZIP INTERFACE #
$$ggzz == ggzzooppeenn(($$ffiilleennaammee,, $$mmooddee)), $$ggzz == ggzzooppeenn(($$ffiilleehhaannddllee,, $$mmooddee)),
$$bbyytteessrreeaadd == $$ggzz-->>ggzzrreeaadd(($$bbuuffffeerr [[,, $$ssiizzee]])) ;;, $$bbyytteessrreeaadd ==
$$ggzz-->>ggzzrreeaaddlliinnee(($$lliinnee)) ;;, $$bbyytteesswwrriitttteenn == $$ggzz-->>ggzzwwrriittee(($$bbuuffffeerr)) ;;,
$$ssttaattuuss == $$ggzz-->>ggzzfflluusshh(($$fflluusshh__ttyyppee)) ;;, $$ooffffsseett == $$ggzz-->>ggzztteellll(()) ;;,
$$ssttaattuuss == $$ggzz-->>ggzzsseeeekk(($$ooffffsseett,, $$wwhheennccee)) ;;, $$ggzz-->>ggzzcclloossee,
$$ggzz-->>ggzzsseettppaarraammss(($$lleevveell,, $$ssttrraatteeggyy, $$lleevveell, $$ssttrraatteeggyy, $$ggzz-->>ggzzeerrrroorr,
$$ggzzeerrrrnnoo
Examples
Compress::Zlib::memGzip
Compress::Zlib::memGunzip
COMPRESS/UNCOMPRESS #
$$ddeesstt == ccoommpprreessss(($$ssoouurrccee [[,, $$lleevveell]] )) ;;, $$ddeesstt == uunnccoommpprreessss(($$ssoouurrccee))
;;
Deflate Interface
(($$dd,, $$ssttaattuuss)) == ddeeffllaatteeIInniitt(( [[OOPPTT]] ))
--LLeevveell, --MMeetthhoodd, --WWiinnddoowwBBiittss, --MMeemmLLeevveell, --SSttrraatteeggyy, --DDiiccttiioonnaarryy,
--BBuuffssiizzee
(($$oouutt,, $$ssttaattuuss)) == $$dd-->>ddeeffllaattee(($$bbuuffffeerr))
(($$oouutt,, $$ssttaattuuss)) == $$dd-->>fflluusshh(()) =head2 (($$oouutt,, $$ssttaattuuss)) ==
$$dd-->>fflluusshh(($$fflluusshh__ttyyppee))
$$ssttaattuuss == $$dd-->>ddeeffllaatteePPaarraammss(([[OOPPTT]]))
--LLeevveell, --SSttrraatteeggyy
$$dd-->>ddiicctt__aaddlleerr(())
$$dd-->>mmssgg(())
$$dd-->>ttoottaall__iinn(())
$$dd-->>ttoottaall__oouutt(())
Example
Inflate Interface
(($$ii,, $$ssttaattuuss)) == iinnffllaatteeIInniitt(())
--WWiinnddoowwBBiittss, --BBuuffssiizzee, --DDiiccttiioonnaarryy
(($$oouutt,, $$ssttaattuuss)) == $$ii-->>iinnffllaattee(($$bbuuffffeerr))
$$ssttaattuuss == $$ii-->>iinnffllaatteeSSyynncc(($$bbuuffffeerr))
$$ii-->>ddiicctt__aaddlleerr(())
$$ii-->>mmssgg(())
$$ii-->>ttoottaall__iinn(())
$$ii-->>ttoottaall__oouutt(())
Example
CHECKSUM FUNCTIONS #
Misc
my $version = CCoommpprreessss::::ZZlliibb::::zzlliibb__vveerrssiioonn(());
CONSTANTS #
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
CCoonnffiigg,, ==ffoorr ccoommmmeenntt GGeenneerraatteedd bbyy ccoonnffiiggppmm.. AAnnyy cchhaannggeess mmaaddee hheerree wwiillll bbee lloosstt!!
SYNOPSIS #
DESCRIPTION #
mmyyccoonnffiigg(()), ccoonnffiigg__sshh(()), config_re($regex), config_vars(@names),
bbiinnccoommppaatt__ooppttiioonnss(()), nnoonn__bbiinnccoommppaatt__ooppttiioonnss(()), ccoommppiillee__ddaattee(()),
llooccaall__ppaattcchheess(()), hheeaaddeerr__ffiilleess(())
EXAMPLE #
WARNING #
GLOSSARY #
_ "_a", "_exe", "_o"
a "afs", "afsroot", "alignbytes", "aphostname", "api_revision",
"api_subversion", "api_version", "api_versionstring", "ar",
"archlib", "archlibexp", "archname", "archname64", "archobjs",
"asctime_r_proto", "awk"
b "baserev", "bash", "bin", "bin_ELF", "binexp", "bison", "byacc",
"byteorder"
c "c", "castflags", "cat", "cc", "cccdlflags", "ccdlflags", "ccflags",
"ccflags_uselargefiles", "ccname", "ccsymbols", "ccversion", "cf_by",
"cf_email", "cf_time", "charbits", "charsize", "chgrp", "chmod",
"chown", "clocktype", "comm", "compiler_warning", "compress",
"config_arg0", "config_argc", "config_args", "contains", "cp",
"cpio", "cpp", "cpp_stuff", "cppccsymbols", "cppflags", "cpplast",
"cppminus", "cpprun", "cppstdin", "cppsymbols", "crypt_r_proto",
"cryptlib", "csh", "ctermid_r_proto", "ctime_r_proto"
d "d__fwalk", "d_accept4", "d_access", "d_accessx", "d_acosh",
"d_aintl", "d_alarm", "d_archlib", "d_asctime64", "d_asctime_r",
"d_asinh", "d_atanh", "d_atolf", "d_atoll",
"d_attribute_always_inline", "d_attribute_deprecated",
"d_attribute_format", "d_attribute_malloc", "d_attribute_nonnull",
"d_attribute_noreturn", "d_attribute_pure", "d_attribute_unused",
"d_attribute_warn_unused_result", "d_backtrace", "d_bsd",
"d_bsdgetpgrp", "d_bsdsetpgrp", "d_builtin_add_overflow",
"d_builtin_choose_expr", "d_builtin_expect",
"d_builtin_mul_overflow", "d_builtin_sub_overflow",
"d_c99_variadic_macros", "d_casti32", "d_castneg", "d_cbrt",
"d_chown", "d_chroot", "d_chsize", "d_class", "d_clearenv",
"d_closedir", "d_cmsghdr_s", "d_copysign", "d_copysignl",
"d_cplusplus", "d_crypt", "d_crypt_r", "d_csh", "d_ctermid",
"d_ctermid_r", "d_ctime64", "d_ctime_r", "d_cuserid",
"d_dbminitproto", "d_difftime", "d_difftime64", "d_dir_dd_fd",
"d_dirfd", "d_dirnamlen", "d_dladdr", "d_dlerror", "d_dlopen",
"d_dlsymun", "d_dosuid", "d_double_has_inf", "d_double_has_nan",
"d_double_has_negative_zero", "d_double_has_subnormals",
"d_double_style_cray", "d_double_style_ibm", "d_double_style_ieee",
"d_double_style_vax", "d_drand48_r", "d_drand48proto", "d_dup2",
"d_dup3", "d_duplocale", "d_eaccess", "d_endgrent", "d_endgrent_r",
"d_endhent", "d_endhostent_r", "d_endnent", "d_endnetent_r",
"d_endpent", "d_endprotoent_r", "d_endpwent", "d_endpwent_r",
"d_endsent", "d_endservent_r", "d_eofnblk", "d_erf", "d_erfc",
"d_eunice", "d_exp2", "d_expm1", "d_faststdio", "d_fchdir",
"d_fchmod", "d_fchmodat", "d_fchown", "d_fcntl", "d_fcntl_can_lock",
"d_fd_macros", "d_fd_set", "d_fdclose", "d_fdim", "d_fds_bits",
"d_fegetround", "d_ffs", "d_ffsl", "d_fgetpos", "d_finite",
"d_finitel", "d_flexfnam", "d_flock", "d_flockproto", "d_fma",
"d_fmax", "d_fmin", "d_fork", "d_fp_class", "d_fp_classify",
"d_fp_classl", "d_fpathconf", "d_fpclass", "d_fpclassify",
"d_fpclassl", "d_fpgetround", "d_fpos64_t", "d_freelocale",
"d_frexpl", "d_fs_data_s", "d_fseeko", "d_fsetpos", "d_fstatfs",
"d_fstatvfs", "d_fsync", "d_ftello", "d_ftime", "d_futimes",
"d_gai_strerror", "d_Gconvert", "d_gdbm_ndbm_h_uses_prototypes",
"d_gdbmndbm_h_uses_prototypes", "d_getaddrinfo", "d_getcwd",
"d_getenv_preserves_other_thread", "d_getespwnam", "d_getfsstat",
"d_getgrent", "d_getgrent_r", "d_getgrgid_r", "d_getgrnam_r",
"d_getgrps", "d_gethbyaddr", "d_gethbyname", "d_gethent",
"d_gethname", "d_gethostbyaddr_r", "d_gethostbyname_r",
"d_gethostent_r", "d_gethostprotos", "d_getitimer", "d_getlogin",
"d_getlogin_r", "d_getmnt", "d_getmntent", "d_getnameinfo",
"d_getnbyaddr", "d_getnbyname", "d_getnent", "d_getnetbyaddr_r",
"d_getnetbyname_r", "d_getnetent_r", "d_getnetprotos", "d_getpagsz",
"d_getpbyname", "d_getpbynumber", "d_getpent", "d_getpgid",
"d_getpgrp", "d_getpgrp2", "d_getppid", "d_getprior",
"d_getprotobyname_r", "d_getprotobynumber_r", "d_getprotoent_r",
"d_getprotoprotos", "d_getprpwnam", "d_getpwent", "d_getpwent_r",
"d_getpwnam_r", "d_getpwuid_r", "d_getsbyname", "d_getsbyport",
"d_getsent", "d_getservbyname_r", "d_getservbyport_r",
"d_getservent_r", "d_getservprotos", "d_getspnam", "d_getspnam_r",
"d_gettimeod", "d_gmtime64", "d_gmtime_r", "d_gnulibc", "d_grpasswd",
"d_has_C_UTF8", "d_hasmntopt", "d_htonl", "d_hypot", "d_ilogb",
"d_ilogbl", "d_inc_version_list", "d_inetaton", "d_inetntop",
"d_inetpton", "d_int64_t", "d_ip_mreq", "d_ip_mreq_source",
"d_ipv6_mreq", "d_ipv6_mreq_source", "d_isascii", "d_isblank",
"d_isfinite", "d_isfinitel", "d_isinf", "d_isinfl", "d_isless",
"d_isnan", "d_isnanl", "d_isnormal", "d_j0", "d_j0l", "d_killpg",
"d_lc_monetary_2008", "d_lchown", "d_ldbl_dig", "d_ldexpl",
"d_lgamma", "d_lgamma_r", "d_libm_lib_version", "d_libname_unique",
"d_link", "d_linkat", "d_llrint", "d_llrintl", "d_llround",
"d_llroundl", "d_localeconv_l", "d_localtime64", "d_localtime_r",
"d_localtime_r_needs_tzset", "d_locconv", "d_lockf", "d_log1p",
"d_log2", "d_logb", "d_long_double_style_ieee",
"d_long_double_style_ieee_doubledouble",
"d_long_double_style_ieee_extended", "d_long_double_style_ieee_std",
"d_long_double_style_vax", "d_longdbl", "d_longlong", "d_lrint",
"d_lrintl", "d_lround", "d_lroundl", "d_lseekproto", "d_lstat",
"d_madvise", "d_malloc_good_size", "d_malloc_size",
"d_malloc_usable_size", "d_mblen", "d_mbrlen", "d_mbrtowc",
"d_mbstowcs", "d_mbtowc", "d_memmem", "d_memrchr", "d_mkdir",
"d_mkdtemp", "d_mkfifo", "d_mkostemp", "d_mkstemp", "d_mkstemps",
"d_mktime", "d_mktime64", "d_mmap", "d_modfl", "d_modflproto",
"d_mprotect", "d_msg", "d_msg_ctrunc", "d_msg_dontroute",
"d_msg_oob", "d_msg_peek", "d_msg_proxy", "d_msgctl", "d_msgget",
"d_msghdr_s", "d_msgrcv", "d_msgsnd", "d_msync", "d_munmap",
"d_mymalloc", "d_nan", "d_nanosleep", "d_ndbm",
"d_ndbm_h_uses_prototypes", "d_nearbyint", "d_newlocale",
"d_nextafter", "d_nexttoward", "d_nice", "d_nl_langinfo",
"d_nl_langinfo_l", "d_non_int_bitfields", "d_nv_preserves_uv",
"d_nv_zero_is_allbits_zero", "d_off64_t",
"d_old_pthread_create_joinable", "d_oldpthreads", "d_oldsock",
"d_open3", "d_openat", "d_pathconf", "d_pause",
"d_perl_otherlibdirs", "d_phostname", "d_pipe", "d_pipe2", "d_poll",
"d_portable", "d_prctl", "d_prctl_set_name", "d_PRId64",
"d_PRIeldbl", "d_PRIEUldbl", "d_PRIfldbl", "d_PRIFUldbl",
"d_PRIgldbl", "d_PRIGUldbl", "d_PRIi64", "d_printf_format_null",
"d_PRIo64", "d_PRIu64", "d_PRIx64", "d_PRIXU64", "d_procselfexe",
"d_pseudofork", "d_pthread_atfork", "d_pthread_attr_setscope",
"d_pthread_yield", "d_ptrdiff_t", "d_pwage", "d_pwchange",
"d_pwclass", "d_pwcomment", "d_pwexpire", "d_pwgecos", "d_pwpasswd",
"d_pwquota", "d_qgcvt", "d_quad", "d_querylocale", "d_random_r",
"d_re_comp", "d_readdir", "d_readdir64_r", "d_readdir_r",
"d_readlink", "d_readv", "d_recvmsg", "d_regcmp", "d_regcomp",
"d_remainder", "d_remquo", "d_rename", "d_renameat", "d_rewinddir",
"d_rint", "d_rmdir", "d_round", "d_sbrkproto", "d_scalbn",
"d_scalbnl", "d_sched_yield", "d_scm_rights", "d_SCNfldbl",
"d_seekdir", "d_select", "d_sem", "d_semctl", "d_semctl_semid_ds",
"d_semctl_semun", "d_semget", "d_semop", "d_sendmsg", "d_setegid",
"d_seteuid", "d_setgrent", "d_setgrent_r", "d_setgrps", "d_sethent",
"d_sethostent_r", "d_setitimer", "d_setlinebuf", "d_setlocale",
"d_setlocale_accepts_any_locale_name", "d_setlocale_r", "d_setnent",
"d_setnetent_r", "d_setpent", "d_setpgid", "d_setpgrp", "d_setpgrp2",
"d_setprior", "d_setproctitle", "d_setprotoent_r", "d_setpwent",
"d_setpwent_r", "d_setregid", "d_setresgid", "d_setresuid",
"d_setreuid", "d_setrgid", "d_setruid", "d_setsent",
"d_setservent_r", "d_setsid", "d_setvbuf", "d_shm", "d_shmat",
"d_shmatprototype", "d_shmctl", "d_shmdt", "d_shmget", "d_sigaction",
"d_siginfo_si_addr", "d_siginfo_si_band", "d_siginfo_si_errno",
"d_siginfo_si_fd", "d_siginfo_si_pid", "d_siginfo_si_status",
"d_siginfo_si_uid", "d_siginfo_si_value", "d_signbit",
"d_sigprocmask", "d_sigsetjmp", "d_sin6_scope_id", "d_sitearch",
"d_snprintf", "d_sockaddr_in6", "d_sockaddr_sa_len",
"d_sockaddr_storage", "d_sockatmark", "d_sockatmarkproto",
"d_socket", "d_socklen_t", "d_sockpair", "d_socks5_init", "d_sqrtl",
"d_srand48_r", "d_srandom_r", "d_sresgproto", "d_sresuproto",
"d_stat", "d_statblks", "d_statfs_f_flags", "d_statfs_s",
"d_static_inline", "d_statvfs", "d_stdio_cnt_lval",
"d_stdio_ptr_lval", "d_stdio_ptr_lval_nochange_cnt",
"d_stdio_ptr_lval_sets_cnt", "d_stdio_stream_array", "d_stdiobase",
"d_stdstdio", "d_strcoll", "d_strerror_l", "d_strerror_r",
"d_strftime", "d_strlcat", "d_strlcpy", "d_strnlen", "d_strtod",
"d_strtod_l", "d_strtol", "d_strtold", "d_strtold_l", "d_strtoll",
"d_strtoq", "d_strtoul", "d_strtoull", "d_strtouq", "d_strxfrm",
"d_strxfrm_l", "d_suidsafe", "d_symlink", "d_syscall",
"d_syscallproto", "d_sysconf", "d_sysernlst", "d_syserrlst",
"d_system", "d_tcgetpgrp", "d_tcsetpgrp", "d_telldir",
"d_telldirproto", "d_tgamma", "d_thread_local",
"d_thread_safe_nl_langinfo_l", "d_time", "d_timegm", "d_times",
"d_tm_tm_gmtoff", "d_tm_tm_zone", "d_tmpnam_r", "d_towlower",
"d_towupper", "d_trunc", "d_truncate", "d_truncl", "d_ttyname_r",
"d_tzname", "d_u32align", "d_ualarm", "d_umask", "d_uname",
"d_union_semun", "d_unlinkat", "d_unordered", "d_unsetenv",
"d_uselocale", "d_usleep", "d_usleepproto", "d_ustat",
"d_vendorarch", "d_vendorbin", "d_vendorlib", "d_vendorscript",
"d_vfork", "d_void_closedir", "d_voidsig", "d_voidtty",
"d_vsnprintf", "d_wait4", "d_waitpid", "d_wcrtomb", "d_wcscmp",
"d_wcstombs", "d_wcsxfrm", "d_wctomb", "d_writev", "d_xenix", "date",
"db_hashtype", "db_prefixtype", "db_version_major",
"db_version_minor", "db_version_patch", "default_inc_excludes_dot",
"direntrytype", "dlext", "dlsrc", "doubleinfbytes", "doublekind",
"doublemantbits", "doublenanbytes", "doublesize", "drand01",
"drand48_r_proto", "dtrace", "dtraceobject", "dtracexnolibs",
"dynamic_ext"
e "eagain", "ebcdic", "echo", "egrep", "emacs", "endgrent_r_proto",
"endhostent_r_proto", "endnetent_r_proto", "endprotoent_r_proto",
"endpwent_r_proto", "endservent_r_proto", "eunicefix", "exe_ext",
"expr", "extensions", "extern_C", "extras"
f "fflushall", "fflushNULL", "find", "firstmakefile", "flex",
"fpossize", "fpostype", "freetype", "from", "full_ar", "full_csh",
"full_sed"
g "gccansipedantic", "gccosandvers", "gccversion", "getgrent_r_proto",
"getgrgid_r_proto", "getgrnam_r_proto", "gethostbyaddr_r_proto",
"gethostbyname_r_proto", "gethostent_r_proto", "getlogin_r_proto",
"getnetbyaddr_r_proto", "getnetbyname_r_proto", "getnetent_r_proto",
"getprotobyname_r_proto", "getprotobynumber_r_proto",
"getprotoent_r_proto", "getpwent_r_proto", "getpwnam_r_proto",
"getpwuid_r_proto", "getservbyname_r_proto", "getservbyport_r_proto",
"getservent_r_proto", "getspnam_r_proto", "gidformat", "gidsign",
"gidsize", "gidtype", "glibpth", "gmake", "gmtime_r_proto",
"gnulibc_version", "grep", "groupcat", "groupstype", "gzip"
h "h_fcntl", "h_sysfile", "hint", "hostcat", "hostgenerate",
"hostosname", "hostperl", "html1dir", "html1direxp", "html3dir",
"html3direxp"
i "i16size", "i16type", "i32size", "i32type", "i64size", "i64type",
"i8size", "i8type", "i_arpainet", "i_bfd", "i_bsdioctl", "i_crypt",
"i_db", "i_dbm", "i_dirent", "i_dlfcn", "i_execinfo", "i_fcntl",
"i_fenv", "i_fp", "i_fp_class", "i_gdbm", "i_gdbm_ndbm",
"i_gdbmndbm", "i_grp", "i_ieeefp", "i_inttypes", "i_langinfo",
"i_libutil", "i_locale", "i_machcthr", "i_malloc", "i_mallocmalloc",
"i_mntent", "i_ndbm", "i_netdb", "i_neterrno", "i_netinettcp",
"i_niin", "i_poll", "i_prot", "i_pthread", "i_pwd", "i_quadmath",
"i_rpcsvcdbm", "i_sgtty", "i_shadow", "i_socks", "i_stdbool",
"i_stdint", "i_stdlib", "i_sunmath", "i_sysaccess", "i_sysdir",
"i_sysfile", "i_sysfilio", "i_sysin", "i_sysioctl", "i_syslog",
"i_sysmman", "i_sysmode", "i_sysmount", "i_sysndir", "i_sysparam",
"i_syspoll", "i_sysresrc", "i_syssecrt", "i_sysselct", "i_syssockio",
"i_sysstat", "i_sysstatfs", "i_sysstatvfs", "i_systime",
"i_systimek", "i_systimes", "i_systypes", "i_sysuio", "i_sysun",
"i_sysutsname", "i_sysvfs", "i_syswait", "i_termio", "i_termios",
"i_time", "i_unistd", "i_ustat", "i_utime", "i_vfork", "i_wchar",
"i_wctype", "i_xlocale", "ignore_versioned_solibs",
"inc_version_list", "inc_version_list_init", "incpath", "incpth",
"inews", "initialinstalllocation", "installarchlib", "installbin",
"installhtml1dir", "installhtml3dir", "installman1dir",
"installman3dir", "installprefix", "installprefixexp",
"installprivlib", "installscript", "installsitearch",
"installsitebin", "installsitehtml1dir", "installsitehtml3dir",
"installsitelib", "installsiteman1dir", "installsiteman3dir",
"installsitescript", "installstyle", "installusrbinperl",
"installvendorarch", "installvendorbin", "installvendorhtml1dir",
"installvendorhtml3dir", "installvendorlib", "installvendorman1dir",
"installvendorman3dir", "installvendorscript", "intsize",
"issymlink", "ivdformat", "ivsize", "ivtype"
k "known_extensions", "ksh"
l "ld", "ld_can_script", "lddlflags", "ldflags",
"ldflags_uselargefiles", "ldlibpthname", "less", "lib_ext", "libc",
"libperl", "libpth", "libs", "libsdirs", "libsfiles", "libsfound",
"libspath", "libswanted", "libswanted_uselargefiles", "line", "lint",
"lkflags", "ln", "lns", "localtime_r_proto", "locincpth",
"loclibpth", "longdblinfbytes", "longdblkind", "longdblmantbits",
"longdblnanbytes", "longdblsize", "longlongsize", "longsize", "lp",
"lpr", "ls", "lseeksize", "lseektype"
m "mail", "mailx", "make", "make_set_make", "mallocobj", "mallocsrc",
"malloctype", "man1dir", "man1direxp", "man1ext", "man3dir",
"man3direxp", "man3ext", "mips_type", "mistrustnm", "mkdir",
"mmaptype", "modetype", "more", "multiarch", "mv", "myarchname",
"mydomain", "myhostname", "myuname"
n "n", "need_va_copy", "netdb_hlen_type", "netdb_host_type",
"netdb_name_type", "netdb_net_type", "nm", "nm_opt", "nm_so_opt",
"nonxs_ext", "nroff", "nv_overflows_integers_at",
"nv_preserves_uv_bits", "nveformat", "nvEUformat", "nvfformat",
"nvFUformat", "nvgformat", "nvGUformat", "nvmantbits", "nvsize",
"nvtype"
o "o_nonblock", "obj_ext", "old_pthread_create_joinable", "optimize",
"orderlib", "osname", "osvers", "otherlibdirs"
p "package", "pager", "passcat", "patchlevel", "path_sep", "perl",
"perl5"
P “PERL_API_REVISION”, “PERL_API_SUBVERSION”, “PERL_API_VERSION”, #
"PERL_CONFIG_SH", "PERL_PATCHLEVEL", "perl_patchlevel",
"PERL_REVISION", "perl_static_inline", "PERL_SUBVERSION",
"perl_thread_local", "PERL_VERSION", "perladmin", "perllibs",
"perlpath", "pg", "phostname", "pidtype", "plibpth", "pmake", "pr",
"prefix", "prefixexp", "privlib", "privlibexp", "procselfexe",
"ptrsize"
q "quadkind", "quadtype"
r "randbits", "randfunc", "random_r_proto", "randseedtype", "ranlib",
"rd_nodata", "readdir64_r_proto", "readdir_r_proto", "revision",
"rm", "rm_try", "rmail", "run", "runnm"
s "sched_yield", "scriptdir", "scriptdirexp", "sed", "seedfunc",
"selectminbits", "selecttype", "sendmail", "setgrent_r_proto",
"sethostent_r_proto", "setlocale_r_proto", "setnetent_r_proto",
"setprotoent_r_proto", "setpwent_r_proto", "setservent_r_proto",
"sGMTIME_max", "sGMTIME_min", "sh", "shar", "sharpbang", "shmattype",
"shortsize", "shrpenv", "shsharp", "sig_count", "sig_name",
"sig_name_init", "sig_num", "sig_num_init", "sig_size", "signal_t",
"sitearch", "sitearchexp", "sitebin", "sitebinexp", "sitehtml1dir",
"sitehtml1direxp", "sitehtml3dir", "sitehtml3direxp", "sitelib",
"sitelib_stem", "sitelibexp", "siteman1dir", "siteman1direxp",
"siteman3dir", "siteman3direxp", "siteprefix", "siteprefixexp",
"sitescript", "sitescriptexp", "sizesize", "sizetype", "sleep",
"sLOCALTIME_max", "sLOCALTIME_min", "smail", "so", "sockethdr",
"socketlib", "socksizetype", "sort", "spackage", "spitshell",
"sPRId64", "sPRIeldbl", "sPRIEUldbl", "sPRIfldbl", "sPRIFUldbl",
"sPRIgldbl", "sPRIGUldbl", "sPRIi64", "sPRIo64", "sPRIu64",
"sPRIx64", "sPRIXU64", "srand48_r_proto", "srandom_r_proto", "src",
"sSCNfldbl", "ssizetype", "st_dev_sign", "st_dev_size",
"st_ino_sign", "st_ino_size", "startperl", "startsh", "static_ext",
"stdchar", "stdio_base", "stdio_bufsiz", "stdio_cnt", "stdio_filbuf",
"stdio_ptr", "stdio_stream_array", "strerror_r_proto", "submit",
"subversion", "sysman", "sysroot"
t "tail", "tar", "targetarch", "targetdir", "targetenv", "targethost",
"targetmkdir", "targetport", "targetsh", "tbl", "tee", "test",
"timeincl", "timetype", "tmpnam_r_proto", "to", "touch", "tr",
"trnl", "troff", "ttyname_r_proto"
u "u16size", "u16type", "u32size", "u32type", "u64size", "u64type",
"u8size", "u8type", "uidformat", "uidsign", "uidsize", "uidtype",
"uname", "uniq", "uquadtype", "use64bitall", "use64bitint",
"usecbacktrace", "usecrosscompile", "usedefaultstrict", "usedevel",
"usedl", "usedtrace", "usefaststdio", "useithreads",
"usekernprocpathname", "uselanginfo", "uselargefiles",
"uselongdouble", "usemallocwrap", "usemorebits", "usemultiplicity",
"usemymalloc", "usenm", "usensgetexecutablepath", "useopcode",
"useperlio", "useposix", "usequadmath", "usereentrant",
"userelocatableinc", "useshrplib", "usesitecustomize", "usesocks",
"usethreads", "usevendorprefix", "useversionedarchname", "usevfork",
"usrinc", "uuname", "uvoformat", "uvsize", "uvtype", "uvuformat",
"uvxformat", "uvXUformat"
v "vendorarch", "vendorarchexp", "vendorbin", "vendorbinexp",
"vendorhtml1dir", "vendorhtml1direxp", "vendorhtml3dir",
"vendorhtml3direxp", "vendorlib", "vendorlib_stem", "vendorlibexp",
"vendorman1dir", "vendorman1direxp", "vendorman3dir",
"vendorman3direxp", "vendorprefix", "vendorprefixexp",
"vendorscript", "vendorscriptexp", "version",
"version_patchlevel_string", "versiononly", "vi"
x "xlibpth", "xlocale_needed"
y "yacc", "yaccflags"
z "zcat", "zip"
GIT DATA #
NOTE #
CCoonnffiigg::::EExxtteennssiioonnss -- hhaasshh llooookkuupp ooff wwhhiicchh ccoorree eexxtteennssiioonnss wweerree bbuuiilltt..
SYNOPSIS #
DESCRIPTION #
dynamic, nonxs, static
AUTHOR #
CCoonnffiigg::::PPeerrll::::VV -- SSttrruuccttuurreedd ddaattaa rreettrriieevvaall ooff ppeerrll --VV oouuttppuutt
SYNOPSIS #
DESCRIPTION #
$conf = myconfig ()
$conf = plv2hash ($text [, ...])
$info = summary ([$conf])
$md5 = signature ([$conf])
The hash structure
build, osname, stamp, options, derived, patches, environment,
config, inc
REASONING #
BUGS #
TODO #
AUTHOR #
COPYRIGHT AND LICENSE #
CCwwdd -- ggeett ppaatthhnnaammee ooff ccuurrrreenntt wwoorrkkiinngg ddiirreeccttoorryy
SYNOPSIS #
DESCRIPTION #
getcwd and friends
getcwd, cwd, fastcwd, fastgetcwd, getdcwd
abs_path and friends
abs_path, realpath, fast_abs_path
$ENV{PWD} #
NOTES #
AUTHOR #
COPYRIGHT #
SEE ALSO #
DDBB -- pprrooggrraammmmaattiicc iinntteerrffaaccee ttoo tthhee PPeerrll ddeebbuuggggiinngg AAPPII
SYNOPSIS #
DESCRIPTION #
Global Variables
$DB::sub, %DB::sub, $DB::single, $DB::signal, $DB::trace, @DB::args,
@DB::dbline, %DB::dbline, $DB::package, $DB::filename, $DB::subname,
$DB::lineno
API Methods
CLIENT->rreeggiisstteerr(()), CLIENT->evalcode(STRING),
CLIENT->skippkg('D::hide'), CLIENT->rruunn(()), CLIENT->sstteepp(()),
CLIENT->nneexxtt(()), CLIENT->ddoonnee(())
Client Callback Methods
CLIENT->iinniitt(()), CLIENT->prestop([STRING]), CLIENT->ssttoopp(()),
CLIENT->iiddllee(()), CLIENT->poststop([STRING]),
CLIENT->evalcode(STRING), CLIENT->cclleeaannuupp(()), CLIENT->output(LIST)
BUGS #
AUTHOR #
DDBBMM__FFiilltteerr -–- FFiilltteerr DDBBMM kkeeyyss//vvaalluueess
SYNOPSIS #
DESCRIPTION #
What is a DBM Filter?
So what's new?
METHODS #
$db->FFiilltteerr__PPuusshh(()) / $db->FFiilltteerr__KKeeyy__PPuusshh(()) /
$db->FFiilltteerr__VVaalluuee__PPuusshh(())
Filter_Push, Filter_Key_Push, Filter_Value_Push
$db->FFiilltteerr__PPoopp(())
$db->FFiilltteerreedd(())
Writing a Filter
Immediate Filters
Canned Filters
"name", params
Filters Included
utf8, encode, compress, int32, null
NOTES #
Maintain Round Trip Integrity
Don't mix filtered & non-filtered data in the same database file.
EXAMPLE #
SEE ALSO #
AUTHOR #
DDBBMM__FFiilltteerr::::ccoommpprreessss -- ffiilltteerr ffoorr DDBBMM__FFiilltteerr
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
AUTHOR #
DDBBMM__FFiilltteerr::::eennccooddee -- ffiilltteerr ffoorr DDBBMM__FFiilltteerr
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
AUTHOR #
DDBBMM__FFiilltteerr::::iinntt3322 -- ffiilltteerr ffoorr DDBBMM__FFiilltteerr
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
AUTHOR #
DDBBMM__FFiilltteerr::::nnuullll -- ffiilltteerr ffoorr DDBBMM__FFiilltteerr
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
AUTHOR #
DDBBMM__FFiilltteerr::::uuttff88 -- ffiilltteerr ffoorr DDBBMM__FFiilltteerr
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
AUTHOR #
DDBB__FFiillee -- PPeerrll55 aacccceessss ttoo BBeerrkkeelleeyy DDBB vveerrssiioonn 11..xx
SYNOPSIS #
DESCRIPTION #
DDBB__HHAASSHH, DDBB__BBTTRREEEE, DDBB__RREECCNNOO #
Using DB_File with Berkeley DB version 2 or greater
Interface to Berkeley DB
Opening a Berkeley DB Database File
Default Parameters
In Memory Databases
DB_HASH #
A Simple Example
DB_BTREE #
Changing the BTREE sort order
Handling Duplicate Keys
The ggeett__dduupp(()) Method
The ffiinndd__dduupp(()) Method
The ddeell__dduupp(()) Method
Matching Partial Keys
DB_RECNO #
The 'bval' Option
A Simple Example
Extra RECNO Methods
$$XX-->>ppuusshh((lliisstt)) ;;, $$vvaalluuee == $$XX-->>ppoopp ;;, $$XX-->>sshhiifftt,
$$XX-->>uunnsshhiifftt((lliisstt)) ;;, $$XX-->>lleennggtthh, $$XX-->>sspplliiccee((ooffffsseett,, lleennggtthh,,
eelleemmeennttss));;
Another Example
THE API INTERFACE #
$$ssttaattuuss == $$XX-->>ggeett(($$kkeeyy,, $$vvaalluuee [[,, $$ffllaaggss]])) ;;, $$ssttaattuuss == $$XX-->>ppuutt(($$kkeeyy,,
$$vvaalluuee [[,, $$ffllaaggss]])) ;;, $$ssttaattuuss == $$XX-->>ddeell(($$kkeeyy [[,, $$ffllaaggss]])) ;;, $$ssttaattuuss ==
$$XX-->>ffdd ;;, $$ssttaattuuss == $$XX-->>sseeqq(($$kkeeyy,, $$vvaalluuee,, $$ffllaaggss)) ;;, $$ssttaattuuss ==
$$XX-->>ssyynncc(([[$$ffllaaggss]])) ;;
DBM FILTERS #
DBM Filter Low-level API
ffiilltteerr__ssttoorree__kkeeyy, ffiilltteerr__ssttoorree__vvaalluuee, ffiilltteerr__ffeettcchh__kkeeyy,
ffiilltteerr__ffeettcchh__vvaalluuee
The Filter
An Example -- the NULL termination problem.
Another Example -- Key is a C int.
HINTS AND TIPS #
Locking: The Trouble with fd
Safe ways to lock a database
TTiiee::::DDBB__LLoocckk, TTiiee::::DDBB__LLoocckkFFiillee, DDBB__FFiillee::::LLoocckk
Sharing Databases With C Applications
The uunnttiiee(()) Gotcha
COMMON QUESTIONS #
Why is there Perl source in my database?
How do I store complex data structures with DB_File?
What does "wide character in subroutine entry" mean?
What does "Invalid Argument" mean?
What does "Bareword 'DB_File' not allowed" mean?
REFERENCES #
HISTORY #
BUGS #
SUPPORT #
AVAILABILITY #
COPYRIGHT #
SEE ALSO #
AUTHOR #
DDaattaa::::DDuummppeerr -- ssttrriinnggiiffiieedd ppeerrll ddaattaa ssttrruuccttuurreess,, ssuuiittaabbllee ffoorr bbootthh pprriinnttiinngg aanndd “"eevvaall"”
SYNOPSIS #
DESCRIPTION #
Methods
_P_A_C_K_A_G_E->new(_A_R_R_A_Y_R_E_F _[, _A_R_R_A_Y_R_E_F_]), _$_O_B_J->Dump _o_r
_P_A_C_K_A_G_E->Dump(_A_R_R_A_Y_R_E_F _[, _A_R_R_A_Y_R_E_F_]), _$_O_B_J->Seen(_[_H_A_S_H_R_E_F_]),
_$_O_B_J->Values(_[_A_R_R_A_Y_R_E_F_]), _$_O_B_J->Names(_[_A_R_R_A_Y_R_E_F_]), _$_O_B_J->Reset
Functions
Dumper(_L_I_S_T)
Configuration Variables or Methods
Exports
Dumper
EXAMPLES #
BUGS #
NOTE #
AUTHOR #
VERSION #
SEE ALSO #
DDeevveell::::PPPPPPoorrtt -- PPeerrll//PPoolllluuttiioonn//PPoorrttaabbiilliittyy
SYNOPSIS #
Start using Devel::PPPort for XS projects
DESCRIPTION #
Why use ppport.h?
How to use ppport.h
Running ppport.h
FUNCTIONS #
WriteFile
GetFileContents
COMPATIBILITY #
Provided Perl compatibility API
Supported Perl API, sorted by version
perl 5.35.9, perl 5.35.8, perl 5.35.7, perl 5.35.6, perl 5.35.5,
perl 5.35.4, perl 5.35.1, perl 5.33.8, perl 5.33.7, perl 5.33.5,
perl 5.33.2, perl 5.32.1, perl 5.31.9, perl 5.31.7, perl 5.31.5,
perl 5.31.4, perl 5.31.3, perl 5.29.10, perl 5.29.9, perl
5.27.11, perl 5.27.9, perl 5.27.8, perl 5.27.7, perl 5.27.6, perl
5.27.5, perl 5.27.4, perl 5.27.3, perl 5.27.2, perl 5.27.1, perl
5.25.11, perl 5.25.10, perl 5.25.9, perl 5.25.8, perl 5.25.7,
perl 5.25.6, perl 5.25.5, perl 5.25.4, perl 5.25.3, perl 5.25.2,
perl 5.25.1, perl 5.24.0, perl 5.23.9, perl 5.23.8, perl 5.23.6,
perl 5.23.5, perl 5.23.2, perl 5.23.0, perl 5.21.10, perl 5.21.9,
perl 5.21.8, perl 5.21.7, perl 5.21.6, perl 5.21.5, perl 5.21.4,
perl 5.21.3, perl 5.21.2, perl 5.21.1, perl 5.19.10, perl 5.19.9,
perl 5.19.7, perl 5.19.5, perl 5.19.4, perl 5.19.3, perl 5.19.2,
perl 5.19.1, perl 5.18.0, perl 5.17.11, perl 5.17.8, perl 5.17.7,
perl 5.17.6, perl 5.17.5, perl 5.17.4, perl 5.17.2, perl 5.17.1,
perl 5.16.0, perl 5.15.8, perl 5.15.7, perl 5.15.6, perl 5.15.4,
perl 5.15.3, perl 5.15.2, perl 5.15.1, perl 5.13.10, perl 5.13.9,
perl 5.13.8, perl 5.13.7, perl 5.13.6, perl 5.13.5, perl 5.13.4,
perl 5.13.3, perl 5.13.2, perl 5.13.1, perl 5.13.0, perl 5.11.5,
perl 5.11.4, perl 5.11.2, perl 5.11.0, perl 5.10.1, perl 5.10.0,
perl 5.9.5, perl 5.9.4, perl 5.9.3, perl 5.9.2, perl 5.9.1, perl
5.9.0, perl 5.8.9, perl 5.8.8, perl 5.8.3, perl 5.8.1, perl
5.8.0, perl 5.7.3, perl 5.7.2, perl 5.7.1, perl 5.7.0, perl
5.6.1, perl 5.6.0, perl 5.005_03, perl 5.005, perl 5.004_05, perl
5.004, perl 5.003_07 (or maybe earlier), Backported version
unknown
BUGS #
AUTHORS #
COPYRIGHT #
SEE ALSO #
DDeevveell::::PPeeeekk -- AA ddaattaa ddeebbuuggggiinngg ttooooll ffoorr tthhee XXSS pprrooggrraammmmeerr
SYNOPSIS #
DESCRIPTION #
Runtime debugging
Memory footprint debugging
EXAMPLES #
A simple scalar string
A simple scalar number
A simple scalar with an extra reference
A reference to a simple scalar
A reference to an array
A reference to a hash
Dumping a large array or hash
A reference to an SV which holds a C pointer
A reference to a subroutine
EXPORTS #
BUGS #
AUTHOR #
SEE ALSO #
DDeevveell::::SSeellffSSttuubbbbeerr -- ggeenneerraattee ssttuubbss ffoorr aa SSeellffLLooaaddiinngg mmoodduullee
SYNOPSIS #
DESCRIPTION #
DDiiggeesstt -- MMoodduulleess tthhaatt ccaallccuullaattee mmeessssaaggee ddiiggeessttss
SYNOPSIS #
DESCRIPTION #
_b_i_n_a_r_y, _h_e_x, _b_a_s_e_6_4
OO INTERFACE #
$ctx = Digest->XXX($arg,...), $ctx = Digest->new(XXX => $arg,...),
$ctx = Digest::XXX->new($arg,...), $other_ctx = $ctx->clone,
$ctx->reset, $ctx->add( $data ), $ctx->add( $chunk1, $chunk2, ... ),
$ctx->addfile( $io_handle ), $ctx->add_bits( $data, $nbits ),
$ctx->add_bits( $bitstring ), $ctx->digest, $ctx->hexdigest,
$ctx->b64digest, $ctx->base64_padded_digest
Digest speed
SEE ALSO #
AUTHOR #
DDiiggeesstt::::MMDD55 -- PPeerrll iinntteerrffaaccee ttoo tthhee MMDD55 AAllggoorriitthhmm
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
md5($data,...), md5_hex($data,...), md5_base64($data,...)
METHODS #
$md5 = Digest::MD5->new, $md5->reset, $md5->clone,
$md5->add($data,...), $md5->addfile($io_handle),
$md5->add_bits($data, $nbits), $md5->add_bits($bitstring),
$md5->digest, $md5->hexdigest, $md5->b64digest, @ctx = $md5->context,
$md5->context(@ctx)
EXAMPLES #
SEE ALSO #
COPYRIGHT #
AUTHORS #
DDiiggeesstt::::SSHHAA -- PPeerrll eexxtteennssiioonn ffoorr SSHHAA--11//222244//225566//338844//551122
SYNOPSIS #
SYNOPSIS (HMAC-SHA) #
ABSTRACT #
DESCRIPTION #
UNICODE AND SIDE EFFECTS #
NIST STATEMENT ON SHA-1 #
PADDING OF BASE64 DIGESTS #
EXPORT #
EXPORTABLE FUNCTIONS #
sshhaa11(($$ddaattaa,, ......)), sshhaa222244(($$ddaattaa,, ......)), sshhaa225566(($$ddaattaa,, ......)),
sshhaa338844(($$ddaattaa,, ......)), sshhaa551122(($$ddaattaa,, ......)), sshhaa551122222244(($$ddaattaa,, ......)),
sshhaa551122225566(($$ddaattaa,, ......)), sshhaa11__hheexx(($$ddaattaa,, ......)), sshhaa222244__hheexx(($$ddaattaa,, ......)),
sshhaa225566__hheexx(($$ddaattaa,, ......)), sshhaa338844__hheexx(($$ddaattaa,, ......)), sshhaa551122__hheexx(($$ddaattaa,,
......)), sshhaa551122222244__hheexx(($$ddaattaa,, ......)), sshhaa551122225566__hheexx(($$ddaattaa,, ......)),
sshhaa11__bbaassee6644(($$ddaattaa,, ......)), sshhaa222244__bbaassee6644(($$ddaattaa,, ......)),
sshhaa225566__bbaassee6644(($$ddaattaa,, ......)), sshhaa338844__bbaassee6644(($$ddaattaa,, ......)),
sshhaa551122__bbaassee6644(($$ddaattaa,, ......)), sshhaa551122222244__bbaassee6644(($$ddaattaa,, ......)),
sshhaa551122225566__bbaassee6644(($$ddaattaa,, ......)), nneeww(($$aallgg)), rreesseett(($$aallgg)), hhaasshhssiizzee,
aallggoorriitthhmm, cclloonnee, aadddd(($$ddaattaa,, ......)), aadddd__bbiittss(($$ddaattaa,, $$nnbbiittss)),
aadddd__bbiittss(($$bbiittss)), aaddddffiillee((**FFIILLEE)), aaddddffiillee(($$ffiilleennaammee [[,, $$mmooddee]])),
ggeettssttaattee, ppuuttssttaattee(($$ssttrr)), dduummpp(($$ffiilleennaammee)), llooaadd(($$ffiilleennaammee)), ddiiggeesstt,
hheexxddiiggeesstt, bb6644ddiiggeesstt, hhmmaacc__sshhaa11(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa222244(($$ddaattaa,,
$$kkeeyy)), hhmmaacc__sshhaa225566(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa338844(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa551122(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa551122222244(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa551122225566(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa11__hheexx(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa222244__hheexx(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa225566__hheexx(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa338844__hheexx(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa551122__hheexx(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa551122222244__hheexx(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa551122225566__hheexx(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa11__bbaassee6644(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa222244__bbaassee6644(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa225566__bbaassee6644(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa338844__bbaassee6644(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa551122__bbaassee6644(($$ddaattaa,, $$kkeeyy)), hhmmaacc__sshhaa551122222244__bbaassee6644(($$ddaattaa,, $$kkeeyy)),
hhmmaacc__sshhaa551122225566__bbaassee6644(($$ddaattaa,, $$kkeeyy))
SEE ALSO #
AUTHOR #
ACKNOWLEDGMENTS #
COPYRIGHT AND LICENSE #
DDiiggeesstt::::bbaassee -- DDiiggeesstt bbaassee ccllaassss
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
DDiiggeesstt::::ffiillee -- CCaallccuullaattee ddiiggeessttss ooff ffiilleess
SYNOPSIS #
DESCRIPTION #
digest_file( $file, $algorithm, [$arg,...] ), digest_file_hex( $file,
$algorithm, [$arg,...] ), digest_file_base64( $file, $algorithm,
[$arg,...] )
SEE ALSO #
DDiirrHHaannddllee -- ((oobbssoolleettee)) ssuuppppllyy oobbjjeecctt mmeetthhooddss ffoorr ddiirreeccttoorryy hhaannddlleess
SYNOPSIS #
DESCRIPTION #
DDuummppvvaalluuee -- pprroovviiddeess ssccrreeeenn dduummpp ooff PPeerrll ddaattaa..
SYNOPSIS #
DESCRIPTION #
Creation
"arrayDepth", "hashDepth", "compactDump", "veryCompact",
"globPrint", "dumpDBFiles", "dumpPackages", "dumpReused", "tick",
"quoteHighBit", "printUndef", "usageOnly", unctrl, subdump,
bareStringify, quoteHighBit, stopDbSignal
Methods
dumpValue, dumpValues, stringify, dumpvars, set_quote,
set_unctrl, compactDump, veryCompact, set, get
DDyynnaaLLooaaddeerr -- DDyynnaammiiccaallllyy llooaadd CC lliibbrraarriieess iinnttoo PPeerrll ccooddee
SYNOPSIS #
DESCRIPTION #
@dl_library_path, @dl_resolve_using, @dl_require_symbols,
@dl_librefs, @dl_modules, @dl_shared_objects, ddll__eerrrroorr(()), $dl_debug,
$dl_dlext, ddll__ffiinnddffiillee(()), ddll__eexxppaannddssppeecc(()), ddll__llooaadd__ffiillee(()),
ddll__uunnllooaadd__ffiillee(()), ddll__llooaadd__ffllaaggss(()), ddll__ffiinndd__ssyymmbbooll(()),
ddll__ffiinndd__ssyymmbbooll__aannyywwhheerree(()), ddll__uunnddeeff__ssyymmbboollss(()), ddll__iinnssttaallll__xxssuubb(()),
bboooottssttrraapp(())
AUTHOR #
EEnnccooddee -- cchhaarraacctteerr eennccooddiinnggss iinn PPeerrll
SYNOPSIS #
Table of Contents
Encode::Alias - Alias definitions to encodings, Encode::Encoding
- Encode Implementation Base Class, Encode::Supported - List of
Supported Encodings, Encode::CN - Simplified Chinese Encodings,
Encode::JP - Japanese Encodings, Encode::KR - Korean Encodings,
Encode::TW - Traditional Chinese Encodings
DESCRIPTION #
TERMINOLOGY #
THE PERL ENCODING API #
Basic methods
Listing available encodings
Defining Aliases
Finding IANA Character Set Registry names
Encoding via PerlIO
Handling Malformed Data
List of _C_H_E_C_K values
perlqq mode (_C_H_E_C_K = Encode::FB_PERLQQ), HTML charref mode (_C_H_E_C_K
= Encode::FB_HTMLCREF), XML charref mode (_C_H_E_C_K =
Encode::FB_XMLCREF)
coderef for CHECK
Defining Encodings
The UTF8 flag
Goal #1:, Goal #2:, Goal #3:, Goal #4:
Messing with Perl's Internals
UTF-8 vs. utf8 vs. UTF8
SEE ALSO #
MAINTAINER #
COPYRIGHT #
EEnnccooddee::::AAlliiaass -- aalliiaass ddeeffiinniittiioonnss ttoo eennccooddiinnggss
SYNOPSIS #
DESCRIPTION #
As a simple string, As a qr// compiled regular expression, e.g.:, As
a code reference, e.g.:
Alias overloading
SEE ALSO #
EEnnccooddee::::BByyttee -- SSiinnggllee BByyttee EEnnccooddiinnggss
SYNOPSIS #
ABSTRACT #
DESCRIPTION #
SEE ALSO #
EEnnccooddee::::CCJJKKCCoonnssttaannttss -–- IInntteerrnnaallllyy uusseedd bbyy EEnnccooddee::::????::::IISSOO__22002222__ EEnnccooddee::::CCNN -- CChhiinnaa--bbaasseedd CChhiinneessee EEnnccooddiinnggss
SYNOPSIS #
DESCRIPTION #
NOTES #
BUGS #
SEE ALSO #
EEnnccooddee::::CCNN::::HHZZ -–- iinntteerrnnaallllyy uusseedd bbyy EEnnccooddee::::CCNN EEnnccooddee::::CCoonnffiigg -–- iinntteerrnnaallllyy uusseedd bbyy EEnnccooddee EEnnccooddee::::EEBBCCDDIICC -- EEBBCCDDIICC EEnnccooddiinnggss
SYNOPSIS #
ABSTRACT #
DESCRIPTION #
SEE ALSO #
EEnnccooddee::::EEnnccooddeerr -–- OObbjjeecctt OOrriieenntteedd EEnnccooddeerr
SYNOPSIS #
ABSTRACT #
Description
Predefined Methods
$e = Encode::Encoder->new([$data, $encoding]);, eennccooddeerr(()),
$e->data([$data]), $e->encoding([$encoding]),
$e->bytes([$encoding])
Example: base64 transcoder
Operator Overloading
SEE ALSO #
EEnnccooddee::::EEnnccooddiinngg -- EEnnccooddee IImmpplleemmeennttaattiioonn BBaassee CCllaassss
SYNOPSIS #
DESCRIPTION #
Methods you should implement
->encode($string [,$check]), ->decode($octets [,$check]),
->cat_decode($destination, $octets, $offset, $terminator
[,$check])
Other methods defined in Encode::Encodings
->name, ->mime_name, ->renew, ->renewed, ->ppeerrlliioo__ookk(()),
->nneeeeddss__lliinneess(())
Example: Encode::ROT13
Why the heck Encode API is different?
Compiled Encodings
SEE ALSO #
Scheme 1, Scheme 2, Other Schemes
EEnnccooddee::::GGSSMM00333388 -–- EETTSSII GGSSMM 0033..3388 EEnnccooddiinngg
SYNOPSIS #
DESCRIPTION #
Septets
BUGS #
SEE ALSO #
EEnnccooddee::::GGuueessss -–- GGuueesssseess eennccooddiinngg ffrroomm ddaattaa
SYNOPSIS #
ABSTRACT #
DESCRIPTION #
Encode::Guess->set_suspects, Encode::Guess->add_suspects,
Encode::decode("Guess" ...), Encode::Guess->guess($data),
guess_encoding($data, [, _l_i_s_t _o_f _s_u_s_p_e_c_t_s])
CAVEATS #
TO DO #
SEE ALSO #
EEnnccooddee::::JJPP -- JJaappaanneessee EEnnccooddiinnggss
SYNOPSIS #
ABSTRACT #
DESCRIPTION #
Note on ISO-2022-JP(-1)?
BUGS #
SEE ALSO #
EEnnccooddee::::JJPP::::HH22ZZ -–- iinntteerrnnaallllyy uusseedd bbyy EEnnccooddee::::JJPP::::22002222__JJPP EEnnccooddee::::JJPP::::JJIISS77 -–- iinntteerrnnaallllyy uusseedd bbyy EEnnccooddee::::JJPP EEnnccooddee::::KKRR -- KKoorreeaann EEnnccooddiinnggss
SYNOPSIS #
DESCRIPTION #
BUGS #
SEE ALSO #
EEnnccooddee::::KKRR::::22002222__KKRR -–- iinntteerrnnaallllyy uusseedd bbyy EEnnccooddee::::KKRR EEnnccooddee::::MMIIMMEE::::HHeeaaddeerr -–- MMIIMMEE eennccooddiinngg ffoorr aann uunnssttrruuccttuurreedd eemmaaiill hheeaaddeerr
SYNOPSIS #
ABSTRACT #
DESCRIPTION #
BUGS #
AUTHORS #
SEE ALSO #
EEnnccooddee::::MMIIMMEE::::NNaammee,, EEnnccooddee::::MMIIMMEE::::NNAAMMEE -–- iinntteerrnnaallllyy uusseedd bbyy EEnnccooddee
SEE ALSO #
EEnnccooddee::::PPeerrllIIOO -–- aa ddeettaaiilleedd ddooccuummeenntt oonn EEnnccooddee aanndd PPeerrllIIOO Overview How does it work? Line Buffering How can I tell whether my encoding fully supports PerlIO ?
SEE ALSO #
EEnnccooddee::::SSuuppppoorrtteedd -–- EEnnccooddiinnggss ssuuppppoorrtteedd bbyy EEnnccooddee
DESCRIPTION #
Encoding Names
Supported Encodings
Built-in Encodings
Encode::Unicode -- other Unicode encodings
Encode::Byte -- Extended ASCII
ISO-8859 and corresponding vendor mappings, KOI8 - De Facto
Standard for the Cyrillic world
gsm0338 - Hentai Latin 1
gsm0338 support before 2.19
CJK: Chinese, Japanese, Korean (Multibyte)
Encode::CN -- Continental China, Encode::JP -- Japan, Encode::KR
-- Korea, Encode::TW -- Taiwan, Encode::HanExtra -- More Chinese
via CPAN, Encode::JIS2K -- JIS X 0213 encodings via CPAN
Miscellaneous encodings
Encode::EBCDIC, Encode::Symbols, Encode::MIME::Header,
Encode::Guess
Unsupported encodings
ISO-2022-JP-2 [RFC1554], ISO-2022-CN [RFC1922], Various HP-UX encodings,
Cyrillic encoding ISO-IR-111, ISO-8859-8-1 [Hebrew], ISIRI 3342, Iran
System, ISIRI 2900 [Farsi], Thai encoding TCVN, Vietnamese encodings VPS,
Various Mac encodings, (Mac) Indic encodings
Encoding vs. Charset -- terminology
Encoding Classification (by Anton Tagunov and Dan Kogai)
Microsoft-related naming mess
KS_C_5601-1987, GB2312, Big5, Shift_JIS
Glossary
character repertoire, coded character set (CCS), character encoding
scheme (CES), charset (in MIME context), EUC, ISO-2022, UCS, UCS-2,
Unicode, UTF, UTF-16
See Also
References
ECMA, ECMA-035 (eq "ISO-2022"), IANA, Assigned Charset Names by IANA,
ISO, RFC, UC, Unicode Glossary
Other Notable Sites
czyborra.com, CJK.inf, Jungshik Shin's Hangul FAQ, debian.org:
"Introduction to i18n"
Offline sources
"CJKV Information Processing" by Ken Lunde
EEnnccooddee::::SSyymmbbooll -- SSyymmbbooll EEnnccooddiinnggss
SYNOPSIS #
ABSTRACT #
DESCRIPTION #
SEE ALSO #
EEnnccooddee::::TTWW -- TTaaiiwwaann--bbaasseedd CChhiinneessee EEnnccooddiinnggss
SYNOPSIS #
DESCRIPTION #
NOTES #
BUGS #
SEE ALSO #
EEnnccooddee::::UUnniiccooddee -–- VVaarriioouuss UUnniiccooddee TTrraannssffoorrmmaattiioonn FFoorrmmaattss
SYNOPSIS #
ABSTRACT #
<http://www.unicode.org/glossary/> says:, Quick Reference
Size, Endianness, and BOM
by size
by endianness
BOM as integer when fetched in network byte order
Surrogate Pairs
Error Checking
SEE ALSO #
EEnnccooddee::::UUnniiccooddee::::UUTTFF77 -–- UUTTFF--77 eennccooddiinngg
SYNOPSIS #
ABSTRACT #
In Practice
SEE ALSO #
EEnngglliisshh -- uussee nniiccee EEnngglliisshh ((oorr aawwkk)) nnaammeess ffoorr uuggllyy ppuunnccttuuaattiioonn vvaarriiaabblleess
SYNOPSIS #
DESCRIPTION #
PERFORMANCE #
EEnnvv -- ppeerrll mmoodduullee tthhaatt iimmppoorrttss eennvviirroonnmmeenntt vvaarriiaabblleess aass ssccaallaarrss oorr aarrrraayyss
SYNOPSIS #
DESCRIPTION #
LIMITATIONS #
AUTHOR #
EErrrrnnoo -- SSyysstteemm eerrrrnnoo ccoonnssttaannttss
SYNOPSIS #
DESCRIPTION #
CAVEATS #
AUTHOR #
COPYRIGHT #
EExxppoorrtteerr -- IImmpplleemmeennttss ddeeffaauulltt iimmppoorrtt mmeetthhoodd ffoorr mmoodduulleess
SYNOPSIS #
DESCRIPTION #
How to Export
Selecting What to Export
How to Import
"use YourModule;", "use YourModule ();", "use YourModule
qw(...);"
Advanced Features
Specialised Import Lists
Exporting Without Using Exporter's import Method
Exporting Without Inheriting from Exporter
Module Version Checking
Managing Unknown Symbols
Tag Handling Utility Functions
Generating Combined Tags
"AUTOLOAD"ed Constants
Good Practices
Declaring @EXPORT_OK and Friends
Playing Safe
What Not to Export
SEE ALSO #
LICENSE #
EExxppoorrtteerr::::HHeeaavvyy -- EExxppoorrtteerr gguuttss
SYNOPSIS #
DESCRIPTION #
EExxttUUttiillss::::CCBBuuiillddeerr -- CCoommppiillee aanndd lliinnkk CC ccooddee ffoorr PPeerrll mmoodduulleess
SYNOPSIS #
DESCRIPTION #
METHODS #
new, have_compiler, have_cplusplus, compile, "object_file",
"include_dirs", "extra_compiler_flags", "C++", link, lib_file,
module_name, extra_linker_flags, link_executable, exe_file,
object_file, lib_file, exe_file, prelink, need_prelink,
extra_link_args_after_prelink
TO DO #
HISTORY #
SUPPORT #
AUTHOR #
COPYRIGHT #
SEE ALSO #
EExxttUUttiillss::::CCBBuuiillddeerr::::PPllaattffoorrmm::::WWiinnddoowwss -- BBuuiillddeerr ccllaassss ffoorr WWiinnddoowwss ppllaattffoorrmmss
DESCRIPTION #
AUTHOR #
SEE ALSO #
EExxttUUttiillss::::CCoommmmaanndd -- uuttiilliittiieess ttoo rreeppllaaccee ccoommmmoonn UUNNIIXX ccoommmmaannddss iinn MMaakkeeffiilleess eettcc..
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
cat
eqtime
rm_rf
rm_f
touch
mv
cp
chmod
mkpath
test_f
test_d
dos2unix
SEE ALSO #
AUTHOR #
EExxttUUttiillss::::CCoommmmaanndd::::MMMM -- CCoommmmaannddss ffoorr tthhee MMMM’’ss ttoo uussee iinn MMaakkeeffiilleess
SYNOPSIS #
DESCRIPTION #
tteesstt__hhaarrnneessss
ppoodd22mmaann
wwaarrnn__iiff__oolldd__ppaacckklliisstt
ppeerrllllooccaall__iinnssttaallll
uunniinnssttaallll
tteesstt__ss
ccpp__nnoonneemmppttyy
EExxttUUttiillss::::CCoonnssttaanntt -- ggeenneerraattee XXSS ccooddee ttoo iimmppoorrtt CC hheeaaddeerr ccoonnssttaannttss
SYNOPSIS #
DESCRIPTION #
USAGE #
IV, UV, NV, PV, PVN, SV, YES, NO, UNDEF #
FUNCTIONS #
constant_types
XS_constant PACKAGE, TYPES, XS_SUBNAME, C_SUBNAME
autoload PACKAGE, VERSION, AUTOLOADER
WriteMakefileSnippet
WriteConstants ATTRIBUTE => VALUE [, ...], NAME, DEFAULT_TYPE,
BREAKOUT_AT, NAMES, PROXYSUBS, C_FH, C_FILE, XS_FH, XS_FILE, XS_SUBNAME, #
C_SUBNAME #
AUTHOR #
EExxttUUttiillss::::CCoonnssttaanntt::::BBaassee -- bbaassee ccllaassss ffoorr EExxttUUttiillss::::CCoonnssttaanntt oobbjjeeccttss
SYNOPSIS #
DESCRIPTION #
USAGE #
header
memEQ_clause args_hashref
dump_names arg_hashref, ITEM..
assign arg_hashref, VALUE..
return_clause arg_hashref, ITEM
switch_clause arg_hashref, NAMELEN, ITEMHASH, ITEM..
params WHAT
dogfood arg_hashref, ITEM..
normalise_items args, default_type, seen_types, seen_items, ITEM..
C_constant arg_hashref, ITEM.., name, type, value, macro, default, pre,
post, def_pre, def_post, utf8, weight
BUGS #
AUTHOR #
EExxttUUttiillss::::CCoonnssttaanntt::::UUttiillss -- hheellppeerr ffuunnccttiioonnss ffoorr EExxttUUttiillss::::CCoonnssttaanntt
SYNOPSIS #
DESCRIPTION #
USAGE #
C_stringify NAME
perl_stringify NAME
AUTHOR #
EExxttUUttiillss::::CCoonnssttaanntt::::XXSS -- ggeenneerraattee CC ccooddee ffoorr XXSS mmoodduulleess’’ ccoonnssttaannttss..
SYNOPSIS #
DESCRIPTION #
BUGS #
AUTHOR #
EExxttUUttiillss::::EEmmbbeedd -- UUttiilliittiieess ffoorr eemmbbeeddddiinngg PPeerrll iinn CC//CC++++ aapppplliiccaattiioonnss
SYNOPSIS #
DESCRIPTION #
@EXPORT #
FUNCTIONS #
xxssiinniitt(()), Examples, llddooppttss(()), Examples, ppeerrll__iinncc(()), ccccffllaaggss(()),
ccccddllffllaaggss(()), ccccooppttss(()), xxssii__hheeaaddeerr(()), xsi_protos(@modules),
xsi_body(@modules)
EXAMPLES #
SEE ALSO #
AUTHOR #
EExxttUUttiillss::::IInnssttaallll -- iinnssttaallll ffiilleess ffrroomm hheerree ttoo tthheerree
SYNOPSIS #
VERSION #
DESCRIPTION #
_chmod($$;$)
_warnonce(@)
_choke(@)
_move_file_at_boot( $file, $target, $moan )
_unlink_or_rename( $file, $tryhard, $installing )
Functions
_get_install_skip
_have_write_access
_can_write_dir($dir)
_mkpath($dir,$show,$mode,$verbose,$dry_run)
_copy($from,$to,$verbose,$dry_run)
_chdir($from)
install
_do_cleanup
install_rooted_file( $file )
install_rooted_dir( $dir )
forceunlink( $file, $tryhard )
directory_not_empty( $dir )
install_default
uninstall
inc_uninstall($filepath,$libdir,$verbose,$dry_run,$ignore,$results)
run_filter($cmd,$src,$dest)
pm_to_blib
_autosplit
_invokant
ENVIRONMENT #
PPEERRLL__IINNSSTTAALLLL__RROOOOTT, EEUU__IINNSSTTAALLLL__IIGGNNOORREE__SSKKIIPP, EEUU__IINNSSTTAALLLL__SSIITTEE__SSKKIIPPFFIILLEE, #
EEUU__IINNSSTTAALLLL__AALLWWAAYYSS__CCOOPPYY #
AUTHOR #
LICENSE #
EExxttUUttiillss::::IInnssttaalllleedd -- IInnvveennttoorryy mmaannaaggeemmeenntt ooff iinnssttaalllleedd mmoodduulleess
SYNOPSIS #
DESCRIPTION #
USAGE #
METHODS #
nneeww(()), mmoodduulleess(()), ffiilleess(()), ddiirreeccttoorriieess(()), ddiirreeccttoorryy__ttrreeee(()),
vvaalliiddaattee(()), ppaacckklliisstt(()), vveerrssiioonn(())
EXAMPLE #
AUTHOR #
EExxttUUttiillss::::LLiibblliisstt -- ddeetteerrmmiinnee lliibbrraarriieess ttoo uussee aanndd hhooww ttoo uussee tthheemm
SYNOPSIS #
DESCRIPTION #
For static extensions, For dynamic extensions at build/link time, For
dynamic extensions at load time
EXTRALIBS #
LDLOADLIBS and LD_RUN_PATH
BSLOADLIBS #
PORTABILITY #
VMS implementation
Win32 implementation
SEE ALSO #
EExxttUUttiillss::::MMMM -- OOSS aaddjjuusstteedd EExxttUUttiillss::::MMaakkeeMMaakkeerr ssuubbccllaassss
SYNOPSIS #
DESCRIPTION #
EExxttUUttiillss::::MMMM__AAIIXX -- AAIIXX ssppeecciiffiicc ssuubbccllaassss ooff EExxttUUttiillss::::MMMM__UUnniixx
SYNOPSIS #
DESCRIPTION #
Overridden methods
AUTHOR #
SEE ALSO #
EExxttUUttiillss::::MMMM__AAnnyy -- PPllaattffoorrmm--aaggnnoossttiicc MMMM mmeetthhooddss
SYNOPSIS #
DESCRIPTION #
METHODS #
Cross-platform helper methods
Targets
Init methods
Tools
File::Spec wrappers
Misc
AUTHOR #
EExxttUUttiillss::::MMMM__BBeeOOSS -- mmeetthhooddss ttoo oovveerrrriiddee UUNNXX bbeehhaavviioouurr iinn EExxttUUttiillss::::MMaakkeeMMaakkeerr
SYNOPSIS #
DESCRIPTION #
os_flavor
init_linker
EExxttUUttiillss::::MMMM__CCyyggwwiinn -- mmeetthhooddss ttoo oovveerrrriiddee UUNNXX bbeehhaavviioouurr iinn EExxttUUttiillss::::MMaakkeeMMaakkeerr
SYNOPSIS #
DESCRIPTION #
os_flavor
cflags
replace_manpage_separator
init_linker
maybe_command
dynamic_lib
install
EExxttUUttiillss::::MMMM__DDOOSS -- DDOOSS ssppeecciiffiicc ssuubbccllaassss ooff EExxttUUttiillss::::MMMM__UUnniixx
SYNOPSIS #
DESCRIPTION #
Overridden methods
os_flavor
rreeppllaaccee__mmaannppaaggee__sseeppaarraattoorr
xs_static_lib_is_xs
AUTHOR #
SEE ALSO #
EExxttUUttiillss::::MMMM__DDaarrwwiinn -- ssppeecciiaall bbeehhaavviioorrss ffoorr OOSS XX
SYNOPSIS #
DESCRIPTION #
Overridden Methods
EExxttUUttiillss::::MMMM__MMaaccOOSS -- oonnccee pprroodduucceedd MMaakkeeffiilleess ffoorr MMaaccOOSS CCllaassssiicc
SYNOPSIS #
DESCRIPTION #
EExxttUUttiillss::::MMMM__NNWW55 -- mmeetthhooddss ttoo oovveerrrriiddee UUNNXX bbeehhaavviioouurr iinn EExxttUUttiillss::::MMaakkeeMMaakkeerr
SYNOPSIS #
DESCRIPTION #
os_flavor
init_platform, platform_constants
static_lib_pure_cmd
xs_static_lib_is_xs
dynamic_lib
EExxttUUttiillss::::MMMM__OOSS22 -- mmeetthhooddss ttoo oovveerrrriiddee UUNNXX bbeehhaavviioouurr iinn EExxttUUttiillss::::MMaakkeeMMaakkeerr
SYNOPSIS #
DESCRIPTION #
METHODS #
init_dist
init_linker
os_flavor
xs_static_lib_is_xs
EExxttUUttiillss::::MMMM__OOSS339900 -- OOSS339900 ssppeecciiffiicc ssuubbccllaassss ooff EExxttUUttiillss::::MMMM__UUnniixx
SYNOPSIS #
DESCRIPTION #
Overriden methods
xs_make_dynamic_lib
AUTHOR #
SEE ALSO #
EExxttUUttiillss::::MMMM__QQNNXX -- QQNNXX ssppeecciiffiicc ssuubbccllaassss ooff EExxttUUttiillss::::MMMM__UUnniixx
SYNOPSIS #
DESCRIPTION #
Overridden methods
AUTHOR #
SEE ALSO #
EExxttUUttiillss::::MMMM__UUWWIINN -- UU//WWIINN ssppeecciiffiicc ssuubbccllaassss ooff EExxttUUttiillss::::MMMM__UUnniixx
SYNOPSIS #
DESCRIPTION #
Overridden methods
os_flavor
rreeppllaaccee__mmaannppaaggee__sseeppaarraattoorr
AUTHOR #
SEE ALSO #
EExxttUUttiillss::::MMMM__UUnniixx -- mmeetthhooddss uusseedd bbyy EExxttUUttiillss::::MMaakkeeMMaakkeerr
SYNOPSIS #
DESCRIPTION #
METHODS #
Methods
os_flavor
c_o (o)
xs_obj_opt
dbgoutflag
cflags (o)
const_cccmd (o)
const_config (o)
const_loadlibs (o)
constants (o)
depend (o)
init_DEST
init_dist
dist (o)
dist_basics (o)
dist_ci (o)
dist_core (o)
ddiisstt__ttaarrggeett
ttaarrddiisstt__ttaarrggeett
zziippddiisstt__ttaarrggeett
ttaarrffiillee__ttaarrggeett
zipfile_target
uutardist_target
shdist_target
dlsyms (o)
dynamic_bs (o)
dynamic_lib (o)
xs_dynamic_lib_macros
xs_make_dynamic_lib
exescan
extliblist
find_perl
fixin
force (o)
guess_name
has_link_code
init_dirscan
init_MANPODS
init_MAN1PODS
init_MAN3PODS
init_PM
init_DIRFILESEP
init_main
init_tools
init_linker
init_lib2arch
init_PERL
init_platform, platform_constants
init_PERM
init_xs
install (o)
installbin (o)
linkext (o)
lsdir
macro (o)
makeaperl (o)
xs_static_lib_is_xs (o)
makefile (o)
maybe_command
needs_linking (o)
parse_abstract
parse_version
pasthru (o)
perl_script
perldepend (o)
pm_to_blib
ppd
prefixify
processPL (o)
specify_shell
quote_paren
replace_manpage_separator
cd
oneliner
quote_literal
escape_newlines
max_exec_len
static (o)
xs_make_static_lib
static_lib_closures
static_lib_fixtures
static_lib_pure_cmd
staticmake (o)
subdir_x (o)
subdirs (o)
test (o)
test_via_harness (override)
test_via_script (override)
tool_xsubpp (o)
all_target
top_targets (o)
writedoc
xs_c (o)
xs_cpp (o)
xs_o (o)
SEE ALSO #
EExxttUUttiillss::::MMMM__VVMMSS -- mmeetthhooddss ttoo oovveerrrriiddee UUNNXX bbeehhaavviioouurr iinn EExxttUUttiillss::::MMaakkeeMMaakkeerr
SYNOPSIS #
DESCRIPTION #
Methods always loaded
wraplist
Methods
guess_name (override)
find_perl (override)
_fixin_replace_shebang (override)
maybe_command (override)
pasthru (override)
pm_to_blib (override)
perl_script (override)
replace_manpage_separator
init_DEST
init_DIRFILESEP
init_main (override)
init_tools (override)
init_platform (override)
platform_constants
init_VERSION (override)
constants (override)
special_targets
cflags (override)
const_cccmd (override)
tools_other (override)
init_dist (override)
c_o (override)
xs_c (override)
xs_o (override)
_xsbuild_replace_macro (override)
_xsbuild_value (override)
dlsyms (override)
xs_obj_opt
dynamic_lib (override)
xs_make_static_lib (override)
static_lib_pure_cmd (override)
xs_static_lib_is_xs
extra_clean_files
zipfile_target, tarfile_target, shdist_target
install (override)
perldepend (override)
makeaperl (override)
maketext_filter (override)
prefixify (override)
cd
oneliner
eecchhoo
quote_literal
escape_dollarsigns
escape_all_dollarsigns
escape_newlines
max_exec_len
init_linker
catdir (override), catfile (override)
eliminate_macros
fixpath
os_flavor
is_make_type (override)
make_type (override)
AUTHOR #
EExxttUUttiillss::::MMMM__VVOOSS -- VVOOSS ssppeecciiffiicc ssuubbccllaassss ooff EExxttUUttiillss::::MMMM__UUnniixx
SYNOPSIS #
DESCRIPTION #
Overridden methods
AUTHOR #
SEE ALSO #
EExxttUUttiillss::::MMMM__WWiinn3322 -- mmeetthhooddss ttoo oovveerrrriiddee UUNNXX bbeehhaavviioouurr iinn EExxttUUttiillss::::MMaakkeeMMaakkeerr
SYNOPSIS #
DESCRIPTION #
Overridden methods
ddllssyymmss
xs_dlsyms_ext
replace_manpage_separator
mmaayybbee__ccoommmmaanndd
iinniitt__DDIIRRFFIILLEESSEEPP
init_tools
init_others
init_platform, platform_constants
specify_shell
constants
special_targets
static_lib_pure_cmd
dynamic_lib
extra_clean_files
init_linker
perl_script
quote_dep
xs_obj_opt
pasthru
arch_check (override)
oneliner
cd
max_exec_len
os_flavor
dbgoutflag
cflags
make_type
EExxttUUttiillss::::MMMM__WWiinn9955 -- mmeetthhoodd ttoo ccuussttoommiizzee MMaakkeeMMaakkeerr ffoorr WWiinn99XX
SYNOPSIS #
DESCRIPTION #
Overridden methods
max_exec_len
os_flavor
AUTHOR #
EExxttUUttiillss::::MMYY -- EExxttUUttiillss::::MMaakkeeMMaakkeerr ssuubbccllaassss ffoorr ccuussttoommiizzaattiioonn
SYNOPSIS #
DESCRIPTION #
EExxttUUttiillss::::MMaakkeeMMaakkeerr -- CCrreeaattee aa mmoodduullee MMaakkeeffiillee
SYNOPSIS #
DESCRIPTION #
How To Write A Makefile.PL
Default Makefile Behaviour
make test
make testdb
make install
INSTALL_BASE #
PREFIX and LIB attribute
AFS users
Static Linking of a new Perl Binary
Determination of Perl Library and Installation Locations
Which architecture dependent directory?
Using Attributes and Parameters
ABSTRACT, ABSTRACT_FROM, AUTHOR, BINARY_LOCATION, BUILD_REQUIRES, #
C, CCFLAGS, CONFIG, CONFIGURE, CONFIGURE_REQUIRES, DEFINE, #
DESTDIR, DIR, DISTNAME, DISTVNAME, DLEXT, DL_FUNCS, DL_VARS, #
EXCLUDE_EXT, EXE_FILES, FIRST_MAKEFILE, FULLPERL, FULLPERLRUN, #
FULLPERLRUNINST, FUNCLIST, H, IMPORTS, INC, INCLUDE_EXT, #
INSTALLARCHLIB, INSTALLBIN, INSTALLDIRS, INSTALLMAN1DIR, #
INSTALLMAN3DIR, INSTALLPRIVLIB, INSTALLSCRIPT, INSTALLSITEARCH, #
INSTALLSITEBIN, INSTALLSITELIB, INSTALLSITEMAN1DIR, #
INSTALLSITEMAN3DIR, INSTALLSITESCRIPT, INSTALLVENDORARCH, #
INSTALLVENDORBIN, INSTALLVENDORLIB, INSTALLVENDORMAN1DIR, #
INSTALLVENDORMAN3DIR, INSTALLVENDORSCRIPT, INST_ARCHLIB, #
INST_BIN, INST_LIB, INST_MAN1DIR, INST_MAN3DIR, INST_SCRIPT, LD, #
LDDLFLAGS, LDFROM, LIB, LIBPERL_A, LIBS, LICENSE, LINKTYPE, #
MAGICXS, MAKE, MAKEAPERL, MAKEFILE_OLD, MAN1PODS, MAN3PODS, #
MAP_TARGET, META_ADD, META_MERGE, MIN_PERL_VERSION, MYEXTLIB, #
NAME, NEEDS_LINKING, NOECHO, NORECURS, NO_META, NO_MYMETA, #
NO_PACKLIST, NO_PERLLOCAL, NO_VC, OBJECT, OPTIMIZE, PERL, #
PERL_CORE, PERLMAINCC, PERL_ARCHLIB, PERL_LIB, PERL_MALLOC_OK, #
PERLPREFIX, PERLRUN, PERLRUNINST, PERL_SRC, PERM_DIR, PERM_RW, #
PERM_RWX, PL_FILES, PM, PMLIBDIRS, PM_FILTER, POLLUTE, #
PPM_INSTALL_EXEC, PPM_INSTALL_SCRIPT, PPM_UNINSTALL_EXEC, #
PPM_UNINSTALL_SCRIPT, PREFIX, PREREQ_FATAL, PREREQ_PM, #
PREREQ_PRINT, PRINT_PREREQ, SITEPREFIX, SIGN, SKIP, #
TEST_REQUIRES, TYPEMAPS, VENDORPREFIX, VERBINST, VERSION, #
VERSION_FROM, VERSION_SYM, XS, XSBUILD, XSMULTI, XSOPT, #
XSPROTOARG, XS_VERSION #
Additional lowercase attributes
clean, depend, dist, dynamic_lib, linkext, macro, postamble,
realclean, test, tool_autosplit
Overriding MakeMaker Methods
The End Of Cargo Cult Programming
“MAN3PODS => ’ ‘” #
Hintsfile support
Distribution Support
make distcheck, make skipcheck, make distclean, make veryclean,
make manifest, make distdir, make disttest, make tardist,
make dist, make uutardist, make shdist, make zipdist, make ci
Module Meta-Data (META and MYMETA)
Disabling an extension
Other Handy Functions
prompt, os_unsupported
Supported versions of Perl
ENVIRONMENT #
PERL_MM_OPT, PERL_MM_USE_DEFAULT, PERL_CORE #
SEE ALSO #
AUTHORS #
LICENSE #
EExxttUUttiillss::::MMaakkeeMMaakkeerr::::CCoonnffiigg -- WWrraappppeerr aarroouunndd CCoonnffiigg..ppmm
SYNOPSIS #
DESCRIPTION #
EExxttUUttiillss::::MMaakkeeMMaakkeerr::::FFAAQQ -- FFrreeqquueennttllyy AAsskkeedd QQuueessttiioonnss AAbboouutt MMaakkeeMMaakkeerr
DESCRIPTION #
Module Installation
How do I install a module into my home directory?, How do I get
MakeMaker and Module::Build to install to the same place?, How do
I keep from installing man pages?, How do I use a module without
installing it?, How can I organize tests into subdirectories and
have them run?, PREFIX vs INSTALL_BASE from
Module::Build::Cookbook, Generating *.pm files with substitutions
eg of $VERSION
Common errors and problems
"No rule to make target `/usr/lib/perl5/CORE/config.h', needed by
`Makefile'"
Philosophy and History
Why not just use <insert other build config tool here>?, What is
Module::Build and how does it relate to MakeMaker?, pure
perl. no make, no shell commands, easier to customize,
cleaner internals, less cruft
Module Writing
How do I keep my $VERSION up to date without resetting it
manually?, What's this _M_E_T_A_._y_m_l thing and how did it get in my
_M_A_N_I_F_E_S_T?!, How do I delete everything not in my _M_A_N_I_F_E_S_T?, Which
tar should I use on Windows?, Which zip should I use on Windows
for '[ndg]make zipdist'?
XS How do I prevent "object version X.XX does not match bootstrap
parameter Y.YY" errors?, How do I make two or more XS files
coexist in the same directory?, XSMULTI, Separate directories,
Bootstrapping
DESIGN #
MakeMaker object hierarchy (simplified)
MakeMaker object hierarchy (real)
The MM_* hierarchy
PATCHING #
make a pull request on the MakeMaker github repository, raise a issue
on the MakeMaker github repository, file an RT ticket, email
makemaker@perl.org
AUTHOR #
SEE ALSO #
EExxttUUttiillss::::MMaakkeeMMaakkeerr::::LLooccaallee -- bbuunnddlleedd EEnnccooddee::::LLooccaallee
SYNOPSIS #
DESCRIPTION #
decode_argv( ), decode_argv( Encode::FB_CROAK ), env( $uni_key ),
env( $uni_key => $uni_value ), reinit( ), reinit( $encoding ),
$ENCODING_LOCALE, $ENCODING_LOCALE_FS, $ENCODING_CONSOLE_IN, #
$ENCODING_CONSOLE_OUT #
NOTES #
Windows
Mac OS X
POSIX (Linux and other Unixes)
SEE ALSO #
AUTHOR #
EExxttUUttiillss::::MMaakkeeMMaakkeerr::::TTuuttoorriiaall -- WWrriittiinngg aa mmoodduullee wwiitthh MMaakkeeMMaakkeerr
SYNOPSIS #
DESCRIPTION #
The Mantra
The Layout
Makefile.PL, MANIFEST, lib/, t/, Changes, README, INSTALL,
MANIFEST.SKIP, bin/
SEE ALSO #
EExxttUUttiillss::::MMaanniiffeesstt -- UUttiilliittiieess ttoo wwrriittee aanndd cchheecckk aa MMAANNIIFFEESSTT ffiillee
VERSION #
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
mkmanifest
manifind
manicheck
filecheck
fullcheck
skipcheck
maniread
maniskip
manicopy
maniadd
MANIFEST #
MANIFEST.SKIP #
#!include_default, #!include /Path/to/another/manifest.skip
EXPORT_OK #
GLOBAL VARIABLES #
DIAGNOSTICS #
"Not in MANIFEST:" _f_i_l_e, "Skipping" _f_i_l_e, "No such file:" _f_i_l_e,
"MANIFEST:" _$_!, "Added to MANIFEST:" _f_i_l_e
ENVIRONMENT #
PPEERRLL__MMMM__MMAANNIIFFEESSTT__DDEEBBUUGG #
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
EExxttUUttiillss::::MMiinniippeerrll -- wwrriittee tthhee CC ccooddee ffoorr mmiinniippeerrllmmaaiinn..cc aanndd ppeerrllmmaaiinn..cc
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
EExxttUUttiillss::::MMkkbboooottssttrraapp -- mmaakkee aa bboooottssttrraapp ffiillee ffoorr uussee bbyy DDyynnaaLLooaaddeerr
SYNOPSIS #
DESCRIPTION #
EExxttUUttiillss::::MMkkssyymmlliissttss -- wwrriittee lliinnkkeerr ooppttiioonnss ffiilleess ffoorr ddyynnaammiicc eexxtteennssiioonn
SYNOPSIS #
DESCRIPTION #
DLBASE, DL_FUNCS, DL_VARS, FILE, FUNCLIST, IMPORTS, NAME #
AUTHOR #
REVISION #
EExxttUUttiillss::::PPLL22BBaatt -- BBaattcchh ffiillee ccrreeaattiioonn ttoo rruunn ppeerrll ssccrriippttss oonn WWiinnddoowwss
VERSION #
OVERVIEW #
FUNCTIONS #
pl2bat(%opts)
"in", "out", "ntargs", "otherargs", "stripsuffix", "usewarnings",
"update"
ACKNOWLEDGEMENTS #
AUTHOR #
COPYRIGHT AND LICENSE #
mmkkffhh(())
__find_relocations
EExxttUUttiillss::::PPaacckklliisstt -- mmaannaaggee ..ppaacckklliisstt ffiilleess
SYNOPSIS #
DESCRIPTION #
USAGE #
FUNCTIONS #
nneeww(()), rreeaadd(()), wwrriittee(()), vvaalliiddaattee(()), ppaacckklliisstt__ffiillee(())
EXAMPLE #
AUTHOR #
EExxttUUttiillss::::PPaarrsseeXXSS -- ccoonnvveerrttss PPeerrll XXSS ccooddee iinnttoo CC ccooddee
SYNOPSIS #
DESCRIPTION #
EXPORT #
METHODS #
$pxs->nneeww(()), $pxs->pprroocceessss__ffiillee(()), CC++++, hhiieerrttyyppee, eexxcceepptt, ttyyppeemmaapp,
pprroottoottyyppeess, vveerrssiioonncchheecckk, lliinneennuummbbeerrss, ooppttiimmiizzee, iinnoouutt, aarrggttyyppeess, ss,
$pxs->rreeppoorrtt__eerrrroorr__ccoouunntt(())
AUTHOR #
COPYRIGHT #
SEE ALSO #
EExxttUUttiillss::::PPaarrsseeXXSS::::CCoonnssttaannttss -- IInniittiiaalliizzaattiioonn vvaalluueess ffoorr ssoommee gglloobbaallss
SYNOPSIS #
DESCRIPTION #
EExxttUUttiillss::::PPaarrsseeXXSS::::EEvvaall -- CClleeaann ppaacckkaaggee ttoo eevvaalluuaattee ccooddee iinn
SYNOPSIS #
SUBROUTINES #
$pxs->eval_output_typemap_code($typemapcode, $other_hashref)
$pxs->eval_input_typemap_code($typemapcode, $other_hashref)
TODO #
EExxttUUttiillss::::PPaarrsseeXXSS::::UUttiilliittiieess -- SSuubbrroouuttiinneess uusseedd wwiitthh EExxttUUttiillss::::PPaarrsseeXXSS
SYNOPSIS #
SUBROUTINES #
"standard_typemap_locations()"
Purpose, Arguments, Return Value
"trim_whitespace()"
Purpose, Argument, Return Value
"C_string()"
Purpose, Arguments, Return Value
"valid_proto_string()"
Purpose, Arguments, Return Value
"process_typemaps()"
Purpose, Arguments, Return Value
"map_type()"
Purpose, Arguments, Return Value
"standard_XS_defs()"
Purpose, Arguments, Return Value
"assign_func_args()"
Purpose, Arguments, Return Value
"analyze_preprocessor_statements()"
Purpose, Arguments, Return Value
"set_cond()"
Purpose, Arguments, Return Value
"current_line_number()"
Purpose, Arguments, Return Value
"Warn()"
Purpose, Arguments, Return Value
"blurt()"
Purpose, Arguments, Return Value
"death()"
Purpose, Arguments, Return Value
"check_conditional_preprocessor_statements()"
Purpose, Arguments, Return Value
"escape_file_for_line_directive()"
Purpose, Arguments, Return Value
"report_typemap_failure"
Purpose, Arguments, Return Value
EExxttUUttiillss::::TTyyppeemmaappss -- RReeaadd//WWrriittee//MMooddiiffyy PPeerrll//XXSS ttyyppeemmaapp ffiilleess
SYNOPSIS #
DESCRIPTION #
METHODS #
new
file
add_typemap
add_inputmap
add_outputmap
add_string
remove_typemap
remove_inputmap
remove_inputmap
get_typemap
get_inputmap
get_outputmap
write
as_string
as_embedded_typemap
merge
is_empty
list_mapped_ctypes
_get_typemap_hash
_get_inputmap_hash
_get_outputmap_hash
_get_prototype_hash
clone
tidy_type
CAVEATS #
SEE ALSO #
AUTHOR #
COPYRIGHT & LICENSE #
EExxttUUttiillss::::TTyyppeemmaappss::::CCmmdd -- QQuuiicckk ccoommmmaannddss ffoorr hhaannddlliinngg ttyyppeemmaappss
SYNOPSIS #
DESCRIPTION #
EXPORTED FUNCTIONS #
embeddable_typemap
SEE ALSO #
AUTHOR #
COPYRIGHT & LICENSE #
EExxttUUttiillss::::TTyyppeemmaappss::::IInnppuuttMMaapp -- EEnnttrryy iinn tthhee IINNPPUUTT sseeccttiioonn ooff aa ttyyppeemmaapp
SYNOPSIS #
DESCRIPTION #
METHODS #
new
code
xstype
cleaned_code
SEE ALSO #
AUTHOR #
COPYRIGHT & LICENSE #
EExxttUUttiillss::::TTyyppeemmaappss::::OOuuttppuuttMMaapp -- EEnnttrryy iinn tthhee OOUUTTPPUUTT sseeccttiioonn ooff aa ttyyppeemmaapp
SYNOPSIS #
DESCRIPTION #
METHODS #
new
code
xstype
cleaned_code
targetable
SEE ALSO #
AUTHOR #
COPYRIGHT & LICENSE #
EExxttUUttiillss::::TTyyppeemmaappss::::TTyyppee -- EEnnttrryy iinn tthhee TTYYPPEEMMAAPP sseeccttiioonn ooff aa ttyyppeemmaapp
SYNOPSIS #
DESCRIPTION #
METHODS #
new
proto
xstype
ctype
tidy_ctype
SEE ALSO #
AUTHOR #
COPYRIGHT & LICENSE #
EExxttUUttiillss::::tteessttlliibb -- aadddd bblliibb// ddiirreeccttoorriieess ttoo @@IINNCC
SYNOPSIS #
DESCRIPTION #
FFaattaall -- RReeppllaaccee ffuunnccttiioonnss wwiitthh eeqquuiivvaalleennttss wwhhiicchh ssuucccceeeedd oorr ddiiee
SYNOPSIS #
BEST PRACTICE #
DESCRIPTION #
DIAGNOSTICS #
Bad subroutine name for Fatal: %s, %s is not a Perl subroutine, %s is
neither a builtin, nor a Perl subroutine, Cannot make the non-
overridable %s fatal, Internal error: %s
BUGS #
AUTHOR #
LICENSE #
SEE ALSO #
FFccnnttll -- llooaadd tthhee CC FFccnnttll..hh ddeeffiinneess
SYNOPSIS #
DESCRIPTION #
NOTE #
EXPORTED SYMBOLS #
FFiillee::::BBaasseennaammee -- PPaarrssee ffiillee ppaatthhss iinnttoo ddiirreeccttoorryy,, ffiilleennaammee aanndd ssuuffffiixx..
SYNOPSIS #
DESCRIPTION #
"fileparse"
"basename"
"dirname"
"fileparse_set_fstype"
SEE ALSO #
FFiillee::::CCoommppaarree -- CCoommppaarree ffiilleess oorr ffiilleehhaannddlleess
SYNOPSIS #
DESCRIPTION #
RETURN #
AUTHOR #
FFiillee::::CCooppyy -- CCooppyy ffiilleess oorr ffiilleehhaannddlleess
SYNOPSIS #
DESCRIPTION #
copy , move , syscopy , rmscopy($from,$to[,$date_flag])
RETURN #
NOTES #
AUTHOR #
FFiillee::::DDoossGGlloobb -- DDOOSS lliikkee gglloobbbbiinngg aanndd tthheenn ssoommee
SYNOPSIS #
DESCRIPTION #
EXPORTS (by request only)
BUGS #
AUTHOR #
HISTORY #
SEE ALSO #
FFiillee::::FFeettcchh -- AA ggeenneerriicc ffiillee ffeettcchhiinngg mmeecchhaanniissmm
SYNOPSIS #
DESCRIPTION #
ACCESSORS #
$ff->uri, $ff->scheme, $ff->host, $ff->vol, $ff->share, $ff->path,
$ff->file, $ff->file_default
$ff->output_file
METHODS #
$ff = File::Fetch->new( uri => 'http://some.where.com/dir/file.txt'
);
$where = $ff->fetch( [to => /my/output/dir/ | \$scalar] )
$ff->error([BOOL])
HOW IT WORKS #
GLOBAL VARIABLES #
$File::Fetch::FROM_EMAIL
$File::Fetch::USER_AGENT
$File::Fetch::FTP_PASSIVE
$File::Fetch::TIMEOUT
$File::Fetch::WARN
$File::Fetch::DEBUG
$File::Fetch::BLACKLIST
$File::Fetch::METHOD_FAIL
MAPPING #
FREQUENTLY ASKED QUESTIONS #
So how do I use a proxy with File::Fetch?
I used 'lynx' to fetch a file, but its contents is all wrong!
Files I'm trying to fetch have reserved characters or non-ASCII
characters in them. What do I do?
TODO #
Implement $PREFER_BIN
BUG REPORTS #
AUTHOR #
COPYRIGHT #
FFiillee::::FFiinndd -- TTrraavveerrssee aa ddiirreeccttoorryy ttrreeee..
SYNOPSIS #
DESCRIPTION #
ffiinndd, ffiinnddddeepptthh
%options
"wanted", "bydepth", "preprocess", "postprocess", "follow",
"follow_fast", "follow_skip", "dangling_symlinks", "no_chdir",
"untaint", "untaint_pattern", "untaint_skip"
The wanted function
$File::Find::dir is the current directory name,, $_ is the
current filename within that directory, $File::Find::name is the
complete pathname to the file
WARNINGS #
BUGS AND CAVEATS #
$dont_use_nlink, symlinks
HISTORY #
SEE ALSO #
FFiillee::::GGlloobb -- PPeerrll eexxtteennssiioonn ffoorr BBSSDD gglloobb rroouuttiinnee
SYNOPSIS #
DESCRIPTION #
META CHARACTERS #
EXPORTS #
POSIX FLAGS #
“GLOB_ERR”, “GLOB_LIMIT”, “GLOB_MARK”, “GLOB_NOCASE”, #
“GLOB_NOCHECK”, “GLOB_NOSORT”, “GLOB_BRACE”, “GLOB_NOMAGIC”, #
“GLOB_QUOTE”, “GLOB_TILDE”, “GLOB_CSH”, “GLOB_ALPHASORT” #
DIAGNOSTICS #
“GLOB_NOSPACE”, “GLOB_ABEND” #
NOTES #
SEE ALSO #
AUTHOR #
FFiillee::::GGlloobbMMaappppeerr -- EExxtteenndd FFiillee GGlloobb ttoo AAllllooww IInnppuutt aanndd OOuuttppuutt FFiilleess
SYNOPSIS #
DESCRIPTION #
Behind The Scenes
Limitations
Input File Glob
~~, ~~uusseerr, .., **, ??, \\, [[]], {{,,}}, (())
Output File Glob
"*", #1
Returned Data
EXAMPLES #
A Rename script
A few example globmaps
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
FFiillee::::PPaatthh -- CCrreeaattee oorr rreemmoovvee ddiirreeccttoorryy ttrreeeess
VERSION #
SYNOPSIS #
DESCRIPTION #
make_path( $dir1, $dir2, .... ), make_path( $dir1, $dir2, ....,
\%opts ), mode => $num, chmod => $num, verbose => $bool, error =>
\$err, owner => $owner, user => $owner, uid => $owner, group =>
$group, mkpath( $dir ), mkpath( $dir, $verbose, $mode ), mkpath(
[$dir1, $dir2,...], $verbose, $mode ), mkpath( $dir1, $dir2,...,
\%opt ), remove_tree( $dir1, $dir2, .... ), remove_tree( $dir1,
$dir2, ...., \%opts ), verbose => $bool, safe => $bool, keep_root =>
$bool, result => \$res, error => \$err, rmtree( $dir ), rmtree( $dir,
$verbose, $safe ), rmtree( [$dir1, $dir2,...], $verbose, $safe ),
rmtree( $dir1, $dir2,..., \%opt )
ERROR HANDLING #
NNOOTTEE:: #
NOTES #
<http://cve.circl.lu/cve/CVE-2004-0452>,
<http://cve.circl.lu/cve/CVE-2005-0448>
DIAGNOSTICS #
mkdir [path]: [errmsg] (SEVERE), No root path(s) specified, No such
file or directory, cannot fetch initial working directory: [errmsg],
cannot stat initial working directory: [errmsg], cannot chdir to
[dir]: [errmsg], directory [dir] changed before chdir, expected
dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (FATAL), cannot
make directory [dir] read+writeable: [errmsg], cannot read [dir]:
[errmsg], cannot reset chmod [dir]: [errmsg], cannot remove [dir]
when cwd is [dir], cannot chdir to [parent-dir] from [child-dir]:
[errmsg], aborting. (FATAL), cannot stat prior working directory
[dir]: [errmsg], aborting. (FATAL), previous directory [parent-dir]
changed before entering [child-dir], expected dev=[n] ino=[n], actual
dev=[n] ino=[n], aborting. (FATAL), cannot make directory [dir]
writeable: [errmsg], cannot remove directory [dir]: [errmsg], cannot
restore permissions of [dir] to [0nnn]: [errmsg], cannot make file
[file] writeable: [errmsg], cannot unlink file [file]: [errmsg],
cannot restore permissions of [file] to [0nnn]: [errmsg], unable to
map [owner] to a uid, ownership not changed");, unable to map [group]
to a gid, group ownership not changed
SEE ALSO #
BUGS AND LIMITATIONS #
MULTITHREADED APPLICATIONS #
NFS Mount Points
REPORTING BUGS #
ACKNOWLEDGEMENTS #
AUTHORS #
CONTRIBUTORS #
<_b_u_l_k_d_d_@_c_p_a_n_._o_r_g>, Charlie Gonzalez <_i_t_c_h_a_r_l_i_e_@_c_p_a_n_._o_r_g>, Craig A.
Berry <_c_r_a_i_g_b_e_r_r_y_@_m_a_c_._c_o_m>, James E Keenan <_j_k_e_e_n_a_n_@_c_p_a_n_._o_r_g>, John
Lightsey <_j_o_h_n_@_p_e_r_l_s_e_c_._o_r_g>, Nigel Horne <_n_j_h_@_b_a_n_d_s_m_a_n_._c_o_._u_k>,
Richard Elberger <_r_i_c_h_e_@_c_p_a_n_._o_r_g>, Ryan Yee <_r_y_e_e_@_c_p_a_n_._o_r_g>, Skye
Shaw <_s_h_a_w_@_c_p_a_n_._o_r_g>, Tom Lutz <_t_o_m_m_y_l_u_t_z_@_g_m_a_i_l_._c_o_m>, Will Sheppard
<_w_i_l_l_s_h_e_p_p_a_r_d_@_g_i_t_h_u_b>
COPYRIGHT #
LICENSE #
FFiillee::::SSppeecc -- ppoorrttaabbllyy ppeerrffoorrmm ooppeerraattiioonnss oonn ffiillee nnaammeess
SYNOPSIS #
DESCRIPTION #
METHODS #
canonpath , catdir , catfile , curdir , devnull , rootdir , tmpdir ,
updir , no_upwards, case_tolerant, file_name_is_absolute, path , join
, splitpath , splitdir
, ccaattppaatthh(()), abs2rel , rreell22aabbss(())
SEE ALSO #
AUTHOR #
COPYRIGHT #
FFiillee::::SSppeecc::::AAmmiiggaaOOSS -- FFiillee::::SSppeecc ffoorr AAmmiiggaaOOSS
SYNOPSIS #
DESCRIPTION #
METHODS #
tmpdir
file_name_is_absolute
FFiillee::::SSppeecc::::CCyyggwwiinn -- mmeetthhooddss ffoorr CCyyggwwiinn ffiillee ssppeeccss
SYNOPSIS #
DESCRIPTION #
canonpath
file_name_is_absolute
tmpdir (override)
case_tolerant
COPYRIGHT #
FFiillee::::SSppeecc::::EEppoocc -- mmeetthhooddss ffoorr EEppoocc ffiillee ssppeeccss
SYNOPSIS #
DESCRIPTION #
ccaannoonnppaatthh(())
AUTHOR #
COPYRIGHT #
SEE ALSO #
FFiillee::::SSppeecc::::FFuunnccttiioonnss -- ppoorrttaabbllyy ppeerrffoorrmm ooppeerraattiioonnss oonn ffiillee nnaammeess
SYNOPSIS #
DESCRIPTION #
Exports
COPYRIGHT #
SEE ALSO #
FFiillee::::SSppeecc::::MMaacc -- FFiillee::::SSppeecc ffoorr MMaacc OOSS ((CCllaassssiicc))
SYNOPSIS #
DESCRIPTION #
METHODS #
canonpath
ccaattddiirr(())
catfile
curdir
devnull
rootdir
tmpdir
updir
file_name_is_absolute
path
splitpath
splitdir
catpath
abs2rel
rel2abs
AUTHORS #
COPYRIGHT #
SEE ALSO #
FFiillee::::SSppeecc::::OOSS22 -- mmeetthhooddss ffoorr OOSS//22 ffiillee ssppeeccss
SYNOPSIS #
DESCRIPTION #
tmpdir, splitpath
COPYRIGHT #
FFiillee::::SSppeecc::::UUnniixx -- FFiillee::::SSppeecc ffoorr UUnniixx,, bbaassee ffoorr ootthheerr FFiillee::::SSppeecc mmoodduulleess
SYNOPSIS #
DESCRIPTION #
METHODS #
ccaannoonnppaatthh(())
ccaattddiirr(())
catfile
curdir
devnull
rootdir
tmpdir
updir
no_upwards
case_tolerant
file_name_is_absolute
path
join
splitpath
splitdir
ccaattppaatthh(())
abs2rel
rreell22aabbss(())
COPYRIGHT #
SEE ALSO #
FFiillee::::SSppeecc::::VVMMSS -- mmeetthhooddss ffoorr VVMMSS ffiillee ssppeeccss
SYNOPSIS #
DESCRIPTION #
canonpath (override)
catdir (override)
catfile (override)
curdir (override)
devnull (override)
rootdir (override)
tmpdir (override)
updir (override)
case_tolerant (override)
path (override)
file_name_is_absolute (override)
splitpath (override)
splitdir (override)
catpath (override)
abs2rel (override)
rel2abs (override)
COPYRIGHT #
SEE ALSO #
FFiillee::::SSppeecc::::WWiinn3322 -- mmeetthhooddss ffoorr WWiinn3322 ffiillee ssppeeccss
SYNOPSIS #
DESCRIPTION #
devnull
tmpdir
case_tolerant
file_name_is_absolute
catfile
canonpath
splitpath
splitdir
catpath
Note For File::Spec::Win32 Maintainers
COPYRIGHT #
SEE ALSO #
FFiillee::::TTeemmpp -- rreettuurrnn nnaammee aanndd hhaannddllee ooff aa tteemmppoorraarryy ffiillee ssaaffeellyy
VERSION #
SYNOPSIS #
DESCRIPTION #
PORTABILITY #
OBJECT-ORIENTED INTERFACE #
nneeww, nneewwddiirr, ffiilleennaammee, ddiirrnnaammee, uunnlliinnkk__oonn__ddeessttrrooyy, DDEESSTTRROOYY
FUNCTIONS #
tteemmppffiillee, tteemmppddiirr
MKTEMP FUNCTIONS #
mmkksstteemmpp, mmkksstteemmppss, mmkkddtteemmpp, mmkktteemmpp
POSIX FUNCTIONS #
ttmmppnnaamm, ttmmppffiillee
ADDITIONAL FUNCTIONS #
tteemmppnnaamm
UTILITY FUNCTIONS #
uunnlliinnkk00, ccmmppssttaatt, uunnlliinnkk11, cclleeaannuupp
PACKAGE VARIABLES #
ssaaffee__lleevveell, STANDARD, MEDIUM, HIGH, TopSystemUID, $$KKEEEEPP__AALLLL, $$DDEEBBUUGG
WARNING #
Temporary files and NFS
Forking
Directory removal
Taint mode
BINMODE #
HISTORY #
SEE ALSO #
SUPPORT #
AUTHOR #
CONTRIBUTORS #
COPYRIGHT AND LICENSE #
FFiillee::::ssttaatt -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn ssttaatt(()) ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
BUGS #
ERRORS #
-%s is not implemented on a File::stat object
WARNINGS #
File::stat ignores use filetest 'access', File::stat ignores VMS ACLs
NOTE #
AUTHOR #
FFiilleeCCaacchhee -- kkeeeepp mmoorree ffiilleess ooppeenn tthhaann tthhee ssyysstteemm ppeerrmmiittss
SYNOPSIS #
DESCRIPTION #
cacheout EXPR, cacheout MODE, EXPR
CAVEATS #
BUGS #
FFiilleeHHaannddllee -- ssuuppppllyy oobbjjeecctt mmeetthhooddss ffoorr ffiilleehhaannddlleess
SYNOPSIS #
DESCRIPTION #
$fh->print, $fh->printf, $fh->getline, $fh->getlines
SEE ALSO #
FFiilltteerr::::SSiimmppllee -- SSiimmpplliiffiieedd ssoouurrccee ffiilltteerriinngg
SYNOPSIS #
DESCRIPTION #
The Problem
A Solution
Disabling or changing <no> behaviour
All-in-one interface
Filtering only specific components of source code
"code", "code_no_comments", "executable",
"executable_no_comments", "quotelike", "string", "regex", "all"
Filtering only the code parts of source code
Using Filter::Simple with an explicit "import" subroutine
Using Filter::Simple and Exporter together
How it works
AUTHOR #
CONTACT #
COPYRIGHT AND LICENSE #
FFiilltteerr::::UUttiill::::CCaallll -- PPeerrll SSoouurrccee FFiilltteerr UUttiilliittyy MMoodduullee
SYNOPSIS #
DESCRIPTION #
uussee FFiilltteerr::::UUttiill::::CCaallll
iimmppoorrtt(())
ffiilltteerr__aadddd(())
ffiilltteerr(()) aanndd aannoonnyymmoouuss ssuubb
$$__, $$ssttaattuuss, ffiilltteerr__rreeaadd and ffiilltteerr__rreeaadd__eexxaacctt, ffiilltteerr__ddeell,
_r_e_a_l___i_m_p_o_r_t, _uu_nn_ii_mm_pp_oo_rr_tt_((_))
LIMITATIONS #
__DATA__ is ignored, Max. codesize limited to 32-bit
EXAMPLES #
Example 1: A simple filter.
Example 2: Using the context
Example 3: Using the context within the filter
Example 4: Using filter_del
Filter::Simple
AUTHOR #
DATE #
LICENSE #
FFiinnddBBiinn -- LLooccaattee ddiirreeccttoorryy ooff oorriiggiinnaall ppeerrll ssccrriipptt
SYNOPSIS #
DESCRIPTION #
EXPORTABLE VARIABLES #
KNOWN ISSUES #
AUTHORS #
COPYRIGHT #
GGeettoopptt::::LLoonngg -- EExxtteennddeedd pprroocceessssiinngg ooff ccoommmmaanndd lliinnee ooppttiioonnss
SYNOPSIS #
DESCRIPTION #
Command Line Options, an Introduction
Getting Started with Getopt::Long
Simple options
A little bit less simple options
Mixing command line option with other arguments
Options with values
Options with multiple values
Options with hash values
User-defined subroutines to handle options
Options with multiple names
Case and abbreviations
Summary of Option Specifications
!, +, s, i, o, f, : _t_y_p_e [ _d_e_s_t_t_y_p_e ], : _n_u_m_b_e_r [ _d_e_s_t_t_y_p_e ], : +
[ _d_e_s_t_t_y_p_e ]
Advanced Possibilities
Object oriented interface
Callback object
name, given
Thread Safety
Documentation and help texts
Parsing options from an arbitrary array
Parsing options from an arbitrary string
Storing options values in a hash
Bundling
The lonesome dash
Argument callback
Configuring Getopt::Long
default, posix_default, auto_abbrev, getopt_compat, gnu_compat,
gnu_getopt, require_order, permute, bundling (default: disabled),
bundling_override (default: disabled), ignore_case (default:
enabled), ignore_case_always (default: disabled), auto_version
(default:disabled), auto_help (default:disabled), pass_through
(default: disabled), prefix, prefix_pattern, long_prefix_pattern,
debug (default: disabled)
Exportable Methods
VersionMessage, "-message", "-msg", "-exitval", "-output",
HelpMessage
Return values and Errors
Legacy
Default destinations
Alternative option starters
Configuration variables
Tips and Techniques
Pushing multiple values in a hash option
Troubleshooting
GetOptions does not return a false result when an option is not
supplied
GetOptions does not split the command line correctly
Undefined subroutine &main::GetOptions called
How do I put a "-?" option into a Getopt::Long?
AUTHOR #
COPYRIGHT AND DISCLAIMER #
GGeettoopptt::::SSttdd -- PPrroocceessss ssiinnggllee--cchhaarraacctteerr sswwiittcchheess wwiitthh sswwiittcchh cclluusstteerriinngg
SYNOPSIS #
DESCRIPTION #
"--help" and "--version"
HHTTTTPP::::TTiinnyy -- AA ssmmaallll,, ssiimmppllee,, ccoorrrreecctt HHTTTTPP//11..11 cclliieenntt
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
new
get|head|put|post|patch|delete
post_form
mirror
request
www_form_urlencode
can_ssl
connected
SSL SUPPORT #
PROXY SUPPORT #
LIMITATIONS #
SEE ALSO #
SUPPORT #
Bugs / Feature Requests
Source Code
AUTHORS #
CONTRIBUTORS #
COPYRIGHT AND LICENSE #
HHaasshh::::UUttiill -- AA sseelleeccttiioonn ooff ggeenneerraall--uuttiilliittyy hhaasshh ssuubbrroouuttiinneess
SYNOPSIS #
DESCRIPTION #
Restricted hashes
lloocckk__kkeeyyss, uunnlloocckk__kkeeyyss
lloocckk__kkeeyyss__pplluuss
lloocckk__vvaalluuee, uunnlloocckk__vvaalluuee
lloocckk__hhaasshh, uunnlloocckk__hhaasshh
lloocckk__hhaasshh__rreeccuurrssee, uunnlloocckk__hhaasshh__rreeccuurrssee
hhaasshhrreeff__lloocckkeedd, hhaasshh__lloocckkeedd
hhaasshhrreeff__uunnlloocckkeedd, hhaasshh__uunnlloocckkeedd
lleeggaall__kkeeyyss, hhiiddddeenn__kkeeyyss, aallll__kkeeyyss, hhaasshh__sseeeedd, hhaasshh__vvaalluuee, bbuucckkeett__iinnffoo,
bbuucckkeett__ssttaattss, bbuucckkeett__aarrrraayy
bbuucckkeett__ssttaattss__ffoorrmmaatttteedd
hhvv__ssttoorree, hhaasshh__ttrraavveerrssaall__mmaasskk, bbuucckkeett__rraattiioo, uusseedd__bbuucckkeettss, nnuumm__bbuucckkeettss
Operating on references to hashes.
lock_ref_keys, unlock_ref_keys, lock_ref_keys_plus, lock_ref_value,
unlock_ref_value, lock_hashref, unlock_hashref, lock_hashref_recurse,
unlock_hashref_recurse, hash_ref_unlocked, legal_ref_keys,
hidden_ref_keys
CAVEATS #
BUGS #
AUTHOR #
SEE ALSO #
HHaasshh::::UUttiill::::FFiieellddHHaasshh -- SSuuppppoorrtt ffoorr IInnssiiddee--OOuutt CCllaasssseess
SYNOPSIS #
FUNCTIONS #
id, id_2obj, register, idhash, idhashes, fieldhash, fieldhashes
DESCRIPTION #
The Inside-out Technique
Problems of Inside-out
Solutions
More Problems
The Generic Object
How to use Field Hashes
Garbage-Collected Hashes
EXAMPLES #
"init()", "first()", "last()", "name()", "Name_hash", "Name_id",
"Name_idhash", "Name_id_reg", "Name_idhash_reg", "Name_fieldhash"
Example 1
Example 2
GUTS #
The "PERL_MAGIC_uvar" interface for hashes
Weakrefs call uvar magic
How field hashes work
Internal function Hash::Util::FieldHash::_fieldhash
AUTHOR #
COPYRIGHT AND LICENSE #
II1188NN::::CCoollllaattee -- ccoommppaarree 88--bbiitt ssccaallaarr ddaattaa aaccccoorrddiinngg ttoo tthhee ccuurrrreenntt llooccaallee
SYNOPSIS #
DESCRIPTION #
II1188NN::::LLaannggTTaaggss -- ffuunnccttiioonnss ffoorr ddeeaalliinngg wwiitthh RRFFCC33006666--ssttyyllee llaanngguuaaggee ttaaggss
SYNOPSIS #
DESCRIPTION #
the function is_language_tag($lang1)
the function extract_language_tags($whatever)
the function same_language_tag($lang1, $lang2)
the function similarity_language_tag($lang1, $lang2)
the function is_dialect_of($lang1, $lang2)
the function super_languages($lang1)
the function locale2language_tag($locale_identifier)
the function encode_language_tag($lang1)
the function alternate_language_tags($lang1)
the function @langs = panic_languages(@accept_languages)
the function implicate_supers( ...languages... ), the function
implicate_supers_strictly( ...languages... )
ABOUT LOWERCASING #
ABOUT UNICODE PLAINTEXT LANGUAGE TAGS #
SEE ALSO #
COPYRIGHT #
AUTHOR #
II1188NN::::LLaannggTTaaggss::::DDeetteecctt -- ddeetteecctt tthhee uusseerr’’ss llaanngguuaaggee pprreeffeerreenncceess
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
ENVIRONMENT #
SEE ALSO #
COPYRIGHT #
AUTHOR #
II1188NN::::LLaannggTTaaggss::::LLiisstt -–- ttaaggss aanndd nnaammeess ffoorr hhuummaann llaanngguuaaggeess
SYNOPSIS #
DESCRIPTION #
ABOUT LANGUAGE TAGS #
LIST OF LANGUAGES #
{ab} : Abkhazian, {ace} : Achinese, {ach} : Acoli, {ada} : Adangme,
{ady} : Adyghe, {aa} : Afar, {afh} : Afrihili, {af} : Afrikaans,
[{afa} : Afro-Asiatic (Other)], {ak} : Akan, {akk} : Akkadian, {sq} :
Albanian, {ale} : Aleut, [{alg} : Algonquian languages], [{tut} :
Altaic (Other)], {am} : Amharic, {i-ami} : Ami, [{apa} : Apache
languages], {ar} : Arabic, {arc} : Aramaic, {arp} : Arapaho, {arn} :
Araucanian, {arw} : Arawak, {hy} : Armenian, {an} : Aragonese, [{art}
: Artificial (Other)], {ast} : Asturian, {as} : Assamese, [{ath} :
Athapascan languages], [{aus} : Australian languages], [{map} :
Austronesian (Other)], {av} : Avaric, {ae} : Avestan, {awa} : Awadhi,
{ay} : Aymara, {az} : Azerbaijani, {ban} : Balinese, [{bat} : Baltic
(Other)], {bal} : Baluchi, {bm} : Bambara, [{bai} : Bamileke
languages], {bad} : Banda, [{bnt} : Bantu (Other)], {bas} : Basa,
{ba} : Bashkir, {eu} : Basque, {btk} : Batak (Indonesia), {bej} :
Beja, {be} : Belarusian, {bem} : Bemba, {bn} : Bengali, [{ber} :
Berber (Other)], {bho} : Bhojpuri, {bh} : Bihari, {bik} : Bikol,
{bin} : Bini, {bi} : Bislama, {bs} : Bosnian, {bra} : Braj, {br} :
Breton, {bug} : Buginese, {bg} : Bulgarian, {i-bnn} : Bunun, {bua} :
Buriat, {my} : Burmese, {cad} : Caddo, {car} : Carib, {ca} : Catalan,
[{cau} : Caucasian (Other)], {ceb} : Cebuano, [{cel} : Celtic
(Other)], [{cai} : Central American Indian (Other)], {chg} :
Chagatai, [{cmc} : Chamic languages], {ch} : Chamorro, {ce} :
Chechen, {chr} : Cherokee, {chy} : Cheyenne, {chb} : Chibcha, {ny} :
Chichewa, {zh} : Chinese, {chn} : Chinook Jargon, {chp} : Chipewyan,
{cho} : Choctaw, {cu} : Church Slavic, {chk} : Chuukese, {cv} :
Chuvash, {cop} : Coptic, {kw} : Cornish, {co} : Corsican, {cr} :
Cree, {mus} : Creek, [{cpe} : English-based Creoles and pidgins
(Other)], [{cpf} : French-based Creoles and pidgins (Other)], [{cpp}
: Portuguese-based Creoles and pidgins (Other)], [{crp} : Creoles and
pidgins (Other)], {hr} : Croatian, [{cus} : Cushitic (Other)], {cs} :
Czech, {dak} : Dakota, {da} : Danish, {dar} : Dargwa, {day} : Dayak,
{i-default} : Default (Fallthru) Language, {del} : Delaware, {din} :
Dinka, {dv} : Divehi, {doi} : Dogri, {dgr} : Dogrib, [{dra} :
Dravidian (Other)], {dua} : Duala, {nl} : Dutch, {dum} : Middle Dutch
(ca.1050-1350), {dyu} : Dyula, {dz} : Dzongkha, {efi} : Efik, {egy} :
Ancient Egyptian, {eka} : Ekajuk, {elx} : Elamite, {en} : English,
{enm} : Old English (1100-1500), {ang} : Old English (ca.450-1100),
{i-enochian} : Enochian (Artificial), {myv} : Erzya, {eo} :
Esperanto, {et} : Estonian, {ee} : Ewe, {ewo} : Ewondo, {fan} : Fang,
{fat} : Fanti, {fo} : Faroese, {fj} : Fijian, {fi} : Finnish, [{fiu}
: Finno-Ugrian (Other)], {fon} : Fon, {fr} : French, {frm} : Middle
French (ca.1400-1600), {fro} : Old French (842-ca.1400), {fy} :
Frisian, {fur} : Friulian, {ff} : Fulah, {gaa} : Ga, {gd} : Scots
Gaelic, {gl} : Gallegan, {lg} : Ganda, {gay} : Gayo, {gba} : Gbaya,
{gez} : Geez, {ka} : Georgian, {de} : German, {gmh} : Middle High
German (ca.1050-1500), {goh} : Old High German (ca.750-1050), [{gem}
: Germanic (Other)], {gil} : Gilbertese, {gon} : Gondi, {gor} :
Gorontalo, {got} : Gothic, {grb} : Grebo, {grc} : Ancient Greek, {el}
: Modern Greek, {gn} : Guarani, {gu} : Gujarati, {gwi} : Gwich'in,
{hai} : Haida, {ht} : Haitian, {ha} : Hausa, {haw} : Hawaiian, {he} :
Hebrew, {hz} : Herero, {hil} : Hiligaynon, {him} : Himachali, {hi} :
Hindi, {ho} : Hiri Motu, {hit} : Hittite, {hmn} : Hmong, {hu} :
Hungarian, {hup} : Hupa, {iba} : Iban, {is} : Icelandic, {io} : Ido,
{ig} : Igbo, {ijo} : Ijo, {ilo} : Iloko, [{inc} : Indic (Other)],
[{ine} : Indo-European (Other)], {id} : Indonesian, {inh} : Ingush,
{ia} : Interlingua (International Auxiliary Language Association),
{ie} : Interlingue, {iu} : Inuktitut, {ik} : Inupiaq, [{ira} :
Iranian (Other)], {ga} : Irish, {mga} : Middle Irish (900-1200),
{sga} : Old Irish (to 900), [{iro} : Iroquoian languages], {it} :
Italian, {ja} : Japanese, {jv} : Javanese, {jrb} : Judeo-Arabic,
{jpr} : Judeo-Persian, {kbd} : Kabardian, {kab} : Kabyle, {kac} :
Kachin, {kl} : Kalaallisut, {xal} : Kalmyk, {kam} : Kamba, {kn} :
Kannada, {kr} : Kanuri, {krc} : Karachay-Balkar, {kaa} : Kara-Kalpak,
{kar} : Karen, {ks} : Kashmiri, {csb} : Kashubian, {kaw} : Kawi, {kk}
: Kazakh, {kha} : Khasi, {km} : Khmer, [{khi} : Khoisan (Other)],
{kho} : Khotanese, {ki} : Kikuyu, {kmb} : Kimbundu, {rw} :
Kinyarwanda, {ky} : Kirghiz, {i-klingon} : Klingon, {kv} : Komi, {kg}
: Kongo, {kok} : Konkani, {ko} : Korean, {kos} : Kosraean, {kpe} :
Kpelle, {kro} : Kru, {kj} : Kuanyama, {kum} : Kumyk, {ku} : Kurdish,
{kru} : Kurukh, {kut} : Kutenai, {lad} : Ladino, {lah} : Lahnda,
{lam} : Lamba, {lo} : Lao, {la} : Latin, {lv} : Latvian, {lb} :
Letzeburgesch, {lez} : Lezghian, {li} : Limburgish, {ln} : Lingala,
{lt} : Lithuanian, {nds} : Low German, {art-lojban} : Lojban
(Artificial), {loz} : Lozi, {lu} : Luba-Katanga, {lua} : Luba-Lulua,
{lui} : Luiseno, {lun} : Lunda, {luo} : Luo (Kenya and Tanzania),
{lus} : Lushai, {mk} : Macedonian, {mad} : Madurese, {mag} : Magahi,
{mai} : Maithili, {mak} : Makasar, {mg} : Malagasy, {ms} : Malay,
{ml} : Malayalam, {mt} : Maltese, {mnc} : Manchu, {mdr} : Mandar,
{man} : Mandingo, {mni} : Manipuri, [{mno} : Manobo languages], {gv}
: Manx, {mi} : Maori, {mr} : Marathi, {chm} : Mari, {mh} : Marshall,
{mwr} : Marwari, {mas} : Masai, [{myn} : Mayan languages], {men} :
Mende, {mic} : Micmac, {min} : Minangkabau, {i-mingo} : Mingo, [{mis}
: Miscellaneous languages], {moh} : Mohawk, {mdf} : Moksha, {mo} :
Moldavian, [{mkh} : Mon-Khmer (Other)], {lol} : Mongo, {mn} :
Mongolian, {mos} : Mossi, [{mul} : Multiple languages], [{mun} :
Munda languages], {nah} : Nahuatl, {nap} : Neapolitan, {na} : Nauru,
{nv} : Navajo, {nd} : North Ndebele, {nr} : South Ndebele, {ng} :
Ndonga, {ne} : Nepali, {new} : Newari, {nia} : Nias, [{nic} : Niger-
Kordofanian (Other)], [{ssa} : Nilo-Saharan (Other)], {niu} : Niuean,
{nog} : Nogai, {non} : Old Norse, [{nai} : North American Indian],
{no} : Norwegian, {nb} : Norwegian Bokmal, {nn} : Norwegian Nynorsk,
[{nub} : Nubian languages], {nym} : Nyamwezi, {nyn} : Nyankole, {nyo}
: Nyoro, {nzi} : Nzima, {oc} : Occitan (post 1500), {oj} : Ojibwa,
{or} : Oriya, {om} : Oromo, {osa} : Osage, {os} : Ossetian; Ossetic,
[{oto} : Otomian languages], {pal} : Pahlavi, {i-pwn} : Paiwan, {pau}
: Palauan, {pi} : Pali, {pam} : Pampanga, {pag} : Pangasinan, {pa} :
Panjabi, {pap} : Papiamento, [{paa} : Papuan (Other)], {fa} :
Persian, {peo} : Old Persian (ca.600-400 B.C.), [{phi} : Philippine
(Other)], {phn} : Phoenician, {pon} : Pohnpeian, {pl} : Polish, {pt}
: Portuguese, [{pra} : Prakrit languages], {pro} : Old Provencal (to
1500), {ps} : Pushto, {qu} : Quechua, {rm} : Raeto-Romance, {raj} :
Rajasthani, {rap} : Rapanui, {rar} : Rarotongan, [{qaa - qtz} :
Reserved for local use.], [{roa} : Romance (Other)], {ro} : Romanian,
{rom} : Romany, {rn} : Rundi, {ru} : Russian, [{sal} : Salishan
languages], {sam} : Samaritan Aramaic, {se} : Northern Sami, {sma} :
Southern Sami, {smn} : Inari Sami, {smj} : Lule Sami, {sms} : Skolt
Sami, [{smi} : Sami languages (Other)], {sm} : Samoan, {sad} :
Sandawe, {sg} : Sango, {sa} : Sanskrit, {sat} : Santali, {sc} :
Sardinian, {sas} : Sasak, {sco} : Scots, {sel} : Selkup, [{sem} :
Semitic (Other)], {sr} : Serbian, {srr} : Serer, {shn} : Shan, {sn} :
Shona, {sid} : Sidamo, {sgn-...} : Sign Languages, {bla} : Siksika,
{sd} : Sindhi, {si} : Sinhalese, [{sit} : Sino-Tibetan (Other)],
[{sio} : Siouan languages], {den} : Slave (Athapascan), [{sla} :
Slavic (Other)], {sk} : Slovak, {sl} : Slovenian, {sog} : Sogdian,
{so} : Somali, {son} : Songhai, {snk} : Soninke, {wen} : Sorbian
languages, {nso} : Northern Sotho, {st} : Southern Sotho, [{sai} :
South American Indian (Other)], {es} : Spanish, {suk} : Sukuma, {sux}
: Sumerian, {su} : Sundanese, {sus} : Susu, {sw} : Swahili, {ss} :
Swati, {sv} : Swedish, {syr} : Syriac, {tl} : Tagalog, {ty} :
Tahitian, [{tai} : Tai (Other)], {tg} : Tajik, {tmh} : Tamashek, {ta}
: Tamil, {i-tao} : Tao, {tt} : Tatar, {i-tay} : Tayal, {te} : Telugu,
{ter} : Tereno, {tet} : Tetum, {th} : Thai, {bo} : Tibetan, {tig} :
Tigre, {ti} : Tigrinya, {tem} : Timne, {tiv} : Tiv, {tli} : Tlingit,
{tpi} : Tok Pisin, {tkl} : Tokelau, {tog} : Tonga (Nyasa), {to} :
Tonga (Tonga Islands), {tsi} : Tsimshian, {ts} : Tsonga, {i-tsu} :
Tsou, {tn} : Tswana, {tum} : Tumbuka, [{tup} : Tupi languages], {tr}
: Turkish, {ota} : Ottoman Turkish (1500-1928), {crh} : Crimean
Turkish, {tk} : Turkmen, {tvl} : Tuvalu, {tyv} : Tuvinian, {tw} :
Twi, {udm} : Udmurt, {uga} : Ugaritic, {ug} : Uighur, {uk} :
Ukrainian, {umb} : Umbundu, {und} : Undetermined, {ur} : Urdu, {uz} :
Uzbek, {vai} : Vai, {ve} : Venda, {vi} : Vietnamese, {vo} : Volapuk,
{vot} : Votic, [{wak} : Wakashan languages], {wa} : Walloon, {wal} :
Walamo, {war} : Waray, {was} : Washo, {cy} : Welsh, {wo} : Wolof,
{x-...} : Unregistered (Semi-Private Use), {xh} : Xhosa, {sah} :
Yakut, {yao} : Yao, {yap} : Yapese, {ii} : Sichuan Yi, {yi} :
Yiddish, {yo} : Yoruba, [{ypk} : Yupik languages], {znd} : Zande,
[{zap} : Zapotec], {zen} : Zenaga, {za} : Zhuang, {zu} : Zulu, {zun}
: Zuni
SEE ALSO #
COPYRIGHT AND DISCLAIMER #
AUTHOR #
II1188NN::::LLaannggiinnffoo -- qquueerryy llooccaallee iinnffoorrmmaattiioonn
SYNOPSIS #
DESCRIPTION #
For systems without "nl_langinfo"
“ERA”, “CODESET”, “YESEXPR”, “YESSTR”, “NOEXPR”, “NOSTR”, #
“D_FMT”, “T_FMT”, “D_T_FMT”, “CRNCYSTR”, “ALT_DIGITS”, #
“ERA_D_FMT”, “ERA_T_FMT”, “ERA_D_T_FMT”, “T_FMT_AMPM” #
EXPORT #
BUGS #
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
IIOO -- llooaadd vvaarriioouuss IIOO mmoodduulleess
SYNOPSIS #
DESCRIPTION #
DEPRECATED #
IIOO::::CCoommpprreessss::::BBaassee -- BBaassee CCllaassss ffoorr IIOO::::CCoommpprreessss mmoodduulleess
SYNOPSIS #
DESCRIPTION #
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::CCoommpprreessss::::BBzziipp22 -- WWrriittee bbzziipp22 ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Functional Interface
bzip2 $input_filename_or_reference => $output_filename_or_reference
[, OPTS] #
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeIn => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "Append => 0|1", A Buffer, A Filename, A
Filehandle, "BlockSize100K => number", "WorkFactor => number",
"Strict => 0|1"
Examples
Methods
print
printf
syswrite
write
flush
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
newStream([OPTS])
Importing
:all
EXAMPLES #
Apache::GZip Revisited
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::CCoommpprreessss::::DDeeffllaattee -- WWrriittee RRFFCC 11995500 ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Functional Interface
deflate $input_filename_or_reference => $output_filename_or_reference
[, OPTS] #
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeIn => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "Append => 0|1", A Buffer, A Filename, A
Filehandle, "Merge => 0|1", -Level, -Strategy, "Strict => 0|1"
Examples
Methods
print
printf
syswrite
write
flush
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
newStream([OPTS])
deflateParams
Importing
:all, :constants, :flush, :level, :strategy
EXAMPLES #
Apache::GZip Revisited
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::CCoommpprreessss::::FFAAQQ -–- FFrreeqquueennttllyy AAsskkeedd QQuueessttiioonnss aabboouutt IIOO::::CCoommpprreessss
DESCRIPTION #
GENERAL #
Compatibility with Unix compress/uncompress.
Accessing .tar.Z files
How do I recompress using a different compression?
ZIP #
What Compression Types do IO::Compress::Zip & IO::Uncompress::Unzip
support?
Store (method 0), Deflate (method 8), Bzip2 (method 12), Lzma
(method 14)
Can I Read/Write Zip files larger the 4 Gig?
Can I write more that 64K entries is a Zip files?
Zip Resources
GZIP #
Gzip Resources
Dealing with concatenated gzip files
Reading bgzip files with IO::Uncompress::Gunzip
ZLIB #
Zlib Resources
Bzip2
Bzip2 Resources
Dealing with Concatenated bzip2 files
Interoperating with Pbzip2
HTTP & NETWORK #
Apache::GZip Revisited
Compressed files and Net::FTP
MISC #
Using "InputLength" to uncompress data embedded in a larger
file/buffer.
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::CCoommpprreessss::::GGzziipp -- WWrriittee RRFFCC 11995522 ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Functional Interface
gzip $input_filename_or_reference => $output_filename_or_reference [,
OPTS] #
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeIn => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "Append => 0|1", A Buffer, A Filename, A
Filehandle, "Merge => 0|1", -Level, -Strategy, "Minimal => 0|1",
"Comment => $comment", "Name => $string", "Time => $number",
"TextFlag => 0|1", "HeaderCRC => 0|1", "OS_Code => $value",
"ExtraField => $data", "ExtraFlags => $value", "Strict => 0|1"
Examples
Methods
print
printf
syswrite
write
flush
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
newStream([OPTS])
deflateParams
Importing
:all, :constants, :flush, :level, :strategy
EXAMPLES #
Apache::GZip Revisited
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::CCoommpprreessss::::RRaawwDDeeffllaattee -- WWrriittee RRFFCC 11995511 ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Functional Interface
rawdeflate $input_filename_or_reference =>
$output_filename_or_reference [, OPTS]
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeIn => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "Append => 0|1", A Buffer, A Filename, A
Filehandle, "Merge => 0|1", -Level, -Strategy, "Strict => 0|1"
Examples
Methods
print
printf
syswrite
write
flush
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
newStream([OPTS])
deflateParams
Importing
:all, :constants, :flush, :level, :strategy
EXAMPLES #
Apache::GZip Revisited
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::CCoommpprreessss::::ZZiipp -- WWrriittee zziipp ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Store (0), Deflate (8), Bzip2 (12), Lzma (14), Zstandard (93), Xz
(95)
Functional Interface
zip $input_filename_or_reference => $output_filename_or_reference [,
OPTS] #
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeIn => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "Append => 0|1", A Buffer, A Filename, A
Filehandle, "Name => $string", If the $input parameter is not a
filename, the _a_r_c_h_i_v_e _m_e_m_b_e_r _n_a_m_e will be an empty string,
"CanonicalName => 0|1", "FilterName => sub { ... }", "Efs =>
0|1", "Minimal => 1|0", "Stream => 0|1", "Zip64 => 0|1", -Level,
-Strategy, "BlockSize100K => number", "WorkFactor => number",
"Preset => number", "Extreme => 0|1", "Time => $number", "ExtAttr
=> $attr", "exTime => [$atime, $mtime, $ctime]", "exUnix2 =>
[$uid, $gid]", "exUnixN => [$uid, $gid]", "Comment => $comment",
"ZipComment => $comment", "Method => $method", "TextFlag => 0|1",
"ExtraFieldLocal => $data", "ExtraFieldCentral => $data", "Strict
=> 0|1"
Examples
Methods
print
printf
syswrite
write
flush
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
newStream([OPTS])
deflateParams
Importing
:all, :constants, :flush, :level, :strategy, :zip_method
EXAMPLES #
Apache::GZip Revisited
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::DDiirr -- ssuuppppllyy oobbjjeecctt mmeetthhooddss ffoorr ddiirreeccttoorryy hhaannddlleess
SYNOPSIS #
DESCRIPTION #
new ( [ DIRNAME ] ), open ( DIRNAME ), read (), seek ( POS ), tell
(), rewind (), close (), tie %hash, 'IO::Dir', DIRNAME [, OPTIONS ]
SEE ALSO #
AUTHOR #
COPYRIGHT #
IIOO::::FFiillee -- ssuuppppllyy oobbjjeecctt mmeetthhooddss ffoorr ffiilleehhaannddlleess
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR #
new ( FILENAME [,MODE [,PERMS]] ), new_tmpfile
METHODS #
open( FILENAME [,MODE [,PERMS]] ), open( FILENAME, IOLAYERS ),
binmode( [LAYER] )
NOTE #
SEE ALSO #
HISTORY #
IIOO::::HHaannddllee -- ssuuppppllyy oobbjjeecctt mmeetthhooddss ffoorr II//OO hhaannddlleess
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR #
new (), new_from_fd ( FD, MODE )
METHODS #
$io->fdopen ( FD, MODE ), $io->opened, $io->getline, $io->getlines,
$io->ungetc ( ORD ), $io->write ( BUF, LEN [, OFFSET ] ), $io->error,
$io->clearerr, $io->sync, $io->flush, $io->printflush ( ARGS ),
$io->blocking ( [ BOOL ] ), $io->untaint
NOTE #
SEE ALSO #
BUGS #
HISTORY #
IIOO::::PPiippee -- ssuuppppllyy oobbjjeecctt mmeetthhooddss ffoorr ppiippeess
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR #
new ( [READER, WRITER] )
METHODS #
reader ([ARGS]), writer ([ARGS]), handles ()
SEE ALSO #
AUTHOR #
COPYRIGHT #
IIOO::::PPoollll -- OObbjjeecctt iinntteerrffaaccee ttoo ssyysstteemm ppoollll ccaallll
SYNOPSIS #
DESCRIPTION #
METHODS #
mask ( IO [, EVENT_MASK ] ), poll ( [ TIMEOUT ] ), events ( IO ),
remove ( IO ), handles( [ EVENT_MASK ] )
SEE ALSO #
AUTHOR #
COPYRIGHT #
IIOO::::SSeeeekkaabbllee -- ssuuppppllyy sseeeekk bbaasseedd mmeetthhooddss ffoorr II//OO oobbjjeeccttss
SYNOPSIS #
DESCRIPTION #
$io->getpos, $io->setpos, $io->seek ( POS, WHENCE ), WHENCE=0
(SEEK_SET), WHENCE=1 (SEEK_CUR), WHENCE=2 (SEEK_END), $io->sysseek(
POS, WHENCE ), $io->tell
SEE ALSO #
HISTORY #
IIOO::::SSeelleecctt -- OOOO iinntteerrffaaccee ttoo tthhee sseelleecctt ssyysstteemm ccaallll
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR #
new ( [ HANDLES ] )
METHODS #
add ( HANDLES ), remove ( HANDLES ), exists ( HANDLE ), handles,
can_read ( [ TIMEOUT ] ), can_write ( [ TIMEOUT ] ), has_exception (
[ TIMEOUT ] ), count (), bbiittss(()), select ( READ, WRITE, EXCEPTION [,
TIMEOUT ] ) #
EXAMPLE #
AUTHOR #
COPYRIGHT #
IIOO::::SSoocckkeett -- OObbjjeecctt iinntteerrffaaccee ttoo ssoocckkeett ccoommmmuunniiccaattiioonnss
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR ARGUMENTS #
Blocking
Domain
Listen
Timeout
Type
CONSTRUCTORS #
new
METHODS #
accept
atmark
autoflush
bind
connected
getsockopt
listen
peername
protocol
recv
send
setsockopt
shutdown
sockdomain
socket
socketpair
sockname
sockopt
socktype
timeout
EXAMPLES #
LIMITATIONS #
SEE ALSO #
AUTHOR #
COPYRIGHT #
IIOO::::SSoocckkeett::::IINNEETT -- OObbjjeecctt iinntteerrffaaccee ffoorr AAFF__IINNEETT ddoommaaiinn ssoocckkeettss
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR #
new ( [ARGS] )
METHODS #
sockaddr (), sockport (), sockhost (), peeraddr (), peerport (),
peerhost ()
SEE ALSO #
AUTHOR #
COPYRIGHT #
IIOO::::SSoocckkeett::::IIPP,, “"IIOO::::SSoocckkeett::::IIPP"” -- FFaammiillyy--nneeuuttrraall IIPP ssoocckkeett ssuuppppoorrttiinngg bbootthh IIPPvv44 aanndd IIPPvv66
SYNOPSIS #
DESCRIPTION #
REPLACING "IO::Socket" DEFAULT BEHAVIOUR
CONSTRUCTORS #
new PeerHost => STRING, PeerService => STRING, PeerAddr => STRING,
PeerPort => STRING, PeerAddrInfo => ARRAY, LocalHost => STRING,
LocalService => STRING, LocalAddr => STRING, LocalPort => STRING,
LocalAddrInfo => ARRAY, Family => INT, Type => INT, Proto => STRING
or INT, GetAddrInfoFlags => INT, Listen => INT, ReuseAddr => BOOL,
ReusePort => BOOL, Broadcast => BOOL, Sockopts => ARRAY, V6Only =>
BOOL, MultiHomed, Blocking => BOOL, Timeout => NUM
new (one arg)
METHODS #
sockhost_service
sockhost
sockport
sockhostname
sockservice
sockaddr
peerhost_service
peerhost
peerport
peerhostname
peerservice
peeraddr
as_inet
NON-BLOCKING #
"PeerHost" AND "LocalHost" PARSING
split_addr
join_addr
"IO::Socket::INET" INCOMPATIBILITES
TODO #
AUTHOR #
IIOO::::SSoocckkeett::::UUNNIIXX -- OObbjjeecctt iinntteerrffaaccee ffoorr AAFF__UUNNIIXX ddoommaaiinn ssoocckkeettss
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR #
new ( [ARGS] )
METHODS #
hhoossttppaatthh(()), ppeeeerrppaatthh(())
SEE ALSO #
AUTHOR #
COPYRIGHT #
IIOO::::UUnnccoommpprreessss::::AAnnyyIInnffllaattee -- UUnnccoommpprreessss zzlliibb--bbaasseedd ((zziipp,, ggzziipp)) ffiillee//bbuuffffeerr
SYNOPSIS #
DESCRIPTION #
RFC 1950, RFC 1951 (optionally), gzip (RFC 1952), zip
Functional Interface
anyinflate $input_filename_or_reference =>
$output_filename_or_reference [, OPTS]
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeOut => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle, "MultiStream => 0|1",
"TrailingData => $scalar"
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "MultiStream => 0|1", "Prime => $string",
"Transparent => 0|1", "BlockSize => $num", "InputLength =>
$size", "Append => 0|1", "Strict => 0|1", "RawInflate => 0|1",
"ParseExtra => 0|1" If the gzip FEXTRA header field is present
and this option is set, it will force the module to check that it
conforms to the sub-field structure as defined in RFC 1952
Examples
Methods
read
read
getline
getc
ungetc
inflateSync
getHeaderInfo
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
nextStream
trailingData
Importing
:all
EXAMPLES #
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::UUnnccoommpprreessss::::AAnnyyUUnnccoommpprreessss -- UUnnccoommpprreessss ggzziipp,, zziipp,, bbzziipp22,, zzssttdd,, xxzz,, llzzmmaa,, llzziipp,, llzzff oorr llzzoopp ffiillee//bbuuffffeerr
SYNOPSIS #
DESCRIPTION #
RFC 1950, RFC 1951 (optionally), gzip (RFC 1952), zip, zstd
(Zstandard), bzip2, lzop, lzf, lzma, lzip, xz
Functional Interface
anyuncompress $input_filename_or_reference =>
$output_filename_or_reference [, OPTS]
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeOut => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle, "MultiStream => 0|1",
"TrailingData => $scalar"
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "MultiStream => 0|1", "Prime => $string",
"Transparent => 0|1", "BlockSize => $num", "InputLength =>
$size", "Append => 0|1", "Strict => 0|1", "RawInflate => 0|1",
"UnLzma => 0|1"
Examples
Methods
read
read
getline
getc
ungetc
getHeaderInfo
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
nextStream
trailingData
Importing
:all
EXAMPLES #
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::UUnnccoommpprreessss::::BBaassee -- BBaassee CCllaassss ffoorr IIOO::::UUnnccoommpprreessss mmoodduulleess
SYNOPSIS #
DESCRIPTION #
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::UUnnccoommpprreessss::::BBuunnzziipp22 -- RReeaadd bbzziipp22 ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Functional Interface
bunzip2 $input_filename_or_reference => $output_filename_or_reference
[, OPTS] #
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeOut => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle, "MultiStream => 0|1",
"TrailingData => $scalar"
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "MultiStream => 0|1", "Prime => $string",
"Transparent => 0|1", "BlockSize => $num", "InputLength =>
$size", "Append => 0|1", "Strict => 0|1", "Small => 0|1"
Examples
Methods
read
read
getline
getc
ungetc
getHeaderInfo
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
nextStream
trailingData
Importing
:all
EXAMPLES #
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::UUnnccoommpprreessss::::GGuunnzziipp -- RReeaadd RRFFCC 11995522 ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Functional Interface
gunzip $input_filename_or_reference => $output_filename_or_reference
[, OPTS] #
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeOut => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle, "MultiStream => 0|1",
"TrailingData => $scalar"
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "MultiStream => 0|1", "Prime => $string",
"Transparent => 0|1", "BlockSize => $num", "InputLength =>
$size", "Append => 0|1", "Strict => 0|1", "ParseExtra => 0|1" If
the gzip FEXTRA header field is present and this option is set,
it will force the module to check that it conforms to the sub-
field structure as defined in RFC 1952
Examples
Methods
read
read
getline
getc
ungetc
inflateSync
getHeaderInfo
Name, Comment
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
nextStream
trailingData
Importing
:all
EXAMPLES #
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::UUnnccoommpprreessss::::IInnffllaattee -- RReeaadd RRFFCC 11995500 ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Functional Interface
inflate $input_filename_or_reference => $output_filename_or_reference
[, OPTS] #
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeOut => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle, "MultiStream => 0|1",
"TrailingData => $scalar"
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "MultiStream => 0|1", "Prime => $string",
"Transparent => 0|1", "BlockSize => $num", "InputLength =>
$size", "Append => 0|1", "Strict => 0|1"
Examples
Methods
read
read
getline
getc
ungetc
inflateSync
getHeaderInfo
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
nextStream
trailingData
Importing
:all
EXAMPLES #
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::UUnnccoommpprreessss::::RRaawwIInnffllaattee -- RReeaadd RRFFCC 11995511 ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Functional Interface
rawinflate $input_filename_or_reference =>
$output_filename_or_reference [, OPTS]
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeOut => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle, "MultiStream => 0|1",
"TrailingData => $scalar"
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"AutoClose => 0|1", "MultiStream => 0|1", "Prime => $string",
"Transparent => 0|1", "BlockSize => $num", "InputLength =>
$size", "Append => 0|1", "Strict => 0|1"
Examples
Methods
read
read
getline
getc
ungetc
inflateSync
getHeaderInfo
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
nextStream
trailingData
Importing
:all
EXAMPLES #
Working with Net::FTP
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::UUnnccoommpprreessss::::UUnnzziipp -- RReeaadd zziipp ffiilleess//bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
Store (0), Deflate (8), Bzip2 (12), Lzma (14), Xz (95), Zstandard
(93)
Functional Interface
unzip $input_filename_or_reference => $output_filename_or_reference
[, OPTS] #
A filename, A filehandle, A scalar reference, An array reference,
An Input FileGlob string, A filename, A filehandle, A scalar
reference, An Array Reference, An Output FileGlob
Notes
Optional Parameters
"AutoClose => 0|1", "BinModeOut => 0|1", "Append => 0|1", A
Buffer, A Filename, A Filehandle, "MultiStream => 0|1",
"TrailingData => $scalar"
Examples
OO Interface
Constructor
A filename, A filehandle, A scalar reference
Constructor Options
"Name => "membername"", "Efs => 0| 1", "AutoClose => 0|1",
"MultiStream => 0|1", "Prime => $string", "Transparent => 0|1",
"BlockSize => $num", "InputLength => $size", "Append => 0|1",
"Strict => 0|1"
Examples
Methods
read
read
getline
getc
ungetc
inflateSync
getHeaderInfo
tell
eof
seek
binmode
opened
autoflush
input_line_number
fileno
close
nextStream
trailingData
Importing
:all
EXAMPLES #
Working with Net::FTP
Walking through a zip file
Unzipping a complete zip file to disk
SUPPORT #
SEE ALSO #
AUTHOR #
MODIFICATION HISTORY #
COPYRIGHT AND LICENSE #
IIOO::::ZZlliibb -- IIOO:::: ssttyyllee iinntteerrffaaccee ttoo CCoommpprreessss::::ZZlliibb
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR #
new ( [ARGS] )
OBJECT METHODS #
open ( FILENAME, MODE ), opened, close, getc, getline, getlines,
print ( ARGS... ), read ( BUF, NBYTES, [OFFSET] ), eof, seek (
OFFSET, WHENCE ), tell, setpos ( POS ), getpos ( POS )
USING THE EXTERNAL GZIP #
CLASS METHODS #
has_Compress_Zlib, gzip_external, gzip_used, gzip_read_open,
gzip_write_open
DIAGNOSTICS #
IO::Zlib::getlines: must be called in list context,
IO::Zlib::gzopen_external: mode '...' is illegal, IO::Zlib::import:
'...' is illegal, IO::Zlib::import: ':gzip_external' requires an
argument, IO::Zlib::import: 'gzip_read_open' requires an argument,
IO::Zlib::import: 'gzip_read' '...' is illegal, IO::Zlib::import:
'gzip_write_open' requires an argument, IO::Zlib::import:
'gzip_write_open' '...' is illegal, IO::Zlib::import: no
Compress::Zlib and no external gzip, IO::Zlib::open: needs a
filename, IO::Zlib::READ: NBYTES must be specified, IO::Zlib::WRITE:
too long LENGTH
SEE ALSO #
HISTORY #
COPYRIGHT #
IIPPCC::::CCmmdd -- ffiinnddiinngg aanndd rruunnnniinngg ssyysstteemm ccoommmmaannddss mmaaddee eeaassyy
SYNOPSIS #
DESCRIPTION #
CLASS METHODS #
$ipc_run_version = IPC::Cmd->can_use_ipc_run( [VERBOSE] )
$ipc_open3_version = IPC::Cmd->can_use_ipc_open3( [VERBOSE] )
$bool = IPC::Cmd->can_capture_buffer
$bool = IPC::Cmd->can_use_run_forked
FUNCTIONS #
$path = can_run( PROGRAM );
$ok | ($ok, $err, $full_buf, $stdout_buff, $stderr_buff) = run( command
=> COMMAND, [verbose => BOOL, buffer => \$SCALAR, timeout => DIGIT] );
command, verbose, buffer, timeout, success, error message,
full_buffer, out_buffer, error_buffer
$hashref = run_forked( COMMAND, { child_stdin => SCALAR, timeout =>
DIGIT, stdout_handler => CODEREF, stderr_handler => CODEREF} );
"timeout", "child_stdin", "stdout_handler", "stderr_handler",
"wait_loop_callback", "discard_output",
"terminate_on_parent_sudden_death", "exit_code", "timeout", "stdout",
"stderr", "merged", "err_msg"
$q = QUOTE
HOW IT WORKS #
Global Variables
$IPC::Cmd::VERBOSE
$IPC::Cmd::USE_IPC_RUN
$IPC::Cmd::USE_IPC_OPEN3
$IPC::Cmd::WARN
$IPC::Cmd::INSTANCES
$IPC::Cmd::ALLOW_NULL_ARGS
Caveats
Whitespace and IPC::Open3 / ssyysstteemm(()), Whitespace and IPC::Run, IO
Redirect, Interleaving STDOUT/STDERR
See Also
ACKNOWLEDGEMENTS #
BUG REPORTS #
AUTHOR #
COPYRIGHT #
IIPPCC::::MMssgg -- SSyyssVV MMssgg IIPPCC oobbjjeecctt ccllaassss
SYNOPSIS #
DESCRIPTION #
METHODS #
new ( KEY , FLAGS ), id, rcv ( BUF, LEN [, TYPE [, FLAGS ]] ),
remove, set ( STAT ), set ( NAME => VALUE [, NAME => VALUE ...] ),
snd ( TYPE, MSG [, FLAGS ] ), stat
SEE ALSO #
AUTHORS #
COPYRIGHT #
IIPPCC::::OOppeenn22 -- ooppeenn aa pprroocceessss ffoorr bbootthh rreeaaddiinngg aanndd wwrriittiinngg uussiinngg ooppeenn22(())
SYNOPSIS #
DESCRIPTION #
WARNING #
SEE ALSO #
IIPPCC::::OOppeenn33 -- ooppeenn aa pprroocceessss ffoorr rreeaaddiinngg,, wwrriittiinngg,, aanndd eerrrroorr hhaannddlliinngg uussiinngg ooppeenn33(())
SYNOPSIS #
DESCRIPTION #
See Also
IPC::Open2, IPC::Run
WARNING #
IIPPCC::::SSeemmaapphhoorree -- SSyyssVV SSeemmaapphhoorree IIPPCC oobbjjeecctt ccllaassss
SYNOPSIS #
DESCRIPTION #
METHODS #
new ( KEY , NSEMS , FLAGS ), getall, getncnt ( SEM ), getpid ( SEM ),
getval ( SEM ), getzcnt ( SEM ), id, op ( OPLIST ), remove, set (
STAT ), set ( NAME => VALUE [, NAME => VALUE ...] ), setall ( VALUES
), setval ( N , VALUE ), stat
SEE ALSO #
AUTHORS #
COPYRIGHT #
IIPPCC::::SShhaarreeddMMeemm -- SSyyssVV SShhaarreedd MMeemmoorryy IIPPCC oobbjjeecctt ccllaassss
SYNOPSIS #
DESCRIPTION #
METHODS #
new ( KEY , SIZE , FLAGS ), id, read ( POS, SIZE ), write ( STRING,
POS, SIZE ), remove, is_removed, stat, attach ( [FLAG] ), detach,
addr
SEE ALSO #
AUTHORS #
COPYRIGHT #
IIPPCC::::SSyyssVV -- SSyysstteemm VV IIPPCC ccoonnssttaannttss aanndd ssyysstteemm ccaallllss
SYNOPSIS #
DESCRIPTION #
ftok( PATH ), ftok( PATH, ID ), shmat( ID, ADDR, FLAG ), shmdt( ADDR
), memread( ADDR, VAR, POS, SIZE ), memwrite( ADDR, STRING, POS, SIZE
)
SEE ALSO #
AUTHORS #
COPYRIGHT #
IInntteerrnnaallss -- RReesseerrvveedd ssppeecciiaall nnaammeessppaaccee ffoorr iinntteerrnnaallss rreellaatteedd ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
SvREFCNT(THING [, $value]), SvREADONLY(THING, [, $value]),
hv_clear_placeholders(%hash)
AUTHOR #
SEE ALSO #
JJSSOONN::::PPPP -- JJSSOONN::::XXSS ccoommppaattiibbllee ppuurree--PPeerrll mmoodduullee..
SYNOPSIS #
DESCRIPTION #
FUNCTIONAL INTERFACE #
encode_json
decode_json
JSON::PP::is_bool
OBJECT-ORIENTED INTERFACE #
new
ascii
latin1
utf8
pretty
indent
space_before
space_after
relaxed
list items can have an end-comma, shell-style '#'-comments,
C-style multiple-line '/* */'-comments (JSON::PP only), C++-style
one-line '//'-comments (JSON::PP only), literal ASCII TAB
characters in strings
canonical
allow_nonref
allow_unknown
allow_blessed
convert_blessed
allow_tags
boolean_values
filter_json_object
filter_json_single_key_object
shrink
max_depth
max_size
encode
decode
decode_prefix
FLAGS FOR JSON::PP ONLY #
allow_singlequote
allow_barekey
allow_bignum
loose
escape_slash
indent_length
sort_by
INCREMENTAL PARSING #
incr_parse
incr_text
incr_skip
incr_reset
MAPPING #
JSON -> PERL #
object, array, string, number, true, false, null, shell-style
comments ("# _t_e_x_t"), tagged values ("(_t_a_g)_v_a_l_u_e")
PERL -> JSON #
hash references, array references, other references,
JSON::PP::true, JSON::PP::false, JSON::PP::null, blessed objects,
simple scalars
OBJECT SERIALISATION #
1. "allow_tags" is enabled and the object has a "FREEZE" method,
2. "convert_blessed" is enabled and the object has a "TO_JSON"
method, 3. "allow_bignum" is enabled and the object is a
"Math::BigInt" or "Math::BigFloat", 4. "allow_blessed" is
enabled, 5. none of the above
ENCODING/CODESET FLAG NOTES #
"utf8" flag disabled, "utf8" flag enabled, "latin1" or "ascii" flags
enabled
BUGS #
SEE ALSO #
AUTHOR #
CURRENT MAINTAINER #
COPYRIGHT AND LICENSE #
JJSSOONN::::PPPP::::BBoooolleeaann -- dduummmmyy mmoodduullee pprroovviiddiinngg JJSSOONN::::PPPP::::BBoooolleeaann
SYNOPSIS #
DESCRIPTION #
AUTHOR #
LICENSE #
LLiisstt::::UUttiill -- AA sseelleeccttiioonn ooff ggeenneerraall--uuttiilliittyy lliisstt ssuubbrroouuttiinneess
SYNOPSIS #
DESCRIPTION #
LIST-REDUCTION FUNCTIONS #
reduce
reductions
any
all
none
notall
first
max
maxstr
min
minstr
product
sum
sum0
KEY/VALUE PAIR LIST FUNCTIONS #
pairs
unpairs
pairkeys
pairvalues
pairgrep
pairfirst
pairmap
OTHER FUNCTIONS #
shuffle
sample
uniq
uniqint
uniqnum
uniqstr
head
tail
zip
mesh
CONFIGURATION VARIABLES #
$RAND #
KNOWN BUGS #
RT #95409 #
uunniiqqnnuumm(()) on oversized bignums
SUGGESTED ADDITIONS #
SEE ALSO #
COPYRIGHT #
LLiisstt::::UUttiill::::XXSS -- IInnddiiccaattee iiff LLiisstt::::UUttiill wwaass ccoommppiilleedd wwiitthh aa CC ccoommppiilleerr
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
COPYRIGHT #
LLooccaallee::::MMaakkeetteexxtt -- ffrraammeewwoorrkk ffoorr llooccaalliizzaattiioonn
SYNOPSIS #
DESCRIPTION #
QUICK OVERVIEW #
METHODS #
Construction Methods
The "maketext" Method
$lh->fail_with _o_r $lh->fail_with(_P_A_R_A_M),
$lh->failure_handler_auto, $lh->denylist(@list) <or>
$lh->blacklist(@list), $lh->allowlist(@list) <or>
$lh->whitelist(@list)
Utility Methods
$language->quant($number, $singular), $language->quant($number,
$singular, $plural), $language->quant($number, $singular,
$plural, $negative), $language->numf($number),
$language->numerate($number, $singular, $plural, $negative),
$language->sprintf($format, @items), $language->llaanngguuaaggee__ttaagg(()),
$language->eennccooddiinngg(())
Language Handle Attributes and Internals
LANGUAGE CLASS HIERARCHIES #
ENTRIES IN EACH LEXICON #
BRACKET NOTATION #
BRACKET NOTATION SECURITY #
AUTO LEXICONS #
READONLY LEXICONS #
CONTROLLING LOOKUP FAILURE #
HOW TO USE MAKETEXT #
SEE ALSO #
COPYRIGHT AND DISCLAIMER #
AUTHOR #
LLooccaallee::::MMaakkeetteexxtt::::CCooookkbbooookk -- rreecciippeess ffoorr uussiinngg LLooccaallee::::MMaakkeetteexxtt
INTRODUCTION #
ONESIDED LEXICONS #
DECIMAL PLACES IN NUMBER FORMATTING #
LLooccaallee::::MMaakkeetteexxtt::::GGuuttss -- DDeepprreeccaatteedd mmoodduullee ttoo llooaadd LLooccaallee::::MMaakkeetteexxtt uuttff88 ccooddee
SYNOPSIS #
DESCRIPTION #
LLooccaallee::::MMaakkeetteexxtt::::GGuuttssLLooaaddeerr -- DDeepprreeccaatteedd mmoodduullee ttoo llooaadd LLooccaallee::::MMaakkeetteexxtt uuttff88 ccooddee
SYNOPSIS #
DESCRIPTION #
LLooccaallee::::MMaakkeetteexxtt::::SSiimmppllee -- SSiimmppllee iinntteerrffaaccee ttoo LLooccaallee::::MMaakkeetteexxtt::::LLeexxiiccoonn
VERSION #
SYNOPSIS #
DESCRIPTION #
OPTIONS #
Class
Path
Style
Export
Subclass
Decode
Encoding
ACKNOWLEDGMENTS #
SEE ALSO #
AUTHORS #
COPYRIGHT #
The "MIT" License
LLooccaallee::::MMaakkeetteexxtt::::TTPPJJ1133 -–- aarrttiiccllee aabboouutt ssooffttwwaarree llooccaalliizzaattiioonn
SYNOPSIS #
DESCRIPTION #
Localization and Perl: gettext breaks, Maketext fixes
A Localization Horror Story: It Could Happen To You
The Linguistic View
Breaking gettext
Replacing gettext
Buzzwords: Abstraction and Encapsulation
Buzzword: Isomorphism
Buzzword: Inheritance
Buzzword: Concision
The Devil in the Details
The Proof in the Pudding: Localizing Web Sites
References
MMIIMMEE::::BBaassee6644 -- EEnnccooddiinngg aanndd ddeeccooddiinngg ooff bbaassee6644 ssttrriinnggss
SYNOPSIS #
DESCRIPTION #
encode_base64( $bytes ), encode_base64( $bytes, $eol );,
decode_base64( $str ), encode_base64url( $bytes ), decode_base64url(
$str ), encoded_base64_length( $bytes ), encoded_base64_length(
$bytes, $eol ), decoded_base64_length( $str )
EXAMPLES #
COPYRIGHT #
SEE ALSO #
MMIIMMEE::::QQuuootteeddPPrriinntt -- EEnnccooddiinngg aanndd ddeeccooddiinngg ooff qquuootteedd--pprriinnttaabbllee ssttrriinnggss
SYNOPSIS #
DESCRIPTION #
encode_qp( $str), encode_qp( $str, $eol), encode_qp( $str, $eol,
$binmode ), decode_qp( $str )
COPYRIGHT #
SEE ALSO #
MMaatthh::::BBiiggFFllooaatt -- aarrbbiittrraarryy ssiizzee ffllooaattiinngg ppooiinntt mmaatthh ppaacckkaaggee
SYNOPSIS #
DESCRIPTION #
Input
Output
METHODS #
Configuration methods
aaccccuurraaccyy(()), pprreecciissiioonn(())
Constructor methods
ffrroomm__hheexx(()), ffrroomm__oocctt(()), ffrroomm__bbiinn(()), ffrroomm__iieeeeee775544(()), bbppii(())
Arithmetic methods
bbmmuullaadddd(()), bbddiivv(()), bbmmoodd(()), bbeexxpp(()), bbnnookk(()), bbssiinn(()), bbccooss(()),
bbaattaann(()), bbaattaann22(()), aass__ffllooaatt(()), ttoo__iieeeeee775544(())
ACCURACY AND PRECISION #
Rounding
bfround ( +$scale ), bfround ( -$scale ), bfround ( 0 ), bround
( +$scale ), bround ( -$scale ) and bround ( 0 )
NUMERIC LITERALS #
Hexadecimal, octal, and binary floating point literals
Math library
Using Math::BigInt::Lite
EXPORTS #
CAVEATS #
stringify, bbssttrr(()), bbrrssfftt(()), Modifying and =, pprreecciissiioonn(()) vs.
aaccccuurraaccyy(())
BUGS #
SUPPORT #
GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix,
CPAN Ratings, The Bignum mailing list, Post to mailing list, View
mailing list, Subscribe/Unsubscribe
LICENSE #
SEE ALSO #
AUTHORS #
MMaatthh::::BBiiggIInntt -- aarrbbiittrraarryy ssiizzee iinntteeggeerr mmaatthh ppaacckkaaggee
SYNOPSIS #
DESCRIPTION #
Input
Output
METHODS #
Configuration methods
aaccccuurraaccyy(()), pprreecciissiioonn(()), ddiivv__ssccaallee(()), rroouunndd__mmooddee(()), uuppggrraaddee(()),
ddoowwnnggrraaddee(()), mmooddiiffyy(()), ccoonnffiigg(())
Constructor methods
nneeww(()), ffrroomm__ddeecc(()), ffrroomm__hheexx(()), ffrroomm__oocctt(()), ffrroomm__bbiinn(()),
ffrroomm__bbyytteess(()), ffrroomm__bbaassee(()), ffrroomm__bbaassee__nnuumm(()), bbzzeerroo(()), bboonnee(()),
bbiinnff(()), bbnnaann(()), bbppii(()), ccooppyy(()), aass__iinntt(()), aass__nnuummbbeerr(())
Boolean methods
iiss__zzeerroo(()), is_one( [ SIGN ]), iiss__ffiinniittee(()), is_inf( [ SIGN ] ),
iiss__nnaann(()), iiss__ppoossiittiivvee(()), iiss__ppooss(()), iiss__nneeggaattiivvee(()), iiss__nneegg(()),
iiss__nnoonn__ppoossiittiivvee(()), iiss__nnoonn__nneeggaattiivvee(()), iiss__oodddd(()), iiss__eevveenn(()),
iiss__iinntt(())
Comparison methods
bbccmmpp(()), bbaaccmmpp(()), bbeeqq(()), bbnnee(()), bblltt(()), bbllee(()), bbggtt(()), bbggee(())
Arithmetic methods
bbnneegg(()), bbaabbss(()), bbssggnn(()), bbnnoorrmm(()), bbiinncc(()), bbddeecc(()), bbaadddd(()), bbssuubb(()),
bbmmuull(()), bbmmuullaadddd(()), bbddiivv(()), bbttddiivv(()), bbmmoodd(()), bbttmmoodd(()), bbmmooddiinnvv(()),
bbmmooddppooww(()), bbppooww(()), bblloogg(()), bbeexxpp(()), bbnnookk(()), bbuuppaarrrrooww(()), uuppaarrrrooww(()),
bbaacckkeerrmmaannnn(()), aacckkeerrmmaannnn(()), bbssiinn(()), bbccooss(()), bbaattaann(()), bbaattaann22(()),
bbssqqrrtt(()), bbrroooott(()), bbffaacc(()), bbddffaacc(()), bbttffaacc(()), bbmmffaacc(()), bbffiibb(()),
bblluuccaass(()), bbrrssfftt(()), bbllssfftt(())
Bitwise methods
bbaanndd(()), bbiioorr(()), bbxxoorr(()), bbnnoott(())
Rounding methods
rroouunndd(()), bbrroouunndd(()), bbffrroouunndd(()), bbfflloooorr(()), bbcceeiill(()), bbiinntt(())
Other mathematical methods
bbggccdd(()), bbllccmm(())
Object property methods
ssiiggnn(()), ddiiggiitt(()), ddiiggiittssuumm(()), bbddiiggiittssuumm(()), lleennggtthh(()), mmaannttiissssaa(()),
eexxppoonneenntt(()), ppaarrttss(()), ssppaarrttss(()), nnppaarrttss(()), eeppaarrttss(()), ddppaarrttss(()),
ffppaarrttss(()), nnuummeerraattoorr(()), ddeennoommiinnaattoorr(())
String conversion methods
bbssttrr(()), bbssssttrr(()), bbnnssttrr(()), bbeessttrr(()), bbddssttrr(()), ttoo__hheexx(()), ttoo__bbiinn(()),
ttoo__oocctt(()), ttoo__bbyytteess(()), ttoo__bbaassee(()), ttoo__bbaassee__nnuumm(()), aass__hheexx(()),
aass__bbiinn(()), aass__oocctt(()), aass__bbyytteess(())
Other conversion methods
nnuummiiffyy(())
Utility methods
ddeecc__ssttrr__ttoo__ddeecc__fflltt__ssttrr(()), hheexx__ssttrr__ttoo__ddeecc__fflltt__ssttrr(()),
oocctt__ssttrr__ttoo__ddeecc__fflltt__ssttrr(()), bbiinn__ssttrr__ttoo__ddeecc__fflltt__ssttrr(()),
ddeecc__ssttrr__ttoo__ddeecc__ssttrr(()), hheexx__ssttrr__ttoo__ddeecc__ssttrr(()), oocctt__ssttrr__ttoo__ddeecc__ssttrr(()),
bbiinn__ssttrr__ttoo__ddeecc__ssttrr(())
ACCURACY and PRECISION
Precision P
Accuracy A
Fallback F
Rounding mode R
'trunc', 'even', 'odd', '+inf', '-inf', 'zero', 'common',
Precision, Accuracy (significant digits), Setting/Accessing,
Creating numbers, Usage, Precedence, Overriding globals, Local
settings, Rounding, Default values, Remarks
Infinity and Not a Number
oocctt(())/hheexx(())
INTERNALS #
MATH LIBRARY #
SIGN #
EXAMPLES #
NUMERIC LITERALS #
Hexadecimal, octal, and binary floating point literals
PERFORMANCE #
Alternative math libraries
SUBCLASSING #
Subclassing Math::BigInt
UPGRADING #
Auto-upgrade
EXPORTS #
CAVEATS #
Comparing numbers as strings, iinntt(()), Modifying and =, Overloading
-$x, Mixing different object types
BUGS #
SUPPORT #
GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix,
CPAN Ratings, The Bignum mailing list, Post to mailing list, View
mailing list, Subscribe/Unsubscribe
LICENSE #
SEE ALSO #
AUTHORS #
MMaatthh::::BBiiggIInntt::::CCaallcc -- ppuurree PPeerrll mmoodduullee ttoo ssuuppppoorrtt MMaatthh::::BBiiggIInntt
SYNOPSIS #
DESCRIPTION #
OPTIONS #
base_len, use_int
METHODS #
__bbaassee__lleenn(())
SEE ALSO #
MMaatthh::::BBiiggIInntt::::FFaassttCCaallcc -- MMaatthh::::BBiiggIInntt::::CCaallcc wwiitthh ssoommee XXSS ffoorr mmoorree ssppeeeedd
SYNOPSIS #
DESCRIPTION #
STORAGE #
METHODS #
BUGS #
SUPPORT #
GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix,
CPAN Ratings
LICENSE #
AUTHORS #
SEE ALSO #
MMaatthh::::BBiiggIInntt::::LLiibb -- vviirrttuuaall ppaarreenntt ccllaassss ffoorr MMaatthh::::BBiiggIInntt lliibbrraarriieess
SYNOPSIS #
DESCRIPTION #
General Notes
CLASS->aappii__vveerrssiioonn(()), CLASS->_new(STR), CLASS->__zzeerroo(()),
CLASS->__oonnee(()), CLASS->__ttwwoo(()), CLASS->__tteenn(()),
CLASS->_from_bin(STR), CLASS->_from_oct(STR),
CLASS->_from_hex(STR), CLASS->_from_bytes(STR),
CLASS->_from_base(STR, BASE, COLLSEQ),
CLASS->_from_base_num(ARRAY, BASE), CLASS->_add(OBJ1, OBJ2),
CLASS->_mul(OBJ1, OBJ2), CLASS->_div(OBJ1, OBJ2),
CLASS->_sub(OBJ1, OBJ2, FLAG), CLASS->_sub(OBJ1, OBJ2),
CLASS->_sadd(OBJ1, SIGN1, OBJ2, SIGN2), CLASS->_ssub(OBJ1, SIGN1,
OBJ2, SIGN2), CLASS->_dec(OBJ), CLASS->_inc(OBJ),
CLASS->_mod(OBJ1, OBJ2), CLASS->_sqrt(OBJ), CLASS->_root(OBJ, N),
CLASS->_fac(OBJ), CLASS->_dfac(OBJ), CLASS->_pow(OBJ1, OBJ2),
CLASS->_modinv(OBJ1, OBJ2), CLASS->_modpow(OBJ1, OBJ2, OBJ3),
CLASS->_rsft(OBJ, N, B), CLASS->_lsft(OBJ, N, B),
CLASS->_log_int(OBJ, B), CLASS->_gcd(OBJ1, OBJ2),
CLASS->_lcm(OBJ1, OBJ2), CLASS->_fib(OBJ), CLASS->_lucas(OBJ),
CLASS->_and(OBJ1, OBJ2), CLASS->_or(OBJ1, OBJ2),
CLASS->_xor(OBJ1, OBJ2), CLASS->_sand(OBJ1, OBJ2, SIGN1, SIGN2),
CLASS->_sor(OBJ1, OBJ2, SIGN1, SIGN2), CLASS->_sxor(OBJ1, OBJ2,
SIGN1, SIGN2), CLASS->_is_zero(OBJ), CLASS->_is_one(OBJ),
CLASS->_is_two(OBJ), CLASS->_is_ten(OBJ), CLASS->_is_even(OBJ),
CLASS->_is_odd(OBJ), CLASS->_acmp(OBJ1, OBJ2), CLASS->_str(OBJ),
CLASS->_to_bin(OBJ), CLASS->_to_oct(OBJ), CLASS->_to_hex(OBJ),
CLASS->_to_bytes(OBJ), CLASS->_to_base(OBJ, BASE, COLLSEQ),
CLASS->_to_base_num(OBJ, BASE), CLASS->_as_bin(OBJ),
CLASS->_as_oct(OBJ), CLASS->_as_hex(OBJ), CLASS->_as_bytes(OBJ),
CLASS->_num(OBJ), CLASS->_copy(OBJ), CLASS->_len(OBJ),
CLASS->_zeros(OBJ), CLASS->_digit(OBJ, N), CLASS->_digitsum(OBJ),
CLASS->_check(OBJ), CLASS->_set(OBJ)
API version 2
CLASS->_1ex(N), CLASS->_nok(OBJ1, OBJ2), CLASS->_alen(OBJ)
WRAP YOUR OWN #
BUGS #
SUPPORT #
RT: CPAN's request tracker, AnnoCPAN: Annotated CPAN documentation,
CPAN Ratings, MetaCPAN, CPAN Testers Matrix, The Bignum mailing list,
Post to mailing list, View mailing list, Subscribe/Unsubscribe
LICENSE #
AUTHOR #
SEE ALSO #
MMaatthh::::BBiiggRRaatt -- aarrbbiittrraarryy ssiizzee rraattiioonnaall nnuummbbeerr mmaatthh ppaacckkaaggee
SYNOPSIS #
DESCRIPTION #
MATH LIBRARY #
METHODS #
nneeww(()), nnuummeerraattoorr(()), ddeennoommiinnaattoorr(()), ppaarrttss(()), ddppaarrttss(()), ffppaarrttss(()),
nnuummiiffyy(()), aass__iinntt(()), aass__nnuummbbeerr(()), aass__ffllooaatt(()), aass__hheexx(()), aass__bbiinn(()),
aass__oocctt(()), ffrroomm__hheexx(()), ffrroomm__oocctt(()), ffrroomm__bbiinn(()), bbnnaann(()), bbzzeerroo(()),
bbiinnff(()), bboonnee(()), lleennggtthh(()), ddiiggiitt(()), bbnnoorrmm(()), bbffaacc(()),
bbrroouunndd(())/rroouunndd(())/bbffrroouunndd(()), bbmmoodd(()), bbmmooddiinnvv(()), bbmmooddppooww(()), bbnneegg(()),
iiss__oonnee(()), iiss__zzeerroo(()), iiss__ppooss(())/iiss__ppoossiittiivvee(()), iiss__nneegg(())/iiss__nneeggaattiivvee(()),
iiss__iinntt(()), iiss__oodddd(()), iiss__eevveenn(()), bbcceeiill(()), bbfflloooorr(()), bbiinntt(()), bbssqqrrtt(()),
bbrroooott(()), bbaadddd(()), bbmmuull(()), bbssuubb(()), bbddiivv(()), bbiinnvv(()), bbddeecc(()), bbiinncc(()),
ccooppyy(()), bbssttrr(())/bbssssttrr(()), bbccmmpp(()), bbaaccmmpp(()), bbeeqq(()), bbnnee(()), bblltt(()), bbllee(()),
bbggtt(()), bbggee(()), bbllssfftt(())/bbrrssfftt(()), bbaanndd(()), bbiioorr(()), bbxxoorr(()), bbnnoott(()),
bbppooww(()), bblloogg(()), bbeexxpp(()), bbnnookk(()), ccoonnffiigg(())
NUMERIC LITERALS #
Hexadecimal, octal, and binary floating point literals
BUGS #
SUPPORT #
GitHub, RT: CPAN's request tracker, MetaCPAN, CPAN Testers Matrix,
CPAN Ratings
LICENSE #
SEE ALSO #
AUTHORS #
MMaatthh::::CCoommpplleexx -- ccoommpplleexx nnuummbbeerrss aanndd aassssoocciiaatteedd mmaatthheemmaattiiccaall ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
OPERATIONS #
CREATION #
DISPLAYING #
CHANGED IN PERL 5.6 #
USAGE #
CONSTANTS #
PI #
Inf
ERRORS DUE TO DIVISION BY ZERO OR LOGARITHM OF ZERO #
ERRORS DUE TO INDIGESTIBLE ARGUMENTS #
BUGS #
SEE ALSO #
AUTHORS #
LICENSE #
MMaatthh::::TTrriigg -- ttrriiggoonnoommeettrriicc ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
TRIGONOMETRIC FUNCTIONS #
ttaann
ERRORS DUE TO DIVISION BY ZERO #
SIMPLE (REAL) ARGUMENTS, COMPLEX RESULTS #
PLANE ANGLE CONVERSIONS #
deg2rad, grad2rad, rad2deg, grad2deg, deg2grad, rad2grad, rad2rad,
deg2deg, grad2grad
RADIAL COORDINATE CONVERSIONS #
COORDINATE SYSTEMS #
3-D ANGLE CONVERSIONS #
cartesian_to_cylindrical, cartesian_to_spherical,
cylindrical_to_cartesian, cylindrical_to_spherical,
spherical_to_cartesian, spherical_to_cylindrical
GREAT CIRCLE DISTANCES AND DIRECTIONS #
great_circle_distance
great_circle_direction
great_circle_bearing
great_circle_destination
great_circle_midpoint
great_circle_waypoint
EXAMPLES #
CAVEAT FOR GREAT CIRCLE FORMULAS #
Real-valued asin and acos
asin_real, acos_real
BUGS #
AUTHORS #
LICENSE #
MMeemmooiizzee -- MMaakkee ffuunnccttiioonnss ffaasstteerr bbyy ttrraaddiinngg ssppaaccee ffoorr ttiimmee
SYNOPSIS #
DESCRIPTION #
DETAILS #
OPTIONS #
INSTALL #
NORMALIZER #
“SCALAR_CACHE”, “LIST_CACHE” #
“MEMORY”, “HASH”, “TIE”, “FAULT”, “MERGE” #
OTHER FACILITIES #
"unmemoize"
"flush_cache"
CAVEATS #
PERSISTENT CACHE SUPPORT #
EXPIRATION SUPPORT #
BUGS #
MAILING LIST #
AUTHOR #
COPYRIGHT AND LICENSE #
THANK YOU #
MMeemmooiizzee::::AAnnyyDDBBMM__FFiillee -- gglluuee ttoo pprroovviiddee EEXXIISSTTSS ffoorr AAnnyyDDBBMM__FFiillee ffoorr SSttoorraabbllee uussee
DESCRIPTION #
MMeemmooiizzee::::EExxppiirree -- PPlluugg--iinn mmoodduullee ffoorr aauuttoommaattiicc eexxppiirraattiioonn ooff mmeemmooiizzeedd vvaalluueess
SYNOPSIS #
DESCRIPTION #
INTERFACE #
TIEHASH, EXISTS, STORE #
ALTERNATIVES #
CAVEATS #
AUTHOR #
SEE ALSO #
MMeemmooiizzee::::EExxppiirreeFFiillee -- tteesstt ffoorr MMeemmooiizzee eexxppiirraattiioonn sseemmaannttiiccss
DESCRIPTION #
MMeemmooiizzee::::EExxppiirreeTTeesstt -- tteesstt ffoorr MMeemmooiizzee eexxppiirraattiioonn sseemmaannttiiccss
DESCRIPTION #
MMeemmooiizzee::::NNDDBBMM__FFiillee -- gglluuee ttoo pprroovviiddee EEXXIISSTTSS ffoorr NNDDBBMM__FFiillee ffoorr SSttoorraabbllee uussee
DESCRIPTION #
MMeemmooiizzee::::SSDDBBMM__FFiillee -- gglluuee ttoo pprroovviiddee EEXXIISSTTSS ffoorr SSDDBBMM__FFiillee ffoorr SSttoorraabbllee uussee
DESCRIPTION #
MMeemmooiizzee::::SSttoorraabbllee -- ssttoorree MMeemmooiizzeedd ddaattaa iinn SSttoorraabbllee ddaattaabbaassee
DESCRIPTION #
MMoodduullee::::CCoorreeLLiisstt -- wwhhaatt mmoodduulleess sshhiippppeedd wwiitthh vveerrssiioonnss ooff ppeerrll
SYNOPSIS #
DESCRIPTION #
FUNCTIONS API #
"first_release( MODULE )", "first_release_by_date( MODULE )",
"find_modules( REGEX, [ LIST OF PERLS ] )", "find_version(
PERL_VERSION )", "is_core( MODULE, [ MODULE_VERSION, [ PERL_VERSION ]
] )", "is_deprecated( MODULE, PERL_VERSION )", "deprecated_in( MODULE
)", "removed_from( MODULE )", "removed_from_by_date( MODULE )",
"changes_between( PERL_VERSION, PERL_VERSION )"
DATA STRUCTURES #
%Module::CoreList::version, %Module::CoreList::delta,
%Module::CoreList::released, %Module::CoreList::families,
%Module::CoreList::deprecated, %Module::CoreList::upstream,
%Module::CoreList::bug_tracker
CAVEATS #
HISTORY #
AUTHOR #
LICENSE #
SEE ALSO #
MMoodduullee::::CCoorreeLLiisstt::::UUttiillss -- wwhhaatt uuttiilliittiieess sshhiippppeedd wwiitthh vveerrssiioonnss ooff ppeerrll
SYNOPSIS #
DESCRIPTION #
FUNCTIONS API #
"utilities", "first_release( UTILITY )", "first_release_by_date(
UTILITY )", "removed_from( UTILITY )", "removed_from_by_date( UTILITY
)"
DATA STRUCTURES #
%Module::CoreList::Utils::utilities
AUTHOR #
LICENSE #
SEE ALSO #
MMoodduullee::::LLooaadd -- rruunnttiimmee rreeqquuiirree ooff bbootthh mmoodduulleess aanndd ffiilleess
SYNOPSIS #
DESCRIPTION #
Difference between "load" and "autoload"
FUNCTIONS #
load, autoload, load_remote, autoload_remote
Rules
IMPORTS THE FUNCTIONS #
"load","autoload","load_remote","autoload_remote", 'all',
'','none',undef
Caveats
SEE ALSO #
ACKNOWLEDGEMENTS #
BUG REPORTS #
AUTHOR #
COPYRIGHT #
MMoodduullee::::LLooaadd::::CCoonnddiittiioonnaall -- LLooookkiinngg uupp mmoodduullee iinnffoorrmmaattiioonn // llooaaddiinngg aatt rruunnttiimmee
SYNOPSIS #
DESCRIPTION #
Methods
$href = check_install( module => NAME [, version => VERSION, verbose
=> BOOL ] ); #
module, version, verbose, file, dir, version, uptodate
$bool = can_load( modules => { NAME => VERSION [,NAME => VERSION] },
[verbose => BOOL, nocache => BOOL, autoload => BOOL] )
modules, verbose, nocache, autoload
@list = requires( MODULE );
Global Variables
$Module::Load::Conditional::VERBOSE
$Module::Load::Conditional::FIND_VERSION
$Module::Load::Conditional::CHECK_INC_HASH
$Module::Load::Conditional::FORCE_SAFE_INC
$Module::Load::Conditional::CACHE
$Module::Load::Conditional::ERROR
$Module::Load::Conditional::DEPRECATED
See Also
BUG REPORTS #
AUTHOR #
COPYRIGHT #
MMoodduullee::::LLooaaddeedd -- mmaarrkk mmoodduulleess aass llooaaddeedd oorr uunnllooaaddeedd
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
$bool = mark_as_loaded( PACKAGE );
$bool = mark_as_unloaded( PACKAGE );
$loc = is_loaded( PACKAGE );
BUG REPORTS #
AUTHOR #
COPYRIGHT #
MMoodduullee::::MMeettaaddaattaa -- GGaatthheerr ppaacckkaaggee aanndd PPOODD iinnffoorrmmaattiioonn ffrroomm ppeerrll mmoodduullee ffiilleess
VERSION #
SYNOPSIS #
DESCRIPTION #
CLASS METHODS #
"new_from_file($filename, collect_pod => 1, decode_pod => 1)"
"new_from_handle($handle, $filename, collect_pod => 1, decode_pod =>
1)"
"new_from_module($module, collect_pod => 1, inc => \@dirs, decode_pod
=> 1)"
"find_module_by_name($module, \@dirs)"
"find_module_dir_by_name($module, \@dirs)"
"provides( %options )"
version ((rreeqquuiirreedd)), dir, files, prefix
"package_versions_from_directory($dir, \@files?)"
"log_info (internal)"
OBJECT METHODS #
"name()"
"version($package)"
"filename()"
"packages_inside()"
"pod_inside()"
"contains_pod()"
"pod($section)"
"is_indexable($package)" or "is_indexable()"
SUPPORT #
AUTHOR #
CONTRIBUTORS #
COPYRIGHT & LICENSE #
NNDDBBMM__FFiillee -- TTiieedd aacccceessss ttoo nnddbbmm ffiilleess
SYNOPSIS #
DESCRIPTION #
“O_RDONLY”, “O_WRONLY”, “O_RDWR” #
DIAGNOSTICS #
"ndbm store returned -1, errno 22, key "..." at ..."
SECURITY AND PORTABILITY #
BUGS AND WARNINGS #
NNEEXXTT -- PPrroovviiddee aa ppsseeuuddoo--ccllaassss NNEEXXTT ((eett aall)) tthhaatt aalllloowwss mmeetthhoodd rreeddiissppaattcchh
SYNOPSIS #
DESCRIPTION #
Enforcing redispatch
Avoiding repetitions
Invoking all versions of a method with a single call
Using "EVERY" methods
SEE ALSO #
AUTHOR #
BUGS AND IRRITATIONS #
COPYRIGHT #
NNeett::::CCmmdd -- NNeettwwoorrkk CCoommmmaanndd ccllaassss ((aass uusseedd bbyy FFTTPP,, SSMMTTPP eettcc))
SYNOPSIS #
DESCRIPTION #
Public Methods
"debug($level)", "message()", "code()", "ok()", "status()",
"datasend($data)", "dataend()"
Protected Methods
"debug_print($dir, $text)", "debug_text($dir, $text)",
"command($cmd[, $args, ... ])", "unsupported()", "response()",
"parse_response($text)", "getline()", "ungetline($text)",
"rawdatasend($data)", "read_until_dot()", "tied_fh()"
Pseudo Responses
Initial value, Connection closed, Timeout
EXPORTS #
Default Exports, Optional Exports, Export Tags
KNOWN BUGS #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::CCoonnffiigg -- LLooccaall ccoonnffiigguurraattiioonn ddaattaa ffoorr lliibbnneett
SYNOPSIS #
DESCRIPTION #
Class Methods
"requires_firewall($host)"
NetConfig Values
nntp_hosts, snpp_hosts, pop3_hosts, smtp_hosts, ph_hosts,
daytime_hosts, time_hosts, inet_domain, ftp_firewall,
ftp_firewall_type, 0, 1, 2, 3, 4, 5, 6, 7, ftp_ext_passive,
ftp_int_passive, local_netmask, test_hosts, test_exists
EXPORTS #
Default Exports, Optional Exports, Export Tags
KNOWN BUGS #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::DDoommaaiinn -- AAtttteemmpptt ttoo eevvaalluuaattee tthhee ccuurrrreenntt hhoosstt’’ss iinntteerrnneett nnaammee aanndd ddoommaaiinn
SYNOPSIS #
DESCRIPTION #
Functions
"hostfqdn()", "domainname()", "hostname()", "hostdomain()"
EXPORTS #
Default Exports, Optional Exports, Export Tags
KNOWN BUGS #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::FFTTPP -- FFTTPP CClliieenntt ccllaassss
SYNOPSIS #
DESCRIPTION #
Overview
Class Methods
"new([$host][, %options])"
Object Methods
"login([$login[, $password[, $account]]])", "starttls()",
"stoptls()", "prot($level)", "host()", "account($acct)",
"authorize([$auth[, $resp]])", "site($args)", "ascii()",
"binary()", "type([$type])", "rename($oldname, $newname)",
"delete($filename)", "cwd([$dir])", "cdup()",
"passive([$passive])", "pwd()", "restart($where)", "rmdir($dir[,
$recurse])", "mkdir($dir[, $recurse])", "alloc($size[,
$record_size])", "ls([$dir])", "dir([$dir])", "get($remote_file[,
$local_file[, $where]])", "put($local_file[, $remote_file])",
"put_unique($local_file[, $remote_file])", "append($local_file[,
$remote_file])", "unique_name()", "mdtm($file)", "size($file)",
"supported($cmd)", "hash([$filehandle_glob_ref[,
$bytes_per_hash_mark]])", "feature($name)", "nlst([$dir])",
"list([$dir])", "retr($file)", "stor($file)", "stou($file)",
"appe($file)", "port([$port])", "eprt([$port])", "pasv()",
"epsv()", "pasv_xfer($src_file, $dest_server[, $dest_file ])",
"pasv_xfer_unique($src_file, $dest_server[, $dest_file ])",
"pasv_wait($non_pasv_server)", "abort()", "quit()"
Methods for the Adventurous
"quot($cmd[, $args])", "can_inet6()", "can_ssl()"
The dataconn Class
Unimplemented
“SMNT”, “HELP”, “MODE”, “SYST”, “STAT”, “STRU”, “REIN” #
EXAMPLES #
<https://www.csh.rit.edu/~adam/Progs/>
EXPORTS #
KNOWN BUGS #
Reporting Bugs
SEE ALSO #
ACKNOWLEDGEMENTS #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::NNNNTTPP -- NNNNTTPP CClliieenntt ccllaassss
SYNOPSIS #
DESCRIPTION #
Class Methods
"new([$host][, %options])"
Object Methods
"host()", "starttls()", "article([{$msgid|$msgnum}[, $fh]])",
"body([{$msgid|$msgnum}[, [$fh]])", "head([{$msgid|$msgnum}[,
[$fh]])", "articlefh([{$msgid|$msgnum}])",
"bodyfh([{$msgid|$msgnum}])", "headfh([{$msgid|$msgnum}])",
"nntpstat([{$msgid|$msgnum}])", "group([$group])", "help()",
"ihave($msgid[, $message])", "last()", "date()", "postok()",
"authinfo($user, $pass)", "authinfo_simple($user, $pass)",
"list()", "newgroups($since[, $distributions])",
"newnews($since[, $groups[, $distributions]])", "next()",
"post([$message])", "postfh()", "slave()", "quit()",
"can_inet6()", "can_ssl()"
Extension Methods
"newsgroups([$pattern])", "distributions()",
"distribution_patterns()", "subscriptions()", "overview_fmt()",
"active_times()", "active([$pattern])", "xgtitle($pattern)",
"xhdr($header, $message_spec)", "xover($message_spec)",
"xpath($message_id)", "xpat($header, $pattern, $message_spec)",
"xrover($message_spec)", "listgroup([$group])", "reader()"
Unsupported
Definitions
$message_spec, $pattern, Examples, "[^]-]", *bdc, "[0-9a-zA-Z]",
"a??d"
EXPORTS #
KNOWN BUGS #
SEE ALSO #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::NNeettrrcc -- OOOO iinntteerrffaaccee ttoo uusseerrss nneettrrcc ffiillee
SYNOPSIS #
DESCRIPTION #
The _._n_e_t_r_c File
machine name, default, login name, password string, account
string, macdef name
Class Methods
"lookup($machine[, $login])"
Object Methods
"login()", "password()", "account()", "lpa()"
EXPORTS #
KNOWN BUGS #
SEE ALSO #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::PPOOPP33 -- PPoosstt OOffffiiccee PPrroottooccooll 33 CClliieenntt ccllaassss ((RRFFCC11993399))
SYNOPSIS #
DESCRIPTION #
Class Methods
"new([$host][, %options])"
Object Methods
"host()", "auth($username, $password)", "user($user)",
"pass($pass)", "login([$user[, $pass]])", "starttls(%sslargs)",
"apop([$user[, $pass]])", "banner()", "capa()", "capabilities()",
"top($msgnum[, $numlines])", "list([$msgnum])", "get($msgnum[,
$fh])", "getfh($msgnum)", "last()", "popstat()", "ping($user)",
"uidl([$msgnum])", "delete($msgnum)", "reset()", "quit()",
"can_inet6()", "can_ssl()"
Notes
EXPORTS #
KNOWN BUGS #
SEE ALSO #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::PPiinngg -- cchheecckk aa rreemmoottee hhoosstt ffoorr rreeaacchhaabbiilliittyy
SYNOPSIS #
DESCRIPTION #
Functions
Net::Ping->new([proto, timeout, bytes, device, tos, ttl, family,
host, port, bind, gateway, retrans, pingstring,
source_verify econnrefused dontfrag
IPV6_USE_MIN_MTU IPV6_RECVPATHMTU]) , $p->ping($host [, $timeout
[, $family]]); , $p->source_verify( { 0 | 1 } ); ,
$p->service_check( { 0 | 1 } ); , $p->tcp_service_check( { 0 | 1
} ); , $p->hires( { 0 | 1 } ); , $p->time ,
$p->socket_blocking_mode( $fh, $mode ); , $p->IPV6_USE_MIN_MTU ,
$p->IPV6_RECVPATHMTU , $p->IPV6_HOPLIMIT , $p->IPV6_REACHCONF _N_Y_I
, $p->bind($local_addr); , $p->message_type([$ping_type]); ,
$p->open($host); , $p->ack( [ $host ] ); , $p->nack(
$failed_ack_host ); , $p->ack_unfork($host) ,
$p->ping_icmp([$host, $timeout, $family]) ,
$p->ping_icmpv6([$host, $timeout, $family]) ,
$p->ping_stream([$host, $timeout, $family]) ,
$p->ping_syn([$host, $ip, $start_time, $stop_time]) ,
$p->ping_syn_fork([$host, $timeout, $family]) ,
$p->ping_tcp([$host, $timeout, $family]) , $p->ping_udp([$host,
$timeout, $family]) , $p->ping_external([$host, $timeout,
$family]) , $p->tcp_connect([$ip, $timeout]) , $p->tcp_echo([$ip,
$timeout, $pingstring]) , $p->cclloossee(()); ,
$p->port_number([$port_number]) , $p->mselect , $p->ntop ,
$p->checksum($msg) , $p->icmp_result , pingecho($host [,
$timeout]); , wakeonlan($mac, [$host, [$port]])
NOTES #
INSTALL #
BUGS #
AUTHORS #
COPYRIGHT #
NNeett::::SSMMTTPP -- SSiimmppllee MMaaiill TTrraannssffeerr PPrroottooccooll CClliieenntt
SYNOPSIS #
DESCRIPTION #
Class Methods
"new([$host][, %options])"
Object Methods
"banner()", "domain()", "hello($domain)", "host()", "etrn($domain)",
"starttls(%sslargs)", "auth($username, $password)", "auth($sasl)",
"mail($address[, %options])", "send($address)",
"send_or_mail($address)", "send_and_mail($address)", "reset()",
"recipient($address[, $address[, ...]][, %options])", "to($address[,
$address[, ...]])", "cc($address[, $address[, ...]])",
"bcc($address[, $address[, ...]])", "data([$data])", "bdat($data)",
"bdatlast($data)", "expand($address)", "verify($address)",
"help([$subject])", "quit()", "can_inet6()", "can_ssl()"
Addresses
EXAMPLES #
EXPORTS #
KNOWN BUGS #
SEE ALSO #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::TTiimmee -- ttiimmee aanndd ddaayyttiimmee nneettwwoorrkk cclliieenntt iinntteerrffaaccee
SYNOPSIS #
DESCRIPTION #
Functions
"inet_time([$host[, $protocol[, $timeout]]])",
"inet_daytime([$host[, $protocol[, $timeout]]])"
EXPORTS #
Default Exports, Optional Exports, Export Tags
KNOWN BUGS #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
NNeett::::hhoosstteenntt -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn ggeetthhoosstt(()) ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
EXAMPLES #
NOTE #
AUTHOR #
NNeett::::lliibbnneettFFAAQQ,, lliibbnneettFFAAQQ -- lliibbnneett FFrreeqquueennttllyy AAsskkeedd QQuueessttiioonnss
DESCRIPTION #
Where to get this document
How to contribute to this document
Author and Copyright Information
Disclaimer
Obtaining and installing libnet
What is libnet ?
Which version of perl do I need ?
What other modules do I need ?
What machines support libnet ?
Where can I get the latest libnet release
Using Net::FTP
How do I download files from an FTP server ?
How do I transfer files in binary mode ?
How can I get the size of a file on a remote FTP server ?
How can I get the modification time of a file on a remote FTP server
?
How can I change the permissions of a file on a remote server ?
Can I do a reget operation like the ftp command ?
How do I get a directory listing from an FTP server ?
Changing directory to "" does not fail ?
I am behind a SOCKS firewall, but the Firewall option does not work ?
I am behind an FTP proxy firewall, but cannot access machines outside
?
My ftp proxy firewall does not listen on port 21
Is it possible to change the file permissions of a file on an FTP
server ?
I have seen scripts call a method message, but cannot find it
documented ?
Why does Net::FTP not implement mput and mget methods
Using Net::SMTP
Why can't the part of an Email address after the @ be used as the
hostname ?
Why does Net::SMTP not do DNS MX lookups ?
The verify method always returns true ?
Debugging scripts
How can I debug my scripts that use Net::* modules ?
AUTHOR AND COPYRIGHT #
NNeett::::nneetteenntt -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn ggeettnneett(()) ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
EXAMPLES #
NOTE #
AUTHOR #
NNeett::::pprroottooeenntt -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn ggeettpprroottoo(()) ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
NOTE #
AUTHOR #
NNeett::::sseerrvveenntt -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn ggeettsseerrvv(()) ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
EXAMPLES #
NOTE #
AUTHOR #
OO -- GGeenneerriicc iinntteerrffaaccee ttoo PPeerrll CCoommppiilleerr bbaacckkeennddss
SYNOPSIS #
DESCRIPTION #
CONVENTIONS #
IMPLEMENTATION #
BUGS #
AUTHOR #
OOppccooddee -- DDiissaabbllee nnaammeedd ooppccooddeess wwhheenn ccoommppiilliinngg ppeerrll ccooddee
SYNOPSIS #
DESCRIPTION #
NOTE #
WARNING #
Operator Names and Operator Lists
an operator name (opname), an operator tag name (optag), a negated
opname or optag, an operator set (opset)
Opcode Functions
opcodes, opset (OP, ...), opset_to_ops (OPSET), opset_to_hex (OPSET),
full_opset, empty_opset, invert_opset (OPSET), verify_opset (OPSET,
...), define_optag (OPTAG, OPSET), opmask_add (OPSET), opmask, opdesc
(OP, ...), opdump (PAT)
Manipulating Opsets
TO DO (maybe)
Predefined Opcode Tags
:base_core, :base_mem, :base_loop, :base_io, :base_orig, :base_math,
:base_thread, :default, :filesys_read, :sys_db, :browse,
:filesys_open, :filesys_write, :subprocess, :ownprocess, :others,
:load, :still_to_be_decided, :dangerous
SEE ALSO #
AUTHORS #
SYNOPSIS #
DESCRIPTION #
EXPORT #
Exportable functions
SEE ALSO #
AUTHOR #
COPYRIGHT AND LICENSE #
OOppeennBBSSDD::::PPlleeddggee -- PPeerrll iinntteerrffaaccee ttoo OOppeennBBSSDD pplleeddggee((22))
SYNOPSIS #
DESCRIPTION #
EXPORT #
FUNCTIONS #
pledge
BUGS AND LIMITATIONS #
SEE ALSO #
AUTHOR #
LICENSE AND COPYRIGHT #
OOppeennBBSSDD::::UUnnvveeiill -- PPeerrll iinntteerrffaaccee ttoo OOppeennBBSSDD uunnvveeiill((22))
SYNOPSIS #
DESCRIPTION #
EXPORT #
FUNCTIONS #
unveil
SEE ALSO #
AUTHOR #
LICENSE AND COPYRIGHT #
PPOOSSIIXX -- PPeerrll iinntteerrffaaccee ttoo IIEEEEEE SSttdd 11000033..11
SYNOPSIS #
DESCRIPTION #
CAVEATS #
FUNCTIONS #
"_exit", "abort", "abs", "access", "acos", "acosh", "alarm",
"asctime", "asin", "asinh", "assert", "atan", "atanh", "atan2",
"atexit", "atof", "atoi", "atol", "bsearch", "calloc", "cbrt",
"ceil", "chdir", "chmod", "chown", "clearerr", "clock", "close",
"closedir", "cos", "cosh", "copysign", "creat", "ctermid", "ctime",
"cuserid" [POSIX.1-1988], "difftime", "div", "dup", "dup2", "erf",
"erfc", "errno", "execl", "execle", "execlp", "execv", "execve",
"execvp", "exit", "exp", "expm1", "fabs", "fclose", "fcntl",
"fdopen", "feof", "ferror", "fflush", "fgetc", "fgetpos", "fgets",
"fileno", "floor", "fdim", "fegetround", "fesetround", "fma", "fmax",
"fmin", "fmod", "fopen", "fork", "fpathconf", "fpclassify",
"fprintf", "fputc", "fputs", "fread", "free", "freopen", "frexp",
"fscanf", "fseek", "fsetpos", "fstat", "fsync", "ftell", "fwrite",
"getc", "getchar", "getcwd", "getegid", "getenv", "geteuid",
"getgid", "getgrgid", "getgrnam", "getgroups", "getlogin",
"getpayload", "getpgrp", "getpid", "getppid", "getpwnam", "getpwuid",
"gets", "getuid", "gmtime", "hypot", "ilogb", "Inf", "isalnum",
"isalpha", "isatty", "iscntrl", "isdigit", "isfinite", "isgraph",
"isgreater", "isinf", "islower", "isnan", "isnormal", "isprint",
"ispunct", "issignaling", "isspace", "isupper", "isxdigit", "j0",
"j1", "jn", "y0", "y1", "yn", "kill", "labs", "lchown", "ldexp",
"ldiv", "lgamma", "log1p", "log2", "logb", "link", "localeconv",
"localtime", "log", "log10", "longjmp", "lseek", "lrint", "lround",
"malloc", "mblen", "mbtowc", "memchr", "memcmp", "memcpy", "memmove",
"memset", "mkdir", "mkfifo", "mktime", "modf", "NaN", "nan",
"nearbyint", "nextafter", "nexttoward", "nice", "offsetof", "open",
"opendir", "pathconf", "pause", "perror", "pipe", "pow", "printf",
"putc", "putchar", "puts", "qsort", "raise", "rand", "read",
"readdir", "realloc", "remainder", "remove", "remquo", "rename",
"rewind", "rewinddir", "rint", "rmdir", "round", "scalbn", "scanf",
"setgid", "setjmp", "setlocale", "setpayload", "setpayloadsig",
"setpgid", "setsid", "setuid", "sigaction", "siglongjmp", "signbit",
"sigpending", "sigprocmask", "sigsetjmp", "sigsuspend", "sin",
"sinh", "sleep", "sprintf", "sqrt", "srand", "sscanf", "stat",
"strcat", "strchr", "strcmp", "strcoll", "strcpy", "strcspn",
"strerror", "strftime", "strlen", "strncat", "strncmp", "strncpy",
"strpbrk", "strrchr", "strspn", "strstr", "strtod", "strtok",
"strtol", "strtold", "strtoul", "strxfrm", "sysconf", "system",
"tan", "tanh", "tcdrain", "tcflow", "tcflush", "tcgetpgrp",
"tcsendbreak", "tcsetpgrp", "tgamma", "time", "times", "tmpfile",
"tmpnam", "tolower", "toupper", "trunc", "ttyname", "tzname",
"tzset", "umask", "uname", "ungetc", "unlink", "utime", "vfprintf",
"vprintf", "vsprintf", "wait", "waitpid", "wctomb", "write"
CLASSES #
"POSIX::SigAction"
"new", "handler", "mask", "flags", "safe"
"POSIX::SigRt"
%SIGRT, “SIGRTMIN”, “SIGRTMAX” #
"POSIX::SigSet"
"new", "addset", "delset", "emptyset", "fillset", "ismember"
"POSIX::Termios"
"new", "getattr", "getcc", "getcflag", "getiflag", "getispeed",
"getlflag", "getoflag", "getospeed", "setattr", "setcc",
"setcflag", "setiflag", "setispeed", "setlflag", "setoflag",
"setospeed", Baud rate values, Terminal interface values, "c_cc"
field values, "c_cflag" field values, "c_iflag" field values,
"c_lflag" field values, "c_oflag" field values
PATHNAME CONSTANTS #
Constants
POSIX CONSTANTS #
Constants
RESOURCE CONSTANTS #
Constants
SYSTEM CONFIGURATION #
Constants
ERRNO #
Constants
FCNTL #
Constants
FLOAT #
Constants
FLOATING-POINT ENVIRONMENT #
Constants
LIMITS #
Constants
LOCALE #
Constants
MATH #
Constants
SIGNAL #
Constants
STAT #
Constants, Macros
STDLIB #
Constants
STDIO #
Constants
TIME #
Constants
UNISTD #
Constants
WAIT #
Constants, "WNOHANG", "WUNTRACED", Macros, "WIFEXITED",
“WEXITSTATUS”, “WIFSIGNALED”, “WTERMSIG”, “WIFSTOPPED”, “WSTOPSIG” #
WINSOCK #
Constants
PPaarraammss::::CChheecckk -- AA ggeenneerriicc iinnppuutt ppaarrssiinngg//cchheecckkiinngg mmeecchhaanniissmm..
SYNOPSIS #
DESCRIPTION #
Template
default, required, strict_type, defined, no_override, store, allow
Functions
check( \%tmpl, \%args, [$verbose] );
Template, Arguments, Verbose
allow( $test_me, \@criteria );
string, regexp, subroutine, array ref
llaasstt__eerrrroorr(())
Global Variables
$Params::Check::VERBOSE
$Params::Check::STRICT_TYPE
$Params::Check::ALLOW_UNKNOWN
$Params::Check::STRIP_LEADING_DASHES
$Params::Check::NO_DUPLICATES
$Params::Check::PRESERVE_CASE
$Params::Check::ONLY_ALLOW_DEFINED
$Params::Check::SANITY_CHECK_TEMPLATE
$Params::Check::WARNINGS_FATAL
$Params::Check::CALLER_DEPTH
Acknowledgements
BUG REPORTS #
AUTHOR #
COPYRIGHT #
PPaarrssee::::CCPPAANN::::MMeettaa -- PPaarrssee MMEETTAA..yymmll aanndd MMEETTAA..jjssoonn CCPPAANN mmeettaaddaattaa ffiilleess
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
load_file
load_yaml_string
load_json_string
load_string
yaml_backend
json_backend
json_decoder
FUNCTIONS #
Load
LoadFile
ENVIRONMENT #
CPAN_META_JSON_DECODER #
CPAN_META_JSON_BACKEND #
PERL_JSON_BACKEND #
PERL_YAML_BACKEND #
AUTHORS #
COPYRIGHT AND LICENSE #
PPeerrll::::OOSSTTyyppee -- MMaapp PPeerrll ooppeerraattiinngg ssyysstteemm nnaammeess ttoo ggeenneerriicc ttyyppeess
VERSION #
SYNOPSIS #
DESCRIPTION #
USAGE #
ooss__ttyyppee(())
iiss__ooss__ttyyppee(())
SEE ALSO #
SUPPORT #
Bugs / Feature Requests
Source Code
AUTHOR #
CONTRIBUTORS #
COPYRIGHT AND LICENSE #
PPeerrllIIOO -- OOnn ddeemmaanndd llooaaddeerr ffoorr PPeerrllIIOO llaayyeerrss aanndd rroooott ooff PPeerrllIIOO:::: nnaammee ssppaaccee
SYNOPSIS #
DESCRIPTION #
Layers
:unix, :stdio, :perlio, :crlf, :utf8, :bytes, :raw, :pop
Custom Layers
:encoding, :mmap, :via, :scalar
Alternatives to raw
Defaults and how to override them
Querying the layers of filehandles
AUTHOR #
SEE ALSO #
PPeerrllIIOO::::eennccooddiinngg -- eennccooddiinngg llaayyeerr
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
PPeerrllIIOO::::mmmmaapp -- MMeemmoorryy mmaappppeedd IIOO
SYNOPSIS #
DESCRIPTION #
IMPLEMENTATION NOTE #
PPeerrllIIOO::::ssccaallaarr -- iinn--mmeemmoorryy IIOO,, ssccaallaarr IIOO
SYNOPSIS #
DESCRIPTION #
IMPLEMENTATION NOTE #
PPeerrllIIOO::::vviiaa -- HHeellppeerr ccllaassss ffoorr PPeerrllIIOO llaayyeerrss iimmpplleemmeenntteedd iinn ppeerrll
SYNOPSIS #
DESCRIPTION #
EXPECTED METHODS #
$class->PUSHED([$mode,[$fh]]), $obj->POPPED([$fh]),
$obj->UTF8($belowFlag,[$fh]), $obj->OPEN($path,$mode,[$fh]),
$obj->BINMODE([$fh]), $obj->FDOPEN($fd,[$fh]),
$obj->SYSOPEN($path,$imode,$perm,[$fh]), $obj->FILENO($fh),
$obj->READ($buffer,$len,$fh), $obj->WRITE($buffer,$fh),
$obj->FILL($fh), $obj->CLOSE($fh), $obj->SEEK($posn,$whence,$fh),
$obj->TELL($fh), $obj->UNREAD($buffer,$fh), $obj->FLUSH($fh),
$obj->SETLINEBUF($fh), $obj->CLEARERR($fh), $obj->ERROR($fh),
$obj->EOF($fh)
EXAMPLES #
Example - a Hexadecimal Handle
PPeerrllIIOO::::vviiaa::::QQuuootteeddPPrriinntt -- PPeerrllIIOO llaayyeerr ffoorr qquuootteedd--pprriinnttaabbllee ssttrriinnggss
SYNOPSIS #
DESCRIPTION #
EXPORTS #
KNOWN BUGS #
FEEDBACK #
SEE ALSO #
ACKNOWLEDGEMENTS #
AVAILABILITY #
INSTALLATION #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
PPoodd::::CChheecckkeerr -- cchheecckk ppoodd ddooccuummeennttss ffoorr ssyynnttaaxx eerrrroorrss
SYNOPSIS #
OPTIONS/ARGUMENTS #
ppooddcchheecckkeerr(())
--wwaarrnniinnggss => _v_a_l, --qquuiieett => _v_a_l
DESCRIPTION #
DIAGNOSTICS #
Errors
empty =headn, =over on line _N without closing =back, You forgot a
'=back' before '=head_N', =over is the last thing in the
document?!, '=item' outside of any '=over', =back without =over,
Can't have a 0 in =over _N, =over should be: '=over' or '=over
positive_number', =begin _T_A_R_G_E_T without matching =end _T_A_R_G_E_T,
=begin without a target?, =end _T_A_R_G_E_T without matching =begin,
'=end' without a target?, '=end _T_A_R_G_E_T' is invalid, =end _C_O_N_T_E_N_T
doesn't match =begin _T_A_R_G_E_T, =for without a target?, unresolved
internal link _N_A_M_E, Unknown directive: _C_M_D, Deleting unknown
formatting code _S_E_Q, Unterminated _S_E_Q<> sequence, An E<...>
surrounding strange content, An empty E<>, An empty "L<>", An
empty X<>, Spurious text after =pod / =cut, =back doesn't take
any parameters, but you said =back _A_R_G_U_M_E_N_T, =pod directives
shouldn't be over one line long! Ignoring all _N lines of
content, =cut found outside a pod block, Invalid =encoding
syntax: _C_O_N_T_E_N_T
Warnings
nested commands _C_M_D<..._C_M_D<...>...>, multiple occurrences (_N) of
link target _n_a_m_e, line containing nothing but whitespace in
paragraph, =item has no contents, You can't have =items (as at
line _N) unless the first thing after the =over is an =item,
Expected '=item _E_X_P_E_C_T_E_D _V_A_L_U_E', Expected '=item *', Possible
=item type mismatch: '_x' found leading a supposed definition
=item, You have '=item x' instead of the expected '=item _N',
Unknown E content in E<_C_O_N_T_E_N_T>, empty =over/=back block, empty
section in previous paragraph, Verbatim paragraph in NAME
section, =head_n without preceding higher level, A non-empty Z<>
Hyperlinks
ignoring leading/trailing whitespace in link, alternative
text/node '%s' contains non-escaped | or /
RETURN VALUE #
EXAMPLES #
SCRIPTS #
INTERFACE #
end_B, end_C, end_Document, end_F, end_I, end_L, end_Para, end_S,
end_X, end_fcode, end_for, end_head, end_head1, end_head2, end_head3,
end_head4, end_item, end_item_bullet, end_item_number, end_item_text,
handle_pod_and_cut, handle_text, handle_whiteline, hyperlink, scream,
start_B, start_C, start_Data, start_F, start_I, start_L, start_Para,
start_S, start_Verbatim, start_X, start_fcode, start_for, start_head,
start_head1, start_head2, start_head3, start_head4,
start_item_bullet, start_item_number, start_item_text, start_over,
start_over_block, start_over_bullet, start_over_empty,
start_over_number, start_over_text, whine
"Pod::Checker->new( %options )"
"$checker->poderror( @args )", "$checker->poderror( {%opts}, @args )"
"$checker->num_errors()"
"$checker->num_warnings()"
"$checker->name()"
"$checker->node()"
"$checker->idx()"
"$checker->hyperlinks()"
lliinnee(())
ttyyppee(())
ppaaggee(())
nnooddee(())
AUTHOR #
PPoodd::::EEssccaappeess -- ffoorr rreessoollvviinngg PPoodd EE<<......>> sseeqquueenncceess
SYNOPSIS #
DESCRIPTION #
GOODIES #
e2char($e_content), e2charnum($e_content), $Name2character{_n_a_m_e},
$Name2character_number{_n_a_m_e}, $Latin1Code_to_fallback{_i_n_t_e_g_e_r},
$Latin1Char_to_fallback{_c_h_a_r_a_c_t_e_r}, $Code2USASCII{_i_n_t_e_g_e_r}
CAVEATS #
SEE ALSO #
REPOSITORY #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::HHttmmll -- mmoodduullee ttoo ccoonnvveerrtt ppoodd ffiilleess ttoo HHTTMMLL
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
pod2html
backlink, cachedir, css, flush, header, help, htmldir, htmlroot,
index, infile, outfile, poderrors, podpath, podroot, quiet,
recurse, title, verbose
Auxiliary Functions
"htmlify()" (by default), "anchorify()" (upon request),
"relativize_url()" (upon request)
ENVIRONMENT #
AUTHOR #
SEE ALSO #
COPYRIGHT #
PPoodd::::HHttmmll::::UUttiill -- hheellppeerr ffuunnccttiioonnss ffoorr PPoodd--HHttmmll
SUBROUTINES #
"process_command_line()"
"usage()"
"unixify()"
"relativize_url()"
"html_escape()"
"htmlify()"
"anchorify()"
"trim_leading_whitespace()"
PPoodd::::MMaann -- CCoonnvveerrtt PPOODD ddaattaa ttoo ffoorrmmaatttteedd rrooffff iinnppuutt
SYNOPSIS #
DESCRIPTION #
center, date, errors, fixed, fixedbold, fixeditalic, fixedbolditalic,
lquote, rquote, name, nourls, quotes, release, section, stderr, utf8
DIAGNOSTICS #
roff font should be 1 or 2 chars, not "%s", Invalid errors setting
"%s", Invalid quote specification "%s", POD document had syntax
errors
ENVIRONMENT #
PERL_CORE, POD_MAN_DATE, SOURCE_DATE_EPOCH #
BUGS #
CAVEATS #
AUTHOR #
COPYRIGHT AND LICENSE #
SEE ALSO #
PPoodd::::PPaarrsseeLLiinnkk -- PPaarrssee aann LL<<>> ffoorrmmaattttiinngg ccooddee iinn PPOODD tteexxtt
SYNOPSIS #
DESCRIPTION #
AUTHOR #
COPYRIGHT AND LICENSE #
SEE ALSO #
PPoodd::::PPeerrllddoocc -- LLooookk uupp PPeerrll ddooccuummeennttaattiioonn iinn PPoodd ffoorrmmaatt..
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::BBaasseeTToo -- BBaassee ffoorr PPoodd::::PPeerrllddoocc ffoorrmmaatttteerrss
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::GGeettOOppttssOOOO -- CCuussttoommiizzeedd ooppttiioonn ppaarrsseerr ffoorr PPoodd::::PPeerrllddoocc
SYNOPSIS #
DESCRIPTION #
Call Pod::Perldoc::GetOptsOO::getopts($object, \@ARGV, $truth), Given
-n, if there's a opt_n_with, it'll call $object->opt_n_with( ARGUMENT
) (e.g., "-n foo" => $object->opt_n_with('foo'). Ditto "-nfoo"),
Otherwise (given -n) if there's an opt_n, we'll call it
$object->opt_n($truth) (Truth defaults to 1), Otherwise we try
calling $object->handle_unknown_option('n') (and we increment the
error count by the return value of it), If there's no
handle_unknown_option, then we just warn, and then increment the
error counter
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooAANNSSII -- rreennddeerr PPoodd wwiitthh AANNSSII ccoolloorr eessccaappeess
SYNOPSIS #
DESCRIPTION #
CAVEAT #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooCChheecckkeerr -- lleett PPeerrllddoocc cchheecckk PPoodd ffoorr eerrrroorrss
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooMMaann -- lleett PPeerrllddoocc rreennddeerr PPoodd aass mmaann ppaaggeess
SYNOPSIS #
DESCRIPTION #
CAVEAT #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooNNrrooffff -- lleett PPeerrllddoocc ccoonnvveerrtt PPoodd ttoo nnrrooffff
SYNOPSIS #
DESCRIPTION #
CAVEAT #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooPPoodd -- lleett PPeerrllddoocc rreennddeerr PPoodd aass ...... PPoodd!!
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooRRttff -- lleett PPeerrllddoocc rreennddeerr PPoodd aass RRTTFF
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooTTeerrmm -- rreennddeerr PPoodd wwiitthh tteerrmmiinnaall eessccaappeess
SYNOPSIS #
DESCRIPTION #
PAGER FORMATTING #
CAVEAT #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooTTeexxtt -- lleett PPeerrllddoocc rreennddeerr PPoodd aass ppllaaiinntteexxtt
SYNOPSIS #
DESCRIPTION #
CAVEAT #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooTTkk -- lleett PPeerrllddoocc uussee TTkk::::PPoodd ttoo rreennddeerr PPoodd
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
AUTHOR #
PPoodd::::PPeerrllddoocc::::TTooXXmmll -- lleett PPeerrllddoocc rreennddeerr PPoodd aass XXMMLL
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
PPoodd::::SSiimmppllee -- ffrraammeewwoorrkk ffoorr ppaarrssiinngg PPoodd
SYNOPSIS #
DESCRIPTION #
MAIN METHODS #
"$parser = _S_o_m_e_C_l_a_s_s->new();", "$parser->output_fh( *OUT );",
"$parser->output_string( \$somestring );", "$parser->parse_file(
_$_s_o_m_e___f_i_l_e_n_a_m_e );", "$parser->parse_file( *INPUT_FH );",
"$parser->parse_string_document( _$_a_l_l___c_o_n_t_e_n_t );",
"$parser->parse_lines( _._._._@_l_i_n_e_s_._._., undef );",
"$parser->content_seen", "_S_o_m_e_C_l_a_s_s->filter( _$_f_i_l_e_n_a_m_e );",
"_S_o_m_e_C_l_a_s_s->filter( _*_I_N_P_U_T___F_H );", "_S_o_m_e_C_l_a_s_s->filter(
_\_$_d_o_c_u_m_e_n_t___c_o_n_t_e_n_t );"
SECONDARY METHODS #
"$parser->parse_characters( _S_O_M_E_V_A_L_U_E )", "$parser->no_whining(
_S_O_M_E_V_A_L_U_E )", "$parser->no_errata_section( _S_O_M_E_V_A_L_U_E )",
"$parser->complain_stderr( _S_O_M_E_V_A_L_U_E )", "$parser->source_filename",
"$parser->doc_has_started", "$parser->source_dead",
"$parser->strip_verbatim_indent( _S_O_M_E_V_A_L_U_E )",
"$parser->expand_verbatim_tabs( _n )"
TERTIARY METHODS #
"$parser->abandon_output_fh()", "$parser->abandon_output_string()",
"$parser->accept_code( @codes )", "$parser->accept_codes( @codes )",
"$parser->accept_directive_as_data( @directives )",
"$parser->accept_directive_as_processed( @directives )",
"$parser->accept_directive_as_verbatim( @directives )",
"$parser->accept_target( @targets )",
"$parser->accept_target_as_text( @targets )",
"$parser->accept_targets( @targets )",
"$parser->accept_targets_as_text( @targets )",
"$parser->any_errata_seen()", "$parser->errata_seen()",
"$parser->detected_encoding()", "$parser->encoding()",
"$parser->parse_from_file( $source, $to )", "$parser->scream(
@error_messages )", "$parser->unaccept_code( @codes )",
"$parser->unaccept_codes( @codes )", "$parser->unaccept_directive(
@directives )", "$parser->unaccept_directives( @directives )",
"$parser->unaccept_target( @targets )", "$parser->unaccept_targets(
@targets )", "$parser->version_report()", "$parser->whine(
@error_messages )"
ENCODING #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org", Karl Williamson
"khw@cpan.org", Gabor Szabo "szabgab@gmail.com", Shawn H Corey
"SHCOREY at cpan.org"
PPoodd::::SSiimmppllee::::CChheecckkeerr -–- cchheecckk tthhee PPoodd ssyynnttaaxx ooff aa ddooccuummeenntt
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::DDeebbuugg -–- ppuutt PPoodd::::SSiimmppllee iinnttoo ttrraaccee//ddeebbuugg mmooddee
SYNOPSIS #
DESCRIPTION #
CAVEATS #
GUTS #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::DDuummppAAssTTeexxtt -–- dduummpp PPoodd--ppaarrssiinngg eevveennttss aass tteexxtt
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::DDuummppAAssXXMMLL -–- ttuurrnn PPoodd iinnttoo XXMMLL
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::HHTTMMLL -- ccoonnvveerrtt PPoodd ttoo HHTTMMLL
SYNOPSIS #
DESCRIPTION #
CALLING FROM THE COMMAND LINE #
CALLING FROM PERL #
Minimal code
More detailed example
METHODS #
html_css
html_javascript
title_prefix
title_postfix
html_header_before_title
top_anchor
html_h_level
index
html_header_after_title
html_footer
SUBCLASSING #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
ACKNOWLEDGEMENTS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::HHTTMMLLBBaattcchh -- ccoonnvveerrtt sseevveerraall PPoodd ffiilleess ttoo sseevveerraall HHTTMMLL ffiilleess
SYNOPSIS #
DESCRIPTION #
FROM THE COMMAND LINE #
MAIN METHODS #
$batchconv = Pod::Simple::HTMLBatch->new;, $batchconv->batch_convert(
_i_n_d_i_r_s, _o_u_t_d_i_r );, $batchconv->batch_convert( undef , ...);,
$batchconv->batch_convert( q{@INC}, ...);, $batchconv->batch_convert(
\@dirs , ...);, $batchconv->batch_convert( "somedir" , ...);,
$batchconv->batch_convert( 'somedir:someother:also' , ...);,
$batchconv->batch_convert( ... , undef );, $batchconv->batch_convert(
... , 'somedir' );
ACCESSOR METHODS #
$batchconv->verbose( _n_o_n_n_e_g_a_t_i_v_e___i_n_t_e_g_e_r );, $batchconv->index(
_t_r_u_e_-_o_r_-_f_a_l_s_e );, $batchconv->contents_file( _f_i_l_e_n_a_m_e );,
$batchconv->contents_page_start( _H_T_M_L___s_t_r_i_n_g );,
$batchconv->contents_page_end( _H_T_M_L___s_t_r_i_n_g );,
$batchconv->add_css( $url );, $batchconv->add_javascript( $url
);, $batchconv->css_flurry( _t_r_u_e_-_o_r_-_f_a_l_s_e );,
$batchconv->javascript_flurry( _t_r_u_e_-_o_r_-_f_a_l_s_e );,
$batchconv->no_contents_links( _t_r_u_e_-_o_r_-_f_a_l_s_e );,
$batchconv->html_render_class( _c_l_a_s_s_n_a_m_e );,
$batchconv->search_class( _c_l_a_s_s_n_a_m_e );
NOTES ON CUSTOMIZATION #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::JJuussttPPoodd -–- jjuusstt tthhee PPoodd,, tthhee wwhhoollee PPoodd,, aanndd nnootthhiinngg bbuutt tthhee PPoodd
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::LLiinnkkSSeeccttiioonn -–- rreepprreesseenntt “"sseeccttiioonn"” aattttrriibbuutteess ooff LL ccooddeess
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::MMeetthhooddyy -–- ttuurrnn PPoodd::::SSiimmppllee eevveennttss iinnttoo mmeetthhoodd ccaallllss
SYNOPSIS #
DESCRIPTION #
METHOD CALLING #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerr -–- aa ppuullll--ppaarrsseerr iinntteerrffaaccee ttoo ppaarrssiinngg PPoodd
SYNOPSIS #
DESCRIPTION #
METHODS #
my $token = $parser->get_token, $parser->unget_token( $token ),
$parser->unget_token( $token1, $token2, ... ), $parser->set_source(
$filename ), $parser->set_source( $filehandle_object ),
$parser->set_source( \$document_source ), $parser->set_source(
\@document_lines ), $parser->parse_file(...),
$parser->parse_string_document(...), $parser->filter(...),
$parser->parse_from_file(...), my $title_string = $parser->get_title,
my $title_string = $parser->get_short_title, $author_name =
$parser->get_author, $description_name = $parser->get_description,
$version_block = $parser->get_version
NOTE #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerrEEnnddTTookkeenn -–- eenndd--ttookkeennss ffrroomm PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerr
SYNOPSIS #
DESCRIPTION #
$token->tagname, $token->tagname(_s_o_m_e_s_t_r_i_n_g), $token->tag(...),
$token->is_tag(_s_o_m_e_s_t_r_i_n_g) or $token->is_tagname(_s_o_m_e_s_t_r_i_n_g)
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerrSSttaarrttTTookkeenn -–- ssttaarrtt--ttookkeennss ffrroomm PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerr
SYNOPSIS #
DESCRIPTION #
$token->tagname, $token->tagname(_s_o_m_e_s_t_r_i_n_g), $token->tag(...),
$token->is_tag(_s_o_m_e_s_t_r_i_n_g) or $token->is_tagname(_s_o_m_e_s_t_r_i_n_g),
$token->attr(_a_t_t_r_n_a_m_e), $token->attr(_a_t_t_r_n_a_m_e, _n_e_w_v_a_l_u_e),
$token->attr_hash
SEE ALSO #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerrTTeexxttTTookkeenn -–- tteexxtt--ttookkeennss ffrroomm PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerr
SYNOPSIS #
DESCRIPTION #
$token->text, $token->text(_s_o_m_e_s_t_r_i_n_g), $token->tteexxtt__rr(())
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerrTTookkeenn -–- ttookkeennss ffrroomm PPoodd::::SSiimmppllee::::PPuullllPPaarrsseerr
SYNOPSIS #
DESCRIPTION #
$token->type, $token->is_start, $token->is_text, $token->is_end,
$token->dump
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::RRTTFF -–- ffoorrmmaatt PPoodd aass RRTTFF
SYNOPSIS #
DESCRIPTION #
FORMAT CONTROL ATTRIBUTES #
$parser->head1_halfpoint_size( _h_a_l_f_p_o_i_n_t___i_n_t_e_g_e_r );,
$parser->head2_halfpoint_size( _h_a_l_f_p_o_i_n_t___i_n_t_e_g_e_r );,
$parser->head3_halfpoint_size( _h_a_l_f_p_o_i_n_t___i_n_t_e_g_e_r );,
$parser->head4_halfpoint_size( _h_a_l_f_p_o_i_n_t___i_n_t_e_g_e_r );,
$parser->codeblock_halfpoint_size( _h_a_l_f_p_o_i_n_t___i_n_t_e_g_e_r );,
$parser->header_halfpoint_size( _h_a_l_f_p_o_i_n_t___i_n_t_e_g_e_r );,
$parser->normal_halfpoint_size( _h_a_l_f_p_o_i_n_t___i_n_t_e_g_e_r );,
$parser->no_proofing_exemptions( _t_r_u_e___o_r___f_a_l_s_e );, $parser->doc_lang(
_m_i_c_r_o_s_o_f_t___d_e_c_i_m_a_l___l_a_n_g_u_a_g_e___c_o_d_e )
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::SSeeaarrcchh -- ffiinndd PPOODD ddooccuummeennttss iinn ddiirreeccttoorryy ttrreeeess
SYNOPSIS #
DESCRIPTION #
CONSTRUCTOR #
ACCESSORS #
$search->inc( _t_r_u_e_-_o_r_-_f_a_l_s_e );, $search->verbose( _n_o_n_n_e_g_a_t_i_v_e_-_n_u_m_b_e_r
);, $search->limit_glob( _s_o_m_e_-_g_l_o_b_-_s_t_r_i_n_g );, $search->callback(
_\_&_s_o_m_e___r_o_u_t_i_n_e );, $search->laborious( _t_r_u_e_-_o_r_-_f_a_l_s_e );,
$search->recurse( _t_r_u_e_-_o_r_-_f_a_l_s_e );, $search->shadows( _t_r_u_e_-_o_r_-_f_a_l_s_e
);, $search->is_case_insensitive( _t_r_u_e_-_o_r_-_f_a_l_s_e );,
$search->limit_re( _s_o_m_e_-_r_e_g_x_p );, $search->dir_prefix( _s_o_m_e_-_s_t_r_i_n_g_-
_v_a_l_u_e );, $search->progress( _s_o_m_e_-_p_r_o_g_r_e_s_s_-_o_b_j_e_c_t );, $name2path =
$self->name2path;, $path2name = $self->path2name;
MAIN SEARCH METHODS #
"$search->survey( @directories )"
"name2path", "path2name"
"$search->simplify_name( $str )"
"$search->find( $pod )"
"$search->find( $pod, @search_dirs )"
"$self->contains_pod( $file )"
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::SSiimmpplleeTTrreeee -–- ppaarrssee PPoodd iinnttoo aa ssiimmppllee ppaarrssee ttrreeee
SYNOPSIS #
DESCRIPTION #
METHODS #
Tree Contents
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::SSuubbccllaassssiinngg -–- wwrriittee aa ffoorrmmaatttteerr aass aa PPoodd::::SSiimmppllee ssuubbccllaassss
SYNOPSIS #
DESCRIPTION #
Pod::Simple, Pod::Simple::Methody, Pod::Simple::PullParser,
Pod::Simple::SimpleTree
Events
"$parser->_handle_element_start( _e_l_e_m_e_n_t___n_a_m_e, _a_t_t_r___h_a_s_h_r_e_f )",
"$parser->_handle_element_end( _e_l_e_m_e_n_t___n_a_m_e )",
"$parser->_handle_text( _t_e_x_t___s_t_r_i_n_g )", events with an
element_name of Document, events with an element_name of Para, events
with an element_name of B, C, F, or I, events with an element_name of
S, events with an element_name of X, events with an element_name of
L, events with an element_name of E or Z, events with an element_name
of Verbatim, events with an element_name of head1 .. head4, events
with an element_name of encoding, events with an element_name of
over-bullet, events with an element_name of over-number, events with
an element_name of over-text, events with an element_name of over-
block, events with an element_name of over-empty, events with an
element_name of item-bullet, events with an element_name of item-
number, events with an element_name of item-text, events with an
element_name of for, events with an element_name of Data
More Pod::Simple Methods
"$parser->accept_targets( _S_O_M_E_V_A_L_U_E )",
"$parser->accept_targets_as_text( _S_O_M_E_V_A_L_U_E )",
"$parser->accept_codes( _C_o_d_e_n_a_m_e, _C_o_d_e_n_a_m_e... )",
"$parser->accept_directive_as_data( _d_i_r_e_c_t_i_v_e___n_a_m_e )",
"$parser->accept_directive_as_verbatim( _d_i_r_e_c_t_i_v_e___n_a_m_e )",
"$parser->accept_directive_as_processed( _d_i_r_e_c_t_i_v_e___n_a_m_e )",
"$parser->nbsp_for_S( _B_O_O_L_E_A_N );", "$parser->version_report()",
"$parser->pod_para_count()", "$parser->line_count()",
"$parser->nix_X_codes( _S_O_M_E_V_A_L_U_E )",
"$parser->keep_encoding_directive( _S_O_M_E_V_A_L_U_E )",
"$parser->merge_text( _S_O_M_E_V_A_L_U_E )", "$parser->code_handler(
_C_O_D_E___R_E_F )", "$parser->cut_handler( _C_O_D_E___R_E_F )",
"$parser->pod_handler( _C_O_D_E___R_E_F )", "$parser->whiteline_handler(
_C_O_D_E___R_E_F )", "$parser->whine( _l_i_n_e_n_u_m_b_e_r, _c_o_m_p_l_a_i_n_t _s_t_r_i_n_g )",
"$parser->scream( _l_i_n_e_n_u_m_b_e_r, _c_o_m_p_l_a_i_n_t _s_t_r_i_n_g )",
"$parser->source_dead(1)", "$parser->hide_line_numbers( _S_O_M_E_V_A_L_U_E )",
"$parser->no_whining( _S_O_M_E_V_A_L_U_E )", "$parser->no_errata_section(
_S_O_M_E_V_A_L_U_E )", "$parser->complain_stderr( _S_O_M_E_V_A_L_U_E )",
"$parser->bare_output( _S_O_M_E_V_A_L_U_E )", "$parser->preserve_whitespace(
_S_O_M_E_V_A_L_U_E )", "$parser->parse_empty_lists( _S_O_M_E_V_A_L_U_E )"
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::TTeexxtt -–- ffoorrmmaatt PPoodd aass ppllaaiinntteexxtt
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::TTeexxttCCoonntteenntt -–- ggeett tthhee tteexxtt ccoonntteenntt ooff PPoodd
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::XXHHTTMMLL -–- ffoorrmmaatt PPoodd aass vvaalliiddaattiinngg XXHHTTMMLL
SYNOPSIS #
DESCRIPTION #
Minimal code
METHODS #
perldoc_url_prefix
perldoc_url_postfix
man_url_prefix
man_url_postfix
title_prefix, title_postfix
html_css
html_javascript
html_doctype
html_charset
html_header_tags
html_h_level
default_title
force_title
html_header, html_footer
index
anchor_items
backlink
SUBCLASSING #
handle_text
handle_code
accept_targets_as_html
resolve_pod_page_link
resolve_man_page_link
idify
batch_mode_page_object_init
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
ACKNOWLEDGEMENTS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::SSiimmppllee::::XXMMLLOOuuttSSttrreeaamm -–- ttuurrnn PPoodd iinnttoo XXMMLL
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
ABOUT EXTENDING POD #
SEE ALSO #
SUPPORT #
COPYRIGHT AND DISCLAIMERS #
AUTHOR #
Allison Randal "allison@perl.org", Hans Dieter Pearcey
"hdp@cpan.org", David E. Wheeler "dwheeler@cpan.org"
PPoodd::::TTeexxtt -- CCoonnvveerrtt PPOODD ddaattaa ttoo ffoorrmmaatttteedd tteexxtt
SYNOPSIS #
DESCRIPTION #
alt, code, errors, indent, loose, margin, nourls, quotes, sentence,
stderr, utf8, width
DIAGNOSTICS #
Bizarre space in item, Item called without tag, Can't open %s for
reading: %s, Invalid errors setting "%s", Invalid quote specification
"%s", POD document had syntax errors
BUGS #
CAVEATS #
NOTES #
AUTHOR #
COPYRIGHT AND LICENSE #
SEE ALSO #
PPoodd::::TTeexxtt::::CCoolloorr -- CCoonnvveerrtt PPOODD ddaattaa ttoo ffoorrmmaatttteedd ccoolloorr AASSCCIIII tteexxtt
SYNOPSIS #
DESCRIPTION #
BUGS #
AUTHOR #
COPYRIGHT AND LICENSE #
SEE ALSO #
PPoodd::::TTeexxtt::::OOvveerrssttrriikkee -- CCoonnvveerrtt PPOODD ddaattaa ttoo ffoorrmmaatttteedd oovveerrssttrriikkee tteexxtt
SYNOPSIS #
DESCRIPTION #
BUGS #
AUTHOR #
COPYRIGHT AND LICENSE #
SEE ALSO #
PPoodd::::TTeexxtt::::TTeerrmmccaapp -- CCoonnvveerrtt PPOODD ddaattaa ttoo AASSCCIIII tteexxtt wwiitthh ffoorrmmaatt eessccaappeess
SYNOPSIS #
DESCRIPTION #
AUTHOR #
COPYRIGHT AND LICENSE #
SEE ALSO #
PPoodd::::UUssaaggee -- eexxttrraaccttss PPOODD ddooccuummeennttaattiioonn aanndd sshhoowwss uussaaggee iinnffoorrmmaattiioonn
SYNOPSIS #
ARGUMENTS #
"-message" _s_t_r_i_n_g, "-msg" _s_t_r_i_n_g, "-exitval" _v_a_l_u_e, "-verbose" _v_a_l_u_e,
"-sections" _s_p_e_c, "-output" _h_a_n_d_l_e, "-input" _h_a_n_d_l_e, "-pathlist"
_s_t_r_i_n_g, "-noperldoc", "-perlcmd", "-perldoc" _p_a_t_h_-_t_o_-_p_e_r_l_d_o_c,
"-perldocopt" _s_t_r_i_n_g
Formatting base class
Pass-through options
DESCRIPTION #
Scripts
EXAMPLES #
Recommended Use
CAVEATS #
SUPPORT #
AUTHOR #
LICENSE #
ACKNOWLEDGMENTS #
SEE ALSO #
SSDDBBMM__FFiillee -- TTiieedd aacccceessss ttoo ssddbbmm ffiilleess
SYNOPSIS #
DESCRIPTION #
Tie
EXPORTS #
DIAGNOSTICS #
"sdbm store returned -1, errno 22, key "..." at ..."
SECURITY WARNING #
BUGS AND WARNINGS #
SSaaffee -- CCoommppiillee aanndd eexxeeccuuttee ccooddee iinn rreessttrriicctteedd ccoommppaarrttmmeennttss
SYNOPSIS #
DESCRIPTION #
a new namespace, an operator mask
WARNING #
METHODS #
permit (OP, ...)
permit_only (OP, ...)
deny (OP, ...)
deny_only (OP, ...)
trap (OP, ...), untrap (OP, ...)
share (NAME, ...)
share_from (PACKAGE, ARRAYREF)
varglob (VARNAME)
reval (STRING, STRICT)
rdo (FILENAME)
root (NAMESPACE)
mask (MASK)
wrap_code_ref (CODEREF)
wrap_code_refs_within (...)
RISKS #
Memory, CPU, Snooping, Signals, State Changes
AUTHOR #
SSccaallaarr::::UUttiill -- AA sseelleeccttiioonn ooff ggeenneerraall--uuttiilliittyy ssccaallaarr ssuubbrroouuttiinneess
SYNOPSIS #
DESCRIPTION #
Core Perl "builtin" Functions
FUNCTIONS FOR REFERENCES #
blessed
refaddr
reftype
weaken
unweaken
isweak
OTHER FUNCTIONS #
dualvar
isdual
isvstring
looks_like_number
openhandle
readonly
set_prototype
tainted
DIAGNOSTICS #
Vstrings are not implemented in this version of perl
KNOWN BUGS #
SEE ALSO #
COPYRIGHT #
SSeeaarrcchh::::DDiicctt -- llooookk -- sseeaarrcchh ffoorr kkeeyy iinn ddiiccttiioonnaarryy ffiillee
SYNOPSIS #
DESCRIPTION #
SSeelleeccttSSaavveerr -- ssaavvee aanndd rreessttoorree sseelleecctteedd ffiillee hhaannddllee
SYNOPSIS #
DESCRIPTION #
SSeellffLLooaaddeerr -- llooaadd ffuunnccttiioonnss oonnllyy oonn ddeemmaanndd
SYNOPSIS #
DESCRIPTION #
The __DATA__ token
SelfLoader autoloading
Autoloading and package lexicals
SelfLoader and AutoLoader
__DATA__, __END__, and the FOOBAR::DATA filehandle.
Classes and inherited methods.
Multiple packages and fully qualified subroutine names
AUTHOR #
COPYRIGHT AND LICENSE #
a), b)
SSoocckkeett,, “"SSoocckkeett"” -- nneettwwoorrkkiinngg ccoonnssttaannttss aanndd ssuuppppoorrtt ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
CONSTANTS #
PF_INET, PF_INET6, PF_UNIX, … #
AF_INET, AF_INET6, AF_UNIX, … #
SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, … #
SOCK_NONBLOCK. SOCK_CLOEXEC #
SOL_SOCKET #
SO_ACCEPTCONN, SO_BROADCAST, SO_ERROR, … #
IP_OPTIONS, IP_TOS, IP_TTL, … #
IP_PMTUDISC_WANT, IP_PMTUDISC_DONT, … #
IPTOS_LOWDELAY, IPTOS_THROUGHPUT, IPTOS_RELIABILITY, … #
MSG_BCAST, MSG_OOB, MSG_TRUNC, … #
SHUT_RD, SHUT_RDWR, SHUT_WR #
INADDR_ANY, INADDR_BROADCAST, INADDR_LOOPBACK, INADDR_NONE #
IPPROTO_IP, IPPROTO_IPV6, IPPROTO_TCP, … #
TCP_CORK, TCP_KEEPALIVE, TCP_NODELAY, … #
IN6ADDR_ANY, IN6ADDR_LOOPBACK #
IPV6_ADD_MEMBERSHIP, IPV6_MTU, IPV6_V6ONLY, … #
STRUCTURE MANIPULATORS #
$family = sockaddr_family $sockaddr
$sockaddr = pack_sockaddr_in $port, $ip_address
($port, $ip_address) = unpack_sockaddr_in $sockaddr
$sockaddr = sockaddr_in $port, $ip_address
($port, $ip_address) = sockaddr_in $sockaddr
$sockaddr = pack_sockaddr_in6 $port, $ip6_address, [$scope_id,
[$flowinfo]]
($port, $ip6_address, $scope_id, $flowinfo) = unpack_sockaddr_in6
$sockaddr
$sockaddr = sockaddr_in6 $port, $ip6_address, [$scope_id, [$flowinfo]]
($port, $ip6_address, $scope_id, $flowinfo) = sockaddr_in6 $sockaddr
$sockaddr = pack_sockaddr_un $path
($path) = unpack_sockaddr_un $sockaddr
$sockaddr = sockaddr_un $path
($path) = sockaddr_un $sockaddr
$ip_mreq = pack_ip_mreq $multiaddr, $interface
($multiaddr, $interface) = unpack_ip_mreq $ip_mreq
$ip_mreq_source = pack_ip_mreq_source $multiaddr, $source, $interface
($multiaddr, $source, $interface) = unpack_ip_mreq_source $ip_mreq
$ipv6_mreq = pack_ipv6_mreq $multiaddr6, $ifindex
($multiaddr6, $ifindex) = unpack_ipv6_mreq $ipv6_mreq
FUNCTIONS #
$ip_address = inet_aton $string
$string = inet_ntoa $ip_address
$address = inet_pton $family, $string
$string = inet_ntop $family, $address
($err, @result) = getaddrinfo $host, $service, [$hints]
flags => INT, family => INT, socktype => INT, protocol => INT, family
=> INT, socktype => INT, protocol => INT, addr => STRING, canonname
=> STRING, AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST #
($err, $hostname, $servicename) = getnameinfo $sockaddr, [$flags,
[$xflags]]
NI_NUMERICHOST, NI_NUMERICSERV, NI_NAMEREQD, NI_DGRAM, NIx_NOHOST,
NIx_NOSERV
ggeettaaddddrriinnffoo(()) / ggeettnnaammeeiinnffoo(()) ERROR CONSTANTS
EAI_AGAIN, EAI_BADFLAGS, EAI_FAMILY, EAI_NODATA, EAI_NONAME, #
EAI_SERVICE #
EXAMPLES #
Lookup for ccoonnnneecctt(())
Making a human-readable string out of an address
Resolving hostnames into IP addresses
Accessing socket options
AUTHOR #
SSttoorraabbllee -- ppeerrssiisstteennccee ffoorr PPeerrll ddaattaa ssttrruuccttuurreess
SYNOPSIS #
DESCRIPTION #
MEMORY STORE #
ADVISORY LOCKING #
SPEED #
CANONICAL REPRESENTATION #
CODE REFERENCES #
FORWARD COMPATIBILITY #
utf8 data, restricted hashes, huge objects, files from future
versions of Storable
ERROR REPORTING #
WIZARDS ONLY #
Hooks
"STORABLE_freeze" _o_b_j, _c_l_o_n_i_n_g, "STORABLE_thaw" _o_b_j, _c_l_o_n_i_n_g,
_s_e_r_i_a_l_i_z_e_d, .., "STORABLE_attach" _c_l_a_s_s, _c_l_o_n_i_n_g, _s_e_r_i_a_l_i_z_e_d
Predicates
"Storable::last_op_in_netorder", "Storable::is_storing",
"Storable::is_retrieving"
Recursion
Deep Cloning
Storable magic
$info = Storable::file_magic( $filename ), "version", "version_nv",
"major", "minor", "hdrsize", "netorder", "byteorder", "intsize",
"longsize", "ptrsize", "nvsize", "file", $info =
Storable::read_magic( $buffer ), $info = Storable::read_magic(
$buffer, $must_be_file )
EXAMPLES #
SECURITY WARNING #
WARNING #
REGULAR EXPRESSIONS #
BUGS #
64 bit data in perl 5.6.0 and 5.6.1
CREDITS #
AUTHOR #
SEE ALSO #
SSuubb::::UUttiill -- AA sseelleeccttiioonn ooff uuttiilliittyy ssuubbrroouuttiinneess ffoorr ssuubbss aanndd CCOODDEE rreeffeerreenncceess
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
prototype
set_prototype
subname
set_subname
AUTHOR #
SSyymmbbooll -- mmaanniippuullaattee PPeerrll ssyymmbboollss aanndd tthheeiirr nnaammeess
SYNOPSIS #
DESCRIPTION #
BUGS #
SSyyss::::HHoossttnnaammee -- TTrryy eevveerryy ccoonncceeiivvaabbllee wwaayy ttoo ggeett hhoossttnnaammee
SYNOPSIS #
DESCRIPTION #
AUTHOR #
SSyyss::::SSyysslloogg -- PPeerrll iinntteerrffaaccee ttoo tthhee UUNNIIXX ssyysslloogg((33)) ccaallllss
VERSION #
SYNOPSIS #
DESCRIPTION #
EXPORTS #
FUNCTIONS #
ooppeennlloogg(($$iiddeenntt,, $$llooggoopptt,, $$ffaacciilliittyy)), ssyysslloogg(($$pprriioorriittyy,, $$mmeessssaaggee)),
ssyysslloogg(($$pprriioorriittyy,, $$ffoorrmmaatt,, @@aarrggss)), NNoottee, sseettllooggmmaasskk(($$mmaasskk__pprriioorriittyy)),
sseettllooggssoocckk(()), NNoottee, cclloosseelloogg(())
THE RULES OF SYS::SYSLOG #
EXAMPLES #
CONSTANTS #
Facilities
Levels
DIAGNOSTICS #
"Invalid argument passed to setlogsock", "eventlog passed to
setlogsock, but no Win32 API available", "no connection to syslog
available", "stream passed to setlogsock, but %s is not writable",
"stream passed to setlogsock, but could not find any device", "tcp
passed to setlogsock, but tcp service unavailable", "syslog:
expecting argument %s", "syslog: invalid level/facility: %s",
"syslog: too many levels given: %s", "syslog: too many facilities
given: %s", "syslog: level must be given", "udp passed to setlogsock,
but udp service unavailable", "unix passed to setlogsock, but path
not available"
HISTORY #
SEE ALSO #
Other modules
Manual Pages
RFCs
Articles
Event Log
AUTHORS & ACKNOWLEDGEMENTS #
BUGS #
SUPPORT #
Perl Documentation, MetaCPAN, Search CPAN, AnnoCPAN: Annotated CPAN
documentation, CPAN Ratings, RT: CPAN's request tracker
COPYRIGHT #
LICENSE #
TTAAPP::::BBaassee -- BBaassee ccllaassss tthhaatt pprroovviiddeess ccoommmmoonn ffuunnccttiioonnaalliittyy ttoo TTAAPP::::PPaarrsseerr aanndd TTAAPP::::HHaarrnneessss
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
TTAAPP::::FFoorrmmaatttteerr::::BBaassee -- BBaassee ccllaassss ffoorr hhaarrnneessss oouuttppuutt ddeelleeggaatteess
VERSION #
DESCRIPTION #
SYNOPSIS #
METHODS #
Class Methods
"verbosity", "verbose", "timer", "failures", "comments", "quiet",
"really_quiet", "silent", "errors", "directives", "stdout",
"color", "jobs", "show_count"
TTAAPP::::FFoorrmmaatttteerr::::CCoolloorr -- RRuunn PPeerrll tteesstt ssccrriippttss wwiitthh ccoolloorr
VERSION #
DESCRIPTION #
SYNOPSIS #
METHODS #
Class Methods
TTAAPP::::FFoorrmmaatttteerr::::CCoonnssoollee -- HHaarrnneessss oouuttppuutt ddeelleeggaattee ffoorr ddeeffaauulltt ccoonnssoollee oouuttppuutt
VERSION #
DESCRIPTION #
SYNOPSIS #
"open_test"
TTAAPP::::FFoorrmmaatttteerr::::CCoonnssoollee::::PPaarraalllleellSSeessssiioonn -- HHaarrnneessss oouuttppuutt ddeelleeggaattee ffoorr ppaarraalllleell ccoonnssoollee oouuttppuutt
VERSION #
DESCRIPTION #
SYNOPSIS #
METHODS #
Class Methods
TTAAPP::::FFoorrmmaatttteerr::::CCoonnssoollee::::SSeessssiioonn -- HHaarrnneessss oouuttppuutt ddeelleeggaattee ffoorr ddeeffaauulltt ccoonnssoollee oouuttppuutt
VERSION #
DESCRIPTION #
"clear_for_close"
"close_test"
"header"
"result"
TTAAPP::::FFoorrmmaatttteerr::::FFiillee -- HHaarrnneessss oouuttppuutt ddeelleeggaattee ffoorr ffiillee oouuttppuutt
VERSION #
DESCRIPTION #
SYNOPSIS #
"open_test"
TTAAPP::::FFoorrmmaatttteerr::::FFiillee::::SSeessssiioonn -- HHaarrnneessss oouuttppuutt ddeelleeggaattee ffoorr ffiillee oouuttppuutt
VERSION #
DESCRIPTION #
METHODS #
result
close_test
TTAAPP::::FFoorrmmaatttteerr::::SSeessssiioonn -- AAbbssttrraacctt bbaassee ccllaassss ffoorr hhaarrnneessss oouuttppuutt ddeelleeggaattee
VERSION #
METHODS #
Class Methods
"formatter", "parser", "name", "show_count"
TTAAPP::::HHaarrnneessss -- RRuunn tteesstt ssccrriippttss wwiitthh ssttaattiissttiiccss
VERSION #
DESCRIPTION #
SYNOPSIS #
METHODS #
Class Methods
"verbosity", "timer", "failures", "comments", "show_count",
"normalize", "lib", "switches", "test_args", "color", "exec",
"merge", "sources", "aggregator_class", "version",
"formatter_class", "multiplexer_class", "parser_class",
"scheduler_class", "formatter", "errors", "directives",
"ignore_exit", "jobs", "rules", "rulesfiles", "stdout", "trap"
Instance Methods
the source name of a test to run, a reference to a [ source name, display
name ] array
CONFIGURING #
Plugins
"Module::Build"
"ExtUtils::MakeMaker"
"prove"
WRITING PLUGINS #
Customize how TAP gets into the parser, Customize how TAP results are
output from the parser
SUBCLASSING #
Methods
"new", "runtests", "summary"
REPLACING #
SEE ALSO #
TTAAPP::::HHaarrnneessss::::BBeeyyoonndd,, TTeesstt::::HHaarrnneessss::::BBeeyyoonndd -- BBeeyyoonndd mmaakkee tteesstt Beyond make test Saved State Parallel Testing Non-Perl Tests Mixing it up Rolling My Own Deeper Customisation Callbacks Parsing TAP Getting Support
TTAAPP::::HHaarrnneessss::::EEnnvv -- PPaarrssiinngg hhaarrnneessss rreellaatteedd eennvviirroonnmmeennttaall vvaarriiaabblleess wwhheerree aapppprroopprriiaattee
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
create( \%args )
ENVIRONMENTAL VARIABLES #
“HARNESS_PERL_SWITCHES”, “HARNESS_VERBOSE”, “HARNESS_SUBCLASS”, #
"HARNESS_OPTIONS", "j<n>", "c", "a<file.tgz>",
"fPackage-With-Dashes", "HARNESS_TIMER", "HARNESS_COLOR",
“HARNESS_IGNORE_EXIT” #
TTAAPP::::OObbjjeecctt -- BBaassee ccllaassss tthhaatt pprroovviiddeess ccoommmmoonn ffuunnccttiioonnaalliittyy ttoo aallll “"TTAAPP::::“” mmoodduulleess
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
TTAAPP::::PPaarrsseerr -- PPaarrssee TTAAPP oouuttppuutt
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
"source", "tap", "exec", "sources", "callback", "switches",
"test_args", "spool", "merge", "grammar_class",
"result_factory_class", "iterator_factory_class"
Instance Methods
INDIVIDUAL RESULTS #
Result types
Version, Plan, Pragma, Test, Comment, Bailout, Unknown
Common type methods
"plan" methods
"pragma" methods
"comment" methods
"bailout" methods
"unknown" methods
"test" methods
TOTAL RESULTS #
Individual Results
Pragmas
Summary Results
"ignore_exit"
Misplaced plan, No plan, More than one plan, Test numbers out of sequence
CALLBACKS #
"test", "version", "plan", "comment", "bailout", "yaml", "unknown",
“ELSE”, “ALL”, “EOF” #
TAP GRAMMAR #
BACKWARDS COMPATIBILITY #
Differences
TODO plans, 'Missing' tests
SUBCLASSING #
Parser Components
option 1, option 2
ACKNOWLEDGMENTS #
Michael Schwern, Andy Lester, chromatic, GEOFFR, Shlomi Fish, Torsten
Schoenfeld, Jerry Gay, Aristotle, Adam Kennedy, Yves Orton, Adrian
Howard, Sean & Lil, Andreas J. Koenig, Florian Ragwitz, Corion, Mark
Stosberg, Matt Kraai, David Wheeler, Alex Vandiver, Cosimo Streppone,
Ville Skyttä
AUTHORS #
BUGS #
COPYRIGHT & LICENSE #
TTAAPP::::PPaarrsseerr::::AAggggrreeggaattoorr -- AAggggrreeggaattee TTAAPP::::PPaarrsseerr rreessuullttss
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
Summary methods
failed, parse_errors, passed, planned, skipped, todo, todo_passed,
wait, exit
Failed tests, Parse errors, Bad exit or wait status
See Also
TTAAPP::::PPaarrsseerr::::GGrraammmmaarr -- AA ggrraammmmaarr ffoorr tthhee TTeesstt AAnnyytthhiinngg PPrroottooccooll..
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
TAP GRAMMAR #
SUBCLASSING #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::IItteerraattoorr -- BBaassee ccllaassss ffoorr TTAAPP ssoouurrccee iitteerraattoorrss
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
SUBCLASSING #
Example
SEE ALSO #
TTAAPP::::PPaarrsseerr::::IItteerraattoorr::::AArrrraayy -- IItteerraattoorr ffoorr aarrrraayy--bbaasseedd TTAAPP ssoouurrcceess
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
ATTRIBUTION #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::IItteerraattoorr::::PPrroocceessss -- IItteerraattoorr ffoorr pprroocceessss--bbaasseedd TTAAPP ssoouurrcceess
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
ATTRIBUTION #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::IItteerraattoorr::::SSttrreeaamm -- IItteerraattoorr ffoorr ffiilleehhaannddllee--bbaasseedd TTAAPP ssoouurrcceess
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
ATTRIBUTION #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::IItteerraattoorrFFaaccttoorryy -- FFiigguurreess oouutt wwhhiicchh SSoouurrcceeHHaannddlleerr oobbjjeeccttss ttoo uussee ffoorr aa ggiivveenn SSoouurrccee
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
SUBCLASSING #
Example
AUTHORS #
ATTRIBUTION #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::MMuullttiipplleexxeerr -- MMuullttiipplleexx mmuullttiippllee TTAAPP::::PPaarrsseerrss
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
See Also
TTAAPP::::PPaarrsseerr::::RReessuulltt -- BBaassee ccllaassss ffoorr TTAAPP::::PPaarrsseerr oouuttppuutt oobbjjeeccttss
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Boolean methods
"is_plan", "is_pragma", "is_test", "is_comment", "is_bailout",
"is_version", "is_unknown", "is_yaml"
SUBCLASSING #
Example
SEE ALSO #
TTAAPP::::PPaarrsseerr::::RReessuulltt::::BBaaiilloouutt -- BBaaiilloouutt rreessuulltt ttookkeenn..
VERSION #
DESCRIPTION #
OVERRIDDEN METHODS #
"as_string"
Instance Methods
TTAAPP::::PPaarrsseerr::::RReessuulltt::::CCoommmmeenntt -- CCoommmmeenntt rreessuulltt ttookkeenn..
VERSION #
DESCRIPTION #
OVERRIDDEN METHODS #
"as_string"
Instance Methods
TTAAPP::::PPaarrsseerr::::RReessuulltt::::PPllaann -- PPllaann rreessuulltt ttookkeenn..
VERSION #
DESCRIPTION #
OVERRIDDEN METHODS #
"as_string", "raw"
Instance Methods
TTAAPP::::PPaarrsseerr::::RReessuulltt::::PPrraaggmmaa -- TTAAPP pprraaggmmaa ttookkeenn..
VERSION #
DESCRIPTION #
OVERRIDDEN METHODS #
"as_string", "raw"
Instance Methods
TTAAPP::::PPaarrsseerr::::RReessuulltt::::TTeesstt -- TTeesstt rreessuulltt ttookkeenn..
VERSION #
DESCRIPTION #
OVERRIDDEN METHODS #
Instance Methods
TTAAPP::::PPaarrsseerr::::RReessuulltt::::UUnnkknnoowwnn -- UUnnkknnoowwnn rreessuulltt ttookkeenn..
VERSION #
DESCRIPTION #
OVERRIDDEN METHODS #
"as_string", "raw"
TTAAPP::::PPaarrsseerr::::RReessuulltt::::VVeerrssiioonn -- TTAAPP ssyynnttaaxx vveerrssiioonn ttookkeenn..
VERSION #
DESCRIPTION #
OVERRIDDEN METHODS #
"as_string", "raw"
Instance Methods
TTAAPP::::PPaarrsseerr::::RReessuulltt::::YYAAMMLL -- YYAAMMLL rreessuulltt ttookkeenn..
VERSION #
DESCRIPTION #
OVERRIDDEN METHODS #
"as_string", "raw"
Instance Methods
TTAAPP::::PPaarrsseerr::::RReessuullttFFaaccttoorryy -- FFaaccttoorryy ffoorr ccrreeaattiinngg TTAAPP::::PPaarrsseerr oouuttppuutt oobbjjeeccttss
SYNOPSIS #
VERSION #
DESCRIPTION #
METHODS #
Class Methods
SUBCLASSING #
Example
SEE ALSO #
TTAAPP::::PPaarrsseerr::::SScchheedduulleerr -- SScchheedduullee tteessttss dduurriinngg ppaarraalllleell tteessttiinngg
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Rules data structure
By default, all tests are eligible to be run in parallel.
Specifying any of your own rules removes this one, "First match
wins". The first rule that matches a test will be the one that
applies, Any test which does not match a rule will be run in
sequence at the end of the run, The existence of a rule does not
imply selecting a test. You must still specify the tests to run,
Specifying a rule to allow tests to run in parallel does not make
the run in parallel. You still need specify the number of
parallel "jobs" in your Harness object
Instance Methods
TTAAPP::::PPaarrsseerr::::SScchheedduulleerr::::JJoobb -- AA ssiinnggllee tteessttiinngg jjoobb..
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
Attributes
TTAAPP::::PPaarrsseerr::::SScchheedduulleerr::::SSppiinnnneerr -- AA nnoo--oopp jjoobb..
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
SEE ALSO #
TTAAPP::::PPaarrsseerr::::SSoouurrccee -- aa TTAAPP ssoouurrccee && mmeettaa ddaattaa aabboouutt iitt
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
AUTHORS #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::SSoouurrcceeHHaannddlleerr -- BBaassee ccllaassss ffoorr ddiiffffeerreenntt TTAAPP ssoouurrccee hhaannddlleerrss
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
SUBCLASSING #
Example
AUTHORS #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::SSoouurrcceeHHaannddlleerr::::EExxeeccuuttaabbllee -- SSttrreeaamm oouuttppuutt ffrroomm aann eexxeeccuuttaabbllee TTAAPP ssoouurrccee
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
SUBCLASSING #
Example
SEE ALSO #
TTAAPP::::PPaarrsseerr::::SSoouurrcceeHHaannddlleerr::::FFiillee -- SSttrreeaamm TTAAPP ffrroomm aa tteexxtt ffiillee..
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
CONFIGURATION #
SUBCLASSING #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::SSoouurrcceeHHaannddlleerr::::HHaannddllee -- SSttrreeaamm TTAAPP ffrroomm aann IIOO::::HHaannddllee oorr aa
GGLLOOBB.. #
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
SUBCLASSING #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::SSoouurrcceeHHaannddlleerr::::PPeerrll -- SSttrreeaamm TTAAPP ffrroomm aa PPeerrll eexxeeccuuttaabbllee
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
SUBCLASSING #
Example
SEE ALSO #
TTAAPP::::PPaarrsseerr::::SSoouurrcceeHHaannddlleerr::::RRaawwTTAAPP -- SSttrreeaamm oouuttppuutt ffrroomm rraaww TTAAPP iinn aa ssccaallaarr//aarrrraayy rreeff..
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
SUBCLASSING #
SEE ALSO #
TTAAPP::::PPaarrsseerr::::YYAAMMLLiisshh::::RReeaaddeerr -- RReeaadd YYAAMMLLiisshh ddaattaa ffrroomm iitteerraattoorr
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
AUTHOR #
SEE ALSO #
COPYRIGHT #
TTAAPP::::PPaarrsseerr::::YYAAMMLLiisshh::::WWrriitteerr -- WWrriittee YYAAMMLLiisshh ddaattaa
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
Class Methods
Instance Methods
a reference to a scalar to append YAML to, the handle of an open
file, a reference to an array into which YAML will be pushed, a
code reference
AUTHOR #
SEE ALSO #
COPYRIGHT #
TTeerrmm::::AANNSSIICCoolloorr -- CCoolloorr ssccrreeeenn oouuttppuutt uussiinngg AANNSSII eessccaappee sseeqquueenncceess
SYNOPSIS #
DESCRIPTION #
Supported Colors
Function Interface
color(ATTR[, ATTR ...]), colored(STRING, ATTR[, ATTR ...]),
colored(ATTR-REF, STRING[, STRING...]), uncolor(ESCAPE),
colorstrip(STRING[, STRING ...]), colorvalid(ATTR[, ATTR ...]),
coloralias(ALIAS[, ATTR ...])
Constant Interface
The Color Stack
Supporting CLICOLOR
DIAGNOSTICS #
Bad color mapping %s, Bad escape sequence %s, Bareword "%s" not
allowed while "strict subs" in use, Cannot alias standard color %s,
Cannot alias standard color %s in %s, Invalid alias name %s, Invalid
alias name %s in %s, Invalid attribute name %s, Invalid attribute
name %s in %s, Name "%s" used only once: possible typo, No comma
allowed after filehandle, No name for escape sequence %s
ENVIRONMENT #
ANSI_COLORS_ALIASES, ANSI_COLORS_DISABLED, NO_COLOR #
COMPATIBILITY #
RESTRICTIONS #
NOTES #
AUTHORS #
COPYRIGHT AND LICENSE #
SEE ALSO #
TTeerrmm::::CCaapp -- PPeerrll tteerrmmccaapp iinntteerrffaaccee
SYNOPSIS #
DESCRIPTION #
METHODS #
TTggeetteenntt, OSPEED, TERM
TTppaadd, $$ssttrriinngg, $$ccnntt, $$FFHH
TTppuuttss, $$ccaapp, $$ccnntt, $$FFHH
TTggoottoo, $$ccaapp, $$ccooll, $$rrooww, $$FFHH
TTrreeqquuiirree
EXAMPLES #
COPYRIGHT AND LICENSE #
AUTHOR #
SEE ALSO #
TTeerrmm::::CCoommpplleettee -- PPeerrll wwoorrdd ccoommpplleettiioonn mmoodduullee
SYNOPSIS #
DESCRIPTION #
<tab>, ^D, ^U, <del>, <bs>
DIAGNOSTICS #
BUGS #
AUTHOR #
TTeerrmm::::RReeaaddKKeeyy -- AA ppeerrll mmoodduullee ffoorr ssiimmppllee tteerrmmiinnaall ccoonnttrrooll
SYNOPSIS #
DESCRIPTION #
ReadMode MODE [, Filehandle], ReadKey MODE [, Filehandle], ReadLine
MODE [, Filehandle], GetTerminalSize [Filehandle], SetTerminalSize
WIDTH,HEIGHT,XPIX,YPIX [, Filehandle], GetSpeed [, Filehandle],
GetControlChars [, Filehandle], SetControlChars [, Filehandle]
AUTHOR #
SUPPORT #
LICENSE #
TTeerrmm::::RReeaaddLLiinnee -- PPeerrll iinntteerrffaaccee ttoo vvaarriioouuss “"rreeaaddlliinnee"” ppaacckkaaggeess.. IIff nnoo rreeaall ppaacckkaaggee iiss ffoouunndd,, ssuubbssttiittuutteess ssttuubbss iinnsstteeaadd ooff bbaassiicc ffuunnccttiioonnss..
SYNOPSIS #
DESCRIPTION #
Minimal set of supported functions
"ReadLine", "new", "readline", "addhistory", "IN", "OUT", "MinLine",
"findConsole", Attribs, "Features"
Additional supported functions
"tkRunning", "event_loop", "ornaments", "newTTY"
EXPORTS #
ENVIRONMENT #
TTeesstt -- pprroovviiddeess aa ssiimmppllee ffrraammeewwoorrkk ffoorr wwrriittiinngg tteesstt ssccrriippttss
SYNOPSIS #
DESCRIPTION #
QUICK START GUIDE #
Functions
"plan(...)", "tests => _n_u_m_b_e_r", "todo => [_1_,_5_,_1_4]", "onfail =>
sub { ... }", "onfail => \&some_sub"
__ttoo__vvaalluuee
"ok(...)"
"skip(_s_k_i_p___i_f___t_r_u_e, _a_r_g_s_._._.)"
TEST TYPES #
NORMAL TESTS, SKIPPED TESTS, TODO TESTS #
ONFAIL #
BUGS and CAVEATS
ENVIRONMENT #
NOTE #
SEE ALSO #
AUTHOR #
TTeesstt22 -- FFrraammeewwoorrkk ffoorr wwrriittiinngg tteesstt ttoooollss tthhaatt aallll wwoorrkk ttooggeetthheerr..
DESCRIPTION #
WHAT IS NEW? #
Easier to test new testing tools, Better diagnostics
capabilities, Event driven, More complete API, Support for output
other than TAP, Subtest implementation is more sane, Support for
threading/forking
GETTING STARTED #
TTeesstt22,, TThhiiss ddeessccrriibbeess tthhee nnaammeessppaaccee llaayyoouutt ffoorr tthhee TTeesstt22 eeccoossyysstteemm.. NNoott aallll tthhee nnaammeessppaacceess lliisstteedd hheerree aarree ppaarrtt ooff tthhee TTeesstt22 ddiissttrriibbuuttiioonn,, ssoommee aarree iimmpplleemmeenntteedd iinn TTeesstt22::::SSuuiittee.. Test2::Tools:: Test2::Plugin:: Test2::Bundle:: Test2::Require:: Test2::Formatter:: Test2::Event:: Test2::Hub:: Test2::IPC:: Test2::Util:: Test2::API:: Test2::
SEE ALSO #
CONTACTING US #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII -- PPrriimmaarryy iinntteerrffaaccee ffoorr wwrriittiinngg TTeesstt22 bbaasseedd tteessttiinngg ttoooollss..
INTERNALS NOTE #
DESCRIPTION #
SYNOPSIS #
WRITING A TOOL #
TESTING YOUR TOOLS #
OTHER API FUNCTIONS #
MAIN API EXPORTS #
context(...)
$ctx = ccoonntteexxtt(()), $ctx = context(%params), level => $int, wrapped
=> $int, stack => $stack, hub => $hub, on_init => sub { ... },
on_release => sub { ... }
release($;$)
release $ctx;, release $ctx, ...;
context_do(&;@)
no_context(&;$)
no_context { ... };, no_context { ... } $hid;
intercept(&)
run_subtest(...)
$NAME, \&CODE, $BUFFERED or \%PARAMS, 'buffered' => $bool,
'inherit_trace' => $bool, 'no_fork' => $bool, @ARGS, Things not
effected by this flag, Things that are effected by this flag,
Things that are formatter dependant
OTHER API EXPORTS #
STATUS AND INITIALIZATION STATE #
$bool = tteesstt22__iinniitt__ddoonnee(()), $bool = tteesstt22__llooaadd__ddoonnee(()),
tteesstt22__sseett__iiss__eenndd(()), test2_set_is_end($bool), $bool =
tteesstt22__ggeett__iiss__eenndd(()), $stack = tteesstt22__ssttaacckk(()), $bool =
tteesstt22__iiss__tteessttiinngg__ddoonnee(()), test2_ipc_disable, $bool =
test2_ipc_diabled, tteesstt22__iippcc__wwaaiitt__eennaabbllee(()),
tteesstt22__iippcc__wwaaiitt__ddiissaabbllee(()), $bool = tteesstt22__iippcc__wwaaiitt__eennaabblleedd(()), $bool
= tteesstt22__nnoo__wwaaiitt(()), test2_no_wait($bool), $fh = tteesstt22__ssttddoouutt(()),
$fh = tteesstt22__ssttddeerrrr(()), tteesstt22__rreesseett__iioo(())
BEHAVIOR HOOKS #
test2_add_callback_exit(sub { ... }),
test2_add_callback_post_load(sub { ... }),
test2_add_callback_testing_done(sub { ... }),
test2_add_callback_context_acquire(sub { ... }),
test2_add_callback_context_init(sub { ... }),
test2_add_callback_context_release(sub { ... }),
test2_add_callback_pre_subtest(sub { ... }), @list =
tteesstt22__lliisstt__ccoonntteexxtt__aaccqquuiirree__ccaallllbbaacckkss(()), @list =
tteesstt22__lliisstt__ccoonntteexxtt__iinniitt__ccaallllbbaacckkss(()), @list =
tteesstt22__lliisstt__ccoonntteexxtt__rreelleeaassee__ccaallllbbaacckkss(()), @list =
tteesstt22__lliisstt__eexxiitt__ccaallllbbaacckkss(()), @list =
tteesstt22__lliisstt__ppoosstt__llooaadd__ccaallllbbaacckkss(()), @list =
tteesstt22__lliisstt__pprree__ssuubbtteesstt__ccaallllbbaacckkss(()), test2_add_uuid_via(sub { ...
}), $sub = tteesstt22__aadddd__uuuuiidd__vviiaa(())
IPC AND CONCURRENCY #
$bool = tteesstt22__hhaass__iippcc(()), $ipc = tteesstt22__iippcc(()),
test2_ipc_add_driver($DRIVER), @drivers = tteesstt22__iippcc__ddrriivveerrss(()),
$bool = tteesstt22__iippcc__ppoolllliinngg(()), tteesstt22__iippcc__eennaabbllee__ppoolllliinngg(()),
tteesstt22__iippcc__ddiissaabbllee__ppoolllliinngg(()), tteesstt22__iippcc__eennaabbllee__sshhmm(()),
test2_ipc_set_pending($uniq_val), $pending =
tteesstt22__iippcc__ggeett__ppeennddiinngg(()), $timeout = tteesstt22__iippcc__ggeett__ttiimmeeoouutt(()),
test2_ipc_set_timeout($timeout)
MANAGING FORMATTERS #
$formatter = test2_formatter,
test2_formatter_set($class_or_instance), @formatters =
tteesstt22__ffoorrmmaatttteerrss(()), test2_formatter_add($class_or_instance)
OTHER EXAMPLES #
SEE ALSO #
MAGIC #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII::::BBrreeaakkaaggee -- WWhhaatt bbrreeaakkss aatt wwhhaatt vveerrssiioonn
DESCRIPTION #
FUNCTIONS #
%mod_ver = uuppggrraaddee__ssuuggggeesstteedd(()), %mod_ver =
Test2::API::Breakage->uuppggrraaddee__ssuuggggeesstteedd(()), %mod_ver =
uuppggrraaddee__rreeqquuiirreedd(()), %mod_ver =
Test2::API::Breakage->uuppggrraaddee__rreeqquuiirreedd(()), %mod_ver = kknnoowwnn__bbrrookkeenn(()),
%mod_ver = Test2::API::Breakage->kknnoowwnn__bbrrookkeenn(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII::::CCoonntteexxtt -- OObbjjeecctt ttoo rreepprreesseenntt aa tteessttiinngg ccoonntteexxtt..
DESCRIPTION #
SYNOPSIS #
CRITICAL DETAILS #
you MUST always use the ccoonntteexxtt(()) sub from Test2::API, You MUST
always release the context when done with it, You MUST NOT pass
context objects around, You MUST NOT store or cache a context for
later, You SHOULD obtain your context as soon as possible in a given
tool
METHODS #
$ctx->done_testing;, $clone = $ctx->ssnnaappsshhoott(()), $ctx->rreelleeaassee(()),
$ctx->throw($message), $ctx->alert($message), $stack = $ctx->ssttaacckk(()),
$hub = $ctx->hhuubb(()), $dbg = $ctx->ttrraaccee(()), $ctx->do_in_context(\&code,
@args);, $ctx->rreessttoorree__eerrrroorr__vvaarrss(()), $! = $ctx->eerrrrnnoo(()), $? =
$ctx->cchhiilldd__eerrrroorr(()), $@ = $ctx->eevvaall__eerrrroorr(())
EVENT PRODUCTION METHODS #
$event = $ctx->ppaassss(()), $event = $ctx->pass($name), $true =
$ctx->ppaassss__aanndd__rreelleeaassee(()), $true = $ctx->pass_and_release($name),
my $event = $ctx->ffaaiill(()), my $event = $ctx->fail($name), my
$event = $ctx->fail($name, @diagnostics), my $false =
$ctx->ffaaiill__aanndd__rreelleeaassee(()), my $false =
$ctx->fail_and_release($name), my $false =
$ctx->fail_and_release($name, @diagnostics), $event =
$ctx->ok($bool, $name), $event = $ctx->ok($bool, $name,
\@on_fail), $event = $ctx->note($message), $event =
$ctx->diag($message), $event = $ctx->plan($max), $event =
$ctx->plan(0, 'SKIP', $reason), $event = $ctx->skip($name,
$reason);, $event = $ctx->bail($reason), $event =
$ctx->send_ev2(%facets), $event = $ctx->build_e2(%facets), $event
= $ctx->send_ev2_and_release($Type, %parameters), $event =
$ctx->send_event($Type, %parameters), $event =
$ctx->build_event($Type, %parameters), $event =
$ctx->send_event_and_release($Type, %parameters)
HOOKS #
INIT HOOKS #
RELEASE HOOKS #
THIRD PARTY META-DATA #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>, Kent Fredric <kentnl@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII::::IInnssttaannccee -- OObbjjeecctt uusseedd bbyy TTeesstt22::::AAPPII uunnddeerr tthhee hhoooodd
DESCRIPTION #
SYNOPSIS #
$pid = $obj->pid, $obj->tid, $obj->rreesseett(()), $obj->llooaadd(()), $bool =
$obj->loaded, $arrayref = $obj->post_load_callbacks,
$obj->add_post_load_callback(sub { ... }), $hashref =
$obj->ccoonntteexxttss(()), $arrayref = $obj->context_acquire_callbacks,
$arrayref = $obj->context_init_callbacks, $arrayref =
$obj->context_release_callbacks, $arrayref =
$obj->pre_subtest_callbacks, $obj->add_context_init_callback(sub {
... }), $obj->add_context_release_callback(sub { ... }),
$obj->add_pre_subtest_callback(sub { ... }), $obj->sseett__eexxiitt(()),
$obj->set_ipc_pending($val), $pending = $obj->ggeett__iippcc__ppeennddiinngg(()),
$timeout = $obj->ipc_timeout;, $obj->set_ipc_timeout($timeout);,
$drivers = $obj->ipc_drivers, $obj->add_ipc_driver($DRIVER_CLASS),
$bool = $obj->ipc_polling, $obj->enable_ipc_polling,
$obj->disable_ipc_polling, $bool = $obj->no_wait, $bool =
$obj->set_no_wait($bool), $arrayref = $obj->exit_callbacks,
$obj->add_exit_callback(sub { ... }), $bool = $obj->finalized, $ipc =
$obj->ipc, $obj->ipc_disable, $bool = $obj->ipc_disabled, $stack =
$obj->stack, $formatter = $obj->formatter, $bool =
$obj->ffoorrmmaatttteerr__sseett(()), $obj->add_formatter($class),
$obj->add_formatter($obj), $obj->set_add_uuid_via(sub { ... }), $sub
= $obj->aadddd__uuuuiidd__vviiaa(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII::::IInntteerrcceeppttRReessuulltt -- RReepprreesseennttaattiioonn ooff aa lliisstt ooff eevveennttss..
DESCRIPTION #
SYNOPSIS #
METHODS #
CONSTRUCTION #
$events = Test2::API::InterceptResult->new(@EVENTS), $events =
Test2::API::InterceptResult->new_from_ref(\@EVENTS), $clone =
$events->cclloonnee(())
NORMALIZATION #
@events = $events->event_list, $hub = $events->hub, $state =
$events->state, $new = $events->upgrade,
$events->upgrade(in_place => $BOOL), $new = $events->squash_info,
$events->squash_info(in_place => $BOOL)
FILTERING #
in_place => $BOOL, args => \@ARGS, $events->grep($CALL, %PARAMS),
$events->asserts(%PARAMS), $events->subtests(%PARAMS),
$events->diags(%PARAMS), $events->notes(%PARAMS),
$events->errors(%PARAMS), $events->plans(%PARAMS),
$events->causes_fail(%PARAMS), $events->causes_failure(%PARAMS)
MAPPING #
$arrayref = $events->map($CALL, %PARAMS), $arrayref =
$events->flatten(%PARAMS), $arrayref = $events->briefs(%PARAMS),
$arrayref = $events->summaries(%PARAMS), $arrayref =
$events->subtest_results(%PARAMS), $arrayref =
$events->diag_messages(%PARAMS), $arrayref =
$events->note_messages(%PARAMS), $arrayref =
$events->error_messages(%PARAMS)
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII::::IInntteerrcceeppttRReessuulltt::::EEvveenntt -- RReepprreesseennttaattiioonn ooff aann eevveenntt ffoorr uussee iinn tteessttiinngg ootthheerr tteesstt ttoooollss..
DESCRIPTION #
SYNOPSIS #
METHODS #
!!! IMPORTANT NOTES ON DESIGN !!! #
ATTRIBUTES #
$hashref = $event->facet_data, $class = $event->result_class
DUPLICATION #
$copy = $event->clone
CONDENSED MULTI-FACET DATA #
$bool = $event->causes_failure, $bool = $event->causes_fail,
STRING_OR_EMPTY_LIST = $event->brief, $hashref = $event->flatten,
$hashref = $event->flatten(include_subevents => 1), always
present, Present if the event has a trace facet, If an assertion
is present, If a plan is present:, If amnesty facets are present,
If Info (note/diag) facets are present, If error facets are
present, Present if the event is a subtest, If a bail-out is
being requested, $hashref = $event->ssuummmmaarryy(())
DIRECT ARBITRARY FACET ACCESS #
@list_of_facets = $event->facet($name), $undef_or_facet =
$event->the_facet($name)
TRACE FACET #
@list_of_facets = $event->trace, $undef_or_hashref =
$event->the_trace, $undef_or_arrayref = $event->frame,
$undef_or_string = $event->trace_details, $undef_or_string =
$event->trace_package, $undef_or_string = $event->trace_file,
$undef_or_integer = $event->trace_line, $undef_or_string =
$event->trace_subname, $undef_or_string = $event->trace_tool,
$undef_or_string = $event->trace_signature
ASSERT FACET #
$bool = $event->has_assert, $undef_or_hashref =
$event->the_assert, @list_of_facets = $event->assert,
EMPTY_LIST_OR_STRING = $event->assert_brief
SUBTESTS (PARENT FACET) #
$bool = $event->has_subtest, $undef_or_hashref =
$event->the_subtest, @list_of_facets = $event->subtest,
EMPTY_LIST_OR_OBJECT = $event->subtest_result
CONTROL FACET (BAILOUT, ENCODING) #
$bool = $event->has_bailout, $undef_hashref =
$event->the_bailout, EMPTY_LIST_OR_HASHREF = $event->bailout,
EMPTY_LIST_OR_STRING = $event->bailout_brief,
EMPTY_LIST_OR_STRING = $event->bailout_reason
PLAN FACET #
$bool = $event->has_plan, $undef_or_hashref = $event->the_plan,
@list_if_hashrefs = $event->plan, EMPTY_LIST_OR_STRING
$event->plan_brief
AMNESTY FACET (TODO AND SKIP) #
$event->has_amnesty, $event->the_amnesty, $event->amnesty,
$event->amnesty_reasons, $event->has_todos, $event->todos,
$event->todo_reasons, $event->has_skips, $event->skips,
$event->skip_reasons, $event->has_other_amnesty,
$event->other_amnesty, $event->other_amnesty_reasons
ERROR FACET (CAPTURED EXCEPTIONS) #
$event->has_errors, $event->the_errors, $event->errors,
$event->error_messages, $event->error_brief
INFO FACET (DIAG, NOTE) #
$event->has_info, $event->the_info, $event->info,
$event->info_messages, $event->has_diags, $event->diags,
$event->diag_messages, $event->has_notes, $event->notes,
$event->note_messages, $event->has_other_info,
$event->other_info, $event->other_info_messages
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII::::IInntteerrcceeppttRReessuulltt::::HHuubb -- HHuubb uusseedd bbyy IInntteerrcceeppttRReessuulltt..
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII::::IInntteerrcceeppttRReessuulltt::::SSqquuaasshheerr -- EEnnccaappssuullaattiioonn ooff tthhee aallggoorriitthhmm tthhaatt ssqquuaasshheess ddiiaaggss iinnttoo aasssseerrttiioonnss..
DESCRIPTION #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::AAPPII::::SSttaacckk -- OObbjjeecctt ttoo mmaannaaggee aa ssttaacckk ooff TTeesstt22::::HHuubb iinnssttaanncceess..
INTERNALS NOTE #
DESCRIPTION #
SYNOPSIS #
METHODS #
$stack = Test2::API::Stack->nneeww(()), $hub = $stack->nneeww__hhuubb(()), $hub =
$stack->new_hub(%params), $hub = $stack->new_hub(%params, class =>
$class), $hub = $stack->ttoopp(()), $hub = $stack->ppeeeekk(()), $stack->cull,
@hubs = $stack->all, $stack->clear, $stack->push($hub),
$stack->pop($hub)
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt -- BBaassee ccllaassss ffoorr eevveennttss
DESCRIPTION #
SYNOPSIS #
METHODS #
GENERAL #
$trace = $e->trace, $bool_or_undef = $e->related($e2),
$e->add_amnesty({tag => $TAG, details => $DETAILS});, $uuid =
$e->uuid, $class = $e->load_facet($name), @classes =
$e->FFAACCEETT__TTYYPPEESS(()), @classes = Test2::Event->FFAACCEETT__TTYYPPEESS(())
NEW API #
$hashref = $e->ccoommmmoonn__ffaacceett__ddaattaa(());, $hashref = $e->ffaacceett__ddaattaa(()),
$hashref = $e->ffaacceettss(()), @errors = $e->vvaalliiddaattee__ffaacceett__ddaattaa(());,
@errors = $e->validate_facet_data(%params);, @errors =
$e->validate_facet_data(\%facets, %params);, @errors =
Test2::Event->validate_facet_data(%params);, @errors =
Test2::Event->validate_facet_data(\%facets, %params);,
require_facet_class => $BOOL, about => {...}, assert => {...},
control => {...}, meta => {...}, parent => {...}, plan => {...},
trace => {...}, amnesty => [{...}, ...], errors => [{...}, ...],
info => [{...}, ...]
LEGACY API #
$bool = $e->causes_fail, $bool = $e->increments_count,
$e->callback($hub), $num = $e->nested, $bool = $e->global, $code
= $e->terminate, $msg = $e->summary, ($count, $directive,
$reason) = $e->sseettss__ppllaann(()), $bool = $e->diagnostics, $bool =
$e->no_display, $id = $e->in_subtest, $id = $e->subtest_id
THIRD PARTY META-DATA #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::BBaaiill -- BBaaiilloouutt!!
DESCRIPTION #
SYNOPSIS #
METHODS #
$reason = $e->reason
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::DDiiaagg -- DDiiaagg eevveenntt ttyyppee
DESCRIPTION #
SYNOPSIS #
ACCESSORS #
$diag->message
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::EEnnccooddiinngg -- SSeett tthhee eennccooddiinngg ffoorr tthhee oouuttppuutt ssttrreeaamm
DESCRIPTION #
SYNOPSIS #
METHODS #
$encoding = $e->encoding
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::EExxcceeppttiioonn -- EExxcceeppttiioonn eevveenntt
DESCRIPTION #
SYNOPSIS #
METHODS #
$reason = $e->error
CAVEATS #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::FFaaiill -- EEvveenntt ffoorr aa ssiimmppllee ffaaiilleedd aasssseerrttiioonn
DESCRIPTION #
SYNOPSIS #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::GGeenneerriicc -- GGeenneerriicc eevveenntt ttyyppee..
DESCRIPTION #
SYNOPSIS #
METHODS #
$e->facet_data($data), $data = $e->facet_data, $e->callback($hub),
$e->set_callback(sub { ... }), $bool = $e->causes_fail,
$e->set_causes_fail($bool), $bool = $e->diagnostics,
$e->set_diagnostics($bool), $bool_or_undef = $e->global,
@bool_or_empty = $e->global, $e->set_global($bool_or_undef), $bool =
$e->increments_count, $e->set_increments_count($bool), $bool =
$e->no_display, $e->set_no_display($bool), @plan = $e->sets_plan,
$e->set_sets_plan(\@plan), $summary = $e->summary,
$e->set_summary($summary_or_undef), $int_or_undef = $e->terminate,
@int_or_empty = $e->terminate, $e->set_terminate($int_or_undef)
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::NNoottee -- NNoottee eevveenntt ttyyppee
DESCRIPTION #
SYNOPSIS #
ACCESSORS #
$note->message
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::OOkk -- OOkk eevveenntt ttyyppee
DESCRIPTION #
SYNOPSIS #
ACCESSORS #
$rb = $e->pass, $name = $e->name, $b = $e->effective_pass
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::PPaassss -- EEvveenntt ffoorr aa ssiimmppllee ppaassssiinngg aasssseerrttiioonn
DESCRIPTION #
SYNOPSIS #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::PPllaann -- TThhee eevveenntt ooff aa ppllaann
DESCRIPTION #
SYNOPSIS #
ACCESSORS #
$num = $plan->max, $dir = $plan->directive, $reason = $plan->reason
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::SSkkiipp -- SSkkiipp eevveenntt ttyyppee
DESCRIPTION #
SYNOPSIS #
ACCESSORS #
$reason = $e->reason
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::SSuubbtteesstt -- EEvveenntt ffoorr ssuubbtteesstt ttyyppeess
DESCRIPTION #
ACCESSORS #
$arrayref = $e->subevents, $bool = $e->buffered
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::TTAAPP::::VVeerrssiioonn -- EEvveenntt ffoorr TTAAPP vveerrssiioonn..
DESCRIPTION #
SYNOPSIS #
METHODS #
$version = $e->version
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::VV22 -- SSeeccoonndd ggeenneerraattiioonn eevveenntt..
DESCRIPTION #
SYNOPSIS #
USING A CONTEXT #
USING THE CONSTRUCTOR #
METHODS #
$fd = $e->ffaacceett__ddaattaa(()), $about = $e->aabboouutt(()), $trace = $e->ttrraaccee(())
MUTATION #
$e->add_amnesty({...}), $e->add_hub({...}), $e->set_uuid($UUID),
$e->set_trace($trace)
LEGACY SUPPORT METHODS #
causes_fail, diagnostics, global, increments_count, no_display,
sets_plan, subtest_id, summary, terminate
THIRD PARTY META-DATA #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveenntt::::WWaaiittiinngg -- TTeellll aallll pprrooccss//tthhrreeaaddss iitt iiss ttiimmee ttoo bbee ddoonnee
DESCRIPTION #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett -- BBaassee ccllaassss ffoorr aallll eevveenntt ffaacceettss..
DESCRIPTION #
METHODS #
$key = $facet_class->ffaacceett__kkeeyy(()), $bool = $facet_class->iiss__lliisstt(()),
$clone = $facet->cclloonnee(()), $clone = $facet->clone(%replace)
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::AAbboouutt -- FFaacceett wwiitthh eevveenntt ddeettaaiillss..
DESCRIPTION #
FIELDS #
$string = $about->{details}, $string = $about->ddeettaaiillss(()), $package =
$about->{package}, $package = $about->ppaacckkaaggee(()), $bool =
$about->{no_display}, $bool = $about->nnoo__ddiissppllaayy(()), $uuid =
$about->{uuid}, $uuid = $about->uuuuiidd(()), $uuid = $about->{eid}, $uuid
= $about->eeiidd(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::AAmmnneessttyy -- FFaacceett ffoorr aasssseerrttiioonn aammnneessttyy..
DESCRIPTION #
NOTES #
FIELDS #
$string = $amnesty->{details}, $string = $amnesty->ddeettaaiillss(()),
$short_string = $amnesty->{tag}, $short_string = $amnesty->ttaagg(()),
$bool = $amnesty->{inherited}, $bool = $amnesty->iinnhheerriitteedd(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::AAsssseerrtt -- FFaacceett rreepprreesseennttiinngg aann aasssseerrttiioonn..
DESCRIPTION #
FIELDS #
$string = $assert->{details}, $string = $assert->ddeettaaiillss(()), $bool =
$assert->{pass}, $bool = $assert->ppaassss(()), $bool =
$assert->{no_debug}, $bool = $assert->nnoo__ddeebbuugg(()), $int =
$assert->{number}, $int = $assert->nnuummbbeerr(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::CCoonnttrrooll -- FFaacceett ffoorr hhuubb aaccttiioonnss aanndd bbeehhaavviioorrss..
DESCRIPTION #
FIELDS #
$string = $control->{details}, $string = $control->ddeettaaiillss(()), $bool =
$control->{global}, $bool = $control->gglloobbaall(()), $exit =
$control->{terminate}, $exit = $control->tteerrmmiinnaattee(()), $bool =
$control->{halt}, $bool = $control->hhaalltt(()), $bool =
$control->{has_callback}, $bool = $control->hhaass__ccaallllbbaacckk(()), $encoding
= $control->{encoding}, $encoding = $control->eennccooddiinngg(()), $phase =
$control->{phase}, $phase = $control->pphhaassee(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::EErrrroorr -- FFaacceett ffoorr eerrrroorrss tthhaatt nneeeedd ttoo bbee sshhoowwnn..
DESCRIPTION #
NOTES #
FIELDS #
$string = $error->{details}, $string = $error->ddeettaaiillss(()),
$short_string = $error->{tag}, $short_string = $error->ttaagg(()), $bool =
$error->{fail}, $bool = $error->ffaaiill(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::HHuubb -- FFaacceett ffoorr tthhee hhuubbss aann eevveenntt ppaasssseess tthhrroouugghh..
DESCRIPTION #
FACET FIELDS #
$string = $trace->{details}, $string = $trace->ddeettaaiillss(()), $int =
$trace->{pid}, $int = $trace->ppiidd(()), $int = $trace->{tid}, $int =
$trace->ttiidd(()), $hid = $trace->{hid}, $hid = $trace->hhiidd(()), $huuid =
$trace->{huuid}, $huuid = $trace->hhuuuuiidd(()), $int = $trace->{nested},
$int = $trace->nneesstteedd(()), $bool = $trace->{buffered}, $bool =
$trace->bbuuffffeerreedd(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::IInnffoo -- FFaacceett ffoorr iinnffoorrmmaattiioonn aa ddeevveellooppeerr mmiigghhtt ccaarree aabboouutt..
DESCRIPTION #
NOTES #
FIELDS #
$string_or_structure = $info->{details}, $string_or_structure =
$info->ddeettaaiillss(()), $structure = $info->{table}, $structure =
$info->ttaabbllee(()), $short_string = $info->{tag}, $short_string =
$info->ttaagg(()), $bool = $info->{debug}, $bool = $info->ddeebbuugg(()), $bool =
$info->{important}, $bool = $info->important
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::IInnffoo::::TTaabbllee -- IInntteerrmmeeddiiaarryy rreepprreesseennttaattiioonn ooff aa ttaabbllee..
DESCRIPTION #
SYNOPSIS #
ATTRIBUTES #
$header_aref = $t->hheeaaddeerr(()), $rows_aref = $t->rroowwss(()), $bool =
$t->ccoollllaappssee(()), $aref = $t->nnoo__ccoollllaappssee(()), $str = $t->aass__ssttrriinngg(()),
$href = $t->aass__hhaasshh(()), %args = $t->iinnffoo__aarrggss(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::MMeettaa -- FFaacceett ffoorr mmeettaa--ddaattaa
DESCRIPTION #
METHODS AND FIELDS #
$anything = $meta->{anything}, $anything = $meta->aannyytthhiinngg(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::PPaarreenntt -- FFaacceett ffoorr eevveennttss ccoonnttaaiinnss ootthheerr eevveennttss
DESCRIPTION #
FIELDS #
$string = $parent->{details}, $string = $parent->ddeettaaiillss(()), $hid =
$parent->{hid}, $hid = $parent->hhiidd(()), $arrayref =
$parent->{children}, $arrayref = $parent->cchhiillddrreenn(()), $bool =
$parent->{buffered}, $bool = $parent->bbuuffffeerreedd(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::PPllaann -- FFaacceett ffoorr sseettttiinngg tthhee ppllaann
DESCRIPTION #
FIELDS #
$string = $plan->{details}, $string = $plan->ddeettaaiillss(()), $positive_int
= $plan->{count}, $positive_int = $plan->ccoouunntt(()), $bool =
$plan->{skip}, $bool = $plan->sskkiipp(()), $bool = $plan->{none}, $bool =
$plan->nnoonnee(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::RReennddeerr -- FFaacceett tthhaatt ddiiccttaatteess hhooww ttoo rreennddeerr aann eevveenntt..
DESCRIPTION #
FIELDS #
$string = $render->[#]->{details}, $string = $render->[#]->ddeettaaiillss(()),
$string = $render->[#]->{tag}, $string = $render->[#]->ttaagg(()), $string
= $render->[#]->{facet}, $string = $render->[#]->ffaacceett(()), $mode =
$render->[#]->{mode}, $mode = $render->[#]->mmooddee(()), calculated,
replace
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::EEvveennttFFaacceett::::TTrraaccee -- DDeebbuugg iinnffoorrmmaattiioonn ffoorr eevveennttss
DESCRIPTION #
SYNOPSIS #
FACET FIELDS #
$string = $trace->{details}, $string = $trace->ddeettaaiillss(()), $frame =
$trace->{frame}, $frame = $trace->ffrraammee(()), $int = $trace->{pid}, $int
= $trace->ppiidd(()), $int = $trace->{tid}, $int = $trace->ttiidd(()), $id =
$trace->{cid}, $id = $trace->cciidd(()), $uuid = $trace->{uuid}, $uuid =
$trace->uuuuiidd(()), ($pkg, $file, $line, $subname) = $trace->call,
@caller = $trace->full_call, $warning_bits = $trace->warning_bits
DISCOURAGED HUB RELATED FIELDS #
$hid = $trace->{hid}, $hid = $trace->hhiidd(()), $huuid =
$trace->{huuid}, $huuid = $trace->hhuuuuiidd(()), $int =
$trace->{nested}, $int = $trace->nneesstteedd(()), $bool =
$trace->{buffered}, $bool = $trace->bbuuffffeerreedd(())
METHODS #
$trace->set_detail($msg), $msg = $trace->detail, $str =
$trace->debug, $trace->alert($MESSAGE), $trace->throw($MESSAGE),
($package, $file, $line, $subname) = $trace->ccaallll(()), $pkg =
$trace->package, $file = $trace->file, $line = $trace->line, $subname
= $trace->subname, $sig = trace->signature
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::FFoorrmmaatttteerr -- NNaammeessppaaccee ffoorr ffoorrmmaatttteerrss..
DESCRIPTION #
CREATING FORMATTERS #
The number of tests that were planned, The number of tests actually
seen, The number of tests which failed, A boolean indicating whether
or not the test suite passed, A boolean indicating whether or not
this call is for a subtest
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::FFoorrmmaatttteerr::::TTAAPP -- SSttaannddaarrdd TTAAPP ffoorrmmaatttteerr
DESCRIPTION #
SYNOPSIS #
METHODS #
$bool = $tap->no_numbers, $tap->set_no_numbers($bool), $arrayref =
$tap->handles, $tap->set_handles(\@handles);, $encoding =
$tap->encoding, $tap->encoding($encoding), $tap->write($e, $num)
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>, Kent Fredric <kentnl@cpan.org>
COPYRIGHT #
TTeesstt22::::HHuubb -- TThhee ccoonndduuiitt tthhrroouugghh wwhhiicchh aallll eevveennttss ffllooww..
SYNOPSIS #
DESCRIPTION #
COMMON TASKS #
SENDING EVENTS #
ALTERING OR REMOVING EVENTS #
LISTENING FOR EVENTS #
POST-TEST BEHAVIORS #
SETTING THE FORMATTER #
METHODS #
$hub->send($event), $hub->process($event), $old =
$hub->format($formatter), $sub = $hub->listen(sub { ... },
%optional_params), $hub->unlisten($sub), $sub = $hub->filter(sub {
... }, %optional_params), $sub = $hub->pre_filter(sub { ... },
%optional_params), $hub->unfilter($sub), $hub->pre_unfilter($sub),
$hub->follow_op(sub { ... }), $sub = $hub->add_context_acquire(sub {
... });, $hub->remove_context_acquire($sub);, $sub =
$hub->add_context_init(sub { ... });,
$hub->remove_context_init($sub);, $sub =
$hub->add_context_release(sub { ... });,
$hub->remove_context_release($sub);, $hub->ccuullll(()), $pid =
$hub->ppiidd(()), $tid = $hub->ttiidd(()), $hud = $hub->hhiidd(()), $uuid =
$hub->uuuuiidd(()), $ipc = $hub->iippcc(()), $hub->set_no_ending($bool), $bool =
$hub->no_ending, $bool = $hub->active, $hub->set_active($bool)
STATE METHODS #
$hub->rreesseett__ssttaattee(()), $num = $hub->count, $num = $hub->failed,
$bool = $hub->ended, $bool = $hub->is_passing,
$hub->is_passing($bool), $hub->plan($plan), $plan = $hub->plan,
$bool = $hub->check_plan
THIRD PARTY META-DATA #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::HHuubb::::IInntteerrcceeppttoorr -- HHuubb uusseedd bbyy iinntteerrcceeppttoorr ttoo ggrraabb rreessuullttss..
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::HHuubb::::IInntteerrcceeppttoorr::::TTeerrmmiinnaattoorr -- EExxcceeppttiioonn ccllaassss uusseedd bbyy TTeesstt22::::HHuubb::::IInntteerrcceeppttoorr
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::HHuubb::::SSuubbtteesstt -- HHuubb uusseedd bbyy ssuubbtteessttss
DESCRIPTION #
TOGGLES #
$bool = $hub->manual_skip_all, $hub->set_manual_skip_all($bool)
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::IIPPCC -- TTuurrnn oonn IIPPCC ffoorr tthhrreeaaddiinngg oorr ffoorrkkiinngg ssuuppppoorrtt..
SYNOPSIS #
DISABLING IT #
EXPORTS #
ccuullll(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::IIPPCC::::DDrriivveerr -- BBaassee ccllaassss ffoorr TTeesstt22 IIPPCC ddrriivveerrss..
SYNOPSIS #
METHODS #
$self->abort($msg), $self->abort_trace($msg)
LOADING DRIVERS #
WRITING DRIVERS #
METHODS SUBCLASSES MUST IMPLEMENT #
$ipc->is_viable, $ipc->add_hub($hid), $ipc->drop_hub($hid),
$ipc->send($hid, $event);, $ipc->send($hid, $event, $global);,
@events = $ipc->cull($hid), $ipc->wwaaiittiinngg(())
METHODS SUBCLASSES MAY IMPLEMENT OR OVERRIDE #
$ipc->driver_abort($msg)
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::IIPPCC::::DDrriivveerr::::FFiilleess -- TTeemmpp ddiirr ++ FFiilleess ccoonnccuurrrreennccyy mmooddeell..
DESCRIPTION #
SYNOPSIS #
ENVIRONMENT VARIABLES #
T2_KEEP_TEMPDIR=0, T2_TEMPDIR_TEMPLATE='test2-XXXXXX'
SEE ALSO #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::TToooollss::::TTiinnyy -- TTiinnyy sseett ooff ttoooollss ffoorr uunnffoorrttuunnaattee ssoouullss wwhhoo ccaannnnoott uussee TTeesstt22::::SSuuiittee..
DESCRIPTION #
USE Test2::Suite INSTEAD
EXPORTS #
ok($bool, $name), ok($bool, $name, @diag), is($got, $want, $name),
is($got, $want, $name, @diag), isnt($got, $do_not_want, $name),
isnt($got, $do_not_want, $name, @diag), like($got, $regex, $name),
like($got, $regex, $name, @diag), unlike($got, $regex, $name),
unlike($got, $regex, $name, @diag), is_deeply($got, $want, $name),
is_deeply($got, $want, $name, @diag), diag($msg), note($msg),
skip_all($reason), todo $reason => sub { ... }, plan($count),
ddoonnee__tteessttiinngg(()), $warnings = warnings { ... }, $exception = exception
{ ... }, tests $name => sub { ... }, $output = capture { ... }
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::TTrraannssiittiioonn -- TTrraannssiittiioonn nnootteess wwhheenn uuppggrraaddiinngg ttoo TTeesstt22
DESCRIPTION #
THINGS THAT BREAK #
Test::Builder1.5/2 conditionals
Replacing the Test::Builder singleton
Directly Accessing Hash Elements
Subtest indentation
DISTRIBUTIONS THAT BREAK OR NEED TO BE UPGRADED #
WORKS BUT TESTS WILL FAIL #
Test::DBIx::Class::Schema, Device::Chip
UPGRADE SUGGESTED #
Test::Exception, Data::Peek, circular::require,
Test::Module::Used, Test::Moose::More, Test::FITesque, Test::Kit,
autouse
NEED TO UPGRADE #
Test::SharedFork, Test::Builder::Clutch, Test::Dist::VersionSync,
Test::Modern, Test::UseAllModules, Test::More::Prefix
STILL BROKEN #
Test::Aggregate, Test::Wrapper, Test::ParallelSubtest,
Test::Pretty, Net::BitTorrent, Test::Group, Test::Flatten,
Log::Dispatch::Config::TestLog, Test::Able
MAKE ASSERTIONS -> SEND EVENTS #
LEGACY #
TEST2 #
ok($bool, $name), diag(@messages), note(@messages),
subtest($name, $code)
WRAP EXISTING TOOLS #
LEGACY #
TEST2 #
USING UTF8 #
LEGACY #
TEST2 #
AUTHORS, CONTRIBUTORS AND REVIEWERS #
Chad Granum (EXODIST) <exodist@cpan.org>
SOURCE #
MAINTAINER #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::UUttiill -- TToooollss uusseedd bbyy TTeesstt22 aanndd ffrriieennddss..
DESCRIPTION #
EXPORTS #
($success, $error) = try { ... }, protect { ... }, CAN_FORK,
CAN_REALLY_FORK, CAN_THREAD, USE_THREADS, get_tid, my $file =
pkg_to_file($package), $string = iippcc__sseeppaarraattoorr(()), $string =
ggeenn__uuiidd(()), ($ok, $err) = do_rename($old_name, $new_name), ($ok, $err)
= do_unlink($filename), ($ok, $err) = try_sig_mask { ... }, SIGINT,
SIGALRM, SIGHUP, SIGTERM, SIGUSR1, SIGUSR2 #
NOTES && CAVEATS #
Devel::Cover
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>, Kent Fredric <kentnl@cpan.org>
COPYRIGHT #
TTeesstt22::::UUttiill::::EExxtteerrnnaallMMeettaa -- AAllllooww tthhiirrdd ppaarrttyy ttoooollss ttoo ssaaffeellyy aattttaacchh mmeettaa--ddaattaa ttoo yyoouurr iinnssttaanncceess..
DESCRIPTION #
SYNOPSIS #
WHERE IS THE DATA STORED? #
EXPORTS #
$val = $obj->meta($key), $val = $obj->meta($key, $default), $val =
$obj->get_meta($key), $val = $obj->delete_meta($key),
$obj->set_meta($key, $val)
META-KEY RESTRICTIONS #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::UUttiill::::FFaacceettss22LLeeggaaccyy -- CCoonnvveerrtt ffaacceett ddaattaa ttoo tthhee lleeggaaccyy eevveenntt AAPPII..
DESCRIPTION #
SYNOPSIS #
AS METHODS #
AS FUNCTIONS #
NOTE ON CYCLES #
EXPORTS #
$bool = $e->ccaauusseess__ffaaiill(()), $bool = causes_fail($f), $bool =
$e->ddiiaaggnnoossttiiccss(()), $bool = diagnostics($f), $bool = $e->gglloobbaall(()),
$bool = global($f), $bool = $e->iinnccrreemmeennttss__ccoouunntt(()), $bool =
increments_count($f), $bool = $e->nnoo__ddiissppllaayy(()), $bool =
no_display($f), ($max, $directive, $reason) = $e->sseettss__ppllaann(()), ($max,
$directive, $reason) = sets_plan($f), $id = $e->ssuubbtteesstt__iidd(()), $id =
subtest_id($f), $string = $e->ssuummmmaarryy(()), $string = summary($f),
$undef_or_int = $e->tteerrmmiinnaattee(()), $undef_or_int = terminate($f), $uuid
= $e->uuuuiidd(()), $uuid = uuid($f)
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::UUttiill::::HHaasshhBBaassee -- BBuuiilldd hhaasshh bbaasseedd ccllaasssseess..
SYNOPSIS #
DESCRIPTION #
THIS IS A BUNDLED COPY OF HASHBASE #
METHODS #
PROVIDED BY HASH BASE #
$it = $class->new(%PAIRS), $it = $class->new(\%PAIRS), $it =
$class->new(\@ORDERED_VALUES)
HOOKS #
$self->iinniitt(())
ACCESSORS #
READ/WRITE #
ffoooo(()), sseett__ffoooo(()), FFOOOO(())
READ ONLY #
sseett__ffoooo(())
DEPRECATED SETTER #
sseett__ffoooo(())
NO SETTER #
NO READER #
CONSTANT ONLY #
SUBCLASSING #
GETTING A LIST OF ATTRIBUTES FOR A CLASS #
@list = Test2::Util::HashBase::attr_list($class), @list =
$class->TTeesstt22::::UUttiill::::HHaasshhBBaassee::::aattttrr__lliisstt(())
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt22::::UUttiill::::TTrraaccee -- LLeeggaaccyy wwrraappppeerr ffrroo TTeesstt22::::EEvveennttFFaacceett::::TTrraaccee..
DESCRIPTION #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt::::BBuuiillddeerr -- BBaacckkeenndd ffoorr bbuuiillddiinngg tteesstt lliibbrraarriieess
SYNOPSIS #
DESCRIPTION #
Construction
nneeww, ccrreeaattee, ssuubbtteesstt, nnaammee, rreesseett
Setting up tests
ppllaann, eexxppeecctteedd__tteessttss, nnoo__ppllaann, ddoonnee__tteessttiinngg, hhaass__ppllaann, sskkiipp__aallll,
eexxppoorrtteedd__ttoo
Running tests
ookk, iiss__eeqq, iiss__nnuumm, iissnntt__eeqq, iissnntt__nnuumm, lliikkee, uunnlliikkee, ccmmpp__ookk
Other Testing Methods
BBAAIILL__OOUUTT, sskkiipp, ttooddoo__sskkiipp, sskkiipp__rreesstt
Test building utility methods
mmaayybbee__rreeggeexx, iiss__ffhh
Test style
lleevveell, uussee__nnuummbbeerrss, nnoo__ddiiaagg, nnoo__eennddiinngg, nnoo__hheeaaddeerr
Output
ddiiaagg, nnoottee, eexxppllaaiinn, oouuttppuutt, ffaaiilluurree__oouuttppuutt, ttooddoo__oouuttppuutt,
reset_outputs, carp, croak
Test Status and Info
nnoo__lloogg__rreessuullttss, ccuurrrreenntt__tteesstt, iiss__ppaassssiinngg, ssuummmmaarryy, ddeettaaiillss, ttooddoo,
ffiinndd__TTOODDOO, iinn__ttooddoo, ttooddoo__ssttaarrtt, "todo_end", ccaalllleerr
EXIT CODES #
THREADS #
MEMORY #
EXAMPLES #
SEE ALSO #
INTERNALS #
LEGACY #
EXTERNAL #
AUTHORS #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt::::BBuuiillddeerr::::FFoorrmmaatttteerr -- TTeesstt::::BBuuiillddeerr ssuubbccllaassss ooff TTeesstt22::::FFoorrmmaatttteerr::::TTAAPP
DESCRIPTION #
SYNOPSIS #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt::::BBuuiillddeerr::::IIOO::::SSccaallaarr -- AA ccooppyy ooff IIOO::::SSccaallaarr ffoorr TTeesstt::::BBuuiillddeerr
DESCRIPTION #
COPYRIGHT and LICENSE
Construction
new [ARGS...]
open [SCALARREF]
opened
close
Input and output
flush
getc
getline
getlines
print ARGS..
read BUF, NBYTES, [OFFSET]
write BUF, NBYTES, [OFFSET]
sysread BUF, LEN, [OFFSET]
syswrite BUF, NBYTES, [OFFSET]
Seeking/telling and other attributes
autoflush
binmode
clearerr
eof
seek OFFSET, WHENCE
sysseek OFFSET, WHENCE
tell
use_RS [YESNO]
setpos POS
getpos
sref
WARNINGS #
VERSION #
AUTHORS #
Primary Maintainer
Principal author
Other contributors
SEE ALSO #
TTeesstt::::BBuuiillddeerr::::MMoodduullee -- BBaassee ccllaassss ffoorr tteesstt mmoodduulleess
SYNOPSIS #
DESCRIPTION #
Importing
Builder
SEE ALSO #
TTeesstt::::BBuuiillddeerr::::TTeesstteerr -- tteesstt tteessttssuuiitteess tthhaatt hhaavvee bbeeeenn bbuuiilltt wwiitthh TTeesstt::::BBuuiillddeerr
SYNOPSIS #
DESCRIPTION #
Functions
test_out, test_err
test_fail
test_diag
test_test, title (synonym 'name', 'label'), skip_out, skip_err
line_num
color
BUGS #
AUTHOR #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
NOTES #
SEE ALSO #
TTeesstt::::BBuuiillddeerr::::TTeesstteerr::::CCoolloorr -- ttuurrnn oonn ccoolloouurr iinn TTeesstt::::BBuuiillddeerr::::TTeesstteerr
SYNOPSIS #
DESCRIPTION #
AUTHOR #
BUGS #
SEE ALSO #
TTeesstt::::BBuuiillddeerr::::TTooddooDDiiaagg -- TTeesstt::::BBuuiillddeerr ssuubbccllaassss ooff TTeesstt22::::EEvveenntt::::DDiiaagg
DESCRIPTION #
SYNOPSIS #
SOURCE #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
AUTHORS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt::::HHaarrnneessss -- RRuunn PPeerrll ssttaannddaarrdd tteesstt ssccrriippttss wwiitthh ssttaattiissttiiccss
VERSION #
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
runtests( @test_files )
execute_tests( tests => \@test_files, out => \*FH )
EXPORT #
ENVIRONMENT VARIABLES THAT TAP::HARNESS::COMPATIBLE SETS #
“HARNESS_ACTIVE”, “HARNESS_VERSION” #
ENVIRONMENT VARIABLES THAT AFFECT TEST::HARNESS #
“HARNESS_PERL_SWITCHES”, “HARNESS_TIMER”, “HARNESS_VERBOSE”, #
"HARNESS_OPTIONS", "j<n>", "c", "a<file.tgz>",
"fPackage-With-Dashes", "HARNESS_SUBCLASS",
“HARNESS_SUMMARY_COLOR_SUCCESS”, “HARNESS_SUMMARY_COLOR_FAIL” #
Taint Mode
SEE ALSO #
BUGS #
AUTHORS #
LICENCE AND COPYRIGHT #
TTeesstt::::MMoorree -- yyeett aannootthheerr ffrraammeewwoorrkk ffoorr wwrriittiinngg tteesstt ssccrriippttss
SYNOPSIS #
DESCRIPTION #
I love it when a plan comes together
ddoonnee__tteessttiinngg
Test names
I'm ok, you're not ok.
ookk
iiss, iissnntt
lliikkee
uunnlliikkee
ccmmpp__ookk
ccaann__ookk
iissaa__ookk
nneeww__ookk
ssuubbtteesstt
ppaassss, ffaaiill
Module tests
rreeqquuiirree__ookk
uussee__ookk
Complex data structures
iiss__ddeeeeppllyy
Diagnostics
ddiiaagg, nnoottee
eexxppllaaiinn
Conditional tests
SSKKIIPP:: BBLLOOCCKK #
TTOODDOO:: BBLLOOCCKK, ttooddoo__sskkiipp
When do I use SKIP vs. TODO?
Test control
BBAAIILL__OOUUTT #
Discouraged comparison functions
eeqq__aarrrraayy
eeqq__hhaasshh
eeqq__sseett
Extending and Embedding Test::More
bbuuiillddeerr
EXIT CODES #
COMPATIBILITY #
subtests, "done_testing()", "cmp_ok()", "new_ok()" "note()" and
"explain()"
CAVEATS and NOTES
utf8 / "Wide character in print", Overloaded objects, Threads
HISTORY #
SEE ALSO #
ALTERNATIVES #
ADDITIONAL LIBRARIES #
OTHER COMPONENTS #
BUNDLES #
AUTHORS #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
BUGS #
SOURCE #
COPYRIGHT #
TTeesstt::::SSiimmppllee -- BBaassiicc uuttiilliittiieess ffoorr wwrriittiinngg tteessttss..
SYNOPSIS #
DESCRIPTION #
ookk
EXAMPLE #
CAVEATS #
NOTES #
HISTORY #
SEE ALSO #
Test::More
AUTHORS #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt::::TTeesstteerr -- EEaassee tteessttiinngg tteesstt mmoodduulleess bbuuiilltt wwiitthh TTeesstt::::BBuuiillddeerr
SYNOPSIS #
DESCRIPTION #
HOW TO USE (THE EASY WAY) #
HOW TO USE (THE HARD WAY) #
TEST RESULTS #
ok, actual_ok, name, type, reason, diag, depth
SPACES AND TABS #
COLOUR #
EXPORTED FUNCTIONS #
HOW IT WORKS #
CAVEATS #
SEE ALSO #
AUTHOR #
LICENSE #
TTeesstt::::TTeesstteerr::::CCaappttuurree -- HHeellpp tteessttiinngg tteesstt mmoodduulleess bbuuiilltt wwiitthh TTeesstt::::BBuuiillddeerr
DESCRIPTION #
AUTHOR #
LICENSE #
TTeesstt::::TTeesstteerr::::CCaappttuurreeRRuunnnneerr -- HHeellpp tteessttiinngg tteesstt mmoodduulleess bbuuiilltt wwiitthh TTeesstt::::BBuuiillddeerr
DESCRIPTION #
AUTHOR #
LICENSE #
TTeesstt::::TTuuttoorriiaall -- AA ttuuttoorriiaall aabboouutt wwrriittiinngg rreeaallllyy bbaassiicc tteessttss
DESCRIPTION #
Nuts and bolts of testing.
Where to start?
Names
Test the manual
Sometimes the tests are wrong
Testing lots of values
Informative names
Skipping tests
Todo tests
Testing with taint mode.
FOOTNOTES #
AUTHORS #
MAINTAINERS #
Chad Granum <exodist@cpan.org>
COPYRIGHT #
TTeesstt::::uussee::::ookk -- AAlltteerrnnaattiivvee ttoo TTeesstt::::MMoorree::::uussee__ookk
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
MAINTAINER #
Chad Granum <exodist@cpan.org>
CC0 1.0 Universal
TTeexxtt::::AAbbbbrreevv -- aabbbbrreevv -- ccrreeaattee aann aabbbbrreevviiaattiioonn ttaabbllee ffrroomm aa lliisstt
SYNOPSIS #
DESCRIPTION #
EXAMPLE #
TTeexxtt::::BBaallaanncceedd -- EExxttrraacctt ddeelliimmiitteedd tteexxtt sseeqquueenncceess ffrroomm ssttrriinnggss..
SYNOPSIS #
DESCRIPTION #
General Behaviour in List Contexts
[0], [1], [2]
General Behaviour in Scalar and Void Contexts
A Note About Prefixes
Functions
"extract_delimited", "extract_bracketed", "extract_variable",
[0], [1], [2], "extract_tagged", "reject => $listref", "ignore =>
$listref", "fail => $str", [0], [1], [2], [3], [4], [5],
"gen_extract_tagged", "extract_quotelike", [0], [1], [2], [3],
[4], [5], [6], [7], [8], [9], [10], "extract_quotelike", [0],
[1], [2], [3], [4], [5], [6], [7..10], "extract_codeblock",
"extract_multiple", "gen_delimited_pat", "delimited_pat"
DIAGNOSTICS #
C<Did not find a suitable bracket: "%s">, C<Did not find prefix: /%s/>,
C<Did not find opening bracket after prefix: "%s">, C<No quotelike
operator found after prefix: "%s">, C<Unmatched closing bracket: "%c">,
C<Unmatched opening bracket(s): "%s">, C<Unmatched embedded quote (%s)>,
C<Did not find closing delimiter to match '%s'>, C<Mismatched closing
bracket: expected "%c" but found "%s">, C<No block delimiter found after
quotelike "%s">, C<Did not find leading dereferencer>, C<Bad identifier
after dereferencer>, C<Did not find expected opening bracket at %s>,
C<Improperly nested codeblock at %s>, C<Missing second block for quotelike
"%s">, C<No match found for opening bracket>, C<Did not find opening tag:
/%s/>, C<Unable to construct closing tag to match: /%s/>, C<Found invalid
nested tag: %s>, C<Found unbalanced nested tag: %s>, C<Did not find closing
tag>
EXPORTS #
Default Exports, Optional Exports, Export Tags, ":ALL"
KNOWN BUGS #
FEEDBACK #
AVAILABILITY #
INSTALLATION #
AUTHOR #
COPYRIGHT #
LICENCE #
VERSION #
DATE #
HISTORY #
TTeexxtt::::PPaarrsseeWWoorrddss -- ppaarrssee tteexxtt iinnttoo aann aarrrraayy ooff ttookkeennss oorr aarrrraayy ooff aarrrraayyss
SYNOPSIS #
DESCRIPTION #
true, false, "delimiters"
EXAMPLES #
0, 1, 2, 3, 4, 5
SEE ALSO #
AUTHORS #
COPYRIGHT AND LICENSE #
TTeexxtt::::TTaabbss -- eexxppaanndd aanndd uunneexxppaanndd ttaabbss lliikkee uunniixx eexxppaanndd((11)) aanndd uunneexxppaanndd((11))
SYNOPSIS #
DESCRIPTION #
EXPORTS #
expand, unexpand, $tabstop
EXAMPLE #
BUGS #
LICENSE #
TTeexxtt::::WWrraapp -- lliinnee wwrraappppiinngg ttoo ffoorrmm ssiimmppllee ppaarraaggrraapphhss
SYNOPSIS #
DESCRIPTION #
OVERRIDES #
EXAMPLES #
SEE ALSO #
AUTHOR #
LICENSE #
TThhrreeaadd -- MMaanniippuullaattee tthhrreeaaddss iinn PPeerrll ((ffoorr oolldd ccooddee oonnllyy))
DEPRECATED #
HISTORY #
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
$thread = Thread->new(\&start_sub), $thread =
Thread->new(\&start_sub, LIST), lock VARIABLE, async BLOCK;,
Thread->self, Thread->list, cond_wait VARIABLE, cond_signal VARIABLE,
cond_broadcast VARIABLE, yield
METHODS #
join, detach, equal, tid, done
DEFUNCT #
lock(\&sub), eval, flags
SEE ALSO #
TThhrreeaadd::::QQuueeuuee -- TThhrreeaadd--ssaaffee qquueeuueess
VERSION #
SYNOPSIS #
DESCRIPTION #
Ordinary scalars, Array refs, Hash refs, Scalar refs, Objects based
on the above
QUEUE CREATION #
->nneeww(()), ->new(LIST)
BASIC METHODS #
->enqueue(LIST), ->ddeeqquueeuuee(()), ->dequeue(COUNT), ->ddeeqquueeuuee__nnbb(()),
->dequeue_nb(COUNT), ->dequeue_timed(TIMEOUT),
->dequeue_timed(TIMEOUT, COUNT), ->ppeennddiinngg(()), ->limit, ->eenndd(())
ADVANCED METHODS #
->ppeeeekk(()), ->peek(INDEX), ->insert(INDEX, LIST), ->eexxttrraacctt(()),
->extract(INDEX), ->extract(INDEX, COUNT)
NOTES #
LIMITATIONS #
SEE ALSO #
MAINTAINER #
LICENSE #
TThhrreeaadd::::SSeemmaapphhoorree -- TThhrreeaadd--ssaaffee sseemmaapphhoorreess
VERSION #
SYNOPSIS #
DESCRIPTION #
METHODS #
->nneeww(()), ->new(NUMBER), ->ddoowwnn(()), ->down(NUMBER), ->ddoowwnn__nnbb(()),
->down_nb(NUMBER), ->ddoowwnn__ffoorrccee(()), ->down_force(NUMBER),
->down_timed(TIMEOUT), ->down_timed(TIMEOUT, NUMBER), ->uupp(()),
->up(NUMBER)
NOTES #
SEE ALSO #
MAINTAINER #
LICENSE #
TTiiee::::AArrrraayy -- bbaassee ccllaassss ffoorr ttiieedd aarrrraayyss
SYNOPSIS #
DESCRIPTION #
TIEARRAY classname, LIST, STORE this, index, value, FETCH this,
index, FETCHSIZE this, STORESIZE this, count, EXTEND this, count,
EXISTS this, key, DELETE this, key, CLEAR this, DESTROY this, PUSH
this, LIST, POP this, SHIFT this, UNSHIFT this, LIST, SPLICE this,
offset, length, LIST
CAVEATS #
AUTHOR #
TTiiee::::FFiillee -- AAcccceessss tthhee lliinneess ooff aa ddiisskk ffiillee vviiaa aa PPeerrll aarrrraayy
SYNOPSIS #
DESCRIPTION #
"recsep"
"autochomp"
"mode"
"memory"
"dw_size"
Option Format
Public Methods
"flock"
"autochomp"
"defer", "flush", "discard", and "autodefer"
"offset"
Tying to an already-opened filehandle
Deferred Writing
Autodeferring
CONCURRENT ACCESS TO FILES #
CAVEATS #
SUBCLASSING #
WHAT ABOUT "DB_File"?
AUTHOR #
LICENSE #
WARRANTY #
THANKS #
TODO #
TTiiee::::HHaannddllee -- bbaassee ccllaassss ddeeffiinniittiioonnss ffoorr ttiieedd hhaannddlleess
SYNOPSIS #
DESCRIPTION #
TIEHANDLE classname, LIST, WRITE this, scalar, length, offset, PRINT
this, LIST, PRINTF this, format, LIST, READ this, scalar, length,
offset, READLINE this, GETC this, CLOSE this, OPEN this, filename,
BINMODE this, EOF this, TELL this, SEEK this, offset, whence, DESTROY
this
MORE INFORMATION #
COMPATIBILITY #
TTiiee::::HHaasshh,, TTiiee::::SSttddHHaasshh,, TTiiee::::EExxttrraaHHaasshh -- bbaassee ccllaassss ddeeffiinniittiioonnss ffoorr ttiieedd hhaasshheess
SYNOPSIS #
DESCRIPTION #
TIEHASH classname, LIST, STORE this, key, value, FETCH this, key,
FIRSTKEY this, NEXTKEY this, lastkey, EXISTS this, key, DELETE this,
key, CLEAR this, SCALAR this
Inheriting from TTiiee::::SSttddHHaasshh
Inheriting from TTiiee::::EExxttrraaHHaasshh
"SCALAR", "UNTIE" and "DESTROY"
MORE INFORMATION #
TTiiee::::HHaasshh::::NNaammeeddCCaappttuurree -- NNaammeedd rreeggeexxpp ccaappttuurree bbuuffffeerrss
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
TTiiee::::MMeemmooiizzee -- aadddd ddaattaa ttoo hhaasshh wwhheenn nneeeeddeedd
SYNOPSIS #
DESCRIPTION #
Inheriting from TTiiee::::MMeemmooiizzee
EXAMPLE #
BUGS #
AUTHOR #
TTiiee::::RReeffHHaasshh -- UUssee rreeffeerreenncceess aass hhaasshh kkeeyyss
VERSION #
SYNOPSIS #
DESCRIPTION #
EXAMPLE #
THREAD SUPPORT #
STORABLE SUPPORT #
SEE ALSO #
SUPPORT #
AUTHORS #
CONTRIBUTORS #
COPYRIGHT AND LICENCE #
TTiiee::::SSccaallaarr,, TTiiee::::SSttddSSccaallaarr -- bbaassee ccllaassss ddeeffiinniittiioonnss ffoorr ttiieedd ssccaallaarrss
SYNOPSIS #
DESCRIPTION #
TIESCALAR classname, LIST, FETCH this, STORE this, value, DESTROY
this
Tie::Scalar vs Tie::StdScalar
MORE INFORMATION #
TTiiee::::SSttddHHaannddllee -- bbaassee ccllaassss ddeeffiinniittiioonnss ffoorr ttiieedd hhaannddlleess
SYNOPSIS #
DESCRIPTION #
TTiiee::::SSuubbssttrrHHaasshh -- FFiixxeedd--ttaabbllee--ssiizzee,, ffiixxeedd--kkeeyy--lleennggtthh hhaasshhiinngg
SYNOPSIS #
DESCRIPTION #
CAVEATS #
TTiimmee::::HHiiRReess -- HHiigghh rreessoolluuttiioonn aallaarrmm,, sslleeeepp,, ggeettttiimmeeooffddaayy,, iinntteerrvvaall ttiimmeerrss
SYNOPSIS #
DESCRIPTION #
gettimeofday (), usleep ( $useconds ), nanosleep ( $nanoseconds ),
ualarm ( $useconds [, $interval_useconds ] ), tv_interval, time (),
sleep ( $floating_seconds ), alarm ( $floating_seconds [,
$interval_floating_seconds ] ), setitimer ( $which, $floating_seconds
[, $interval_floating_seconds ] ), getitimer ( $which ),
clock_gettime ( $which ), clock_getres ( $which ), clock_nanosleep (
$which, $nanoseconds, $flags = 0), cclloocckk(()), stat, stat FH, stat EXPR,
lstat, lstat FH, lstat EXPR, utime LIST
EXAMPLES #
C API #
DIAGNOSTICS #
useconds or interval more than ...
negative time not invented yet
internal error: useconds < 0 (unsigned ... signed ...)
useconds or uinterval equal to or more than 1000000
unimplemented in this platform
CAVEATS #
SEE ALSO #
AUTHORS #
COPYRIGHT AND LICENSE #
TTiimmee::::LLooccaall -- EEffffiicciieennttllyy ccoommppuuttee ttiimmee ffrroomm llooccaall aanndd GGMMTT ttiimmee
VERSION #
SYNOPSIS #
DESCRIPTION #
FUNCTIONS #
"timelocal_posix()" and "timegm_posix()"
"timelocal_modern()" and "timegm_modern()"
"timelocal()" and "timegm()"
"timelocal_nocheck()" and "timegm_nocheck()"
Year Value Interpretation
Limits of time_t
Ambiguous Local Times (DST)
Non-Existent Local Times (DST)
Negative Epoch Values
IMPLEMENTATION #
AUTHORS EMERITUS #
BUGS #
SOURCE #
AUTHOR #
CONTRIBUTORS #
COPYRIGHT AND LICENSE #
TTiimmee::::PPiieeccee -- OObbjjeecctt OOrriieenntteedd ttiimmee oobbjjeeccttss
SYNOPSIS #
DESCRIPTION #
USAGE #
Local Locales
Date Calculations
Truncation
Date Comparisons
Date Parsing
YYYY-MM-DDThh:mm:ss
Week Number
Global Overriding
CAVEATS #
Setting $ENV{TZ} in Threads on Win32
Use of epoch seconds
AUTHOR #
COPYRIGHT AND LICENSE #
SEE ALSO #
BUGS #
TTiimmee::::SSeeccoonnddss -- aa ssiimmppllee AAPPII ttoo ccoonnvveerrtt sseeccoonnddss ttoo ootthheerr ddaattee vvaalluueess
SYNOPSIS #
DESCRIPTION #
METHODS #
AUTHOR #
COPYRIGHT AND LICENSE #
Bugs
TTiimmee::::ggmmttiimmee -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn ggmmttiimmee(()) ffuunnccttiioonn
SYNOPSIS #
DESCRIPTION #
NOTE #
AUTHOR #
TTiimmee::::llooccaallttiimmee -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn llooccaallttiimmee(()) ffuunnccttiioonn
SYNOPSIS #
DESCRIPTION #
NOTE #
AUTHOR #
TTiimmee::::ttmm -- iinntteerrnnaall oobbjjeecctt uusseedd bbyy TTiimmee::::ggmmttiimmee aanndd TTiimmee::::llooccaallttiimmee
SYNOPSIS #
DESCRIPTION #
AUTHOR #
UUNNIIVVEERRSSAALL -- bbaassee ccllaassss ffoorr AALLLL ccllaasssseess ((bblleesssseedd rreeffeerreenncceess))
SYNOPSIS #
DESCRIPTION #
"$obj->isa( TYPE )", "CLASS->isa( TYPE )", "eval { VAL->isa( TYPE )
}", "TYPE", $obj, "CLASS", "VAL", "$obj->DOES( ROLE )", "CLASS->DOES(
ROLE )", "$obj->can( METHOD )", "CLASS->can( METHOD )", "eval {
VAL->can( METHOD ) }", "VERSION ( [ REQUIRE ] )"
WARNINGS #
EXPORTS #
UUnniiccooddee::::CCoollllaattee -- UUnniiccooddee CCoollllaattiioonn AAllggoorriitthhmm
SYNOPSIS #
DESCRIPTION #
Constructor and Tailoring
UCA_Version, alternate, backwards, entry, hangul_terminator,
highestFFFF, identical, ignoreChar, ignoreName, ignore_level2,
katakana_before_hiragana, level, long_contraction, minimalFFFE,
normalization, overrideCJK, overrideHangul, overrideOut,
preprocess, rearrange, rewrite, suppress, table, undefChar,
undefName, upper_before_lower, variable
Methods for Collation
"@sorted = $Collator->sort(@not_sorted)", "$result =
$Collator->cmp($a, $b)", "$result = $Collator->eq($a, $b)",
"$result = $Collator->ne($a, $b)", "$result = $Collator->lt($a,
$b)", "$result = $Collator->le($a, $b)", "$result =
$Collator->gt($a, $b)", "$result = $Collator->ge($a, $b)",
"$sortKey = $Collator->getSortKey($string)", "$sortKeyForm =
$Collator->viewSortKey($string)"
Methods for Searching
"$position = $Collator->index($string, $substring[, $position])",
"($position, $length) = $Collator->index($string, $substring[,
$position])", "$match_ref = $Collator->match($string,
$substring)", "($match) = $Collator->match($string,
$substring)", "@match = $Collator->gmatch($string, $substring)",
"$count = $Collator->subst($string, $substring, $replacement)",
"$count = $Collator->gsubst($string, $substring, $replacement)"
Other Methods
"%old_tailoring = $Collator->change(%new_tailoring)",
"$modified_collator = $Collator->change(%new_tailoring)",
"$version = $Collator->version()", "UCA_Version()",
"Base_Unicode_Version()"
EXPORT #
INSTALL #
CAVEATS #
Normalization, Conformance Test
AUTHOR, COPYRIGHT AND LICENSE #
SEE ALSO #
Unicode Collation Algorithm - UTS #10, The Default Unicode Collation
Element Table (DUCET), The conformance test for the UCA, Hangul
Syllable Type, Unicode Normalization Forms - UAX #15, Unicode Locale
Data Markup Language (LDML) - UTS #35
UUnniiccooddee::::CCoollllaattee::::CCJJKK::::BBiigg55 -- wweeiigghhttiinngg CCJJKK UUnniiffiieedd IIddeeooggrraapphhss ffoorr UUnniiccooddee::::CCoollllaattee
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
CLDR - Unicode Common Locale Data Repository, Unicode Locale Data
Markup Language (LDML) - UTS #35, Unicode::Collate,
Unicode::Collate::Locale
UUnniiccooddee::::CCoollllaattee::::CCJJKK::::GGBB22331122 -- wweeiigghhttiinngg CCJJKK UUnniiffiieedd IIddeeooggrraapphhss ffoorr UUnniiccooddee::::CCoollllaattee
SYNOPSIS #
DESCRIPTION #
CAVEAT #
SEE ALSO #
CLDR - Unicode Common Locale Data Repository, Unicode Locale Data
Markup Language (LDML) - UTS #35, Unicode::Collate,
Unicode::Collate::Locale
UUnniiccooddee::::CCoollllaattee::::CCJJKK::::JJIISSXX00220088 -- wweeiigghhttiinngg JJIISS KKAANNJJII ffoorr UUnniiccooddee::::CCoollllaattee
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
Unicode::Collate, Unicode::Collate::Locale
UUnniiccooddee::::CCoollllaattee::::CCJJKK::::KKoorreeaann -- wweeiigghhttiinngg CCJJKK UUnniiffiieedd IIddeeooggrraapphhss ffoorr UUnniiccooddee::::CCoollllaattee
SYNOPSIS #
DESCRIPTION #
SEE ALSO #
CLDR - Unicode Common Locale Data Repository, Unicode Locale Data
Markup Language (LDML) - UTS #35, Unicode::Collate,
Unicode::Collate::Locale
UUnniiccooddee::::CCoollllaattee::::CCJJKK::::PPiinnyyiinn -- wweeiigghhttiinngg CCJJKK UUnniiffiieedd IIddeeooggrraapphhss ffoorr UUnniiccooddee::::CCoollllaattee
SYNOPSIS #
DESCRIPTION #
CAVEAT #
SEE ALSO #
CLDR - Unicode Common Locale Data Repository, Unicode Locale Data
Markup Language (LDML) - UTS #35, Unicode::Collate,
Unicode::Collate::Locale
UUnniiccooddee::::CCoollllaattee::::CCJJKK::::SSttrrookkee -- wweeiigghhttiinngg CCJJKK UUnniiffiieedd IIddeeooggrraapphhss ffoorr UUnniiccooddee::::CCoollllaattee
SYNOPSIS #
DESCRIPTION #
CAVEAT #
SEE ALSO #
CLDR - Unicode Common Locale Data Repository, Unicode Locale Data
Markup Language (LDML) - UTS #35, Unicode::Collate,
Unicode::Collate::Locale
UUnniiccooddee::::CCoollllaattee::::CCJJKK::::ZZhhuuyyiinn -- wweeiigghhttiinngg CCJJKK UUnniiffiieedd IIddeeooggrraapphhss ffoorr UUnniiccooddee::::CCoollllaattee
SYNOPSIS #
DESCRIPTION #
CAVEAT #
SEE ALSO #
CLDR - Unicode Common Locale Data Repository, Unicode Locale Data
Markup Language (LDML) - UTS #35, Unicode::Collate,
Unicode::Collate::Locale
UUnniiccooddee::::CCoollllaattee::::LLooccaallee -- LLiinngguuiissttiicc ttaaiilloorriinngg ffoorr DDUUCCEETT vviiaa UUnniiccooddee::::CCoollllaattee
SYNOPSIS #
DESCRIPTION #
Constructor
Methods
"$Collator->getlocale", "$Collator->locale_version"
A list of tailorable locales
A list of variant codes and their aliases
INSTALL #
CAVEAT #
Tailoring is not maximum, Collation reordering is not supported
Reference
AUTHOR #
SEE ALSO #
Unicode Collation Algorithm - UTS #10, The Default Unicode Collation
Element Table (DUCET), Unicode Locale Data Markup Language (LDML) -
UTS #35, CLDR - Unicode Common Locale Data Repository,
Unicode::Collate, Unicode::Normalize
UUnniiccooddee::::NNoorrmmaalliizzee -- UUnniiccooddee NNoorrmmaalliizzaattiioonn FFoorrmmss
SYNOPSIS #
DESCRIPTION #
Normalization Forms
"$NFD_string = NFD($string)", "$NFC_string = NFC($string)",
"$NFKD_string = NFKD($string)", "$NFKC_string = NFKC($string)",
"$FCD_string = FCD($string)", "$FCC_string = FCC($string)",
"$normalized_string = normalize($form_name, $string)"
Decomposition and Composition
"$decomposed_string = decompose($string [, $useCompatMapping])",
"$reordered_string = reorder($string)", "$composed_string =
compose($string)", "($processed, $unprocessed) =
splitOnLastStarter($normalized)", "$processed =
normalize_partial($form, $unprocessed)", "$processed =
NFD_partial($unprocessed)", "$processed =
NFC_partial($unprocessed)", "$processed =
NFKD_partial($unprocessed)", "$processed =
NFKC_partial($unprocessed)"
Quick Check
"$result = checkNFD($string)", "$result = checkNFC($string)",
"$result = checkNFKD($string)", "$result = checkNFKC($string)",
"$result = checkFCD($string)", "$result = checkFCC($string)",
"$result = check($form_name, $string)"
Character Data
"$canonical_decomposition = getCanon($code_point)",
"$compatibility_decomposition = getCompat($code_point)",
"$code_point_composite = getComposite($code_point_here,
$code_point_next)", "$combining_class =
getCombinClass($code_point)", "$may_be_composed_with_prev_char =
isComp2nd($code_point)", "$is_exclusion =
isExclusion($code_point)", "$is_singleton =
isSingleton($code_point)", "$is_non_starter_decomposition =
isNonStDecomp($code_point)", "$is_Full_Composition_Exclusion =
isComp_Ex($code_point)", "$NFD_is_NO = isNFD_NO($code_point)",
"$NFC_is_NO = isNFC_NO($code_point)", "$NFC_is_MAYBE =
isNFC_MAYBE($code_point)", "$NFKD_is_NO =
isNFKD_NO($code_point)", "$NFKC_is_NO = isNFKC_NO($code_point)",
"$NFKC_is_MAYBE = isNFKC_MAYBE($code_point)"
EXPORT #
CAVEATS #
Perl's version vs. Unicode version, Correction of decomposition
mapping, Revised definition of canonical composition
AUTHOR #
LICENSE #
SEE ALSO #
<http://www.unicode.org/reports/tr15/>,
<http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt>,
<http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt>,
<http://www.unicode.org/Public/UNIDATA/NormalizationCorrections.txt>,
<http://www.unicode.org/review/pr-29.html>,
<http://www.unicode.org/notes/tn5/>
UUnniiccooddee::::UUCCDD -- UUnniiccooddee cchhaarraacctteerr ddaattaabbaassee
SYNOPSIS #
DESCRIPTION #
code point argument
cchhaarriinnffoo(())
ccooddee, nnaammee, ccaatteeggoorryy, ccoommbbiinniinngg, bbiiddii, ddeeccoommppoossiittiioonn, ddeecciimmaall, ddiiggiitt,
nnuummeerriicc, mmiirrrroorreedd, uunniiccooddee1100, ccoommmmeenntt, uuppppeerr, lloowweerr, ttiittllee, bblloocckk,
ssccrriipptt
cchhaarrpprroopp(())
Block, Decomposition_Mapping, Name_Alias, Numeric_Value,
Script_Extensions
cchhaarrpprrooppss__aallll(())
cchhaarrbblloocckk(())
cchhaarrssccrriipptt(())
cchhaarrbblloocckkss(())
cchhaarrssccrriippttss(())
cchhaarriinnrraannggee(())
ggeenneerraall__ccaatteeggoorriieess(())
bbiiddii__ttyyppeess(())
ccoommppeexxccll(())
ccaasseeffoolldd(())
ccooddee, ffuullll, ssiimmppllee, mmaappppiinngg, ssttaattuuss, ** If you use this "I" mapping, **
If you exclude this "I" mapping, ttuurrkkiicc
aallll__ccaasseeffoollddss(())
ccaasseessppeecc(())
ccooddee, lloowweerr, ttiittllee, uuppppeerr, ccoonnddiittiioonn
nnaammeeddsseeqq(())
nnuumm(())
pprroopp__aalliiaasseess(())
pprroopp__vvaalluueess(())
pprroopp__vvaalluuee__aalliiaasseess(())
pprroopp__iinnvvlliisstt(())
pprroopp__iinnvvmmaapp(())
""ss"", ""ssll"", "correction", "control", "alternate", "figment",
"abbreviation", ""aa"", ""aall"", ""aaee"", ""aallee"", ""aarr"", ""nn"", ""aadd""
sseeaarrcchh__iinnvvlliisstt(())
Unicode::UCD::UnicodeVersion
BBlloocckkss vveerrssuuss SSccrriippttss
MMaattcchhiinngg SSccrriippttss aanndd BBlloocckkss
Old-style versus new-style block names
Use with older Unicode versions
AUTHOR #
UUsseerr::::ggrreenntt -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn ggeettggrr(()) ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
NOTE #
AUTHOR #
UUsseerr::::ppwweenntt -- bbyy--nnaammee iinntteerrffaaccee ttoo PPeerrll’’ss bbuuiilltt--iinn ggeettppww(()) ffuunnccttiioonnss
SYNOPSIS #
DESCRIPTION #
System Specifics
NOTE #
AUTHOR #
HISTORY #
March 18th, 2000
XXSSLLooaaddeerr -- DDyynnaammiiccaallllyy llooaadd CC lliibbrraarriieess iinnttoo PPeerrll ccooddee
VERSION #
SYNOPSIS #
DESCRIPTION #
Migration from "DynaLoader"
Backward compatible boilerplate
Order of initialization: early llooaadd(())
The most hairy case
DIAGNOSTICS #
"Can't find '%s' symbol in %s", "Can't load '%s' for module %s: %s",
"Undefined symbols present after loading %s: %s"
LIMITATIONS #
KNOWN BUGS #
BUGS #
SEE ALSO #
AUTHORS #
COPYRIGHT & LICENSE #
AAUUXXIILLIIAARRYY DDOOCCUUMMEENNTTAATTIIOONN #
Here should be listed all the extra programs' documentation, but they
don't all have manual pages yet:
h2ph
h2xs
perlbug
pl2pm
pod2html
pod2man
splain
xsubpp
AAUUTTHHOORR #
Larry Wall <_l_a_r_r_y_@_w_a_l_l_._o_r_g>, with the help of oodles of other folks.
perl v5.36.3 2024-03-20 PERLTOC(1)