| 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 <abe@ztreet.demon.nl> |
| 58 | de-typo in the SYNOPSIS section (thanks Mike Castle for noticing) |
| 59 | |
| 60 | 1.01 20011229 <abe@ztreet.demon.nl> |
| 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 |