#!/usr/bin/perl -sw $pod_dir = './'; # directory where core pod files are @extra_pods = ('/usr/lib/perl5/5.00503/pod', '/usr/lib/perl5/site_perl/5.005/i386-linux', '/usr/lib/perl5/site_perl/5.005', '/usr/lib/perl5/5.00503/i386-linux' ); # directories where other pod files are # # copyright 1998 $Bill Luebkert - you may use/modify freely # # make perl manual from pods into single text file # Usage: perl perlman.pl >perl.man # $| = 1; print <] >perl.man -s silent (no progress lines) pod-dir optional directory in which to find pod files Combines all of the Perl man pages into a single file for searching and reference. Should generate a lot of format errors. EOD # core sections %sections = ( "01perl" => "Perl overview (this section)", "02perldelta" => "Perl changes since previous version", "03perl5004delta" => "Perl changes in version 5.004", "04perlfaq" => "Perl frequently asked questions", "05perldata" => "Perl data structures", "06perlsyn" => "Perl syntax", "07perlop" => "Perl operators and precedence", "08perlre" => "Perl regular expressions", "09perlrun" => "Perl execution and options", "10perlfunc" => "Perl builtin functions", "11perlopentut" => "Perl open() tutorial", "12perlvar" => "Perl predefined variables", "13perlsub" => "Perl subroutines", "14perlmod" => "Perl modules: how they work", "15perlmodlib" => "Perl modules: how to write and use", "16perlmodinstall" => "Perl modules: how to install from CPAN", "17perlform" => "Perl formats", "18perllocale" => "Perl locale support", "19perlref" => "Perl references", "20perlreftut" => "Perl references short introduction", "21perldsc" => "Perl data structures intro", "22perllol" => "Perl data structures: lists of lists", "23perltoot" => "Perl OO tutorial", "24perlobj" => "Perl objects", "25perltie" => "Perl objects hidden behind simple variables", "26perlbot" => "Perl OO tricks and examples", "27perlipc" => "Perl interprocess communication", "28perlthrtut" => "Perl threads tutorial", "29perldebug" => "Perl debugging", "30perldiag" => "Perl diagnostic messages", "31perlsec" => "Perl security", "32perltrap" => "Perl traps for the unwary", "33perlport" => "Perl portability guide", "34perlstyle" => "Perl style guide", "35perlpod" => "Perl plain old documentation", "36perlbook" => "Perl book information", "37perlembed" => "Perl ways to embed perl in your C or C++ application", "38perlapio" => "Perl internal IO abstraction interface", "39perlxs" => "Perl XS application programming interface", "40perlxstut" => "Perl XS tutorial", "41perlguts" => "Perl internal functions for those doing extensions", "42perlcall" => "Perl calling conventions from C", "43perlhist" => "Perl history records", "44perlwin32" => "Perl under Win32", "45Win32" => "Interfaces to some Win32 API functions", "46perlfaq1" => "Perl frequently asked questions 1", "47perlfaq2" => "Perl frequently asked questions 2", "48perlfaq3" => "Perl frequently asked questions 3", "49perlfaq4" => "Perl frequently asked questions 4", "50perlfaq5" => "Perl frequently asked questions 5", "51perlfaq6" => "Perl frequently asked questions 6", "52perlfaq7" => "Perl frequently asked questions 7", "53perlfaq8" => "Perl frequently asked questions 8", "54perlfaq9" => "Perl frequently asked questions 9", "55perltoc" => "Perl documentation table of contents", ); &main; exit 0; #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sub main { my ($ii, $key); my ($sect_hdr) = "\tSection of Perl Manual"; use Pod::Text; opendir DIR, $pod_dir or die "Error on opendir $pod_dir: $!\n"; while (defined ($_ = readdir DIR)) { next if !/\.pod/; s/\.pod$//io; $pods{$_} = 1; } closedir DIR; # get the core sections in order foreach $key (sort keys %sections) { $key =~ /^(\d{2})(.*)$/; $ii = $1; $section = $2; print STDERR "$ii: $section\n" if !$s; if (not (exists $pods{$section})) { print STDERR "$ii: $section section missing\n"; next; } print "$section $sect_hdr\n\n"; &pod2text ("-80", "$pod_dir/$section.pod"); delete $pods{$section}; } # handle any extra sections foreach $key (sort keys %pods) { print STDERR "$ii: $pods{$key}\n" if !$s; print "$key Section\n\n"; &pod2text ("-80", "$pod_dir/$key.pod"); $ii++; } # handle any extra directories of pods foreach $dir (@extra_pods) { opendir DIR, $dir or die "Error on opendir $dir: $!\n"; while (defined ($_ = readdir DIR)) { next if !/\.pod/; s/\.pod$//io; print STDERR "$ii: $_ extra section\n" if !$s; print "$_ section\n\n"; &pod2text ("-80", "$dir/$_.pod"); $ii++; } closedir DIR; } } #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 if ($s or $h or $help); # single refs __END__