X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FPod%2FFunctions.pm;h=99727b7fe9532152915c0f60ff7c35091bba1287;hb=53bf329c4a7cae809d0c4c820f4ecdeb18754f17;hp=033c579841b2844d84b4d1b35512837f42403991;hpb=393d87f4ac33f9d41aea76fbc0a8b15060e22ec9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/Pod/Functions.pm b/lib/Pod/Functions.pm index 033c579..99727b7 100644 --- a/lib/Pod/Functions.pm +++ b/lib/Pod/Functions.pm @@ -1,13 +1,82 @@ package Pod::Functions; +use strict; -#:vi:set ts=20 +=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 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 catagory +the key denotes. + +=item %Type + +In this hash each key represents a function and the value is the catagory. +The catagory 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 catagory of functions and the value is +a short description of that catagory. + +=item @Type_Order + +This list of catagories is used to produce the same order as the +L section. + +=back + +=head1 CHANGES + +1.02 20020813 + de-typo in the SYNOPSIS section (thanks Mike Castle for noticing) + +1.01 20011229 + fixed some bugs that slipped in after 5.6.1 + added the pod + finished making it strict safe + +1.00 ?? + first numbered version + +=cut + +our $VERSION = '1.02'; require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(%Kinds %Type %Flavor %Type_Description @Type_Order); +our @ISA = qw(Exporter); +our @EXPORT = qw(%Kinds %Type %Flavor %Type_Description @Type_Order); -%Type_Description = ( +our(%Kinds, %Type, %Flavor); + +our %Type_Description = ( 'ARRAY' => 'Functions for real @ARRAYs', 'Binary' => 'Functions for fixed length data or records', 'File' => 'Functions for filehandles, files, or directories', @@ -30,7 +99,7 @@ require Exporter; 'Namespace' => 'Keywords altering or affecting scoping of identifiers', ); -@Type_Order = qw{ +our @Type_Order = qw{ String Regexp Math @@ -57,16 +126,19 @@ while () { chomp; s/#.*//; next unless $_; - ($name, $type, $text) = split " ", $_, 3; + my($name, $type, $text) = split " ", $_, 3; $Type{$name} = $type; $Flavor{$name} = $text; - for $type ( split /[,\s]+/, $type ) { - push @{$Kinds{$type}}, $name; + for my $t ( split /[,\s]+/, $type ) { + push @{$Kinds{$t}}, $name; } -} +} + +close DATA; +my( $typedesc, $list ); unless (caller) { - foreach $type ( @Type_Order ) { + foreach my $type ( @Type_Order ) { $list = join(", ", sort @{$Kinds{$type}}); $typedesc = $Type_Description{$type} . ":"; write; @@ -83,16 +155,16 @@ format = $list . -1 +1; __DATA__ -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 +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 on old systems +binmode I/O prepare binary files for I/O bless Objects create an object caller Flow,Namespace get context of the current subroutine call chdir File change your current working directory @@ -104,7 +176,7 @@ 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 remove socket +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 @@ -123,12 +195,12 @@ 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,Misc catch exceptions or compile code +eval Flow,Misc catch exceptions or compile and run code 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 to a power -fcntl File file control system all +fcntl File file control system call 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 @@ -145,7 +217,7 @@ 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 hend of a socket connection +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 @@ -180,6 +252,7 @@ link File create a hard link in the filesytem listen Socket register your socket as a server local Misc,Namespace create a temporary value for a global variable (dynamic scoping) localtime Time convert UNIX time into record or string using local time +lock Threads 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 @@ -198,6 +271,7 @@ oct String,Math 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 Misc,Namespace declare and assign a package variable (lexical scoping) pack Binary,String convert a list into a binary representation pipe Process open a pair of connected filehandles pop ARRAY remove the last element from an array and return it @@ -251,7 +325,7 @@ 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 sin of a number +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 @@ -293,7 +367,7 @@ values 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 Misc,Flow get list vs array context of current subroutine call +wantarray Misc,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