Current Perl documentation can be found at perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
This variable bears the symbol value to be used during
open() or
fcntl() to turn on non-blocking
I/O for a file descriptor. If you wish to switch between blocking and non-blocking, you may try
ioctl(
FIOSNBIO) instead, but that is only supported by some devices.
This is an old synonym for _o.
This variable contains any optimizer/debugger flag that should be used. It is up to the Makefile to use it.
This variable is true if the components of libraries must be ordered (with `lorder $* | tsort`)
before placing them in an archive. Set to
false if ranlib or ar can generate random libraries.
This variable contains the operating system name (e.g. sunos, solaris, hpux, etc.). It can be useful later on for setting defaults. Any spaces are replaced with underscores. It is set to a null string if we can't figure it out.
This variable contains the operating system version (e.g. 4.1.3, 5.2, etc.). It is primarily used for helping select an appropriate hints file, but might be useful elsewhere for setting defaults. It is set to '' if we can't figure it out. We try to be flexible about how much of the version number to keep, e.g. if 4.1.1, 4.1.2, and 4.1.3 are essentially the same for this package, hints files might just be os_4.0 or os_4.1, etc., not keeping separate files for each little release.
This variable contains the name of the package being constructed. It is primarily intended for the use of later Configure units.
This variable contains the name of the preferred pager on the system. Usual values are (the full pathnames of) more, less, pg, or cat.
This variable contains a command that produces the text of the
/etc/passwd file. This is normally ``cat /etc/passwd'', but can be ``ypcat passwd'' when NIS is used.
The patchlevel level of this package. The value of patchlevel comes from the patchlevel.h file.
This is an old synonym for p_ in Head.U, the character used to separate elements in the command shell search perlrun#item_PATH.
This variable is be used internally by Configure to determine the full
pathname (if any) of the perl program. After Configure runs, the value is
reset to a plain perl and is not useful.
Electronic mail address of the perl5 administrator.
This variable contains the eventual value of the PERLPATH symbol, which contains the name of the perl interpreter to be used in shell
scripts and in the ``eval exec'' idiom.
This variable is be used internally by Configure to determine the full
pathname (if any) of the pg program. After Configure runs, the value is
reset to a plain pg and is not useful.
This variable contains the eventual value of the PHOSTNAME symbol, which is a command that can be fed to
popen() to get the host name.
The program should probably not presume that the domain is or isn't there
already.
This variable defines PIDTYPE to be something like pid_t, int, ushort, or whatever type is used to
declare process ids in the kernel.
Holds the private path used by Configure to find out the libraries. Its value is prepend to libpth. This variable takes care of special machines, like the mips. Usually, it should be empty.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable holds the name of the directory below which the user will install the package. Usually, this is /usr/local, and executables go in /usr/local/bin, library stuff in /usr/local/lib, man pages in /usr/local/man, etc. It is only used to set defaults for things in bin.U, mansrc.U, privlib.U, or scriptdir.U.
This variable holds the full absolute path of the directory below which the user will install the package. Derived from prefix.
This variable contains the eventual value of the PRIVLIB symbol, which is the name of the private library for this package. It may
have a ~ on the front. It is up to the makefile to eventually create this directory
while performing installation (with ~ substitution).
This variable is the ~name expanded version of privlib, so that you may use it directly in Makefiles or shell scripts.
This variable holds the eventual value of CAN_PROTOTYPE, which indicates the
C compiler can handle funciton prototypes.
This variable contains the value of the PTRSIZE symbol, which indicates to the
C program how many bytes there are in a pointer.
This variable contains the eventual value of the RANDBITS symbol, which indicates to the
C program how many bits of random number the
rand() function produces.
This variable is set to the pathname of the ranlib program, if it is needed
to generate random libraries. Set to : if ar can generate random libraries or if random libraries are not
supported
This variable holds the return code from
read() when no data is present.
It should be -1, but some systems return 0 when O_NDELAY is used, which is a shame because you cannot make the difference between no
data and an EOF.. Sigh!
This variable is be used internally by Configure to determine the full
pathname (if any) of the rm program. After Configure runs, the value is
reset to a plain rm and is not useful.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable contains true or false depending whether the nm extraction should be performed or not, according
to the value of usenm and the flags on the Configure command line.
This variable holds the name of the directory in which the user wants to put publicly scripts for the package in question. It is either the same directory as for binaries, or a special one that can be mounted across different architectures, like /usr/share. Programs must be prepared to deal with ~name expansion.
This variable is the same as scriptdir, but is filename expanded at configuration time, for programs not wanting to bother with it.
This variable is be used internally by Configure to determine the full
pathname (if any) of the sed program. After Configure runs, the value is
reset to a plain sed and is not useful.
This variable holds the type used for the 2nd, 3rd, and 4th arguments to
select. Usually, this is fd_set *, if HAS_FD_SET
is defined, and int#item_int_ otherwise. This is only useful if you have
select(), naturally.
This variable is be used internally by Configure to determine the full
pathname (if any) of the sendmail program. After Configure runs, the value
is reset to a plain sendmail and is not useful.
This variable contains the full pathname of the shell used on this system
to execute Bourne shell scripts. Usually, this will be
/bin/sh, though it's possible that some systems will have /bin/ksh,
/bin/pdksh, /bin/ash, /bin/bash, or even something such as
D:/bin/sh.exe. This unit comes before Options.U, so you can't set sh with a -D
option, though you can override this (and startsh) with -O -Dsh=<EM>/bin/whatever</EM> -Dstartsh=whatever
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable contains the string #! if this system supports that construct.
This symbol contains the type of pointer returned by
shmat(). It can be perlguts#item_void_ or char *.
This variable contains the value of the SHORTSIZE symbol which indicates to the
C program how many bytes there are in a short.
If the user builds a shared libperl.so, then we need to tell the
perl executable where it will be able to find the installed libperl.so. One way to do this on some systems is to set the environment variable
LD_RUN_PATH to the directory that will be the final location of the shared libperl.so. The makefile can use this with something like
$shrpenv $(C<CC>) -o perl F<perlmain.o> $libperl $libs
Typical values are
shrpenv="env C<LD_RUN_PATH>=$F<archlibexp/C<CORE>>"
or
shrpenv=''
See the main perl F<Makefile.SH> for actual working usage. Alternatively, we might be able to use a command line option such as -R $F<archlibexp/C<CORE>> (Solaris, NetBSD) or -Wl,-rpath $F<archlibexp/C<CORE>> (Linux).
This variable tells further Configure units whether your sh can handle # comments.
This variable holds the signal names, space separated. The leading
SIG in signal name is removed.
A ZERO is prepended to the list. This is currently not used.
This variable holds the signal names, enclosed in double quotes and
separated by commas, suitable for use in the SIG_NAME definition below.
A ZERO is prepended to the list, and the list is terminated with a plain 0. The
leading SIG in signal names is removed. See sig_num.
This variable holds the signal numbers, comma separated.
A 0 is prepended to the list (corresponding to the
fake SIGZERO), and the list is terminated with a 0. Those numbers correspond to the
value of the signal listed in the same place within the sig_name list.
This variable holds the type of the signal handler (void or int).
This variable contains the eventual value of the SITEARCH symbol, which is the name of the private library for this package. It may
have a ~ on the front. It is up to the makefile to eventually create this directory
while performing installation (with ~ substitution).
This variable is the ~name expanded version of sitearch, so that you may use it directly in Makefiles or shell scripts.
This variable contains the eventual value of the SITELIB symbol, which is the name of the private library for this package. It may
have a ~ on the front. It is up to the makefile to eventually create this directory
while performing installation (with ~ substitution).
This variable is the ~name expanded version of sitelib, so that you may use it directly in Makefiles or shell scripts.
This variable defines sizetype to be something like size_t, unsigned long, or whatever type is used to declare length parameters for string functions.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable contains a flag which will tell the C compiler and loader to produce a program running with a small memory model. It is up to the Makefile to use this.
This variable holds the extension used to identify shared libraries (also
known as shared objects) on the system. Usually set to so.
This variable has any cpp -I flags needed for socket support.
This variable has the names of any libraries needed for socket support.
This variable is be used internally by Configure to determine the full pathname (if any) of the sort program. After Configure runs, the value is reset to a plain sort and is not useful.
This variable contains the name of the package being constructed, with the first letter uppercased, i.e. suitable for starting sentences.
This variable contains the command necessary to spit out a runnable shell
on this system. It is either cat or a grep -v for # comments.
This variable contains a flag which will tell the C compiler and loader to produce a program that will run in separate I and D space, for those machines that support separation of instruction and data space. It is up to the Makefile to use this.
This variable holds the path to the package source. It is up to the
Makefile to use this variable and set VPATH accordingly to find the sources remotely.
This variable defines ssizetype to be something like ssize_t, long or int. It is used by functions that return a count of bytes or an error condition. It must be a signed type. We will pick a type such that
sizeof(SSize_t) ==
sizeof(Size_t).
This variable contains the string to put on the front of a perl script to make sure (hopefully) that it runs with perl and not some shell. Of course, that leading line must be followed by the classical perl idiom:
eval 'exec perl -S $0 ${1+C<$@>}'
if $running_under_some_shell;
to guarantee perl startup should the shell execute the script. Note that this magic incatation is not understood by csh.
This variable contains the string to put on the front of a shell script to make sure (hopefully) that it runs with sh and not some other shell.
This variable holds a list of perlguts#item_XS extension files we want to link statically into the package. It is used by Makefile.
This variable conditionally defines STDCHAR to be the type of char used in stdio.h. It has the values ``unsigned char'' or char.
This variable defines how, given a FILE pointer, fp, to access the _base field (or equivalent) of stdio.h's FILE structure. This will be used to define the macro
FILE_base(fp).
This variable defines how, given a FILE pointer, fp, to determine the number of bytes store in the I/O buffer pointer to by the _base field (or equivalent) of stdio.h's FILE structure. This will be used to define the macro
FILE_bufsiz(fp).
This variable defines how, given a FILE pointer, fp, to access the _cnt field (or equivalent) of stdio.h's FILE structure. This will be used to define the macro
FILE_cnt(fp).
This variable defines how, given a FILE pointer, fp, to tell stdio to refill it's internal buffers (?). This will be used to define the macro
FILE_filbuf(fp).
This variable defines how, given a FILE pointer, fp, to access the _ptr field (or equivalent) of stdio.h's FILE structure. This will be used to define the macro
FILE_ptr(fp).
This variable holds the full path of the string header that will be used. Typically /usr/include/string.h or /usr/include/strings.h.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
The subversion level of this package. The value of subversion comes from the patchlevel.h file. This is unique to perl.
This variable holds the place where the manual is located on this system. It is not the place where the user wants to put his manual pages. Rather it is the place where Configure may look to find manual for unix commands (section 1 of the manual usually). See mansrc.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable is be used internally by Configure to determine the full
pathname (if any) of the tee program. After Configure runs, the value is
reset to a plain tee and is not useful.
This variable is be used internally by Configure to determine the full
pathname (if any) of the test program. After Configure runs, the value is
reset to a plain test and is not useful.
This variable holds the full path of the included time
header(s).
This variable holds the type returned by
time(). It can be long, or
time_t on BSD sites (in which case <sys/types.h> should be included). Anyway, the
type Time_t should be used.
This variable is be used internally by Configure to determine the full
pathname (if any) of the touch program. After Configure runs, the value is
reset to a plain touch and is not useful.
This variable is be used internally by Configure to determine the full pathname (if any) of the tr program. After Configure runs, the value is reset to a plain perlop#item_tr and is not useful.
This variable contains the value to be passed to the
tr(1) command to transliterate
a newline. Typical values are
\012 and \n. This is needed for EBCDIC systems where newline is not necessarily \012.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable defines Uid_t to be something like uid_t, int, ushort, or whatever type is used to declare user ids in the kernel.
This variable is be used internally by Configure to determine the full
pathname (if any) of the uname program. After Configure runs, the value is
reset to a plain uname and is not useful.
This variable is be used internally by Configure to determine the full
pathname (if any) of the uniq program. After Configure runs, the value is
reset to a plain uniq and is not useful.
This variable indicates if the the system supports dynamic loading of some sort. See also dlsrc and dlobj.
This variable contains y if the malloc that comes with this package is desired over the system's version of malloc. People often include special versions of malloc for effiency, but such versions are often less portable. See also mallocsrc and mallocobj. If this is perlop#item_y, then -lmalloc is removed from $libs.
This variable contains true or false depending whether the nm extraction is wanted or not.
This variable holds either true or false to indicate whether the Opcode extension should be used. The sole use for
this currently is to allow an easy mechanism for users to skip the Opcode
extension from the Configure command line.
This variable conditionally defines the USE_PERLIO symbol, and indicates that the PerlIO abstraction should be used
throughout.
This variable holds either true or false to indicate whether the POSIX extension should be used. The sole use for this currently is to allow an
easy mechanism for hints files to indicate that POSIX will not compile on a particular system.
This variable is set to true when the user agrees to use sfio. It is set to false when sfio is not available or when the user explicitely requests not to use sfio. It is here primarily so that command-line settings can override the auto-detection of d_sfio without running into a ``WHOA THERE''.
This variable is set to yes if the user wishes to build a shared libperl, and no otherwise.
This variable conditionally defines the USE_THREADS symbol, and indicates that Perl should be built to use threads.
This variable is set to true when the user accepts to use vfork. It is set to false when no vfork is available or when the user explicitely requests not to use vfork.
This variable holds the path of the include files, which is usually /usr/include. It is mainly used by other Configure units.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
The full version number of this package. This combines baserev, patchlevel, and subversion to get the full version number, including any possible subversions. Care is taken to use the C locale in order to get something like 5.004 instead of 5,004. This is unique to perl.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable contains the eventual value of the VOIDFLAGS symbol, which indicates how much support of the void type is given by this
compiler. See VOIDFLAGS for more info.
This variable is defined but not used by Configure. The value is a plain '' and is not useful.
This variable is be used internally by Configure to determine the full
pathname (if any) of the zip program. After Configure runs, the value is
reset to a plain zip and is not useful.
This module contains a good example of how to use tie to implement a cache and an example of how to make a tied variable readonly to those outside of it.
If rather than formatting bugs, you encounter substantive content errors in these documents, such as mistakes in the explanations or code, please use the perlbug utility included with the Perl distribution.