Index Index for
Section 1
Index Alphabetical
listing for P
Bottom of page Bottom of
page

PERLTOC(1)

NAME

perltoc - perl documentation table of contents

DESCRIPTION

This page provides a brief table of contents for the rest of the Perl documentation set. It is meant to be scanned quickly or grepped through to locate the proper section you're looking for.

BASIC DOCUMENTATION

perl - Practical Extraction and Report Language SYNOPSIS Overview Tutorials Reference Manual Internals and C Language Interface Miscellaneous Language-Specific Platform-Specific DESCRIPTION AVAILABILITY ENVIRONMENT AUTHOR FILES SEE ALSO DIAGNOSTICS BUGS NOTES perlintro -- a brief introduction and overview of Perl DESCRIPTION What is Perl? Running Perl programs Basic syntax overview Perl variable types Scalars, Arrays, Hashes Variable scoping Conditional and looping constructs if, while, for, foreach Builtin operators and functions Arithmetic, Numeric comparison, String comparison, Boolean logic, Miscellaneous Files and I/O Regular expressions Simple matching, Simple substitution, More complex regular expressions, Parentheses for capturing, Other regexp features Writing subroutines OO Perl Using Perl modules AUTHOR perlfaq - frequently asked questions about Perl ($Date: 2002/03/11 21:32:23 $) DESCRIPTION perlfaq: Structural overview of the FAQ. 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 About the perlfaq documents Where to get the perlfaq How to contribute to the perlfaq authors What will happen if you mail your Perl programming problems to the Credits Author and Copyright Information Bundled Distributions Disclaimer Changes 1/November/2000, 23/May/99, 13/April/99, 7/January/99, 22/June/98, 24/April/97, 23/April/97, 25/March/97, 18/March/97, 17/March/97 Version, Initial Release: 11/March/97 perlbook - Perl book information DESCRIPTION perlsyn - Perl syntax DESCRIPTION Declarations Simple statements Compound statements Loop Control For Loops Foreach Loops Basic BLOCKs and Switch Statements Goto PODs: Embedded Documentation Plain Old Comments (Not!) perldata - Perl data types DESCRIPTION Variable names Context Scalar values Scalar value constructors List value constructors Slices Typeglobs and Filehandles SEE ALSO perlop - Perl operators and precedence SYNOPSIS DESCRIPTION Terms and List Operators (Leftward) The Arrow Operator Auto-increment and Auto-decrement Exponentiation Symbolic Unary Operators Binding Operators Multiplicative Operators Additive Operators Shift Operators Named Unary Operators Relational Operators Equality Operators Bitwise And Bitwise Or and Exclusive Or C-style Logical And C-style Logical Or Range Operators Conditional Operator Assignment Operators Comma Operator List Operators (Rightward) Logical Not Logical And Logical or and Exclusive Or C Operators Missing From Perl unary &, unary *, (TYPE) Quote and Quote-like Operators Regexp Quote-Like Operators ?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, 'STRING', qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/, `STRING`, qw/STRING/, s/PATTERN/REPLACEMENT/egimosx, tr/SEARCHLIST/REPLACEMENTLIST/cds, y/SEARCHLIST/REPLACEMENTLIST/cds, <<EOF Gory details of parsing quoted constructs Finding the end, Removal of backslashes before delimiters, Interpolation, "<<'EOF'", "m''", "s'''", "tr///", "y///", '', "q//", "", ``, "qq//", "qx//", "<file*glob>", "?RE?", "/RE/", "m/RE/", "s/RE/foo/",, Interpolation of regular expressions, Optimization of regular expressions I/O Operators Constant Folding Bitwise String Operators Integer Arithmetic Floating-point Arithmetic Bigger Numbers perlsub - Perl subroutines SYNOPSIS DESCRIPTION Private Variables via my() Persistent Private Variables Temporary Values via local() Lvalue subroutines Lvalue subroutines are EXPERIMENTAL Passing Symbol Table Entries (typeglobs) When to Still Use local() Pass by Reference Prototypes Constant Functions Overriding Built-in Functions Autoloading Subroutine Attributes SEE ALSO perlfunc - Perl builtin functions DESCRIPTION Perl Functions by Category Functions for SCALARs or strings, Regular expressions and pattern matching, Numeric functions, Functions for real @ARRAYs, Functions for list data, Functions for real %HASHes, Input and output functions, Functions for fixed length data or records, Functions for filehandles, files, or directories, Keywords related to the control flow of your perl program, Keywords related to scoping, Miscellaneous functions, Functions for processes and process groups, Keywords related to perl modules, Keywords related to classes and object-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 Portability Alphabetical Listing of Perl Functions -X FILEHANDLE, -X EXPR, -X, abs VALUE, abs, accept NEWSOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bind SOCKET,NAME, binmode FILEHANDLE, LAYER, binmode FILEHANDLE, bless REF,CLASSNAME, bless REF, 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, 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/// perlreftut - Mark's very short tutorial about references DESCRIPTION Who Needs Complicated Data Structures? The Solution Syntax Making References Using References An Example Arrow Rule Solution The Rest Summary Credits Distribution Conditions perldsc - Perl Data Structures Cookbook DESCRIPTION arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, more elaborate constructs REFERENCES COMMON MISTAKES CAVEAT ON PRECEDENCE WHY YOU SHOULD ALWAYS "use strict" DEBUGGING CODE EXAMPLES ARRAYS OF ARRAYS Declaration of an ARRAY OF ARRAYS Generation of an ARRAY OF ARRAYS Access and Printing of an ARRAY OF ARRAYS HASHES OF ARRAYS Declaration of a HASH OF ARRAYS Generation of a HASH OF ARRAYS Access and Printing of a HASH OF ARRAYS ARRAYS OF HASHES Declaration of an ARRAY OF HASHES Generation of an ARRAY OF HASHES Access and Printing of an ARRAY OF HASHES HASHES OF HASHES Declaration of a HASH OF HASHES Generation of a HASH OF HASHES Access and Printing of a HASH OF HASHES MORE ELABORATE RECORDS Declaration of MORE ELABORATE RECORDS Declaration of a HASH OF COMPLEX RECORDS Generation of a HASH OF COMPLEX RECORDS Database Ties SEE ALSO AUTHOR perlrequick - Perl regular expressions quick start DESCRIPTION The Guide Simple word matching Using character classes Matching this or that Grouping things and hierarchical matching Extracting matches Matching repetitions More matching Search and replace The split operator BUGS SEE ALSO AUTHOR AND COPYRIGHT Acknowledgments perlpod - the Plain Old Documentation format DESCRIPTION Ordinary Paragraph Verbatim Paragraph Command Paragraph "=head1 Heading Text", "=head2 Heading Text", "=head3 Heading Text", "=head4 Heading Text", "=over indentlevel", "=item stuff...", "=back", "=cut", "=pod", "=begin formatname", "=end formatname", "=for formatname text..." Formatting Codes "I<text>" -- italic text, "B<text>" -- bold text, "C<code>" -- code text, "L<name>" -- a hyperlink, "E<escape>" -- a character escape, "F<filename>" -- used for filenames, "S<text>" -- text contains non-breaking spaces, "X<topic name>" -- an index entry, "Z<>" -- a null (zero-effect) formatting code The Intent Embedding Pods in Perl Modules Hints for Writing Pod SEE ALSO AUTHOR perlpodspec - Plain Old Documentation: format specification and notes DESCRIPTION Pod Definitions Pod Commands "=head1", "=head2", "=head3", "=head4", "=pod", "=cut", "=over", "=item", "=back", "=begin formatname", "=end formatname", "=for formatname text..." Pod Formatting Codes "I<text>" -- italic text, "B<text>" -- bold text, "C<code>" -- code text, "F<filename>" -- style for filenames, "X<topic name>" -- an index entry, "Z<>" -- a null (zero-effect) formatting code, "L<name>" -- a hyperlink, "E<escape>" -- a character escape, "S<text>" -- text contains non-breaking spaces Notes on Implementing Pod Processors About L<...> Codes First:, Second:, Third:, Fourth:, Fifth:, Sixth: About =over...=back Regions About Data Paragraphs and "=begin/=end" Regions SEE ALSO AUTHOR perlstyle - Perl style guide DESCRIPTION perltrap - Perl traps for the unwary DESCRIPTION Awk Traps C Traps Sed Traps Shell Traps Perl Traps Perl4 to Perl5 Traps Discontinuance, Deprecation, and BugFix traps, Parsing Traps, Numerical Traps, General data type traps, Context Traps - scalar, list contexts, Precedence Traps, General Regular Expression Traps using s///, etc, Subroutine, Signal, Sorting Traps, OS Traps, DBM Traps, Unclassified Traps Discontinuance, Deprecation, and BugFix traps Discontinuance, Deprecation, BugFix, Discontinuance, Discontinuance, Discontinuance, BugFix, Discontinuance, Discontinuance, BugFix, Discontinuance, Deprecation, Discontinuance, Discontinuance Parsing Traps Parsing, Parsing, Parsing, Parsing, Parsing Numerical Traps Numerical, Numerical, Numerical, Bitwise string ops General data type traps (Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String), (Constants), (Scalars), (Variable Suicide) Context Traps - scalar, list contexts (list context), (scalar context), (scalar context), (list, builtin) Precedence Traps Precedence, Precedence, Precedence, Precedence, Precedence, Precedence, Precedence General Regular Expression Traps using s///, etc. Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression Subroutine, Signal, Sorting Traps (Signals), (Sort Subroutine), warn() won't let you specify a filehandle OS Traps (SysV), (SysV) Interpolation Traps Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation DBM Traps DBM, DBM Unclassified Traps "require"/"do" trap using returned value, "split" on empty string with LIMIT specified perlrun - how to execute the Perl interpreter SYNOPSIS DESCRIPTION #! and quoting on non-Unix systems OS/2, MS-DOS, Win95/NT, Macintosh, VMS Location of Perl Command Switches -0[digits], -a, -C, -c, -d, -d:foo[=bar,baz], -Dletters, -Dnumber, -e commandline, -Fpattern, -h, -i[extension], -Idirectory, -l[octnum], -m[-]module, -M[-]module, -M[-]'module ...', -[mM][-]module=arg[,arg]..., -n, -p, -P, -s, -S, -t, -T, -u, -U, -v, -V, -V:name, -w, -W, -X, -x directory ENVIRONMENT HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLIO, :bytes, :crlf, :mmap, :perlio, :raw, :stdio, :unix, :utf8, :win32, PERLIO_DEBUG, PERLLIB, PERL5DB, PERL5SHELL (specific to the Win32 port), PERL_DEBUG_MSTATS, PERL_DESTRUCT_LEVEL, PERL_ENCODING, PERL_ROOT (specific to the VMS port), SYS$LOGIN (specific to the VMS port) perldiag - various Perl diagnostics DESCRIPTION perllexwarn - Perl Lexical Warnings DESCRIPTION Default Warnings and Optional Warnings What's wrong with -w and $^W Controlling Warnings from the Command Line -w, -W, -X Backward Compatibility Category Hierarchy Fatal Warnings Reporting Warnings from a Module TODO SEE ALSO AUTHOR perldebtut - Perl debugging tutorial DESCRIPTION use strict Looking at data and -w and v help Stepping through code Placeholder for a, w, t, T REGULAR EXPRESSIONS OUTPUT TIPS CGI GUIs SUMMARY SEE ALSO AUTHOR CONTRIBUTORS perldebug - Perl debugging DESCRIPTION The Perl Debugger Debugger Commands h, h [command], h h, p expr, x [maxdepth] expr, V [pkg [vars]], X [vars], y [level [vars]], T, s [expr], n [expr], r, <CR>, c [line|sub], l, l min+incr, l min-max, l line, l subname, -, v [line], f filename, /pattern/, ?pattern?, L [abw], S [[!]regex], t, 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] Configurable Options "recallCommand", "ShellBang", "pager", "tkRunning", "signalLevel", "warnLevel", "dieLevel", "AutoTrace", "LineInfo", "inhibit_exit", "PrintRet", "ornaments", "frame", "maxTraceLen", "windowSize", "arrayDepth", "hashDepth", "dumpDepth", "compactDump", "veryCompact", "globPrint", "DumpDBFiles", "DumpPackages", "DumpReused", "quote", "HighBit", "undefPrint", "UsageOnly", "TTY", "noTTY", "ReadLine", "NonStop" Debugger input/output Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame listing Debugging compile-time statements Debugger Customization Readline Support Editor Support for Debugging The Perl Profiler Debugging regular expressions Debugging memory usage SEE ALSO BUGS perlvar - Perl predefined variables DESCRIPTION Predefined Names $ARG, $_, $a, $b, $<digits>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $', $LAST_PAREN_MATCH, $+, $^N, @LAST_MATCH_END, @+, $MULTILINE_MATCHING, $*, 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, @-, $` is the same as "substr($var, 0, $-[0])", $& is the same as "substr($var, $-[0], $+[0] - $-[0])", $' is the same as "substr($var, $+[0])", $1 is the same as "substr($var, $-[1], $+[1] - $-[1])", $2 is the same as "substr($var, $-[2], $+[2] - $-[2])", $3 is the same as "substr $var, $-[3], $+[3] - $-[3])", HANDLE->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, $LAST_REGEXP_CODE_RESULT, $^R, $EXCEPTIONS_BEING_CAUGHT, $^S, $BASETIME, $^T, ${^TAINT}, $PERL_VERSION, $^V, $WARNING, $^W, ${^WARNING_BITS}, ${^WIDE_SYSTEM_CALLS}, $EXECUTABLE_NAME, $^X, ARGV, $ARGV, @ARGV, ARGVOUT, @F, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG, $SIG{expr} Error Indicators Technical Note on the Syntax of Variable Names BUGS perllol - Manipulating Arrays of Arrays in Perl DESCRIPTION Declaration and Access of Arrays of Arrays Growing Your Own Access and Printing Slices SEE ALSO AUTHOR perlopentut - tutorial on opening things in Perl DESCRIPTION Open A la shell Simple Opens Pipe Opens The Minus File Mixing Reads and Writes Filters Open A la C Permissions A la mode Obscure Open Tricks Re-Opening Files (dups) Dispelling the Dweomer Paths as Opens Single Argument Open Playing with STDIN and STDOUT Other I/O Issues Opening Non-File Files Binary Files File Locking IO Layers SEE ALSO AUTHOR and COPYRIGHT HISTORY perlpacktut - tutorial on "pack" and "unpack" DESCRIPTION The Basic Principle Packing Text Packing Numbers Integers Unpacking a Stack Frame How to Eat an Egg on a Net Floating point Numbers Exotic Templates Bit Strings Uuencoding Doing Sums Unicode Another Portable Binary Encoding Lengths and Widths String Lengths Dynamic Templates Packing and Unpacking C Structures The Alignment Pit Alignment, Take 2 Alignment, Take 3 Pointers for How to Use Them Pack Recipes Funnies Section Authors perlretut - Perl regular expressions tutorial DESCRIPTION Part 1: The basics Simple word matching Using character classes Matching this or that Grouping things and hierarchical matching Extracting matches Matching repetitions Building a regexp Using regular expressions in Perl Part 2: Power tools More on characters, strings, and character classes Compiling and saving regular expressions Embedding comments and modifiers in a regular expression Non-capturing groupings Looking ahead and looking behind Using independent subexpressions to prevent backtracking Conditional expressions A bit of magic: executing Perl code in a regular expression Pragmas and debugging BUGS SEE ALSO AUTHOR AND COPYRIGHT Acknowledgments perlre - Perl regular expressions DESCRIPTION i, m, s, x Regular Expressions [1], [2], [3], cntrl, graph, print, punct, xdigit Extended Patterns "(?#text)", "(?imsx-imsx)", "(?:pattern)", "(?imsx-imsx:pattern)", "(?=pattern)", "(?!pattern)", "(?<=pattern)", "(?<!pattern)", "(?{ code })", "(??{ code })", "(?>pattern)", "(?(condition)yes-pattern|no-pattern)", "(?(condition)yes-pattern)" Backtracking Version 8 Regular Expressions Warning on \1 vs $1 Repeated patterns matching zero-length substring Combining pieces together "ST", "S|T", "S{REPEAT_COUNT}", "S{min,max}", "S{min,max}?", "S?", "S*", "S+", "S??", "S*?", "S+?", "(?>S)", "(?=S)", "(?<=S)", "(?!S)", "(?<!S)", "(??{ EXPR })", "(?(condition)yes-pattern|no-pattern)" Creating custom RE engines BUGS SEE ALSO perlref - Perl references and nested data structures NOTE DESCRIPTION Making References Using References Symbolic references Not-so-symbolic references Pseudo-hashes: Using an array as a hash Function Templates WARNING SEE ALSO perlform - Perl formats DESCRIPTION Format Variables NOTES Footers Accessing Formatting Internals WARNINGS perlboot - Beginner's Object-Oriented Tutorial DESCRIPTION If we could talk to the animals... Introducing the method invocation arrow Invoking a barnyard The extra parameter of method invocation Calling a second method to simplify things Inheriting the windpipes A few notes about @ISA Overriding the methods Starting the search from a different place The SUPER way of doing things Where we're at so far... A horse is a horse, of course of course -- or is it? Invoking an instance method Accessing the instance data How to build a horse Inheriting the constructor Making a method work with either classes or instances Adding parameters to a method More interesting instances A horse of a different color Summary SEE ALSO COPYRIGHT perltoot - Tom's object-oriented tutorial for perl DESCRIPTION Creating a Class Object Representation Class Interface Constructors and Instance Methods Planning for the Future: Better Constructors Destructors Other Object Methods Class Data Accessing Class Data Debugging Methods Class Destructors Documenting the Interface Aggregation Inheritance Overridden Methods Multiple Inheritance UNIVERSAL: The Root of All Objects Alternate Object Representations Arrays as Objects Closures as Objects AUTOLOAD: Proxy Methods Autoloaded Data Methods Inherited Autoloaded Data Methods Metaclassical Tools Class::Struct Data Members as Variables NOTES Object Terminology SEE ALSO AUTHOR AND COPYRIGHT COPYRIGHT Acknowledgments perltooc - Tom's OO Tutorial for Class Data in Perl DESCRIPTION Class Data in a Can Class Data as Package Variables Putting All Your Eggs in One Basket Inheritance Concerns The Eponymous Meta-Object Indirect References to Class Data Monadic Classes Translucent Attributes Class Data as Lexical Variables Privacy and Responsibility File-Scoped Lexicals More Inheritance Concerns Locking the Door and Throwing Away the Key Translucency Revisited NOTES SEE ALSO AUTHOR AND COPYRIGHT ACKNOWLEDGEMENTS HISTORY perlobj - Perl objects DESCRIPTION An Object is Simply a Reference A Class is Simply a Package A Method is Simply a Subroutine Method Invocation Indirect Object Syntax Default UNIVERSAL methods isa(CLASS), can(METHOD), VERSION( [NEED] ) Destructors Summary Two-Phased Garbage Collection SEE ALSO perlbot - Bag'o Object Tricks (the BOT) DESCRIPTION OO SCALING TIPS INSTANCE VARIABLES SCALAR INSTANCE VARIABLES INSTANCE VARIABLE INHERITANCE OBJECT RELATIONSHIPS OVERRIDING SUPERCLASS METHODS USING RELATIONSHIP WITH SDBM THINKING OF CODE REUSE CLASS CONTEXT AND THE OBJECT INHERITING A CONSTRUCTOR DELEGATION perltie - how to hide an object class in a simple variable SYNOPSIS DESCRIPTION Tying Scalars TIESCALAR classname, LIST, FETCH this, STORE this, value, UNTIE this, DESTROY this Tying Arrays TIEARRAY classname, LIST, FETCH this, index, STORE this, index, value, FETCHSIZE this, STORESIZE this, count, EXTEND this, count, EXISTS this, key, DELETE this, key, CLEAR this, PUSH this, LIST, POP this, SHIFT this, UNSHIFT this, LIST, SPLICE this, offset, length, LIST, UNTIE this, DESTROY this Tying Hashes USER, HOME, CLOBBER, LIST, TIEHASH classname, LIST, FETCH this, key, STORE this, key, value, DELETE this, key, CLEAR this, EXISTS this, key, FIRSTKEY this, NEXTKEY this, lastkey, UNTIE this, DESTROY this Tying FileHandles TIEHANDLE classname, LIST, WRITE this, LIST, PRINT this, LIST, PRINTF this, LIST, READ this, LIST, READLINE this, GETC this, CLOSE this, UNTIE this, DESTROY this UNTIE this The "untie" Gotcha SEE ALSO BUGS AUTHOR perlipc - Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores) DESCRIPTION Signals Handling the SIGHUP Signal in Daemons Named Pipes Deferred Signals Long running opcodes, Interrupting IO, Signals as "faults", Signals triggered by operating system state Using open() for IPC Filehandles Background Processes Complete Dissociation of Child from Parent Safe Pipe Opens Bidirectional Communication with Another Process Bidirectional Communication with Yourself Sockets: Client/Server Communication Internet Line Terminators Internet TCP Clients and Servers Unix-Domain TCP Clients and Servers TCP Clients with IO::Socket A Simple Client "Proto", "PeerAddr", "PeerPort" A Webget Client Interactive Client with IO::Socket TCP Servers with IO::Socket Proto, LocalPort, Listen, Reuse UDP: Message Passing SysV IPC NOTES BUGS AUTHOR SEE ALSO perlfork - Perl's fork() emulation SYNOPSIS DESCRIPTION Behavior of other Perl features in forked pseudo-processes $$ or $PROCESS_ID, %ENV, chdir() and all other builtins that accept filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to files, directories and network sockets Resource limits Killing the parent process Lifetime of the parent process and pseudo-processes CAVEATS AND LIMITATIONS BEGIN blocks, Open filehandles, Forking pipe open() not yet implemented, Global state maintained by XSUBs, Interpreter embedded in larger application, Thread-safety of extensions BUGS AUTHOR SEE ALSO perlnumber - semantics of numbers and numeric operations in Perl SYNOPSIS DESCRIPTION Storing numbers Numeric operators and numeric conversions Flavors of Perl numeric operations Arithmetic operators, ++, Arithmetic operators during "use integer", Other mathematical operators, Bitwise operators, Bitwise operators during "use integer", Operators which expect an integer, Operators which expect a string AUTHOR SEE ALSO perlthrtut - tutorial on threads in Perl DESCRIPTION Status What Is A Thread Anyway? Threaded Program Models Boss/Worker Work Crew Pipeline Native threads What kind of threads are Perl threads? Thread-Safe Modules Thread Basics Basic Thread Support A Note about the Examples Creating Threads Giving up control Waiting For A Thread To Exit Ignoring A Thread Threads And Data Shared And Unshared Data Thread Pitfalls: Races Synchronization and control Controlling access: lock() A Thread Pitfall: Deadlocks Queues: Passing Data Around Semaphores: Synchronizing Data Access Basic semaphores Advanced Semaphores cond_wait() and cond_signal() General Thread Utility Routines What Thread Am I In? Thread IDs Are These Threads The Same? What Threads Are Running? A Complete Example Performance considerations Process-scope Changes Thread-Safety of System Libraries Conclusion Bibliography Introductory Texts OS-Related References Other References Acknowledgements AUTHOR Copyrights perlothrtut - old tutorial on threads in Perl DESCRIPTION What Is A Thread Anyway? Threaded Program Models Boss/Worker Work Crew Pipeline Native threads What kind of threads are perl threads? Threadsafe Modules Thread Basics Basic Thread Support Creating Threads Giving up control Waiting For A Thread To Exit Errors In Threads Ignoring A Thread Threads And Data Shared And Unshared Data Thread Pitfall: Races Controlling access: lock() Thread Pitfall: Deadlocks Queues: Passing Data Around Threads And Code Semaphores: Synchronizing Data Access Basic semaphores, Advanced Semaphores Attributes: Restricting Access To Subroutines Subroutine Locks Methods Locking A Subroutine General Thread Utility Routines What Thread Am I In? Thread IDs Are These Threads The Same? What Threads Are Running? A Complete Example Conclusion Bibliography Introductory Texts OS-Related References Other References Acknowledgements AUTHOR Copyrights perlport - Writing portable Perl DESCRIPTION Not all Perl programs have to be portable, Nearly all of Perl already is portable ISSUES Newlines Numbers endianness and Width Files and Filesystems System Interaction Command names versus file pathnames Interprocess Communication (IPC) External Subroutines (XS) Standard Modules Time and Date Character sets and character encoding Internationalisation System Resources Security Style CPAN Testers Mailing list: cpan-testers@perl.org, Testing results: http://testers.cpan.org/ PLATFORMS Unix DOS and Derivatives Mac OS VMS VOS EBCDIC Platforms Acorn RISC OS Other perls FUNCTION IMPLEMENTATIONS Alphabetical Listing of Perl Functions -X FILEHANDLE, -X EXPR, -X, 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, 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 CHANGES v1.48, 02 February 2001, v1.47, 22 March 2000, v1.46, 12 February 2000, v1.45, 20 December 1999, v1.44, 19 July 1999, v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May 1999, v1.40, 11 April 1999, v1.39, 11 February 1999, v1.38, 31 December 1998, v1.37, 19 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 Supported Platforms SEE ALSO AUTHORS / CONTRIBUTORS perllocale - Perl locale handling (internationalization and localization) DESCRIPTION PREPARING TO USE LOCALES USING LOCALES The use locale pragma The setlocale function Finding locales LOCALE PROBLEMS Temporarily fixing locale problems Permanently fixing locale problems Permanently fixing your system's locale configuration Fixing system locale configuration The localeconv function I18N::Langinfo LOCALE CATEGORIES Category LC_COLLATE: Collation Category LC_CTYPE: Character Types Category LC_NUMERIC: Numeric Formatting Category LC_MONETARY: Formatting of monetary amounts LC_TIME Other categories SECURITY ENVIRONMENT PERL_BADLANG, LC_ALL, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY, LC_NUMERIC, LC_TIME, LANG NOTES Backward compatibility I18N:Collate obsolete Sort speed and memory use impacts write() and LC_NUMERIC Freely available locale definitions I18n and l10n An imperfect standard Unicode and UTF-8 BUGS Broken systems SEE ALSO HISTORY perluniintro - Perl Unicode introduction DESCRIPTION Unicode Perl's Unicode Support Perl's Unicode Model Unicode and EBCDIC Creating Unicode Handling Unicode Legacy Encodings Unicode I/O Displaying Unicode As Text Special Cases Advanced Topics Miscellaneous Questions With Answers Hexadecimal Notation Further Resources UNICODE IN OLDER PERLS SEE ALSO ACKNOWLEDGMENTS AUTHOR, COPYRIGHT, AND LICENSE perlunicode - Unicode support in Perl DESCRIPTION Important Caveats Input and Output Layers, Regular Expressions, "use utf8" still needed to enable UTF-8/UTF-EBCDIC in scripts Byte and Character Semantics Effects of Character Semantics Scripts Blocks User-Defined Character Properties Character Encodings for Input and Output Unicode Regular Expression Support Level Unicode Encodings Security Implications of Unicode Unicode in Perl on EBCDIC Locales Using Unicode in XS BUGS Interaction with Locales Interaction with Extensions Speed SEE ALSO perlebcdic - Considerations for running Perl on EBCDIC platforms DESCRIPTION COMMON CHARACTER CODE SETS ASCII ISO 8859 Latin 1 (ISO 8859-1) EBCDIC 13 variant characters 0037 1047 POSIX-BC Unicode code points versus EBCDIC code points Remaining Perl Unicode problems in EBCDIC Unicode and UTF Using Encode SINGLE OCTET TABLES recipe 0, recipe 1, recipe 2, recipe 3, recipe 4, recipe 5, recipe 6 IDENTIFYING CHARACTER CODE SETS CONVERSIONS tr/// iconv C RTL OPERATOR DIFFERENCES FUNCTION DIFFERENCES chr(), ord(), pack(), print(), printf(), sort(), sprintf(), unpack() REGULAR EXPRESSION DIFFERENCES SOCKETS SORTING Ignore ASCII vs. EBCDIC sort differences. MONO CASE then sort data. Convert, sort data, then re convert. Perform sorting on one type of machine only. TRANSFORMATION FORMATS URL decoding and encoding uu encoding and decoding Quoted-Printable encoding and decoding Caesarian ciphers Hashing order and checksums I18N AND L10N MULTI OCTET CHARACTER SETS OS ISSUES OS/400 IFS access OS/390, z/OS chcp, dataset access, OS/390, z/OS iconv, locales VM/ESA? POSIX-BC? BUGS SEE ALSO REFERENCES HISTORY AUTHOR perlsec - Perl security DESCRIPTION Laundering and Detecting Tainted Data Switches On the "#!" Line Cleaning Up Your Path Security Bugs Protecting Your Programs Unicode SEE ALSO perlmod - Perl modules (packages and symbol tables) DESCRIPTION Packages Symbol Tables Package Constructors and Destructors Perl Classes Perl Modules Making your module threadsafe SEE ALSO perlmodinstall - Installing CPAN Modules DESCRIPTION PREAMBLE DECOMPRESS the file, UNPACK the file into a directory, BUILD the module (sometimes unnecessary), INSTALL the module PORTABILITY HEY AUTHOR COPYRIGHT perlmodlib - constructing new Perl modules and finding existing ones DESCRIPTION THE PERL MODULE LIBRARY Pragmatic Modules attributes, attrs, autouse, base, bigint, bignum, bigrat, blib, bytes, charnames, constant, diagnostics, encoding, fields, filetest, if, integer, less, locale, open, ops, overload, re, sigtrap, sort, strict, subs, threads, utf8, vars, vmsish, warnings, warnings::register Standard Modules 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, Devel::SelfStubber, Digest, DirHandle, Dumpvalue, Encode, 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::Manifest, ExtUtils::Mkbootstrap, ExtUtils::Mksymlists, ExtUtils::Packlist, ExtUtils::testlib, Fatal, Fcntl, File::Basename, File::CheckTree, File::Compare, File::Copy, File::DosGlob, File::Find, 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, FindBin, Getopt::Long, Getopt::Std, Hash::Util, I18N::Collate, I18N::LangTags, I18N::LangTags::List, IO, IPC::Open2, IPC::Open3, Locale::Constants, Locale::Country, Locale::Currency, Locale::Language, Locale::Maketext, Locale::Maketext::TPJ13, Locale::Script, 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::via::QuotedPrint, Pod::Checker, Pod::Find, Pod::Functions, Pod::Html, Pod::InputObjects, Pod::LaTeX, Pod::Man, Pod::ParseLink, Pod::ParseUtils, Pod::Parser, Pod::Plainer, Pod::Select, Pod::Text, Pod::Text::Color, Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Usage, SDBM_File, Safe, Search::Dict, SelectSaver, SelfLoader, Shell, Socket, Storable, Switch, Symbol, 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, Tie::Array, Tie::File, Tie::Handle, Tie::Hash, Tie::Memoize, Tie::RefHash, Tie::Scalar, Tie::SubstrHash, Time::Local, Time::gmtime, Time::localtime, Time::tm, UNIVERSAL, Unicode::Collate, Unicode::UCD, User::grent, User::pwent, Win32 Extension Modules CPAN Africa South Africa Asia China, India, Indonesia, Israel, Japan, Korea, Philippines, Russian Federation, Saudi Arabia, Singapore, South Korea, Taiwan, Thailand Central America Costa Rica Europe 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 North America Alberta, Manitoba, Nova Scotia, Ontario, Quebec, Mexico United States Alabama, California, Colorado, Delaware, District of Columbia, Florida, Illinois, Indiana, Kentucky, Massachusetts, Michigan, New Jersey, New York, North Carolina, Ohio, Oklahoma, Oregon, Pennsylvania, Tennessee, Texas, Utah, Virginia, ashington, Wisconsin Oceania Australia, New Zealand South America Argentina, Brazil, Chile RSYNC Mirrors Modules: Creation, Use, and Abuse Guidelines for Module Creation Guidelines for Converting Perl 4 Library Scripts into Modules Guidelines for Reusing Application Code NOTE perlmodstyle - Perl module style guide INTRODUCTION QUICK CHECKLIST Before you start The API Stability Documentation Release considerations BEFORE YOU START WRITING A MODULE Has it been done before? Do one thing and do it well What's in a name? DESIGNING AND WRITING YOUR MODULE To OO or not to OO? Designing your API Write simple routines to do simple things, Separate functionality from output, Provide sensible shortcuts and defaults, Naming conventions, Parameter passing Strictness and warnings Backwards compatibility Error handling and messages DOCUMENTING YOUR MODULE POD README, INSTALL, release notes, changelogs RELEASE CONSIDERATIONS Version numbering Pre-requisites Testing Packaging Licensing COMMON PITFALLS Reinventing the wheel Trying to do too much Inappropriate documentation SEE ALSO perlstyle, perlnewmod, perlpod, podchecker, Testing tools, http://pause.perl.org/, Any good book on software engineering AUTHOR perlnewmod - preparing a new module for distribution DESCRIPTION Warning What should I make into a module? Step-by-step: Preparing the ground Look around, Check it's new, Discuss the need, Choose a name, Check again Step-by-step: Making the module Start with h2xs, Use strict and warnings, Use Carp, Use Exporter - wisely!, Use plain old documentation, Write tests, Write the README Step-by-step: Distributing your module Get a CPAN user ID, "perl Makefile.PL; make test; make dist", Upload the tarball, Announce to the modules list, Announce to clpa, Fix bugs! AUTHOR SEE ALSO perlfaq1 - General Questions About Perl ($Revision: 1.8 $, $Date: 2002/04/07 18:46:13 $) DESCRIPTION What is Perl? Who supports Perl? Who develops it? Why is it free? Which version of Perl should I use? What are perl4 and perl5? What is perl6? How stable is Perl? Is Perl difficult to learn? Scheme, or Tcl? How does Perl compare with other languages like Java, Python, REXX, Can I do [task] in Perl? When shouldn't I program in Perl? What's the difference between "perl" and "Perl"? Is it a Perl program or a Perl script? What is a JAPH? Where can I get a list of Larry Wall witticisms? 5/5.6.1/Perl instead of some other language? How can I convince my sysadmin/supervisor/employees to use version AUTHOR AND COPYRIGHT perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.13 $, $Date: 2002/04/26 16:56:35 $) DESCRIPTION What machines support Perl? Where do I get it? How can I get a binary version of Perl? I don't have a C compiler on my system. How can I compile perl? work. I copied the Perl binary from one machine to another, but scripts don't loading/malloc/linking/... failed. How do I make it work? I grabbed the sources and tried to compile but gdbm/dynamic does CPAN/src/... mean? What modules and extensions are available for Perl? What is CPAN? What Is there an ISO or ANSI certified version of Perl? Where can I get information on Perl? What are the Perl newsgroups on Usenet? Where do I post questions? Where should I post source code? Perl Books References, Tutorials, Task-Oriented, Special Topics Perl in Magazines Perl on the Net: FTP and WWW Access What mailing lists are there for Perl? Archives of comp.lang.perl.misc Where can I buy a commercial version of Perl? Where do I send bug reports? What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? AUTHOR AND COPYRIGHT perlfaq3 - Programming Tools ($Revision: 1.22 $, $Date: 2002/05/06 13:11:13 $) DESCRIPTION How do I do (anything)? How can I use Perl interactively? Is there a Perl shell? How do I debug my Perl programs? How do I profile my Perl programs? How do I cross-reference my Perl programs? Is there a pretty-printer (formatter) for Perl? Is there a ctags for Perl? Is there an IDE or Windows Perl Editor? Komodo, The Object System, Open Perl IDE, PerlBuilder, visiPerl+, OptiPerl, CodeMagicCD, GNU Emacs, MicroEMACS, XEmacs, Elvis, Vile, Vim, Codewright, MultiEdit, SlickEdit, Bash, Ksh, Tcsh, Zsh, BBEdit and BBEdit Lite, Alpha Where can I get Perl macros for vi? Where can I get perl-mode for emacs? How can I use curses with Perl? How can I use X or Tk with Perl? How can I generate simple menus without using CGI or Tk? How can I make my Perl program run faster? How can I make my Perl program take less memory? Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and stringification, Pass by reference, Tie large variables to disk Is it unsafe to return a pointer to local data? How can I free an array or hash so my program shrinks? How can I make my CGI script more efficient? How can I hide the source for my Perl program? How can I compile my Perl program into byte code or C? How can I compile Perl into Java? How can I get "#!perl" to work on [MS-DOS,NT,...]? Can I write useful Perl programs on the command line? Why don't Perl one-liners work on my DOS/Mac/VMS system? Where can I learn about CGI or Web programming in Perl? Where can I learn about object-oriented Perl programming? Where can I learn about linking C with Perl? [h2xs, xsubpp] program; what am I doing wrong? I've read perlembed, perlguts, etc., but I can't embed perl in my C When I tried to run my script, I got this message. What does it mean? What's MakeMaker? AUTHOR AND COPYRIGHT perlfaq4 - Data Manipulation ($Revision: 1.25 $, $Date: 2002/05/30 07:04:25 $) DESCRIPTION Data: Numbers numbers I should be getting (eg, 19.95)? Why am I getting long decimals (eg, 19.9499999999999) instead of the Why isn't my octal data interpreted correctly? functions? Does Perl have a round() function? What about ceil() and floor()? Trig How do I convert between numeric representations? How do I convert hexadecimal into decimal, How do I convert from decimal to hexadecimal, How do I convert from octal to decimal, How do I convert from decimal to octal, How do I convert from binary to decimal, How do I convert from decimal to binary Why doesn't & work the way I want it to? How do I multiply matrices? How do I perform an operation on a series of integers? How can I output Roman numerals? Why aren't my random numbers random? How do I get a random number between X and Y? Data: Dates How do I find the week-of-the-year/day-of-the-year? How do I find the current century or millennium? How can I compare two dates and find the difference? How can I take a string and turn it into epoch seconds? How can I find the Julian Day? How do I find yesterday's date? Does Perl have a Year 2000 problem? Is Perl Y2K compliant? Data: Strings How do I validate input? How do I unescape a string? How do I remove consecutive pairs of characters? How do I expand function calls in a string? How do I find matching/nesting anything? How do I reverse a string? How do I expand tabs in a string? How do I reformat a paragraph? How can I access/change the first N letters of a string? How do I change the Nth occurrence of something? How can I count the number of occurrences of a substring within a string? How do I capitalize all the words on one line? [character]? (Comma-separated files) How can I split a [character] delimited string except when inside How do I strip blank space from the beginning/end of a string? How do I pad a string with blanks or pad a number with zeroes? How do I extract selected columns from a string? How do I find the soundex value of a string? How can I expand variables in text strings? What's wrong with always quoting "$vars"? Why don't my <<HERE documents work? 1. There must be no space after the << part, 2. There (probably) should be a semicolon at the end, 3. You can't (easily) have any space in front of the tag Data: Arrays What is the difference between a list and an array? What is the difference between $array[1] and @array[1]? How can I remove duplicate elements from a list or array? a), b), c), d), e) How can I tell whether a certain element is contained in a list or array? intersection of two arrays? How do I compute the difference of two arrays? How do I compute the How do I test whether two arrays or hashes are equal? How do I find the first array element for which a condition is true? How do I handle linked lists? How do I handle circular lists? How do I shuffle an array randomly? How do I process/modify each element of an array? How do I select a random element from an array? How do I permute N elements of a list? How do I sort an array by (anything)? How do I manipulate arrays of bits? Why does defined() return true on empty arrays and hashes? Data: Hashes (Associative Arrays) How do I process an entire hash? What happens if I add or remove keys from a hash while iterating over it? How do I look up a hash element by value? How can I know how many entries are in a hash? How do I sort a hash (optionally by value instead of key)? How can I always keep my hash sorted? What's the difference between "delete" and "undef" with hashes? Why don't my tied hashes make the defined/exists distinction? How do I reset an each() operation part-way through? How can I