1 | package Pod::Functions;
|
---|
2 | use strict;
|
---|
3 |
|
---|
4 | =head1 NAME
|
---|
5 |
|
---|
6 | Pod::Functions - Group Perl's functions a la perlfunc.pod
|
---|
7 |
|
---|
8 | =head1 SYNOPSIS
|
---|
9 |
|
---|
10 | use Pod::Functions;
|
---|
11 |
|
---|
12 | my @misc_ops = @{ $Kinds{ 'Misc' } };
|
---|
13 | my $misc_dsc = $Type_Description{ 'Misc' };
|
---|
14 |
|
---|
15 | or
|
---|
16 |
|
---|
17 | perl /path/to/lib/Pod/Functions.pm
|
---|
18 |
|
---|
19 | This will print a grouped list of Perl's functions, like the
|
---|
20 | L<perlfunc/"Perl Functions by Category"> section.
|
---|
21 |
|
---|
22 | =head1 DESCRIPTION
|
---|
23 |
|
---|
24 | It exports the following variables:
|
---|
25 |
|
---|
26 | =over 4
|
---|
27 |
|
---|
28 | =item %Kinds
|
---|
29 |
|
---|
30 | This holds a hash-of-lists. Each list contains the functions in the category
|
---|
31 | the key denotes.
|
---|
32 |
|
---|
33 | =item %Type
|
---|
34 |
|
---|
35 | In this hash each key represents a function and the value is the category.
|
---|
36 | The category can be a comma separated list.
|
---|
37 |
|
---|
38 | =item %Flavor
|
---|
39 |
|
---|
40 | In this hash each key represents a function and the value is a short
|
---|
41 | description of that function.
|
---|
42 |
|
---|
43 | =item %Type_Description
|
---|
44 |
|
---|
45 | In this hash each key represents a category of functions and the value is
|
---|
46 | a short description of that category.
|
---|
47 |
|
---|
48 | =item @Type_Order
|
---|
49 |
|
---|
50 | This list of categories is used to produce the same order as the
|
---|
51 | L<perlfunc/"Perl Functions by Category"> section.
|
---|
52 |
|
---|
53 | =back
|
---|
54 |
|
---|
55 | =head1 CHANGES
|
---|
56 |
|
---|
57 | 1.02 20020813 <[email protected]>
|
---|
58 | de-typo in the SYNOPSIS section (thanks Mike Castle for noticing)
|
---|
59 |
|
---|
60 | 1.01 20011229 <[email protected]>
|
---|
61 | fixed some bugs that slipped in after 5.6.1
|
---|
62 | added the pod
|
---|
63 | finished making it strict safe
|
---|
64 |
|
---|
65 | 1.00 ??
|
---|
66 | first numbered version
|
---|
67 |
|
---|
68 | =cut
|
---|
69 |
|
---|
70 | our $VERSION = '1.03';
|
---|
71 |
|
---|
72 | require Exporter;
|
---|
73 |
|
---|
74 | our @ISA = qw(Exporter);
|
---|
75 | our @EXPORT = qw(%Kinds %Type %Flavor %Type_Description @Type_Order);
|
---|
76 |
|
---|
77 | our(%Kinds, %Type, %Flavor);
|
---|
78 |
|
---|
79 | our %Type_Description = (
|
---|
80 | 'ARRAY' => 'Functions for real @ARRAYs',
|
---|
81 | 'Binary' => 'Functions for fixed length data or records',
|
---|
82 | 'File' => 'Functions for filehandles, files, or directories',
|
---|
83 | 'Flow' => 'Keywords related to control flow of your perl program',
|
---|
84 | 'HASH' => 'Functions for real %HASHes',
|
---|
85 | 'I/O' => 'Input and output functions',
|
---|
86 | 'LIST' => 'Functions for list data',
|
---|
87 | 'Math' => 'Numeric functions',
|
---|
88 | 'Misc' => 'Miscellaneous functions',
|
---|
89 | 'Modules' => 'Keywords related to perl modules',
|
---|
90 | 'Network' => 'Fetching network info',
|
---|
91 | 'Objects' => 'Keywords related to classes and object-orientedness',
|
---|
92 | 'Process' => 'Functions for processes and process groups',
|
---|
93 | 'Regexp' => 'Regular expressions and pattern matching',
|
---|
94 | 'Socket' => 'Low-level socket functions',
|
---|
95 | 'String' => 'Functions for SCALARs or strings',
|
---|
96 | 'SysV' => 'System V interprocess communication functions',
|
---|
97 | 'Time' => 'Time-related functions',
|
---|
98 | 'User' => 'Fetching user and group info',
|
---|
99 | 'Namespace' => 'Keywords altering or affecting scoping of identifiers',
|
---|
100 | );
|
---|
101 |
|
---|
102 | our @Type_Order = qw{
|
---|
103 | String
|
---|
104 | Regexp
|
---|
105 | Math
|
---|
106 | ARRAY
|
---|
107 | LIST
|
---|
108 | HASH
|
---|
109 | I/O
|
---|
110 | Binary
|
---|
111 | File
|
---|
112 | Flow
|
---|
113 | Namespace
|
---|
114 | Misc
|
---|
115 | Process
|
---|
116 | Modules
|
---|
117 | Objects
|
---|
118 | Socket
|
---|
119 | SysV
|
---|
120 | User
|
---|
121 | Network
|
---|
122 | Time
|
---|
123 | };
|
---|
124 |
|
---|
125 | while (<DATA>) {
|
---|
126 | chomp;
|
---|
127 | s/#.*//;
|
---|
128 | next unless $_;
|
---|
129 | my($name, $type, $text) = split " ", $_, 3;
|
---|
130 | $Type{$name} = $type;
|
---|
131 | $Flavor{$name} = $text;
|
---|
132 | for my $t ( split /[,\s]+/, $type ) {
|
---|
133 | push @{$Kinds{$t}}, $name;
|
---|
134 | }
|
---|
135 | }
|
---|
136 |
|
---|
137 | close DATA;
|
---|
138 |
|
---|
139 | my( $typedesc, $list );
|
---|
140 | unless (caller) {
|
---|
141 | foreach my $type ( @Type_Order ) {
|
---|
142 | $list = join(", ", sort @{$Kinds{$type}});
|
---|
143 | $typedesc = $Type_Description{$type} . ":";
|
---|
144 | write;
|
---|
145 | }
|
---|
146 | }
|
---|
147 |
|
---|
148 | format =
|
---|
149 |
|
---|
150 | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
---|
151 | $typedesc
|
---|
152 | ~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
---|
153 | $typedesc
|
---|
154 | ~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
---|
155 | $list
|
---|
156 | .
|
---|
157 |
|
---|
158 | 1;
|
---|
159 |
|
---|
160 | __DATA__
|
---|
161 | -X File a file test (-r, -x, etc)
|
---|
162 | abs Math absolute value function
|
---|
163 | accept Socket accept an incoming socket connect
|
---|
164 | alarm Process schedule a SIGALRM
|
---|
165 | atan2 Math arctangent of Y/X in the range -PI to PI
|
---|
166 | bind Socket binds an address to a socket
|
---|
167 | binmode I/O prepare binary files for I/O
|
---|
168 | bless Objects create an object
|
---|
169 | caller Flow,Namespace get context of the current subroutine call
|
---|
170 | chdir File change your current working directory
|
---|
171 | chmod File changes the permissions on a list of files
|
---|
172 | chomp String remove a trailing record separator from a string
|
---|
173 | chop String remove the last character from a string
|
---|
174 | chown File change the owership on a list of files
|
---|
175 | chr String get character this number represents
|
---|
176 | chroot File make directory new root for path lookups
|
---|
177 | close I/O close file (or pipe or socket) handle
|
---|
178 | closedir I/O close directory handle
|
---|
179 | connect Socket connect to a remote socket
|
---|
180 | continue Flow optional trailing block in a while or foreach
|
---|
181 | cos Math cosine function
|
---|
182 | crypt String one-way passwd-style encryption
|
---|
183 | dbmclose Objects,I/O breaks binding on a tied dbm file
|
---|
184 | dbmopen Objects,I/O create binding on a tied dbm file
|
---|
185 | defined Misc test whether a value, variable, or function is defined
|
---|
186 | delete HASH deletes a value from a hash
|
---|
187 | die I/O,Flow raise an exception or bail out
|
---|
188 | do Flow,Modules turn a BLOCK into a TERM
|
---|
189 | dump Misc,Flow create an immediate core dump
|
---|
190 | each HASH retrieve the next key/value pair from a hash
|
---|
191 | endgrent User be done using group file
|
---|
192 | endhostent User be done using hosts file
|
---|
193 | endnetent User be done using networks file
|
---|
194 | endprotoent Network be done using protocols file
|
---|
195 | endpwent User be done using passwd file
|
---|
196 | endservent Network be done using services file
|
---|
197 | eof I/O test a filehandle for its end
|
---|
198 | eval Flow,Misc catch exceptions or compile and run code
|
---|
199 | exec Process abandon this program to run another
|
---|
200 | exists HASH test whether a hash key is present
|
---|
201 | exit Flow terminate this program
|
---|
202 | exp Math raise I<e> to a power
|
---|
203 | fcntl File file control system call
|
---|
204 | fileno I/O return file descriptor from filehandle
|
---|
205 | flock I/O lock an entire file with an advisory lock
|
---|
206 | fork Process create a new process just like this one
|
---|
207 | format I/O declare a picture format with use by the write() function
|
---|
208 | formline Misc internal function used for formats
|
---|
209 | getc I/O get the next character from the filehandle
|
---|
210 | getgrent User get next group record
|
---|
211 | getgrgid User get group record given group user ID
|
---|
212 | getgrnam User get group record given group name
|
---|
213 | gethostbyaddr Network get host record given its address
|
---|
214 | gethostbyname Network get host record given name
|
---|
215 | gethostent Network get next hosts record
|
---|
216 | getlogin User return who logged in at this tty
|
---|
217 | getnetbyaddr Network get network record given its address
|
---|
218 | getnetbyname Network get networks record given name
|
---|
219 | getnetent Network get next networks record
|
---|
220 | getpeername Socket find the other end of a socket connection
|
---|
221 | getpgrp Process get process group
|
---|
222 | getppid Process get parent process ID
|
---|
223 | getpriority Process get current nice value
|
---|
224 | getprotobyname Network get protocol record given name
|
---|
225 | getprotobynumber Network get protocol record numeric protocol
|
---|
226 | getprotoent Network get next protocols record
|
---|
227 | getpwent User get next passwd record
|
---|
228 | getpwnam User get passwd record given user login name
|
---|
229 | getpwuid User get passwd record given user ID
|
---|
230 | getservbyname Network get services record given its name
|
---|
231 | getservbyport Network get services record given numeric port
|
---|
232 | getservent Network get next services record
|
---|
233 | getsockname Socket retrieve the sockaddr for a given socket
|
---|
234 | getsockopt Socket get socket options on a given socket
|
---|
235 | glob File expand filenames using wildcards
|
---|
236 | gmtime Time convert UNIX time into record or string using Greenwich time
|
---|
237 | goto Flow create spaghetti code
|
---|
238 | grep LIST locate elements in a list test true against a given criterion
|
---|
239 | hex Math,String convert a string to a hexadecimal number
|
---|
240 | import Modules,Namespace patch a module's namespace into your own
|
---|
241 | index String find a substring within a string
|
---|
242 | int Math get the integer portion of a number
|
---|
243 | ioctl File system-dependent device control system call
|
---|
244 | join LIST join a list into a string using a separator
|
---|
245 | keys HASH retrieve list of indices from a hash
|
---|
246 | kill Process send a signal to a process or process group
|
---|
247 | last Flow exit a block prematurely
|
---|
248 | lc String return lower-case version of a string
|
---|
249 | lcfirst String return a string with just the next letter in lower case
|
---|
250 | length String return the number of bytes in a string
|
---|
251 | link File create a hard link in the filesytem
|
---|
252 | listen Socket register your socket as a server
|
---|
253 | local Misc,Namespace create a temporary value for a global variable (dynamic scoping)
|
---|
254 | localtime Time convert UNIX time into record or string using local time
|
---|
255 | lock Threads get a thread lock on a variable, subroutine, or method
|
---|
256 | log Math retrieve the natural logarithm for a number
|
---|
257 | lstat File stat a symbolic link
|
---|
258 | m// Regexp match a string with a regular expression pattern
|
---|
259 | map LIST apply a change to a list to get back a new list with the changes
|
---|
260 | mkdir File create a directory
|
---|
261 | msgctl SysV SysV IPC message control operations
|
---|
262 | msgget SysV get SysV IPC message queue
|
---|
263 | msgrcv SysV receive a SysV IPC message from a message queue
|
---|
264 | msgsnd SysV send a SysV IPC message to a message queue
|
---|
265 | my Misc,Namespace declare and assign a local variable (lexical scoping)
|
---|
266 | next Flow iterate a block prematurely
|
---|
267 | no Modules unimport some module symbols or semantics at compile time
|
---|
268 | package Modules,Objects,Namespace declare a separate global namespace
|
---|
269 | prototype Flow,Misc get the prototype (if any) of a subroutine
|
---|
270 | oct String,Math convert a string to an octal number
|
---|
271 | open File open a file, pipe, or descriptor
|
---|
272 | opendir File open a directory
|
---|
273 | ord String find a character's numeric representation
|
---|
274 | our Misc,Namespace declare and assign a package variable (lexical scoping)
|
---|
275 | pack Binary,String convert a list into a binary representation
|
---|
276 | pipe Process open a pair of connected filehandles
|
---|
277 | pop ARRAY remove the last element from an array and return it
|
---|
278 | pos Regexp find or set the offset for the last/next m//g search
|
---|
279 | print I/O output a list to a filehandle
|
---|
280 | printf I/O output a formatted list to a filehandle
|
---|
281 | push ARRAY append one or more elements to an array
|
---|
282 | q/STRING/ String singly quote a string
|
---|
283 | qq/STRING/ String doubly quote a string
|
---|
284 | quotemeta Regexp quote regular expression magic characters
|
---|
285 | qw/STRING/ LIST quote a list of words
|
---|
286 | qx/STRING/ Process backquote quote a string
|
---|
287 | qr/STRING/ Regexp Compile pattern
|
---|
288 | rand Math retrieve the next pseudorandom number
|
---|
289 | read I/O,Binary fixed-length buffered input from a filehandle
|
---|
290 | readdir I/O get a directory from a directory handle
|
---|
291 | readline I/O fetch a record from a file
|
---|
292 | readlink File determine where a symbolic link is pointing
|
---|
293 | readpipe Process execute a system command and collect standard output
|
---|
294 | recv Socket receive a message over a Socket
|
---|
295 | redo Flow start this loop iteration over again
|
---|
296 | ref Objects find out the type of thing being referenced
|
---|
297 | rename File change a filename
|
---|
298 | require Modules load in external functions from a library at runtime
|
---|
299 | reset Misc clear all variables of a given name
|
---|
300 | return Flow get out of a function early
|
---|
301 | reverse String,LIST flip a string or a list
|
---|
302 | rewinddir I/O reset directory handle
|
---|
303 | rindex String right-to-left substring search
|
---|
304 | rmdir File remove a directory
|
---|
305 | s/// Regexp replace a pattern with a string
|
---|
306 | scalar Misc force a scalar context
|
---|
307 | seek I/O reposition file pointer for random-access I/O
|
---|
308 | seekdir I/O reposition directory pointer
|
---|
309 | select I/O reset default output or do I/O multiplexing
|
---|
310 | semctl SysV SysV semaphore control operations
|
---|
311 | semget SysV get set of SysV semaphores
|
---|
312 | semop SysV SysV semaphore operations
|
---|
313 | send Socket send a message over a socket
|
---|
314 | setgrent User prepare group file for use
|
---|
315 | sethostent Network prepare hosts file for use
|
---|
316 | setnetent Network prepare networks file for use
|
---|
317 | setpgrp Process set the process group of a process
|
---|
318 | setpriority Process set a process's nice value
|
---|
319 | setprotoent Network prepare protocols file for use
|
---|
320 | setpwent User prepare passwd file for use
|
---|
321 | setservent Network prepare services file for use
|
---|
322 | setsockopt Socket set some socket options
|
---|
323 | shift ARRAY remove the first element of an array, and return it
|
---|
324 | shmctl SysV SysV shared memory operations
|
---|
325 | shmget SysV get SysV shared memory segment identifier
|
---|
326 | shmread SysV read SysV shared memory
|
---|
327 | shmwrite SysV write SysV shared memory
|
---|
328 | shutdown Socket close down just half of a socket connection
|
---|
329 | sin Math return the sine of a number
|
---|
330 | sleep Process block for some number of seconds
|
---|
331 | socket Socket create a socket
|
---|
332 | socketpair Socket create a pair of sockets
|
---|
333 | sort LIST sort a list of values
|
---|
334 | splice ARRAY add or remove elements anywhere in an array
|
---|
335 | split Regexp split up a string using a regexp delimiter
|
---|
336 | sprintf String formatted print into a string
|
---|
337 | sqrt Math square root function
|
---|
338 | srand Math seed the random number generator
|
---|
339 | stat File get a file's status information
|
---|
340 | study Regexp optimize input data for repeated searches
|
---|
341 | sub Flow declare a subroutine, possibly anonymously
|
---|
342 | substr String get or alter a portion of a stirng
|
---|
343 | symlink File create a symbolic link to a file
|
---|
344 | syscall I/O,Binary execute an arbitrary system call
|
---|
345 | sysopen File open a file, pipe, or descriptor
|
---|
346 | sysread I/O,Binary fixed-length unbuffered input from a filehandle
|
---|
347 | sysseek I/O,Binary position I/O pointer on handle used with sysread and syswrite
|
---|
348 | system Process run a separate program
|
---|
349 | syswrite I/O,Binary fixed-length unbuffered output to a filehandle
|
---|
350 | tell I/O get current seekpointer on a filehandle
|
---|
351 | telldir I/O get current seekpointer on a directory handle
|
---|
352 | tie Objects bind a variable to an object class
|
---|
353 | tied Objects get a reference to the object underlying a tied variable
|
---|
354 | time Time return number of seconds since 1970
|
---|
355 | times Process,Time return elapsed time for self and child processes
|
---|
356 | tr/// String transliterate a string
|
---|
357 | truncate I/O shorten a file
|
---|
358 | uc String return upper-case version of a string
|
---|
359 | ucfirst String return a string with just the next letter in upper case
|
---|
360 | umask File set file creation mode mask
|
---|
361 | undef Misc remove a variable or function definition
|
---|
362 | unlink File remove one link to a file
|
---|
363 | unpack Binary,LIST convert binary structure into normal perl variables
|
---|
364 | unshift ARRAY prepend more elements to the beginning of a list
|
---|
365 | untie Objects break a tie binding to a variable
|
---|
366 | use Modules,Namespace load a module and import its namespace
|
---|
367 | use Objects load in a module at compile time
|
---|
368 | utime File set a file's last access and modify times
|
---|
369 | values HASH return a list of the values in a hash
|
---|
370 | vec Binary test or set particular bits in a string
|
---|
371 | wait Process wait for any child process to die
|
---|
372 | waitpid Process wait for a particular child process to die
|
---|
373 | wantarray Misc,Flow get void vs scalar vs list context of current subroutine call
|
---|
374 | warn I/O print debugging info
|
---|
375 | write I/O print a picture record
|
---|
376 | y/// String transliterate a string
|
---|