NAME
perltoc - perl documentation table of contents
DESCRIPTION
This page provides a brief table of contents for the rest of the Perl documentation set. It is meant to be scanned quickly or grepped through to locate the proper section you're looking for. BBAASSIICC DDOOCCUUMMEENNTTAATTIIOONNppeerrll - PPrraaccttiiccaall EExxttrraaccttiioonn aanndd RReeppoorrtt LLaanngguuaaggee
SYNOPSIS
Overview Tutorials Reference Manual Internals and C Language Interface MiscellaneousLanguage-Specific
Platform-Specific
DESCRIPTION
AVAILABILITY ENVIRONMENT AUTHOR FILESSEE ALSO
DIAGNOSTICSBUGS
NOTES
ppeerrlliinnttrroo -- aa bbrriieeff iinnttrroodduuccttiioonn aanndd oovveerrvviieeww ooff PPeerrll
DESCRIPTION
What is Perl? Running Perl programs 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 AUTHORppeerrllrreeffttuutt - 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 Conditionsppeerrllddsscc - 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 strict" DEBUGGINGCODE 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 TiesSEE ALSO
AUTHORppeerrllllooll - MMaanniippuullaattiinngg AArrrraayyss ooff AArrrraayyss iinn PPeerrll
DESCRIPTION
Declaration and Access of Arrays of Arrays Growing Your Own Access and Printing SlicesSEE ALSO
AUTHORppeerrllrreeqquuiicckk - 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 operatorBUGS
SEE ALSO
AUTHOR AND COPYRIGHT Acknowledgmentsppeerrllrreettuutt - PPeerrll rreegguullaarr eexxpprreessssiioonnss ttuuttoorriiaall
DESCRIPTION
Part 1: The basics Simple word matching Using character classes Matching this or that Grouping things and hierarchical matching Extracting matches Matching repetitions Building a regexp Using regular expressions in Perl Part 2: Power tools More on characters, strings, and character classes Compiling and saving regular expressions Embedding comments and modifiers in a regular expressionNon-capturing groupings
Looking ahead and looking behind Using independent subexpressions to prevent backtracking Conditional expressions A bit of magic: executing Perl code in a regular expression Pragmas and debuggingBUGS
SEE ALSO
AUTHOR AND COPYRIGHT Acknowledgmentsppeerrllbboooott - BBeeggiinnnneerr''ss OObbjjeecctt-OOrriieenntteedd TTuuttoorriiaall
DESCRIPTION
If we could talk to the animals... Introducing the method invocation arrow Invoking a barnyard The extra parameter of method invocation Calling a second method to simplify things Inheriting the windpipes A few notes about @ISA Overriding the methods Starting the search from a different place The SUPER way of doing things Where we're at so far...A horse is a horse, of course of course - or is it?
Invoking an instance method Accessing the instance data How to build a horse Inheriting the constructor Making a method work with either classes or instances Adding parameters to a method More interesting instances A horse of a different color SummarySEE ALSO
COPYRIGHTppeerrllttoooott - TToomm''ss oobbjjeecctt-oorriieenntteedd ttuuttoorriiaall ffoorr ppeerrll
DESCRIPTION
Creating a Class Object Representation Class Interface Constructors and Instance Methods Planning for the Future: Better Constructors Destructors Other Object Methods Class Data Accessing Class Data Debugging Methods Class Destructors Documenting the Interface Aggregation Inheritance Overridden Methods Multiple Inheritance UNIVERSAL: The Root of All Objects Alternate Object Representations Arrays as Objects Closures as Objects AUTOLOAD: Proxy Methods Autoloaded Data Methods Inherited Autoloaded Data Methods Metaclassical Tools Class::Struct Data Members as VariablesNOTES
Object TerminologySEE ALSO
AUTHOR AND COPYRIGHT COPYRIGHT Acknowledgmentsppeerrllttoooocc - TToomm''ss OOOO TTuuttoorriiaall ffoorr CCllaassss DDaattaa iinn PPeerrll
DESCRIPTION
Class Data in a Can Class Data as Package Variables Putting All Your Eggs in One Basket Inheritance ConcernsThe Eponymous Meta-Object
Indirect References to Class Data Monadic Classes Translucent Attributes Class Data as Lexical Variables Privacy and ResponsibilityFile-Scoped Lexicals
More Inheritance Concerns Locking the Door and Throwing Away the Key Translucency RevisitedNOTES
SEE ALSO
AUTHOR AND COPYRIGHT ACKNOWLEDGEMENTS HISTORYppeerrllbboott - BBaagg''oo OObbjjeecctt TTrriicckkss ((tthhee BBOOTT))
DESCRIPTION
OO SCALING TIPS INSTANCE VARIABLES SCALAR INSTANCE VARIABLES INSTANCE VARIABLE INHERITANCE OBJECT RELATIONSHIPS OVERRIDING SUPERCLASS METHODS USING RELATIONSHIP WITH SDBM THINKING OF CODE REUSECLASS CONTEXT AND THE OBJECT
INHERITING A CONSTRUCTOR DELEGATIONSEE ALSO
ppeerrllssttyyllee - PPeerrll ssttyyllee gguuiiddee
DESCRIPTION
ppeerrllcchheeaatt - PPeerrll 55 CChheeaatt SShheeeett
DESCRIPTION
The sheet ACKNOWLEDGEMENTS AUTHORSEE ALSO
ppeerrllttrraapp - PPeerrll ttrraappss ffoorr tthhee uunnwwaarryy
DESCRIPTION
Awk Traps C/C++ Traps Sed Traps Shell Traps Perl Traps Perl4 to Perl5 Traps Discontinuance, Deprecation, and BugFix traps, Parsing Traps,Numerical Traps, General data type traps, Context Traps -
scalar, list contexts, Precedence Traps, General Regular Expression Traps using s///, etc, Subroutine, Signal, Sorting Traps, OS Traps, DBM Traps, Unclassified Traps Discontinuance, Deprecation, and BugFix trapsDiscontinuance, Deprecation, BugFix, Discontinuance, Discontin-
uance, Discontinuance, BugFix, Discontinuance, Discontinuance,BugFix, Discontinuance, Deprecation, Discontinuance, Discontin-
uance Parsing Traps Parsing, Parsing, Parsing, Parsing, Parsing Numerical Traps Numerical, Numerical, Numerical, Bitwise string ops General data type traps (Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String), (Constants), (Scalars), (Variable Suicide)Context Traps - scalar, list contexts
(list context), (scalar context), (scalar context), (list, builtin) Precedence Traps Precedence, Precedence, Precedence, Precedence, Precedence, Precedence, Precedence General Regular Expression Traps using s///, etc. Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression Subroutine, Signal, Sorting Traps (Signals), (Sort Subroutine), warn() won't let you specify a filehandle OS Traps (SysV), (SysV) Interpolation Traps Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation DBM Traps DBM, DBM Unclassified Traps "require"/"do" trap using returned value, "split" on empty string with LIMIT specifiedppeerrllddeebbttuutt - PPeerrll ddeebbuuggggiinngg ttuuttoorriiaall
DESCRIPTION
use strictLooking at data and -w and v
help Stepping through code Placeholder for a, w, t, T REGULAR EXPRESSIONSOUTPUT TIPS
CGI GUIs SUMMARYSEE ALSO
AUTHOR CONTRIBUTORSppeerrllffaaqq - ffrreeqquueennttllyy aasskkeedd qquueessttiioonnss aabboouutt PPeerrll (($$DDaattee:: 22000033//0011//3311
1177::3377::1177 $$))
DESCRIPTION
Where to get the perlfaq How to contribute to the perlfaq What will happen if you mail your Perl programming problems to the authors Credits Author and Copyright Information Bundled Distributions Disclaimer Table of Contentsperlfaq - this document, perlfaq1 - General Questions About Perl,
perlfaq2 - Obtaining and Learning about Perl, perlfaq3 - Program-
ming Tools, perlfaq4 - Data Manipulation, perlfaq5 - Files and For-
mats, perlfaq6 - Regular Expressions, perlfaq7 - General Perl Lan-
guage Issues, perlfaq8 - System Interaction, perlfaq9 - 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: Networkingppeerrllffaaqq11 - GGeenneerraall QQuueessttiioonnss AAbboouutt PPeerrll (($$RReevviissiioonn:: 11..1144 $$,, $$DDaattee::
22000033//1111//2233 0088::0022::2299 $$))
DESCRIPTION
What is Perl? Who supports Perl? Who develops it? Why is it free? Which version of Perl should I use? What are perl4 and perl5? What is Ponie? What is perl6? How stable is Perl? 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"? Is it a Perl program or a Perl script? What is a JAPH? Where can I get a list of Larry Wall witticisms? How can I convince my sysadmin/supervisor/employees to use version 5/5.6.1/Perl instead of some other language? AUTHOR AND COPYRIGHTppeerrllffaaqq22 - OObbttaaiinniinngg aanndd LLeeaarrnniinngg aabboouutt PPeerrll (($$RReevviissiioonn:: 11..2255 $$,, $$DDaattee::
22000033//1100//1166 0044::5577::3388 $$))
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 on my system. How can I compile perl? 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 load-
ing/malloc/linking/... failed. How do I make it work? What modules and extensions are available for Perl? What is CPAN? What does CPAN/src/... mean? Is there an ISO or ANSI certified version of Perl? Where can I get information on Perl? What are the Perl newsgroups on Usenet? Where do I post questions? Where should I post source code? Perl BooksReferences, Tutorials, Task-Oriented, Special Topics
Perl in Magazines Perl on the Net: FTP and WWW Access What mailing lists are there for Perl? Archives of comp.lang.perl.misc Where can I buy a commercial version of Perl? Where do I send bug reports? What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? AUTHOR AND COPYRIGHTppeerrllffaaqq33 - PPrrooggrraammmmiinngg TToooollss (($$RReevviissiioonn:: 11..3377 $$,, $$DDaattee:: 22000033//1111//2244
1199::5555::5500 $$))
DESCRIPTION
How do I do (anything)? How can I use Perl interactively? Is there a Perl shell? 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 a ctags for Perl? Is there an IDE or Windows Perl Editor? Komodo, The Object System, Open Perl IDE, PerlBuilder, visiPerl+, OptiPerl, GNU Emacs, MicroEMACS, XEmacs, Jed, Elvis, Vile, Vim, Codewright, MultiEdit, SlickEdit, Bash, Ksh, Tcsh, Zsh, BBEdit and BBEdit Lite, Alpha Where can I get Perl macros for vi?Where can I get perl-mode for emacs?
How can I use curses with Perl? How can I use X or Tk with Perl? How can I generate simple menus without using CGI or Tk? 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 unnecessaryquotes and stringification, Pass by reference, Tie large vari-
ables 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 compile Perl into Java?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? [h2xs, xsubpp] 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 COPYRIGHTppeerrllffaaqq44 - DDaattaa MMaanniippuullaattiioonn (($$RReevviissiioonn:: 11..5544 $$,, $$DDaattee:: 22000033//1111//3300
0000::5500::0088 $$))
DESCRIPTION
Data: Numbers Why am I getting long decimals (eg, 19.9499999999999) instead of the numbers I should be getting (eg, 19.95)? Why is int() broken? Why isn't my octal data interpreted correctly? Does Perl have a round() function? What about ceil() and floor()? Trig functions? How do I convert between numeric representations/bases/radixes? How do I convert hexadecimal into decimal, How do I convert from decimal to hexadecimal, How do I convert from octal todecimal, How do I convert from decimal to octal, How do I con-
vert 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 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?What's wrong with always quoting "$vars"?
Why don't my <What is the difference between $array[1] and @array[1]? How can I remove duplicate elements from a list or array? a), b), c), d), e) How can I tell whether a certain element is contained in a list or array? How do I compute the difference of two arrays? How do I compute the intersection of two arrays? How do I test whether two arrays or hashes are equal? How do I find the first array element for which a condition is true? How do I handle linked lists? How do I handle circular lists? How do I shuffle an array randomly? How do I process/modify each element of an array? How do I select a random element from an array? How do I permute N elements of a list? How do I sort an array by (anything)? How do I manipulate arrays of bits? Why does defined() return true on empty arrays and hashes? Data: Hashes (Associative Arrays) How do I process an entire hash? What happens if I add or remove keys from a hash while iterating over it? How do I look up a hash element by value? How can I know how many entries are in a hash? How do I sort a hash (optionally by value instead of key)? How can I always keep my hash sorted? What's the difference between "delete" and "undef" with hashes? Why don't my tied hashes make the defined/exists distinction? How do I reset an each() operation part-way through?
How can I get the unique keys from two hashes? How can I store a multidimensional array in a DBM file? How can I make my hash remember the order I put elements into it? Why does passing a subroutine an undefined element in a hash create it? How can I make the Perl equivalent of a C structure/C++ class/hash or array of hashes or arrays? How can I use a reference as a hash key? Data: Misc How do I handle binary data correctly?How do I determine whether a scalar is a number/whole/inte-
ger/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 COPYRIGHTppeerrllffaaqq55 - FFiilleess aanndd FFoorrmmaattss (($$RReevviissiioonn:: 11..3300 $$,, $$DDaattee:: 22000033//1111//2233
0088::0077::4466 $$))
DESCRIPTION
How do I flush/unbuffer an output filehandle? Why must I do this? How do I change one line in a file/delete a line in a file/insert a line in the middle of a file/append to the beginning of a file? How do I count the number of lines in a file?How can I use Perl's "-i" option from within a program?
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 passfilehandles between subroutines? How do I make an array of file-
handles? How can I use a filehandle indirectly? How can I set up a footer format to be used with write()? How can I write() into a string? How can I output my numbers with commas added? How can I translate tildes (~) in a filename?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 <*>? Is there a leak/bug in glob()? How can I open a file with a leading ">" or trailing blanks? How can I reliably rename a file? How can I lock a file? Why can't I just open(FH, ">file.lock")? I still don't get locking. I just want to increment the number in the file. How can I do this? All I want to do is append a small amount of text to the end of a file. Do I still have to use locking? How do I randomly update a binary file? How do I get a file's timestamp in perl? How do I set a file's timestamp in perl? How do I print to more than one file at once? How can I read in an entire file all at once? How can I read in a file by paragraphs? How can I read a single character from a file? From the keyboard? How can I tell whether there's a character waiting on a filehandle?How do I do a "tail -f" in perl?
How do I dup() a filehandle in Perl? How do I close a file descriptor by number? Why can't I use "C:\temp\foo" in DOS paths? Why doesn't `C:\temp\foo.exe` work? Why doesn't glob("*.*") get all the files?Why does Perl let me delete read-only files? Why does "-i" clobber
protected files? Isn't this a bug in Perl? How do I select a random line from a file? Why do I get weird spaces when I print an array of lines? AUTHOR AND COPYRIGHTppeerrllffaaqq66 - RReegguullaarr EExxpprreessssiioonnss (($$RReevviissiioonn:: 11..2200 $$,, $$DDaattee:: 22000033//0011//0033
2200::0055::2288 $$))
DESCRIPTION
How can I hope to use regular expressions without creating illegi-
ble and unmaintainable code?Comments Outside the Regex, Comments Inside the Regex, Differ-
ent 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?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 pattern that is supplied by the user? AUTHOR AND COPYRIGHTppeerrllffaaqq77 - GGeenneerraall PPeerrll LLaanngguuaaggee IIssssuueess (($$RReevviissiioonn:: 11..1155 $$,, $$DDaattee::
22000033//0077//2244 0022::1177::2211 $$))
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 create a class? How can I tell if a variable is tainted? What's a closure? What is variable suicide and how can I prevent it? How can I pass/return a {Function, FileHandle, Array, Hash, Method, Regex}? Passing Variables and Functions, Passing Filehandles, Passing Regexes, Passing Methods How do I create a static variable? What's the difference between dynamic and lexical (static) scoping? Between local() and my()? How can I access a dynamic variable while a similarly named lexical is in scope? What's the difference between deep and shallow binding?Why doesn't "my($foo) =
How do I redefine a builtin function, operator, or method? What's the difference between calling a function as &foo and foo()? How do I create a switch or case statement? How can I catch accesses to undefined variables, functions, or methods? Why can't a method included in this same file be found? How can I find out my current 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? AUTHOR AND COPYRIGHT;" work right? ppeerrllffaaqq88 - SSyysstteemm IInntteerraaccttiioonn (($$RReevviissiioonn:: 11..1177 $$,, $$DDaattee:: 22000033//0011//2266
1177::4444::0044 $$))
DESCRIPTION
How do I find out which operating system I'm running under? How come exec() 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-block-
ing input How do I decode encrypted password files? How do I start a process in the background? STDIN, STDOUT, and STDERR are shared, Signals, Zombies How do I trap control characters/signals? How do I modify the shadow password file on a Unix system? How do I set the time and date? How can I sleep() or alarm() for under a second? How can I measure time under a second?How can I do an atexit() or setjmp()/longjmp()? (Exception han-
dling) Why doesn't my sockets program work under System V (Solaris)? What does the error message "Protocol not supported" mean? How can I call my system's unique C functions from Perl? Where do I get the include files to do ioctl() or syscall()? Why do setuid perl scripts complain about kernel problems? How can I open a pipe both to and from a command? Why can't I get the output of a command with system()? How can I capture STDERR from an external command? Why doesn't open() return an error when a pipe open fails? What's wrong with using backticks in a void context? How can I call backticks without shell processing? Why can't my script read from STDIN after I gave it EOF (^D onUnix, ^Z on MS-DOS)?
How can I convert my shell script to perl? Can I use perl to run a telnet or ftp session? How can I write expect in Perl? Is there a way to hide perl's command line from programs such as "ps"? I {changed directory, modified my environment} in a perl script. How come the change disappeared when I exited the script? How do I get my changes to be visible? Unix How do I close a process's filehandle without waiting for it to complete? How do I fork a daemon process? How do I find out if I'm running interactively or not? How do I timeout a slow event? How do I set CPU limits? How do I avoid zombies on a Unix system? How do I use an SQL database?How do I make a system() exit on control-C?
How do I open a file without blocking? How do I 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 mod-
ule/library search path? How do I add a directory to my include path (@INC) at runtime? What is socket.ph and where do I get it? AUTHOR AND COPYRIGHTppeerrllffaaqq99 - NNeettwwoorrkkiinngg (($$RReevviissiioonn:: 11..1155 $$,, $$DDaattee:: 22000033//0011//3311 1177::3366::5577 $$))
DESCRIPTION
What is the correct form of response from a CGI script? My CGI script runs from the command line but not the browser. (500 Server Error) How can I get better error messages from a CGI program? How do I remove HTML from a string? How do I extract URLs? How do I download a file from the user's machine? How do I open a file on another machine?How do I make a pop-up menu in HTML?
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 edit my .htpasswd and .htgroup files with Perl? How do I make sure users can't enter values into a form that cause my CGI script to do bad things? How do I parse a mail header? How do I decode a CGI form? How do I check a valid mail address? How do I decode a MIME/BASE64 string? How do I return the user's mail address? How do I send mail? How do I use MIME to make an attachment to a mail message? How do I read mail? How do I find out my hostname/domainname/IP address? How do I fetch a news article or the active newsgroups? How do I fetch/put an FTP file? How can I do RPC in Perl? AUTHOR AND COPYRIGHTppeerrllssyynn - PPeerrll ssyynnttaaxx
DESCRIPTION
Declarations Comments Simple Statements Truth and Falsehood Statement Modifiers Compound Statements Loop Control For Loops Foreach Loops Basic BLOCKs and Switch Statements Goto PODs: Embedded Documentation Plain Old Comments (Not!)ppeerrllddaattaa - PPeerrll ddaattaa ttyyppeess
DESCRIPTION
Variable names Context Scalar values Scalar value constructors List value constructors Subscripts Slices Typeglobs and FilehandlesSEE ALSO
ppeerrlloopp - PPeerrll ooppeerraattoorrss aanndd pprreecceeddeennccee
DESCRIPTION
Operator Precedence and Associativity Terms and List Operators (Leftward) The Arrow OperatorAuto-increment and Auto-decrement
Exponentiation Symbolic Unary Operators Binding Operators Multiplicative Operators Additive Operators Shift Operators Named Unary Operators Relational Operators Equality Operators Bitwise And Bitwise Or and Exclusive OrC-style Logical And
C-style Logical 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
Regexp Quote-Like Operators
?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, 'STRING', qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/,`STRING`, qw/STRING/, s/PATTERN/REPLACEMENT/egimosx, tr/SEARCH-
LIST/REPLACEMENTLIST/cds, y/SEARCHLIST/REPLACEMENTLIST/cds, <", "?RE?", "/RE/", "m/RE/", "s/RE/foo/",, Interpolation of regular expressions, Optimization of regular expressions I/O Operators Constant Folding No-ops
Bitwise String Operators Integer ArithmeticFloating-point Arithmetic
Bigger Numbersppeerrllssuubb - PPeerrll ssuubbrroouuttiinneess
SYNOPSIS
DESCRIPTION
Private Variables via my() Persistent Private Variables Temporary Values via local() Lvalue subroutines Lvalue subroutines are EXPERIMENTAL Passing Symbol Table Entries (typeglobs) When to Still Use local() Pass by Reference Prototypes Constant FunctionsOverriding Built-in Functions
Autoloading Subroutine AttributesSEE ALSO
ppeerrllffuunncc - PPeerrll bbuuiillttiinn ffuunnccttiioonnss
DESCRIPTION
Perl Functions by CategoryFunctions for SCALARs or strings, Regular expressions and pat-
tern 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, Keywordsrelated to scoping, Miscellaneous functions, Functions for pro-
cesses and process groups, Keywords related to perl modules,Keywords related to classes and object-orientedness, Low-level
socket functions, System V interprocess communication func-
tions, Fetching user and group info, Fetching network info,Time-related functions, Functions new in perl5, Functions obso-
leted in perl5 Portability Alphabetical Listing of Perl Functions-X FILEHANDLE, -X EXPR, -X, abs VALUE, abs, accept NEW-
SOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bindSOCKET,NAME, binmode FILEHANDLE, LAYER, binmode FILEHANDLE,
bless REF,CLASSNAME, bless REF, caller EXPR, caller, chdir
EXPR, 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, cos EXPR, cos,
crypt PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MASK,
defined EXPR, defined, delete EXPR, die LIST, do BLOCK, do SUB-
ROUTINE(LIST), do EXPR, dump LABEL, dump, each HASH, eof FILE-
HANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST, exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntlFILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHAN-
DLE,OPERATION, fork, format, formline PICTURE,LIST, getc FILE-
HANDLE, getc, getlogin, getpeername SOCKET, getpgrp PID, getp-
pid, getpriority WHICH,WHO, getpwnam NAME, getgrnam NAME, geth-
ostbyname NAME, getnetbyname NAME, getprotobyname NAME, getp-
wuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr
ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumberNUMBER, getservbyport PORT,PROTO, getpwent, getgrent, gethos-
tent, getnetent, getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, endhostent, endnetent, endprotoent, endservent, getsockname SOCKET, getsockoptSOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, goto LABEL,
goto EXPR, goto &NAME, grep BLOCK LIST, grep EXPR,LIST, hex
EXPR, hex, import, index STR,SUBSTR,POSITION, index STR,SUBSTR, int EXPR, int, ioctl FILEHANDLE,FUNCTION,SCALAR, join EXPR,LIST, keys HASH, kill SIGNAL, LIST, last LABEL, last, lcEXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length, link OLD-
FILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR, lock THING, log EXPR, log, lstat EXPR, lstat, m//, mapBLOCK LIST, map EXPR,LIST, mkdir FILENAME,MASK, mkdir FILENAME,
msgctl ID,CMD,ARG, msgget KEY,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, msgsnd ID,MSG,FLAGS, my EXPR, my TYPE EXPR, my EXPR : ATTRS, my TYPE EXPR : ATTRS, next LABEL, next, no Module VERSION LIST, no Module VERSION, no Module LIST, noModule, oct EXPR, oct, open FILEHANDLE,EXPR, open FILEHAN-
DLE,MODE,EXPR, open FILEHANDLE,MODE,EXPR,LIST, open FILEHAN-
DLE,MODE,REFERENCE, open FILEHANDLE, opendir DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, our EXPR TYPE, our EXPR : ATTRS, ourTYPE EXPR : ATTRS, pack TEMPLATE,LIST, package NAMESPACE, pack-
age, pipe READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR,pos, print FILEHANDLE LIST, print LIST, print, printf FILEHAN-
DLE FORMAT, LIST, printf FORMAT, LIST, prototype FUNCTION, push ARRAY,LIST, q/STRING/, qq/STRING/, qr/STRING/, qx/STRING/, qw/STRING/, quotemeta EXPR, quotemeta, rand EXPR, rand, read FILEHANDLE,SCALAR,LENGTH,OFFSET, read FILEHANDLE,SCALAR,LENGTH, readdir DIRHANDLE, readline EXPR, readlink EXPR, readlink, readpipe EXPR, recv SOCKET,SCALAR,LENGTH,FLAGS, redo LABEL,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///, 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, setsockoptSOCKET,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,OFF-
SET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH, splice ARRAY,OFF-
SET, splice ARRAY, split /PATTERN/,EXPR,LIMIT, split /PAT-
TERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST, for-
mat parameter index, flags, vector flag, (minimum) width, pre-
cision, or maximum width, size, order of arguments, sqrt EXPR, sqrt, srand EXPR, srand, stat FILEHANDLE, stat EXPR, stat,study SCALAR, study, sub NAME BLOCK, sub NAME (PROTO) BLOCK,
sub NAME : ATTRS BLOCK, sub NAME (PROTO) : ATTRS BLOCK, substr
EXPR,OFFSET,LENGTH,REPLACEMENT, substr EXPR,OFFSET,LENGTH, sub-
str EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall NUMBER, LIST,sysopen FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILE-
NAME,MODE,PERMS, sysread FILEHANDLE,SCALAR,LENGTH,OFFSET, sys-
read FILEHANDLE,SCALAR,LENGTH, sysseek FILEHANDLE,POSI-
TION,WHENCE, system LIST, system PROGRAM LIST, syswrite FILE-
HANDLE,SCALAR,LENGTH,OFFSET, syswrite FILEHANDLE,SCALAR,LENGTH, syswrite FILEHANDLE,SCALAR, tell FILEHANDLE, tell, telldirDIRHANDLE, 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, untieVARIABLE, unshift ARRAY,LIST, use Module VERSION LIST, use Mod-
ule VERSION, use Module LIST, use Module, use VERSION, utime LIST, values HASH, vec EXPR,OFFSET,BITS, wait, waitpid PID,FLAGS, wantarray, warn LIST, write FILEHANDLE, write EXPR, write, y///ppeerrllooppeennttuutt - ttuuttoorriiaall oonn ooppeenniinngg tthhiinnggss iinn PPeerrll
DESCRIPTION
Open A la shell Simple Opens Indirect Filehandles Pipe Opens The Minus File Mixing Reads and Writes Filters Open A la C Permissions A la mode Obscure Open TricksRe-Opening Files (dups)
Dispelling the Dweomer Paths as Opens Single Argument Open Playing with STDIN and STDOUT Other I/O IssuesOpening Non-File Files
Opening Named Pipes Opening Sockets Binary Files File Locking IO LayersSEE ALSO
AUTHOR and COPYRIGHT HISTORYppeerrllppaacckkttuutt - ttuuttoorriiaall oonn ""ppaacckk"" and "unpack"
DESCRIPTION
The Basic Principle Packing Text Packing Numbers Integers Unpacking a Stack Frame How to Eat an Egg on a Net 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 Packing and Unpacking C Structures The Alignment Pit Alignment, Take 2 Alignment, Take 3 Pointers for How to Use Them Pack Recipes Funnies Section Authorsppeerrllppoodd - tthhee PPllaaiinn OOlldd DDooccuummeennttaattiioonn ffoorrmmaatt
DESCRIPTION
Ordinary Paragraph Verbatim Paragraph Command Paragraph "=head1 Heading Text", "=head2 Heading Text", "=head3 Heading Text", "=head4 Heading Text", "=over indentlevel", "=item stuff...", "=back", "=cut", "=pod", "=begin formatname", "=endformatname", "=for formatname text...", "=encoding encoding-
name" Formatting Codes"I
" - italic text, "B " - bold text, "C " -
code text, "L
" - a hyperlink, "E " - a character escape, "F
" - used for filenames, "S " - text contains non-breaking spaces, "X
" - an index entry, "Z<>" - a null (zero-effect) formatting code
The Intent Embedding Pods in Perl Modules Hints for Writing PodSEE ALSO
AUTHORppeerrllppooddssppeecc - PPllaaiinn OOlldd DDooccuummeennttaattiioonn:: ffoorrmmaatt ssppeecciiffiiccaattiioonn aanndd nnootteess
DESCRIPTION
Pod Definitions Pod Commands "=head1", "=head2", "=head3", "=head4", "=pod", "=cut", "=over", "=item", "=back", "=begin formatname", "=end formatname", "=for formatname text...", "=encoding encodingname" Pod Formatting Codes"I
" - italic text, "B " - bold text, "C " - code
text, "F
" - style for filenames, "X " - an index entry, "Z<>" - a null (zero-effect) formatting code,
"L
" - a hyperlink, "E " - a character escape, "S
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" - text contains non-breaking spaces SEE ALSO
AUTHORppeerrllrruunn - hhooww ttoo eexxeeccuuttee tthhee PPeerrll iinntteerrpprreetteerr
SYNOPSIS
DESCRIPTION
#! and quoting on non-Unix systems
OS/2, MS-DOS, Win95/NT, Macintosh, VMS
Location of Perl Command Switches-00[octal/hexadecimal], -aa, -CC [[nnuummbbeerr//lliisstt]], -cc, -dd,
-dd::foo[=bar,baz], -DDletters, -DDnumber, -ee commandline, -FFpat-
tern, -hh, -ii[extension], -IIdirectory, -ll[octnum], -mm[-]module,
-MM[-]module, -MM[-]'module ...', -[[mmMM]][-]module=arg[,arg]...,
-nn, -pp, -PP, -ss, -SS, -tt, -TT, -uu, -UU, -vv, -VV, -VV::configvar, -ww,
-WW, -XX, -xx, -xx directory
ENVIRONMENT HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLIO, :bytes, :crlf,:mmap, :perlio, :pop, :raw, :stdio, :unix, :utf8, :win32, PER-
LIODEBUG, PERLLIB, PERL5DB, PERL5SHELL (specific to the Win32 port), PERLALLOWNONIFSLSP (specific to the Win32 port), PERLDEBUGMSTATS, PERLDESTRUCTLEVEL, PERLDLNONLAZY, PERLENCODING, PERLHASHSEED, PERLHASHSEEDDEBUG, PERLROOT(specific to the VMS port), PERLSIGNALS, PERLUNICODE, SYS$LOGIN
(specific to the VMS port)ppeerrllddiiaagg - vvaarriioouuss PPeerrll ddiiaaggnnoossttiiccss
DESCRIPTION
ppeerrlllleexxwwaarrnn - PPeerrll LLeexxiiccaall WWaarrnniinnggss
DESCRIPTION
Default Warnings and Optional WarningsWhat'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 TODOSEE ALSO
AUTHORppeerrllddeebbuugg - PPeerrll ddeebbuuggggiinngg
DESCRIPTION
The Perl Debugger 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,, 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, t expr, b, b [line] [condition], b subname [con-
dition], b postpone subname [condition], b load filename, b compile subname, B line, B *, 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", "signal-
Level", "warnLevel", "dieLevel", "AutoTrace", "LineInfo","inhibitexit", "PrintRet", "ornaments", "frame", "maxTrace-
Len", "windowSize", "arrayDepth", "hashDepth", "dumpDepth", "compactDump", "veryCompact", "globPrint", "DumpDBFiles", "DumpPackages", "DumpReused", "quote", "HighBit", "undefPrint", "UsageOnly", "TTY", "noTTY", "ReadLine", "NonStop" Debugger input/outputPrompt, Multiline commands, Stack backtrace, Line Listing For-
mat, Frame listingDebugging compile-time statements
Debugger Customization Readline Support Editor Support for Debugging The Perl Profiler Debugging regular expressions Debugging memory usageSEE ALSO
BUGS
ppeerrllvvaarr - PPeerrll pprreeddeeffiinneedd vvaarriiaabblleess
DESCRIPTION
Predefined Names$ARG, $, $a, $b, $
, $MATCH, $&, $PREMATCH, $`, $POST- MATCH, $', $LASTPARENMATCH, $+, $^N, @LASTMATCHEND, @+, $*,
HANDLE->inputlinenumber(EXPR), $INPUTLINENUMBER, $NR, $,
IO::Handle->inputrecordseparator(EXPR), $INPUTRECORDSEPARA-
TOR, $RS, $/, HANDLE->autoflush(EXPR), $OUTPUTAUTOFLUSH, $|,
IO::Handle->outputfieldseparator EXPR, $OUTPUTFIELDSEPARA-
TOR, $OFS, $,, IO::Handle->outputrecordseparator EXPR, $OUT-
PUTRECORDSEPARATOR, $ORS, $\, $LISTSEPARATOR, $", $SUB-
SCRIPTSEPARATOR, $SUBSEP, $;, $#, HANDLE->formatpagenum-
ber(EXPR), $FORMATPAGENUMBER, $%, HANDLE->for-
matlinesperpage(EXPR), $FORMATLINESPERPAGE, $=, HAN-
DLE->formatlinesleft(EXPR), $FORMATLINESLEFT, $-,
@LASTMATCHSTART, @-, $` 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])", HANDLE->formatname(EXPR), $FOR-
MATNAME, $~, HANDLE->formattopname(EXPR), $FORMATTOPNAME,
$^, IO::Handle->formatlinebreakcharacters EXPR, $FOR-
MATLINEBREAKCHARACTERS, $:, IO::Handle->formatformfeed
EXPR, $FORMATFORMFEED, $^L, $ACCUMULATOR, $^A, $CHILDERROR,
$?, ${^ENCODING}, $OSERROR, $ERRNO, $!, %!,
$EXTENDEDOSERROR, $^E, $EVALERROR, $@, $PROCESSID, $PID,
$$, $REALUSERID, $UID, $<, $EFFECTIVEUSERID, $EUID, $>,
$REALGROUPID, $GID, $(, $EFFECTIVEGROUPID, $EGID, $), $PRO-
GRAMNAME, $0, $[, $], $COMPILING, $^C, $DEBUGGING, $^D, $SYS-
TEMFDMAX, $^F, $^H, %^H, $INPLACEEDIT, $^I, $^M, $OSNAME,
$^O, ${^OPEN}, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10,
0x20, 0x40, 0x80, 0x100, 0x200, 0x400, $LASTREG-
EXPCODERESULT, $^R, $EXCEPTIONSBEINGCAUGHT, $^S, $BASETIME,
$^T, ${^TAINT}, ${^UNICODE}, $PERLVERSION, $^V, $WARNING, $^W,
${^WARNINGBITS}, $EXECUTABLENAME, $^X, ARGV, $ARGV, @ARGV,
ARGVOUT, @F, @INC, @, %INC, %ENV, $ENV{expr}, %SIG, $SIG{expr}
Error Indicators Technical Note on the Syntax of Variable NamesBUGS
ppeerrllrree - PPeerrll rreegguullaarr eexxpprreessssiioonnss
DESCRIPTION
i, m, s, x Regular Expressions [1], [2], [3], cntrl, graph, print, punct, xdigit Extended Patterns"(?#text)", "(?imsx-imsx)", "(?:pattern)", "(?imsx-imsx:pat-
tern)", "(?=pattern)", "(?!pattern)", "(?<=pattern)", "(?
tern)", "(?{ code })", "(??{ code })", "(?>pattern)", "(?(con-
dition)yes-pattern|no-pattern)", "(?(condition)yes-pattern)"
Backtracking Version 8 Regular ExpressionsWarning on \1 vs $1
Repeated patterns matching zero-length substring
Combining pieces together "ST", "S|T", "S{REPEATCOUNT}", "S{min,max}", "S{min,max}?", "S?", "S*", "S+", "S??", "S*?", "S+?", "(?>S)", "(?=S)","(?<=S)", "(?!S)", "(?
tion)yes-pattern|no-pattern)"
Creating custom RE enginesBUGS
SEE ALSO
ppeerrllrreerreeff - PPeerrll RReegguullaarr EExxpprreessssiioonnss RReeffeerreennccee
DESCRIPTION
OPERATORS SYNTAX ESCAPE SEQUENCES CHARACTER CLASSES ANCHORS QUANTIFIERS EXTENDED CONSTRUCTS VARIABLES FUNCTIONS TERMINOLOGY AUTHORSEE ALSO
THANKSppeerrllrreeff - PPeerrll rreeffeerreenncceess aanndd nneesstteedd ddaattaa ssttrruuccttuurreess
NOTE
DESCRIPTION
Making References Using References Symbolic referencesNot-so-symbolic references
Pseudo-hashes: Using an array as a hash
Function Templates WARNINGSEE ALSO
ppeerrllffoorrmm - PPeerrll ffoorrmmaattss
DESCRIPTION
Text Fields Numeric FieldsThe 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 VariablesNOTES
Footers Accessing Formatting Internals WARNINGSppeerrlloobbjj - PPeerrll oobbjjeeccttss
DESCRIPTION
An Object is Simply a Reference A Class is Simply a Package A Method is Simply a Subroutine Method Invocation Indirect Object Syntax Default UNIVERSAL methods isa(CLASS), can(METHOD), VERSION( [NEED] ) Destructors SummaryTwo-Phased Garbage Collection
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, CLOSE this, UNTIE this, DESTROY this UNTIE this The "untie" GotchaSEE ALSO
BUGS
AUTHORppeerrllddbbmmffiilltteerr - PPeerrll DDBBMM FFiilltteerrss
SYNOPSIS
DESCRIPTION
ffiilltteerrssttoorreekkeeyy, ffiilltteerrssttoorreevvaalluuee, ffiilltteerrffeettcchhkkeeyy, ffiill-
tteerrffeettcchhvvaalluuee The FilterAn Example - the NULL termination problem.
Another Example - Key is a C int.
SEE ALSO
AUTHORppeerrlliippcc - PPeerrll iinntteerrpprroocceessss ccoommmmuunniiccaattiioonn ((ssiiggnnaallss,, ffiiffooss,, ppiippeess,, ssaaffee
ssuubbpprroocceesssseess,, ssoocckkeettss,, aanndd sseemmaapphhoorreess))DESCRIPTION
Signals Handling the SIGHUP Signal in Daemons Named Pipes Deferred Signals (Safe Signals) Long running opcodes, Interrupting IO, Restartable systemcalls, Signals as "faults", Signals triggered by operating sys-
tem state Using open() for IPC Filehandles Background Processes Complete Dissociation of Child from Parent Safe Pipe Opens Bidirectional Communication with Another Process Bidirectional Communication with Yourself Sockets: Client/Server Communication Internet Line Terminators Internet TCP Clients and ServersUnix-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 IPCNOTES
BUGS
AUTHORSEE ALSO
ppeerrllffoorrkk - PPeerrll''ss fork() eemmuullaattiioonn
SYNOPSIS
DESCRIPTION
Behavior of other Perl features in forked pseudo-processes
$$ or $PROCESSID, %ENV, chdir() and all other builtins that
accept filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to files, directories and network sockets Resource limits Killing the parent processLifetime of the parent process and pseudo-processes
CAVEATS AND LIMITATIONS BEGIN blocks, Open filehandles, Forking pipe open() not yet implemented, Global state maintained by XSUBs, Interpreterembedded in larger application, Thread-safety of extensions
BUGS
AUTHORSEE ALSO
ppeerrllnnuummbbeerr - sseemmaannttiiccss ooff nnuummbbeerrss aanndd nnuummeerriicc ooppeerraattiioonnss iinn PPeerrll
SYNOPSIS
DESCRIPTION
Storing numbers Numeric operators and numeric conversions Flavors of Perl numeric operationsArithmetic operators, ++, Arithmetic operators during "use inte-
ger", Other mathematical operators, Bitwise operators, Bitwise operators during "use integer", Operators which expect an integer, Operators which expect a string AUTHORSEE ALSO
ppeerrlltthhrrttuutt - ttuuttoorriiaall oonn tthhrreeaaddss iinn PPeerrll
DESCRIPTION
Status 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 Threads And Data Shared And Unshared Data Thread Pitfalls: Races Synchronization and control Controlling access: lock() A Thread Pitfall: Deadlocks Queues: Passing Data Around Semaphores: Synchronizing Data Access Basic semaphores Advanced Semaphores condwait() and condsignal() 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 considerationsProcess-scope Changes
Thread-Safety of System Libraries
Conclusion Bibliography Introductory TextsOS-Related References
Other References Acknowledgements AUTHOR Copyrightsppeerrllootthhrrttuutt - oolldd ttuuttoorriiaall oonn tthhrreeaaddss iinn PPeerrll
DESCRIPTION
What Is A Thread Anyway? Threaded Program Models Boss/Worker Work Crew Pipeline Native threads What kind of threads are perl threads? Threadsafe Modules Thread Basics Basic Thread Support Creating Threads Giving up control Waiting For A Thread To Exit Errors In Threads Ignoring A Thread Threads And Data Shared And Unshared Data Thread Pitfall: Races Controlling access: lock() Thread Pitfall: Deadlocks Queues: Passing Data Around Threads And Code Semaphores: Synchronizing Data Access Basic semaphores, Advanced Semaphores Attributes: Restricting Access To Subroutines Subroutine Locks Methods Locking A Subroutine General Thread Utility Routines What Thread Am I In? Thread IDs Are These Threads The Same? What Threads Are Running? A Complete Example Conclusion Bibliography Introductory TextsOS-Related References
Other References Acknowledgements AUTHOR Copyrightsppeerrllppoorrtt - WWrriittiinngg ppoorrttaabbllee PPeerrll
DESCRIPTION
Not all Perl programs have to be portable, Nearly all of Perl already is portable ISSUES Newlines Numbers endianness and Width Files and Filesystems System Interaction Command names versus file pathnames Networking Interprocess Communication (IPC) External Subroutines (XS) Standard Modules Time and Date Character sets and character encoding Internationalisation System Resources Security Style CPAN TestersMailing list: cpan-testers@perl.org, Testing results:
http://testers.cpan.org/ PLATFORMS Unix DOS and Derivatives Mac OS VMS VOS EBCDIC Platforms Acorn RISC OS Other perls FUNCTION IMPLEMENTATIONS Alphabetical Listing of Perl Functions-X FILEHANDLE, -X EXPR, -X, binmode FILEHANDLE, chmod LIST,
chown LIST, chroot FILENAME, chroot, crypt PLAINTEXT,SALT, dbm-
close HASH, dbmopen HASH,DBNAME,MODE, dump LABEL, exec LIST,
exit EXPR, exit, fcntl FILEHANDLE,FUNCTION,SCALAR, flock FILE-
HANDLE,OPERATION, fork, getlogin, getpgrp PID, getppid, getpri-
ority WHICH,WHO, getpwnam NAME, getgrnam NAME, getnetbyname
NAME, getpwuid UID, getgrgid GID, getnetbyaddr ADDR,ADDRTYPE,
getprotobynumber NUMBER, getservbyport PORT,PROTO, getpwent, getgrent, gethostbyname, gethostent, getnetent, getprotoent,getservent, sethostent STAYOPEN, setnetent STAYOPEN, setpro-
toent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, end-
hostent, endnetent, endprotoent, endservent, getsockoptSOCKET,LEVEL,OPTNAME, glob EXPR, glob, ioctl FILEHANDLE,FUNC-
TION,SCALAR, kill SIGNAL, LIST, link OLDFILE,NEWFILE, lstat FILEHANDLE, lstat EXPR, lstat, msgctl ID,CMD,ARG, msgget KEY,FLAGS, msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS,open FILEHANDLE,EXPR, open FILEHANDLE, pipe READHANDLE,WRITE-
HANDLE, readlink EXPR, readlink, select RBITS,WBITS,EBITS,TIME-
OUT, semctl ID,SEMNUM,CMD,ARG, semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP, setpriorityWHICH,WHO,PRIORITY, setpwent, setsockopt SOCKET,LEVEL,OPT-
NAME,OPTVAL, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread
ID,VAR,POS,SIZE, shmwrite ID,STRING,POS,SIZE, sockatmark SOCKET, socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, stat FILEHANDLE, stat EXPR, stat, symlink OLDFILE,NEWFILE, syscallLIST, sysopen FILEHANDLE,FILENAME,MODE,PERMS, system LIST,
times, truncate FILEHANDLE,LENGTH, truncate EXPR,LENGTH, umask EXPR, umask, utime LIST, wait, waitpid PID,FLAGS CHANGES v1.48, 02 February 2001, v1.47, 22 March 2000, v1.46, 12 February 2000, v1.45, 20 December 1999, v1.44, 19 July 1999, v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May 1999, v1.40, 11 April 1999,v1.39, 11 February 1999, v1.38, 31 December 1998, v1.37, 19 Decem-
ber 1998, v1.36, 9 September 1998, v1.35, 13 August 1998, v1.33, 06 August 1998, v1.32, 05 August 1998, v1.30, 03 August 1998, v1.23, 10 July 1998 Supported PlatformsSEE ALSO
AUTHORS / CONTRIBUTORSppeerrllllooccaallee - PPeerrll llooccaallee hhaannddlliinngg ((iinntteerrnnaattiioonnaalliizzaattiioonn aanndd llooccaalliizzaa-
ttiioonn))DESCRIPTION
PREPARING TO USE LOCALES USING LOCALES The use locale pragma The setlocale function Finding locales LOCALE PROBLEMS 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 LCCOLLATE: Collation Category LCCTYPE: Character Types Category LCNUMERIC: Numeric Formatting Category LCMONETARY: Formatting of monetary amounts LCTIME Other categories SECURITY ENVIRONMENT PERLBADLANG, LCALL, LANGUAGE, LCCTYPE, LCCOLLATE, LCMONETARY, LCNUMERIC, LCTIME, LANGNOTES
Backward compatibility I18N:Collate obsolete Sort speed and memory use impacts write() and LCNUMERIC Freely available locale definitions I18n and l10n An imperfect standardUnicode and UTF-8
BUGS
Broken systemsSEE ALSO
HISTORYppeerrlluunniiiinnttrroo - 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 PERLSSEE ALSO
ACKNOWLEDGMENTS AUTHOR, COPYRIGHT, AND LICENSEppeerrlluunniiccooddee - UUnniiccooddee ssuuppppoorrtt iinn PPeerrll
DESCRIPTION
Important Caveats Input and Output Layers, Regular Expressions, "use utf8" stillneeded to enable UTF-8/UTF-EBCDIC in scripts, BOM-marked
scripts and UTF-16 scripts autodetected, "use encoding" needed
to upgrade non-Latin-1 byte strings
Byte and Character Semantics Effects of Character Semantics Scripts BlocksUser-Defined Character Properties
Character Encodings for Input and Output Unicode Regular Expression Support Level Unicode Encodings Security Implications of Unicode Unicode in Perl on EBCDIC Locales When Unicode Does Not Happen Forcing Unicode in Perl (Or Unforcing Unicode in Perl) Using Unicode in XSBUGS
Interaction with Locales Interaction with Extensions SpeedPorting code from perl-5.6.X
SEE ALSO
ppeerrlleebbccddiicc - CCoonnssiiddeerraattiioonnss ffoorr rruunnnniinngg PPeerrll oonn EEBBCCDDIICC ppllaattffoorrmmss
DESCRIPTION
COMMON CHARACTER CODE SETS ASCII ISO 8859Latin 1 (ISO 8859-1)
EBCDIC 13 variant characters 0037 1047POSIX-BC
Unicode code points versus EBCDIC code points Remaining Perl Unicode problems in EBCDIC Unicode and UTF Using Encode SINGLE OCTET TABLES recipe 0, recipe 1, recipe 2, recipe 3, recipe 4, recipe 5, recipe 6 IDENTIFYING CHARACTER CODE SETS CONVERSIONS 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. MONO CASE then sort data. Convert, sort data, then re convert. Perform sorting on one type of machine only. TRANSFORMATION FORMATS URL decoding and encoding uu encoding and decodingQuoted-Printable encoding and decoding
Caesarian ciphers Hashing order and checksums I18N AND L10N MULTI OCTET CHARACTER SETS OS ISSUES OS/400 PASE, IFS access OS/390, z/OS chcp, dataset access, OS/390, z/OS iconv, locales VM/ESA?POSIX-BC?
BUGS
SEE ALSO
REFERENCES HISTORY AUTHORppeerrllsseecc - PPeerrll sseeccuurriittyy
DESCRIPTION
Laundering and Detecting Tainted DataSwitches On the "#!" Line
Taint mode and @INC Cleaning Up Your Path Security Bugs Protecting Your Programs Unicode Algorithmic Complexity AttacksSEE ALSO
ppeerrllmmoodd - PPeerrll mmoodduulleess ((ppaacckkaaggeess aanndd ssyymmbbooll ttaabblleess))
DESCRIPTION
Packages Symbol Tables BEGIN, CHECK, INIT and END Perl Classes Perl Modules Making your module threadsafeSEE ALSO
ppeerrllmmooddlliibb - ccoonnssttrruuccttiinngg nneeww PPeerrll mmoodduulleess aanndd ffiinnddiinngg eexxiissttiinngg oonneess
THE PERL MODULE LIBRARY Pragmatic Modules attributes, attrs, autouse, base, bigint, bignum, bigrat, blib, bytes, charnames, constant, diagnostics, encoding, fields, filetest, if, integer, less, lib, locale, open, ops, overload, re, sigtrap, sort, strict, subs, threads, threads::shared, utf8, vars, vmsish, warnings, warnings::register Standard Modules AnyDBMFile, Attribute::Handlers, AutoLoader, AutoSplit, B, B::Asmdata, B::Assembler, B::Bblock, B::Bytecode, B::C, B::CC, B::Concise, B::Debug, B::Deparse, B::Disassembler, B::Lint,B::Showlex, B::Stackobj, B::Stash, B::Terse, B::Xref, Bench-
mark, ByteLoader, CGI, CGI::Apache, CGI::Carp, CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push, CGI::Switch, CGI::Util, CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Carp::Heavy, Class::ISA, Class::Struct, Config, Cwd, DB, DBFile, Data::Dumper, Devel::DProf, Devel::PPPort, Devel::Peek,Devel::SelfStubber, Digest, Digest::MD5, Digest::base, DirHan-
dle, Dumpvalue, DynaLoader, Encode, Encode::Alias, Encode::Byte, Encode::CJKConstants, Encode::CN, Encode::CN::HZ,Encode::Config, Encode::EBCDIC, Encode::Encoder, Encode::Encod-
ing, Encode::Guess, Encode::JP, Encode::JP::H2Z, Encode::JP::JIS7, Encode::KR, Encode::KR::2022KR, Encode::MIME::Header, Encode::PerlIO, Encode::Supported,Encode::Symbol, Encode::TW, Encode::Unicode, Encode::Uni-
code::UTF7, English, Env, Errno, Exporter, Exporter::Heavy, ExtUtils::Command, ExtUtils::Command::MM, ExtUtils::Constant,ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtU-
tils::Liblist, ExtUtils::MM, ExtUtils::MMAny, ExtU-
tils::MMBeOS, ExtUtils::MMCygwin, ExtUtils::MMDOS, ExtU-
tils::MMMacOS, ExtUtils::MMNW5, ExtUtils::MMOS2, ExtU-
tils::MMUWIN, ExtUtils::MMUnix, ExtUtils::MMVMS, ExtU-
tils::MMWin32, ExtUtils::MMWin95, ExtUtils::MY, ExtU-
tils::MakeMaker, ExtUtils::MakeMaker::FAQ, ExtUtils::Make-
Maker::Tutorial, ExtUtils::MakeMaker::bytes, ExtUtils::Make-
Maker::vmsish, ExtUtils::Manifest, ExtUtils::Mkbootstrap, ExtU-
tils::Mksymlists, ExtUtils::Packlist, ExtUtils::testlib, Fatal, Fcntl, File::Basename, File::CheckTree, File::Compare, File::Copy, File::DosGlob, File::Find, File::Glob, File::Path, File::Spec, 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, GDBMFile, Getopt::Long, Getopt::Std, Hash::Util, I18N::Collate, I18N::LangTags, I18N::LangTags::List, I18N::Langinfo, IO, IO::Dir, IO::File, IO::Handle, IO::Pipe, IO::Poll, IO::Seekable, IO::Select, IO::Socket, IO::Socket::INET, IO::Socket::UNIX, IPC::Open2, IPC::Open3, IPC::SysV, IPC::SysV::Msg, IPC::SysV::Semaphore,List::Util, Locale::Constants, Locale::Country, Locale::Cur-
rency, Locale::Language, Locale::Maketext, Locale::Make-
text::TPJ13, Locale::Script, MIME::Base64, MIME::Base64::Quot-
edPrint, Math::BigFloat, Math::BigInt, Math::BigInt::Calc,Math::BigRat, Math::Complex, Math::Trig, Memoize, Memoize::Any-
DBMFile, Memoize::Expire, Memoize::ExpireFile, Memo-
ize::ExpireTest, Memoize::NDBMFile, Memoize::SDBMFile, Memo-
ize::Storable, NDBMFile, NEXT, Net::Cmd, Net::Config, Net::Domain, Net::FTP, Net::NNTP, Net::Netrc, Net::POP3, Net::Ping, Net::SMTP, Net::Time, Net::hostent, Net::libnetFAQ, Net::netent, Net::protoent, Net::servent, O, ODBMFile, Opcode, POSIX, PerlIO, PerlIO::encoding, PerlIO::scalar, PerlIO::via,PerlIO::via::QuotedPrint, Pod::Checker, Pod::Find, Pod::Func-
tions, Pod::Html, Pod::InputObjects, Pod::LaTeX, Pod::Man,Pod::ParseLink, Pod::ParseUtils, Pod::Parser, Pod::Perl-
doc::ToChecker, Pod::Perldoc::ToMan, Pod::Perldoc::ToNroff, Pod::Perldoc::ToPod, Pod::Perldoc::ToRtf, Pod::Perldoc::ToText, Pod::Perldoc::ToTk, Pod::Perldoc::ToXml, Pod::PlainText, Pod::Plainer, Pod::Select, Pod::Text, Pod::Text::Color, Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Usage,SDBMFile, Safe, Scalar::Util, Search::Dict, SelectSaver, Self-
Loader, Shell, Socket, Storable, Switch, Symbol, Sys::Hostname, Sys::Syslog, Term::ANSIColor, Term::Cap, Term::Complete,Term::ReadLine, Test, Test::Builder, Test::Harness, Test::Har-
ness::Assert, Test::Harness::Iterator, Test::Harness::Straps, Test::More, Test::Simple, Test::Tutorial, Text::Abbrev, Text::Balanced, Text::ParseWords, Text::Soundex, Text::Tabs, Text::Wrap, Thread, Thread::Queue, Thread::Semaphore, Thread::Signal, Thread::Specific, Tie::Array, Tie::File, Tie::Handle, Tie::Hash, Tie::Memoize, Tie::RefHash, Tie::Scalar, Tie::SubstrHash, Time::HiRes, Time::Local,Time::gmtime, Time::localtime, Time::tm, UNIVERSAL, Uni-
code::Collate, Unicode::Normalize, Unicode::UCD, User::grent, User::pwent, Win32, XS::APItest, XS::Typemap, XSLoader Extension Modules CPAN Africa South Africa Asia China, Indonesia, Israel, Japan, Malaysia, Russian Federation, Saudi Arabia, Singapore, South Korea, Taiwan, Thailand Central America Costa Rica Europe Austria, Belgium, Bosnia and Herzegovina, Bulgaria, Croatia, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, Lithuania,Netherlands, Norway, Poland, Portugal, Romania, Russia, Slo-
vakia, Slovenia, Spain, Sweden, Switzerland, Turkey, Ukraine, United Kingdom North America Canada, Alberta, Manitoba, Nova Scotia, Ontario, Mexico, United States, Alabama, California, Colorado, Delaware, District of Columbia, Florida, Indiana, Kentucky, Massachusetts, Michigan, Nevada, New Jersey, New York, North Carolina, Oklahoma, Oregon, Pennsylvania, Tennessee, Texas, Utah, Virginia, Washington, Wisconsin Oceania Australia, New Zealand, United States South America Argentina, Brazil, Chile RSYNC Mirrors Modules: Creation, Use, and Abuse Guidelines for Module Creation Guidelines for Converting Perl 4 Library Scripts into Modules Guidelines for Reusing Application CodeNOTE
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? DESIGNING AND WRITING YOUR MODULE To OO or not to OO? Designing your APIWrite simple routines to do simple things, Separate functional-
ity from output, Provide sensible shortcuts and defaults, Nam-
ing 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 numberingPre-requisites
Testing Packaging Licensing COMMON PITFALLS Reinventing the wheel Trying to do too much Inappropriate documentationSEE ALSO
perlstyle, perlnewmod, perlpod, podchecker, Packaging Tools, Test-
ing tools, http://pause.perl.org/, Any good book on software engi-
neering AUTHORppeerrllmmooddiinnssttaallll - 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 COPYRIGHTppeerrllnneewwmmoodd - 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 againStep-by-step: Making the module
Start with module-starter or h2xs, Use strict and warnings, Use
Carp, Use Exporter - wisely!, Use plain old documentation,
Write tests, Write the READMEStep-by-step: Distributing your module
Get a CPAN user ID, "perl Makefile.PL; make test; make dist", Upload the tarball, Announce to the modules list, Announce to clpa, Fix bugs! AUTHORSEE ALSO
ppeerrlluuttiill - uuttiilliittiieess ppaacckkaaggeedd wwiitthh tthhee PPeerrll ddiissttrriibbuuttiioonn
DESCRIPTION
DOCUMENTATION perldoc, pod2man and pod2text, pod2html and pod2latex, pod2usage, podselect, podchecker, splain, roffitall CONVERTORS a2p, s2p, find2perl Administration libnetcfg Development perlbug, h2ph, c2ph and pstruct, h2xs, dprofpp, perlccSEE ALSO
ppeerrllccoommppiillee - IInnttrroodduuccttiioonn ttoo tthhee PPeerrll CCoommppiilleerr-TTrraannssllaattoorr
DESCRIPTION
Layout B::Bytecode, B::C, B::CC, B::Lint, B::Deparse, B::Xref Using The Back Ends The Cross Referencing Back End i, &, s, r The Decompiling Back End The Lint Back End The Simple C Back End The Bytecode Back End The Optimized C Back End Module List for the Compiler Suite B, O, B::Asmdata, B::Assembler, B::Bblock, B::Bytecode, B::C, B::CC, B::Concise, B::Debug, B::Deparse, B::Disassembler, B::Lint, B::Showlex, B::Stackobj, B::Stash, B::Terse, B::Xref KNOWN PROBLEMS AUTHORppeerrllffiilltteerr - 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 PERLUSING CONTEXT: THE DEBUG FILTER
CONCLUSION THINGS TO LOOK OUT FOR Some Filters Clobber the "DATA" Handle REQUIREMENTS AUTHOR Copyrightsppeerrlleemmbbeedd - 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 programPerforming Perl pattern matches and substitutions from your C pro-
gram Fiddling with the Perl stack from your C program Maintaining a persistent interpreter Execution of END blocks Maintaining multiple interpreter instances Using Perl modules, which themselves use C libraries, from your C program Embedding Perl under Win32 Hiding Perl MORAL AUTHOR COPYRIGHTppeerrllddeebbgguuttss - GGuuttss ooff PPeerrll ddeebbuuggggiinngg
DESCRIPTION
Debugger Internals Writing Your Own Debugger Frame Listing Output Examples Debugging regular expressionsCompile-time output
"anchored" STRING "at" POS, "floating" STRING "at" POS1..POS2, "matching floating/anchored", "minlen", "stclass" TYPE, "noscan", "isall", "GPOS", "plus", "implicit", "with eval", "anchored(TYPE)" Types of nodesRun-time output
Debugging Perl memory usageUsing $ENV{PERLDEBUGMSTATS}
"buckets SMALLEST(APPROX)..GREATEST(APPROX)", Free/Used, "Total sbrk(): SBRKed/SBRKs:CONTINUOUS", "pad: 0", "heads: 2192", "chain: 0", "tail: 6144"Example of using -DDLL switch
717, 002, 054, 602, 702, 704-DDLL details
"!!!", "!!", "!"Limitations of -DDLL statistics
SEE ALSO
ppeerrllxxssttuutt,, ppeerrllXXSSttuutt - TTuuttoorriiaall ffoorr wwrriittiinngg XXSSUUBBss
DESCRIPTION
SPECIAL NOTES
make Version caveat Dynamic Loading versus Static Loading TUTORIALEXAMPLE 1
EXAMPLE 2
What has gone on? Writing good test scriptsEXAMPLE 3
What's new here? Input and Output Parameters The XSUBPP Program The TYPEMAP file Warning about Output ArgumentsEXAMPLE 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 ExtensionEXAMPLE 5
New Things in this ExampleEXAMPLE 6
New Things in this ExampleEXAMPLE 7 (Coming Soon)
EXAMPLE 8 (Coming Soon)
EXAMPLE 9 Passing open files to XSes
Troubleshooting these Examples See also Author Last Changedppeerrllxxss - 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 KeywordThe OUTPUT: Keyword
The NOOUTPUT Keyword
The CODE: Keyword The INIT: Keyword The NOINIT Keyword Initializing Function Parameters Default Parameter Values The PREINIT: Keyword The SCOPE: KeywordThe INPUT: Keyword
The IN/OUTLIST/INOUTLIST/OUT/INOUT KeywordsThe "length(NAME)" Keyword
Variable-length Parameter Lists
The CARGS: 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 INTERFACEMACRO: Keyword The INCLUDE: Keyword The CASE: Keyword The & Unary Operator Inserting POD, Comments and C Preprocessor Directives Using XS With C++ Interface Strategy Perl Objects And C Structures The Typemap Safely Storing Static Data in XS MYCXTKEY, typedef mycxtt, STARTMYCXT, MYCXTINIT, dMYCXT, MYCXTEXAMPLES
XS VERSION AUTHORppeerrllcclliibb - 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 stdlib.h functions Miscellaneous functionsSEE ALSO
ppeerrllgguuttss - IInnttrroodduuccttiioonn ttoo tthhee PPeerrll AAPPII
DESCRIPTION
Variables Datatypes What is an "IV"? Working with SVs 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 GVADDMULTI, GVADDWARN Reference Counts and Mortality Stashes and GlobsDouble-Typed SVs
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)", "SAVE-
LONG(long i)", SAVESPTR(s), SAVEPPTR(p), "SAVEFREESV(SV *sv)", "SAVEMORTALIZESV(SV *sv)", "SAVEFREEOP(OP *op)", SAVEFREEPV(p), "SAVECLEARSV(SV *sv)", "SAVEDELETE(HV *hv, char *key, I32length)", "SAVEDESTRUCTOR(DESTRUCTORFUNCNOCONTEXTt f, void
*p)", "SAVEDESTRUCTORX(DESTRUCTORFUNCt f, void *p)", "SAVES-
TACKPOS()", "SV* savescalar(GV *gv)", "AV* saveary(GV *gv)", "HV* savehash(GV *gv)", "void saveitem(SV *item)", "void savelist(SV **sarg, I32 maxsarg)", "SV* savesvref(SV **sptr)", "void saveaptr(AV **aptr)", "void savehptr(HV **hptr)" Subroutines XSUBs and the Argument Stack Calling Perl Routines from within C Programs Memory Allocation PerlIO Putting a C value on Perl stack Scratchpads Scratchpads and recursion 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 Examining internal data structures with the "dump" functions How multiple interpreters and concurrency are supportedBackground and PERLIMPLICITCONTEXT
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 PERLIMPLICITSYS Internal Functions A, p, d, s, n, r, f, M, o, x, m, X, E, b Formatted Printing of IVs, UVs, and NVsPointer-To-Integer and Integer-To-Pointer
Source Documentation 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 convert a string to UTF-8?
Is there anything else I need to know? Custom Operators AUTHORSSEE ALSO
ppeerrllccaallll - PPeerrll ccaalllliinngg ccoonnvveennttiioonnss ffrroomm CC
DESCRIPTION
An Error Handler, An Event Driven Program THE CALL FUNCTIONS callsv, callpv, callmethod, callargv FLAG VALUES GVOID GSCALAR GARRAY GDISCARD GNOARGS GEVAL GKEEPERR Determining the Context KNOWN PROBLEMSEXAMPLES
No Parameters, Nothing returned Passing Parameters Returning a Scalar Returning a list of values Returning a list in a scalar context Returning Data from Perl via the parameter list Using GEVAL Using GKEEPERR Using callsv Using callargv Using callmethod Using GIMMEV Using Perl to dispose of temporaries Strategies for storing Callback Context Information1. 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 CSEE ALSO
AUTHOR DATEppeerrllaappii - aauuttooggeenneerraatteedd ddooccuummeennttaattiioonn ffoorr tthhee ppeerrll ppuubblliicc AAPPII
DESCRIPTION
"Gimme" Values GIMME, GIMMEV, GARRAY, GDISCARD, GEVAL, GNOARGS, GSCALAR, GVOID Array Manipulation Functions AvFILL, avclear, avdelete, avexists, avextend, avfetch, avfill, avlen, avmake, avpop, avpush, avshift, avstore, avundef, avunshift, getav, newAV, sortsv Callback Functions callargv, callmethod, callpv, callsv, ENTER, evalpv, evalsv, FREETMPS, LEAVE, SAVETMPS Character classes isALNUM, isALPHA, isDIGIT, isLOWER, isSPACE, isUPPER, toLOWER, toUPPER Cloning an interpreter perlclone CV Manipulation Functions CvSTASH, getcv Embedding Functions cvundef, loadmodule, nothreadhook, perlalloc, perlconstruct, perldestruct, perlfree, perlparse, perlrun, requirepv Functions in file pppack.c packlist, packcat, unpackstring, unpackstr Global Variables PLmodglobal, PLna, PLsvno, PLsvundef, PLsvyes GV Functions GvSV, gvfetchmeth, gvfetchmethod, gvfetchmethodautoload, gvfetchmethautoload, gvstashpv, gvstashsv Handy Values Nullav, Nullch, Nullcv, Nullhv, Nullsv Hash Manipulation Functionsgethv, HEfSVKEY, HeHASH, HeKEY, HeKLEN, HePV, HeSVKEY, HeS-
VKEYforce, HeSVKEYset, HeVAL, HvNAME, hvclear, hvclearplace-
holders, hvdelete, hvdeleteent, hvexists, hvexistsent, hvfetch, hvfetchent, hviterinit, hviterkey, hviterkeysv, hviternext, hviternextsv, hviternextflags, hviterval, hvmagic, hvscalar, hvstore, hvstoreent, hvundef, newHV Magical Functions mgclear, mgcopy, mgfind, mgfree, mgget, mglength, mgmagical,mgset, SvGETMAGIC, SvLOCK, SvSETMAGIC, SvSetMagicSV, SvSetMag-
icSVnosteal, SvSetSV, SvSetSVnosteal, SvSHARE, SvUNLOCK Memory Management Copy, CopyD, Move, MoveD, New, Newc, Newz, Poison, Renew, Renewc, Safefree, savepv, savepvn, savesharedpv, StructCopy, Zero, ZeroD Miscellaneous Functions fbmcompile, fbminstr, form, getcwdsv, strEQ, strGE, strGT, strLE, strLT, strNE, strnEQ, strnNE, svnolocking, svnosharing, svnounlocking Numeric functions grokbin, grokhex, groknumber, groknumericradix, grokoct, scanbin, scanhex, scanoct Optree Manipulation Functions cvconstsv, newCONSTSUB, newXS Pad Data Structures padsv Stack Manipulation Macros dMARK, dORIGMARK, dSP, EXTEND, MARK, mPUSHi, mPUSHn, mPUSHp, mPUSHu, mXPUSHi, mXPUSHn, mXPUSHp, mXPUSHu, ORIGMARK, POPi, POPl, POPn, POPp, POPpbytex, POPpx, POPs, PUSHi, PUSHMARK, PUSHmortal,PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, SP, SPAGAIN, XPUSHi, XPUSHmor-
tal, XPUSHn, XPUSHp, XPUSHs, XPUSHu, XSRETURN, XSRETURNEMPTY, XSRETURNIV, XSRETURNNO, XSRETURNNV, XSRETURNPV, XSRETURNUNDEF, XSRETURNUV, XSRETURNYES, XSTmIV, XSTmNO, XSTmNV, XSTmPV, XSTmUNDEF, XSTmYES SV Flags svtype, SVtIV, SVtNV, SVtPV, SVtPVAV, SVtPVCV, SVtPVHV, SVtPVMG SV Manipulation Functions getsv, lookslikenumber, newRVinc, newRVnoinc, NEWSV, newSV, newSViv, newSVnv, newSVpv, newSVpvf, newSVpvn, newSVpvnshare, newSVrv, newSVsv, newSVuv, SvCUR, SvCURset, SvEND, SvGROW, SvIOK, SvIOKp, SvIOKnotUV, SvIOKoff, SvIOKon, SvIOKonly, SvIOKonlyUV, SvIOKUV, SvIsCOW, SvIsCOWsharedhash, SvIV, SvIVx, SvIVX, SvLEN, SvNIOK, SvNIOKp, SvNIOKoff, SvNOK, SvNOKp, SvNOKoff, SvNOKon, SvNOKonly, SvNV, SvNVx, SvNVX, SvOK, SvOOK, SvPOK, SvPOKp, SvPOKoff, SvPOKon, SvPOKonly, SvPOKonlyUTF8, SvPV, SvPVbyte, SvPVbytex, SvPVbytexforce, SvPVbyteforce, SvPVbytenolen, SvPVutf8, SvPVutf8x, SvPVutf8xforce, SvPVutf8force, SvPVutf8nolen, SvPVx, SvPVX, SvPVforce, SvPVforcenomg, SvPVnolen, SvREFCNT, SvREFCNTdec, SvREFCNTinc, SvROK, SvROKoff, SvROKon, SvRV, SvSTASH, SvTAINT, SvTAINTED, SvTAINTEDoff, SvTAINTEDon, SvTRUE, SvTYPE, SvUOK, SvUPGRADE, SvUTF8, SvUTF8off, SvUTF8on, SvUV, SvUVx, SvUVX, sv2bool, sv2cv, sv2io, sv2iv, sv2mortal, sv2nv, sv2pvbyte, sv2pvbytenolen, sv2pvutf8, sv2pvutf8nolen, sv2pvflags, sv2pvnolen, sv2uv, svbackoff, svbless, svcatpv, svcatpvf,svcatpvfmg, svcatpvn, svcatpvnflags, svcatpvnmg, svcat-
pvnnomg, svcatpvmg, svcatsv, svcatsvflags, svcatsvmg,svcatsvnomg, svchop, svclear, svcmp, svcmplocale, svcol-
lxfrm, svcopypv, svdec, svderivedfrom, sveq, svforcenormal, svforcenormalflags, svfree, svgets, svgrow, svinc, svinsert, svisa, svisobject, sviv, svlen, svlenutf8, svmagic, svmagicext, svmortalcopy, svnewmortal, svnewref, svnv, svposb2u, svposu2b, svpv, svpvbyte, svpvbyten, svpvbytenforce, svpvn, svpvnforce, svpvnforceflags, svpvutf8, svpvutf8n, svpvutf8nforce, svreftype, svreplace, svreportused, svreset, svrvweaken, svsetiv, svsetivmg,svsetnv, svsetnvmg, svsetpv, svsetpvf, svsetpvfmg, svsetp-
viv, svsetpvivmg, svsetpvn, svsetpvnmg, svsetpvmg, svsetrefiv, svsetrefnv, svsetrefpv, svsetrefpvn, svsetrefuv, svsetsv, svsetsvflags, svsetsvmg, svsetsvnomg, svsetuv, svsetuvmg, svtaint, svtainted, svtrue, svunmagic, svunref, svunrefflags, svuntaint, svupgrade, svusepvn, svusepvnmg, svutf8decode, svutf8downgrade, svutf8encode,svutf8upgrade, svutf8upgradeflags, svuv, svvcatpvf, svvcat-
pvfn, svvcatpvfmg, svvsetpvf, svvsetpvfn, svvsetpvfmg Unicode Support bytesfromutf8, bytestoutf8, ibcmputf8, isutf8char, isutf8string, isutf8stringloc, pvunidisplay, svcatdecode, svrecodetoutf8, svunidisplay, toutf8case, toutf8fold, toutf8lower, toutf8title, toutf8upper, utf8ntouvchr, utf8ntouvuni, utf8distance, utf8hop, utf8length, utf8tobytes, utf8touvchr, utf8touvuni, uvchrtoutf8, uvunitoutf8flags Variables created by "xsubpp" and "xsubpp" internal functions ax, CLASS, dAX, dITEMS, dXSARGS, dXSI32, items, ix, newXSproto, RETVAL, ST, THIS, XS, XSVERSION, XSVERSIONBOOTCHECK Warning and Dieing croak, warn AUTHORSSEE ALSO
ppeerrlliinntteerrnn - aauuttooggeenneerraatteedd ddooccuummeennttaattiioonn ooff ppuurreellyy iinntteerrnnaall PPeerrll ffuunncc-
ttiioonnssDESCRIPTION
CV reference counts and CvOUTSIDE CvWEAKOUTSIDE Functions in file pad.h CXCURPADSAVE, CXCURPADSV, PADBASESV, PADCLONEVARS,PADCOMPNAMEFLAGS, PADCOMPNAMEGEN, PADCOMPNAMEOURSTASH,
PADCOMPNAMEPV, PADCOMPNAMETYPE, PADDUP, PADRESTORELOCAL,
PADSAVELOCAL, PADSAVESETNULLPAD, PADSETSV, PADSETCUR, PADSETCURNOSAVE, PADSV, PADSVl, SAVECLEARSV, SAVECOMPPAD, SAVEPADSV Functions in file ppctl.c findruncv Global Variables PLDBsingle, PLDBsub, PLDBtrace, PLdowarn, PLlastingv, PLofssv, PLrs GV Functions isgvmagical IO Functions startglob Pad Data Structures CvPADLIST, cvclone, cvdump, dodumppad, intromy, padaddanon,padaddname, padalloc, padblockstart, padcheckdup, padfind-
lex, padfindmy, padfixupinneranons, padfree, padleavemy, padnew, padpush, padreset, padsetsv, padswipe, padtidy, padundef Stack Manipulation Macros djSP, LVRET SV Manipulation Functions reportuninit, svaddarena, svcleanall, svcleanobjs, svfreearenas AUTHORSSEE 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 AttributesPer-instance Data
Layers in action.Per-instance flag bits
PERLIOFEOF, PERLIOFCANWRITE, PERLIOFCANREAD, PER-
LIOFERROR, PERLIOFTRUNCATE, PERLIOFAPPEND, PERLIOFCRLF,
PERLIOFUTF8, PERLIOFUNBUF, PERLIOFWRBUF, PERLIOFRDBUF,PERLIOFLINEBUF, PERLIOFTEMP, PERLIOFOPEN, PERLIOFFAST-
GETS Methods in Detailfsize, name, size, kind, PERLIOKBUFFERED, PERLIOKRAW, PER-
LIOKCANCRLF, PERLIOKFASTGETS, PERLIOKMULTIARG, Pushed, Popped, Open, Binmode, Getarg, Fileno, Dup, Read, Write, Seek, Tell, Close, Flush, Fill, Eof, Error, Clearerr, Setlinebuf, Getbase, Getbufsiz, Getptr, Getcnt, Setptrcnt Utilities Implementing PerlIO Layers C implementations, Perl implementations Core Layers "unix", "perlio", "stdio", "crlf", "mmap", "pending", "raw", "utf8" Extension Layers ":encoding", ":scalar", ":via" TODOppeerrllaappiioo - ppeerrll''ss IIOO aabbssttrraaccttiioonn iinntteerrffaaccee..
SYNOPSIS
DESCRIPTION
1. USESTDIO, 2. USESFIO, 3. USEPERLIO, PPeerrllIIOOssttddiinn(()), PPeerr-
llIIOOssttddoouutt(()), PPeerrllIIOOssttddeerrrr(()), PPeerrllIIOOooppeenn((ppaatthh,, mmooddee)), PPeerr-
llIIOOffddooppeenn((ffdd,,mmooddee)), PPeerrllIIOOrreeooppeenn((ppaatthh,,mmooddee,,ff)), PPeerr-
llIIOOpprriinnttff((ff,,ffmmtt,,......)), PPeerrllIIOOvvpprriinnttff((ff,,ffmmtt,,aa)), PPeerrllIIOOssttdd-
oouuttff((ffmmtt,,......)), PPeerrllIIOOrreeaadd((ff,,bbuuff,,ccoouunntt)), PPeerrllIIOOwwrriittee((ff,,bbuuff,,ccoouunntt)),PPeerrllIIOOcclloossee((ff)), PPeerrllIIOOppuuttss((ff,,ss)), PPeerrllIIOOppuuttcc((ff,,cc)), PPeerr-
llIIOOuunnggeettcc((ff,,cc)), PPeerrllIIOOggeettcc((ff)), PPeerrllIIOOeeooff((ff)), PPeerrllIIOOeerrrroorr((ff)),PPeerrllIIOOffiilleennoo((ff)), PPeerrllIIOOcclleeaarreerrrr((ff)), PPeerrllIIOOfflluusshh((ff)), PPeerr-
llIIOOsseeeekk((ff,,ooffffsseett,,wwhheennccee)), PPeerrllIIOOtteellll((ff)), PPeerrllIIOOggeettppooss((ff,,pp)), PPeerr-
llIIOOsseettppooss((ff,,pp)), PPeerrllIIOOrreewwiinndd((ff)), PPeerrllIIOOttmmppffiillee(()), PPeerrllIIOOsseett-
lliinneebbuuff((ff))Co-existence with stdio
PPeerrllIIOOiimmppoorrttFFIILLEE((ff,,mmooddee)), PPeerrllIIOOeexxppoorrttFFIILLEE((ff,,mmooddee)), PPeerr-
llIIOOrreelleeaasseeFFIILLEE((pp,,ff)), PPeerrllIIOOffiinnddFFIILLEE((ff)) "Fast gets" Functions PPeerrllIIOOffaassttggeettss((ff)), PPeerrllIIOOhhaassccnnttppttrr((ff)), PPeerrllIIOOggeettccnntt((ff)),PPeerrllIIOOggeettppttrr((ff)), PPeerrllIIOOsseettppttrrccnntt((ff,,pp,,cc)), PPeerr-
llIIOOccaannsseettccnntt((ff)), PPeerrllIIOOsseettccnntt((ff,,cc)), PPeerrllIIOOhhaassbbaassee((ff)), PPeerrllIIOOggeettbbaassee((ff)), PPeerrllIIOOggeettbbuuffssiizz((ff)) Other FunctionsPerlIOapplylayers(f,mode,layers), PerlIObin-
mode(f,ptype,imode,layers), '<' read, '>' write, '+' read/write, PerlIOdebug(fmt,...)ppeerrllhhaacckk - HHooww ttoo hhaacckk aatt tthhee PPeerrll iinntteerrnnaallss
DESCRIPTION
Does concept match the general goals of Perl?, Where is the imple-
mentation?, Backwards compatibility, Could it be a module instead?, Is the feature generic enough?, Does it potentially introduce newbugs?, Does it preclude other desirable features?, Is the implemen-
tation robust?, Is the implementation generic enough to be porta-
ble?, Is the implementation tested?, Is there enough documenta-
tion?, Is there another way to do it?, Does it create too much work?, Patches speak louder than words Keeping in sync rsync'ing the source tree, Using rsync over the LAN, Using pushing over the NFS, rsync'ing the patches Why rsync the source tree It's easier to rsync the source tree, It's more reliable Why rsync the patchesIt's easier to rsync the patches, It's a good reference, Find-
ing a start point, Finding how to fix a bug, Finding the source of misbehaviour Working with the source Perlbug administration Submitting patches perlguts, perlxstut and perlxs, perlapi, Porting/pumpkin.pod,The perl5-porters FAQ
Finding Your Way Around Core modules, Tests, Documentation, Configure, Interpreter Elements of the interpreter Startup, Parsing, Optimization, Running Internal Variable Types Op Trees Stacks Argument stack, Mark stack, Save stack Millions of Macros The .i Targets Poking at PerlUsing a source-level debugger
run [args], break functionname, break source.c:xxx, step, next, continue, finish, 'enter', print gdb macro support Dumping Perl Data Structures Patching Patching a core module Adding a new function to the core Writing a test t/base/, t/cmd/, t/comp/, t/io/, t/lib/, t/op/, t/pod/, t/run/, t/uni/, t/win32/, t/x2p, t/base t/comp, t/cmd t/run t/io t/op, t/lib ext lib Special Make Test Targets coretest, test.deparse, test.taintwarn, minitest, test.valgrind check.valgrind utest.valgrind ucheck.valgrind, test.third check.third utest.third ucheck.third, test.torture torturetest, utest ucheck test.utf8 check.utf8, minitest.utf16 test.utf16, testharness Running tests by hand PERLCORE=1, PERLDESTRUCTLEVEL=2, PERL, PERLSKIPTTYTEST EXTERNAL TOOLS FOR DEBUGGING PERL Rational Software's Purify Purify on Unix-Accflags=-DPURIFY, -Doptimize='-g', -Uusemymalloc, -Dusemulti-
plicity Purify on NTDEFINES, USEMULTI = define, #PERLMALLOC = define, CFG = Debug
valgrind Compaq's/Digital's/HP's Third Degree PERLDESTRUCTLEVEL Profiling Gprof Profiling-a, -b, -e routine, -f routine, -s, -z
GCC gcov Profiling Pixie Profiling-h, -l, -p[rocedures], -h[eavy], -i[nvocations], -l[ines],
-testcoverage, -z[ero]
Miscellaneous tricks CONCLUSION The Road goes ever on and on, down from the door where it began. AUTHORppeerrllbbooookk - PPeerrll bbooookk iinnffoorrmmaattiioonn
DESCRIPTION
ppeerrllttooddoo - PPeerrll TTOO-DDOO LLiisstt
DESCRIPTION
assertions iCOW (?{...}) closures in regexpsA re-entrant regexp engine
pragmata lexical pragmas use less 'memory' prototypes and functions prototype character inlining autoloaded constants Finish off lvalue functions Unicode and UTF8 Implicit Latin 1 => Unicode translation UTF8 caching code Unicode in FilenamesUnicode in %ENV
Regexps regexp optimiser optional common suffices/prefices in regexps (trie optimization) PODPOD -> HTML conversion still sucks
Misc medium sized projects UNITCHECK optional optimizer You WANT *how* many lexical aliases no 6 IPv6 entersub XS vs Perl @INC source filter to Filter::Simple bincompat functions Use fchown/fchmod internally Tests Make Schwern poorer test B Improve tests for Config.pm common test code for timed bailout Installation compressed man pages Make Config.pm cope with differences between build and installed perl Relocatable perl make HTML install workput patchlevel in -v
Incremental things autovivification fix tainting bugs Make tainting consistent Dual life everything Vague things threads POSIX memory footprint Optimize away @ switch ops Attach/detach debugger from running program A decent benchmark readpipe(LIST)ppeerrllddoocc - LLooookk uupp PPeerrll ddooccuummeennttaattiioonn iinn PPoodd ffoorrmmaatt..
SYNOPSIS
DESCRIPTION
OPTIONS
-hh, -vv, -tt, -uu, -mm module, -ll, -FF, -ff perlfunc, -qq perlfaq-search-
regexp, -TT, -dd destination-filename, -oo output-formatname, -MM mod-
ule-name, -ww option:value or -ww option, -XX, PPaaggeeNNaammee||MMoodduullee-
NNaammee||PPrrooggrraammNNaammee, -nn some-formatter, -rr, -ii, -VV
SECURITY ENVIRONMENT AUTHORppeerrllhhiisstt - tthhee PPeerrll hhiissttoorryy rreeccoorrddss
DESCRIPTION
INTRODUCTION THE KEEPERS OF THE PUMPKIN PUMPKIN? THE RECORDS SELECTED RELEASE SIZES SELECTED PATCH SIZES THE KEEPERS OF THE RECORDSppeerrllddeellttaa - wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..55
DESCRIPTION
Incompatible Changes Core Enhancements Modules and Pragmata Utility Changes New Documentation Performance Enhancements Installation and Configuration Improvements Selected Bug Fixes New or Changed Diagnostics Changed Internals New Tests Known Problems Platform Specific Problems Reporting BugsSEE ALSO
ppeerrll558866ddeellttaa,, ppeerrllddeellttaa - wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..55
DESCRIPTION
Incompatible Changes Core Enhancements Modules and Pragmata Utility Changes New Documentation Performance Enhancements Installation and Configuration Improvements Selected Bug Fixes New or Changed Diagnostics Changed Internals New Tests Known Problems Platform Specific Problems Reporting BugsSEE 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 BugsSEE 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, ODBMFile, 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 BugsSEE 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, Uni-
code::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 BugsSEE 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 BugsSEE ALSO
ppeerrll558811ddeellttaa - wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..11
DESCRIPTION
Incompatible Changes Hash RandomisationUTF-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 EnhancementsUTF-8 no longer default under UTF-8 locales
Unsafe signals again available Tied Arrays with Negative Array Indiceslocal ${$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, DBFile,Devel::PPPort, Digest::MD5, Encode, fields, libnet, Math::Big-
Int, MIME::Base64, NEXT, Net::Ping, PerlIO::scalar, podlators, Pod::LaTeX, PodParsers, Pod::Perldoc, Scalar::Util, Storable,strict, Term::ANSIcolor, Test::Harness, Test::More, Test::Sim-
ple, Text::Balanced, Time::HiRes, threads, threads::shared, Unicode::Collate, Unicode::Normalize, Win32::GetFolderPath, Win32::GetOSVersion Utility Changes New Documentation Installation and Configuration ImprovementsPlatform-specific enhancements
Selected Bug Fixes Closures, eval and lexicals Generic fixesPlatform-specific fixes
New or Changed DiagnosticsChanged "A thread exited while %d threads were running"
Removed "Attempt to clear a restricted hash" New "Illegal declaration of anonymous subroutine"Changed "Invalid range "%s" in transliteration operator"
New "Missing control char name in \c"New "Newline in left-justified string for %s"
New "Possible precedence problem on bitwise %c operator"
New "Pseudo-hashes are deprecated"
New "read() on %s filehandle %s"
New "5.005 threads are deprecated" New "Tied variable freed while still in use"New "To%s: illegal mapping '%s'"
New "Use of freed value in iteration" Changed Internals New Tests Known Problems Tied hashes in scalar context Net::Ping 450service and 510pingudp failures B::C Platform Specific Problems EBCDIC Platforms Cygwin 1.5 problemsHP-UX: HP cc warnings about sendfile and sendpath
IRIX: t/uni/tr7jis.t falsely failing Mac OS X: no usemymalloc Tru64: No threaded builds with GNU cc (gcc) Win32: sysopen, sysread, syswrite Future Directions Reporting BugsSEE ALSO
ppeerrll5588ddeellttaa - wwhhaatt iiss nneeww ffoorr ppeerrll vv55..88..00
DESCRIPTION
Highlights In 5.8.0 Incompatible Changes Binary Incompatibility64-bit platforms and malloc
AIX DynaloadingAttributes for "my" variables now handled at run-time
Socket Extension Dynamic in VMSIEEE-format Floating Point Default on OpenVMS Alpha
New Unicode Semantics (no more "use utf8", almost) New Unicode Properties REF(...) Instead Of SCALAR(...) pack/unpack D/F recycled glob() now returns filenames in alphabetical order Deprecations Core Enhancements Unicode Overhaul PerlIO is Now The Default ithreads Restricted Hashes Safe Signals Understanding of NumbersArrays 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 LargefilesModifying $ Inside for(..)
modperl 1.26 Doesn't Build With Threaded Perllib/ftmp-security tests warn 'system possibly insecure'
libwww-perl (LWP) fails base/date #51
PDL failing some tests PerlgetsvSelf-tying Problems
ext/threads/t/libcFailure 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 directoriesFreeBSD Failing locale Test 117 For ISO 8859-15 Locales
IRIX fails ext/List/Util/t/shuffle.t or Digest::MD5HP-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.5Solaris 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 BugsSEE ALSO
HISTORYppeerrll557733ddeellttaa - wwhhaatt''ss nneeww ffoorr ppeerrll vv55..77..33
DESCRIPTION
Changes Reporting BugsSEE ALSO
HISTORYppeerrll557722ddeellttaa - wwhhaatt''ss nneeww ffoorr ppeerrll vv55..77..22
DESCRIPTION
Security Vulnerability Closed Incompatible Changes64-bit platforms and malloc
AIX Dynaloading Socket Extension Dynamic in VMS Different Definition of the Unicode Character Classes \p{In...} Deprecations Core Enhancements Modules and Pragmata New Modules and Distributions Updated And Improved Modules and Pragmata Utility Changes New Documentation Installation and Configuration Improvements New Or Improved Platforms Generic Improvements Selected Bug Fixes Platform Specific Changes and Fixes New or Changed Diagnostics Source Code Enhancements MAGIC constants Better commented codeRegex pre-/post-compilation items matched up
gcc -Wall
New Tests Known Problems AIX Amiga Perl Invoking Mysterylib/ftmp-security tests warn 'system possibly insecure'
Cygwin intermittent failures of lib/Memoize/t/expirefile 11 and 12HP-UX lib/iomultihomed Fails When LP64-Configured
HP-UX lib/posix Subtest 9 Fails When LP64-Configured
Linux With Sfio Fails op/misc Test 48 OS/390 op/sprintf tests 129 and 130 Failure of Thread tests UNICOS UTS VMS Win32 Localising a Tied Variable Leaks MemorySelf-tying of Arrays and Hashes Is Forbidden
Variable Attributes are not Currently Usable for Tieing Building Extensions Can Fail Because Of Largefiles The Compiler Suite Is Still Experimental The Long Double Support is Still Experimental Reporting BugsSEE ALSO
HISTORYppeerrll557711ddeellttaa - wwhhaatt''ss nneeww ffoorr ppeerrll vv55..77..11
DESCRIPTION
Security Vulnerability Closed Incompatible Changes Core Enhancements AUTOLOAD Is Now Lvaluable PerlIO is Now The Default Signals Are Now Safe Modules and Pragmata New Modules Updated And Improved Modules and Pragmata Performance Enhancements Utility Changes New Documentation perlclib perliol README.aix README.bs2000 README.macos README.mpeix README.solaris README.vos Porting/repository.pod Installation and Configuration Improvements New Or Improved Platforms Generic Improvements dcmsghdr, dfcntlcanlock, dfsync, dgetitimer, dgetpagsz, dmsghdrs, needvacopy, dreadv, drecvmsg, dsendmsg, sigsize, dsockatmark, dstrtoq, du32align, dualarm, dusleep Selected Bug Fixes Platform Specific Changes and Fixes New or Changed Diagnostics Changed Internals New Tests Known Problems AIX vac 5.0.0.0 May Produce Buggy Code For Perllib/ftmp-security tests warn 'system possibly insecure'
lib/iomultihomed Fails In LP64-Configured HP-UX
Test lib/posix Subtest 9 Fails In LP64-Configured HP-UX
lib/b test 19 Linux With Sfio Fails op/misc Test 48 sigaction test 13 in VMS sprintf tests 129 and 130 Failure of Thread tests Localising a Tied Variable Leaks MemorySelf-tying of Arrays and Hashes Is Forbidden
Building Extensions Can Fail Because Of Largefiles The Compiler Suite Is Still Experimental Reporting BugsSEE ALSO
HISTORYppeerrll557700ddeellttaa - wwhhaatt''ss nneeww ffoorr ppeerrll vv55..77..00
DESCRIPTION
Security Vulnerability Closed Incompatible Changes Core Enhancements Modules and Pragmata New Modules Updated And Improved Modules and Pragmata Utility Changes New Documentation Performance Enhancements Installation and Configuration Improvements Generic Improvements Selected Bug Fixes Platform Specific Changes and Fixes New or Changed Diagnostics Changed Internals Known Problems Unicode Support Still Far From Perfect EBCDIC Still A Lost Platform Building Extensions Can Fail Because Of Largefilesftmp-security tests warn 'system possibly insecure'
Test lib/posix Subtest 9 Fails In LP64-Configured HP-UX
Long Doubles Still Don't Work In Solaris Linux With Sfio Fails op/misc Test 48 Storable tests fail in some platforms Threads Are Still Experimental The Compiler Suite Is Still Experimental Reporting BugsSEE ALSO
HISTORYppeerrll556611ddeellttaa - wwhhaatt''ss nneeww ffoorr ppeerrll vv55..66..xx
DESCRIPTION
Summary of changes between 5.6.0 and 5.6.1 Security Issues Core bug fixes "UNIVERSAL::isa()", Memory leaks, Numeric conversions, qw(a\\b), caller(), Bugs in regular expressions, "slurp" mode, Autovivification of symbolic references to special variables,Lexical warnings, Spurious warnings and errors, glob(), Taint-
ing, sort(), #line directives, Subroutine prototypes, map(),
Debugger, PERL5OPT, chop(), Unicode support, 64-bit support,
Compiler, Lvalue subroutines, IO::Socket, File::Find, xsubpp, "no Module;", Tests Core features Configuration issues Documentation Bundled modules B::Concise, File::Temp, Pod::LaTeX, Pod::Text::Overstrike, CGI, CPAN, Class::Struct, DBFile, Devel::Peek, File::Find,Getopt::Long, IO::Poll, IPC::Open3, Math::BigFloat, Math::Com-
plex, Net::Ping, Opcode, Pod::Parser, Pod::Text, SDBMFile, Sys::Syslog, Tie::RefHash, Tie::SubstrHashPlatform-specific improvements
NCR MP-RAS, NonStop-UX
Core Enhancements Interpreter cloning, threads, and concurrency Lexically scoped warning categoriesUnicode and UTF-8 support
Support for interpolating named characters "our" declarations Support for strings represented as a vector of ordinals Improved Perl version numbering system New syntax for declaring subroutine attributes File and directory handles can be autovivified open() with more than two arguments64-bit support
Large file support Long doubles "more bits" Enhanced support for sort() subroutines"sort $coderef @foo" allowed
File globbing implemented internally Support for CHECK blocks POSIX character class syntax [: :] supportedBetter pseudo-random number generator
Improved "qw//" operatorBetter worst-case behavior of hashes
pack() format 'Z' supported pack() format modifier '!' supported pack() and unpack() support counted strings Comments in pack() templates Weak references Binary numbers supported Lvalue subroutines Some arrows may be omitted in calls through references Boolean assignment operators are legal lvalues exists() is supported on subroutine names exists() and delete() are supported on array elementsPseudo-hashes work better
Automatic flushing of output buffers Better diagnostics on meaningless filehandle operations Where possible, buffered data discarded from duped input filehandle eof() has the same old magic as <> binmode() can be used to set :crlf and :raw modes"-T" filetest recognizes UTF-8 encoded files as "text"
system(), backticks and pipe open now reflect exec() failure Improved diagnostics Diagnostics follow STDERRMore consistent close-on-exec behavior
syswrite() ease-of-use
Better syntax checks on parenthesized unary operators Bit operators support full native integer width Improved security features More functional bareword prototype (*) "require" and "do" may be overridden$^X variables may now have names longer than one character
New variable $^C reflects "-c" switch
New variable $^V contains Perl version as a string
Optional Y2K warningsArrays now always interpolate into double-quoted strings
Modules and Pragmata Modules attributes, B, Benchmark, ByteLoader, constant, charnames,Data::Dumper, DB, DBFile, Devel::DProf, Devel::Peek, Dump-
value, 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, pod-
checker, Pod::ParseUtils, Pod::Find, Pod::Select, podselect, Pod::Usage, pod2usage, Pod::Text and Pod::Man, SDBMFile, 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, perl-
hack.pod, perlintern.pod, perllexwarn.pod, perlnumber.pod, per-
lopentut.pod, perlreftut.pod, perltootc.pod, perltodo.pod, perluni-
code.pod Performance enhancementsSimple sort() using { $a <=> $b } and the like are optimized
Optimized assignments to lexical variables Faster subroutine calls delete(), each(), values() and hash iteration are faster Installation and Configuration Improvements-Dusethreads means something different
New Configure flagsThreadedness 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 fixeson empty files "eval '...'" improvements All compilation errors are true errors Implicitly closed filehandles are safer Behavior of list slices is more consistent "(\$)" prototype and $foo{a}
"goto &sub" and AUTOLOAD"-bareword" allowed under "use integer"
Failures in DESTROY() Locale bugs fixed Memory leaks Spurious subroutine stubs after failed subroutine callsTaint 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 numerictype, /%s/: Unrecognized escape \\%c passed through, /%s/: Unrecog-
nized escape \\%c in character class passed through, /%s/ should
probably be written as "%s", %s() called too early to check proto-
type, %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 subrou-
tine name, %s package attribute may clash with future reserved
word: %s, (in cleanup) %s, <> should be quotes, Attempt to join
self, Bad evalled substitution pattern, Bad realloc() ignored, Bareword found in conditional, Binary number >0b11111111111111111111111111111111 non-portable, Bit vector size >
32 non-portable, Buffer overflow in primeenviter: %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, Characterclass [:%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, File-
handle %s opened only for output, flock() on closed filehandle %s,
Global symbol "%s" requires explicit package name, Hexadecimal num-
ber > 0xffffffff non-portable, Ill-formed CRTL environ value "%s",
Ill-formed message in primeenviter: |%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: delbackref, panic: kid popen
errno read, panic: magickillbackrefs, Parentheses missing around"%s" list, Possible unintended interpolation of %s in string, Pos-
sible Y2K bug: %s, pragma "attrs" is deprecated, use "sub NAME :
ATTRS" instead, Premature end of script headers, Repeat count in pack overflows, Repeat count in unpack overflows, realloc() of freed memory ignored, Reference is already weak, setpgrp can't takearguments, Strange *+?{} on zero-length expression, switching
effective %s is not implemented, This Perl can't reset CRTL environ
elements (%s), This Perl can't set CRTL environ elements (%s=%s),
Too late to run %s block, Unknown open() mode '%s', Unknown process
%x sent message to primeenviter: %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 con-
stant number New tests Incompatible Changes Perl Source Incompatibilities CHECK is a new keyword, Treatment of list slices of undef haschanged, Format of $English::PERLVERSION is different, Liter-
als of the form 1.2.3 parse differently, Possibly changedpseudo-random number generator, Hashing function for hash keys
has changed, "undef" fails on read only values, Close-on-exec
bit may be set on pipe and socket handles, Writing "$$1" to
mean "${$}1" is unsupported, delete(), each(), values() and
"\(%h)", vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS,
Text of some diagnostic output has changed, "%@" has been
removed, Parenthesized not() behaves like a list operator, Semantics of bareword prototype "(*)" have changed, Semanticsof bit operators may have changed on 64-bit platforms, More
builtins taint their results C Source Incompatibilities"PERLPOLLUTE", "PERLIMPLICITCONTEXT", "PERLPOLLUTEMALLOC"
Compatible C Source API Changes "PATCHLEVEL" is now "PERLVERSION" 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 featuresThreads, Unicode, 64-bit support, Lvalue subroutines, Weak ref-
erences, The pseudo-hash data type, The Compiler suite, Inter-
nal 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 primeenviter, In string, @%s now
must be written as \@%s, Probable precedence problem on %s, regexp
too big, Use of "$$
Reporting Bugs" to mean "${$} " is deprecated SEE ALSO
HISTORYppeerrll5566ddeellttaa - wwhhaatt''ss nneeww ffoorr ppeerrll vv55..66..00
DESCRIPTION
Core Enhancements Interpreter cloning, threads, and concurrency Lexically scoped warning categoriesUnicode and UTF-8 support
Support for interpolating named characters "our" declarations Support for strings represented as a vector of ordinals Improved Perl version numbering system New syntax for declaring subroutine attributes File and directory handles can be autovivified open() with more than two arguments64-bit support
Large file support Long doubles "more bits" Enhanced support for sort() subroutines"sort $coderef @foo" allowed
File globbing implemented internally Support for CHECK blocks POSIX character class syntax [: :] supportedBetter pseudo-random number generator
Improved "qw//" operatorBetter worst-case behavior of hashes
pack() format 'Z' supported pack() format modifier '!' supported pack() and unpack() support counted strings Comments in pack() templates Weak references Binary numbers supported Lvalue subroutines Some arrows may be omitted in calls through references Boolean assignment operators are legal lvalues exists() is supported on subroutine names exists() and delete() are supported on array elementsPseudo-hashes work better
Automatic flushing of output buffers Better diagnostics on meaningless filehandle operations Where possible, buffered data discarded from duped input filehandle eof() has the same old magic as <> binmode() can be used to set :crlf and :raw modes"-T" filetest recognizes UTF-8 encoded files as "text"
system(), backticks and pipe open now reflect exec() failure Improved diagnostics Diagnostics follow STDERRMore consistent close-on-exec behavior
syswrite() ease-of-use
Better syntax checks on parenthesized unary operators Bit operators support full native integer width Improved security features More functional bareword prototype (*) "require" and "do" may be overridden$^X variables may now have names longer than one character
New variable $^C reflects "-c" switch
New variable $^V contains Perl version as a string
Optional Y2K warningsArrays now always interpolate into double-quoted strings
Modules and Pragmata Modules attributes, B, Benchmark, ByteLoader, constant, charnames,Data::Dumper, DB, DBFile, Devel::DProf, Devel::Peek, Dump-
value, 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, pod-
checker, Pod::ParseUtils, Pod::Find, Pod::Select, podselect, Pod::Usage, pod2usage, Pod::Text and Pod::Man, SDBMFile, 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, perl-
hack.pod, perlintern.pod, perllexwarn.pod, perlnumber.pod, per-
lopentut.pod, perlreftut.pod, perltootc.pod, perltodo.pod, perluni-
code.pod Performance enhancementsSimple sort() using { $a <=> $b } and the like are optimized
Optimized assignments to lexical variables Faster subroutine calls delete(), each(), values() and hash iteration are faster Installation and Configuration Improvements-Dusethreads means something different
New Configure flagsThreadedness 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 fixeson empty files "eval '...'" improvements All compilation errors are true errors Implicitly closed filehandles are safer Behavior of list slices is more consistent "(\$)" prototype and $foo{a}
"goto &sub" and AUTOLOAD"-bareword" allowed under "use integer"
Failures in DESTROY() Locale bugs fixed Memory leaks Spurious subroutine stubs after failed subroutine callsTaint 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 numerictype, /%s/: Unrecognized escape \\%c passed through, /%s/: Unrecog-
nized escape \\%c in character class passed through, /%s/ should
probably be written as "%s", %s() called too early to check proto-
type, %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 subrou-
tine name, %s package attribute may clash with future reserved
word: %s, (in cleanup) %s, <> should be quotes, Attempt to join
self, Bad evalled substitution pattern, Bad realloc() ignored, Bareword found in conditional, Binary number >0b11111111111111111111111111111111 non-portable, Bit vector size >
32 non-portable, Buffer overflow in primeenviter: %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, Characterclass [:%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, File-
handle %s opened only for output, flock() on closed filehandle %s,
Global symbol "%s" requires explicit package name, Hexadecimal num-
ber > 0xffffffff non-portable, Ill-formed CRTL environ value "%s",
Ill-formed message in primeenviter: |%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: delbackref, panic: kid popen
errno read, panic: magickillbackrefs, Parentheses missing around"%s" list, Possible unintended interpolation of %s in string, Pos-
sible Y2K bug: %s, pragma "attrs" is deprecated, use "sub NAME :
ATTRS" instead, Premature end of script headers, Repeat count in pack overflows, Repeat count in unpack overflows, realloc() of freed memory ignored, Reference is already weak, setpgrp can't takearguments, Strange *+?{} on zero-length expression, switching
effective %s is not implemented, This Perl can't reset CRTL environ
elements (%s), This Perl can't set CRTL environ elements (%s=%s),
Too late to run %s block, Unknown open() mode '%s', Unknown process
%x sent message to primeenviter: %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 con-
stant number New tests Incompatible Changes Perl Source Incompatibilities CHECK is a new keyword, Treatment of list slices of undef haschanged, Format of $English::PERLVERSION is different, Liter-
als of the form 1.2.3 parse differently, Possibly changedpseudo-random number generator, Hashing function for hash keys
has changed, "undef" fails on read only values, Close-on-exec
bit may be set on pipe and socket handles, Writing "$$1" to
mean "${$}1" is unsupported, delete(), each(), values() and
"\(%h)", vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS,
Text of some diagnostic output has changed, "%@" has been
removed, Parenthesized not() behaves like a list operator, Semantics of bareword prototype "(*)" have changed, Semanticsof bit operators may have changed on 64-bit platforms, More
builtins taint their results C Source Incompatibilities"PERLPOLLUTE", "PERLIMPLICITCONTEXT", "PERLPOLLUTEMALLOC"
Compatible C Source API Changes "PATCHLEVEL" is now "PERLVERSION" Binary Incompatibilities Known Problems Thread test failures EBCDIC platforms not supportedIn 64-bit HP-UX the lib/iomultihomed 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 featuresThreads, Unicode, 64-bit support, Lvalue subroutines, Weak ref-
erences, The pseudo-hash data type, The Compiler suite, Inter-
nal 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 primeenviter, In string, @%s now
must be written as \@%s, Probable precedence problem on %s, regexp
too big, Use of "$$
Reporting Bugs" to mean "${$} " is deprecated SEE ALSO
HISTORYppeerrll55000055ddeellttaa - 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 ExpressionsMany new and improved optimizations, Many bug fixes, New regu-
lar expression constructs, New operator for precompiled regular expressions, Other improvements, Incompatible changes Improved malloc() Quicksort is internally implemented Reliable signals Reliable stack pointers More generous treatment of carriage returns Memory leaks Better support for multiple interpretersBehavior of local() on array and hash elements is now well-defined
"%!" is transparently tied to the Errno module
Pseudo-hashes are supported
"EXPR foreach EXPR" is supported Keywords can be globally overridden$^E is meaningful on Win32
"foreach (1..1000000)" optimized "Foo::" can be used as implicitly quoted package name"exists $Foo::{Bar::}" tests existence of a package
Better locale supportExperimental support for 64-bit platforms
prototype() returns useful results on builtins Extended support for exception handlingRe-blessing in DESTROY() supported for chaining DESTROY() methods
All "printf" format conversions are handled internally New "INIT" keyword New "lock" keyword New "qr//" operator "our" is now a reserved word Tied arrays are now fully supported Tied handles support is better 4th argument to substr Negative LENGTH argument to splice Magic lvalues are now more magical <> now reads in records Supported Platforms New Platforms Changes in existing support Modules and Pragmata New ModulesB, Data::Dumper, Dumpvalue, Errno, File::Spec, ExtU-
tils::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, DBFile, MakeMaker, CPAN, Cwd Utility Changes Documentation Changes New DiagnosticsAmbiguous 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 regu-
lar expression, %s: Eval-group not allowed, use re 'eval', %s:
Eval-group not allowed at run time, Explicit blessing to '' (assum-
ing 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 DiagnosticsCan't mktemp(), Can't write to temp file for -ee: %s, Cannot open
temporary file, regexp too big Configuration ChangesBUGS
SEE ALSO
HISTORYppeerrll55000044ddeellttaa - wwhhaatt''ss nneeww ffoorr ppeerrll55..000044
DESCRIPTION
Supported Environments Core ChangesList 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 warningsDeprecated: Inherited "AUTOLOAD" for non-methods
Previously deprecated %OVERLOAD is no longer usable
Subroutine arguments created only when they're modifiedGroup vector changeable with $)
Fixed parsing of $$
, &$ , etc. Fixed localization of $
, $&, etc. No resetting of $. on implicit close
"wantarray" may return undef "eval EXPR" determines value of EXPR in scalar context Changes to tainting checksNo glob() or <*>, No spawning if tainted $CDPATH, $ENV,
$BASHENV, No spawning if tainted $TERM doesn't look like a
terminal name New Opcode module and revised Safe module Embedding improvements Internal change: FileHandle class based on IO::* classes Internal change: PerlIO abstraction interface New and changed syntax$coderef->(PARAMS)
New and changed builtin constants PACKAGE New and changed builtin variables$^E, $^H, $^M
New and changed builtin functions delete on slices, flock, printf and sprintf, keys as an lvalue, my() in Control Structures, pack() and unpack(), sysseek(), use VERSION, use Module VERSION LIST, prototype(FUNCTION), srand,$ as Default, "m//gc" does not reset search position on fail-
ure, "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-DPERLEMERGENCYSBRK, -DPACKMALLOC, -DTWOPOTOPTIMIZE
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 DBFile Net::PingObject-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 "gvfetchmethod" and "perlcallsv", "perlevalpv", 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 argu-
ment 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 referenceas 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 ref-
erence, 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 num-
ber, 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 requestfor %s, panic: frexp, Possible attempt to put comments in qw()
list, Possible attempt to separate words with commas, Scalar value@%s{%s} better written as $%s{%s}, Stub found while resolving
method `%s' overloading `%s' in %s, Too late for "-TT" option, untie
attempted while %d inner references still exist, Unrecognized char-
acter %s, Unsupported function fork, Use of "$$
" to mean "${$}
" is deprecated, Value of %s can be "0"; test with defined(), Variable "%s" may be unavailable, Variable "%s" will not
stay shared, Warning: something's wrong, Ill-formed logical name
|%s| in primeenviter, Got an error from DosAllocMem, Malformed
PERLLIBPREFIX, PERLSHDIR too long, Process terminated by SIG%s
BUGS
SEE ALSO
HISTORYppeerrllaarrttiissttiicc - tthhee PPeerrll AArrttiissttiicc LLiicceennssee
SYNOPSIS
DESCRIPTION
The "Artistic License" Preamble Definitions"Package", "Standard Version", "Copyright Holder", "You", "Rea-
sonable copying fee", "Freely Available" Conditions a), b), c), d), a), b), c), d)ppeerrllggppll - tthhee GGNNUU GGeenneerraall PPuubblliicc LLiicceennssee,, vveerrssiioonn 22
SYNOPSIS
DESCRIPTION
GNU GENERAL PUBLIC LICENSEppeerrllaaiixx,, RREEAADDMMEE..aaiixx - PPeerrll vveerrssiioonn 55 oonn IIBBMM UUnniixx ((AAIIXX)) ssyysstteemmss
DESCRIPTION
Compiling Perl 5 on AIX OS level Building Dynamic Extensions on AIX The IBM ANSI C Compiler The usenm option Using GNU's gcc for building perl Using Large Files with Perl Threaded Perl64-bit Perl
AIX 4.2 and extensions using C++ with statics AUTHOR DATEppeerrllaammiiggaa - PPeerrll uunnddeerr AAmmiiggaa OOSS
NOTE
SYNOPSIS
DESCRIPTION
Prerequisites for Compiling Perl on AmigaOS UUnniixx eemmuullaattiioonn ffoorr AAmmiiggaaOOSS:: iixxeemmuull..lliibbrraarryy, VVeerrssiioonn ooff AAmmiiggaa OOSS Starting Perl programs under AmigaOS Shortcomings of Perl under AmigaOS INSTALLATION Accessing documentation Manpages for Perl on AmigaOS Perl HTML Documentation on AmigaOS Perl GNU Info Files on AmigaOS Perl LaTeX Documentation on AmigaOS BUILDING PERL ON AMIGAOS Build Prerequisites for Perl on AmigaOS Getting the Perl Source for AmigaOS Making Perl on AmigaOS Testing Perl on AmigaOS Installing the built Perl on AmigaOS PERL 5.8.0 BROKEN IN AMIGAOS AUTHORSSEE ALSO
ppeerrllaappoolllloo,, RREEAADDMMEE..aappoolllloo - PPeerrll vveerrssiioonn 55 oonn AAppoolllloo DDoommaaiinnOOSS
DESCRIPTION
AUTHORppeerrllbbeeooss,, RREEAADDMMEE..bbeeooss - PPeerrll vveerrssiioonn 55 oonn BBeeOOSS
DESCRIPTION
General Issues with Perl on BeOSBeOS Release-specific Notes
R4 x86, R4 PPC Contact InformationUpdate 2002-05-30
ppeerrllbbss22000000,, RREEAADDMMEE..BBSS22000000 - 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 BS2000Using 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 AUTHORSSEE ALSO
Mailing list HISTORYppeerrllccee - PPeerrll ffoorr WWiinnCCEE
DESCRIPTION
BUILD Tools & SDK Microsoft Embedded Visual Tools, Microsoft Visual C++, RainerKeuchel's celib-sources, Rainer Keuchel's console-sources
Makego to ./wince subdirectory, edit file compile.bat, run com-
pile.bat, run compile.bat dist ACKNOWLEDGEMENTS AUTHORSppeerrllccyyggwwiinn,, RREEAADDMMEE..ccyyggwwiinn - PPeerrll ffoorr CCyyggwwiinn
SYNOPSIS
PREREQUISITES FOR COMPILING PERL ON CYGWIN Cygwin = GNU+Cygnus+Windows (Don't leave UNIX without it) Cygwin Configuration "PATH", nroff, Permissions CONFIGURE PERL ON CYGWIN Stripping Perl Binaries on Cygwin Optional Libraries for Perl on Cygwin"-lcrypt", "-lgdbm" ("use GDBMFile"), "-ldb" ("use DBFile"),
"-lcygipc" ("use IPC::SysV"), "-lutil"
Configure-time Options for Perl on Cygwin
"-Uusedl", "-Uusemymalloc", "-Uuseperlio", "-Dusemultiplicity",
"-Duse64bitint", "-Duselongdouble", "-Dusethreads", "-Duse-
largefiles", "-Dmksymlinks"
Suspicious Warnings on Cygwin dlsym(), Win9x and "deofnblk", Compiler/Preprocessor defines MAKE ON CYGWIN Errors on Cygwin ld2 on Cygwin TEST ON CYGWIN File Permissions on Cygwin NDBMFile and ODBMFile do not work on FAT filesystems "fork()" failures in io* tests Script Portability on Cygwin Pathnames, Text/Binary, PerlIO, .exe, "chown()", Miscellaneous INSTALL PERL ON CYGWIN MANIFEST ON CYGWIN Documentation, Build, Configure, Make, Install, Tests, Compiled Perl Source, Compiled Module Source, Perl Modules/ScriptsBUGS ON CYGWIN
AUTHORS HISTORYppeerrllddgguuxx - PPeerrll uunnddeerr DDGG//UUXX..
SYNOPSIS
DESCRIPTION
BUILDING PERL ON DG/UXNon-threaded Perl on DG/UX
Threaded Perl on DG/UX Testing Perl on DG/UX Installing the built perl on DG/UX AUTHORSEE ALSO
ppeerrllddooss - PPeerrll uunnddeerr DDOOSS,, WW3311,, WW9955..
SYNOPSIS
DESCRIPTION
Prerequisites for Compiling Perl on DOS DJGPP, Pthreads Shortcomings of Perl under DOS Building Perl on DOS Testing Perl on DOS Installation of Perl on DOS BUILDING AND INSTALLING MODULES ON DOS Building Prerequisites for Perl on DOS Unpacking CPAN Modules on DOSBuilding Non-XS Modules on DOS
Building XS Modules on DOS AUTHORSEE ALSO
ppeerrlleeppoocc,, RREEAADDMMEE..eeppoocc - PPeerrll ffoorr EEPPOOCC
SYNOPSIS
INTRODUCTION INSTALLING PERL ON EPOC STARTING PERL ON EPOC Editors on Epoc Features of Perl on Epoc Restrictions of Perl on Epoc Compiling Perl 5 on the EPOC cross compiling environment SUPPORT STATUS OF PERL ON EPOC AUTHOR LAST UPDATEppeerrllffrreeeebbssdd,, RREEAADDMMEE..ffrreeeebbssdd - PPeerrll vveerrssiioonn 55 oonn FFrreeeeBBSSDD ssyysstteemmss
DESCRIPTION
FreeBSD core dumps from readdirr with ithreads$^X doesn't always contain a full path in FreeBSD
Perl will no longer be part of "base FreeBSD" AUTHORppeerrllhhppuuxx,, RREEAADDMMEE..hhppuuxx - PPeerrll vveerrssiioonn 55 oonn HHeewwlleetttt-PPaacckkaarrdd UUnniixx ((HHPP-UUXX))
ssyysstteemmssDESCRIPTION
Using perl as shipped with HP-UX
Using perl from HP's porting centreCompiling Perl 5 on HP-UX
PA-RISC
Portability Between PA-RISC Versions
PA-RISC 1.0
PA-RISC 1.1
PA-RISC 2.0
Itanium Processor Family and HP-UX
Itanium & Itanium 2Building Dynamic Extensions on HP-UX
The HP ANSI C Compiler The GNU C CompilerUsing Large Files with Perl on HP-UX
Threaded Perl on HP-UX
64-bit Perl on HP-UX
Oracle on HP-UX
GDBM and Threads on HP-UX
NFS filesystems and utime(2) on HP-UX
perl -P and // and HP-UX
HP-UX Kernel Parameters (maxdsiz) for Compiling Perl
nssdelete core dump from op/pwent or op/grent AUTHOR DATEppeerrllhhuurrdd,, RREEAADDMMEE..hhuurrdd - PPeerrll vveerrssiioonn 55 oonn HHuurrdd
DESCRIPTION
Known Problems with Perl on Hurd AUTHORppeerrlliirriixx,, RREEAADDMMEE..iirriixx - 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 AUTHORppeerrllmmaacchhtteenn,, RREEAADDMMEE..mmaacchhtteenn - PPeerrll vveerrssiioonn 55 oonn PPoowweerr MMaacchhTTeenn ssyysstteemmss
DESCRIPTION
Perl version 5.8.x and greater not supported Compiling Perl 5.6.x on MachTen Failures during "make test" on MachTen op/lexassign.t, pragma/warnings.t Building external modules on MachTen AUTHOR DATEppeerrllmmaaccooss,, RREEAADDMMEE..mmaaccooss - PPeerrll uunnddeerr MMaacc OOSS ((CCllaassssiicc))
SYNOPSIS
DESCRIPTION
AUTHOR DATEppeerrllmmaaccoossxx,, RREEAADDMMEE..mmaaccoossxx - PPeerrll uunnddeerr MMaacc OOSS XX
SYNOPSIS
DESCRIPTION
Installation Prefix libperl and Prebinding Updating Panther Known problems MacPerl Carbon Cocoa Starting From Scratch AUTHOR DATEppeerrllmmiinntt,, RREEAADDMMEE..mmiinntt - PPeerrll vveerrssiioonn 55 oonn AAttaarrii MMiiNNTT
DESCRIPTION
Known problems with Perl on MiNT AUTHORppeerrllmmppeeiixx,, RREEAADDMMEE..mmppeeiixx - PPeerrll//iiXX ffoorr HHPP ee33000000 MMPPEE
SYNOPSIS
NOTE
Binary distribution from HP What's New in Perl for MPE/iX Welcome to Perl/iX System Requirements for Perl/iX How to Obtain Perl/iX Perl/iX Distribution Contents HighlightsREADME, INSTALL, LIBSHP3K, PERL, .cpan/, lib/, man/, pub-
lichtml/feedback.cgi, src/perl-5.6.0-mpe
How to Compile Perl/iX 4, 6 Getting Started with Perl/iX MPE/iX Implementation Considerations Known Perl/iX Bugs Under InvestigationPerl/iX To-Do List
Perl/iX Change History AUTHORppeerrllnneettwwaarree - PPeerrll ffoorr NNeettWWaarree
DESCRIPTION
BUILD Tools & SDK Setup SetNWBld.bat, Buildtype.bat Make Interpreter Extensions INSTALL BUILD NEW EXTENSIONS ACKNOWLEDGEMENTS AUTHORS DATEppeerrllooss22 - 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 programsI cannot embed perl into my program, or use perl.dll from my pro-
gram.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 "PERLBADLANG", "PERLBADFREE", Config.pm Manual binary installation Perl VIO and PM executables (dynamically linked), Perl VIO executable (statically linked), Executables for Perl utilities, Main Perl library, Additional Perl modules, Tools to compile Perl modules, Manpages for Perl and utilities, Manpages for Perl modules, Source for Perl documentation, Perl manual in .INF format, Pdksh WWaarrnniinngg Accessing documentation OS/2 .INF file Plain text Manpages HTML GNU "info" files PDF files "LaTeX" docs BUILD The short story Prerequisites Getting perl source Application of the patchesHand-editing
Making Testing A lot of "bad free", Process terminated by SIGTERM/SIGINT, op/fs.t, op/stat.t Installing the built perl"a.out"-style build
Building a binary distribution Building custom .EXE files Making executables with a custom collection of statically loaded extensionsMaking executables with a custom search-paths
Build FAQ Some "/" became "\" in pdksh.'errno' - unresolved external
Problems with tr or sedSome 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::cur-
rentdrive()", "Cwd::syschdir(name)", "Cwd::changedrive(name)", "Cwd::sysisabsolute(name)", "Cwd::sysisrooted(name)", "Cwd::sysisrelative(name)", "Cwd::syscwd(name)", "Cwd::sysabspath(name, dir)", "Cwd::extLibpath([type])","Cwd::extLibpathset( path [, type ] )", "OS2::Error(doharder-
ror,doexception)", "OS2::Errors2Drive(drive)", OS2::SysInfo(),OS2::BootDrive(), "OS2::MorphPM(serve)", "OS2::UnMor-
phPM(serve)", "OS2::ServeMessages(force)", "OS2::ProcessMes-
sages(force [, cnt])", "OS2::control87(new,mask)",OS2::getcontrol87(), "OS2::setcon-
trol87em(new=MCWEM,mask=MCWEM)", "OS2::DLLname([how [, \&xsub]])" Prebuilt variables:$OS2::emxrev, $OS2::emxenv, $OS2::osver, $OS2::isaout,
$OS2::canfork, $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, "CheckOSEr-
ror(expr)", "CheckWinError(expr)", "SaveWinError(expr)", "Save-
CroakWinError(expr,die,name1,name2)", "WinError2Perlrc", "FillWinError", "FillOSError(rc)", Loading DLLs and ordinals in DLLs Perl flavors perl.exe perl.exe perl.exe perl.exe Why strange names? Why dynamic linking? Why chimera build? ENVIRONMENT "PERLLIBPREFIX" "PERLBADLANG" "PERLBADFREE" "PERLSHDIR" "USEPERLFLOCK" "TMP" or "TEMP" EvolutionText-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 "CONDWAIT", os2.cBUGS
AUTHORSEE ALSO
ppeerrllooss339900,, RREEAADDMMEE..ooss339900 - bbuuiillddiinngg aanndd iinnssttaalllliinngg PPeerrll ffoorr OOSS//339900 aanndd
zz//OOSSSYNOPSIS
DESCRIPTION
Tools Unpacking Perl distribution on OS/390 Setup and utilities for Perl on OS/390 Configure Perl on OS/390 Build, Test, Install Perl on OS/390 Build Anomalies with Perl on OS/390 Testing Anomalies with Perl on OS/390 Installation Anomalies with Perl on OS/390 Usage Hints for Perl on OS/390 Floating Point Anomalies with Perl on OS/390 Modules and Extensions for Perl on OS/390 AUTHORSSEE ALSO
Mailing list for Perl on OS/390 HISTORYppeerrllooss440000,, RREEAADDMMEE..ooss440000 - 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 AUTHORSppeerrllppllaann99 - 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 9BUGS
Revision date AUTHORppeerrllqqnnxx,, RREEAADDMMEE..qqnnxx - 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 AUTHORppeerrllssoollaarriiss,, RREEAADDMMEE..ssoollaarriiss - 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 DATAMODELNATIVE specified", sh: ar: not found MAKE TEST op/stat.t test 4 in Solaris nssdelete core dump from op/pwent or op/grent 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 LAST MODIFIEDppeerrllttrruu6644,, RREEAADDMMEE..ttrruu6644 - PPeerrll vveerrssiioonn 55 oonn TTrruu6644 ((ffoorrmmeerrllyy kknnoowwnn aass
DDiiggiittaall UUNNIIXX ffoorrmmeerrllyy kknnoowwnn aass DDEECC OOSSFF//11)) ssyysstteemmssDESCRIPTION
Compiling Perl 5 on Tru64 Using Large Files with Perl on Tru64 Threaded Perl on Tru64 Long Doubles on Tru64 DBFile tests failing on Tru6464-bit Perl on Tru64
Warnings about floating-point overflow when compiling Perl on Tru64
Testing Perl on Tru64 ext/ODBMFile/odbm Test Failing With Static Builds Perl Fails Because Of Unresolved Symbol sockatmark AUTHORppeerrlluuttss - PPeerrll uunnddeerr UUTTSS
SYNOPSIS
DESCRIPTION
BUILDING PERL ON UTS Installing the built perl on UTS AUTHORppeerrllvvmmeessaa,, RREEAADDMMEE..vvmmeessaa - bbuuiillddiinngg aanndd iinnssttaalllliinngg PPeerrll ffoorr VVMM//EESSAA..
SYNOPSIS
DESCRIPTION
Unpacking Perl Distribution on VM/ESA Setup Perl and utilities on VM/ESA Configure Perl on VM/ESA Testing Anomalies of Perl on VM/ESA Usage Hints for Perl on VM/ESA AUTHORSSEE ALSO
Mailing list for Perl on VM/ESAppeerrllvvmmss - VVMMSS-ssppeecciiffiicc ddooccuummeennttaattiioonn ffoorr PPeerrll
DESCRIPTION
Installation Organization of Perl Images Core Images Perl Extensions Installing static extensions Installing dynamic extensions File specifications Syntax Wildcard expansion Pipes PERL5LIB and PERLLIB Command line I/O redirection and backgrounding Command line switches-i, -S, -u
Perl functions File tests, backticks, binmode FILEHANDLE, crypt PLAINTEXT, USER, 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, CRTLENV, CLISYM[LOCAL], Any other string, $!, $^E, $?, $|
Standard modules with VMS-specific differences
SDBMFile Revision date AUTHORppeerrllvvooss,, RREEAADDMMEE..vvooss - PPeerrll ffoorr SSttrraattuuss VVOOSS
SYNOPSIS
Multiple methods to build perl for VOS Stratus POSIX Support INSTALLING PERL IN VOS Compiling Perl 5 on VOS Installing Perl 5 on VOS USING PERL IN VOS Unimplemented Features of Perl on VOS Restrictions of Perl on VOS Handling of underflow and overflow TEST STATUS SUPPORT STATUS AUTHOR LAST UPDATEppeerrllwwiinn3322 - PPeerrll uunnddeerr WWiinnddoowwss
SYNOPSIS
DESCRIPTION
Setting Up Perl on Win32 Make, Command Shell, Borland C++, Microsoft Visual C++, Microsoft Visual C++ Toolkit 2003, Microsoft Platform SDK64-bit Compiler, MinGW release 3 with gcc, MinGW release 1 with
gcc Building Testing Perl on Win32 Installation of Perl on Win32 Usage Hints for Perl on Win32Environment Variables, File Globbing, Using perl from the com-
mand line, Building Extensions, Command-line Wildcard Expan-
sion, Win32 Specific Extensions, Notes on 64-bit Windows
Running Perl Scripts Miscellaneous ThingsBUGS AND CAVEATS
ACKNOWLEDGEMENTS AUTHORS Gary Ng <71564.1743@CompuServe.COM>, Gurusamy Sarathy
, Nick Ing-Simmons SEE ALSO
HISTORY PPRRAAGGMMAA DDOOCCUUMMEENNTTAATTIIOONNaattttrrss - sseett//ggeett aattttrriibbuutteess ooff aa ssuubbrroouuttiinnee ((ddeepprreeccaatteedd))
SYNOPSIS
DESCRIPTION
method, lockedrree - PPeerrll pprraaggmmaa ttoo aalltteerr rreegguullaarr eexxpprreessssiioonn bbeehhaavviioouurr
SYNOPSIS
DESCRIPTION
tthhrreeaaddsshhaarreedd::::sshhaarreedd,, tthhrreeaaddss::::sshhaarreedd - PPeerrll eexxtteennssiioonn ffoorr sshhaarriinngg ddaattaa
ssttrruuccttuurreess bbeettwweeeenn tthhrreeaaddssSYNOPSIS
DESCRIPTION
EXPORT FUNCTIONSshare VARIABLE, lock VARIABLE, condwait VARIABLE, condwait COND-
VAR, LOCKVAR, condtimedwait VARIABLE, ABSTIMEOUT, condtimedwait CONDVAR, ABSTIMEOUT, LOCKVAR, condsignal VARIABLE, condbroadcast VARIABLENOTES
BUGS
AUTHORSEE ALSO
tthhrreeaaddss - PPeerrll eexxtteennssiioonn aalllloowwiinngg uussee ooff iinntteerrpprreetteerr bbaasseedd tthhrreeaaddss ffrroomm
ppeerrllSYNOPSIS
DESCRIPTION
$thread = threads->create(function, LIST), $thread->join,
$thread->detach, threads->self, $thread->tid, threads->object( tid
), threads->yield();, threads->list();, async BLOCK;
WARNINGSA thread exited while %d other threads were still running
TODOBUGS
Parent-Child threads, Returning objects, Creating threads inside
BEGIN blocks, PERLOLDSIGNALS are not threadsafe, will not be AUTHOR and COPYRIGHTSEE ALSO
aattttrriibbuutteess - ggeett//sseett ssuubbrroouuttiinnee oorr vvaarriiaabbllee aattttrriibbuutteess
SYNOPSIS
DESCRIPTION
Built-in Attributes
locked, method, lvalue Available Subroutines get, reftypePackage-specific Attribute Handling
FETCHtypeATTRIBUTES, MODIFYtypeATTRIBUTES
Syntax of Attribute Lists EXPORTS Default exports Available exports Export tags definedEXAMPLES
SEE ALSO
aauuttoouussee - ppoossttppoonnee llooaadd ooff mmoodduulleess uunnttiill aa ffuunnccttiioonn iiss uusseedd
SYNOPSIS
DESCRIPTION
WARNING AUTHORSEE ALSO
bbaassee - EEssttaabblliisshh IISS-AA rreellaattiioonnsshhiipp wwiitthh bbaassee ccllaasssseess aatt ccoommppiillee ttiimmee
SYNOPSIS
DESCRIPTION
DIAGNOSTICSBase class package "%s" is empty
HISTORY CAVEATSSEE ALSO
bbiiggiinntt - TTrraannssppaarreenntt BBiiggIInntteeggeerr ssuuppppoorrtt ffoorr PPeerrll
SYNOPSIS
DESCRIPTION
OPTIONS
a or accuracy, p or precision, t or trace, l or lib, v or ver-
sion MATH LIBRARY INTERNAL FORMAT SIGN METHODS CAVEAT MODULES USEDEXAMPLES
LICENSESEE ALSO
AUTHORSbbiiggnnuumm - TTrraannssppaarreenntt BBiiggNNuummbbeerr ssuuppppoorrtt ffoorr PPeerrll
SYNOPSIS
DESCRIPTION
OPTIONS
a or accuracy, p or precision, t or trace, l or lib, v or ver-
sion METHODS CAVEAT inf(), NaN(), upgrade() MATH LIBRARY INTERNAL FORMAT SIGN MODULES USEDEXAMPLES
LICENSESEE ALSO
AUTHORSbbiiggrraatt - TTrraannssppaarreenntt BBiiggNNuummbbeerr//BBiiggRRaattiioonnaall ssuuppppoorrtt ffoorr PPeerrll
SYNOPSIS
DESCRIPTION
MODULES USED MATH LIBRARY SIGN METHODS CAVEATEXAMPLES
perl -Mbigrat -le 'print sqrt(33)'
perl -Mbigrat -le 'print 2*255'
perl -Mbigrat -le 'print 4.5+2*255'
perl -Mbigrat -le 'print 3/7 + 5/7 + 8/3'
perl -Mbigrat -le 'print 12->isodd()';
LICENSESEE ALSO
AUTHORSbblliibb - UUssee MMaakkeeMMaakkeerr''ss uunniinnssttaalllleedd vveerrssiioonn ooff aa ppaacckkaaggee
SYNOPSIS
DESCRIPTION
BUGS
AUTHORbbyytteess - PPeerrll pprraaggmmaa ttoo ffoorrccee bbyyttee sseemmaannttiiccss rraatthheerr tthhaann cchhaarraacctteerr
sseemmaannttiiccssSYNOPSIS
DESCRIPTION
LIMITATIONSSEE ALSO
cchhaarrnnaammeess - ddeeffiinnee cchhaarraacctteerr nnaammeess ffoorr ""\\NN{{nnaammeedd}}"" ssttrriinngg lliitteerraall
eessccaappeessSYNOPSIS
DESCRIPTION
CUSTOM TRANSLATORS CUSTOM ALIASES Anonymous hashes Alias file Alias shortcut charnames::viacode(code) charnames::vianame(name) ALIASES ILLEGAL CHARACTERSBUGS
ccoonnssttaanntt - PPeerrll pprraaggmmaa ttoo ddeeccllaarree ccoonnssttaannttss
SYNOPSIS
DESCRIPTION
NOTES
List constants Defining multiple constants at once Magic constantsTECHNICAL NOTES
BUGS
AUTHOR COPYRIGHTddiiaaggnnoossttiiccss,, ssppllaaiinn - pprroodduuccee vveerrbboossee wwaarrnniinngg ddiiaaggnnoossttiiccss
SYNOPSIS
DESCRIPTION
The "diagnostics" Pragma The splain ProgramEXAMPLES
INTERNALSBUGS
AUTHOReennccooddiinngg - aalllloowwss yyoouu ttoo wwrriittee yyoouurr ssccrriipptt iinn nnoonn-aasscciiii oorr nnoonn-uuttff88
SYNOPSIS
ABSTRACT Literal Conversions PerlIO layers for "STD(IN|OUT)" Implicit upgrading for byte strings FEATURES THAT REQUIRE 5.8.1"NON-EUC" doublebyte encodings, tr//, DATA pseudo-filehandle
USAGE
use encoding [ENCNAME] ;, use encoding ENCNAME [ STDIN => ENC-
NAMEIN ...] ;, use encoding ENCNAME Filter=>1;, no encoding;
The Filter OptionFilter-related changes at Encode version 1.87
CAVEATS NOT SCOPED DO NOT MIX MULTIPLE ENCODINGS tr/// with ranges Legend of characters aboveEXAMPLE - Greekperl
KNOWN PROBLEMS literals in regex that are longer than 127 bytes, EBCDIC, format The Logic of :locale HISTORYSEE ALSO
ffiieellddss - ccoommppiillee-ttiimmee ccllaassss ffiieellddss
SYNOPSIS
DESCRIPTION
new, phashSEE ALSO
ffiilleetteesstt - PPeerrll pprraaggmmaa ttoo ccoonnttrrooll tthhee ffiilleetteesstt ppeerrmmiissssiioonn ooppeerraattoorrss
SYNOPSIS
DESCRIPTION
subpragma accessiiff - ""uussee"" aa PPeerrll mmoodduullee iiff aa ccoonnddiittiioonn hhoollddss
SYNOPSIS
DESCRIPTION
BUGS
AUTHORiinntteeggeerr - PPeerrll pprraaggmmaa ttoo uussee iinntteeggeerr aarriitthhmmeettiicc iinnsstteeaadd ooff ffllooaattiinngg
ppooiinnttSYNOPSIS
DESCRIPTION
lleessss - ppeerrll pprraaggmmaa ttoo rreeqquueesstt lleessss ooff ssoommeetthhiinngg ffrroomm tthhee ccoommppiilleerr
SYNOPSIS
DESCRIPTION
lliibb - mmaanniippuullaattee @@IINNCC aatt ccoommppiillee ttiimmee
SYNOPSIS
DESCRIPTION
Adding directories to @INC Deleting directories from @INC Restoring original @INC CAVEATSNOTES
SEE ALSO
AUTHORllooccaallee - PPeerrll pprraaggmmaa ttoo uussee aanndd aavvooiidd PPOOSSIIXX llooccaalleess ffoorr bbuuiilltt-iinn ooppeerraa-
ttiioonnssSYNOPSIS
DESCRIPTION
ooppeenn - ppeerrll pprraaggmmaa ttoo sseett ddeeffaauulltt PPeerrllIIOO llaayyeerrss ffoorr iinnppuutt aanndd oouuttppuutt
SYNOPSIS
DESCRIPTION
NONPERLIO FUNCTIONALITY IMPLEMENTATION DETAILSSEE ALSO
ooppss - PPeerrll pprraaggmmaa ttoo rreessttrriicctt uunnssaaffee ooppeerraattiioonnss wwhheenn ccoommppiilliinngg
SYNOPSIS
DESCRIPTION
SEE ALSO
oovveerrllooaadd - PPaacckkaaggee ffoorr oovveerrllooaaddiinngg ppeerrll ooppeerraattiioonnss
SYNOPSIS
DESCRIPTION
Declaration of overloaded functions Calling Conventions for Binary Operations FALSE, TRUE, "undef" Calling Conventions for Unary Operations Calling Conventions for Mutators"++" and "-", "x=" and other assignment versions
Overloadable Operations Arithmetic operations, Comparison operations, Bit operations, Increment and decrement, Transcendental functions, Boolean,string and numeric conversion, Iteration, Dereferencing, Spe-
cial Inheritance and overloading Strings as values of "use overload" directive, Overloading of an operation is inherited by derived classes SPECIAL SYMBOLS FOR "use overload" Last Resort Fallback "undef", TRUE, defined, but FALSE Copy Constructor EExxaammppllee MAGIC AUTOGENERATION Assignment forms of arithmetic operations, Conversion operations,Increment and decrement, "abs($a)", Unary minus, Negation, Concate-
nation, Comparison operations, Iterator, Dereferencing, Copy opera-
tor Losing overloadingRun-time Overloading
Public functionsoverload::StrVal(arg), overload::Overloaded(arg), over-
load::Method(obj,op) Overloading constants integer, float, binary, q, qr IMPLEMENTATION Metaphor clash CookbookTwo-face scalars
Two-face references
Symbolic calculator Really symbolic calculator AUTHOR DIAGNOSTICSOdd number of arguments for overload::constant, `%s' is not an
overloadable type, `%s' is not a code reference
BUGS
ssiiggttrraapp - PPeerrll pprraaggmmaa ttoo eennaabbllee ssiimmppllee ssiiggnnaall hhaannddlliinngg
SYNOPSIS
DESCRIPTION
OPTIONS
SIGNAL HANDLERSssttaacckk-ttrraaccee, ddiiee, hhaannddlleerr your-handler
SIGNAL LISTSnnoorrmmaall-ssiiggnnaallss, eerrrroorr-ssiiggnnaallss, oolldd-iinntteerrffaaccee-ssiiggnnaallss
OTHER uunnttrraappppeedd, aannyy, signal, numberEXAMPLES
ssoorrtt - ppeerrll pprraaggmmaa ttoo ccoonnttrrooll sort() bbeehhaavviioouurr
SYNOPSIS
DESCRIPTION
CAVEATSssttrriicctt - PPeerrll pprraaggmmaa ttoo rreessttrriicctt uunnssaaffee ccoonnssttrruuccttss
SYNOPSIS
DESCRIPTION
"strict refs", "strict vars", "strict subs" HISTORYssuubbss - PPeerrll pprraaggmmaa ttoo pprreeddeeccllaarree ssuubb nnaammeess
SYNOPSIS
DESCRIPTION
tthhrreeaaddsshhaarreedd,, tthhrreeaaddss::::sshhaarreedd - PPeerrll eexxtteennssiioonn ffoorr sshhaarriinngg ddaattaa ssttrruucc-
ttuurreess bbeettwweeeenn tthhrreeaaddssSYNOPSIS
DESCRIPTION
EXPORT FUNCTIONSshare VARIABLE, lock VARIABLE, condwait VARIABLE, condwait COND-
VAR, LOCKVAR, condtimedwait VARIABLE, ABSTIMEOUT, condtimedwait CONDVAR, ABSTIMEOUT, LOCKVAR, condsignal VARIABLE, condbroadcast VARIABLENOTES
BUGS
AUTHORSEE ALSO
uuttff88 - PPeerrll pprraaggmmaa ttoo eennaabbllee//ddiissaabbllee UUTTFF-88 ((oorr UUTTFF-EEBBCCDDIICC)) iinn ssoouurrccee
ccooddeeSYNOPSIS
DESCRIPTION
Utility functions$numoctets = utf8::upgrade($string), $success = utf8::down-
grade($string[, FAILOK]), utf8::encode($string),
utf8::decode($string), $flag = utf8::isutf8(STRING), $flag =
utf8::valid(STRING)BUGS
SEE ALSO
vvaarrss - PPeerrll pprraaggmmaa ttoo pprreeddeeccllaarree gglloobbaall vvaarriiaabbllee nnaammeess ((oobbssoolleettee))
SYNOPSIS
DESCRIPTION
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
use warnings::register, warnings::enabled(), warn-
ings::enabled($category), warnings::enabled($object), warn-
ings::warn($message), warnings::warn($category, $message), warn-
ings::warn($object, $message), warnings::warnif($message), warn-
ings::warnif($category, $message), warnings::warnif($object, $mes-
sage)wwaarrnniinnggss::::rreeggiisstteerr - wwaarrnniinnggss iimmppoorrtt ffuunnccttiioonn
SYNOPSIS
DESCRIPTION
MMOODDUULLEE DDOOCCUUMMEENNTTAATTIIOONNAAnnyyDDBBMMFFiillee - pprroovviiddee ffrraammeewwoorrkk ffoorr mmuullttiippllee DDBBMMss
SYNOPSIS
DESCRIPTION
DBM Comparisons [0], [1], [2], [3]SEE ALSO
AAttttrriibbuuttee::::HHaannddlleerrss - SSiimmpplleerr ddeeffiinniittiioonn ooff aattttrriibbuuttee hhaannddlleerrss
VERSIONSYNOPSIS
DESCRIPTION
[0], [1], [2], [3], [4], [5] Typed lexicalsType-specific attribute handlers
Non-interpretive attribute handlers
Phase-specific attribute handlers
Attributes as "tie" interfacesEXAMPLES
DIAGNOSTICS"Bad attribute type: ATTR(%s)", "Attribute handler %s doesn't han-
dle %s attributes", "Declaration of %s attribute in package %s may
clash with future reserved word", "Can't have two ATTR specifierson one subroutine", "Can't autotie a %s", "Internal error: %s sym-
bol went missing", "Won't be able to apply END handler" AUTHORBUGS
COPYRIGHTAAuuttooLLooaaddeerr - 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 CAVEATSSEE ALSO
AAuuttooSSpplliitt - sspplliitt aa ppaacckkaaggee ffoorr aauuttoollooaaddiinngg
SYNOPSIS
DESCRIPTION
$keep, $check, $modtime
Multiple packages DIAGNOSTICS B The Perl CompilerSYNOPSIS
DESCRIPTION
OVERVIEW Utility Functions Functions Returning "B::SV", "B::AV", "B::HV", and "B::CV" objectssvundef, svyes, svno, svref2object(SVREF), amagicgenera-
tion, initav, checkav, beginav, endav, comppadlist, regexpadav, maincv Functions for Examining the Symbol Table walksymtable(SYMREF, METHOD, RECURSE, PREFIX) Functions Returning "B::OP" objects or for walking op treesmainroot, mainstart, walkoptree(OP, METHOD), walkop-
treedebug(DEBUG) Miscellaneous Utility Functions ppname(OPNUM), hash(STR), castI32(I), minusc, cstring(STR), perlstring(STR), class(OBJ), threadsvnames OVERVIEW OF CLASSESSV-RELATED CLASSES
B::SV Methods REFCNT, FLAGS, object2svref B::IV Methods IV, IVX, UVX, intvalue, needs64bits, packiv B::NV Methods NV, NVX B::RV Methods RV B::PV Methods PV, RV, PVX B::PVMG Methods MAGIC, SvSTASH B::MAGIC Methods MOREMAGIC, precomp, PRIVATE, TYPE, FLAGS, OBJ, PTR, REGEX B::PVLV Methods TARGOFF, TARGLEN, TYPE, TARG B::BM Methods USEFUL, PREVIOUS, RARE, TABLE B::GV Methodsisempty, NAME, SAFENAME, STASH, SV, IO, FORM, AV, HV, EGV, CV,
CVGEN, LINE, FILE, FILEGV, GvREFCNT, FLAGS B::IO MethodsLINES, PAGE, PAGELEN, LINESLEFT, TOPNAME, TOPGV, FMTNAME,
FMTGV, BOTTOMNAME, BOTTOMGV, SUBPROCESS, IoTYPE, IoFLAGS,
IsSTD B::AV Methods FILL, MAX, OFF, ARRAY, ARRAYelt, AvFLAGS B::CV MethodsSTASH, START, ROOT, GV, FILE, DEPTH, PADLIST, OUTSIDE, OUT-
SIDESEQ, XSUB, XSUBANY, CvFLAGS, constsv B::HV MethodsFILL, MAX, KEYS, RITER, NAME, PMROOT, ARRAY
OP-RELATED CLASSES
B::OP Methods next, sibling, name, ppaddr, desc, targ, type, opt, static, flags, private, spare B::UNOP METHOD first B::BINOP METHOD last B::LOGOP METHOD other B::LISTOP METHOD children B::PMOP Methods pmreplroot, pmreplstart, pmnext, pmregexp, pmflags, pmdynflags, pmpermflags, precomp, pmoffset B::SVOP METHOD sv, gv B::PADOP METHOD padix B::PVOP METHOD pv B::LOOP Methods redoop, nextop, lastop B::COP Methods label, stash, stashpv, file, copseq, arybase, line, warnings, io AUTHORBB::::AAssmmddaattaa - AAuuttooggeenneerraatteedd ddaattaa aabboouutt PPeerrll ooppss,, uusseedd ttoo ggeenneerraattee bbyyttee-
ccooddeeSYNOPSIS
DESCRIPTION
%insndata, @insnname, @optype, @specialsvname
AUTHORBB::::AAsssseemmbblleerr - AAsssseemmbbllee PPeerrll bbyytteeccooddee
SYNOPSIS
DESCRIPTION
AUTHORSBB::::BBbblloocckk - WWaallkk bbaassiicc bblloocckkss
SYNOPSIS
DESCRIPTION
Functions ffiinnddlleeaaddeerrss AUTHORBB::::BByytteeccooddee - PPeerrll ccoommppiilleerr''ss bbyytteeccooddee bbaacckkeenndd
SYNOPSIS
DESCRIPTION
EXAMPLE
OPTIONS
-bb, -HH, -kk, -oooutfile, -ss
KNOWN BUGS
NOTICE AUTHORSBB::::CC - PPeerrll ccoommppiilleerr''ss CC bbaacckkeenndd
SYNOPSIS
DESCRIPTION
OPTIONS
-ooffiilleennaammee, -vv, --, -uuPPaacckknnaammee, -DD, -DDoo, -DDcc, -DDAA, -DDCC, -DDMM, -ff,
-ffccoogg, -ffssaavvee-ddaattaa, -ffppppaaddddrr, -ffwwaarrnn-ssvv, -ffuussee-ssccrriipptt-nnaammee,
-ffssaavvee-ssiigg-hhaasshh, -OOnn, -OO00, -OO11, -OO22, -lllliimmiitt
EXAMPLES
BUGS
AUTHORBB::::CCCC - PPeerrll ccoommppiilleerr''ss ooppttiimmiizzeedd CC ttrraannssllaattiioonn bbaacckkeenndd
SYNOPSIS
DESCRIPTION
OPTIONS
-ooffiilleennaammee, -vv, --, -uuPPaacckknnaammee, -mmMMoodduulleennaammee, -DD, -DDrr, -DDOO, -DDss,
-DDpp, -DDqq, -DDll, -DDtt, -ff, -ffffrreeeettmmppss-eeaacchh-bbbblloocckk,
-ffffrreeeettmmppss-eeaacchh-lloooopp, -ffoommiitt-ttaaiinntt, -OOnn
EXAMPLES
BUGS
DIFFERENCES Loops Context of ".." Arithmetic Deprecated features AUTHORBB::::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-bbaasseen, -bbiiggeennddiiaann, -lliittttlleeeennddiiaann
Other options-mmaaiinn, -nnoommaaiinn, -nnoobbaannnneerr, -bbaannnneerr, -bbaannnneerriiss => subref
Option Stickiness ABBREVIATIONS OP class abbreviations OP flags abbreviations FORMATTING SPECIFICATIONS Special Patterns ((xx((exectext;;basictext))xx)), ((**((text))**)), ((**((text1;;text2))**)),((??((text1##varText2))??)), ~~
# Variables
##var, ##varN, ##Var, ##aaddddrr, ##aarrgg, ##ccllaassss, ##ccllaassssssyymm, ##ccooppllaabbeell,
##eexxnnaammee, ##eexxttaarrgg, ##ffiirrssttaaddddrr, ##ffllaaggss, ##ffllaaggvvaall, ##hhyypphhsseeqq,
#label #lastaddr, #name #NAME, #next #nextaddr, #noise
##pprriivvaattee, ##pprriivvvvaall, ##sseeqq, ##sseeqqnnuumm, ##oopptt, ##ssttaattiicc, ##ssiibbaaddddrr,
##ssvvaaddddrr, ##ssvvccllaassss, ##ssvvvvaall, ##ttaarrgg, ##ttaarrggaarrgg, ##ttaarrggaarrgglliiffee,
##ttyyppeennuumm
Using B::Concise outside of the O framework Example: Altering Concise Renderings setstyle()setstylestandard($name)
addstyle() addcallback() Running B::Concise::compile() B::Concise::resetsequence() Errors AUTHORBB::::DDeebbuugg - WWaallkk PPeerrll ssyynnttaaxx ttrreeee,, pprriinnttiinngg ddeebbuugg iinnffoo aabboouutt ooppss
SYNOPSIS
DESCRIPTION
AUTHORBB::::DDeeppaarrssee - PPeerrll ccoommppiilleerr bbaacckkeenndd ttoo pprroodduuccee ppeerrll ccooddee
SYNOPSIS
DESCRIPTION
OPTIONS
-dd, -ffFILE, -ll, -pp, -PP, -qq, -ssLETTERS, CC, iiNUMBER, TT, vvSTRING..,
-xxLEVEL
USING B::Deparse AS A MODULE Synopsis Description new ambientpragmasstrict, $[, bytes, utf8, integer, re, warnings, hintbits,
warningbits coderef2textBUGS
AUTHORBB::::DDiissaasssseemmbblleerr - DDiissaasssseemmbbllee PPeerrll bbyytteeccooddee
SYNOPSIS
DESCRIPTION
AUTHORBB::::LLiinntt - PPeerrll lliinntt
SYNOPSIS
DESCRIPTION
OPTIONS AND LINT CHECKS
ccoonntteexxtt, iimmpplliicciitt-rreeaadd and iimmpplliicciitt-wwrriittee, bbaarree-ssuubbss, ddoollllaarr-uunnddeerr-
ssccoorree, pprriivvaattee-nnaammeess, uunnddeeffiinneedd-ssuubbss, rreeggeexxpp-vvaarriiaabblleess, aallll, nnoonnee
NON LINT-CHECK OPTIONS
-uu PPaacckkaaggee
BUGS
AUTHORBB::::OO,, OO - GGeenneerriicc iinntteerrffaaccee ttoo PPeerrll CCoommppiilleerr bbaacckkeennddss
SYNOPSIS
DESCRIPTION
CONVENTIONS IMPLEMENTATIONBUGS
AUTHORBB::::SShhoowwlleexx - SShhooww lleexxiiccaall vvaarriiaabblleess uusseedd iinn ffuunnccttiioonnss oorr ffiilleess
SYNOPSIS
DESCRIPTION
EXAMPLES
OPTIONS
SEE ALSO
TODO AUTHORBB::::SSttaacckkoobbjj - HHeellppeerr mmoodduullee ffoorr CCCC bbaacckkeenndd
SYNOPSIS
DESCRIPTION
AUTHORBB::::SSttaasshh - sshhooww wwhhaatt ssttaasshheess aarree llooaaddeedd
BB::::TTeerrssee - WWaallkk PPeerrll ssyynnttaaxx ttrreeee,, pprriinnttiinngg tteerrssee iinnffoo aabboouutt ooppss
SYNOPSIS
DESCRIPTION
AUTHORBB::::XXrreeff - GGeenneerraatteess ccrroossss rreeffeerreennccee rreeppoorrttss ffoorr PPeerrll pprrooggrraammss
SYNOPSIS
DESCRIPTION
OPTIONS
"-oFILENAME", "-r", "-d", "-D[tO]"
BUGS
AUTHORBBbblloocckk,, BB::::BBbblloocckk - WWaallkk bbaassiicc bblloocckkss
SYNOPSIS
DESCRIPTION
Functions ffiinnddlleeaaddeerrss AUTHORBBeenncchhmmaarrkk - 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 ) :hireswallclockNOTES
EXAMPLES
INHERITANCE CAVEATSSEE ALSO
AUTHORS MODIFICATION HISTORYBByytteeLLooaaddeerr - llooaadd bbyyttee ccoommppiilleedd ppeerrll ccooddee
SYNOPSIS
DESCRIPTION
AUTHORSEE ALSO
BByytteeccooddee,, BB::::BByytteeccooddee - PPeerrll ccoommppiilleerr''ss bbyytteeccooddee bbaacckkeenndd
SYNOPSIS
DESCRIPTION
EXAMPLE
OPTIONS
-bb, -HH, -kk, -oooutfile, -ss
KNOWN BUGS
NOTICE AUTHORSCCGGII - SSiimmppllee CCoommmmoonn GGaatteewwaayy IInntteerrffaaccee CCllaassss
SYNOPSIS
ABSTRACTDESCRIPTION
PROGRAMMING STYLE CALLING CGI.PM ROUTINESCREATING A NEW QUERY OBJECT (OBJECT-ORIENTED STYLE):
CREATING A NEW QUERY OBJECT FROM AN INPUT FILE
FETCHING A LIST OF KEYWORDS FROM THE QUERY:FETCHING THE NAMES OF ALL THE PARAMETERS PASSED TO YOUR SCRIPT:
FETCHING THE VALUE OR VALUES OF A SINGLE NAMED PARAMETER:
SETTING THE VALUE(S) OF A NAMED PARAMETER:
APPENDING ADDITIONAL VALUES TO A NAMED PARAMETER:
IMPORTING ALL PARAMETERS INTO A NAMESPACE:
DELETING A PARAMETER COMPLETELY:DELETING ALL PARAMETERS:
DIRECT ACCESS TO THE PARAMETER LIST: FETCHING THE PARAMETER LIST AS A HASH: SAVING THE STATE OF THE SCRIPT TO A FILE:RETRIEVING CGI ERRORS
USING THE FUNCTION-ORIENTED INTERFACE
::ccggii, ::ffoorrmm, ::hhttmmll22, ::hhttmmll33, ::hhttmmll44, ::nneettssccaappee, ::hhttmmll, ::ssttaann-
ddaarrdd, ::aallll PRAGMAS-any, -compile, -nosticky, -noundefparams, -noxhtml, -nph,
-newstyleurls, -oldstyleurls, -autoload, -nodebug, -debug,
-privatetempfiles
SPECIAL FORMS FOR IMPORTING HTML-TAG FUNCTIONS
1. starttable() (generates atag), 2. endtable() (generates a
tag), 3. startul() (generates atag), 4. endul() (generates a
tag) GENERATING DYNAMIC DOCUMENTS CREATING A STANDARD HTTP HEADER: GENERATING A REDIRECTION HEADER CREATING THE HTML DOCUMENT HEADER PPaarraammeetteerrss::, 4, 5, 6.. ENDING THE HTML DOCUMENT:CREATING A SELF-REFERENCING URL THAT PRESERVES STATE INFORMATION:
OBTAINING THE SCRIPT'S URL-aabbssoolluuttee, -rreellaattiivvee, -ffuullll, -ppaatthh (-ppaatthhiinnffoo), -qquueerryy
(-qquueerryyssttrriinngg), -bbaassee
MIXING POST AND URL PARAMETERS
CREATING STANDARD HTML ELEMENTS: PROVIDING ARGUMENTS TO HTML SHORTCUTS THE DISTRIBUTIVE PROPERTY OF HTML SHORTCUTS HTML SHORTCUTS AND LIST INTERPOLATIONNON-STANDARD HTML SHORTCUTS
AUTOESCAPING HTML$escapedstring = escapeHTML("unescaped string");, $charset =
charset([$charset]);, $flag = autoEscape([$flag]);
PRETTY-PRINTING HTML
CREATING FILL-OUT FORMS:
CREATING AN ISINDEX TAG STARTING AND ENDING A FORMaapppplliiccaattiioonn//xx-wwwwww-ffoorrmm-uurrlleennccooddeedd, mmuullttiippaarrtt//ffoorrmm-ddaattaa
CREATING A TEXT FIELD PPaarraammeetteerrss CREATING A BIG TEXT FIELD CREATING A PASSWORD FIELD CREATING A FILE UPLOAD FIELD PPaarraammeetteerrss CREATING A POPUP MENUCREATING AN OPTION GROUP
CREATING A SCROLLING LIST PPaarraammeetteerrss:: CREATING A GROUP OF RELATED CHECKBOXES PPaarraammeetteerrss:: CREATING A STANDALONE CHECKBOX PPaarraammeetteerrss:: CREATING A RADIO BUTTON GROUP PPaarraammeetteerrss:: CREATING A SUBMIT BUTTON PPaarraammeetteerrss:: CREATING A RESET BUTTON CREATING A DEFAULT BUTTON CREATING A HIDDEN FIELD PPaarraammeetteerrss:: CREATING A CLICKABLE IMAGE BUTTONPPaarraammeetteerrss::, 3. The third option (-align, optional) is an
alignment type, and may be TOP, BOTTOM or MIDDLE CREATING A JAVASCRIPT ACTION BUTTON HTTP COOKIES 1. an expiration time, 2. a domain, 3. a path, 4. a "secure" flag,-nnaammee, -vvaalluuee, -ppaatthh, -ddoommaaiinn, -eexxppiirreess, -sseeccuurree
WORKING WITH FRAMES 1. Create a