X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperltoc.pod;h=5595bda82d068e18e8694f5c5d79d5139091f1a6;hb=56da5a46eac515b5a165aaf05cb06f7bcdfd8e67;hp=984abdb16c3a91ebf5c1cca18a515c24d2f53304;hpb=e969ef56d2ce92c4add247c1cf714c73bc057bc5;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perltoc.pod b/pod/perltoc.pod index 984abdb..5595bda 100644 --- a/pod/perltoc.pod +++ b/pod/perltoc.pod @@ -1,4 +1,8 @@ +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is autogenerated by buildtoc from all the other pods. +# Edit those files and run buildtoc --build-toc to effect changes. + =head1 NAME perltoc - perl documentation table of contents @@ -103,113 +107,136 @@ Parentheses for capturing, Other regexp features =back -=head2 perlfaq - frequently asked questions about Perl ($Date: 2003/01/31 -17:37:17 $) +=head2 perlreftut - Mark's very short tutorial about references =over 4 =item DESCRIPTION +=item Who Needs Complicated Data Structures? + +=item The Solution + +=item Syntax + =over 4 -=item Where to get the perlfaq +=item Making References -=item How to contribute to the perlfaq +=item Using References -=item What will happen if you mail your Perl programming problems to the -authors +=item An Example + +=item Arrow Rule =back -=item Credits +=item Solution -=item Author and Copyright Information +=item The Rest + +=item Summary + +=item Credits =over 4 -=item Bundled Distributions +=item Distribution Conditions -=item Disclaimer +=back =back -=item Table of Contents +=head2 perldsc - Perl Data Structures Cookbook -perlfaq - this document, 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 - Networking +=over 4 -=item The Questions +=item DESCRIPTION -=over 4 +arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, +more elaborate constructs -=item L: General Questions About Perl +=item REFERENCES -=item L: Obtaining and Learning about Perl +=item COMMON MISTAKES -=item L: Programming Tools +=item CAVEAT ON PRECEDENCE -=item L: Data Manipulation +=item WHY YOU SHOULD ALWAYS C -=item L: Files and Formats +=item DEBUGGING -=item L: Regular Expressions +=item CODE EXAMPLES -=item L: General Perl Language Issues +=item ARRAYS OF ARRAYS -=item L: System Interaction +=over 4 -=item L: Networking +=item Declaration of an ARRAY OF ARRAYS -=back +=item Generation of an ARRAY OF ARRAYS + +=item Access and Printing of an ARRAY OF ARRAYS =back -=head2 perlbook - Perl book information +=item HASHES OF ARRAYS =over 4 -=item DESCRIPTION +=item Declaration of a HASH OF ARRAYS + +=item Generation of a HASH OF ARRAYS + +=item Access and Printing of a HASH OF ARRAYS =back -=head2 perlsyn - Perl syntax +=item ARRAYS OF HASHES =over 4 -=item DESCRIPTION +=item Declaration of an ARRAY OF HASHES -=over 4 +=item Generation of an ARRAY OF HASHES -=item Declarations +=item Access and Printing of an ARRAY OF HASHES -=item Comments +=back -=item Simple Statements +=item HASHES OF HASHES -=item Compound Statements +=over 4 -=item Loop Control +=item Declaration of a HASH OF HASHES -=item For Loops +=item Generation of a HASH OF HASHES -=item Foreach Loops +=item Access and Printing of a HASH OF HASHES -=item Basic BLOCKs and Switch Statements +=back -=item Goto +=item MORE ELABORATE RECORDS -=item PODs: Embedded Documentation +=over 4 -=item Plain Old Comments (Not!) +=item Declaration of MORE ELABORATE RECORDS + +=item Declaration of a HASH OF COMPLEX RECORDS + +=item Generation of a HASH OF COMPLEX RECORDS =back +=item Database Ties + +=item SEE ALSO + +=item AUTHOR + =back -=head2 perldata - Perl data types +=head2 perllol - Manipulating Arrays of Arrays in Perl =over 4 @@ -217,533 +244,405 @@ Interaction, perlfaq9 - Networking =over 4 -=item Variable names - -=item Context - -=item Scalar values - -=item Scalar value constructors +=item Declaration and Access of Arrays of Arrays -=item List value constructors +=item Growing Your Own -=item Subscripts +=item Access and Printing =item Slices -=item Typeglobs and Filehandles - =back =item SEE ALSO +=item AUTHOR + =back -=head2 perlop - Perl operators and precedence +=head2 perlrequick - Perl regular expressions quick start =over 4 -=item SYNOPSIS - =item DESCRIPTION +=item The Guide + =over 4 -=item Terms and List Operators (Leftward) +=item Simple word matching -=item The Arrow Operator +=item Using character classes -=item Auto-increment and Auto-decrement +=item Matching this or that -=item Exponentiation +=item Grouping things and hierarchical matching -=item Symbolic Unary Operators +=item Extracting matches -=item Binding Operators +=item Matching repetitions -=item Multiplicative Operators +=item More matching -=item Additive Operators +=item Search and replace -=item Shift Operators +=item The split operator -=item Named Unary Operators +=back -=item Relational Operators +=item BUGS -=item Equality Operators +=item SEE ALSO -=item Bitwise And +=item AUTHOR AND COPYRIGHT -=item Bitwise Or and Exclusive Or +=over 4 -=item C-style Logical And +=item Acknowledgments -=item C-style Logical Or +=back -=item C-style Logical Defined-Or +=back -=item Range Operators +=head2 perlretut - Perl regular expressions tutorial -=item Conditional Operator +=over 4 -=item Assignment Operators +=item DESCRIPTION -=item Comma Operator +=item Part 1: The basics -=item List Operators (Rightward) +=over 4 -=item Logical Not +=item Simple word matching -=item Logical And +=item Using character classes -=item Logical or, Defined or, and Exclusive Or +=item Matching this or that -=item C Operators Missing From Perl +=item Grouping things and hierarchical matching -unary &, unary *, (TYPE) +=item Extracting matches -=item Quote and Quote-like Operators +=item Matching repetitions -=item Regexp Quote-Like Operators +=item Building a regexp -?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, C<'STRING'>, -qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/, `STRING`, qw/STRING/, -s/PATTERN/REPLACEMENT/egimosx, tr/SEARCHLIST/REPLACEMENTLIST/cds, -y/SEARCHLIST/REPLACEMENTLIST/cds, <, C, C, C, C, C<''>, C, C<"">, -C<``>, C, C, C<< >>, C, C, C, -C,, Interpolation of regular expressions, Optimization of -regular expressions +=item Part 2: Power tools -=item I/O Operators +=over 4 -=item Constant Folding +=item More on characters, strings, and character classes -=item Bitwise String Operators +=item Compiling and saving regular expressions -=item Integer Arithmetic +=item Embedding comments and modifiers in a regular expression -=item Floating-point Arithmetic +=item Non-capturing groupings -=item Bigger Numbers +=item Looking ahead and looking behind -=back +=item Using independent subexpressions to prevent backtracking -=back +=item Conditional expressions -=head2 perlsub - Perl subroutines +=item A bit of magic: executing Perl code in a regular expression -=over 4 +=item Pragmas and debugging -=item SYNOPSIS +=back -=item DESCRIPTION +=item BUGS -=over 4 +=item SEE ALSO -=item Private Variables via my() +=item AUTHOR AND COPYRIGHT -=item Persistent Private Variables +=over 4 -=item Temporary Values via local() +=item Acknowledgments -=item Lvalue subroutines +=back -Lvalue subroutines are EXPERIMENTAL +=back -=item Passing Symbol Table Entries (typeglobs) +=head2 perlboot - Beginner's Object-Oriented Tutorial -=item When to Still Use local() +=over 4 -=item Pass by Reference +=item DESCRIPTION -=item Prototypes +=over 4 -=item Constant Functions +=item If we could talk to the animals... -=item Overriding Built-in Functions +=item Introducing the method invocation arrow -=item Autoloading - -=item Subroutine Attributes +=item Invoking a barnyard -=back +=item The extra parameter of method invocation -=item SEE ALSO +=item Calling a second method to simplify things -=back +=item Inheriting the windpipes -=head2 perlfunc - Perl builtin functions +=item A few notes about @ISA -=over 4 +=item Overriding the methods -=item DESCRIPTION +=item Starting the search from a different place -=over 4 +=item The SUPER way of doing things -=item Perl Functions by Category +=item Where we're at so far... -Functions for SCALARs or strings, Regular expressions and pattern matching, -Numeric functions, Functions for real @ARRAYs, Functions for list data, -Functions for real %HASHes, Input and output functions, Functions for fixed -length data or records, Functions for filehandles, files, or directories, -Keywords related to the control flow of your perl program, Keywords related -to scoping, Miscellaneous functions, Functions for processes and process -groups, Keywords related to perl modules, Keywords related to classes and -object-orientedness, Low-level socket functions, System V interprocess -communication functions, Fetching user and group info, Fetching network -info, Time-related functions, Functions new in perl5, Functions obsoleted -in perl5 +=item A horse is a horse, of course of course -- or is it? -=item Portability +=item Invoking an instance method -=item Alphabetical Listing of Perl Functions +=item Accessing the instance data --I FILEHANDLE, -I EXPR, -I, abs VALUE, abs, accept -NEWSOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bind SOCKET,NAME, -binmode FILEHANDLE, LAYER, binmode FILEHANDLE, bless REF,CLASSNAME, bless -REF, 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 SUBROUTINE(LIST), do EXPR, dump LABEL, dump, -each HASH, eof FILEHANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST, -exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntl -FILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHANDLE,OPERATION, -fork, format, formline PICTURE,LIST, getc FILEHANDLE, getc, getlogin, -getpeername SOCKET, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam -NAME, getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname -NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr -ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, -getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent, -getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent -STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, -endhostent, endnetent, endprotoent, endservent, getsockname SOCKET, -getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, 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, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length, -link OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR, -lock THING, log EXPR, log, lstat EXPR, lstat, m//, map BLOCK 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, no Module, oct -EXPR, oct, open FILEHANDLE,EXPR, open FILEHANDLE,MODE,EXPR, open -FILEHANDLE,MODE,EXPR,LIST, open FILEHANDLE,MODE,REFERENCE, open FILEHANDLE, -opendir DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, our EXPR TYPE, our EXPR : -ATTRS, our TYPE EXPR : ATTRS, pack TEMPLATE,LIST, package NAMESPACE, -package, pipe READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR, pos, -print FILEHANDLE LIST, print LIST, print, printf FILEHANDLE 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, setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL, shift ARRAY, -shift, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread ID,VAR,POS,SIZE, -shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW, sin EXPR, sin, sleep -EXPR, sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL, socketpair -SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, sort SUBNAME LIST, sort BLOCK LIST, -sort LIST, splice ARRAY,OFFSET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH, -splice ARRAY,OFFSET, splice ARRAY, split /PATTERN/,EXPR,LIMIT, split -/PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST, format -parameter index, flags, vector flag, (minimum) width, precision, or maximum -width, size, order of arguments, sqrt EXPR, sqrt, srand EXPR, srand, stat -FILEHANDLE, stat EXPR, stat, 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, substr -EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall LIST, sysopen -FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread -FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH, sysseek -FILEHANDLE,POSITION,WHENCE, system LIST, system PROGRAM LIST, syswrite -FILEHANDLE,SCALAR,LENGTH,OFFSET, syswrite FILEHANDLE,SCALAR,LENGTH, -syswrite FILEHANDLE,SCALAR, tell FILEHANDLE, tell, telldir DIRHANDLE, tie -VARIABLE,CLASSNAME,LIST, tied VARIABLE, time, times, tr///, truncate -FILEHANDLE,LENGTH, truncate EXPR,LENGTH, uc EXPR, uc, ucfirst EXPR, -ucfirst, umask EXPR, umask, undef EXPR, undef, unlink LIST, unlink, unpack -TEMPLATE,EXPR, unpack TEMPLATE, untie VARIABLE, unshift ARRAY,LIST, use -Module VERSION LIST, use Module 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/// +=item How to build a horse -=back +=item Inheriting the constructor -=back +=item Making a method work with either classes or instances -=head2 perlreftut - Mark's very short tutorial about references +=item Adding parameters to a method -=over 4 +=item More interesting instances -=item DESCRIPTION +=item A horse of a different color -=item Who Needs Complicated Data Structures? +=item Summary -=item The Solution +=back -=item Syntax +=item SEE ALSO -=over 4 +=item COPYRIGHT -=item Making References +=back -=item Using References +=head2 perltoot - Tom's object-oriented tutorial for perl -=item An Example +=over 4 -=item Arrow Rule +=item DESCRIPTION -=back +=item Creating a Class -=item Solution +=over 4 -=item The Rest +=item Object Representation -=item Summary +=item Class Interface -=item Credits +=item Constructors and Instance Methods -=over 4 +=item Planning for the Future: Better Constructors -=item Distribution Conditions +=item Destructors -=back +=item Other Object Methods =back -=head2 perldsc - Perl Data Structures Cookbook +=item Class Data =over 4 -=item DESCRIPTION - -arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, -more elaborate constructs - -=item REFERENCES +=item Accessing Class Data -=item COMMON MISTAKES +=item Debugging Methods -=item CAVEAT ON PRECEDENCE +=item Class Destructors -=item WHY YOU SHOULD ALWAYS C +=item Documenting the Interface -=item DEBUGGING +=back -=item CODE EXAMPLES +=item Aggregation -=item ARRAYS OF ARRAYS +=item Inheritance =over 4 -=item Declaration of an ARRAY OF ARRAYS +=item Overridden Methods -=item Generation of an ARRAY OF ARRAYS +=item Multiple Inheritance -=item Access and Printing of an ARRAY OF ARRAYS +=item UNIVERSAL: The Root of All Objects =back -=item HASHES OF ARRAYS +=item Alternate Object Representations =over 4 -=item Declaration of a HASH OF ARRAYS - -=item Generation of a HASH OF ARRAYS +=item Arrays as Objects -=item Access and Printing of a HASH OF ARRAYS +=item Closures as Objects =back -=item ARRAYS OF HASHES +=item AUTOLOAD: Proxy Methods =over 4 -=item Declaration of an ARRAY OF HASHES - -=item Generation of an ARRAY OF HASHES +=item Autoloaded Data Methods -=item Access and Printing of an ARRAY OF HASHES +=item Inherited Autoloaded Data Methods =back -=item HASHES OF HASHES +=item Metaclassical Tools =over 4 -=item Declaration of a HASH OF HASHES - -=item Generation of a HASH OF HASHES +=item Class::Struct -=item Access and Printing of a HASH OF HASHES +=item Data Members as Variables =back -=item MORE ELABORATE RECORDS +=item NOTES =over 4 -=item Declaration of MORE ELABORATE RECORDS +=item Object Terminology -=item Declaration of a HASH OF COMPLEX RECORDS +=back -=item Generation of a HASH OF COMPLEX RECORDS +=item SEE ALSO -=back +=item AUTHOR AND COPYRIGHT -=item Database Ties +=item COPYRIGHT -=item SEE ALSO +=over 4 -=item AUTHOR +=item Acknowledgments =back -=head2 perlrequick - Perl regular expressions quick start +=back + +=head2 perltooc - Tom's OO Tutorial for Class Data in Perl =over 4 =item DESCRIPTION -=item The Guide +=item Class Data in a Can + +=item Class Data as Package Variables =over 4 -=item Simple word matching +=item Putting All Your Eggs in One Basket -=item Using character classes +=item Inheritance Concerns -=item Matching this or that +=item The Eponymous Meta-Object -=item Grouping things and hierarchical matching +=item Indirect References to Class Data -=item Extracting matches +=item Monadic Classes -=item Matching repetitions +=item Translucent Attributes -=item More matching +=back -=item Search and replace +=item Class Data as Lexical Variables -=item The split operator +=over 4 -=back +=item Privacy and Responsibility -=item BUGS +=item File-Scoped Lexicals -=item SEE ALSO +=item More Inheritance Concerns -=item AUTHOR AND COPYRIGHT +=item Locking the Door and Throwing Away the Key -=over 4 - -=item Acknowledgments +=item Translucency Revisited =back +=item NOTES + +=item SEE ALSO + +=item AUTHOR AND COPYRIGHT + +=item ACKNOWLEDGEMENTS + +=item HISTORY + =back -=head2 perlpod - the Plain Old Documentation format +=head2 perlbot - Bag'o Object Tricks (the BOT) =over 4 =item DESCRIPTION -=over 4 +=item OO SCALING TIPS -=item Ordinary Paragraph +=item INSTANCE VARIABLES -=item Verbatim Paragraph +=item SCALAR INSTANCE VARIABLES -=item Command Paragraph +=item INSTANCE VARIABLE INHERITANCE -C<=head1 I>, C<=head2 I>, C<=head3 I>, C<=head4 I>, C<=over I>, C<=item -I>, C<=back>, C<=cut>, C<=pod>, C<=begin I>, C<=end -I>, C<=for I I> +=item OBJECT RELATIONSHIPS -=item Formatting Codes +=item OVERRIDING SUPERCLASS METHODS -CtextE> -- italic text, CtextE> -- bold text, -CcodeE> -- code text, CnameE> -- a hyperlink, -CescapeE> -- a character escape, CfilenameE> -- used -for filenames, CtextE> -- text contains non-breaking spaces, -Ctopic nameE> -- an index entry, CE> -- a null -(zero-effect) formatting code +=item USING RELATIONSHIP WITH SDBM -=item The Intent +=item THINKING OF CODE REUSE -=item Embedding Pods in Perl Modules +=item CLASS CONTEXT AND THE OBJECT -=item Hints for Writing Pod +=item INHERITING A CONSTRUCTOR -=back +=item DELEGATION =item SEE ALSO -=item AUTHOR - =back -=head2 perlpodspec - Plain Old Documentation: format specification and -notes +=head2 perlstyle - Perl style guide =over 4 =item DESCRIPTION -=item Pod Definitions - -=item Pod Commands - -"=head1", "=head2", "=head3", "=head4", "=pod", "=cut", "=over", "=item", -"=back", "=begin formatname", "=end formatname", "=for formatname text..." - -=item Pod Formatting Codes - -CtextE> -- italic text, CtextE> -- bold text, -CcodeE> -- code text, CfilenameE> -- style for -filenames, Ctopic nameE> -- an index entry, CE> -- a -null (zero-effect) formatting code, CnameE> -- a hyperlink, -CescapeE> -- a character escape, CtextE> -- text -contains non-breaking spaces - -=item Notes on Implementing Pod Processors - -=item About LE...E Codes +=back -First:, Second:, Third:, Fourth:, Fifth:, Sixth: +=head2 perlcheat - Perl 5 Cheat Sheet -=item About =over...=back Regions +=over 4 -=item About Data Paragraphs and "=begin/=end" Regions +=item DESCRIPTION -=item SEE ALSO +=over 4 -=item AUTHOR +=item The sheet =back -=head2 perlstyle - Perl style guide +=item ACKNOWLEDGEMENTS -=over 4 +=item AUTHOR -=item DESCRIPTION +=item SEE ALSO =back @@ -832,256 +731,211 @@ LIMIT specified =back -=head2 perlcheat - Perl 5 Cheat Sheet +=head2 perldebtut - Perl debugging tutorial =over 4 =item DESCRIPTION -=over 4 +=item use strict -=item The sheet +=item Looking at data and -w and v -=back +=item help -=item ACKNOWLEDGEMENTS +=item Stepping through code -=item AUTHOR +=item Placeholder for a, w, t, T -=item SEE ALSO +=item REGULAR EXPRESSIONS -=back +=item OUTPUT TIPS -=head2 perlrun - how to execute the Perl interpreter +=item CGI -=over 4 +=item GUIs -=item SYNOPSIS +=item SUMMARY -=item DESCRIPTION +=item SEE ALSO -=over 4 +=item AUTHOR -=item #! and quoting on non-Unix systems +=item CONTRIBUTORS -OS/2, MS-DOS, Win95/NT, Macintosh, VMS +=back -=item Location of Perl +=head2 perlfaq - frequently asked questions about Perl ($Date: 2003/01/31 +17:37:17 $) -=item Command Switches +=over 4 -B<-0>[I], B<-A [I]>, B<-a>, B<-C -[I]>, B<-c>, B<-d>, B<-d:>I, B<-D>I, -B<-D>I, B<-e> I, B<-F>I, B<-h>, -B<-i>[I], B<-I>I, B<-l>[I], -B<-m>[B<->]I, B<-M>[B<->]I, B<-M>[B<->]I<'module ...'>, -B<-[mM]>[B<->]I, B<-n>, B<-p>, B<-P>, B<-s>, B<-S>, -B<-t>, B<-T>, B<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I, B<-w>, B<-W>, -B<-X>, B<-x> I +=item DESCRIPTION -=back +=over 4 -=item ENVIRONMENT +=item Where to get the perlfaq -HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLIO, :bytes, :crlf, :mmap, -:perlio, :pop, :raw, :stdio, :unix, :utf8, :win32, PERLIO_DEBUG, PERLLIB, -PERL5DB, PERL5SHELL (specific to the Win32 port), PERL_DEBUG_MSTATS, -PERL_DESTRUCT_LEVEL, PERL_ENCODING, PERL_HASH_SEED, PERL_HASH_SEED_DEBUG, -PERL_ROOT (specific to the VMS port), PERL_SIGNALS, PERL_UNICODE, SYS$LOGIN -(specific to the VMS port) +=item How to contribute to the perlfaq + +=item What will happen if you mail your Perl programming problems to the +authors =back -=head2 perldiag - various Perl diagnostics +=item Credits + +=item Author and Copyright Information =over 4 -=item DESCRIPTION +=item Bundled Distributions + +=item Disclaimer =back -=head2 perllexwarn - Perl Lexical Warnings +=item Table of Contents -=over 4 +perlfaq - this document, 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 - Networking -=item DESCRIPTION +=item The Questions =over 4 -=item Default Warnings and Optional Warnings - -=item What's wrong with B<-w> and C<$^W> - -=item Controlling Warnings from the Command Line +=item L: General Questions About Perl -B<-w>, B<-W>, B<-X> +=item L: Obtaining and Learning about Perl -=item Backward Compatibility +=item L: Programming Tools -=item Category Hierarchy +=item L: Data Manipulation -=item Fatal Warnings +=item L: Files and Formats -=item Reporting Warnings from a Module +=item L: Regular Expressions -=back +=item L: General Perl Language Issues -=item TODO +=item L: System Interaction -=item SEE ALSO +=item L: Networking -=item AUTHOR +=back =back -=head2 perldebtut - Perl debugging tutorial +=head2 perlfaq1 - General Questions About Perl ($Revision: 1.14 $, $Date: +2003/11/23 08:02:29 $) =over 4 =item DESCRIPTION -=item use strict +=over 4 -=item Looking at data and -w and v +=item What is Perl? -=item help +=item Who supports Perl? Who develops it? Why is it free? -=item Stepping through code +=item Which version of Perl should I use? -=item Placeholder for a, w, t, T +=item What are perl4 and perl5? -=item REGULAR EXPRESSIONS +=item What is Ponie? -=item OUTPUT TIPS +=item What is perl6? -=item CGI +=item How stable is Perl? -=item GUIs +=item Is Perl difficult to learn? -=item SUMMARY +=item How does Perl compare with other languages like Java, Python, REXX, +Scheme, or Tcl? -=item SEE ALSO +=item Can I do [task] in Perl? -=item AUTHOR +=item When shouldn't I program in Perl? -=item CONTRIBUTORS +=item What's the difference between "perl" and "Perl"? -=back +=item Is it a Perl program or a Perl script? -=head2 perldebug - Perl debugging +=item What is a JAPH? -=over 4 +=item Where can I get a list of Larry Wall witticisms? -=item DESCRIPTION +=item How can I convince my sysadmin/supervisor/employees to use version +5/5.6.1/Perl instead of some other language? -=item The Perl Debugger +=back -=over 4 +=item AUTHOR AND COPYRIGHT -=item Debugger Commands +=back -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 [condition], 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] +=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.25 $, +$Date: 2003/10/16 04:57:38 $) -=item Configurable Options +=over 4 -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, C, -C +=item DESCRIPTION -=item Debugger input/output +=over 4 -Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame -listing +=item What machines support Perl? Where do I get it? -=item Debugging compile-time statements +=item How can I get a binary version of Perl? -=item Debugger Customization +=item I don't have a C compiler on my system. How can I compile perl? -=item Readline Support +=item I copied the Perl binary from one machine to another, but scripts +don't work. -=item Editor Support for Debugging - -=item The Perl Profiler +=item I grabbed the sources and tried to compile but gdbm/dynamic +loading/malloc/linking/... failed. How do I make it work? -=back +=item What modules and extensions are available for Perl? What is CPAN? +What does CPAN/src/... mean? -=item Debugging regular expressions +=item Is there an ISO or ANSI certified version of Perl? -=item Debugging memory usage +=item Where can I get information on Perl? -=item SEE ALSO +=item What are the Perl newsgroups on Usenet? Where do I post questions? -=item BUGS +=item Where should I post source code? -=back +=item Perl Books -=head2 perlvar - Perl predefined variables +References, Tutorials, Task-Oriented, Special Topics -=over 4 +=item Perl in Magazines -=item DESCRIPTION +=item Perl on the Net: FTP and WWW Access -=over 4 +=item What mailing lists are there for Perl? -=item Predefined Names +=item Archives of comp.lang.perl.misc -$ARG, $_, $a, $b, $>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $', -$LAST_PAREN_MATCH, $+, $^N, @LAST_MATCH_END, @+, -HANDLE->input_line_number(EXPR), $INPUT_LINE_NUMBER, $NR, $, -IO::Handle->input_record_separator(EXPR), $INPUT_RECORD_SEPARATOR, $RS, $/, -HANDLE->autoflush(EXPR), $OUTPUT_AUTOFLUSH, $|, -IO::Handle->output_field_separator EXPR, $OUTPUT_FIELD_SEPARATOR, $OFS, $,, -IO::Handle->output_record_separator EXPR, $OUTPUT_RECORD_SEPARATOR, $ORS, -$\, $LIST_SEPARATOR, $", $SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $OFMT, $#, -HANDLE->format_page_number(EXPR), $FORMAT_PAGE_NUMBER, $%, -HANDLE->format_lines_per_page(EXPR), $FORMAT_LINES_PER_PAGE, $=, -HANDLE->format_lines_left(EXPR), $FORMAT_LINES_LEFT, $-, @LAST_MATCH_START, -@-, C<$`> is the same as C, C<$&> is the same as -C, C<$'> is the same as C, C<$1> is the same as C, C<$2> -is the same as C, C<$3> is the same as -C, HANDLE->format_name(EXPR), -$FORMAT_NAME, $~, HANDLE->format_top_name(EXPR), $FORMAT_TOP_NAME, $^, -IO::Handle->format_line_break_characters EXPR, -$FORMAT_LINE_BREAK_CHARACTERS, $:, IO::Handle->format_formfeed EXPR, -$FORMAT_FORMFEED, $^L, $ACCUMULATOR, $^A, $CHILD_ERROR, $?, ${^ENCODING}, -$OS_ERROR, $ERRNO, $!, %!, $EXTENDED_OS_ERROR, $^E, $EVAL_ERROR, $@, -$PROCESS_ID, $PID, $$, $REAL_USER_ID, $UID, $<, $EFFECTIVE_USER_ID, $EUID, -$>, $REAL_GROUP_ID, $GID, $(, $EFFECTIVE_GROUP_ID, $EGID, $), -$PROGRAM_NAME, $0, $[, $], $COMPILING, $^C, $DEBUGGING, $^D, -$SYSTEM_FD_MAX, $^F, $^H, %^H, $INPLACE_EDIT, $^I, $^M, $OSNAME, $^O, -${^OPEN}, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, -0x100, 0x200, 0x400, $LAST_REGEXP_CODE_RESULT, $^R, -$EXCEPTIONS_BEING_CAUGHT, $^S, $BASETIME, $^T, ${^TAINT}, ${^UNICODE}, -$PERL_VERSION, $^V, $WARNING, $^W, ${^WARNING_BITS}, $EXECUTABLE_NAME, $^X, -ARGV, $ARGV, @ARGV, ARGVOUT, @F, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG, -$SIG{expr} +=item Where can I buy a commercial version of Perl? -=item Error Indicators +=item Where do I send bug reports? -=item Technical Note on the Syntax of Variable Names +=item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? =back -=item BUGS +=item AUTHOR AND COPYRIGHT =back -=head2 perllol - Manipulating Arrays of Arrays in Perl +=head2 perlfaq3 - Programming Tools ($Revision: 1.37 $, $Date: 2003/11/24 +19:55:50 $) =over 4 @@ -1089,379 +943,401 @@ $SIG{expr} =over 4 -=item Declaration and Access of Arrays of Arrays - -=item Growing Your Own - -=item Access and Printing - -=item Slices - -=back - -=item SEE ALSO - -=item AUTHOR +=item How do I do (anything)? -=back +=item How can I use Perl interactively? -=head2 perlopentut - tutorial on opening things in Perl +=item Is there a Perl shell? -=over 4 +=item How do I find which modules are installed on my system? -=item DESCRIPTION +=item How do I debug my Perl programs? -=item Open E la shell +=item How do I profile my Perl programs? -=over 4 +=item How do I cross-reference my Perl programs? -=item Simple Opens +=item Is there a pretty-printer (formatter) for Perl? -=item Indirect Filehandles +=item Is there a ctags for Perl? -=item Pipe Opens +=item Is there an IDE or Windows Perl Editor? -=item The Minus File +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 -=item Mixing Reads and Writes +=item Where can I get Perl macros for vi? -=item Filters +=item Where can I get perl-mode for emacs? -=back +=item How can I use curses with Perl? -=item Open E la C +=item How can I use X or Tk with Perl? -=over 4 +=item How can I generate simple menus without using CGI or Tk? -=item Permissions E la mode +=item How can I make my Perl program run faster? -=back +=item How can I make my Perl program take less memory? -=item Obscure Open Tricks +Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and +stringification, Pass by reference, Tie large variables to disk -=over 4 +=item Is it safe to return a reference to local or lexical data? -=item Re-Opening Files (dups) +=item How can I free an array or hash so my program shrinks? -=item Dispelling the Dweomer +=item How can I make my CGI script more efficient? -=item Paths as Opens +=item How can I hide the source for my Perl program? -=item Single Argument Open +=item How can I compile my Perl program into byte code or C? -=item Playing with STDIN and STDOUT +=item How can I compile Perl into Java? -=back +=item How can I get C<#!perl> to work on [MS-DOS,NT,...]? -=item Other I/O Issues +=item Can I write useful Perl programs on the command line? -=over 4 +=item Why don't Perl one-liners work on my DOS/Mac/VMS system? -=item Opening Non-File Files +=item Where can I learn about CGI or Web programming in Perl? -=item Opening Named Pipes +=item Where can I learn about object-oriented Perl programming? -=item Opening Sockets +=item Where can I learn about linking C with Perl? [h2xs, xsubpp] -=item Binary Files +=item I've read perlembed, perlguts, etc., but I can't embed perl in +my C program; what am I doing wrong? -=item File Locking +=item When I tried to run my script, I got this message. What does it mean? -=item IO Layers +=item What's MakeMaker? =back -=item SEE ALSO - -=item AUTHOR and COPYRIGHT - -=item HISTORY +=item AUTHOR AND COPYRIGHT =back -=head2 perlpacktut - tutorial on C and C +=head2 perlfaq4 - Data Manipulation ($Revision: 1.54 $, $Date: 2003/11/30 +00:50:08 $) =over 4 =item DESCRIPTION -=item The Basic Principle - -=item Packing Text - -=item Packing Numbers +=item Data: Numbers =over 4 -=item Integers +=item Why am I getting long decimals (eg, 19.9499999999999) instead of the +numbers I should be getting (eg, 19.95)? -=item Unpacking a Stack Frame +=item Why is int() broken? -=item How to Eat an Egg on a Net +=item Why isn't my octal data interpreted correctly? -=item Floating point Numbers +=item Does Perl have a round() function? What about ceil() and floor()? +Trig functions? -=back +=item How do I convert between numeric representations/bases/radixes? -=item Exotic Templates +How do I convert hexadecimal into decimal, How do I convert from decimal to +hexadecimal, How do I convert from octal to decimal, How do I convert from +decimal to octal, How do I convert from binary to decimal, How do I convert +from decimal to binary -=over 4 +=item Why doesn't & work the way I want it to? -=item Bit Strings +=item How do I multiply matrices? -=item Uuencoding +=item How do I perform an operation on a series of integers? -=item Doing Sums +=item How can I output Roman numerals? -=item Unicode +=item Why aren't my random numbers random? -=item Another Portable Binary Encoding +=item How do I get a random number between X and Y? =back -=item Template Grouping - -=item Lengths and Widths +=item Data: Dates =over 4 -=item String Lengths +=item How do I find the day or week of the year? -=item Dynamic Templates +=item How do I find the current century or millennium? -=item Counting Repetitions +=item How can I compare two dates and find the difference? -=back +=item How can I take a string and turn it into epoch seconds? -=item Packing and Unpacking C Structures +=item How can I find the Julian Day? -=over 4 +=item How do I find yesterday's date? -=item The Alignment Pit +=item Does Perl have a Year 2000 problem? Is Perl Y2K compliant? -=item Alignment, Take 2 +=back -=item Alignment, Take 3 +=item Data: Strings -=item Pointers for How to Use Them +=over 4 -=back +=item How do I validate input? -=item Pack Recipes +=item How do I unescape a string? -=item Funnies Section +=item How do I remove consecutive pairs of characters? -=item Authors +=item How do I expand function calls in a string? -=back +=item How do I find matching/nesting anything? -=head2 perlretut - Perl regular expressions tutorial +=item How do I reverse a string? -=over 4 +=item How do I expand tabs in a string? -=item DESCRIPTION +=item How do I reformat a paragraph? -=item Part 1: The basics +=item How can I access or change N characters of a string? -=over 4 +=item How do I change the Nth occurrence of something? -=item Simple word matching +=item How can I count the number of occurrences of a substring within a +string? -=item Using character classes +=item How do I capitalize all the words on one line? -=item Matching this or that +=item How can I split a [character] delimited string except when inside +[character]? -=item Grouping things and hierarchical matching +=item How do I strip blank space from the beginning/end of a string? -=item Extracting matches +=item How do I pad a string with blanks or pad a number with zeroes? -=item Matching repetitions +=item How do I extract selected columns from a string? -=item Building a regexp +=item How do I find the soundex value of a string? -=item Using regular expressions in Perl +=item How can I expand variables in text strings? -=back +=item What's wrong with always quoting "$vars"? -=item Part 2: Power tools +=item Why don't my EEHERE documents work? -=over 4 +There must be no space after the EE part, There (probably) should +be a semicolon at the end, You can't (easily) have any space in front of +the tag -=item More on characters, strings, and character classes +=back -=item Compiling and saving regular expressions +=item Data: Arrays -=item Embedding comments and modifiers in a regular expression +=over 4 -=item Non-capturing groupings +=item What is the difference between a list and an array? -=item Looking ahead and looking behind +=item What is the difference between $array[1] and @array[1]? -=item Using independent subexpressions to prevent backtracking +=item How can I remove duplicate elements from a list or array? -=item Conditional expressions +a), b), c), d), e) -=item A bit of magic: executing Perl code in a regular expression +=item How can I tell whether a certain element is contained in a list or +array? -=item Pragmas and debugging +=item How do I compute the difference of two arrays? How do I compute the +intersection of two arrays? -=back +=item How do I test whether two arrays or hashes are equal? -=item BUGS +=item How do I find the first array element for which a condition is true? -=item SEE ALSO +=item How do I handle linked lists? -=item AUTHOR AND COPYRIGHT +=item How do I handle circular lists? -=over 4 +=item How do I shuffle an array randomly? -=item Acknowledgments +=item How do I process/modify each element of an array? -=back +=item How do I select a random element from an array? + +=item How do I permute N elements of a list? + +=item How do I sort an array by (anything)? + +=item How do I manipulate arrays of bits? + +=item Why does defined() return true on empty arrays and hashes? =back -=head2 perlre - Perl regular expressions +=item Data: Hashes (Associative Arrays) =over 4 -=item DESCRIPTION +=item How do I process an entire hash? -i, m, s, x +=item What happens if I add or remove keys from a hash while iterating over +it? -=over 4 +=item How do I look up a hash element by value? -=item Regular Expressions +=item How can I know how many entries are in a hash? -[1], [2], [3], cntrl, graph, print, punct, xdigit +=item How do I sort a hash (optionally by value instead of key)? -=item Extended Patterns +=item How can I always keep my hash sorted? -C<(?#text)>, C<(?imsx-imsx)>, C<(?:pattern)>, C<(?imsx-imsx:pattern)>, -C<(?=pattern)>, C<(?!pattern)>, C<(?<=pattern)>, C<(?, C<(?{ -code })>, C<(??{ code })>, C<< (?>pattern) >>, -C<(?(condition)yes-pattern|no-pattern)>, C<(?(condition)yes-pattern)> +=item What's the difference between "delete" and "undef" with hashes? -=item Backtracking +=item Why don't my tied hashes make the defined/exists distinction? -=item Version 8 Regular Expressions +=item How do I reset an each() operation part-way through? -=item Warning on \1 vs $1 +=item How can I get the unique keys from two hashes? -=item Repeated patterns matching zero-length substring +=item How can I store a multidimensional array in a DBM file? -=item Combining pieces together +=item How can I make my hash remember the order I put elements into it? -C, C, C, C, C, C, -C, C, C, C, C, C<< (?>S) >>, C<(?=S)>, C<(?<=S)>, -C<(?!S)>, C<(?, C<(??{ EXPR })>, -C<(?(condition)yes-pattern|no-pattern)> +=item Why does passing a subroutine an undefined element in a hash create +it? -=item Creating custom RE engines +=item How can I make the Perl equivalent of a C structure/C++ class/hash or +array of hashes or arrays? + +=item How can I use a reference as a hash key? =back -=item BUGS +=item Data: Misc -=item SEE ALSO +=over 4 + +=item How do I handle binary data correctly? + +=item How do I determine whether a scalar is a number/whole/integer/float? + +=item How do I keep persistent data across program calls? + +=item How do I print out or copy a recursive data structure? + +=item How do I define methods for every class/object? + +=item How do I verify a credit card checksum? + +=item How do I pack arrays of doubles or floats for XS code? =back -=head2 perlreref - Perl Regular Expressions Reference +=item AUTHOR AND COPYRIGHT -=over 4 +=back -=item DESCRIPTION +=head2 perlfaq5 - Files and Formats ($Revision: 1.30 $, $Date: 2003/11/23 +08:07:46 $) =over 4 -=item OPERATORS - -=item SYNTAX +=item DESCRIPTION -=item ESCAPE SEQUENCES +=over 4 -=item CHARACTER CLASSES +=item How do I flush/unbuffer an output filehandle? Why must I do this? -=item ANCHORS +=item 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? -=item QUANTIFIERS +=item How do I count the number of lines in a file? -=item EXTENDED CONSTRUCTS +=item How can I use Perl's C<-i> option from within a program? -=item VARIABLES +=item How do I make a temporary file name? -=item FUNCTIONS +=item How can I manipulate fixed-record-length files? -=item TERMINOLOGY +=item How can I make a filehandle local to a subroutine? How do I pass +filehandles between subroutines? How do I make an array of filehandles? -=back +=item How can I use a filehandle indirectly? -=item AUTHOR +=item How can I set up a footer format to be used with write()? -=item SEE ALSO +=item How can I write() into a string? -=item THANKS +=item How can I output my numbers with commas added? -=back +=item How can I translate tildes (~) in a filename? -=head2 perlref - Perl references and nested data structures +=item How come when I open a file read-write it wipes it out? -=over 4 +=item Why do I sometimes get an "Argument list too long" when I use +E*E? -=item NOTE +=item Is there a leak/bug in glob()? -=item DESCRIPTION +=item How can I open a file with a leading ">" or trailing blanks? -=over 4 +=item How can I reliably rename a file? -=item Making References +=item How can I lock a file? -=item Using References +=item Why can't I just open(FH, "Efile.lock")? -=item Symbolic references +=item I still don't get locking. I just want to increment the number in +the file. How can I do this? -=item Not-so-symbolic references +=item 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? -=item Pseudo-hashes: Using an array as a hash +=item How do I randomly update a binary file? -=item Function Templates +=item How do I get a file's timestamp in perl? -=back +=item How do I set a file's timestamp in perl? -=item WARNING +=item How do I print to more than one file at once? -=item SEE ALSO +=item How can I read in an entire file all at once? -=back +=item How can I read in a file by paragraphs? -=head2 perlform - Perl formats +=item How can I read a single character from a file? From the keyboard? -=over 4 +=item How can I tell whether there's a character waiting on a filehandle? -=item DESCRIPTION +=item How do I do a C in perl? -=over 4 +=item How do I dup() a filehandle in Perl? -=item Format Variables +=item How do I close a file descriptor by number? -=back +=item Why can't I use "C:\temp\foo" in DOS paths? Why doesn't +`C:\temp\foo.exe` work? -=item NOTES +=item Why doesn't glob("*.*") get all the files? -=over 4 +=item Why does Perl let me delete read-only files? Why does C<-i> clobber +protected files? Isn't this a bug in Perl? -=item Footers +=item How do I select a random line from a file? -=item Accessing Formatting Internals +=item Why do I get weird spaces when I print an array of lines? =back -=item WARNINGS +=item AUTHOR AND COPYRIGHT =back -=head2 perlboot - Beginner's Object-Oriented Tutorial +=head2 perlfaq6 - Regular Expressions ($Revision: 1.20 $, $Date: 2003/01/03 +20:05:28 $) =over 4 @@ -1469,987 +1345,1133 @@ C<(?(condition)yes-pattern|no-pattern)> =over 4 -=item If we could talk to the animals... +=item How can I hope to use regular expressions without creating illegible +and unmaintainable code? -=item Introducing the method invocation arrow +Comments Outside the Regex, Comments Inside the Regex, Different Delimiters -=item Invoking a barnyard +=item I'm having trouble matching over more than one line. What's wrong? -=item The extra parameter of method invocation +=item How can I pull out lines between two patterns that are themselves on +different lines? -=item Calling a second method to simplify things +=item I put a regular expression into $/ but it didn't work. What's wrong? -=item Inheriting the windpipes +=item How do I substitute case insensitively on the LHS while preserving +case on the RHS? -=item A few notes about @ISA +=item How can I make C<\w> match national character sets? -=item Overriding the methods +=item How can I match a locale-smart version of C? -=item Starting the search from a different place +=item How can I quote a variable to use in a regex? -=item The SUPER way of doing things +=item What is C really for? -=item Where we're at so far... +=item How do I use a regular expression to strip C style comments from a +file? -=item A horse is a horse, of course of course -- or is it? +=item Can I use Perl regular expressions to match balanced text? -=item Invoking an instance method +=item What does it mean that regexes are greedy? How can I get around it? -=item Accessing the instance data +=item How do I process each word on each line? -=item How to build a horse +=item How can I print out a word-frequency or line-frequency summary? -=item Inheriting the constructor +=item How can I do approximate matching? -=item Making a method work with either classes or instances +=item How do I efficiently match many regular expressions at once? -=item Adding parameters to a method +=item Why don't word-boundary searches with C<\b> work for me? -=item More interesting instances +=item Why does using $&, $`, or $' slow my program down? -=item A horse of a different color +=item What good is C<\G> in a regular expression? -=item Summary +=item Are Perl regexes DFAs or NFAs? Are they POSIX compliant? -=back +=item What's wrong with using grep in a void context? -=item SEE ALSO +=item How can I match strings with multibyte characters? -=item COPYRIGHT +=item How do I match a pattern that is supplied by the user? =back -=head2 perltoot - Tom's object-oriented tutorial for perl +=item AUTHOR AND COPYRIGHT -=over 4 +=back -=item DESCRIPTION +=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.15 $, $Date: +2003/07/24 02:17:21 $) -=item Creating a Class +=over 4 + +=item DESCRIPTION =over 4 -=item Object Representation +=item Can I get a BNF/yacc/RE for the Perl language? -=item Class Interface +=item What are all these $@%&* punctuation signs, and how do I know when to +use them? -=item Constructors and Instance Methods +=item Do I always/never have to quote my strings or use semicolons and +commas? -=item Planning for the Future: Better Constructors +=item How do I skip some return values? -=item Destructors +=item How do I temporarily block warnings? -=item Other Object Methods +=item What's an extension? -=back +=item Why do Perl operators have different precedence than C operators? -=item Class Data +=item How do I declare/create a structure? -=over 4 +=item How do I create a module? -=item Accessing Class Data +=item How do I create a class? -=item Debugging Methods +=item How can I tell if a variable is tainted? -=item Class Destructors +=item What's a closure? -=item Documenting the Interface +=item What is variable suicide and how can I prevent it? -=back +=item How can I pass/return a {Function, FileHandle, Array, Hash, Method, +Regex}? -=item Aggregation +Passing Variables and Functions, Passing Filehandles, Passing Regexes, +Passing Methods -=item Inheritance +=item How do I create a static variable? -=over 4 +=item What's the difference between dynamic and lexical (static) scoping? +Between local() and my()? -=item Overridden Methods +=item How can I access a dynamic variable while a similarly named lexical +is in scope? -=item Multiple Inheritance +=item What's the difference between deep and shallow binding? -=item UNIVERSAL: The Root of All Objects +=item Why doesn't "my($foo) = EFILEE;" work right? -=back +=item How do I redefine a builtin function, operator, or method? -=item Alternate Object Representations +=item What's the difference between calling a function as &foo and foo()? -=over 4 +=item How do I create a switch or case statement? -=item Arrays as Objects +=item How can I catch accesses to undefined variables, functions, or +methods? -=item Closures as Objects +=item Why can't a method included in this same file be found? -=back +=item How can I find out my current package? -=item AUTOLOAD: Proxy Methods +=item How can I comment out a large block of perl code? -=over 4 +=item How do I clear a package? -=item Autoloaded Data Methods +=item How can I use a variable as a variable name? -=item Inherited Autoloaded Data Methods +=item What does "bad interpreter" mean? =back -=item Metaclassical Tools +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq8 - System Interaction ($Revision: 1.17 $, $Date: 2003/01/26 +17:44:04 $) =over 4 -=item Class::Struct +=item DESCRIPTION -=item Data Members as Variables +=over 4 -=back +=item How do I find out which operating system I'm running under? -=item NOTES +=item How come exec() doesn't return? -=over 4 +=item How do I do fancy stuff with the keyboard/screen/mouse? -=item Object Terminology +Keyboard, Screen, Mouse -=back +=item How do I print something out in color? -=item SEE ALSO +=item How do I read just one key without waiting for a return key? -=item AUTHOR AND COPYRIGHT +=item How do I check whether input is ready on the keyboard? -=item COPYRIGHT +=item How do I clear the screen? -=over 4 +=item How do I get the screen size? -=item Acknowledgments +=item How do I ask the user for a password? -=back +=item How do I read and write the serial port? -=back +lockfiles, open mode, end of line, flushing output, non-blocking input -=head2 perltooc - Tom's OO Tutorial for Class Data in Perl +=item How do I decode encrypted password files? -=over 4 +=item How do I start a process in the background? -=item DESCRIPTION +STDIN, STDOUT, and STDERR are shared, Signals, Zombies -=item Class Data in a Can +=item How do I trap control characters/signals? -=item Class Data as Package Variables +=item How do I modify the shadow password file on a Unix system? -=over 4 +=item How do I set the time and date? -=item Putting All Your Eggs in One Basket +=item How can I sleep() or alarm() for under a second? -=item Inheritance Concerns +=item How can I measure time under a second? -=item The Eponymous Meta-Object +=item How can I do an atexit() or setjmp()/longjmp()? (Exception handling) -=item Indirect References to Class Data +=item Why doesn't my sockets program work under System V (Solaris)? What +does the error message "Protocol not supported" mean? -=item Monadic Classes +=item How can I call my system's unique C functions from Perl? -=item Translucent Attributes +=item Where do I get the include files to do ioctl() or syscall()? -=back +=item Why do setuid perl scripts complain about kernel problems? -=item Class Data as Lexical Variables +=item How can I open a pipe both to and from a command? -=over 4 +=item Why can't I get the output of a command with system()? -=item Privacy and Responsibility +=item How can I capture STDERR from an external command? -=item File-Scoped Lexicals +=item Why doesn't open() return an error when a pipe open fails? -=item More Inheritance Concerns +=item What's wrong with using backticks in a void context? -=item Locking the Door and Throwing Away the Key +=item How can I call backticks without shell processing? -=item Translucency Revisited +=item Why can't my script read from STDIN after I gave it EOF (^D on Unix, +^Z on MS-DOS)? -=back +=item How can I convert my shell script to perl? -=item NOTES +=item Can I use perl to run a telnet or ftp session? -=item SEE ALSO +=item How can I write expect in Perl? -=item AUTHOR AND COPYRIGHT +=item Is there a way to hide perl's command line from programs such as +"ps"? -=item ACKNOWLEDGEMENTS +=item 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? -=item HISTORY +Unix -=back +=item How do I close a process's filehandle without waiting for it to +complete? -=head2 perlobj - Perl objects +=item How do I fork a daemon process? -=over 4 +=item How do I find out if I'm running interactively or not? -=item DESCRIPTION +=item How do I timeout a slow event? -=over 4 +=item How do I set CPU limits? -=item An Object is Simply a Reference +=item How do I avoid zombies on a Unix system? -=item A Class is Simply a Package +=item How do I use an SQL database? -=item A Method is Simply a Subroutine +=item How do I make a system() exit on control-C? -=item Method Invocation +=item How do I open a file without blocking? -=item Indirect Object Syntax +=item How do I install a module from CPAN? -=item Default UNIVERSAL methods +=item What's the difference between require and use? -isa(CLASS), can(METHOD), VERSION( [NEED] ) +=item How do I keep my own module/library directory? -=item Destructors +=item How do I add the directory my program lives in to the module/library +search path? -=item Summary +=item How do I add a directory to my include path (@INC) at runtime? -=item Two-Phased Garbage Collection +=item What is socket.ph and where do I get it? =back -=item SEE ALSO +=item AUTHOR AND COPYRIGHT =back -=head2 perlbot - Bag'o Object Tricks (the BOT) +=head2 perlfaq9 - Networking ($Revision: 1.15 $, $Date: 2003/01/31 17:36:57 +$) =over 4 =item DESCRIPTION -=item OO SCALING TIPS +=over 4 -=item INSTANCE VARIABLES +=item What is the correct form of response from a CGI script? -=item SCALAR INSTANCE VARIABLES +=item My CGI script runs from the command line but not the browser. (500 +Server Error) -=item INSTANCE VARIABLE INHERITANCE +=item How can I get better error messages from a CGI program? -=item OBJECT RELATIONSHIPS +=item How do I remove HTML from a string? -=item OVERRIDING SUPERCLASS METHODS +=item How do I extract URLs? -=item USING RELATIONSHIP WITH SDBM +=item How do I download a file from the user's machine? How do I open a +file on another machine? -=item THINKING OF CODE REUSE +=item How do I make a pop-up menu in HTML? -=item CLASS CONTEXT AND THE OBJECT +=item How do I fetch an HTML file? -=item INHERITING A CONSTRUCTOR +=item How do I automate an HTML form submission? -=item DELEGATION +=item How do I decode or create those %-encodings on the web? -=item SEE ALSO +=item How do I redirect to another page? -=back +=item How do I put a password on my web pages? -=head2 perltie - how to hide an object class in a simple variable +=item How do I edit my .htpasswd and .htgroup files with Perl? -=over 4 +=item How do I make sure users can't enter values into a form that cause my +CGI script to do bad things? -=item SYNOPSIS +=item How do I parse a mail header? -=item DESCRIPTION +=item How do I decode a CGI form? -=over 4 +=item How do I check a valid mail address? -=item Tying Scalars +=item How do I decode a MIME/BASE64 string? -TIESCALAR classname, LIST, FETCH this, STORE this, value, UNTIE this, -DESTROY this +=item How do I return the user's mail address? -=item Tying Arrays +=item How do I send mail? -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 +=item How do I use MIME to make an attachment to a mail message? -=item Tying Hashes +=item How do I read mail? -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, UNTIE this, DESTROY this - -=item Tying FileHandles +=item How do I find out my hostname/domainname/IP address? -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 +=item How do I fetch a news article or the active newsgroups? -=item UNTIE this +=item How do I fetch/put an FTP file? -=item The C Gotcha +=item How can I do RPC in Perl? =back -=item SEE ALSO - -=item BUGS - -=item AUTHOR +=item AUTHOR AND COPYRIGHT =back -=head2 perlipc - Perl interprocess communication (signals, fifos, pipes, -safe subprocesses, sockets, and semaphores) +=head2 perlsyn - Perl syntax =over 4 =item DESCRIPTION -=item Signals - =over 4 -=item Handling the SIGHUP Signal in Daemons - -=back - -=item Named Pipes +=item Declarations -=over 4 +=item Comments -=item Deferred Signals (Safe signals) +=item Simple Statements -Long running opcodes, Interrupting IO, Restartable system calls, Signals as -"faults", Signals triggered by operating system state +=item Truth and Falsehood -=back +=item Statement Modifiers -=item Using open() for IPC +=item Compound Statements -=over 4 +=item Loop Control -=item Filehandles +=item For Loops -=item Background Processes +=item Foreach Loops -=item Complete Dissociation of Child from Parent +=item Basic BLOCKs and Switch Statements -=item Safe Pipe Opens +=item Goto -=item Bidirectional Communication with Another Process +=item PODs: Embedded Documentation -=item Bidirectional Communication with Yourself +=item Plain Old Comments (Not!) =back -=item Sockets: Client/Server Communication - -=over 4 - -=item Internet Line Terminators - -=item Internet TCP Clients and Servers - -=item Unix-Domain TCP Clients and Servers - =back -=item TCP Clients with IO::Socket +=head2 perldata - Perl data types =over 4 -=item A Simple Client - -C, C, C +=item DESCRIPTION -=item A Webget Client +=over 4 -=item Interactive Client with IO::Socket +=item Variable names -=back +=item Context -=item TCP Servers with IO::Socket +=item Scalar values -Proto, LocalPort, Listen, Reuse +=item Scalar value constructors -=item UDP: Message Passing +=item List value constructors -=item SysV IPC +=item Subscripts -=item NOTES +=item Slices -=item BUGS +=item Typeglobs and Filehandles -=item AUTHOR +=back =item SEE ALSO =back -=head2 perlfork - Perl's fork() emulation +=head2 perlop - Perl operators and precedence =over 4 -=item SYNOPSIS - =item DESCRIPTION =over 4 -=item Behavior of other Perl features in forked pseudo-processes - -$$ or $PROCESS_ID, %ENV, chdir() and all other builtins that accept -filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to -files, directories and network sockets - -=item Resource limits - -=item Killing the parent process +=item Operator Precedence and Associativity -=item Lifetime of the parent process and pseudo-processes +=item Terms and List Operators (Leftward) -=item CAVEATS AND LIMITATIONS +=item The Arrow Operator -BEGIN blocks, Open filehandles, Forking pipe open() not yet implemented, -Global state maintained by XSUBs, Interpreter embedded in larger -application, Thread-safety of extensions +=item Auto-increment and Auto-decrement -=back +=item Exponentiation -=item BUGS +=item Symbolic Unary Operators -=item AUTHOR +=item Binding Operators -=item SEE ALSO +=item Multiplicative Operators -=back +=item Additive Operators -=head2 perlnumber - semantics of numbers and numeric operations in Perl +=item Shift Operators -=over 4 +=item Named Unary Operators -=item SYNOPSIS +=item Relational Operators -=item DESCRIPTION +=item Equality Operators -=item Storing numbers +=item Bitwise And -=item Numeric operators and numeric conversions +=item Bitwise Or and Exclusive Or -=item Flavors of Perl numeric operations +=item C-style Logical And -Arithmetic operators, ++, Arithmetic operators during C, Other -mathematical operators, Bitwise operators, Bitwise operators during C, Operators which expect an integer, Operators which expect a -string +=item C-style Logical Or -=item AUTHOR +=item C-style Logical Defined-Or -=item SEE ALSO +=item Range Operators -=back +=item Conditional Operator -=head2 perlthrtut - tutorial on threads in Perl +=item Assignment Operators -=over 4 +=item Comma Operator -=item DESCRIPTION +=item List Operators (Rightward) -=item Status +=item Logical Not -=item What Is A Thread Anyway? +=item Logical And -=item Threaded Program Models +=item Logical or, Defined or, and Exclusive Or -=over 4 +=item C Operators Missing From Perl -=item Boss/Worker +unary &, unary *, (TYPE) -=item Work Crew +=item Quote and Quote-like Operators -=item Pipeline +=item Regexp Quote-Like Operators -=back +?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, C<'STRING'>, +qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/, `STRING`, qw/STRING/, +s/PATTERN/REPLACEMENT/egimosx, tr/SEARCHLIST/REPLACEMENTLIST/cds, +y/SEARCHLIST/REPLACEMENTLIST/cds, <, C, C, C, C, C<''>, C, C<"">, +C<``>, C, C, C<< >>, C, C, C, +C,, Interpolation of regular expressions, Optimization of +regular expressions -=item Thread Basics +=item I/O Operators -=over 4 +=item Constant Folding -=item Basic Thread Support +=item Bitwise String Operators -=item A Note about the Examples +=item Integer Arithmetic -=item Creating Threads +=item Floating-point Arithmetic -=item Waiting For A Thread To Exit +=item Bigger Numbers -=item Ignoring A Thread +=back =back -=item Threads And Data +=head2 perlsub - Perl subroutines =over 4 -=item Shared And Unshared Data - -=item Thread Pitfalls: Races - -=back +=item SYNOPSIS -=item Synchronization and control +=item DESCRIPTION =over 4 -=item Controlling access: lock() +=item Private Variables via my() -=item A Thread Pitfall: Deadlocks +=item Persistent Private Variables -=item Queues: Passing Data Around +=item Temporary Values via local() -=item Semaphores: Synchronizing Data Access +=item Lvalue subroutines -=item Basic semaphores +Lvalue subroutines are EXPERIMENTAL -=item Advanced Semaphores +=item Passing Symbol Table Entries (typeglobs) -=item cond_wait() and cond_signal() +=item When to Still Use local() -=item Giving up control +=item Pass by Reference -=back +=item Prototypes -=item General Thread Utility Routines +=item Constant Functions -=over 4 +=item Overriding Built-in Functions -=item What Thread Am I In? +=item Autoloading -=item Thread IDs +=item Subroutine Attributes -=item Are These Threads The Same? +=back -=item What Threads Are Running? +=item SEE ALSO =back -=item A Complete Example +=head2 perlfunc - Perl builtin functions -=item Different implementations of threads +=over 4 -=item Performance considerations +=item DESCRIPTION -=item Process-scope Changes +=over 4 -=item Thread-Safety of System Libraries +=item Perl Functions by Category -=item Conclusion +Functions for SCALARs or strings, Regular expressions and pattern matching, +Numeric functions, Functions for real @ARRAYs, Functions for list data, +Functions for real %HASHes, Input and output functions, Functions for fixed +length data or records, Functions for filehandles, files, or directories, +Keywords related to the control flow of your perl program, Keywords related +to scoping, Miscellaneous functions, Functions for processes and process +groups, Keywords related to perl modules, Keywords related to classes and +object-orientedness, Low-level socket functions, System V interprocess +communication functions, Fetching user and group info, Fetching network +info, Time-related functions, Functions new in perl5, Functions obsoleted +in perl5 -=item Bibliography +=item Portability -=over 4 - -=item Introductory Texts - -=item OS-Related References +=item Alphabetical Listing of Perl Functions -=item Other References +-I FILEHANDLE, -I EXPR, -I, abs VALUE, abs, accept +NEWSOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bind SOCKET,NAME, +binmode FILEHANDLE, LAYER, binmode FILEHANDLE, bless REF,CLASSNAME, bless +REF, 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 SUBROUTINE(LIST), do EXPR, dump LABEL, dump, +each HASH, eof FILEHANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST, +exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntl +FILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHANDLE,OPERATION, +fork, format, formline PICTURE,LIST, getc FILEHANDLE, getc, getlogin, +getpeername SOCKET, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam +NAME, getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname +NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr +ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, +getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent, +getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent +STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, +endhostent, endnetent, endprotoent, endservent, getsockname SOCKET, +getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, 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, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length, +link OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR, +lock THING, log EXPR, log, lstat EXPR, lstat, m//, map BLOCK 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, no Module, oct +EXPR, oct, open FILEHANDLE,EXPR, open FILEHANDLE,MODE,EXPR, open +FILEHANDLE,MODE,EXPR,LIST, open FILEHANDLE,MODE,REFERENCE, open FILEHANDLE, +opendir DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, our EXPR TYPE, our EXPR : +ATTRS, our TYPE EXPR : ATTRS, pack TEMPLATE,LIST, package NAMESPACE, +package, pipe READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR, pos, +print FILEHANDLE LIST, print LIST, print, printf FILEHANDLE 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, setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL, shift ARRAY, +shift, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread ID,VAR,POS,SIZE, +shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW, sin EXPR, sin, sleep +EXPR, sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL, socketpair +SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, sort SUBNAME LIST, sort BLOCK LIST, +sort LIST, splice ARRAY,OFFSET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH, +splice ARRAY,OFFSET, splice ARRAY, split /PATTERN/,EXPR,LIMIT, split +/PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST, format +parameter index, flags, vector flag, (minimum) width, precision, or maximum +width, size, order of arguments, sqrt EXPR, sqrt, srand EXPR, srand, stat +FILEHANDLE, stat EXPR, stat, 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, substr +EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall NUMBER, LIST, sysopen +FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread +FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH, sysseek +FILEHANDLE,POSITION,WHENCE, system LIST, system PROGRAM LIST, syswrite +FILEHANDLE,SCALAR,LENGTH,OFFSET, syswrite FILEHANDLE,SCALAR,LENGTH, +syswrite FILEHANDLE,SCALAR, tell FILEHANDLE, tell, telldir DIRHANDLE, tie +VARIABLE,CLASSNAME,LIST, tied VARIABLE, time, times, tr///, truncate +FILEHANDLE,LENGTH, truncate EXPR,LENGTH, uc EXPR, uc, ucfirst EXPR, +ucfirst, umask EXPR, umask, undef EXPR, undef, unlink LIST, unlink, unpack +TEMPLATE,EXPR, unpack TEMPLATE, untie VARIABLE, unshift ARRAY,LIST, use +Module VERSION LIST, use Module 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/// =back -=item Acknowledgements - -=item AUTHOR - -=item Copyrights - =back -=head2 perlothrtut - old tutorial on threads in Perl +=head2 perlopentut - tutorial on opening things in Perl =over 4 =item DESCRIPTION -=item What Is A Thread Anyway? - -=item Threaded Program Models +=item Open E la shell =over 4 -=item Boss/Worker +=item Simple Opens -=item Work Crew +=item Indirect Filehandles -=item Pipeline +=item Pipe Opens -=back +=item The Minus File -=item Native threads +=item Mixing Reads and Writes -=item What kind of threads are perl threads? +=item Filters -=item Threadsafe Modules +=back -=item Thread Basics +=item Open E la C =over 4 -=item Basic Thread Support +=item Permissions E la mode -=item Creating Threads +=back -=item Giving up control +=item Obscure Open Tricks -=item Waiting For A Thread To Exit +=over 4 -=item Errors In Threads +=item Re-Opening Files (dups) -=item Ignoring A Thread +=item Dispelling the Dweomer + +=item Paths as Opens + +=item Single Argument Open + +=item Playing with STDIN and STDOUT =back -=item Threads And Data +=item Other I/O Issues =over 4 -=item Shared And Unshared Data +=item Opening Non-File Files -=item Thread Pitfall: Races +=item Opening Named Pipes -=item Controlling access: lock() +=item Opening Sockets -=item Thread Pitfall: Deadlocks +=item Binary Files -=item Queues: Passing Data Around +=item File Locking + +=item IO Layers =back -=item Threads And Code +=item SEE ALSO + +=item AUTHOR and COPYRIGHT + +=item HISTORY + +=back + +=head2 perlpacktut - tutorial on C and C =over 4 -=item Semaphores: Synchronizing Data Access +=item DESCRIPTION -Basic semaphores, Advanced Semaphores +=item The Basic Principle -=item Attributes: Restricting Access To Subroutines +=item Packing Text -=item Subroutine Locks +=item Packing Numbers -=item Methods +=over 4 -=item Locking A Subroutine +=item Integers + +=item Unpacking a Stack Frame + +=item How to Eat an Egg on a Net + +=item Floating point Numbers =back -=item General Thread Utility Routines +=item Exotic Templates =over 4 -=item What Thread Am I In? +=item Bit Strings -=item Thread IDs +=item Uuencoding -=item Are These Threads The Same? +=item Doing Sums -=item What Threads Are Running? +=item Unicode + +=item Another Portable Binary Encoding =back -=item A Complete Example +=item Template Grouping -=item Conclusion +=item Lengths and Widths -=item Bibliography +=over 4 + +=item String Lengths + +=item Dynamic Templates + +=item Counting Repetitions + +=back + +=item Packing and Unpacking C Structures =over 4 -=item Introductory Texts +=item The Alignment Pit -=item OS-Related References +=item Alignment, Take 2 -=item Other References +=item Alignment, Take 3 + +=item Pointers for How to Use Them =back -=item Acknowledgements +=item Pack Recipes -=item AUTHOR +=item Funnies Section -=item Copyrights +=item Authors =back -=head2 perlport - Writing portable Perl +=head2 perlpod - the Plain Old Documentation format =over 4 =item DESCRIPTION -Not all Perl programs have to be portable, Nearly all of Perl already I -portable - -=item ISSUES - =over 4 -=item Newlines +=item Ordinary Paragraph -=item Numbers endianness and Width +=item Verbatim Paragraph -=item Files and Filesystems +=item Command Paragraph -=item System Interaction +C<=head1 I>, C<=head2 I>, C<=head3 I>, C<=head4 I>, C<=over I>, C<=item +I>, C<=back>, C<=cut>, C<=pod>, C<=begin I>, C<=end +I>, C<=for I I>, C<=encoding +I> -=item Command names versus file pathnames +=item Formatting Codes -=item Networking +CtextE> -- italic text, CtextE> -- bold text, +CcodeE> -- code text, CnameE> -- a hyperlink, +CescapeE> -- a character escape, CfilenameE> -- used +for filenames, CtextE> -- text contains non-breaking spaces, +Ctopic nameE> -- an index entry, CE> -- a null +(zero-effect) formatting code -=item Interprocess Communication (IPC) +=item The Intent -=item External Subroutines (XS) +=item Embedding Pods in Perl Modules -=item Standard Modules +=item Hints for Writing Pod -=item Time and Date +=back -=item Character sets and character encoding +=item SEE ALSO -=item Internationalisation +=item AUTHOR -=item System Resources +=back -=item Security +=head2 perlpodspec - Plain Old Documentation: format specification and +notes -=item Style +=over 4 -=back +=item DESCRIPTION -=item CPAN Testers +=item Pod Definitions -Mailing list: cpan-testers@perl.org, Testing results: -http://testers.cpan.org/ +=item Pod Commands -=item PLATFORMS +"=head1", "=head2", "=head3", "=head4", "=pod", "=cut", "=over", "=item", +"=back", "=begin formatname", "=end formatname", "=for formatname text...", +"=encoding encodingname" -=over 4 +=item Pod Formatting Codes -=item Unix +CtextE> -- italic text, CtextE> -- bold text, +CcodeE> -- code text, CfilenameE> -- style for +filenames, Ctopic nameE> -- an index entry, CE> -- a +null (zero-effect) formatting code, CnameE> -- a hyperlink, +CescapeE> -- a character escape, CtextE> -- text +contains non-breaking spaces -=item DOS and Derivatives +=item Notes on Implementing Pod Processors -=item S +=item About LE...E Codes -=item VMS +First:, Second:, Third:, Fourth:, Fifth:, Sixth: -=item VOS +=item About =over...=back Regions -=item EBCDIC Platforms +=item About Data Paragraphs and "=begin/=end" Regions -=item Acorn RISC OS +=item SEE ALSO -=item Other perls +=item AUTHOR =back -=item FUNCTION IMPLEMENTATIONS +=head2 perlrun - how to execute the Perl interpreter =over 4 -=item Alphabetical Listing of Perl Functions +=item SYNOPSIS --I FILEHANDLE, -I EXPR, -I, alarm SECONDS, alarm, binmode -FILEHANDLE, chmod LIST, chown LIST, chroot FILENAME, chroot, crypt -PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MODE, dump LABEL, exec -LIST, exit EXPR, exit, fcntl FILEHANDLE,FUNCTION,SCALAR, flock -FILEHANDLE,OPERATION, fork, getlogin, getpgrp PID, getppid, getpriority -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, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, -endhostent, endnetent, endprotoent, endservent, getsockopt -SOCKET,LEVEL,OPTNAME, glob EXPR, glob, ioctl FILEHANDLE,FUNCTION,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,WRITEHANDLE, readlink EXPR, readlink, select -RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget -KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP, -setpriority WHICH,WHO,PRIORITY, setpwent, setsockopt -SOCKET,LEVEL,OPTNAME,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, syscall LIST, sysopen -FILEHANDLE,FILENAME,MODE,PERMS, system LIST, times, truncate -FILEHANDLE,LENGTH, truncate EXPR,LENGTH, umask EXPR, umask, utime LIST, -wait, waitpid PID,FLAGS +=item DESCRIPTION + +=over 4 + +=item #! and quoting on non-Unix systems + +OS/2, MS-DOS, Win95/NT, Macintosh, VMS + +=item Location of Perl + +=item Command Switches + +B<-0>[I], B<-A [I]>, B<-a>, B<-C +[I]>, B<-c>, B<-d>, B<-d:>I, B<-D>I, +B<-D>I, B<-e> I, B<-F>I, B<-h>, +B<-i>[I], B<-I>I, B<-l>[I], +B<-m>[B<->]I, B<-M>[B<->]I, B<-M>[B<->]I<'module ...'>, +B<-[mM]>[B<->]I, B<-n>, B<-p>, B<-P>, B<-s>, B<-S>, +B<-t>, B<-T>, B<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I, B<-w>, B<-W>, +B<-X>, B<-x> I =back -=item CHANGES +=item ENVIRONMENT -v1.49, 12 August 2002, 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 December -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 +HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLIO, :bytes, :crlf, :mmap, +:perlio, :pop, :raw, :stdio, :unix, :utf8, :win32, PERLIO_DEBUG, PERLLIB, +PERL5DB, PERL5SHELL (specific to the Win32 port), PERL_DEBUG_MSTATS, +PERL_DESTRUCT_LEVEL, PERL_DL_NONLAZY, PERL_ENCODING, PERL_HASH_SEED, +PERL_HASH_SEED_DEBUG, PERL_ROOT (specific to the VMS port), PERL_SIGNALS, +PERL_UNICODE, SYS$LOGIN (specific to the VMS port) -=item Supported Platforms +=back -=item SEE ALSO +=head2 perldiag - various Perl diagnostics -=item AUTHORS / CONTRIBUTORS +=over 4 + +=item DESCRIPTION =back -=head2 perllocale - Perl locale handling (internationalization and -localization) +=head2 perllexwarn - Perl Lexical Warnings =over 4 =item DESCRIPTION -=item PREPARING TO USE LOCALES +=over 4 -=item USING LOCALES +=item Default Warnings and Optional Warnings -=over 4 +=item What's wrong with B<-w> and C<$^W> -=item The use locale pragma +=item Controlling Warnings from the Command Line -=item The setlocale function +B<-w>, B<-W>, B<-X> -=item Finding locales +=item Backward Compatibility -=item LOCALE PROBLEMS +=item Category Hierarchy -=item Temporarily fixing locale problems +=item Fatal Warnings -=item Permanently fixing locale problems +=item Reporting Warnings from a Module -=item Permanently fixing your system's locale configuration +=back -=item Fixing system locale configuration +=item TODO -=item The localeconv function +=item SEE ALSO -=item I18N::Langinfo +=item AUTHOR =back -=item LOCALE CATEGORIES +=head2 perldebug - Perl debugging =over 4 -=item Category LC_COLLATE: Collation +=item DESCRIPTION -=item Category LC_CTYPE: Character Types +=item The Perl Debugger -=item Category LC_NUMERIC: Numeric Formatting +=over 4 -=item Category LC_MONETARY: Formatting of monetary amounts +=item Debugger Commands -=item LC_TIME +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 [condition], 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] -=item Other categories +=item Configurable Options -=back +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, C, +C -=item SECURITY +=item Debugger input/output -=item ENVIRONMENT +Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame +listing -PERL_BADLANG, LC_ALL, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY, -LC_NUMERIC, LC_TIME, LANG +=item Debugging compile-time statements -=item NOTES +=item Debugger Customization -=over 4 +=item Readline Support -=item Backward compatibility +=item Editor Support for Debugging -=item I18N:Collate obsolete +=item The Perl Profiler -=item Sort speed and memory use impacts +=back -=item write() and LC_NUMERIC +=item Debugging regular expressions -=item Freely available locale definitions +=item Debugging memory usage -=item I18n and l10n +=item SEE ALSO -=item An imperfect standard +=item BUGS =back -=item Unicode and UTF-8 +=head2 perlvar - Perl predefined variables -=item BUGS +=over 4 + +=item DESCRIPTION =over 4 -=item Broken systems +=item Predefined Names -=back +$ARG, $_, $a, $b, $>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $', +$LAST_PAREN_MATCH, $+, $^N, @LAST_MATCH_END, @+, +HANDLE->input_line_number(EXPR), $INPUT_LINE_NUMBER, $NR, $, +IO::Handle->input_record_separator(EXPR), $INPUT_RECORD_SEPARATOR, $RS, $/, +HANDLE->autoflush(EXPR), $OUTPUT_AUTOFLUSH, $|, +IO::Handle->output_field_separator EXPR, $OUTPUT_FIELD_SEPARATOR, $OFS, $,, +IO::Handle->output_record_separator EXPR, $OUTPUT_RECORD_SEPARATOR, $ORS, +$\, $LIST_SEPARATOR, $", $SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $#, +HANDLE->format_page_number(EXPR), $FORMAT_PAGE_NUMBER, $%, +HANDLE->format_lines_per_page(EXPR), $FORMAT_LINES_PER_PAGE, $=, +HANDLE->format_lines_left(EXPR), $FORMAT_LINES_LEFT, $-, @LAST_MATCH_START, +@-, C<$`> is the same as C, C<$&> is the same as +C, C<$'> is the same as C, C<$1> is the same as C, C<$2> +is the same as C, C<$3> is the same as +C, HANDLE->format_name(EXPR), +$FORMAT_NAME, $~, HANDLE->format_top_name(EXPR), $FORMAT_TOP_NAME, $^, +IO::Handle->format_line_break_characters EXPR, +$FORMAT_LINE_BREAK_CHARACTERS, $:, IO::Handle->format_formfeed EXPR, +$FORMAT_FORMFEED, $^L, $ACCUMULATOR, $^A, $CHILD_ERROR, $?, ${^ENCODING}, +$OS_ERROR, $ERRNO, $!, %!, $EXTENDED_OS_ERROR, $^E, $EVAL_ERROR, $@, +$PROCESS_ID, $PID, $$, $REAL_USER_ID, $UID, $<, $EFFECTIVE_USER_ID, $EUID, +$>, $REAL_GROUP_ID, $GID, $(, $EFFECTIVE_GROUP_ID, $EGID, $), +$PROGRAM_NAME, $0, $[, $], $COMPILING, $^C, $DEBUGGING, $^D, +$SYSTEM_FD_MAX, $^F, $^H, %^H, $INPLACE_EDIT, $^I, $^M, $OSNAME, $^O, +${^OPEN}, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, +0x100, 0x200, 0x400, $LAST_REGEXP_CODE_RESULT, $^R, +$EXCEPTIONS_BEING_CAUGHT, $^S, $BASETIME, $^T, ${^TAINT}, ${^UNICODE}, +$PERL_VERSION, $^V, $WARNING, $^W, ${^WARNING_BITS}, $EXECUTABLE_NAME, $^X, +ARGV, $ARGV, @ARGV, ARGVOUT, @F, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG, +$SIG{expr} -=item SEE ALSO +=item Error Indicators -=item HISTORY +=item Technical Note on the Syntax of Variable Names =back -=head2 perluniintro - Perl Unicode introduction +=item BUGS -=over 4 +=back -=item DESCRIPTION +=head2 perlre - Perl regular expressions =over 4 -=item Unicode - -=item Perl's Unicode Support +=item DESCRIPTION -=item Perl's Unicode Model +i, m, s, x -=item Unicode and EBCDIC +=over 4 -=item Creating Unicode +=item Regular Expressions -=item Handling Unicode +[1], [2], [3], cntrl, graph, print, punct, xdigit -=item Legacy Encodings +=item Extended Patterns -=item Unicode I/O +C<(?#text)>, C<(?imsx-imsx)>, C<(?:pattern)>, C<(?imsx-imsx:pattern)>, +C<(?=pattern)>, C<(?!pattern)>, C<(?<=pattern)>, C<(?, C<(?{ +code })>, C<(??{ code })>, C<< (?>pattern) >>, +C<(?(condition)yes-pattern|no-pattern)>, C<(?(condition)yes-pattern)> -=item Displaying Unicode As Text +=item Backtracking -=item Special Cases +=item Version 8 Regular Expressions -=item Advanced Topics +=item Warning on \1 vs $1 -=item Miscellaneous +=item Repeated patterns matching zero-length substring -=item Questions With Answers +=item Combining pieces together -=item Hexadecimal Notation +C, C, C, C, C, C, +C, C, C, C, C, C<< (?>S) >>, C<(?=S)>, C<(?<=S)>, +C<(?!S)>, C<(?, C<(??{ EXPR })>, +C<(?(condition)yes-pattern|no-pattern)> -=item Further Resources +=item Creating custom RE engines =back -=item UNICODE IN OLDER PERLS +=item BUGS =item SEE ALSO -=item ACKNOWLEDGMENTS - -=item AUTHOR, COPYRIGHT, AND LICENSE - =back -=head2 perlunicode - Unicode support in Perl +=head2 perlreref - Perl Regular Expressions Reference =over 4 @@ -2457,1060 +2479,1050 @@ LC_NUMERIC, LC_TIME, LANG =over 4 -=item Important Caveats - -Input and Output Layers, Regular Expressions, C still needed to -enable UTF-8/UTF-EBCDIC in scripts - -=item Byte and Character Semantics - -=item Effects of Character Semantics - -=item Scripts - -=item Blocks - -=item User-Defined Character Properties +=item OPERATORS -=item Character Encodings for Input and Output +=item SYNTAX -=item Unicode Regular Expression Support Level +=item ESCAPE SEQUENCES -=item Unicode Encodings +=item CHARACTER CLASSES -=item Security Implications of Unicode +=item ANCHORS -=item Unicode in Perl on EBCDIC +=item QUANTIFIERS -=item Locales +=item EXTENDED CONSTRUCTS -=item When Unicode Does Not Happen +=item VARIABLES -=item Forcing Unicode in Perl (Or Unforcing Unicode in Perl) +=item FUNCTIONS -=item Using Unicode in XS +=item TERMINOLOGY =back -=item BUGS - -=over 4 - -=item Interaction with Locales - -=item Interaction with Extensions - -=item Speed - -=item Porting code from perl-5.6.X - -=back +=item AUTHOR =item SEE ALSO +=item THANKS + =back -=head2 perlebcdic - Considerations for running Perl on EBCDIC platforms +=head2 perlref - Perl references and nested data structures =over 4 -=item DESCRIPTION +=item NOTE -=item COMMON CHARACTER CODE SETS +=item DESCRIPTION =over 4 -=item ASCII +=item Making References -=item ISO 8859 +=item Using References -=item Latin 1 (ISO 8859-1) +=item Symbolic references -=item EBCDIC +=item Not-so-symbolic references -=item 13 variant characters +=item Pseudo-hashes: Using an array as a hash -=item 0037 +=item Function Templates -=item 1047 +=back -=item POSIX-BC +=item WARNING -=item Unicode code points versus EBCDIC code points +=item SEE ALSO -=item Remaining Perl Unicode problems in EBCDIC +=back -=item Unicode and UTF +=head2 perlform - Perl formats -=item Using Encode +=over 4 -=back +=item DESCRIPTION -=item SINGLE OCTET TABLES +=over 4 -recipe 0, recipe 1, recipe 2, recipe 3, recipe 4, recipe 5, recipe 6 +=item Format Variables -=item IDENTIFYING CHARACTER CODE SETS +=back -=item CONVERSIONS +=item NOTES =over 4 -=item tr/// - -=item iconv +=item Footers -=item C RTL +=item Accessing Formatting Internals =back -=item OPERATOR DIFFERENCES - -=item FUNCTION DIFFERENCES +=item WARNINGS -chr(), ord(), pack(), print(), printf(), sort(), sprintf(), unpack() +=back -=item REGULAR EXPRESSION DIFFERENCES +=head2 perlobj - Perl objects -=item SOCKETS +=over 4 -=item SORTING +=item DESCRIPTION =over 4 -=item Ignore ASCII vs. EBCDIC sort differences. +=item An Object is Simply a Reference -=item MONO CASE then sort data. +=item A Class is Simply a Package -=item Convert, sort data, then re convert. +=item A Method is Simply a Subroutine -=item Perform sorting on one type of machine only. +=item Method Invocation -=back +=item Indirect Object Syntax -=item TRANSFORMATION FORMATS +=item Default UNIVERSAL methods -=over 4 +isa(CLASS), can(METHOD), VERSION( [NEED] ) -=item URL decoding and encoding +=item Destructors -=item uu encoding and decoding +=item Summary -=item Quoted-Printable encoding and decoding +=item Two-Phased Garbage Collection -=item Caesarian ciphers +=back + +=item SEE ALSO =back -=item Hashing order and checksums +=head2 perltie - how to hide an object class in a simple variable -=item I18N AND L10N +=over 4 -=item MULTI OCTET CHARACTER SETS +=item SYNOPSIS -=item OS ISSUES +=item DESCRIPTION =over 4 -=item OS/400 +=item Tying Scalars -PASE, IFS access +TIESCALAR classname, LIST, FETCH this, STORE this, value, UNTIE this, +DESTROY this -=item OS/390, z/OS +=item Tying Arrays -chcp, dataset access, OS/390, z/OS iconv, locales +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 -=item VM/ESA? +=item Tying Hashes -=item POSIX-BC? +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 -=back +=item Tying FileHandles -=item BUGS +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 -=item SEE ALSO +=item UNTIE this -=item REFERENCES +=item The C Gotcha -=item HISTORY +=back -=item AUTHOR +=item SEE ALSO -=back +=item BUGS -=head2 perlsec - Perl security +=item AUTHOR -=over 4 +=back -=item DESCRIPTION +=head2 perldbmfilter - Perl DBM Filters =over 4 -=item Laundering and Detecting Tainted Data +=item SYNOPSIS -=item Switches On the "#!" Line +=item DESCRIPTION -=item Cleaning Up Your Path +B, B, B, +B -=item Security Bugs +=over 4 -=item Protecting Your Programs +=item The Filter -=item Unicode +=item An Example -- the NULL termination problem. -=item Algorithmic Complexity Attacks +=item Another Example -- Key is a C int. =back =item SEE ALSO +=item AUTHOR + =back -=head2 perlmod - Perl modules (packages and symbol tables) +=head2 perlipc - Perl interprocess communication (signals, fifos, pipes, +safe subprocesses, sockets, and semaphores) =over 4 =item DESCRIPTION +=item Signals + =over 4 -=item Packages +=item Handling the SIGHUP Signal in Daemons -=item Symbol Tables +=back -=item Package Constructors and Destructors +=item Named Pipes -=item Perl Classes +=over 4 -=item Perl Modules +=item Deferred Signals (Safe Signals) -=item Making your module threadsafe +Long running opcodes, Interrupting IO, Restartable system calls, Signals as +"faults", Signals triggered by operating system state =back -=item SEE ALSO +=item Using open() for IPC -=back +=over 4 -=head2 perlmodinstall - Installing CPAN Modules +=item Filehandles -=over 4 +=item Background Processes -=item DESCRIPTION +=item Complete Dissociation of Child from Parent -=over 4 +=item Safe Pipe Opens -=item PREAMBLE +=item Bidirectional Communication with Another Process -B the file, B the file into a directory, B the -module (sometimes unnecessary), B the module +=item Bidirectional Communication with Yourself =back -=item PORTABILITY +=item Sockets: Client/Server Communication -=item HEY +=over 4 -=item AUTHOR +=item Internet Line Terminators -=item COPYRIGHT +=item Internet TCP Clients and Servers + +=item Unix-Domain TCP Clients and Servers =back -=head2 perlmodlib - constructing new Perl modules and finding existing ones +=item TCP Clients with IO::Socket =over 4 -=item THE PERL MODULE LIBRARY - -=over 4 +=item A Simple Client -=item Pragmatic Modules +C, C, C -assertions, assertions::activate, 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, version, -vmsish, warnings, warnings::register +=item A Webget Client -=item Standard Modules +=item Interactive Client with IO::Socket -AnyDBM_File, 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, Benchmark, 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, DB_File, Data::Dumper, Devel::DProf, -Devel::PPPort, Devel::Peek, Devel::SelfStubber, Digest, Digest::MD5, -DirHandle, Dumpvalue, DynaLoader, Encode, Encode::Alias, Encode::Byte, -Encode::CJKConstants, Encode::CN, Encode::CN::HZ, Encode::Config, -Encode::EBCDIC, Encode::Encoder, Encode::Encoding, Encode::Guess, -Encode::JP, Encode::JP::H2Z, Encode::JP::JIS7, Encode::KR, -Encode::KR::2022_KR, Encode::MIME::Header, Encode::PerlIO, -Encode::Supported, Encode::Symbol, Encode::TW, Encode::Unicode, -Encode::Unicode::UTF7, English, Env, Errno, Exporter, Exporter::Heavy, -ExtUtils::Command, ExtUtils::Command::MM, ExtUtils::Constant, -ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist, -ExtUtils::MM, ExtUtils::MM_Any, ExtUtils::MM_BeOS, ExtUtils::MM_Cygwin, -ExtUtils::MM_DOS, ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2, -ExtUtils::MM_UWIN, ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_Win32, -ExtUtils::MM_Win95, ExtUtils::MY, ExtUtils::MakeMaker, -ExtUtils::MakeMaker::FAQ, ExtUtils::MakeMaker::Tutorial, -ExtUtils::MakeMaker::bytes, ExtUtils::MakeMaker::vmsish, -ExtUtils::Manifest, ExtUtils::Mkbootstrap, ExtUtils::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, GDBM_File, -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::Currency, Locale::Language, Locale::Maketext, -Locale::Maketext::TPJ13, Locale::Script, MIME::Base64, -MIME::Base64::QuotedPrint, Math::BigFloat, Math::BigInt, -Math::BigInt::Calc, Math::BigInt::Scalar, Math::BigRat, Math::Complex, -Math::Trig, Memoize, Memoize::AnyDBM_File, Memoize::Expire, -Memoize::ExpireFile, Memoize::ExpireTest, Memoize::NDBM_File, -Memoize::SDBM_File, Memoize::Storable, NDBM_File, 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, ODBM_File, Opcode, POSIX, PerlIO, -PerlIO::encoding, PerlIO::scalar, PerlIO::via, PerlIO::via::QuotedPrint, -Pod::Checker, Pod::Find, Pod::Functions, Pod::Html, Pod::InputObjects, -Pod::LaTeX, Pod::Man, Pod::ParseLink, Pod::ParseUtils, Pod::Parser, -Pod::Perldoc::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, SDBM_File, Safe, Scalar::Util, -Search::Dict, SelectSaver, SelfLoader, Shell, Socket, Storable, Switch, -Symbol, Sys::Hostname, Sys::Syslog, Term::ANSIColor, Term::Cap, -Term::Complete, Term::ReadLine, Test, Test::Builder, Test::Harness, -Test::Harness::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, Unicode::Collate, Unicode::Normalize, -Unicode::UCD, User::grent, User::pwent, Win32, XS::APItest, XS::Typemap, -XSLoader +=back -=item Extension Modules +=item TCP Servers with IO::Socket + +Proto, LocalPort, Listen, Reuse + +=item UDP: Message Passing + +=item SysV IPC + +=item NOTES + +=item BUGS + +=item AUTHOR + +=item SEE ALSO =back -=item CPAN +=head2 perlfork - Perl's fork() emulation =over 4 -=item Africa - -South Africa +=item SYNOPSIS -=item Asia +=item DESCRIPTION -China, Indonesia, Israel, Japan, Malaysia, Russian Federation, Saudi -Arabia, Singapore, South Korea, Taiwan +=over 4 -=item Central America +=item Behavior of other Perl features in forked pseudo-processes -Costa Rica +$$ or $PROCESS_ID, %ENV, chdir() and all other builtins that accept +filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to +files, directories and network sockets -=item Europe +=item Resource limits -Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Estonia, -Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, -Lithuania, Netherlands, Norway, Poland, Portugal, Romania, Russia, -Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey, Ukraine, United -Kingdom +=item Killing the parent process -=item North America +=item Lifetime of the parent process and pseudo-processes -Canada, Alberta, Manitoba, Nova Scotia, Ontario, Mexico, United States, -Alabama, California, Colorado, Delaware, District of Columbia, Florida, -Illinois, Indiana, Kentucky, Massachusetts, Michigan, Nevada, New Jersey, -New York, North Carolina, Oklahoma, Oregon, Pennsylvania, Tennessee, Texas, -Utah, Virginia, Washington, Wisconsin +=item CAVEATS AND LIMITATIONS -=item Oceania +BEGIN blocks, Open filehandles, Forking pipe open() not yet implemented, +Global state maintained by XSUBs, Interpreter embedded in larger +application, Thread-safety of extensions -Australia, New Zealand, United States +=back -=item South America +=item BUGS -Argentina, Brazil, Chile +=item AUTHOR -=item RSYNC Mirrors +=item SEE ALSO =back -=item Modules: Creation, Use, and Abuse +=head2 perlnumber - semantics of numbers and numeric operations in Perl =over 4 -=item Guidelines for Module Creation +=item SYNOPSIS -=item Guidelines for Converting Perl 4 Library Scripts into Modules +=item DESCRIPTION -=item Guidelines for Reusing Application Code +=item Storing numbers -=back +=item Numeric operators and numeric conversions -=item NOTE +=item Flavors of Perl numeric operations + +Arithmetic operators, ++, Arithmetic operators during C, Other +mathematical operators, Bitwise operators, Bitwise operators during C, Operators which expect an integer, Operators which expect a +string + +=item AUTHOR + +=item SEE ALSO =back -=head2 perlmodstyle - Perl module style guide +=head2 perlthrtut - tutorial on threads in Perl =over 4 -=item INTRODUCTION +=item DESCRIPTION -=item QUICK CHECKLIST +=item Status -=over 4 +=item What Is A Thread Anyway? -=item Before you start +=item Threaded Program Models -=item The API +=over 4 -=item Stability +=item Boss/Worker -=item Documentation +=item Work Crew -=item Release considerations +=item Pipeline =back -=item BEFORE YOU START WRITING A MODULE +=item What kind of threads are Perl threads? + +=item Thread-Safe Modules + +=item Thread Basics =over 4 -=item Has it been done before? +=item Basic Thread Support -=item Do one thing and do it well +=item A Note about the Examples -=item What's in a name? +=item Creating Threads + +=item Waiting For A Thread To Exit + +=item Ignoring A Thread =back -=item DESIGNING AND WRITING YOUR MODULE +=item Threads And Data =over 4 -=item To OO or not to OO? +=item Shared And Unshared Data -=item Designing your API +=item Thread Pitfalls: Races -Write simple routines to do simple things, Separate functionality from -output, Provide sensible shortcuts and defaults, Naming conventions, -Parameter passing +=back -=item Strictness and warnings +=item Synchronization and control -=item Backwards compatibility +=over 4 -=item Error handling and messages +=item Controlling access: lock() -=back +=item A Thread Pitfall: Deadlocks -=item DOCUMENTING YOUR MODULE +=item Queues: Passing Data Around -=over 4 +=item Semaphores: Synchronizing Data Access -=item POD +=item Basic semaphores -=item README, INSTALL, release notes, changelogs +=item Advanced Semaphores -perl Makefile.PL, make, make test, make install, perl Build.PL, perl Build, -perl Build test, perl Build install +=item cond_wait() and cond_signal() + +=item Giving up control =back -=item RELEASE CONSIDERATIONS +=item General Thread Utility Routines =over 4 -=item Version numbering - -=item Pre-requisites +=item What Thread Am I In? -=item Testing +=item Thread IDs -=item Packaging +=item Are These Threads The Same? -=item Licensing +=item What Threads Are Running? =back -=item COMMON PITFALLS +=item A Complete Example + +=item Different implementations of threads + +=item Performance considerations + +=item Process-scope Changes + +=item Thread-Safety of System Libraries + +=item Conclusion + +=item Bibliography =over 4 -=item Reinventing the wheel +=item Introductory Texts -=item Trying to do too much +=item OS-Related References -=item Inappropriate documentation +=item Other References =back -=item SEE ALSO - -L, L, L, L, Packaging Tools, -Testing tools, http://pause.perl.org/, Any good book on software -engineering +=item Acknowledgements =item AUTHOR +=item Copyrights + =back -=head2 perlnewmod - preparing a new module for distribution +=head2 perlothrtut - old tutorial on threads in Perl =over 4 =item DESCRIPTION +=item What Is A Thread Anyway? + +=item Threaded Program Models + =over 4 -=item Warning +=item Boss/Worker -=item What should I make into a module? +=item Work Crew -=item Step-by-step: Preparing the ground +=item Pipeline -Look around, Check it's new, Discuss the need, Choose a name, Check again +=back -=item Step-by-step: Making the module +=item Native threads -Start with F, Use L and L, Use -L, Use L - wisely!, Use L, Write tests, Write the README +=item What kind of threads are perl threads? -=item Step-by-step: Distributing your module +=item Threadsafe Modules -Get a CPAN user ID, C, Upload the -tarball, Announce to the modules list, Announce to clpa, Fix bugs! +=item Thread Basics -=back +=over 4 -=item AUTHOR +=item Basic Thread Support -=item SEE ALSO +=item Creating Threads + +=item Giving up control + +=item Waiting For A Thread To Exit + +=item Errors In Threads + +=item Ignoring A Thread =back -=head2 perlfaq1 - General Questions About Perl ($Revision: 1.12 $, $Date: -2003/07/09 15:47:28 $) +=item Threads And Data =over 4 -=item DESCRIPTION +=item Shared And Unshared Data + +=item Thread Pitfall: Races + +=item Controlling access: lock() + +=item Thread Pitfall: Deadlocks + +=item Queues: Passing Data Around + +=back + +=item Threads And Code =over 4 -=item What is Perl? +=item Semaphores: Synchronizing Data Access -=item Who supports Perl? Who develops it? Why is it free? +Basic semaphores, Advanced Semaphores -=item Which version of Perl should I use? +=item Attributes: Restricting Access To Subroutines -=item What are perl4 and perl5? +=item Subroutine Locks -=item What is Ponie? +=item Methods -=item What is perl6? +=item Locking A Subroutine -=item How stable is Perl? +=back + +=item General Thread Utility Routines + +=over 4 + +=item What Thread Am I In? + +=item Thread IDs + +=item Are These Threads The Same? -=item Is Perl difficult to learn? +=item What Threads Are Running? -=item How does Perl compare with other languages like Java, Python, REXX, -Scheme, or Tcl? +=back -=item Can I do [task] in Perl? +=item A Complete Example -=item When shouldn't I program in Perl? +=item Conclusion -=item What's the difference between "perl" and "Perl"? +=item Bibliography -=item Is it a Perl program or a Perl script? +=over 4 -=item What is a JAPH? +=item Introductory Texts -=item Where can I get a list of Larry Wall witticisms? +=item OS-Related References -=item How can I convince my sysadmin/supervisor/employees to use version -5/5.6.1/Perl instead of some other language? +=item Other References =back -=item AUTHOR AND COPYRIGHT +=item Acknowledgements -=back +=item AUTHOR -=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.20 $, -$Date: 2003/01/26 17:50:56 $) +=item Copyrights -=over 4 +=back -=item DESCRIPTION +=head2 perlport - Writing portable Perl =over 4 -=item What machines support Perl? Where do I get it? +=item DESCRIPTION -=item How can I get a binary version of Perl? +Not all Perl programs have to be portable, Nearly all of Perl already I +portable -=item I don't have a C compiler on my system. How can I compile perl? +=item ISSUES -=item I copied the Perl binary from one machine to another, but scripts -don't work. +=over 4 -=item I grabbed the sources and tried to compile but gdbm/dynamic -loading/malloc/linking/... failed. How do I make it work? +=item Newlines -=item What modules and extensions are available for Perl? What is CPAN? -What does CPAN/src/... mean? +=item Numbers endianness and Width -=item Is there an ISO or ANSI certified version of Perl? +=item Files and Filesystems -=item Where can I get information on Perl? +=item System Interaction -=item What are the Perl newsgroups on Usenet? Where do I post questions? +=item Command names versus file pathnames -=item Where should I post source code? +=item Networking -=item Perl Books +=item Interprocess Communication (IPC) -References, Tutorials, Task-Oriented, Special Topics +=item External Subroutines (XS) -=item Perl in Magazines +=item Standard Modules -=item Perl on the Net: FTP and WWW Access +=item Time and Date -=item What mailing lists are there for Perl? +=item Character sets and character encoding -=item Archives of comp.lang.perl.misc +=item Internationalisation -=item Where can I buy a commercial version of Perl? +=item System Resources -=item Where do I send bug reports? +=item Security -=item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? +=item Style =back -=item AUTHOR AND COPYRIGHT +=item CPAN Testers -=back +Mailing list: cpan-testers@perl.org, Testing results: +http://testers.cpan.org/ -=head2 perlfaq3 - Programming Tools ($Revision: 1.33 $, $Date: 2003/01/31 -17:34:56 $) +=item PLATFORMS =over 4 -=item DESCRIPTION +=item Unix -=over 4 +=item DOS and Derivatives -=item How do I do (anything)? +=item S -=item How can I use Perl interactively? +=item VMS -=item Is there a Perl shell? +=item VOS -=item How do I find which modules are installed on my system? +=item EBCDIC Platforms -=item How do I debug my Perl programs? +=item Acorn RISC OS -=item How do I profile my Perl programs? +=item Other perls -=item How do I cross-reference my Perl programs? +=back -=item Is there a pretty-printer (formatter) for Perl? +=item FUNCTION IMPLEMENTATIONS -=item Is there a ctags for Perl? +=over 4 -=item Is there an IDE or Windows Perl Editor? +=item Alphabetical Listing of Perl Functions -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 +-I FILEHANDLE, -I EXPR, -I, alarm SECONDS, alarm, binmode +FILEHANDLE, chmod LIST, chown LIST, chroot FILENAME, chroot, crypt +PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MODE, dump LABEL, exec +LIST, exit EXPR, exit, fcntl FILEHANDLE,FUNCTION,SCALAR, flock +FILEHANDLE,OPERATION, fork, getlogin, getpgrp PID, getppid, getpriority +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, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, +endhostent, endnetent, endprotoent, endservent, getsockopt +SOCKET,LEVEL,OPTNAME, glob EXPR, glob, ioctl FILEHANDLE,FUNCTION,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,WRITEHANDLE, readlink EXPR, readlink, select +RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget +KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP, +setpriority WHICH,WHO,PRIORITY, setpwent, setsockopt +SOCKET,LEVEL,OPTNAME,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, syscall LIST, sysopen +FILEHANDLE,FILENAME,MODE,PERMS, system LIST, times, truncate +FILEHANDLE,LENGTH, truncate EXPR,LENGTH, umask EXPR, umask, utime LIST, +wait, waitpid PID,FLAGS -=item Where can I get Perl macros for vi? +=back -=item Where can I get perl-mode for emacs? +=item CHANGES -=item How can I use curses with Perl? +v1.49, 12 August 2002, 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 December +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 -=item How can I use X or Tk with Perl? +=item Supported Platforms -=item How can I generate simple menus without using CGI or Tk? +=item SEE ALSO -=item How can I make my Perl program run faster? +=item AUTHORS / CONTRIBUTORS -=item How can I make my Perl program take less memory? +=back -Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and -stringification, Pass by reference, Tie large variables to disk +=head2 perllocale - Perl locale handling (internationalization and +localization) -=item Is it safe to return a reference to local or lexical data? +=over 4 -=item How can I free an array or hash so my program shrinks? +=item DESCRIPTION -=item How can I make my CGI script more efficient? +=item PREPARING TO USE LOCALES -=item How can I hide the source for my Perl program? +=item USING LOCALES -=item How can I compile my Perl program into byte code or C? +=over 4 -=item How can I compile Perl into Java? +=item The use locale pragma -=item How can I get C<#!perl> to work on [MS-DOS,NT,...]? +=item The setlocale function -=item Can I write useful Perl programs on the command line? +=item Finding locales -=item Why don't Perl one-liners work on my DOS/Mac/VMS system? +=item LOCALE PROBLEMS -=item Where can I learn about CGI or Web programming in Perl? +=item Temporarily fixing locale problems -=item Where can I learn about object-oriented Perl programming? +=item Permanently fixing locale problems -=item Where can I learn about linking C with Perl? [h2xs, xsubpp] +=item Permanently fixing your system's locale configuration -=item I've read perlembed, perlguts, etc., but I can't embed perl in -my C program; what am I doing wrong? +=item Fixing system locale configuration -=item When I tried to run my script, I got this message. What does it mean? +=item The localeconv function -=item What's MakeMaker? +=item I18N::Langinfo =back -=item AUTHOR AND COPYRIGHT +=item LOCALE CATEGORIES -=back +=over 4 -=head2 perlfaq4 - Data Manipulation ($Revision: 1.44 $, $Date: 2003/07/28 -17:35:21 $) +=item Category LC_COLLATE: Collation -=over 4 +=item Category LC_CTYPE: Character Types -=item DESCRIPTION +=item Category LC_NUMERIC: Numeric Formatting -=item Data: Numbers +=item Category LC_MONETARY: Formatting of monetary amounts -=over 4 +=item LC_TIME -=item Why am I getting long decimals (eg, 19.9499999999999) instead of the -numbers I should be getting (eg, 19.95)? +=item Other categories -=item Why isn't my octal data interpreted correctly? +=back -=item Does Perl have a round() function? What about ceil() and floor()? -Trig functions? +=item SECURITY -=item How do I convert between numeric representations? +=item ENVIRONMENT -How do I convert hexadecimal into decimal, How do I convert from decimal to -hexadecimal, How do I convert from octal to decimal, How do I convert from -decimal to octal, How do I convert from binary to decimal, How do I convert -from decimal to binary +PERL_BADLANG, LC_ALL, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY, +LC_NUMERIC, LC_TIME, LANG -=item Why doesn't & work the way I want it to? +=item NOTES -=item How do I multiply matrices? +=over 4 -=item How do I perform an operation on a series of integers? +=item Backward compatibility -=item How can I output Roman numerals? +=item I18N:Collate obsolete -=item Why aren't my random numbers random? +=item Sort speed and memory use impacts -=item How do I get a random number between X and Y? +=item write() and LC_NUMERIC -=back +=item Freely available locale definitions -=item Data: Dates +=item I18n and l10n -=over 4 +=item An imperfect standard -=item How do I find the day or week of the year? +=back -=item How can I compare two dates and find the difference? +=item Unicode and UTF-8 -=item How can I take a string and turn it into epoch seconds? +=item BUGS -=item How can I find the Julian Day? +=over 4 -=item How do I find yesterday's date? +=item Broken systems -=item Does Perl have a Year 2000 problem? Is Perl Y2K compliant? +=back + +=item SEE ALSO + +=item HISTORY =back -=item Data: Strings +=head2 perluniintro - Perl Unicode introduction =over 4 -=item How do I validate input? +=item DESCRIPTION -=item How do I unescape a string? +=over 4 -=item How do I remove consecutive pairs of characters? +=item Unicode + +=item Perl's Unicode Support -=item How do I expand function calls in a string? +=item Perl's Unicode Model -=item How do I find matching/nesting anything? +=item Unicode and EBCDIC -=item How do I reverse a string? +=item Creating Unicode -=item How do I expand tabs in a string? +=item Handling Unicode -=item How do I reformat a paragraph? +=item Legacy Encodings -=item How can I access or change N characters of a string? +=item Unicode I/O -=item How do I change the Nth occurrence of something? +=item Displaying Unicode As Text -=item How can I count the number of occurrences of a substring within a -string? +=item Special Cases -=item How do I capitalize all the words on one line? +=item Advanced Topics -=item How can I split a [character] delimited string except when inside -[character]? +=item Miscellaneous -=item How do I strip blank space from the beginning/end of a string? +=item Questions With Answers -=item How do I pad a string with blanks or pad a number with zeroes? +=item Hexadecimal Notation -=item How do I extract selected columns from a string? +=item Further Resources -=item How do I find the soundex value of a string? +=back -=item How can I expand variables in text strings? +=item UNICODE IN OLDER PERLS -=item What's wrong with always quoting "$vars"? +=item SEE ALSO -=item Why don't my EEHERE documents work? +=item ACKNOWLEDGMENTS -There must be no space after the EE part, There (probably) should -be a semicolon at the end, You can't (easily) have any space in front of -the tag +=item AUTHOR, COPYRIGHT, AND LICENSE =back -=item Data: Arrays +=head2 perlunicode - Unicode support in Perl =over 4 -=item What is the difference between a list and an array? +=item DESCRIPTION -=item What is the difference between $array[1] and @array[1]? +=over 4 -=item How can I remove duplicate elements from a list or array? +=item Important Caveats -a), b), c), d), e) +Input and Output Layers, Regular Expressions, C still needed to +enable UTF-8/UTF-EBCDIC in scripts, C needed to upgrade +non-Latin-1 byte strings -=item How can I tell whether a certain element is contained in a list or -array? +=item Byte and Character Semantics -=item How do I compute the difference of two arrays? How do I compute the -intersection of two arrays? +=item Effects of Character Semantics -=item How do I test whether two arrays or hashes are equal? +=item Scripts -=item How do I find the first array element for which a condition is true? +=item Blocks -=item How do I handle linked lists? +=item User-Defined Character Properties -=item How do I handle circular lists? +=item Character Encodings for Input and Output -=item How do I shuffle an array randomly? +=item Unicode Regular Expression Support Level -=item How do I process/modify each element of an array? +=item Unicode Encodings -=item How do I select a random element from an array? +=item Security Implications of Unicode -=item How do I permute N elements of a list? +=item Unicode in Perl on EBCDIC -=item How do I sort an array by (anything)? +=item Locales -=item How do I manipulate arrays of bits? +=item When Unicode Does Not Happen -=item Why does defined() return true on empty arrays and hashes? +=item Forcing Unicode in Perl (Or Unforcing Unicode in Perl) + +=item Using Unicode in XS =back -=item Data: Hashes (Associative Arrays) +=item BUGS =over 4 -=item How do I process an entire hash? - -=item What happens if I add or remove keys from a hash while iterating over -it? +=item Interaction with Locales -=item How do I look up a hash element by value? +=item Interaction with Extensions -=item How can I know how many entries are in a hash? +=item Speed -=item How do I sort a hash (optionally by value instead of key)? +=item Porting code from perl-5.6.X -=item How can I always keep my hash sorted? +=back -=item What's the difference between "delete" and "undef" with hashes? +=item SEE ALSO -=item Why don't my tied hashes make the defined/exists distinction? +=back -=item How do I reset an each() operation part-way through? +=head2 perlebcdic - Considerations for running Perl on EBCDIC platforms -=item How can I get the unique keys from two hashes? +=over 4 -=item How can I store a multidimensional array in a DBM file? +=item DESCRIPTION -=item How can I make my hash remember the order I put elements into it? +=item COMMON CHARACTER CODE SETS -=item Why does passing a subroutine an undefined element in a hash create -it? +=over 4 -=item How can I make the Perl equivalent of a C structure/C++ class/hash or -array of hashes or arrays? +=item ASCII -=item How can I use a reference as a hash key? +=item ISO 8859 -=back +=item Latin 1 (ISO 8859-1) -=item Data: Misc +=item EBCDIC -=over 4 +=item 13 variant characters -=item How do I handle binary data correctly? +=item 0037 -=item How do I determine whether a scalar is a number/whole/integer/float? +=item 1047 -=item How do I keep persistent data across program calls? +=item POSIX-BC -=item How do I print out or copy a recursive data structure? +=item Unicode code points versus EBCDIC code points -=item How do I define methods for every class/object? +=item Remaining Perl Unicode problems in EBCDIC -=item How do I verify a credit card checksum? +=item Unicode and UTF -=item How do I pack arrays of doubles or floats for XS code? +=item Using Encode =back -=item AUTHOR AND COPYRIGHT - -=back +=item SINGLE OCTET TABLES -=head2 perlfaq5 - Files and Formats ($Revision: 1.28 $, $Date: 2003/01/26 -17:45:46 $) +recipe 0, recipe 1, recipe 2, recipe 3, recipe 4, recipe 5, recipe 6 -=over 4 +=item IDENTIFYING CHARACTER CODE SETS -=item DESCRIPTION +=item CONVERSIONS =over 4 -=item How do I flush/unbuffer an output filehandle? Why must I do this? +=item tr/// -=item 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? +=item iconv -=item How do I count the number of lines in a file? +=item C RTL -=item How can I use Perl's C<-i> option from within a program? +=back -=item How do I make a temporary file name? +=item OPERATOR DIFFERENCES -=item How can I manipulate fixed-record-length files? +=item FUNCTION DIFFERENCES -=item How can I make a filehandle local to a subroutine? How do I pass -filehandles between subroutines? How do I make an array of filehandles? +chr(), ord(), pack(), print(), printf(), sort(), sprintf(), unpack() -=item How can I use a filehandle indirectly? +=item REGULAR EXPRESSION DIFFERENCES -=item How can I set up a footer format to be used with write()? +=item SOCKETS -=item How can I write() into a string? +=item SORTING -=item How can I output my numbers with commas added? +=over 4 -=item How can I translate tildes (~) in a filename? +=item Ignore ASCII vs. EBCDIC sort differences. -=item How come when I open a file read-write it wipes it out? +=item MONO CASE then sort data. -=item Why do I sometimes get an "Argument list too long" when I use -E*E? +=item Convert, sort data, then re convert. -=item Is there a leak/bug in glob()? +=item Perform sorting on one type of machine only. -=item How can I open a file with a leading ">" or trailing blanks? +=back -=item How can I reliably rename a file? +=item TRANSFORMATION FORMATS -=item How can I lock a file? +=over 4 -=item Why can't I just open(FH, "Efile.lock")? +=item URL decoding and encoding -=item I still don't get locking. I just want to increment the number in -the file. How can I do this? +=item uu encoding and decoding -=item 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? +=item Quoted-Printable encoding and decoding -=item How do I randomly update a binary file? +=item Caesarian ciphers -=item How do I get a file's timestamp in perl? +=back -=item How do I set a file's timestamp in perl? +=item Hashing order and checksums -=item How do I print to more than one file at once? +=item I18N AND L10N -=item How can I read in an entire file all at once? +=item MULTI OCTET CHARACTER SETS -=item How can I read in a file by paragraphs? +=item OS ISSUES -=item How can I read a single character from a file? From the keyboard? +=over 4 -=item How can I tell whether there's a character waiting on a filehandle? +=item OS/400 -=item How do I do a C in perl? +PASE, IFS access -=item How do I dup() a filehandle in Perl? +=item OS/390, z/OS -=item How do I close a file descriptor by number? +chcp, dataset access, OS/390, z/OS iconv, locales -=item Why can't I use "C:\temp\foo" in DOS paths? Why doesn't -`C:\temp\foo.exe` work? +=item VM/ESA? -=item Why doesn't glob("*.*") get all the files? +=item POSIX-BC? -=item Why does Perl let me delete read-only files? Why does C<-i> clobber -protected files? Isn't this a bug in Perl? +=back -=item How do I select a random line from a file? +=item BUGS -=item Why do I get weird spaces when I print an array of lines? +=item SEE ALSO -=back +=item REFERENCES -=item AUTHOR AND COPYRIGHT +=item HISTORY + +=item AUTHOR =back -=head2 perlfaq6 - Regular Expressions ($Revision: 1.20 $, $Date: 2003/01/03 -20:05:28 $) +=head2 perlsec - Perl security =over 4 @@ -3518,276 +3530,334 @@ protected files? Isn't this a bug in Perl? =over 4 -=item How can I hope to use regular expressions without creating illegible -and unmaintainable code? - -Comments Outside the Regex, Comments Inside the Regex, Different Delimiters - -=item I'm having trouble matching over more than one line. What's wrong? - -=item How can I pull out lines between two patterns that are themselves on -different lines? +=item Laundering and Detecting Tainted Data -=item I put a regular expression into $/ but it didn't work. What's wrong? +=item Switches On the "#!" Line -=item How do I substitute case insensitively on the LHS while preserving -case on the RHS? +=item Taint mode and @INC -=item How can I make C<\w> match national character sets? +=item Cleaning Up Your Path -=item How can I match a locale-smart version of C? +=item Security Bugs -=item How can I quote a variable to use in a regex? +=item Protecting Your Programs -=item What is C really for? +=item Unicode -=item How do I use a regular expression to strip C style comments from a -file? +=item Algorithmic Complexity Attacks -=item Can I use Perl regular expressions to match balanced text? +=back -=item What does it mean that regexes are greedy? How can I get around it? +=item SEE ALSO -=item How do I process each word on each line? +=back -=item How can I print out a word-frequency or line-frequency summary? +=head2 perlmod - Perl modules (packages and symbol tables) -=item How can I do approximate matching? +=over 4 -=item How do I efficiently match many regular expressions at once? +=item DESCRIPTION -=item Why don't word-boundary searches with C<\b> work for me? +=over 4 -=item Why does using $&, $`, or $' slow my program down? +=item Packages -=item What good is C<\G> in a regular expression? +=item Symbol Tables -=item Are Perl regexes DFAs or NFAs? Are they POSIX compliant? +=item BEGIN, CHECK, INIT and END -=item What's wrong with using grep or map in a void context? +=item Perl Classes -=item How can I match strings with multibyte characters? +=item Perl Modules -=item How do I match a pattern that is supplied by the user? +=item Making your module threadsafe =back -=item AUTHOR AND COPYRIGHT +=item SEE ALSO =back -=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.15 $, $Date: -2003/07/24 02:17:21 $) +=head2 perlmodlib - constructing new Perl modules and finding existing ones =over 4 -=item DESCRIPTION +=item THE PERL MODULE LIBRARY =over 4 -=item Can I get a BNF/yacc/RE for the Perl language? - -=item What are all these $@%&* punctuation signs, and how do I know when to -use them? +=item Pragmatic Modules -=item Do I always/never have to quote my strings or use semicolons and -commas? +assertions, assertions::activate, 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, version, +vmsish, warnings, warnings::register -=item How do I skip some return values? +=item Standard Modules -=item How do I temporarily block warnings? +AnyDBM_File, 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, Benchmark, 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, DB_File, Data::Dumper, Devel::DProf, +Devel::PPPort, Devel::Peek, Devel::SelfStubber, Digest, Digest::MD5, +Digest::base, DirHandle, Dumpvalue, DynaLoader, Encode, Encode::Alias, +Encode::Byte, Encode::CJKConstants, Encode::CN, Encode::CN::HZ, +Encode::Config, Encode::EBCDIC, Encode::Encoder, Encode::Encoding, +Encode::Guess, Encode::JP, Encode::JP::H2Z, Encode::JP::JIS7, Encode::KR, +Encode::KR::2022_KR, Encode::MIME::Header, Encode::PerlIO, +Encode::Supported, Encode::Symbol, Encode::TW, Encode::Unicode, +Encode::Unicode::UTF7, English, Env, Errno, Exporter, Exporter::Heavy, +ExtUtils::Command, ExtUtils::Command::MM, ExtUtils::Constant, +ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist, +ExtUtils::MM, ExtUtils::MM_Any, ExtUtils::MM_BeOS, ExtUtils::MM_Cygwin, +ExtUtils::MM_DOS, ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2, +ExtUtils::MM_UWIN, ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_Win32, +ExtUtils::MM_Win95, ExtUtils::MY, ExtUtils::MakeMaker, +ExtUtils::MakeMaker::FAQ, ExtUtils::MakeMaker::Tutorial, +ExtUtils::MakeMaker::bytes, ExtUtils::MakeMaker::vmsish, +ExtUtils::Manifest, ExtUtils::Mkbootstrap, ExtUtils::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, GDBM_File, +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::Currency, Locale::Language, Locale::Maketext, +Locale::Maketext::TPJ13, Locale::Script, MIME::Base64, +MIME::Base64::QuotedPrint, Math::BigFloat, Math::BigInt, +Math::BigInt::Calc, Math::BigRat, Math::Complex, Math::Trig, Memoize, +Memoize::AnyDBM_File, Memoize::Expire, Memoize::ExpireFile, +Memoize::ExpireTest, Memoize::NDBM_File, Memoize::SDBM_File, +Memoize::Storable, NDBM_File, 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, ODBM_File, Opcode, POSIX, PerlIO, PerlIO::encoding, +PerlIO::scalar, PerlIO::via, PerlIO::via::QuotedPrint, Pod::Checker, +Pod::Find, Pod::Functions, Pod::Html, Pod::InputObjects, Pod::LaTeX, +Pod::Man, Pod::ParseLink, Pod::ParseUtils, Pod::Parser, +Pod::Perldoc::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, SDBM_File, Safe, Scalar::Util, +Search::Dict, SelectSaver, SelfLoader, Shell, Socket, Storable, Switch, +Symbol, Sys::Hostname, Sys::Syslog, Term::ANSIColor, Term::Cap, +Term::Complete, Term::ReadLine, Test, Test::Builder, Test::Harness, +Test::Harness::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, Unicode::Collate, Unicode::Normalize, +Unicode::UCD, User::grent, User::pwent, Win32, XS::APItest, XS::Typemap, +XSLoader -=item What's an extension? +=item Extension Modules -=item Why do Perl operators have different precedence than C operators? +=back -=item How do I declare/create a structure? +=item CPAN -=item How do I create a module? +=over 4 -=item How do I create a class? +=item Africa -=item How can I tell if a variable is tainted? +South Africa -=item What's a closure? +=item Asia -=item What is variable suicide and how can I prevent it? +China, Indonesia, Israel, Japan, Malaysia, Russian Federation, Saudi +Arabia, Singapore, South Korea, Taiwan, Thailand -=item How can I pass/return a {Function, FileHandle, Array, Hash, Method, -Regex}? +=item Central America -Passing Variables and Functions, Passing Filehandles, Passing Regexes, -Passing Methods +Costa Rica -=item How do I create a static variable? +=item Europe -=item What's the difference between dynamic and lexical (static) scoping? -Between local() and my()? +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, Slovakia, Slovenia, Spain, Sweden, Switzerland, +Turkey, Ukraine, United Kingdom -=item How can I access a dynamic variable while a similarly named lexical -is in scope? +=item North America -=item What's the difference between deep and shallow binding? +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 -=item Why doesn't "my($foo) = EFILEE;" work right? +=item Oceania -=item How do I redefine a builtin function, operator, or method? +Australia, New Zealand, United States -=item What's the difference between calling a function as &foo and foo()? +=item South America -=item How do I create a switch or case statement? +Argentina, Brazil, Chile -=item How can I catch accesses to undefined variables, functions, or -methods? +=item RSYNC Mirrors -=item Why can't a method included in this same file be found? +=back -=item How can I find out my current package? +=item Modules: Creation, Use, and Abuse -=item How can I comment out a large block of perl code? +=over 4 -=item How do I clear a package? +=item Guidelines for Module Creation -=item How can I use a variable as a variable name? +=item Guidelines for Converting Perl 4 Library Scripts into Modules -=item What does "bad interpreter" mean? +=item Guidelines for Reusing Application Code =back -=item AUTHOR AND COPYRIGHT +=item NOTE =back -=head2 perlfaq8 - System Interaction ($Revision: 1.17 $, $Date: 2003/01/26 -17:44:04 $) +=head2 perlmodstyle - Perl module style guide =over 4 -=item DESCRIPTION +=item INTRODUCTION + +=item QUICK CHECKLIST =over 4 -=item How do I find out which operating system I'm running under? +=item Before you start -=item How come exec() doesn't return? +=item The API -=item How do I do fancy stuff with the keyboard/screen/mouse? +=item Stability -Keyboard, Screen, Mouse +=item Documentation -=item How do I print something out in color? +=item Release considerations -=item How do I read just one key without waiting for a return key? +=back -=item How do I check whether input is ready on the keyboard? +=item BEFORE YOU START WRITING A MODULE -=item How do I clear the screen? +=over 4 -=item How do I get the screen size? +=item Has it been done before? -=item How do I ask the user for a password? +=item Do one thing and do it well -=item How do I read and write the serial port? +=item What's in a name? -lockfiles, open mode, end of line, flushing output, non-blocking input +=back -=item How do I decode encrypted password files? +=item DESIGNING AND WRITING YOUR MODULE -=item How do I start a process in the background? +=over 4 -STDIN, STDOUT, and STDERR are shared, Signals, Zombies +=item To OO or not to OO? -=item How do I trap control characters/signals? +=item Designing your API -=item How do I modify the shadow password file on a Unix system? +Write simple routines to do simple things, Separate functionality from +output, Provide sensible shortcuts and defaults, Naming conventions, +Parameter passing -=item How do I set the time and date? +=item Strictness and warnings -=item How can I sleep() or alarm() for under a second? +=item Backwards compatibility -=item How can I measure time under a second? +=item Error handling and messages -=item How can I do an atexit() or setjmp()/longjmp()? (Exception handling) +=back -=item Why doesn't my sockets program work under System V (Solaris)? What -does the error message "Protocol not supported" mean? +=item DOCUMENTING YOUR MODULE -=item How can I call my system's unique C functions from Perl? +=over 4 -=item Where do I get the include files to do ioctl() or syscall()? +=item POD -=item Why do setuid perl scripts complain about kernel problems? +=item README, INSTALL, release notes, changelogs -=item How can I open a pipe both to and from a command? +perl Makefile.PL, make, make test, make install, perl Build.PL, perl Build, +perl Build test, perl Build install -=item Why can't I get the output of a command with system()? +=back -=item How can I capture STDERR from an external command? +=item RELEASE CONSIDERATIONS -=item Why doesn't open() return an error when a pipe open fails? +=over 4 -=item What's wrong with using backticks in a void context? +=item Version numbering -=item How can I call backticks without shell processing? +=item Pre-requisites -=item Why can't my script read from STDIN after I gave it EOF (^D on Unix, -^Z on MS-DOS)? +=item Testing -=item How can I convert my shell script to perl? +=item Packaging -=item Can I use perl to run a telnet or ftp session? +=item Licensing -=item How can I write expect in Perl? +=back -=item Is there a way to hide perl's command line from programs such as -"ps"? +=item COMMON PITFALLS -=item 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? +=over 4 -Unix +=item Reinventing the wheel -=item How do I close a process's filehandle without waiting for it to -complete? +=item Trying to do too much -=item How do I fork a daemon process? +=item Inappropriate documentation -=item How do I find out if I'm running interactively or not? +=back + +=item SEE ALSO -=item How do I timeout a slow event? +L, L, L, L, Packaging Tools, +Testing tools, http://pause.perl.org/, Any good book on software +engineering -=item How do I set CPU limits? +=item AUTHOR -=item How do I avoid zombies on a Unix system? +=back -=item How do I use an SQL database? +=head2 perlmodinstall - Installing CPAN Modules -=item How do I make a system() exit on control-C? +=over 4 -=item How do I open a file without blocking? +=item DESCRIPTION -=item How do I install a module from CPAN? +=over 4 -=item What's the difference between require and use? +=item PREAMBLE -=item How do I keep my own module/library directory? +B the file, B the file into a directory, B the +module (sometimes unnecessary), B the module -=item How do I add the directory my program lives in to the module/library -search path? +=back -=item How do I add a directory to my include path at runtime? +=item PORTABILITY -=item What is socket.ph and where do I get it? +=item HEY -=back +=item AUTHOR -=item AUTHOR AND COPYRIGHT +=item COPYRIGHT =back -=head2 perlfaq9 - Networking ($Revision: 1.15 $, $Date: 2003/01/31 17:36:57 -$) +=head2 perlnewmod - preparing a new module for distribution =over 4 @@ -3795,65 +3865,65 @@ $) =over 4 -=item What is the correct form of response from a CGI script? - -=item My CGI script runs from the command line but not the browser. (500 -Server Error) +=item Warning -=item How can I get better error messages from a CGI program? +=item What should I make into a module? -=item How do I remove HTML from a string? +=item Step-by-step: Preparing the ground -=item How do I extract URLs? +Look around, Check it's new, Discuss the need, Choose a name, Check again -=item How do I download a file from the user's machine? How do I open a -file on another machine? +=item Step-by-step: Making the module -=item How do I make a pop-up menu in HTML? +Start with F, Use L and L, Use +L, Use L - wisely!, Use L, Write tests, Write the README -=item How do I fetch an HTML file? +=item Step-by-step: Distributing your module -=item How do I automate an HTML form submission? +Get a CPAN user ID, C, Upload the +tarball, Announce to the modules list, Announce to clpa, Fix bugs! -=item How do I decode or create those %-encodings on the web? +=back -=item How do I redirect to another page? +=item AUTHOR -=item How do I put a password on my web pages? +=item SEE ALSO -=item How do I edit my .htpasswd and .htgroup files with Perl? +=back -=item How do I make sure users can't enter values into a form that cause my -CGI script to do bad things? +=head2 perlutil - utilities packaged with the Perl distribution -=item How do I parse a mail header? +=over 4 -=item How do I decode a CGI form? +=item DESCRIPTION -=item How do I check a valid mail address? +=over 4 -=item How do I decode a MIME/BASE64 string? +=item DOCUMENTATION -=item How do I return the user's mail address? +L, L and L, +L and L, L, +L, L, L, +L -=item How do I send mail? +=item CONVERTORS -=item How do I use MIME to make an attachment to a mail message? +L, L, L -=item How do I read mail? +=item Administration -=item How do I find out my hostname/domainname/IP address? +L -=item How do I fetch a news article or the active newsgroups? +=item Development -=item How do I fetch/put an FTP file? +L, L, L and L, +L, L, L -=item How can I do RPC in Perl? +=item SEE ALSO =back -=item AUTHOR AND COPYRIGHT - =back =head2 perlcompile - Introduction to the Perl Compiler-Translator @@ -3902,6 +3972,42 @@ B::Stackobj, B::Stash, B::Terse, B::Xref =back +=head2 perlfilter - Source Filters + +=over 4 + +=item DESCRIPTION + +=item CONCEPTS + +=item USING FILTERS + +=item WRITING A SOURCE FILTER + +=item WRITING A SOURCE FILTER IN C + +B + +=item CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE + +=item WRITING A SOURCE FILTER IN PERL + +=item USING CONTEXT: THE DEBUG FILTER + +=item CONCLUSION + +=item THINGS TO LOOK OUT FOR + +Some Filters Clobber the C Handle + +=item REQUIREMENTS + +=item AUTHOR + +=item Copyrights + +=back + =head2 perlembed - how to embed perl in your C program =over 4 @@ -4370,7 +4476,7 @@ save_hptr(HV **hptr)> =item Internal Functions -A, p, d, s, n, r, f, M, o, j, x +A, p, d, s, n, r, f, M, o, x, m, X, E, b =over 4 @@ -4384,204 +4490,105 @@ A, p, d, s, n, r, f, M, o, j, x =item Unicode Support -=over 4 - -=item What B Unicode, anyway? - -=item How can I recognise a UTF8 string? - -=item How does UTF8 represent Unicode characters? - -=item How does Perl store UTF8 strings? - -=item How do I convert a string to UTF8? - -=item Is there anything else I need to know? - -=back - -=item Custom Operators - -=item AUTHORS - -=item SEE ALSO - -=back - -=head2 perlcall - Perl calling conventions from C - -=over 4 - -=item DESCRIPTION - -An Error Handler, An Event Driven Program - -=item THE CALL_ FUNCTIONS - -call_sv, call_pv, call_method, call_argv - -=item FLAG VALUES - -=over 4 - -=item G_VOID - -=item G_SCALAR - -=item G_ARRAY - -=item G_DISCARD - -=item G_NOARGS - -=item G_EVAL - -=item G_KEEPERR - -=item Determining the Context - -=back - -=item KNOWN PROBLEMS - -=item EXAMPLES - -=over 4 - -=item No Parameters, Nothing returned - -=item Passing Parameters - -=item Returning a Scalar - -=item Returning a list of values - -=item Returning a list in a scalar context - -=item Returning Data from Perl via the parameter list - -=item Using G_EVAL - -=item Using G_KEEPERR - -=item Using call_sv - -=item Using call_argv - -=item Using call_method - -=item Using GIMME_V - -=item Using Perl to dispose of temporaries - -=item Strategies for storing Callback Context Information - -1. Ignore the problem - Allow only 1 callback, 2. Create a sequence of -callbacks - hard wired limit, 3. Use a parameter to map to the Perl -callback - -=item Alternate Stack Manipulation - -=item Creating and calling an anonymous subroutine in C - -=back - -=item SEE ALSO - -=item AUTHOR - -=item DATE - -=back - -=head2 perlutil - utilities packaged with the Perl distribution - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item DOCUMENTATION - -L, L and L, -L and L, L, -L, L, L, -L - -=item CONVERTORS +=over 4 -L, L, L +=item What B Unicode, anyway? -=item Administration +=item How can I recognise a UTF-8 string? -L +=item How does UTF-8 represent Unicode characters? -=item Development +=item How does Perl store UTF-8 strings? -L, L, L and L, -L, L, L +=item How do I convert a string to UTF-8? -=item SEE ALSO +=item Is there anything else I need to know? =back +=item Custom Operators + +=item AUTHORS + +=item SEE ALSO + =back -=head2 perlfilter - Source Filters +=head2 perlcall - Perl calling conventions from C =over 4 =item DESCRIPTION -=item CONCEPTS - -=item USING FILTERS +An Error Handler, An Event Driven Program -=item WRITING A SOURCE FILTER +=item THE CALL_ FUNCTIONS -=item WRITING A SOURCE FILTER IN C +call_sv, call_pv, call_method, call_argv -B +=item FLAG VALUES -=item CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE +=over 4 -=item WRITING A SOURCE FILTER IN PERL +=item G_VOID -=item USING CONTEXT: THE DEBUG FILTER +=item G_SCALAR -=item CONCLUSION +=item G_ARRAY -=item THINGS TO LOOK OUT FOR +=item G_DISCARD -Some Filters Clobber the C Handle +=item G_NOARGS -=item REQUIREMENTS +=item G_EVAL -=item AUTHOR +=item G_KEEPERR -=item Copyrights +=item Determining the Context =back -=head2 perldbmfilter - Perl DBM Filters +=item KNOWN PROBLEMS + +=item EXAMPLES =over 4 -=item SYNOPSIS +=item No Parameters, Nothing returned -=item DESCRIPTION +=item Passing Parameters -B, B, B, -B +=item Returning a Scalar -=over 4 +=item Returning a list of values -=item The Filter +=item Returning a list in a scalar context -=item An Example -- the NULL termination problem. +=item Returning Data from Perl via the parameter list -=item Another Example -- Key is a C int. +=item Using G_EVAL + +=item Using G_KEEPERR + +=item Using call_sv + +=item Using call_argv + +=item Using call_method + +=item Using GIMME_V + +=item Using Perl to dispose of temporaries + +=item Strategies for storing Callback Context Information + +1. Ignore the problem - Allow only 1 callback, 2. Create a sequence of +callbacks - hard wired limit, 3. Use a parameter to map to the Perl +callback + +=item Alternate Stack Manipulation + +=item Creating and calling an anonymous subroutine in C =back @@ -4589,6 +4596,8 @@ B =item AUTHOR +=item DATE + =back =head2 perlapi - autogenerated documentation for the perl public API @@ -4649,10 +4658,11 @@ HEf_SVKEY, Nullch, Nullsv =item Hash Manipulation Functions get_hv, HeHASH, HeKEY, HeKLEN, HePV, HeSVKEY, HeSVKEY_force, HeSVKEY_set, -HeVAL, HvNAME, hv_clear, hv_delete, hv_delete_ent, hv_exists, -hv_exists_ent, hv_fetch, hv_fetch_ent, hv_iterinit, hv_iterkey, -hv_iterkeysv, hv_iternext, hv_iternextsv, hv_iternext_flags, hv_iterval, -hv_magic, hv_store, hv_store_ent, hv_undef, newHV, Nullhv +HeVAL, HvNAME, hv_assert, hv_clear, hv_clear_placeholders, hv_delete, +hv_delete_ent, hv_exists, hv_exists_ent, hv_fetch, hv_fetch_ent, +hv_iterinit, hv_iterkey, hv_iterkeysv, hv_iternext, hv_iternextsv, +hv_iternext_flags, hv_iterval, hv_magic, hv_scalar, hv_store, hv_store_ent, +hv_undef, newHV, Nullhv =item Magical Functions @@ -4690,7 +4700,8 @@ dMARK, dORIGMARK, dSP, EXTEND, MARK, ORIGMARK, POPi, POPl, POPn, POPp, POPpbytex, POPpx, POPs, PUSHi, PUSHMARK, PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, SP, SPAGAIN, XPUSHi, XPUSHn, XPUSHp, XPUSHs, XPUSHu, XSRETURN, XSRETURN_IV, XSRETURN_NO, XSRETURN_NV, XSRETURN_PV, XSRETURN_UNDEF, -XSRETURN_YES, XST_mIV, XST_mNO, XST_mNV, XST_mPV, XST_mUNDEF, XST_mYES +XSRETURN_UV, XSRETURN_YES, XST_mIV, XST_mNO, XST_mNV, XST_mPV, XST_mUNDEF, +XST_mYES =item SV Flags @@ -4735,10 +4746,10 @@ sv_utf8_upgrade_flags, sv_uv, sv_vcatpvfn, sv_vsetpvfn =item Unicode Support bytes_from_utf8, bytes_to_utf8, ibcmp_utf8, is_utf8_char, is_utf8_string, -pv_uni_display, sv_cat_decode, sv_recode_to_utf8, sv_uni_display, -to_utf8_case, to_utf8_fold, to_utf8_lower, to_utf8_title, to_utf8_upper, -utf8n_to_uvchr, utf8n_to_uvuni, utf8_distance, utf8_hop, utf8_length, -utf8_to_bytes, utf8_to_uvchr, utf8_to_uvuni, uvchr_to_utf8, +is_utf8_string_loc, pv_uni_display, sv_cat_decode, sv_recode_to_utf8, +sv_uni_display, to_utf8_case, to_utf8_fold, to_utf8_lower, to_utf8_title, +to_utf8_upper, utf8n_to_uvchr, utf8n_to_uvuni, utf8_distance, utf8_hop, +utf8_length, utf8_to_bytes, utf8_to_uvchr, utf8_to_uvuni, uvchr_to_utf8, uvuni_to_utf8_flags =item Variables created by C and C internal functions @@ -4772,8 +4783,8 @@ CvWEAKOUTSIDE CX_CURPAD_SAVE, CX_CURPAD_SV, PAD_BASE_SV, PAD_CLONE_VARS, PAD_COMPNAME_FLAGS, PAD_COMPNAME_GEN, PAD_COMPNAME_OURSTASH, PAD_COMPNAME_PV, PAD_COMPNAME_TYPE, PAD_DUP, PAD_RESTORE_LOCAL, -PAD_SAVE_LOCAL, PAD_SAVE_SETNULLPAD, PAD_SETSV, PAD_SET_CUR, PAD_SV, -PAD_SVl, SAVECLEARSV, SAVECOMPPAD, SAVEPADSV +PAD_SAVE_LOCAL, PAD_SAVE_SETNULLPAD, PAD_SETSV, PAD_SET_CUR, +PAD_SET_CUR_NOSAVE, PAD_SV, PAD_SVl, SAVECLEARSV, SAVECOMPPAD, SAVEPADSV =item Functions in file pp_ctl.c @@ -4788,126 +4799,276 @@ PL_rs is_gv_magical -=item IO Functions +=item IO Functions + +start_glob + +=item Pad Data Structures + +CvPADLIST, cv_clone, cv_dump, do_dump_pad, intro_my, pad_add_anon, +pad_add_name, pad_alloc, pad_block_start, pad_check_dup, pad_findlex, +pad_findmy, pad_fixup_inner_anons, pad_free, pad_leavemy, pad_new, +pad_push, pad_reset, pad_setsv, pad_swipe, pad_tidy, pad_undef + +=item Stack Manipulation Macros + +djSP, LVRET + +=item SV Manipulation Functions + +report_uninit, sv_add_arena, sv_clean_all, sv_clean_objs, sv_free_arenas + +=item AUTHORS + +=item SEE ALSO + +=back + +=head2 perliol - C API for Perl's implementation of IO in Layers. + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=over 4 + +=item History and Background + +=item Basic Structure + +=item Layers vs Disciplines + +=item Data Structures + +=item Functions and Attributes + +=item Per-instance Data + +=item Layers in action. + +=item Per-instance flag bits + +PERLIO_F_EOF, PERLIO_F_CANWRITE, PERLIO_F_CANREAD, PERLIO_F_ERROR, +PERLIO_F_TRUNCATE, PERLIO_F_APPEND, PERLIO_F_CRLF, PERLIO_F_UTF8, +PERLIO_F_UNBUF, PERLIO_F_WRBUF, PERLIO_F_RDBUF, PERLIO_F_LINEBUF, +PERLIO_F_TEMP, PERLIO_F_OPEN, PERLIO_F_FASTGETS + +=item Methods in Detail + +fsize, name, size, kind, PERLIO_K_BUFFERED, PERLIO_K_RAW, PERLIO_K_CANCRLF, +PERLIO_K_FASTGETS, PERLIO_K_MULTIARG, Pushed, Popped, Open, Binmode, +Getarg, Fileno, Dup, Read, Write, Seek, Tell, Close, Flush, Fill, Eof, +Error, Clearerr, Setlinebuf, Get_base, Get_bufsiz, Get_ptr, Get_cnt, +Set_ptrcnt + +=item Utilities + +=item Implementing PerlIO Layers + +C implementations, Perl implementations + +=item Core Layers + +"unix", "perlio", "stdio", "crlf", "mmap", "pending", "raw", "utf8" + +=item Extension Layers + +":encoding", ":scalar", ":via" + +=back + +=item TODO + +=back + +=head2 perlapio - perl's IO abstraction interface. + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +1. USE_STDIO, 2. USE_SFIO, 3. USE_PERLIO, B, +B, B, B, +B, B, +B, B, +B, B, +B, B, B, +B, B, B, +B, B, B, +B, B, B, +B, B, B, +B, B, B + +=over 4 + +=item Co-existence with stdio + +B, B, +B, B + +=item "Fast gets" Functions + +B, B, B, +B, B, B, +B, B, B, +B + +=item Other Functions + +PerlIO_apply_layers(f,mode,layers), PerlIO_binmode(f,ptype,imode,layers), +'E' read, 'E' write, '+' read/write, PerlIO_debug(fmt,...) + +=back + +=back + +=head2 perlhack - How to hack at the Perl internals + +=over 4 + +=item DESCRIPTION + +Does concept match the general goals of Perl?, Where is the +implementation?, Backwards compatibility, Could it be a module instead?, Is +the feature generic enough?, Does it potentially introduce new bugs?, Does +it preclude other desirable features?, Is the implementation robust?, Is +the implementation generic enough to be portable?, Is the implementation +tested?, Is there enough documentation?, Is there another way to do it?, +Does it create too much work?, Patches speak louder than words + +=over 4 + +=item Keeping in sync + +rsync'ing the source tree, Using rsync over the LAN, Using pushing over the +NFS, rsync'ing the patches + +=item Why rsync the source tree + +It's easier to rsync the source tree, It's more reliable + +=item Why rsync the patches + +It's easier to rsync the patches, It's a good reference, Finding a start +point, Finding how to fix a bug, Finding the source of misbehaviour + +=item Perlbug administration + +=item Submitting patches + +L, L and L, L, +F, The perl5-porters FAQ + +=item Finding Your Way Around + +Core modules, Tests, Documentation, Configure, Interpreter + +=item Elements of the interpreter -start_glob +Startup, Parsing, Optimization, Running -=item Pad Data Structures +=item Internal Variable Types -CvPADLIST, cv_clone, cv_dump, do_dump_pad, intro_my, pad_add_anon, -pad_add_name, pad_alloc, pad_block_start, pad_check_dup, pad_findlex, -pad_findmy, pad_fixup_inner_anons, pad_free, pad_leavemy, pad_new, -pad_push, pad_reset, pad_setsv, pad_swipe, pad_tidy, pad_undef +=item Op Trees -=item Stack Manipulation Macros +=item Stacks -djSP, LVRET +Argument stack, Mark stack, Save stack -=item SV Manipulation Functions +=item Millions of Macros -report_uninit, sv_add_arena, sv_clean_all, sv_clean_objs, sv_free_arenas +=item The .i Targets -=item AUTHORS +=item Poking at Perl -=item SEE ALSO +=item Using a source-level debugger -=back +run [args], break function_name, break source.c:xxx, step, next, continue, +finish, 'enter', print -=head2 perliol - C API for Perl's implementation of IO in Layers. +=item gdb macro support -=over 4 +=item Dumping Perl Data Structures -=item SYNOPSIS +=item Patching -=item DESCRIPTION +=item Patching a core module -=over 4 +=item Adding a new function to the core -=item History and Background +=item Writing a test -=item Layers vs Disciplines +F, F, F, F, F, F, +F, F, F, F, F, t/base t/comp, +t/cmd t/run t/io t/op, t/lib ext lib -=item Data Structures +=item Special Make Test Targets -=item Functions and Attributes +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, test_harness -=item Per-instance Data +=item Running tests by hand -=item Layers in action. +PERL_CORE=1, PERL_DESTRUCT_LEVEL=2, PERL, PERL_SKIP_TTY_TEST -=item Per-instance flag bits +=back -PERLIO_F_EOF, PERLIO_F_CANWRITE, PERLIO_F_CANREAD, PERLIO_F_ERROR, -PERLIO_F_TRUNCATE, PERLIO_F_APPEND, PERLIO_F_CRLF, PERLIO_F_UTF8, -PERLIO_F_UNBUF, PERLIO_F_WRBUF, PERLIO_F_RDBUF, PERLIO_F_LINEBUF, -PERLIO_F_TEMP, PERLIO_F_OPEN, PERLIO_F_FASTGETS +=item EXTERNAL TOOLS FOR DEBUGGING PERL -=item Methods in Detail +=over 4 -fsize, name, size, kind, PERLIO_K_BUFFERED, PERLIO_K_RAW, PERLIO_K_CANCRLF, -PERLIO_K_FASTGETS, PERLIO_K_MULTIARG, Pushed, Popped, Open, Binmode, -Getarg, Fileno, Dup, Read, Write, Seek, Tell, Close, Flush, Fill, Eof, -Error, Clearerr, Setlinebuf, Get_base, Get_bufsiz, Get_ptr, Get_cnt, -Set_ptrcnt +=item Rational Software's Purify -=item Implementing PerlIO Layers +=item Purify on Unix -C implementations, Perl implementations +-Accflags=-DPURIFY, -Doptimize='-g', -Uusemymalloc, -Dusemultiplicity -=item Core Layers +=item Purify on NT -"unix", "perlio", "stdio", "crlf", "mmap", "pending", "raw", "utf8" +DEFINES, USE_MULTI = define, #PERL_MALLOC = define, CFG = Debug -=item Extension Layers +=item valgrind -":encoding", ":scalar", ":via" +=item Compaq's/Digital's/HP's Third Degree -=back +=item PERL_DESTRUCT_LEVEL -=item TODO +=item Profiling -=back +=item Gprof Profiling -=head2 perlapio - perl's IO abstraction interface. +-a, -b, -e routine, -f routine, -s, -z -=over 4 +=item GCC gcov Profiling -=item SYNOPSIS +=item Pixie Profiling -=item DESCRIPTION +-h, -l, -p[rocedures], -h[eavy], -i[nvocations], -l[ines], -testcoverage, +-z[ero] -1. USE_STDIO, 2. USE_SFIO, 3. USE_PERLIO, B, -B, B, B, -B, B, -B, B, -B, B, -B, B, B, -B, B, B, -B, B, B, -B, B, B, -B, B, B, -B, B, B +=item Miscellaneous tricks -=over 4 +=item CONCLUSION -=item Co-existence with stdio +I -B, B, -B, B +=back -=item "Fast gets" Functions +=item AUTHOR -B, B, B, -B, B, B, -B, B, B, -B +=back -=item Other Functions +=head2 perlbook - Perl book information -PerlIO_apply_layers(f,mode,layers), PerlIO_binmode(f,ptype,imode,layers), -'E' read, 'E' write, '+' read/write, PerlIO_debug(fmt,...) +=over 4 -=back +=item DESCRIPTION =back @@ -5186,7 +5347,7 @@ goto(LABEL) and friends =item Mmap for input -=item Byte to/from UTF8 and UTF8 to/from local conversion +=item Byte to/from UTF-8 and UTF-8 to/from local conversion =item Add sockatmark support @@ -5272,239 +5433,215 @@ goto(LABEL) and friends =back -=head2 perlhack - How to hack at the Perl internals +=head2 perldoc - Look up Perl documentation in Pod format. =over 4 -=item DESCRIPTION - -Does concept match the general goals of Perl?, Where is the -implementation?, Backwards compatibility, Could it be a module instead?, Is -the feature generic enough?, Does it potentially introduce new bugs?, Does -it preclude other desirable features?, Is the implementation robust?, Is -the implementation generic enough to be portable?, Is the implementation -tested?, Is there enough documentation?, Is there another way to do it?, -Does it create too much work?, Patches speak louder than words - -=over 4 +=item SYNOPSIS -=item Keeping in sync +=item DESCRIPTION -rsync'ing the source tree, Using rsync over the LAN, Using pushing over the -NFS, rsync'ing the patches +=item OPTIONS -=item Why rsync the source tree +B<-h>, B<-v>, B<-t>, B<-u>, B<-m> I, B<-l>, B<-F>, B<-f> +I, B<-q> I, B<-T>, B<-d> +I, B<-o> I, B<-M> I, +B<-w> I or B<-w> I