Spaces:
Running
Running
package Pod::Functions; | |
use strict; | |
=head1 NAME | |
Pod::Functions - Group Perl's functions a la perlfunc.pod | |
=head1 SYNOPSIS | |
use Pod::Functions; | |
my @misc_ops = @{ $Kinds{ 'Misc' } }; | |
my $misc_dsc = $Type_Description{ 'Misc' }; | |
or | |
perl /path/to/lib/Pod/Functions.pm | |
This will print a grouped list of Perl's functions, like the | |
L<perlfunc/"Perl Functions by Category"> section. | |
=head1 DESCRIPTION | |
It exports the following variables: | |
=over 4 | |
=item %Kinds | |
This holds a hash-of-lists. Each list contains the functions in the category | |
the key denotes. | |
=item %Type | |
In this hash each key represents a function and the value is the category. | |
The category can be a comma separated list. | |
=item %Flavor | |
In this hash each key represents a function and the value is a short | |
description of that function. | |
=item %Type_Description | |
In this hash each key represents a category of functions and the value is | |
a short description of that category. | |
=item @Type_Order | |
This list of categories is used to produce the same order as the | |
L<perlfunc/"Perl Functions by Category"> section. | |
=back | |
=cut | |
our $VERSION = '1.13'; | |
require Exporter; | |
our @ISA = qw(Exporter); | |
our @EXPORT = qw(%Kinds %Type %Flavor %Type_Description @Type_Order); | |
our(%Kinds, %Type, %Flavor, %Type_Description, @Type_Order); | |
foreach ( | |
[String => 'Functions for SCALARs or strings'], | |
[Regexp => 'Regular expressions and pattern matching'], | |
[Math => 'Numeric functions'], | |
[ARRAY => 'Functions for real @ARRAYs'], | |
[LIST => 'Functions for list data'], | |
[HASH => 'Functions for real %HASHes'], | |
['I/O' => 'Input and output functions'], | |
[Binary => 'Functions for fixed-length data or records'], | |
[File => 'Functions for filehandles, files, or directories'], | |
[Flow => 'Keywords related to the control flow of your Perl program'], | |
[Namespace => 'Keywords related to scoping'], | |
[Misc => 'Miscellaneous functions'], | |
[Process => 'Functions for processes and process groups'], | |
[Modules => 'Keywords related to Perl modules'], | |
[Objects => 'Keywords related to classes and object-orientation'], | |
[Socket => 'Low-level socket functions'], | |
[SysV => 'System V interprocess communication functions'], | |
[User => 'Fetching user and group info'], | |
[Network => 'Fetching network info'], | |
[Time => 'Time-related functions'], | |
) { | |
push @Type_Order, $_->[0]; | |
$Type_Description{$_->[0]} = $_->[1]; | |
}; | |
while (<DATA>) { | |
chomp; | |
s/^#.*//; | |
next unless $_; | |
my($name, @data) = split "\t", $_; | |
$Flavor{$name} = pop @data; | |
$Type{$name} = join ',', @data; | |
for my $t (@data) { | |
push @{$Kinds{$t}}, $name; | |
} | |
} | |
close DATA; | |
my( $typedesc, $list ); | |
unless (caller) { | |
foreach my $type ( @Type_Order ) { | |
$list = join(", ", sort @{$Kinds{$type}}); | |
$typedesc = $Type_Description{$type} . ":"; | |
write; | |
} | |
} | |
format = | |
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< | |
$typedesc | |
~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< | |
$typedesc | |
~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< | |
$list | |
. | |
1; | |
-X File a file test (-r, -x, etc) | |
abs Math absolute value function | |
accept Socket accept an incoming socket connect | |
alarm Process schedule a SIGALRM | |
atan2 Math arctangent of Y/X in the range -PI to PI | |
bind Socket binds an address to a socket | |
binmode I/O prepare binary files for I/O | |
bless Objects create an object | |
break Flow break out of a C<given> block | |
caller Flow Namespace get context of the current subroutine call | |
chdir File change your current working directory | |
chmod File changes the permissions on a list of files | |
chomp String remove a trailing record separator from a string | |
chop String remove the last character from a string | |
chown File change the ownership on a list of files | |
chr String get character this number represents | |
chroot File make directory new root for path lookups | |
close I/O close file (or pipe or socket) handle | |
closedir I/O close directory handle | |
connect Socket connect to a remote socket | |
continue Flow optional trailing block in a while or foreach | |
cos Math cosine function | |
crypt String one-way passwd-style encryption | |
dbmclose I/O Objects breaks binding on a tied dbm file | |
dbmopen I/O Objects create binding on a tied dbm file | |
defined Misc test whether a value, variable, or function is defined | |
delete HASH deletes a value from a hash | |
die Flow I/O raise an exception or bail out | |
do Flow Modules turn a BLOCK into a TERM | |
dump Flow create an immediate core dump | |
each ARRAY HASH retrieve the next key/value pair from a hash | |
endgrent User be done using group file | |
endhostent User be done using hosts file | |
endnetent User be done using networks file | |
endprotoent Network be done using protocols file | |
endpwent User be done using passwd file | |
endservent Network be done using services file | |
eof I/O test a filehandle for its end | |
eval Flow catch exceptions or compile and run code | |
evalbytes Flow similar to string eval, but intend to parse a bytestream | |
exec Process abandon this program to run another | |
exists HASH test whether a hash key is present | |
exit Flow terminate this program | |
exp Math raise I<e> to a power | |
fc String return casefolded version of a string | |
fcntl File file control system call | |
__FILE__ Flow the name of the current source file | |
fileno I/O return file descriptor from filehandle | |
flock I/O lock an entire file with an advisory lock | |
fork Process create a new process just like this one | |
format I/O declare a picture format with use by the write() function | |
formline Misc internal function used for formats | |
getc I/O get the next character from the filehandle | |
getgrent User get next group record | |
getgrgid User get group record given group user ID | |
getgrnam User get group record given group name | |
gethostbyaddr Network get host record given its address | |
gethostbyname Network get host record given name | |
gethostent Network get next hosts record | |
getlogin User return who logged in at this tty | |
getnetbyaddr Network get network record given its address | |
getnetbyname Network get networks record given name | |
getnetent Network get next networks record | |
getpeername Socket find the other end of a socket connection | |
getpgrp Process get process group | |
getppid Process get parent process ID | |
getpriority Process get current nice value | |
getprotobyname Network get protocol record given name | |
getprotobynumber Network get protocol record numeric protocol | |
getprotoent Network get next protocols record | |
getpwent User get next passwd record | |
getpwnam User get passwd record given user login name | |
getpwuid User get passwd record given user ID | |
getservbyname Network get services record given its name | |
getservbyport Network get services record given numeric port | |
getservent Network get next services record | |
getsockname Socket retrieve the sockaddr for a given socket | |
getsockopt Socket get socket options on a given socket | |
glob File expand filenames using wildcards | |
gmtime Time convert UNIX time into record or string using Greenwich time | |
goto Flow create spaghetti code | |
grep LIST locate elements in a list test true against a given criterion | |
hex Math String convert a hexadecimal string to a number | |
import Modules Namespace patch a module's namespace into your own | |
index String find a substring within a string | |
int Math get the integer portion of a number | |
ioctl File system-dependent device control system call | |
join LIST join a list into a string using a separator | |
keys ARRAY HASH retrieve list of indices from a hash | |
kill Process send a signal to a process or process group | |
last Flow exit a block prematurely | |
lc String return lower-case version of a string | |
lcfirst String return a string with just the next letter in lower case | |
length String return the number of characters in a string | |
__LINE__ Flow the current source line number | |
link File create a hard link in the filesystem | |
listen Socket register your socket as a server | |
local Namespace create a temporary value for a global variable (dynamic scoping) | |
localtime Time convert UNIX time into record or string using local time | |
lock Misc get a thread lock on a variable, subroutine, or method | |
log Math retrieve the natural logarithm for a number | |
lstat File stat a symbolic link | |
m// Regexp match a string with a regular expression pattern | |
map LIST apply a change to a list to get back a new list with the changes | |
mkdir File create a directory | |
msgctl SysV SysV IPC message control operations | |
msgget SysV get SysV IPC message queue | |
msgrcv SysV receive a SysV IPC message from a message queue | |
msgsnd SysV send a SysV IPC message to a message queue | |
my Namespace declare and assign a local variable (lexical scoping) | |
next Flow iterate a block prematurely | |
no Modules unimport some module symbols or semantics at compile time | |
oct Math String convert a string to an octal number | |
open File open a file, pipe, or descriptor | |
opendir File open a directory | |
ord String find a character's numeric representation | |
our Namespace declare and assign a package variable (lexical scoping) | |
pack Binary String convert a list into a binary representation | |
package Modules Namespace Objects declare a separate global namespace | |
__PACKAGE__ Flow the current package | |
pipe Process open a pair of connected filehandles | |
pop ARRAY remove the last element from an array and return it | |
pos Regexp find or set the offset for the last/next m//g search | |
print I/O output a list to a filehandle | |
printf I/O output a formatted list to a filehandle | |
prototype Misc get the prototype (if any) of a subroutine | |
push ARRAY append one or more elements to an array | |
q/STRING/ String singly quote a string | |
qq/STRING/ String doubly quote a string | |
qr/STRING/ Regexp compile pattern | |
quotemeta Regexp quote regular expression magic characters | |
qw/STRING/ LIST quote a list of words | |
qx/STRING/ Process backquote quote a string | |
rand Math retrieve the next pseudorandom number | |
read Binary I/O fixed-length buffered input from a filehandle | |
readdir I/O get a directory from a directory handle | |
readline I/O fetch a record from a file | |
readlink File determine where a symbolic link is pointing | |
readpipe Process execute a system command and collect standard output | |
recv Socket receive a message over a Socket | |
redo Flow start this loop iteration over again | |
ref Objects find out the type of thing being referenced | |
rename File change a filename | |
require Modules load in external functions from a library at runtime | |
reset Misc clear all variables of a given name | |
return Flow get out of a function early | |
reverse LIST String flip a string or a list | |
rewinddir I/O reset directory handle | |
rindex String right-to-left substring search | |
rmdir File remove a directory | |
s/// Regexp replace a pattern with a string | |
say I/O output a list to a filehandle, appending a newline | |
scalar Misc force a scalar context | |
seek I/O reposition file pointer for random-access I/O | |
seekdir I/O reposition directory pointer | |
select File I/O reset default output or do I/O multiplexing | |
semctl SysV SysV semaphore control operations | |
semget SysV get set of SysV semaphores | |
semop SysV SysV semaphore operations | |
send Socket send a message over a socket | |
setgrent User prepare group file for use | |
sethostent Network prepare hosts file for use | |
setnetent Network prepare networks file for use | |
setpgrp Process set the process group of a process | |
setpriority Process set a process's nice value | |
setprotoent Network prepare protocols file for use | |
setpwent User prepare passwd file for use | |
setservent Network prepare services file for use | |
setsockopt Socket set some socket options | |
shift ARRAY remove the first element of an array, and return it | |
shmctl SysV SysV shared memory operations | |
shmget SysV get SysV shared memory segment identifier | |
shmread SysV read SysV shared memory | |
shmwrite SysV write SysV shared memory | |
shutdown Socket close down just half of a socket connection | |
sin Math return the sine of a number | |
sleep Process block for some number of seconds | |
socket Socket create a socket | |
socketpair Socket create a pair of sockets | |
sort LIST sort a list of values | |
splice ARRAY add or remove elements anywhere in an array | |
split Regexp split up a string using a regexp delimiter | |
sprintf String formatted print into a string | |
sqrt Math square root function | |
srand Math seed the random number generator | |
stat File get a file's status information | |
state Namespace declare and assign a persistent lexical variable | |
study Regexp no-op, formerly optimized input data for repeated searches | |
sub Flow declare a subroutine, possibly anonymously | |
__SUB__ Flow the current subroutine, or C<undef> if not in a subroutine | |
substr String get or alter a portion of a string | |
symlink File create a symbolic link to a file | |
syscall Binary I/O execute an arbitrary system call | |
sysopen File open a file, pipe, or descriptor | |
sysread Binary I/O fixed-length unbuffered input from a filehandle | |
sysseek Binary I/O position I/O pointer on handle used with sysread and syswrite | |
system Process run a separate program | |
syswrite Binary I/O fixed-length unbuffered output to a filehandle | |
tell I/O get current seekpointer on a filehandle | |
telldir I/O get current seekpointer on a directory handle | |
tie Objects bind a variable to an object class | |
tied Objects get a reference to the object underlying a tied variable | |
time Time return number of seconds since 1970 | |
times Process Time return elapsed time for self and child processes | |
tr/// String transliterate a string | |
truncate I/O shorten a file | |
uc String return upper-case version of a string | |
ucfirst String return a string with just the next letter in upper case | |
umask File set file creation mode mask | |
undef Misc remove a variable or function definition | |
unlink File remove one link to a file | |
unpack Binary LIST convert binary structure into normal perl variables | |
unshift ARRAY prepend more elements to the beginning of a list | |
untie Objects break a tie binding to a variable | |
use Modules Namespace Objects load in a module at compile time and import its namespace | |
utime File set a file's last access and modify times | |
values ARRAY HASH return a list of the values in a hash | |
vec Binary test or set particular bits in a string | |
wait Process wait for any child process to die | |
waitpid Process wait for a particular child process to die | |
wantarray Flow get void vs scalar vs list context of current subroutine call | |
warn I/O print debugging info | |
write I/O print a picture record | |
y/// String transliterate a string | |