perltoc(1)

perl documentation table of contents

Section 1 perl-doc bookworm source

Description

. ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\}

. ds -- \|—\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\}

. if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2"

. if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \}

perltoc - perl documentation table of contents

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.

Scalars, Arrays, Hashes

if, while, for, foreach

Arithmetic, Numeric comparison, String comparison, Boolean logic, Miscellaneous

Simple matching, Simple substitution, More complex regular expressions, Parentheses for capturing, Other regexp features

OS/2, MS-DOS, Win95/NT, VMS

-0[octal/hexadecimal] , -a , -C [\f(BInumber/list] , -c , -d , -dt, -d:MOD[=bar,baz] , -dt:MOD[=bar,baz], -Dletters , -Dnumber, -e commandline , -E commandline , -f , -Fpattern , -g , -h , -? , -i[extension] , -Idirectory , -l[octnum] , -m[-]module , -M[-]module, -M[-]'module ...', -[mM][-]module=arg[,arg]..., -n , -p , -s , -S , -t , -T , -u , -U , -v , -V , -V:configvar, -w , -W , -X , -x , -xdirectory

HOME , LOGDIR , PATH , PERL5LIB , PERL5OPT , PERLIO , :crlf , :perlio , :stdio , :unix , PERLIO_DEBUG , PERLLIB , PERL5DB , PERL5DB_THREADED , PERL5SHELL (specific to the Win32 port) , PERL_ALLOW_NON_IFS_LSP (specific to the Win32 port) , PERL_DEBUG_MSTATS , PERL_DESTRUCT_LEVEL , PERL_DL_NONLAZY , PERL_ENCODING , PERL_HASH_SEED , PERL_PERTURB_KEYS , PERL_HASH_SEED_DEBUG , PERL_MEM_LOG , PERL_ROOT (specific to the VMS port) , PERL_SIGNALS , PERL_UNICODE , PERL_USE_UNSAFE_INC , SYS$LOGIN (specific to the VMS port) , PERL_INTERNAL_RAND_SEED

-I, -M, the PERL5LIB environment variable, combinations of -I, -M and PERL5LIB, the PERL5OPT environment variable, Other complications, arch and version subdirs, sitecustomize.pl

arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, more elaborate constructs

0. Start with the first letter in the string \f(CWa, 1. Try the first alternative in the first group \f(CWabd, 2. Match \f(CWa followed by \f(CWb. So far so good, 3. \f(CWd in the regexp doesn't match \f(CWc in the string - a dead end. So backtrack two characters and pick the second alternative in the first group \f(CWabc, 4. Match \f(CWa followed by \f(CWb followed by \f(CWc. We are on a roll and have satisfied the first group. Set \f(CW$1 to \f(CWabc, 5 Move on to the second group and pick the first alternative \f(CWdf, 6 Match the \f(CWd, 7. \f(CWf in the regexp doesn't match \f(CWe in the string, so a dead end. Backtrack one character and pick the second alternative in the second group \f(CWd, 8. \f(CWd matches. The second grouping is satisfied, so set \f(CW$2 to \f(CWd, 9. We are at the end of the regexp, so we are done! We have matched \f(CWabcd out of the string \f(CW"abcde"

0. Start with the first letter in the string \f(CWt, 1. The first quantifier \f(CW.* starts out by matching the whole string "\f(CW\*(C`the cat in the hat\*(C'", 2. \f(CWa in the regexp element \f(CWat doesn't match the end of the string. Backtrack one character, 3. \f(CWa in the regexp element \f(CWat still doesn't match the last letter of the string \f(CWt, so backtrack one more character, 4. Now we can match the \f(CWa and the \f(CWt, 5. Move on to the third element \f(CW.*. Since we are at the end of the string and \f(CW.* can match 0 times, assign it the empty string, 6. We are done!

Declarative sugar, Roles built-in, A miniature type system, Full introspection and manipulation, Self-hosted and extensible, Rich ecosystem, Many more features

Moose, Class::Accessor, Class::Tiny, Role::Tiny

Elapsed Real Time, User CPU Time, System CPU Time

perlfaq1 - General Questions About Perl, perlfaq2 - Obtaining and Learning about Perl, perlfaq3 - Programming Tools, perlfaq4 - Data Manipulation, perlfaq5 - Files and Formats, perlfaq6 - Regular Expressions, perlfaq7 - General Perl Language Issues, perlfaq8 - System Interaction, perlfaq9 - Web, Email and Networking

,

, ,

, , ,

Basics, perldata - Perl data types, perlvar - Perl pre-defined variables, perlsyn - Perl syntax, perlop - Perl operators and precedence, perlsub - Perl subroutines, Execution, perlrun - how to execute the Perl interpreter, perldebug - Perl debugging, Functions, perlfunc - Perl builtin functions, Objects, perlref - Perl references and nested data structures, perlmod - Perl modules (packages and symbol tables), perlobj - Perl objects, perltie - how to hide an object class in a simple variable, Data Structures, perlref - Perl references and nested data structures, perllol - Manipulating arrays of arrays in Perl, perldsc - Perl Data Structures Cookbook, Modules, perlmod - Perl modules (packages and symbol tables), perlmodlib - constructing new Perl modules and finding existing ones, Regexes, perlre - Perl regular expressions, perlfunc - Perl builtin functions>, perlop - Perl operators and precedence, perllocale - Perl locale handling (internationalization and localization), Moving to perl5, perltrap - Perl traps for the unwary, perl, Linking with C, perlxstut - Tutorial for writing XSUBs, perlxs - XS language reference manual, perlcall - Perl calling conventions from C, perlguts - Introduction to the Perl API, perlembed - how to embed perl in your C program, Various

Eclipse, Enginsite, IntelliJ IDEA, Kephra, Komodo, Notepad++, Open Perl IDE, OptiPerl, Padre, PerlBuilder, visiPerl+, Visual Perl, Zeus, GNU Emacs, MicroEMACS, XEmacs, Jed, Vim, Vile, MultiEdit, SlickEdit, ConTEXT, bash, zsh, BBEdit and TextWrangler

Tk, Wx, Gtk and Gtk2, Win32::GUI, CamelBones, Qt, Athena

Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and stringification, Pass by reference, Tie large variables to disk

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

There must be no space after the << part, There (probably) should be a semicolon at the end of the opening token, You can't (easily) have any space in front of the tag, There needs to be at least a line separator after the end token

Comments Outside the Regex, Comments Inside the Regex, Different Delimiters

Passing Variables and Functions, Passing Filehandles, Passing Regexes, Passing Methods

Keyboard, Screen, Mouse

lockfiles, open mode, end of line, flushing output, non-blocking input

STDIN, STDOUT, and STDERR are shared, Signals, Zombies

Unix

the \f(CW\*(C`PERLLIB\*(C' environment variable, the \f(CW\*(C`PERL5LIB\*(C' environment variable, the \f(CW\*(C`perl -Idir\*(C' command line flag, the \f(CW\*(C`lib\*(C' pragma:, the local::lib module:

Catalyst, Dancer2, Mojolicious, Web::Simple

Email::Sender::Transport::Sendmail, Email::Sender::Transport::SMTP

1, 2, 3, 4, 5, 6, 7, 8, 9, 10

1. Empty hashes or arrays match, 2. That is, each element smartmatches the element of the same index in the other array.[3], 3. If a circular reference is found, fall back to referential equality, 4. Either an actual number, or a string that looks like one

unary &, unary *, (TYPE)

[1], [2], [3], [4], [5], [6], [7], [8]

\f(CW\*(C`qr/\f(CISTRING\f(CW/msixpodualn\*(C' , \f(CW\*(C`m/\f(CIPATTERN\f(CW/msixpodualngc\*(C' , \f(CW\*(C`/\f(CIPATTERN\f(CW/msixpodualngc\*(C', The empty pattern \f(CW\*(C`//\*(C', Matching in list context, \f(CW\*(C`\eG \f(CIassertion\f(CW\*(C', \f(CW\*(C`m?\f(CIPATTERN\f(CW?msixpodualngc\*(C' , \f(CW\*(C`s/\f(CIPATTERN\f(CW/\f(CIREPLACEMENT\f(CW/msixpodualngcer\*(C'

\f(CW\*(C`q/\f(CISTRING\f(CW/\*(C' , \f(CW\f(CISTRING\f(CW, \f(CW\*(C`qq/\f(CISTRING\f(CW/\*(C' , \f(CW"\f(CISTRING\f(CW", \f(CW\*(C`qx/\f(CISTRING\f(CW/\*(C' , \f(CW\*(C`\`\f(CISTRING\f(CW\`\*(C', \f(CW\*(C`qw/\f(CISTRING\f(CW/\*(C' , \f(CW\*(C`tr/\f(CISEARCHLIST\f(CW/\f(CIREPLACEMENTLIST\f(CW/cdsr\*(C' , \f(CW\*(C`y/\f(CISEARCHLIST\f(CW/\f(CIREPLACEMENTLIST\f(CW/cdsr\*(C', \f(CW\*(C`<<\f(CIEOF\f(CW\*(C' , Double Quotes, Single Quotes, Backticks, Indented Here-docs

Finding the end, Interpolation , \f(CW\*(C`<\*(C', \f(CW\*(C`<<"EOF"\*(C', The replacement of \f(CW\*(C`s///\*(C', \f(CW\*(C`RE\*(C' in \f(CW\*(C`m?RE?\*(C', \f(CW\*(C`/RE/\*(C', \f(CW\*(C`m/RE/\*(C', \f(CW\*(C`s/RE/foo/\*(C',, Parsing regular expressions , Optimization of regular expressions

documented later in this document, documented in perlmod, documented in perlobj, documented in perltie, documented in PerlIO::via, documented in perlfunc, documented in UNIVERSAL, documented in perldebguts, undocumented, used internally by the overload feature

Functions for SCALARs or strings , Regular expressions and pattern matching , Numeric functions , Functions for real \f(CW@ARRAYs , Functions for list data , Functions for real \f(CW%HASHes , Input and output functions , Functions for fixed-length data or records, Functions for filehandles, files, or directories , Keywords related to the control flow of your Perl program , Keywords related to scoping, Miscellaneous functions, Functions for processes and process groups , Keywords related to Perl modules , Keywords related to classes and object-orientation , Low-level socket functions , System V interprocess communication functions , Fetching user and group info , Fetching network info , Time-related functions , Non-function keywords

-X FILEHANDLE

, -X EXPR, -X DIRHANDLE, -X, abs VALUE , abs, accept NEWSOCKET,GENERICSOCKET , alarm SECONDS , alarm, atan2 Y,X , bind SOCKET,NAME , binmode FILEHANDLE, LAYER , binmode FILEHANDLE, bless REF,CLASSNAME , bless REF, break, caller EXPR , caller, chdir EXPR , chdir FILEHANDLE, chdir DIRHANDLE, chdir, chmod LIST , chomp VARIABLE , chomp( LIST ), chomp, chop VARIABLE , chop( LIST ), chop, chown LIST , chr NUMBER , chr, chroot FILENAME , chroot, close FILEHANDLE , close, closedir DIRHANDLE , connect SOCKET,NAME , continue BLOCK , continue, cos EXPR , cos, crypt PLAINTEXT,SALT , dbmclose HASH , dbmopen HASH,DBNAME,MASK , defined EXPR , defined, delete EXPR , die LIST , do BLOCK , do EXPR , dump LABEL , dump EXPR, dump, each HASH , each ARRAY , eof FILEHANDLE , eof (), eof, eval EXPR , eval BLOCK, eval, String eval, Under the \f(CW"unicode_eval" feature, Outside the \f(CW"unicode_eval" feature, If upgraded, \f(CW$v will be \f(CW"\exc4\ex80" (i.e., the \f(CW\*(C`use utf8\*(C' has no effect.), If non-upgraded, \f(CW$v will be \f(CW"\ex{100}", Block eval, evalbytes EXPR , evalbytes, exec LIST , exec PROGRAM LIST, exists EXPR , exit EXPR , exit, exp EXPR , exp, fc EXPR , fc, fcntl FILEHANDLE,FUNCTION,SCALAR , _\|_FILE_\|_ , fileno FILEHANDLE , fileno DIRHANDLE, flock FILEHANDLE,OPERATION , fork , format , formline PICTURE,LIST , getc FILEHANDLE , getc, getlogin , getpeername SOCKET , getpgrp PID , getppid , getpriority WHICH,WHO , getpwnam NAME , getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent, getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, endhostent, endnetent, endprotoent, endservent, getsockname SOCKET , getsockopt SOCKET,LEVEL,OPTNAME , glob EXPR , glob, gmtime EXPR , gmtime, goto LABEL , goto EXPR, goto &NAME, grep BLOCK LIST , grep EXPR,LIST, hex EXPR , hex, import LIST , index STR,SUBSTR,POSITION , index STR,SUBSTR, int EXPR , int, ioctl FILEHANDLE,FUNCTION,SCALAR , join EXPR,LIST , keys HASH , keys ARRAY, kill SIGNAL, LIST, kill SIGNAL , last LABEL , last EXPR, last, lc EXPR , lc, If \f(CW\*(C`use bytes\*(C' is in effect:, Otherwise, if \f(CW\*(C`use locale\*(C' for \f(CW\*(C`LC_CTYPE\*(C' is in effect:, Otherwise, If EXPR has the UTF8 flag set:, Otherwise, if \f(CW\*(C`use feature unicode_strings\*(C' or \f(CW\*(C`use locale :not_characters\*(C' is in effect:, Otherwise:, lcfirst EXPR , lcfirst, length EXPR , length, _\|_LINE_\|_ , link OLDFILE,NEWFILE , listen SOCKET,QUEUESIZE , local EXPR , localtime EXPR , localtime, lock THING , log EXPR , log, lstat FILEHANDLE , lstat EXPR, lstat DIRHANDLE, lstat, m//, map BLOCK LIST , map EXPR,LIST, mkdir FILENAME,MODE , mkdir FILENAME, mkdir, msgctl ID,CMD,ARG , msgget KEY,FLAGS , msgrcv ID,VAR,SIZE,TYPE,FLAGS , msgsnd ID,MSG,FLAGS , my VARLIST , my TYPE VARLIST, my VARLIST : ATTRS, my TYPE VARLIST : ATTRS, next LABEL , next EXPR, next, no MODULE VERSION LIST , no MODULE VERSION, no MODULE LIST, no MODULE, no VERSION, oct EXPR , oct, open FILEHANDLE,MODE,EXPR , open FILEHANDLE,MODE,EXPR,LIST, open FILEHANDLE,MODE,REFERENCE, open FILEHANDLE,EXPR, open FILEHANDLE, Working with files, Simple examples, About filehandles, About modes, Checking the return value, Specifying I/O layers in MODE, Using \f(CW\*(C`undef\*(C' for temporary files, Opening a filehandle into an in-memory scalar, Opening a filehandle into a command, Duping filehandles, Legacy usage, Specifying mode and filename as a single argument, Calling \f(CW\*(C`open\*(C' with one argument via global variables, Assigning a filehandle to a bareword, Other considerations, Automatic filehandle closure, Automatic pipe flushing, Direct versus by-reference assignment of filehandles, Whitespace and special characters in the filename argument, Invoking C-style \f(CW\*(C`open\*(C', Portability issues, opendir DIRHANDLE,EXPR , ord EXPR , ord, our VARLIST , our TYPE VARLIST, our VARLIST : ATTRS, our TYPE VARLIST : ATTRS, pack TEMPLATE,LIST , package NAMESPACE, package NAMESPACE VERSION , package NAMESPACE BLOCK, package NAMESPACE VERSION BLOCK , _\|_PACKAGE_\|_ , pipe READHANDLE,WRITEHANDLE , pop ARRAY , pop, pos SCALAR , pos, print FILEHANDLE LIST , print FILEHANDLE, print LIST, print, printf FILEHANDLE FORMAT, LIST , printf FILEHANDLE, printf FORMAT, LIST, printf, prototype FUNCTION , prototype, push ARRAY,LIST , q/STRING/, qq/STRING/, qw/STRING/, qx/STRING/, qr/STRING/, quotemeta EXPR , quotemeta, rand EXPR , rand, read FILEHANDLE,SCALAR,LENGTH,OFFSET , read FILEHANDLE,SCALAR,LENGTH, readdir DIRHANDLE , readline EXPR, readline , readlink EXPR , readlink, readpipe EXPR, readpipe , recv SOCKET,SCALAR,LENGTH,FLAGS , redo LABEL , redo EXPR, redo, ref EXPR , ref, rename OLDNAME,NEWNAME , require VERSION , require EXPR, require, reset EXPR , reset, return EXPR , return, reverse LIST , rewinddir DIRHANDLE , rindex STR,SUBSTR,POSITION , rindex STR,SUBSTR, rmdir FILENAME , rmdir, s///, say FILEHANDLE LIST , say FILEHANDLE, say LIST, say, scalar EXPR , seek FILEHANDLE,POSITION,WHENCE , seekdir DIRHANDLE,POS , select FILEHANDLE , select, select RBITS,WBITS,EBITS,TIMEOUT , semctl ID,SEMNUM,CMD,ARG , semget KEY,NSEMS,FLAGS , semop KEY,OPSTRING , send SOCKET,MSG,FLAGS,TO , send SOCKET,MSG,FLAGS, setpgrp PID,PGRP , setpriority WHICH,WHO,PRIORITY , setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL , shift ARRAY , shift, shmctl ID,CMD,ARG , shmget KEY,SIZE,FLAGS , shmread ID,VAR,POS,SIZE , shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW , sin EXPR , sin, sleep EXPR , sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL , socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL , sort SUBNAME LIST , sort BLOCK LIST, sort LIST, splice ARRAY,OFFSET,LENGTH,LIST , splice ARRAY,OFFSET,LENGTH, splice ARRAY,OFFSET, splice ARRAY, split /PATTERN/,EXPR,LIMIT , split /PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST , format parameter index, flags, vector flag, (minimum) width, precision, or maximum width , size, order of arguments, sqrt EXPR , sqrt, srand EXPR , srand, stat FILEHANDLE , stat EXPR, stat DIRHANDLE, stat, state VARLIST , state TYPE VARLIST, state VARLIST : ATTRS, state TYPE VARLIST : ATTRS, study SCALAR , study, sub NAME BLOCK , sub NAME (PROTO) BLOCK, sub NAME : ATTRS BLOCK, sub NAME (PROTO) : ATTRS BLOCK, _\|_SUB_\|_ , substr EXPR,OFFSET,LENGTH,REPLACEMENT , substr EXPR,OFFSET,LENGTH, substr EXPR,OFFSET, symlink OLDFILE,NEWFILE , syscall NUMBER, LIST , sysopen FILEHANDLE,FILENAME,MODE , sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread FILEHANDLE,SCALAR,LENGTH,OFFSET , sysread FILEHANDLE,SCALAR,LENGTH, sysseek FILEHANDLE,POSITION,WHENCE , system LIST , system PROGRAM LIST, syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET , syswrite FILEHANDLE,SCALAR,LENGTH, syswrite FILEHANDLE,SCALAR, tell FILEHANDLE , tell, telldir DIRHANDLE , tie VARIABLE,CLASSNAME,LIST , tied VARIABLE , time , times , tr///, truncate FILEHANDLE,LENGTH , truncate EXPR,LENGTH, uc EXPR , uc, ucfirst EXPR , ucfirst, umask EXPR , umask, undef EXPR , undef, unlink LIST , unlink, unpack TEMPLATE,EXPR , unpack TEMPLATE, unshift ARRAY,LIST , untie VARIABLE , use Module VERSION LIST , use Module VERSION, use Module LIST, use Module, use VERSION, utime LIST , values HASH , values ARRAY, vec EXPR,OFFSET,BITS , wait , waitpid PID,FLAGS , wantarray , warn LIST , write FILEHANDLE , write EXPR, write, y///

_\|_DATA_\|_, _\|_END_\|_, BEGIN, CHECK, END, INIT, UNITCHECK, DESTROY, and, cmp, eq, ge, gt, isa, le, lt, ne, not, or, x, xor, AUTOLOAD, else, elsif, for, foreach, if, unless, until, while, elseif, default, given, when, try, catch, finally, defer

OK, HANDLE, MODE, PATHNAME

\f(CW\*(C`=head1 \f(CIHeading Text\f(CW\*(C' , \f(CW\*(C`=head2 \f(CIHeading Text\f(CW\*(C', \f(CW\*(C`=head3 \f(CIHeading Text\f(CW\*(C', \f(CW\*(C`=head4 \f(CIHeading Text\f(CW\*(C', \f(CW\*(C`=head5 \f(CIHeading Text\f(CW\*(C', \f(CW\*(C`=head6 \f(CIHeading Text\f(CW\*(C', \f(CW\*(C`=over \f(CIindentlevel\f(CW\*(C' , \f(CW\*(C`=item \f(CIstuff...\f(CW\*(C', \f(CW\*(C`=back\*(C', \f(CW\*(C`=cut\*(C' , \f(CW\*(C`=pod\*(C' , \f(CW\*(C`=begin \f(CIformatname\f(CW\*(C' , \f(CW\*(C`=end \f(CIformatname\f(CW\*(C', \f(CW\*(C`=for \f(CIformatname\f(CW \f(CItext...\f(CW\*(C', \f(CW\*(C`=encoding \f(CIencodingname\f(CW\*(C'

\f(CW\*(C`I\*(C' \*(-- italic text , \f(CW\*(C`B\*(C' \*(-- bold text , \f(CW\*(C`C\*(C' \*(-- code text , \f(CW\*(C`L\*(C' \*(-- a hyperlink , \f(CW\*(C`E\*(C' \*(-- a character escape , \f(CW\*(C`F\*(C' \*(-- used for filenames , \f(CW\*(C`S\*(C' \*(-- text contains non-breaking spaces , \f(CW\*(C`X\*(C' \*(-- an index entry , \f(CW\*(C`Z<>\*(C' \*(-- a null (zero-effect) formatting code

\*(L"=head1\*(R", \*(L"=head2\*(R", \*(L"=head3\*(R", \*(L"=head4\*(R", \*(L"=head5\*(R", \*(L"=head6\*(R", \*(L"=pod\*(R", \*(L"=cut\*(R", \*(L"=over\*(R", \*(L"=item\*(R", \*(L"=back\*(R", \*(L"=begin formatname\*(R", \*(L"=begin formatname parameter\*(R", \*(L"=end formatname\*(R", \*(L"=for formatname text...\*(R", \*(L"=encoding encodingname\*(R"

\f(CW\*(C`I\*(C' \*(-- italic text, \f(CW\*(C`B\*(C' \*(-- bold text, \f(CW\*(C`C\*(C' \*(-- code text, \f(CW\*(C`F\*(C' \*(-- style for filenames, \f(CW\*(C`X\*(C' \*(-- an index entry, \f(CW\*(C`Z<>\*(C' \*(-- a null (zero-effect) formatting code, \f(CW\*(C`L\*(C' \*(-- a hyperlink, \f(CW\*(C`E\*(C' \*(-- a character escape, \f(CW\*(C`S\*(C' \*(-- text contains non-breaking spaces

First:, Second:, Third:, Fourth:, Fifth:, Sixth:

built-in function, Darwin, macOS, man page, Perl; perl, Perl 5, Perl 6, Perl 5 Porters, the; porters, the; p5p, program, Raku, script, semicolon, Unix

NAME, SYNOPSIS, DESCRIPTION, OPTIONS, RETURN VALUE, ERRORS, DIAGNOSTICS, EXAMPLES, ENVIRONMENT, FILES, CAVEATS, BUGS, RESTRICTIONS, NOTES, AUTHOR, HISTORY, COPYRIGHT AND LICENSE, SEE ALSO

perl -d program_name, perl -d -e 0, perl -d:ptkdb program_name, perl -dt threaded_program_name

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 [n] , t [n] expr , b , b [line] [condition] , b [file]:[line] [condition] , b subname [condition] , b postpone subname [condition] , b load filename , b compile subname , B line , B * , disable [file]:[line] , disable [line] , enable [file]:[line] , enable [line] , a [line] command , A line , A * , w expr , W expr , W * , o , o booloption ... , o anyoption? ... , o option=value ... , < ? , < [ command ] , < * , << command , > ? , > command , > * , >> command , { ? , { [ command ], { * , {{ command , ! number , ! -number , ! pattern , !! cmd , source file , H -number , q or ^D , R , |dbcmd , ||dbcmd , command, m expr , M , man [manpage]

\f(CW\*(C`recallCommand\*(C', \f(CW\*(C`ShellBang\*(C' , \f(CW\*(C`pager\*(C' , \f(CW\*(C`tkRunning\*(C' , \f(CW\*(C`signalLevel\*(C', \f(CW\*(C`warnLevel\*(C', \f(CW\*(C`dieLevel\*(C' , \f(CW\*(C`AutoTrace\*(C' , \f(CW\*(C`LineInfo\*(C' , \f(CW\*(C`inhibit_exit\*(C' , \f(CW\*(C`PrintRet\*(C' , \f(CW\*(C`ornaments\*(C' , \f(CW\*(C`frame\*(C' , \f(CW\*(C`maxTraceLen\*(C' , \f(CW\*(C`windowSize\*(C' , \f(CW\*(C`arrayDepth\*(C', \f(CW\*(C`hashDepth\*(C' , \f(CW\*(C`dumpDepth\*(C' , \f(CW\*(C`compactDump\*(C', \f(CW\*(C`veryCompact\*(C' , \f(CW\*(C`globPrint\*(C' , \f(CW\*(C`DumpDBFiles\*(C' , \f(CW\*(C`DumpPackages\*(C' , \f(CW\*(C`DumpReused\*(C' , \f(CW\*(C`quote\*(C', \f(CW\*(C`HighBit\*(C', \f(CW\*(C`undefPrint\*(C' , \f(CW\*(C`UsageOnly\*(C' , \f(CW\*(C`HistFile\*(C' , \f(CW\*(C`HistSize\*(C' , \f(CW\*(C`TTY\*(C' , \f(CW\*(C`noTTY\*(C' , \f(CW\*(C`ReadLine\*(C' , \f(CW\*(C`NonStop\*(C'

Prompt, Multiline commands, Stack backtrace , Line Listing Format, Frame listing

\f(CW$ARG, \f(CW$_ , \f(CW@ARG, \f(CW@_ , \f(CW$LIST_SEPARATOR, $" , \f(CW$PROCESS_ID, \f(CW$PID, $$ , \f(CW$PROGRAM_NAME, \f(CW$0 , \f(CW$REAL_GROUP_ID, \f(CW$GID, $( , \f(CW$EFFECTIVE_GROUP_ID, \f(CW$EGID, $) , \f(CW$REAL_USER_ID, \f(CW$UID, $< , \f(CW$EFFECTIVE_USER_ID, \f(CW$EUID, $> , \f(CW$SUBSCRIPT_SEPARATOR, \f(CW$SUBSEP, $; , \f(CW$a, \f(CW$b , \f(CW%ENV , \f(CW$OLD_PERL_VERSION, $] , \f(CW$SYSTEM_FD_MAX, $^F , \f(CW@F , \f(CW@INC , \f(CW%INC , \f(CW$INPLACE_EDIT, $^I , \f(CW@ISA , $^M , \f(CW$OSNAME, $^O , \f(CW%SIG , \f(CW$BASETIME, $^T , \f(CW$PERL_VERSION, $^V , \f(CW$EXECUTABLE_NAME, $^X

$ ($1, \f(CW$2, ...) , @{^CAPTURE} , \f(CW$MATCH, $& , ${^MATCH} , \f(CW$PREMATCH, $` , ${^PREMATCH} , \f(CW$POSTMATCH, $' , ${^POSTMATCH} , \f(CW$LAST_PAREN_MATCH, $+ , \f(CW$LAST_SUBMATCH_RESULT, $^N , \f(CW@LAST_MATCH_END, @+ , %{^CAPTURE}, \f(CW%LAST_PAREN_MATCH, %+ , \f(CW@LAST_MATCH_START, @- , \f(CW\*(C`$\`\*(C' is the same as \f(CW\*(C`substr($var, 0, $-[0])\*(C', \f(CW$& is the same as \f(CW\*(C`substr($var, $-[0], $+[0] - $-[0])\*(C', \f(CW\*(C`$\*(C' is the same as \f(CW\*(C`substr($var, $+[0])\*(C', \f(CW$1 is the same as \f(CW\*(C`substr($var, $-[1], $+[1] - $-[1])\*(C', \f(CW$2 is the same as \f(CW\*(C`substr($var, $-[2], $+[2] - $-[2])\*(C', \f(CW$3 is the same as \f(CW\*(C`substr($var, $-[3], $+[3] - $-[3])\*(C', %{^CAPTURE_ALL} , %- , \f(CW$LAST_REGEXP_CODE_RESULT, $^R , ${^RE_COMPILE_RECURSION_LIMIT} , ${^RE_DEBUG_FLAGS} , ${^RE_TRIE_MAXBUF}

\f(CW$ARGV , \f(CW@ARGV , ARGV , ARGVOUT , IO::Handle->output_field_separator( EXPR ), \f(CW$OUTPUT_FIELD_SEPARATOR, \f(CW$OFS, $, , HANDLE->input_line_number( EXPR ), \f(CW$INPUT_LINE_NUMBER, \f(CW$NR, $. , IO::Handle->input_record_separator( EXPR ), \f(CW$INPUT_RECORD_SEPARATOR, \f(CW$RS, $/ , IO::Handle->output_record_separator( EXPR ), \f(CW$OUTPUT_RECORD_SEPARATOR, \f(CW$ORS, $\e , HANDLE->autoflush( EXPR ), \f(CW$OUTPUT_AUTOFLUSH, $| , ${^LAST_FH} , \f(CW$ACCUMULATOR, $^A , IO::Handle->format_formfeed(EXPR), \f(CW$FORMAT_FORMFEED, $^L , HANDLE->format_page_number(EXPR), \f(CW$FORMAT_PAGE_NUMBER, $% , HANDLE->format_lines_left(EXPR), \f(CW$FORMAT_LINES_LEFT, $- , IO::Handle->format_line_break_characters EXPR, \f(CW$FORMAT_LINE_BREAK_CHARACTERS, \f(CW$: , HANDLE->format_lines_per_page(EXPR), \f(CW$FORMAT_LINES_PER_PAGE, $= , HANDLE->format_top_name(EXPR), \f(CW$FORMAT_TOP_NAME, $^ , HANDLE->format_name(EXPR), \f(CW$FORMAT_NAME, $~

${^CHILD_ERROR_NATIVE} , \f(CW$EXTENDED_OS_ERROR, $^E , \f(CW$EXCEPTIONS_BEING_CAUGHT, $^S , \f(CW$WARNING, $^W , ${^WARNING_BITS} , \f(CW$OS_ERROR, \f(CW$ERRNO, $! , \f(CW%OS_ERROR, \f(CW%ERRNO, %! , \f(CW$CHILD_ERROR, $? , \f(CW$EVAL_ERROR, $@

\f(CW$COMPILING, $^C , \f(CW$DEBUGGING, $^D , ${^GLOBAL_PHASE} , CONSTRUCT, START, CHECK, INIT, RUN, END, DESTRUCT, $^H , %^H , ${^OPEN} , \f(CW$PERLDB, $^P , 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, ${^TAINT} , ${^SAFE_LOCALES} , ${^UNICODE} , ${^UTF8CACHE} , ${^UTF8LOCALE}

$# , $* , $[ , ${^ENCODING} , ${^WIN32_SLOPPY_STAT}

\f(CB\*(C`m\*(C' , \f(CB\*(C`s\*(C' , \f(CB\*(C`i\*(C' , \f(CB\*(C`x\*(C' and \f(CB\*(C`xx\*(C' , \f(CB\*(C`p\*(C' , \f(CB\*(C`a\*(C', \f(CB\*(C`d\*(C', \f(CB\*(C`l\*(C', and \f(CB\*(C`u\*(C' , \f(CB\*(C`n\*(C' , Other Modifiers

[1], [2], [3], [4], [5], [6], [7], [8]

\f(CW\*(C`(?#\f(CItext\f(CW)\*(C' , \f(CW\*(C`(?adlupimnsx-imnsx)\*(C', \f(CW\*(C`(?^alupimnsx)\*(C' , \f(CW\*(C`(?:\f(CIpattern\f(CW)\*(C' , \f(CW\*(C`(?adluimnsx-imnsx:\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(?^aluimnsx:\f(CIpattern\f(CW)\*(C' , \f(CW\*(C`(?|\f(CIpattern\f(CW)\*(C' , Lookaround Assertions , \f(CW\*(C`(?=\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(*pla:\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(*positive_lookahead:\f(CIpattern\f(CW)\*(C' , \f(CW\*(C`(?!\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(*nla:\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(*negative_lookahead:\f(CIpattern\f(CW)\*(C' , \f(CW\*(C`(?<=\f(CIpattern\f(CW)\*(C', \f(CW\*(C`\eK\*(C', \f(CW\*(C`(*plb:\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(*positive_lookbehind:\f(CIpattern\f(CW)\*(C' , \f(CW\*(C`(?\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(?\f(CINAME\f(CW\f(CIpattern\f(CW)\*(C' , \f(CW\*(C`\ek<\f(CINAME\f(CW>\*(C', \f(CW\*(C`\ek\f(CINAME\f(CW\*(C', \f(CW\*(C`\ek{\f(CINAME\f(CW}\*(C', \f(CW\*(C`(?{ \f(CIcode\f(CW })\*(C' , \f(CW\*(C`(??{ \f(CIcode\f(CW })\*(C' , \f(CW\*(C`(?\f(CIPARNO\f(CW)\*(C' \f(CW\*(C`(?-\f(CIPARNO\f(CW)\*(C' \f(CW\*(C`(?+\f(CIPARNO\f(CW)\*(C' \f(CW\*(C`(?R)\*(C' \f(CW\*(C`(?0)\*(C' , \f(CW\*(C`(?&\f(CINAME\f(CW)\*(C' , \f(CW\*(C`(?(\f(CIcondition\f(CW)\f(CIyes-pattern\f(CW|\f(CIno-pattern\f(CW)\*(C' , \f(CW\*(C`(?(\f(CIcondition\f(CW)\f(CIyes-pattern\f(CW)\*(C', an integer in parentheses, a lookahead/lookbehind/evaluate zero-width assertion;, a name in angle brackets or single quotes, the special symbol \f(CW\*(C`(R)\*(C', \f(CW\*(C`(1)\*(C' \f(CW\*(C`(2)\*(C' .., \f(CW\*(C`(<\f(CINAME\f(CW>)\*(C' \f(CW\*(C`(\f(CINAME\f(CW)\*(C', \f(CW\*(C`(?=...)\*(C' \f(CW\*(C`(?!...)\*(C' \f(CW\*(C`(?<=...)\*(C' \f(CW\*(C`(?\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(*atomic:\f(CIpattern\f(CW)\*(C' , \f(CW\*(C`(?[ ])\*(C'

Verbs, \f(CW\*(C`(*PRUNE)\*(C' \f(CW\*(C`(*PRUNE:\f(CINAME\f(CW)\*(C' , \f(CW\*(C`(*SKIP)\*(C' \f(CW\*(C`(*SKIP:\f(CINAME\f(CW)\*(C' , \f(CW\*(C`(*MARK:\f(CINAME\f(CW)\*(C' \f(CW\*(C`(*:\f(CINAME\f(CW)\*(C' , \f(CW\*(C`(*THEN)\*(C' \f(CW\*(C`(*THEN:\f(CINAME\f(CW)\*(C', \f(CW\*(C`(*COMMIT)\*(C' \f(CW\*(C`(*COMMIT:\f(CIarg\f(CW)\*(C' , \f(CW\*(C`(*FAIL)\*(C' \f(CW\*(C`(*F)\*(C' \f(CW\*(C`(*FAIL:\f(CIarg\f(CW)\*(C' , \f(CW\*(C`(*ACCEPT)\*(C' \f(CW\*(C`(*ACCEPT:\f(CIarg\f(CW)\*(C'

\f(CW\*(C`ST\*(C', \f(CW\*(C`S|T\*(C', \f(CW\*(C`S{REPEAT_COUNT}\*(C', \f(CW\*(C`S{min,max}\*(C', \f(CW\*(C`S{min,max}?\*(C', \f(CW\*(C`S?\*(C', \f(CW\*(C`S*\*(C', \f(CW\*(C`S+\*(C', \f(CW\*(C`S??\*(C', \f(CW\*(C`S*?\*(C', \f(CW\*(C`S+?\*(C', \f(CW\*(C`(?>S)\*(C', \f(CW\*(C`(?=S)\*(C', \f(CW\*(C`(?<=S)\*(C', \f(CW\*(C`(?!S)\*(C', \f(CW\*(C`(?

\f(CW\*(C`(?P<\f(CINAME\f(CW>\f(CIpattern\f(CW)\*(C', \f(CW\*(C`(?P=\f(CINAME\f(CW)\*(C', \f(CW\*(C`(?P>\f(CINAME\f(CW)\*(C'

[1]

[1], [2]

\eA, \ez, \eZ, \eG, \eb{}, \eb, \eB{}, \eB, \f(CW\*(C`\eb{gcb}\*(C' or \f(CW\*(C`\eb{g}\*(C', \f(CW\*(C`\eb{lb}\*(C', \f(CW\*(C`\eb{sb}\*(C', \f(CW\*(C`\eb{wb}\*(C'

\eK, \eN, \eR , \eX

If the \f(CW\*(C`/a\*(C' modifier is in effect .., otherwise .., For code points above 255 .., For code points below 256 .., if locale rules are in effect .., if, instead, Unicode rules are in effect .., otherwise .., If the \f(CW\*(C`/a\*(C' modifier is in effect .., otherwise .., For code points above 255 .., For code points below 256 .., if locale rules are in effect .., if, instead, Unicode rules are in effect .., otherwise .., [1], [2]

[1], [2], [3], [4], [5], [6], [7], If the \f(CW\*(C`/a\*(C' modifier, is in effect .., otherwise .., For code points above 255 .., For code points below 256 .., if locale rules are in effect .., \f(CW\*(C`word\*(C', \f(CW\*(C`ascii\*(C', \f(CW\*(C`blank\*(C', if, instead, Unicode rules are in effect .., otherwise ..

isa($class) , DOES($role) , can($method) , VERSION($need)

TIESCALAR classname, LIST , FETCH this , STORE this, value , UNTIE this , DESTROY this

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

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

TIEHANDLE classname, LIST , WRITE this, LIST , PRINT this, LIST , PRINTF this, LIST , READ this, LIST , READLINE this , GETC this , EOF this , CLOSE this , UNTIE this , DESTROY this

filter_store_key, filter_store_value, filter_fetch_key, filter_fetch_value

Long-running opcodes, Interrupting IO, Restartable system calls, Signals as \*(L"faults\*(R", Signals triggered by operating system state

\f(CW\*(C`Proto\*(C', \f(CW\*(C`PeerAddr\*(C', \f(CW\*(C`PeerPort\*(C'

Proto, LocalPort, Listen, Reuse

$$ or \f(CW$PROCESS_ID, \f(CW%ENV, chdir() and all other builtins that accept filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to files, directories and network sockets

BEGIN blocks, Open filehandles, Open directory handles, Forking pipe open() not yet implemented, Global state maintained by XSUBs, Interpreter embedded in larger application, Thread-safety of extensions

Arithmetic operators, ++, Arithmetic operators during \f(CW\*(C`use integer\*(C', Other mathematical operators, Bitwise operators, Bitwise operators during \f(CW\*(C`use integer\*(C', Operators which expect an integer, Operators which expect a string

Not all Perl programs have to be portable, Nearly all of Perl already is portable

-X, alarm, atan2, binmode, chdir, chmod, chown, chroot, crypt, dbmclose, dbmopen, dump, exec, exit, fcntl, flock, fork, getlogin, getpgrp, getppid, getpriority, getpwnam, getgrnam, getnetbyname, getpwuid, getgrgid, getnetbyaddr, getprotobynumber, getpwent, getgrent, gethostbyname, gethostent, getnetent, getprotoent, getservent, seekdir, sethostent, setnetent, setprotoent, setservent, endpwent, endgrent, endhostent, endnetent, endprotoent, endservent, getsockopt, glob, gmtime, ioctl, kill, link, localtime, lstat, msgctl, msgget, msgsnd, msgrcv, open, readlink, rename, rewinddir, select, semctl, semget, semop, setgrent, setpgrp, setpriority, setpwent, setsockopt, shmctl, shmget, shmread, shmwrite, sleep, socketpair, stat, symlink, syscall, sysopen, system, telldir, times, truncate, umask, utime, wait, waitpid

Linux (x86, ARM, IA64), HP-UX, AIX, Win32, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Cygwin, Solaris (x86, SPARC), OpenVMS, Alpha (7.2 and later), I64 (8.2 and later), NetBSD, FreeBSD, Debian GNU/kFreeBSD, Haiku, Irix (6.5. What else?), OpenBSD, Dragonfly BSD, Midnight BSD, QNX Neutrino RTOS (6.5.0), MirOS BSD, Stratus OpenVOS (17.0 or later), time_t issues that may or may not be fixed, Stratus VOS / OpenVOS, AIX, Android, FreeMINT

NetWare, DOS/DJGPP, AT&T UWIN

AT&T 3b1

Windows 95, Windows 98, Windows ME, Windows NT4

Atari MiNT, Apollo Domain/OS, Apple Mac OS 8/9, Tenon Machten