perltoc(1)
perl documentation table of contents
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`<
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' \*(-- code text
, \f(CW\*(C`L
\*(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' \*(-- code text, \f(CW\*(C`F
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
,
\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
$
\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