{ "ARRAY" => { desc => "Functions for real \@ARRAYs", functions => { each => { desc => "retrieve the next key/value pair from a hash", usage => ["each HASH", "each ARRAY", "each EXPR"], }, keys => { desc => "retrieve list of indices from a hash", usage => ["keys HASH", "keys ARRAY", "keys EXPR"], }, pop => { desc => "remove the last element from an array and return it", usage => ["pop ARRAY", "pop EXPR", "pop"], }, push => { desc => "append one or more elements to an array", usage => ["push ARRAY,LIST", "push EXPR,LIST"], }, shift => { desc => "remove the first element of an array, and return it", usage => ["shift ARRAY", "shift EXPR", "shift"], }, splice => { desc => "add or remove elements anywhere in an array", usage => [ "splice ARRAY or EXPR,OFFSET,LENGTH,LIST", "splice ARRAY or EXPR,OFFSET,LENGTH", "splice ARRAY or EXPR,OFFSET", "splice ARRAY or EXPR", ], }, unshift => { desc => "prepend more elements to the beginning of a list", usage => ["unshift ARRAY,LIST", "unshift EXPR,LIST"], }, values => { desc => "return a list of the values in a hash", usage => ["values HASH", "values ARRAY", "values EXPR"], }, }, }, "Binary" => { desc => "Functions for fixed-length data or records", functions => { pack => { desc => "convert a list into a binary representation", usage => ["pack TEMPLATE,LIST"], }, read => { desc => "fixed-length buffered input from a filehandle", usage => [ "read FILEHANDLE,SCALAR,LENGTH,OFFSET", "read FILEHANDLE,SCALAR,LENGTH", ], }, syscall => { desc => "execute an arbitrary system call", usage => ["syscall NUMBER, LIST"], }, sysread => { desc => "fixed-length unbuffered input from a filehandle", usage => [ "sysread FILEHANDLE,SCALAR,LENGTH,OFFSET", "sysread FILEHANDLE,SCALAR,LENGTH", ], }, sysseek => { desc => "position I/O pointer on handle used with sysread and syswrite", usage => ["sysseek FILEHANDLE,POSITION,WHENCE"], }, syswrite => { desc => "fixed-length unbuffered output to a filehandle", usage => [ "syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET", "syswrite FILEHANDLE,SCALAR,LENGTH", "syswrite FILEHANDLE,SCALAR", ], }, unpack => { desc => "convert binary structure into normal perl variables", usage => ["unpack TEMPLATE,EXPR", "unpack TEMPLATE"], }, vec => { desc => "test or set particular bits in a string", usage => ["vec EXPR,OFFSET,BITS"], }, }, }, "File" => { desc => "Functions for filehandles, files, or directories", functions => { -X => { desc => "a file test (-r, -x, etc)", usage => ["-X FILEHANDLE", "-X EXPR", "-X DIRHANDLE", "-X"], }, chdir => { desc => "change your current working directory", usage => ["chdir EXPR", "chdir FILEHANDLE", "chdir DIRHANDLE", "chdir"], }, chmod => { desc => "changes the permissions on a list of files", usage => ["chmod LIST"], }, chown => { desc => "change the ownership on a list of files", usage => ["chown LIST"], }, chroot => { desc => "make directory new root for path lookups", usage => ["chroot FILENAME", "chroot"], }, fcntl => { desc => "file control system call", usage => ["fcntl FILEHANDLE,FUNCTION,SCALAR"], }, glob => { desc => "expand filenames using wildcards", usage => ["glob EXPR", "glob"], }, ioctl => { desc => "system-dependent device control system call", usage => ["ioctl FILEHANDLE,FUNCTION,SCALAR"], }, link => { desc => "create a hard link in the filesystem", usage => ["link OLDFILE,NEWFILE"], }, lstat => { desc => "stat a symbolic link", usage => ["lstat FILEHANDLE", "lstat EXPR", "lstat DIRHANDLE", "lstat"], }, mkdir => { desc => "create a directory", usage => ["mkdir FILENAME,MASK", "mkdir FILENAME", "mkdir"], }, open => { desc => "open a file, pipe, or descriptor", usage => [ "open FILEHANDLE,EXPR", "open FILEHANDLE,MODE,EXPR", "open FILEHANDLE,MODE,EXPR,LIST", "open FILEHANDLE,MODE,REFERENCE", "open FILEHANDLE", ], }, opendir => { desc => "open a directory", usage => ["opendir DIRHANDLE,EXPR"] }, readlink => { desc => "determine where a symbolic link is pointing", usage => ["readlink EXPR", "readlink"], }, rename => { desc => "change a filename", usage => ["rename OLDNAME,NEWNAME"] }, rmdir => { desc => "remove a directory", usage => ["rmdir FILENAME", "rmdir"] }, stat => { desc => "get a file's status information", usage => ["stat FILEHANDLE", "stat EXPR", "stat DIRHANDLE", "stat"], }, symlink => { desc => "create a symbolic link to a file", usage => ["symlink OLDFILE,NEWFILE"], }, sysopen => { desc => "open a file, pipe, or descriptor", usage => [ "sysopen FILEHANDLE,FILENAME,MODE", "sysopen FILEHANDLE,FILENAME,MODE,PERMS", ], }, umask => { desc => "set file creation mode mask", usage => ["umask EXPR", "umask"], }, unlink => { desc => "remove one link to a file", usage => ["unlink LIST", "unlink"], }, utime => { desc => "set a file's last access and modify times", usage => ["utime LIST"], }, }, }, "Flow" => { desc => "Keywords related to the control flow of your Perl program", functions => { __FILE__ => { desc => "the name of the current source file", usage => ["__FILE__"], }, __LINE__ => { desc => "the current source line number", usage => ["__LINE__"] }, __PACKAGE__ => { desc => "the current package", usage => ["__PACKAGE__"] }, __SUB__ => { desc => "the current subroutine, or C if not in a subroutine", usage => ["__SUB__"], }, break => { desc => "break out of a C block", usage => ["break"] }, caller => { desc => "get context of the current subroutine call", usage => ["caller EXPR", "caller"], }, continue => { desc => "optional trailing block in a while or foreach", usage => ["continue BLOCK", "continue"], }, die => { desc => "raise an exception or bail out", usage => ["die LIST"] }, do => { desc => "turn a BLOCK into a TERM", usage => ["do BLOCK"] }, dump => { desc => "create an immediate core dump", usage => ["dump LABEL", "dump"], }, eval => { desc => "catch exceptions or compile and run code", usage => ["eval EXPR", "eval BLOCK", "eval"], }, evalbytes => { desc => "similar to string eval, but intend to parse a bytestream", usage => ["evalbytes EXPR", "evalbytes"], }, exit => { desc => "terminate this program", usage => ["exit EXPR", "exit"] }, goto => { desc => "create spaghetti code", usage => ["goto LABEL", "goto EXPR", "goto &NAME"], }, last => { desc => "exit a block prematurely", usage => ["last LABEL", "last"] }, next => { desc => "iterate a block prematurely", usage => ["next LABEL", "next"], }, redo => { desc => "start this loop iteration over again", usage => ["redo LABEL", "redo"], }, return => { desc => "get out of a function early", usage => ["return EXPR", "return"], }, sub => { desc => "declare a subroutine, possibly anonymously", usage => [ "sub NAME BLOCK", "sub NAME (PROTO) BLOCK", "sub NAME : ATTRS BLOCK", "sub NAME (PROTO) : ATTRS BLOCK", ], }, wantarray => { desc => "get void vs scalar vs list context of current subroutine call", usage => ["wantarray"], }, }, }, "HASH" => { desc => "Functions for real %HASHes", functions => { delete => { desc => "deletes a value from a hash", usage => ["delete EXPR"] }, each => { desc => "retrieve the next key/value pair from a hash", usage => ["each HASH", "each ARRAY", "each EXPR"], }, exists => { desc => "test whether a hash key is present", usage => ["exists EXPR"], }, keys => { desc => "retrieve list of indices from a hash", usage => ["keys HASH", "keys ARRAY", "keys EXPR"], }, values => { desc => "return a list of the values in a hash", usage => ["values HASH", "values ARRAY", "values EXPR"], }, }, }, "I/O" => { desc => "Input and output functions", functions => { binmode => { desc => "prepare binary files for I/O", usage => ["binmode FILEHANDLE, LAYER", "binmode FILEHANDLE"], }, close => { desc => "close file (or pipe or socket) handle", usage => ["close FILEHANDLE", "close"], }, closedir => { desc => "close directory handle", usage => ["closedir DIRHANDLE"] }, dbmclose => { desc => "breaks binding on a tied dbm file", usage => ["dbmclose HASH"], }, dbmopen => { desc => "create binding on a tied dbm file", usage => ["dbmopen HASH,DBNAME,MASK"], }, die => { desc => "raise an exception or bail out", usage => ["die LIST"] }, eof => { desc => "test a filehandle for its end", usage => ["eof FILEHANDLE", "eof ()", "eof"], }, fileno => { desc => "return file descriptor from filehandle", usage => ["fileno FILEHANDLE"], }, flock => { desc => "lock an entire file with an advisory lock", usage => ["flock FILEHANDLE,OPERATION"], }, format => { desc => "declare a picture format with use by the write() function", usage => ["format"], }, getc => { desc => "get the next character from the filehandle", usage => ["getc FILEHANDLE", "getc"], }, print => { desc => "output a list to a filehandle", usage => [ "print FILEHANDLE LIST", "print FILEHANDLE", "print LIST", "print", ], }, printf => { desc => "output a formatted list to a filehandle", usage => [ "printf FILEHANDLE FORMAT, LIST", "printf FILEHANDLE", "printf FORMAT, LIST", "printf", ], }, read => { desc => "fixed-length buffered input from a filehandle", usage => [ "read FILEHANDLE,SCALAR,LENGTH,OFFSET", "read FILEHANDLE,SCALAR,LENGTH", ], }, readdir => { desc => "get a directory from a directory handle", usage => ["readdir DIRHANDLE"], }, readline => { desc => "fetch a record from a file", usage => ["readline EXPR", "readline"], }, rewinddir => { desc => "reset directory handle", usage => ["rewinddir DIRHANDLE"] }, say => { desc => "output a list to a filehandle, appending a newline", usage => ["say FILEHANDLE LIST", "say FILEHANDLE", "say LIST", "say"], }, seek => { desc => "reposition file pointer for random-access I/O", usage => ["seek FILEHANDLE,POSITION,WHENCE"], }, seekdir => { desc => "reposition directory pointer", usage => ["seekdir DIRHANDLE,POS"], }, select => { desc => "reset default output or do I/O multiplexing", usage => ["select FILEHANDLE", "select"], }, syscall => { desc => "execute an arbitrary system call", usage => ["syscall NUMBER, LIST"], }, sysread => { desc => "fixed-length unbuffered input from a filehandle", usage => [ "sysread FILEHANDLE,SCALAR,LENGTH,OFFSET", "sysread FILEHANDLE,SCALAR,LENGTH", ], }, sysseek => { desc => "position I/O pointer on handle used with sysread and syswrite", usage => ["sysseek FILEHANDLE,POSITION,WHENCE"], }, syswrite => { desc => "fixed-length unbuffered output to a filehandle", usage => [ "syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET", "syswrite FILEHANDLE,SCALAR,LENGTH", "syswrite FILEHANDLE,SCALAR", ], }, tell => { desc => "get current seekpointer on a filehandle", usage => ["tell FILEHANDLE", "tell"], }, telldir => { desc => "get current seekpointer on a directory handle", usage => ["telldir DIRHANDLE"], }, truncate => { desc => "shorten a file", usage => ["truncate FILEHANDLE,LENGTH", "truncate EXPR,LENGTH"], }, warn => { desc => "print debugging info", usage => ["warn LIST"] }, write => { desc => "print a picture record", usage => ["write FILEHANDLE", "write EXPR", "write"], }, }, }, "LIST" => { desc => "Functions for list data", functions => { "grep" => { desc => "locate elements in a list test true against a given criterion", usage => ["grep BLOCK LIST", "grep EXPR,LIST"], }, "join" => { desc => "join a list into a string using a separator", usage => ["join EXPR,LIST"], }, "map" => { desc => "apply a change to a list to get back a new list with the changes", usage => ["map BLOCK LIST", "map EXPR,LIST"], }, "qw/STRING/" => { desc => "quote a list of words", usage => ["qw/STRING/"] }, "reverse" => { desc => "flip a string or a list", usage => ["reverse LIST"] }, "sort" => { desc => "sort a list of values", usage => ["sort SUBNAME LIST", "sort BLOCK LIST", "sort LIST"], }, "unpack" => { desc => "convert binary structure into normal perl variables", usage => ["unpack TEMPLATE,EXPR", "unpack TEMPLATE"], }, }, }, "Math" => { desc => "Numeric functions", functions => { abs => { desc => "absolute value function", usage => ["abs VALUE", "abs"] }, atan2 => { desc => "arctangent of Y/X in the range -PI to PI", usage => ["atan2 Y,X"], }, cos => { desc => "cosine function", usage => ["cos EXPR", "cos"] }, exp => { desc => "raise I to a power", usage => ["exp EXPR", "exp"] }, hex => { desc => "convert a string to a hexadecimal number", usage => ["hex EXPR", "hex"], }, int => { desc => "get the integer portion of a number", usage => ["int EXPR", "int"], }, log => { desc => "retrieve the natural logarithm for a number", usage => ["log EXPR", "log"], }, oct => { desc => "convert a string to an octal number", usage => ["oct EXPR", "oct"], }, rand => { desc => "retrieve the next pseudorandom number", usage => ["rand EXPR", "rand"], }, sin => { desc => "return the sine of a number", usage => ["sin EXPR", "sin"] }, sqrt => { desc => "square root function", usage => ["sqrt EXPR", "sqrt"] }, srand => { desc => "seed the random number generator", usage => ["srand EXPR", "srand"], }, }, }, "Misc" => { desc => "Miscellaneous functions", functions => { defined => { desc => "test whether a value, variable, or function is defined", usage => ["defined EXPR", "defined"], }, formline => { desc => "internal function used for formats", usage => ["formline PICTURE,LIST"], }, lock => { desc => "get a thread lock on a variable, subroutine, or method", usage => ["lock THING"], }, prototype => { desc => "get the prototype (if any) of a subroutine", usage => ["prototype FUNCTION"], }, reset => { desc => "clear all variables of a given name", usage => ["reset EXPR", "reset"], }, scalar => { desc => "force a scalar context", usage => ["scalar EXPR"] }, undef => { desc => "remove a variable or function definition", usage => ["undef EXPR", "undef"], }, }, }, "Modules" => { desc => "Keywords related to Perl modules", functions => { do => { desc => "turn a BLOCK into a TERM", usage => ["do BLOCK"] }, import => { desc => "patch a module's namespace into your own", usage => ["import LIST"], }, no => { desc => "unimport some module symbols or semantics at compile time", usage => [ "no MODULE VERSION LIST", "no MODULE VERSION", "no MODULE LIST", "no MODULE", "no VERSION", ], }, package => { desc => "declare a separate global namespace", usage => [ "package NAMESPACE", "package NAMESPACE VERSION", "package NAMESPACE BLOCK", "package NAMESPACE VERSION BLOCK", ], }, require => { desc => "load in external functions from a library at runtime", usage => ["require VERSION", "require EXPR", "require"], }, use => { desc => "load in a module at compile time and import its namespace", usage => [ "use Module VERSION LIST", "use Module VERSION", "use Module LIST", "use Module", "use VERSION", ], }, }, }, "Namespace" => { desc => "Keywords related to scoping", functions => { caller => { desc => "get context of the current subroutine call", usage => ["caller EXPR", "caller"], }, import => { desc => "patch a module's namespace into your own", usage => ["import LIST"], }, local => { desc => "create a temporary value for a global variable (dynamic scoping)", usage => ["local EXPR"], }, my => { desc => "declare and assign a local variable (lexical scoping)", usage => [ "my EXPR", "my TYPE EXPR", "my EXPR : ATTRS", "my TYPE EXPR : ATTRS", ], }, our => { desc => "declare and assign a package variable (lexical scoping)", usage => [ "our EXPR", "our TYPE EXPR", "our EXPR : ATTRS", "our TYPE EXPR : ATTRS", ], }, package => { desc => "declare a separate global namespace", usage => [ "package NAMESPACE", "package NAMESPACE VERSION", "package NAMESPACE BLOCK", "package NAMESPACE VERSION BLOCK", ], }, state => { desc => "declare and assign a persistent lexical variable", usage => [ "state EXPR", "state TYPE EXPR", "state EXPR : ATTRS", "state TYPE EXPR : ATTRS", ], }, use => { desc => "load in a module at compile time and import its namespace", usage => [ "use Module VERSION LIST", "use Module VERSION", "use Module LIST", "use Module", "use VERSION", ], }, }, }, "Network" => { desc => "Fetching network info", functions => { endprotoent => { desc => "be done using protocols file", usage => ["endprotoent"] }, endservent => { desc => "be done using services file", usage => ["endservent"] }, gethostbyaddr => { desc => "get host record given its address", usage => ["gethostbyaddr ADDR,ADDRTYPE"], }, gethostbyname => { desc => "get host record given name", usage => ["gethostbyname NAME"], }, gethostent => { desc => "get next hosts record", usage => ["gethostent"] }, getnetbyaddr => { desc => "get network record given its address", usage => ["getnetbyaddr ADDR,ADDRTYPE"], }, getnetbyname => { desc => "get networks record given name", usage => ["getnetbyname NAME"], }, getnetent => { desc => "get next networks record", usage => ["getnetent"] }, getprotobyname => { desc => "get protocol record given name", usage => ["getprotobyname NAME"], }, getprotobynumber => { desc => "get protocol record numeric protocol", usage => ["getprotobynumber NUMBER"], }, getprotoent => { desc => "get next protocols record", usage => ["getprotoent"] }, getservbyname => { desc => "get services record given its name", usage => ["getservbyname NAME,PROTO"], }, getservbyport => { desc => "get services record given numeric port", usage => ["getservbyport PORT,PROTO"], }, getservent => { desc => "get next services record", usage => ["getservent"] }, sethostent => { desc => "prepare hosts file for use", usage => ["sethostent STAYOPEN"], }, setnetent => { desc => "prepare networks file for use", usage => ["setnetent STAYOPEN"], }, setprotoent => { desc => "prepare protocols file for use", usage => ["setprotoent STAYOPEN"], }, setservent => { desc => "prepare services file for use", usage => ["setservent STAYOPEN"], }, }, }, "Objects" => { desc => "Keywords related to classes and object-orientation", functions => { bless => { desc => "create an object", usage => ["bless REF,CLASSNAME", "bless REF"], }, dbmclose => { desc => "breaks binding on a tied dbm file", usage => ["dbmclose HASH"], }, dbmopen => { desc => "create binding on a tied dbm file", usage => ["dbmopen HASH,DBNAME,MASK"], }, package => { desc => "declare a separate global namespace", usage => [ "package NAMESPACE", "package NAMESPACE VERSION", "package NAMESPACE BLOCK", "package NAMESPACE VERSION BLOCK", ], }, ref => { desc => "find out the type of thing being referenced", usage => ["ref EXPR", "ref"], }, tie => { desc => "bind a variable to an object class", usage => ["tie VARIABLE,CLASSNAME,LIST"], }, tied => { desc => "get a reference to the object underlying a tied variable", usage => ["tied VARIABLE"], }, untie => { desc => "break a tie binding to a variable", usage => ["untie VARIABLE"], }, use => { desc => "load in a module at compile time and import its namespace", usage => [ "use Module VERSION LIST", "use Module VERSION", "use Module LIST", "use Module", "use VERSION", ], }, }, }, "Process" => { desc => "Functions for processes and process groups", functions => { "alarm" => { desc => "schedule a SIGALRM", usage => ["alarm SECONDS", "alarm"] }, "exec" => { desc => "abandon this program to run another", usage => ["exec LIST", "exec PROGRAM LIST"], }, "fork" => { desc => "create a new process just like this one", usage => ["fork"], }, "getpgrp" => { desc => "get process group", usage => ["getpgrp PID"] }, "getppid" => { desc => "get parent process ID", usage => ["getppid"] }, "getpriority" => { desc => "get current nice value", usage => ["getpriority WHICH,WHO"], }, "kill" => { desc => "send a signal to a process or process group", usage => ["kill SIGNAL, LIST", "kill SIGNAL"], }, "pipe" => { desc => "open a pair of connected filehandles", usage => ["pipe READHANDLE,WRITEHANDLE"], }, "qx/STRING/" => { desc => "backquote quote a string", usage => ["qx/STRING/"] }, "readpipe" => { desc => "execute a system command and collect standard output", usage => ["readpipe EXPR", "readpipe"], }, "setpgrp" => { desc => "set the process group of a process", usage => ["setpgrp PID,PGRP"], }, "setpriority" => { desc => "set a process's nice value", usage => ["setpriority WHICH,WHO,PRIORITY"], }, "sleep" => { desc => "block for some number of seconds", usage => ["sleep EXPR", "sleep"], }, "system" => { desc => "run a separate program", usage => ["system LIST", "system PROGRAM LIST"], }, "times" => { desc => "return elapsed time for self and child processes", usage => ["times"], }, "wait" => { desc => "wait for any child process to die", usage => ["wait"] }, "waitpid" => { desc => "wait for a particular child process to die", usage => ["waitpid PID,FLAGS"], }, }, }, "Regexp" => { desc => "Regular expressions and pattern matching", functions => { "m//" => { desc => "match a string with a regular expression pattern", usage => ["m/PATTERN/msixpodualgc"], }, "pos" => { desc => "find or set the offset for the last/next m//g search", usage => ["pos SCALAR", "pos"], }, "qr/STRING/" => { desc => "compile pattern", usage => ["qr/STRING/msixpodual"] }, "quotemeta" => { desc => "quote regular expression magic characters", usage => ["quotemeta EXPR", "quotemeta"], }, "s///" => { desc => "replace a pattern with a string", usage => [] }, "split" => { desc => "split up a string using a regexp delimiter", usage => [ "split /PATTERN/,EXPR,LIMIT", "split /PATTERN/,EXPR", "split /PATTERN/", "split", ], }, "study" => { desc => "optimize input data for repeated searches", usage => ["study SCALAR", "study"], }, }, }, "Socket" => { desc => "Low-level socket functions", functions => { accept => { desc => "accept an incoming socket connect", usage => ["accept NEWSOCKET,GENERICSOCKET"], }, bind => { desc => "binds an address to a socket", usage => ["bind SOCKET,NAME"], }, connect => { desc => "connect to a remote socket", usage => ["connect SOCKET,NAME"], }, getpeername => { desc => "find the other end of a socket connection", usage => ["getpeername SOCKET"], }, getsockname => { desc => "retrieve the sockaddr for a given socket", usage => ["getsockname SOCKET"], }, getsockopt => { desc => "get socket options on a given socket", usage => ["getsockopt SOCKET,LEVEL,OPTNAME"], }, listen => { desc => "register your socket as a server", usage => ["listen SOCKET,QUEUESIZE"], }, recv => { desc => "receive a message over a Socket", usage => ["recv SOCKET,SCALAR,LENGTH,FLAGS"], }, send => { desc => "send a message over a socket", usage => ["send SOCKET,MSG,FLAGS,TO", "send SOCKET,MSG,FLAGS"], }, setsockopt => { desc => "set some socket options", usage => ["setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL"], }, shutdown => { desc => "close down just half of a socket connection", usage => ["shutdown SOCKET,HOW"], }, socket => { desc => "create a socket", usage => ["socket SOCKET,DOMAIN,TYPE,PROTOCOL"], }, socketpair => { desc => "create a pair of sockets", usage => ["socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL"], }, }, }, "String" => { desc => "Functions for SCALARs or strings", functions => { "chomp" => { desc => "remove a trailing record separator from a string", usage => ["chomp VARIABLE", "chomp( LIST )", "chomp"], }, "chop" => { desc => "remove the last character from a string", usage => ["chop VARIABLE", "chop( LIST )", "chop"], }, "chr" => { desc => "get character this number represents", usage => ["chr NUMBER", "chr"], }, "crypt" => { desc => "one-way passwd-style encryption", usage => ["crypt PLAINTEXT,SALT"], }, "fc" => { desc => "return casefolded version of a string", usage => ["fc EXPR", "fc"], }, "hex" => { desc => "convert a string to a hexadecimal number", usage => ["hex EXPR", "hex"], }, "index" => { desc => "find a substring within a string", usage => ["index STR,SUBSTR,POSITION", "index STR,SUBSTR"], }, "lc" => { desc => "return lower-case version of a string", usage => ["lc EXPR", "lc"], }, "lcfirst" => { desc => "return a string with just the next letter in lower case", usage => ["lcfirst EXPR", "lcfirst"], }, "length" => { desc => "return the number of bytes in a string", usage => ["length EXPR", "length"], }, "oct" => { desc => "convert a string to an octal number", usage => ["oct EXPR", "oct"], }, "ord" => { desc => "find a character's numeric representation", usage => ["ord EXPR", "ord"], }, "pack" => { desc => "convert a list into a binary representation", usage => ["pack TEMPLATE,LIST"], }, "q/STRING/" => { desc => "singly quote a string", usage => ["q/STRING/"] }, "qq/STRING/" => { desc => "doubly quote a string", usage => ["qq/STRING/"] }, "reverse" => { desc => "flip a string or a list", usage => ["reverse LIST"] }, "rindex" => { desc => "right-to-left substring search", usage => ["rindex STR,SUBSTR,POSITION", "rindex STR,SUBSTR"], }, "sprintf" => { desc => "formatted print into a string", usage => ["sprintf FORMAT, LIST"], }, "substr" => { desc => "get or alter a portion of a string", usage => [ "substr EXPR,OFFSET,LENGTH,REPLACEMENT", "substr EXPR,OFFSET,LENGTH", "substr EXPR,OFFSET", ], }, "tr///" => { desc => "transliterate a string", usage => ["tr/SEARCHLIST/REPLACEMENTLIST/cdsr"], }, "uc" => { desc => "return upper-case version of a string", usage => ["uc EXPR", "uc"], }, "ucfirst" => { desc => "return a string with just the next letter in upper case", usage => ["ucfirst EXPR", "ucfirst"], }, "y///" => { desc => "transliterate a string", usage => ["tr/SEARCHLIST/REPLACEMENTLIST/cdsr"], }, }, }, "SysV" => { desc => "System V interprocess communication functions", functions => { msgctl => { desc => "SysV IPC message control operations", usage => ["msgctl ID,CMD,ARG"], }, msgget => { desc => "get SysV IPC message queue", usage => ["msgget KEY,FLAGS"] }, msgrcv => { desc => "receive a SysV IPC message from a message queue", usage => ["msgrcv ID,VAR,SIZE,TYPE,FLAGS"], }, msgsnd => { desc => "send a SysV IPC message to a message queue", usage => ["msgsnd ID,MSG,FLAGS"], }, semctl => { desc => "SysV semaphore control operations", usage => ["semctl ID,SEMNUM,CMD,ARG"], }, semget => { desc => "get set of SysV semaphores", usage => ["semget KEY,NSEMS,FLAGS"], }, semop => { desc => "SysV semaphore operations", usage => ["semop KEY,OPSTRING"], }, shmctl => { desc => "SysV shared memory operations", usage => ["shmctl ID,CMD,ARG"], }, shmget => { desc => "get SysV shared memory segment identifier", usage => ["shmget KEY,SIZE,FLAGS"], }, shmread => { desc => "read SysV shared memory", usage => ["shmread ID,VAR,POS,SIZE"], }, shmwrite => { desc => "write SysV shared memory", usage => ["shmwrite ID,STRING,POS,SIZE"], }, }, }, "Time" => { desc => "Time-related functions", functions => { gmtime => { desc => "convert UNIX time into record or string using Greenwich time", usage => ["gmtime EXPR", "gmtime"], }, localtime => { desc => "convert UNIX time into record or string using local time", usage => ["localtime EXPR", "localtime"], }, time => { desc => "return number of seconds since 1970", usage => ["time"] }, times => { desc => "return elapsed time for self and child processes", usage => ["times"], }, }, }, "User" => { desc => "Fetching user and group info", functions => { endgrent => { desc => "be done using group file", usage => ["endgrent"] }, endhostent => { desc => "be done using hosts file", usage => ["endhostent"] }, endnetent => { desc => "be done using networks file", usage => ["endnetent"] }, endpwent => { desc => "be done using passwd file", usage => ["endpwent"] }, getgrent => { desc => "get next group record", usage => ["getgrent"] }, getgrgid => { desc => "get group record given group user ID", usage => ["getgrgid GID"], }, getgrnam => { desc => "get group record given group name", usage => ["getgrnam NAME"], }, getlogin => { desc => "return who logged in at this tty", usage => ["getlogin"] }, getpwent => { desc => "get next passwd record", usage => ["getpwent"] }, getpwnam => { desc => "get passwd record given user login name", usage => ["getpwnam NAME"], }, getpwuid => { desc => "get passwd record given user ID", usage => ["getpwuid UID"], }, setgrent => { desc => "prepare group file for use", usage => ["setgrent"] }, setpwent => { desc => "prepare passwd file for use", usage => ["setpwent"] }, }, }, }