diff options
-rw-r--r-- | MANIFEST | 315 | ||||
-rw-r--r-- | Makefile.SH | 6 | ||||
-rw-r--r-- | pod.lst | 192 | ||||
-rw-r--r-- | pod/Makefile.SH | 3 | ||||
-rw-r--r-- | pod/buildtoc | 661 | ||||
-rw-r--r-- | pod/buildtoc.PL | 537 | ||||
-rw-r--r-- | pod/perl.pod | 31 | ||||
-rw-r--r-- | pod/perltoc.pod | 3906 | ||||
-rw-r--r-- | vms/descrip_mms.template | 64 | ||||
-rw-r--r-- | win32/pod.mak | 488 |
10 files changed, 3345 insertions, 2858 deletions
@@ -19,11 +19,11 @@ Changes5.004 Differences between 5.003 and 5.004 Changes5.005 Differences between 5.004 and 5.005 Changes5.6 Differences between 5.005 and 5.6 Changes5.8 Differences between 5.6.0 and 5.8.0 (and maint-5.6) +config_h.SH Produces config.h configpm Produces lib/Config.pm Configure Portability tool configure.com Configure-equivalent for VMS configure.gnu Crude emulation of GNU configure -config_h.SH Produces config.h cop.h Control operator header Copying The GNU General Public License Cross/config Cross-compilation @@ -61,9 +61,9 @@ embedvar.h C namespace management epoc/config.sh EPOC port config.sh template epoc/createpkg.pl EPOC port generate PKG file epoc/epoc.c EPOC port +epoc/epoc_stubs.c EPOC port epoc/epocish.c EPOC port epoc/epocish.h EPOC port -epoc/epoc_stubs.c EPOC port epoc/link.pl EPOC port link a exe ext/attrs/attrs.pm attrs extension Perl module ext/attrs/attrs.xs attrs extension external subroutines @@ -142,10 +142,10 @@ ext/Data/Dumper/t/overload.t See if Data::Dumper works for overloaded data ext/Data/Dumper/t/pair.t See if Data::Dumper pair separator works ext/Data/Dumper/Todo Data pretty printer, futures ext/DB_File/Changes Berkeley DB extension change log -ext/DB_File/dbinfo Berkeley DB database version checker ext/DB_File/DB_File.pm Berkeley DB extension Perl module ext/DB_File/DB_File.xs Berkeley DB extension external subroutines ext/DB_File/DB_File_BS Berkeley DB extension mkbootstrap fodder +ext/DB_File/dbinfo Berkeley DB database version checker ext/DB_File/hints/dynixptx.pl Hint for DB_File for named architecture ext/DB_File/hints/sco.pl Hint for DB_File for named architecture ext/DB_File/Makefile.PL Berkeley DB extension makefile writer @@ -192,7 +192,6 @@ ext/Digest/MD5/t/files.t See if Digest::MD5 extension works ext/Digest/MD5/t/md5-aaa.t See if Digest::MD5 extension works ext/Digest/MD5/t/utf8.t See if Digest::MD5 extension works ext/Digest/MD5/typemap Digest::MD5 extension -ext/DynaLoader/dlutils.c Dynamic loader utilities for dl_*.xs files ext/DynaLoader/dl_aix.xs AIX implementation ext/DynaLoader/dl_beos.xs BeOS implementation ext/DynaLoader/dl_dld.xs GNU dld style implementation @@ -206,6 +205,7 @@ ext/DynaLoader/dl_next.xs NeXT implementation ext/DynaLoader/dl_none.xs Stub implementation ext/DynaLoader/dl_vmesa.xs VM/ESA implementation ext/DynaLoader/dl_vms.xs VMS implementation +ext/DynaLoader/dlutils.c Dynamic loader utilities for dl_*.xs files ext/DynaLoader/DynaLoader_pm.PL Dynamic Loader perl module ext/DynaLoader/hints/aix.pl Hint for DynaLoader for named architecture ext/DynaLoader/hints/linux.pl Hint for DynaLoader for named architecture @@ -231,13 +231,13 @@ ext/Encode/EBCDIC/Makefile.PL Encode extension ext/Encode/encengine.c Encode extension ext/Encode/Encode.pm Mother of all Encode extensions ext/Encode/Encode.xs Encode extension +ext/Encode/Encode/_PM.e2x Skeleton file for enc2xs +ext/Encode/Encode/_T.e2x Skeleton file for enc2xs ext/Encode/Encode/Changes.e2x Skeleton file for enc2xs ext/Encode/Encode/ConfigLocal_PM.e2x Skeleton file for enc2xs ext/Encode/Encode/encode.h Encode extension header file ext/Encode/Encode/Makefile_PL.e2x Skeleton file for enc2xs ext/Encode/Encode/README.e2x Skeleton file for enc2xs -ext/Encode/Encode/_PM.e2x Skeleton file for enc2xs -ext/Encode/Encode/_T.e2x Skeleton file for enc2xs ext/Encode/encoding.pm Perl Pragmatic Module ext/Encode/JP/JP.pm Encode extension ext/Encode/JP/Makefile.PL Encode extension @@ -271,14 +271,14 @@ ext/Encode/t/big5-eten.utf test data ext/Encode/t/big5-hkscs.enc test data ext/Encode/t/big5-hkscs.utf test data ext/Encode/t/CJKT.t test script -ext/Encode/t/Encode.t test script -ext/Encode/t/Encoder.t test script -ext/Encode/t/encoding.t test script ext/Encode/t/enc_data.t test script for utf8 DATA ext/Encode/t/enc_eucjp.t test script ext/Encode/t/enc_module.enc test data for t/enc_module.t ext/Encode/t/enc_module.t test script ext/Encode/t/enc_utf8.t test script +ext/Encode/t/Encode.t test script +ext/Encode/t/Encoder.t test script +ext/Encode/t/encoding.t test script ext/Encode/t/fallback.t test script ext/Encode/t/gb2312.enc test data ext/Encode/t/gb2312.utf test data @@ -973,10 +973,10 @@ lib/bignum/t/bigint.t See if bignum works lib/bignum/t/bignum.t See if bignum works lib/bignum/t/bigrat.t See if bignum works lib/bignum/t/biinfnan.t See if bignum works -lib/bignum/t/bninfnan.t See if bignum works lib/bignum/t/bn_lite.t See if bignum works -lib/bignum/t/brinfnan.t See if bignum works +lib/bignum/t/bninfnan.t See if bignum works lib/bignum/t/br_lite.t See if bignum works +lib/bignum/t/brinfnan.t See if bignum works lib/bignum/t/infnan.inc See if bignum works lib/bignum/t/option_a.t See if bignum works lib/bignum/t/option_l.t See if bignum works @@ -1131,9 +1131,9 @@ lib/ExtUtils/t/Constant.t See if ExtUtils::Constant works lib/ExtUtils/t/Embed.t See if ExtUtils::Embed and embedding works lib/ExtUtils/t/hints.t See if hint files are honored. lib/ExtUtils/t/INST.t Check MakeMaker INST_* macros +lib/ExtUtils/t/INST_PREFIX.t See if MakeMaker can apply PREFIXs lib/ExtUtils/t/Install.t See if ExtUtils::Install works lib/ExtUtils/t/Installed.t See if ExtUtils::Installed works -lib/ExtUtils/t/INST_PREFIX.t See if MakeMaker can apply PREFIXs lib/ExtUtils/t/Liblist.t See if ExtUtils::Liblist works lib/ExtUtils/t/Manifest.t See if ExtUtils::Manifest works lib/ExtUtils/t/Mkbootstrap.t See if ExtUtils::Mkbootstrap works @@ -1320,16 +1320,16 @@ lib/Math/BigInt/t/constant.t Test Math::BigInt/BigFloat under :constant lib/Math/BigInt/t/downgrade.t Test if use Math::BigInt(); under downgrade works lib/Math/BigInt/t/inf_nan.t Special tests for inf and NaN handling lib/Math/BigInt/t/isa.t Test for Math::BigInt inheritance +lib/Math/BigInt/t/mbi_rand.t Test Math::BigInt randomly lib/Math/BigInt/t/mbimbf.inc Actual BigInt/BigFloat accuracy, precision and fallback, round_mode tests lib/Math/BigInt/t/mbimbf.t BigInt/BigFloat accuracy, precision and fallback, round_mode -lib/Math/BigInt/t/mbi_rand.t Test Math::BigInt randomly -lib/Math/BigInt/t/require.t Test if require Math::BigInt works lib/Math/BigInt/t/req_mbf0.t test: require Math::BigFloat; ->bzero(); lib/Math/BigInt/t/req_mbf1.t test: require Math::BigFloat; ->bone(); lib/Math/BigInt/t/req_mbfa.t test: require Math::BigFloat; ->bnan(); lib/Math/BigInt/t/req_mbfi.t test: require Math::BigFloat; ->binf(); lib/Math/BigInt/t/req_mbfn.t test: require Math::BigFloat; ->new(); lib/Math/BigInt/t/req_mbfw.t require Math::BigFloat; import ( with => ); +lib/Math/BigInt/t/require.t Test if require Math::BigInt works lib/Math/BigInt/t/sub_mbf.t Empty subclass test of BigFloat lib/Math/BigInt/t/sub_mbi.t Empty subclass test of BigInt lib/Math/BigInt/t/sub_mif.t Test A & P with subclasses using mbimbf.inc @@ -1346,13 +1346,13 @@ lib/Math/BigInt/t/use_mbfw.t use BigFloat w/ with and lib at the same time lib/Math/BigInt/t/with_sub.t Test use Math::BigFloat with => package lib/Math/BigInt/Trace.pm bignum tracing lib/Math/BigRat.pm Math::BigRat +lib/Math/BigRat/t/big_ap.t Math::BigRat test lib/Math/BigRat/t/bigfltpm.inc Math::BigRat test lib/Math/BigRat/t/bigfltrt.t Math::BigRat test lib/Math/BigRat/t/bigrat.t Math::BigRat test lib/Math/BigRat/t/bigratpm.inc Math::BigRat test lib/Math/BigRat/t/bigratpm.t Math::BigRat test lib/Math/BigRat/t/bigratup.t test under $Math::BigInt::upgrade -lib/Math/BigRat/t/big_ap.t Math::BigRat test lib/Math/BigRat/t/requirer.t see if require works properly lib/Math/BigRat/t/trap.t see if trap_nan and trap_inf work lib/Math/Complex.pm A Complex package @@ -1381,11 +1381,11 @@ lib/Memoize/t/normalize.t Memoize 'normalizer' feature tests lib/Memoize/t/prototype.t Memoize prototyped function handling tests lib/Memoize/t/speed.t "Makes functions faster" advertisement test lib/Memoize/t/tie.t Memoize tied file test -lib/Memoize/t/tiefeatures.t Memoize FAULT / MERGE / HASH options test lib/Memoize/t/tie_gdbm.t Memoize GDBM interface test lib/Memoize/t/tie_ndbm.t Memoize NDBM interface test lib/Memoize/t/tie_sdbm.t Memoize SDBM interface test lib/Memoize/t/tie_storable.t Memoize Storable interface test +lib/Memoize/t/tiefeatures.t Memoize FAULT / MERGE / HASH options test lib/Memoize/t/unmemoize.t Memoize 'unmemoize' function test lib/Memoize/TODO Memoize to-do list lib/Net/ChangeLog.libnet libnet @@ -1620,8 +1620,8 @@ lib/Test/Simple/t/strays.t Test::Builder stray newline checks lib/Test/Simple/t/threads.t Test::Builder thread-safe checks lib/Test/Simple/t/todo.t Test::More test, TODO tests lib/Test/Simple/t/undef.t Test::More test, undefs don't cause warnings -lib/Test/Simple/t/useing.t Test::More test, compile test lib/Test/Simple/t/use_ok.t Test::More test, use_ok() +lib/Test/Simple/t/useing.t Test::More test, compile test lib/Test/t/fail.t See if Test works lib/Test/t/mix.t See if Test works lib/Test/t/onfail.t See if Test works @@ -1693,8 +1693,8 @@ lib/Tie/File/t/25_gen_nocache.t Like 01_gen.t, but with caching disabled lib/Tie/File/t/26_twrite.t Unit tests for Tie::File::_twrite lib/Tie/File/t/27_iwrite.t Unit tests for Tie::File::_iwrite lib/Tie/File/t/28_mtwrite.t Unit tests for Tie::File::_mtwrite -lib/Tie/File/t/29a_upcopy.t Unit tests for Tie::File::_upcopy lib/Tie/File/t/29_downcopy.t Unit tests for Tie::File::_downcopy +lib/Tie/File/t/29a_upcopy.t Unit tests for Tie::File::_upcopy lib/Tie/File/t/30_defer.t deferred writing feature tests for Tie::File lib/Tie/File/t/31_autodefer.t 'autodefer' feature tests for Tie::File lib/Tie/File/t/32_defer_misc.t Like 17_misc_meth.t, but with deferred writing @@ -1750,6 +1750,9 @@ lib/unicore/Index.txt Unicode character database lib/unicore/Jamo.txt Unicode character database lib/unicore/JamoShort.pl Unicode character database lib/unicore/Lbrk.pl Unicode character database +lib/unicore/lib/_CanonDC.pl Unicode character database +lib/unicore/lib/_CaseIgn.pl Unicode character database +lib/unicore/lib/_CombAbo.pl Unicode character database lib/unicore/lib/Alnum.pl Unicode character database lib/unicore/lib/Alpha.pl Unicode character database lib/unicore/lib/Alphabet.pl Unicode character database @@ -1973,6 +1976,7 @@ lib/unicore/lib/Kannada.pl Unicode character database lib/unicore/lib/Katakana.pl Unicode character database lib/unicore/lib/Khmer.pl Unicode character database lib/unicore/lib/L.pl Unicode character database +lib/unicore/lib/L_.pl Unicode character database lib/unicore/lib/Lao.pl Unicode character database lib/unicore/lib/Latin.pl Unicode character database lib/unicore/lib/Limbu.pl Unicode character database @@ -1985,7 +1989,6 @@ lib/unicore/lib/Lower.pl Unicode character database lib/unicore/lib/Lowercas.pl Unicode character database lib/unicore/lib/Lt.pl Unicode character database lib/unicore/lib/Lu.pl Unicode character database -lib/unicore/lib/L_.pl Unicode character database lib/unicore/lib/M.pl Unicode character database lib/unicore/lib/Malayala.pl Unicode character database lib/unicore/lib/Math.pl Unicode character database @@ -2057,9 +2060,6 @@ lib/unicore/lib/Z.pl Unicode character database lib/unicore/lib/Zl.pl Unicode character database lib/unicore/lib/Zp.pl Unicode character database lib/unicore/lib/Zs.pl Unicode character database -lib/unicore/lib/_CanonDC.pl Unicode character database -lib/unicore/lib/_CaseIgn.pl Unicode character database -lib/unicore/lib/_CombAbo.pl Unicode character database lib/unicore/LineBreak.txt Unicode character database lib/unicore/Makefile Unicode character database lib/unicore/mktables Unicode character database generator @@ -2195,8 +2195,8 @@ opcode.pl Opcode header generator opnames.h Automatically generated opcode header os2/Changes Changelog for OS/2 port os2/diff.configure Patches to Configure -os2/dlfcn.h Addon for dl_open os2/dl_os2.c Addon for dl_open +os2/dlfcn.h Addon for dl_open os2/Makefile.SHs Shared library generation for OS/2 os2/os2.c Additional code for OS/2 os2/os2.sym Additional symbols to export @@ -2242,10 +2242,10 @@ os2/OS2/REXX/t/rx_tieydb.t DLL access module os2/OS2/REXX/t/rx_varset.t DLL access module os2/OS2/REXX/t/rx_vrexx.t DLL access module os2/OS2/typemap Common typemap for OS/2 types +os2/os2_base.t Additional tests for builtin methods os2/os2add.sym Overriding symbols to export os2/os2ish.h Header for OS/2 os2/os2thread.h pthread-like typedefs -os2/os2_base.t Additional tests for builtin methods os2/perl2cmd.pl Corrects installed binaries under OS/2 os2/perlrexx.c Support perl interpreter embedded in REXX os2/perlrexx.cmd Test perl interpreter embedded in REXX @@ -2268,8 +2268,8 @@ perly.c A byacc'ed perly.y perly.fixer A program to remove yacc stack limitations perly.h The header file for perly.c perly.y Yacc grammar for perl -perlyline.pl Perl code to fix #line directives and gcc warnings in perly.c perly_c.diff Fixup perly.c to allow recursion +perlyline.pl Perl code to fix #line directives and gcc warnings in perly.c plan9/aperl Shell to make Perl error messages Acme-friendly plan9/arpa/inet.h Plan9 port: replacement C header file plan9/buildinfo Plan9 port: configuration information @@ -2285,104 +2285,103 @@ plan9/plan9.c Plan9 port: Plan9-specific C routines plan9/plan9ish.h Plan9 port: Plan9-specific C header file plan9/setup.rc Plan9 port: script for easy build+install plan9/versnum Plan9 port: script to print version number -pod/buildtoc.PL generate buildtoc which generates perltoc.pod pod/checkpods.PL Tool to check for common errors in pods pod/Makefile.SH generate Makefile which makes pods into something else -pod/perl.pod Top level perl documentation -pod/perl5004delta.pod Changes from 5.003 to 5.004 -pod/perl5005delta.pod Changes from 5.004 to 5.005 -pod/perl561delta.pod Changes from 5.6.0 to 5.6.1 -pod/perl56delta.pod Changes from 5.005 to 5.6 -pod/perl570delta.pod Changes from 5.6 to 5.7.0 -pod/perl571delta.pod Changes from 5.7.0 to 5.7.1 -pod/perl572delta.pod Changes from 5.7.1 to 5.7.2 -pod/perl573delta.pod Changes from 5.7.2 to 5.7.3 -pod/perl58delta.pod Changes from 5.6 to 5.8.0 -pod/perlapi.pod Perl API documentation (autogenerated) -pod/perlapio.pod PerlIO IO API info -pod/perlartistic.pod Perl Artistic License (pod) +pod/perl.pod Perl overview (this section) +pod/perl5004delta.pod Perl changes in version 5.004 +pod/perl5005delta.pod Perl changes in version 5.005 +pod/perl561delta.pod Perl changes in version 5.6.1 +pod/perl56delta.pod Perl changes in version 5.6 +pod/perl570delta.pod Perl changes in version 5.7.0 +pod/perl571delta.pod Perl changes in version 5.7.1 +pod/perl572delta.pod Perl changes in version 5.7.2 +pod/perl573delta.pod Perl changes in version 5.7.3 +pod/perl58delta.pod Perl changes in version 5.8.0 +pod/perlapi.pod Perl API listing (autogenerated) +pod/perlapio.pod Perl internal IO abstraction interface +pod/perlartistic.pod Perl Artistic License pod/perlbook.pod Perl book information -pod/perlboot.pod Beginner's Object-oriented Tutorial -pod/perlbot.pod Object-oriented Bag o' Tricks -pod/perlcall.pod Callback info +pod/perlboot.pod Perl OO tutorial for beginners +pod/perlbot.pod Perl OO tricks and examples +pod/perlcall.pod Perl calling conventions from C pod/perlcheat.pod Perl cheat sheet pod/perlclib.pod Internal replacements for standard C library functions -pod/perlcompile.pod Info on using the Compiler suite -pod/perldata.pod Data structure info -pod/perldbmfilter.pod Info about DBM Filters -pod/perldebguts.pod Debugger guts info +pod/perlcompile.pod Perl compiler suite intro +pod/perldata.pod Perl data structures +pod/perldbmfilter.pod Perl DBM filters +pod/perldebguts.pod Perl debugging guts and tips pod/perldebtut.pod Perl debugging tutorial -pod/perldebug.pod Debugger info -pod/perldelta.pod Changes since last version -pod/perldiag.pod Diagnostic info -pod/perldoc.pod docs for utils/perldoc -pod/perldsc.pod Data Structures Cookbook +pod/perldebug.pod Perl debugging +pod/perldelta.pod Perl changes since previous version +pod/perldiag.pod Perl diagnostic messages +pod/perldoc.pod Look up Perl documentation in Pod format +pod/perldsc.pod Perl data structures intro pod/perlebcdic.pod Considerations for running Perl on EBCDIC platforms -pod/perlembed.pod Embedding info -pod/perlfaq.pod Frequently Asked Questions, Top Level -pod/perlfaq1.pod Frequently Asked Questions, Part 1 -pod/perlfaq2.pod Frequently Asked Questions, Part 2 -pod/perlfaq3.pod Frequently Asked Questions, Part 3 -pod/perlfaq4.pod Frequently Asked Questions, Part 4 -pod/perlfaq5.pod Frequently Asked Questions, Part 5 -pod/perlfaq6.pod Frequently Asked Questions, Part 6 -pod/perlfaq7.pod Frequently Asked Questions, Part 7 -pod/perlfaq8.pod Frequently Asked Questions, Part 8 -pod/perlfaq9.pod Frequently Asked Questions, Part 9 -pod/perlfilter.pod Source filters info -pod/perlfork.pod Info about fork() -pod/perlform.pod Format info -pod/perlfunc.pod Function info -pod/perlgpl.pod GNU General Public License (pod) -pod/perlguts.pod Internals info +pod/perlembed.pod Perl ways to embed perl in your C or C++ application +pod/perlfaq.pod Perl frequently asked questions +pod/perlfaq1.pod General Questions About Perl +pod/perlfaq2.pod Obtaining and Learning about Perl +pod/perlfaq3.pod Programming Tools +pod/perlfaq4.pod Data Manipulation +pod/perlfaq5.pod Files and Formats +pod/perlfaq6.pod Regexes +pod/perlfaq7.pod Perl Language Issues +pod/perlfaq8.pod System Interaction +pod/perlfaq9.pod Networking +pod/perlfilter.pod Perl source filters +pod/perlfork.pod Perl fork() information +pod/perlform.pod Perl formats +pod/perlfunc.pod Perl built-in functions +pod/perlgpl.pod GNU General Public License +pod/perlguts.pod Perl internal functions for those doing extensions pod/perlhack.pod Perl hackers guide -pod/perlhist.pod Perl history info -pod/perlintern.pod Perl internal function docs (autogenerated) +pod/perlhist.pod Perl history records +pod/perlintern.pod Perl internal functions (autogenerated) pod/perlintro.pod Perl introduction for beginners -pod/perliol.pod Internals of PerlIO with layers. -pod/perlipc.pod IPC info -pod/perllexwarn.pod Lexical Warnings info -pod/perllocale.pod Locale support info -pod/perllol.pod How to use lists of lists -pod/perlmod.pod Module mechanism info -pod/perlmodinstall.pod Installing CPAN Modules +pod/perliol.pod C API for Perl's implementation of IO in Layers +pod/perlipc.pod Perl interprocess communication +pod/perllexwarn.pod Perl warnings and their control +pod/perllocale.pod Perl locale support +pod/perllol.pod Perl data structures: arrays of arrays +pod/perlmod.pod Perl modules: how they work +pod/perlmodinstall.pod Perl modules: how to install from CPAN pod/perlmodlib.PL Generate pod/perlmodlib.pod -pod/perlmodlib.pod Module policy info -pod/perlmodstyle.pod Perl module style guide -pod/perlnewmod.pod Preparing a new module for distribution -pod/perlnumber.pod Semantics of numbers and numeric operations -pod/perlobj.pod Object info -pod/perlop.pod Operator info -pod/perlopentut.pod open() tutorial -pod/perlothrtut.pod Threads old tutorial -pod/perlpacktut.pod pack() tutorial -pod/perlpod.pod Pod info -pod/perlpodspec.pod Pod specification -pod/perlport.pod Portability guide -pod/perlre.pod Regular expression info -pod/perlref.pod References info -pod/perlreftut.pod Mark's references tutorial -pod/perlrequick.pod Quick start guide for Perl regular expressions -pod/perlreref.pod Perl regular expressions reference -pod/perlretut.pod Tutorial for Perl regular expressions -pod/perlrun.pod Execution info -pod/perlsec.pod Security info -pod/perlstyle.pod Style info -pod/perlsub.pod Subroutine info -pod/perlsyn.pod Syntax info -pod/perlthrtut.pod Threads tutorial -pod/perltie.pod Tieing an object class into a simple variable -pod/perltoc.pod Table of Contents info -pod/perltodo.pod Todo list explained -pod/perltooc.pod Tom's object-oriented tutorial (more on class data) -pod/perltoot.pod Tom's object-oriented tutorial -pod/perltrap.pod Trap info -pod/perlunicode.pod Unicode support info -pod/perluniintro.pod Unicode introduction -pod/perlutil.pod Accompanying utilities explained -pod/perlvar.pod Variable info -pod/perlxs.pod XS api info -pod/perlxstut.pod XS tutorial +pod/perlmodlib.pod Perl modules: how to write and use +pod/perlmodstyle.pod Perl modules: how to write modules with style +pod/perlnewmod.pod Perl modules: preparing a new module for distribution +pod/perlnumber.pod Perl number semantics +pod/perlobj.pod Perl objects +pod/perlop.pod Perl operators and precedence +pod/perlopentut.pod Perl open() tutorial +pod/perlothrtut.pod Old Perl threads tutorial +pod/perlpacktut.pod Perl pack() and unpack() tutorial +pod/perlpod.pod Perl plain old documentation +pod/perlpodspec.pod Perl plain old documentation format specification +pod/perlport.pod Perl portability guide +pod/perlre.pod Perl regular expressions, the rest of the story +pod/perlref.pod Perl references, the rest of the story +pod/perlreftut.pod Perl references short introduction +pod/perlrequick.pod Perl regular expressions quick start +pod/perlreref.pod Perl regular expressions quick reference +pod/perlretut.pod Perl regular expressions tutorial +pod/perlrun.pod Perl execution and options +pod/perlsec.pod Perl security +pod/perlstyle.pod Perl style guide +pod/perlsub.pod Perl subroutines +pod/perlsyn.pod Perl syntax +pod/perlthrtut.pod Perl threads tutorial +pod/perltie.pod Perl objects hidden behind simple variables +pod/perltoc.pod Perl documentation table of contents +pod/perltodo.pod Perl things to do +pod/perltooc.pod Perl OO tutorial, part 2 +pod/perltoot.pod Perl OO tutorial, part 1 +pod/perltrap.pod Perl traps for the unwary +pod/perlunicode.pod Perl Unicode support +pod/perluniintro.pod Perl Unicode introduction +pod/perlutil.pod utilities packaged with the Perl distribution +pod/perlvar.pod Perl predefined variables +pod/perlxs.pod Perl XS application programming interface +pod/perlxstut.pod Perl XS tutorial pod/pod2html.PL Precursor for translator to turn pod into HTML pod/pod2latex.PL Precursor for translator to turn pod into LaTeX pod/pod2man.PL Precursor for translator to turn pod into manpage @@ -2411,8 +2410,8 @@ Porting/fixvars Find undeclared variables with C compiler and fix em Porting/genlog Generate formatted changelogs by querying p4d Porting/Glossary Glossary of config.sh variables Porting/Maintainers Program to pretty print info in Maintainers.pl -Porting/Maintainers.pm Library to pretty print info in Maintainers.pl Porting/Maintainers.pl Information about maintainers +Porting/Maintainers.pm Library to pretty print info in Maintainers.pl Porting/makemeta Create the top-level META.yml Porting/makerel Release making utility Porting/manicheck Check against MANIFEST @@ -2438,43 +2437,43 @@ proto.h Prototypes qnx/ar QNX implementation of "ar" utility qnx/cpp QNX implementation of preprocessor filter README The Instructions -README.aix Notes about AIX port -README.amiga Notes about AmigaOS port -README.apollo Notes about Apollo DomainOS port -README.beos Notes about BeOS port -README.bs2000 Notes about BS2000 POSIX port -README.ce Notes about WinCE port -README.cn About using Perl and Simplified Chinese -README.cygwin Notes about Cygwin port -README.dgux Notes about DG/UX port -README.dos Notes about DOS/DJGPP port -README.epoc Notes about EPOC port -README.freebsd Notes about FreeBSD -README.hpux Notes about HP-UX port -README.hurd Notes about GNU/Hurd port -README.irix Notes about Irix port -README.jp About using Perl and Japanese -README.ko About using Perl and Korean -README.machten Notes about Power MachTen port -README.macos Notes about Mac OS (Classic) -README.macosx Notes about Mac OS X +README.aix Perl notes for AIX +README.amiga Perl notes for AmigaOS +README.apollo Perl notes for Apollo DomainOS +README.beos Perl notes for BeOS +README.bs2000 Perl notes for POSIX-BC BS2000 +README.ce Perl notes for WinCE +README.cn Perl for Simplified Chinese (in EUC-CN) +README.cygwin Perl notes for Cygwin +README.dgux Perl notes for DG/UX +README.dos Perl notes for DOS +README.epoc Perl notes for EPOC +README.freebsd Perl notes for FreeBSD +README.hpux Perl notes for HP-UX +README.hurd Perl notes for Hurd +README.irix Perl notes for Irix +README.jp Perl for Japanese (in EUC-JP) +README.ko Perl for Korean (in EUC-KR) +README.machten Perl notes for Power MachTen +README.macos Perl notes for Mac OS (Classic) +README.macosx Perl notes for Mac OS X README.micro Notes about microperl -README.mint Notes about Atari MiNT port -README.mpeix Notes about MPE/iX port -README.netware Notes about NetWare port -README.os2 Notes about OS/2 port -README.os390 Notes about OS/390 (nee MVS) port -README.os400 Notes about OS/400 port -README.plan9 Notes about Plan9 port -README.qnx Notes about QNX port -README.solaris Notes about Solaris port -README.tru64 Notes about Tru64 -README.tw About using Perl and Traditional Chinese -README.uts Notes about UTS -README.vmesa Notes about VM/ESA port -README.vms Notes about installing the VMS port -README.vos Notes about Stratus VOS port -README.win32 Notes about Win32 port +README.mint Perl notes for MiNT +README.mpeix Perl notes for MPE/iX +README.netware Perl notes for NetWare +README.os2 Perl notes for OS/2 +README.os390 Perl notes for OS/390 +README.os400 Perl notes for OS/400 +README.plan9 Perl notes for Plan 9 +README.qnx Perl notes for QNX +README.solaris Perl notes for Solaris +README.tru64 Perl notes for Tru64 +README.tw Perl for Traditional Chinese (in Big5) +README.uts Perl notes for UTS +README.vmesa Perl notes for VM/ESA +README.vms Perl notes for VMS +README.vos Perl notes for Stratus VOS +README.win32 Perl notes for Windows README.Y2K Notes about Year 2000 concerns reentr.c Reentrant interfaces reentr.h Reentrant interfaces @@ -2598,9 +2597,9 @@ t/lib/sample-tests/shbang_misparse Test data for Test::Harness t/lib/sample-tests/simple Test data for Test::Harness t/lib/sample-tests/simple_fail Test data for Test::Harness t/lib/sample-tests/skip Test data for Test::Harness +t/lib/sample-tests/skip_nomsg Test data for Test::Harness t/lib/sample-tests/skipall Test data for Test::Harness t/lib/sample-tests/skipall_nomsg Test data for Test::Harness -t/lib/sample-tests/skip_nomsg Test data for Test::Harness t/lib/sample-tests/switches Test data for Test::Harness t/lib/sample-tests/taint Test data for Test::Harness t/lib/sample-tests/todo Test data for Test::Harness @@ -2745,6 +2744,7 @@ t/op/qq.t See if qq works t/op/quotemeta.t See if quotemeta works t/op/rand.t See if rand works t/op/range.t See if .. works +t/op/re_tests Regular expressions for regexp.t t/op/read.t See if read() works t/op/readdir.t See if readdir() works t/op/readline.t See if <> / readline / rcatline work @@ -2755,7 +2755,6 @@ t/op/regexp_noamp.t See if regular expressions work with optimizations t/op/regmesg.t See if one can get regular expression errors t/op/repeat.t See if x operator works t/op/reverse.t See if reverse operator works -t/op/re_tests Regular expressions for regexp.t t/op/runlevel.t See if die() works from perl_call_*() t/op/sleep.t See if sleep works t/op/sort.t See if sort works @@ -2766,11 +2765,11 @@ t/op/srand.t See if srand works t/op/stash.t See if %:: stashes work t/op/stat.t See if stat works t/op/study.t See if study works +t/op/sub_lval.t See if lvalue subroutines work t/op/subst.t See if substitution works -t/op/substr.t See if substr works t/op/subst_amp.t See if $&-related substitution works t/op/subst_wamp.t See if substitution works with $& present -t/op/sub_lval.t See if lvalue subroutines work +t/op/substr.t See if substr works t/op/sysio.t See if sysread and syswrite work t/op/taint.t See if tainting works t/op/tie.t See if tie/untie functions work @@ -2826,6 +2825,7 @@ t/run/exit.t Test perl's exit status. t/run/fresh_perl.t Tests that require a fresh perl. t/run/noswitch.t Test aliasing ARGV for other switch tests t/run/runenv.t Test if perl honors its environment variables. +t/run/switch_A.t Test the -A switch t/run/switcha.t Test the -a switch t/run/switchC.t Test the -C switch t/run/switchd.t Test the -d switch @@ -2839,7 +2839,6 @@ t/run/switchPx.t Test the -Px combination t/run/switcht.t Test the -t switch t/run/switchx.aux Data for switchx.t t/run/switchx.t Test the -x switch -t/run/switch_A.t Test the -A switch t/TEST The regression tester t/test.pl Simple testing library t/TestInit.pm Preamble library for core tests @@ -2907,9 +2906,9 @@ vms/ext/Stdio/Stdio.pm VMS options to stdio routines vms/ext/Stdio/Stdio.xs VMS options to stdio routines vms/ext/Stdio/test.pl regression tests for VMS::Stdio vms/ext/XSSymSet.pm manage linker symbols when building extensions +vms/gen_shrfls.pl generate options files and glue for shareable image vms/genconfig.pl retcon config.sh from config.h vms/genopt.com hack to write options files in case of broken makes -vms/gen_shrfls.pl generate options files and glue for shareable image vms/make_command.com record MM[SK] command used to build Perl vms/mms2make.pl convert descrip.mms to make syntax vms/munchconfig.c performs shell $var substitution for VMS @@ -2921,9 +2920,9 @@ vms/sockadapt.c glue for SockshShr socket support vms/sockadapt.h glue for SockshShr socket support vms/test.com DCL driver for regression tests vms/vms.c VMS-specific C code for Perl core +vms/vms_yfix.pl convert Unix perly.[ch] to VMS perly_[ch].vms vms/vmsish.h VMS-specific C header for Perl core vms/vmspipe.com VMS-specific piped command helper script -vms/vms_yfix.pl convert Unix perly.[ch] to VMS perly_[ch].vms vms/writemain.pl Generate perlmain.c from miniperlmain.c+extensions vos/Changes Changes made to port Perl to the VOS operating system vos/compile_full_perl.cm VOS command macro to build "full" Perl @@ -2951,8 +2950,8 @@ win32/config_H.vc64 Win64 config header (Visual C++ build) win32/config_sh.PL Perl code to update Win32 config.sh from Makefile win32/distclean.bat Remove _ALL_ files not listed here in MANIFEST win32/dl_win32.xs Win32 port -win32/FindExt.pm Scan for extensions win32/fcrypt.c crypt() implementation +win32/FindExt.pm Scan for extensions win32/genmk95.pl Perl code to generate command.com-usable makefile.95 win32/include/arpa/inet.h Win32 port win32/include/dirent.h Win32 port diff --git a/Makefile.SH b/Makefile.SH index 2aa52e1303..6a30929a32 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -310,13 +310,11 @@ shextract = Makefile cflags config.h makeaperl makedepend \ # available. Dependencies handled manually below (for now). pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL \ - pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL \ - pod/buildtoc.PL + pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL # lib/lib.pm is not listed here because it has a rule of its own. plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \ - pod/pod2usage pod/podchecker pod/podselect \ - pod/buildtoc + pod/pod2usage pod/podchecker pod/podselect addedbyconf = UU $(shextract) $(plextract) lib/lib.pm pstruct diff --git a/pod.lst b/pod.lst new file mode 100644 index 0000000000..29342fb9f3 --- /dev/null +++ b/pod.lst @@ -0,0 +1,192 @@ +# O - Header, omit from toc +# o - Item, omit from toc +# I - Header, include in toc +# r - top level READMEs to be copied/symlinked +# a - Item, for auxiliary documentation +# a - Header for auxiliary documentation +# number - indent by + +I Overview + + perl Perl overview (this section) + perlintro Perl introduction for beginners + perltoc Perl documentation table of contents + +I Tutorials + + perlreftut Perl references short introduction + perldsc Perl data structures intro + perllol Perl data structures: arrays of arrays + + perlrequick Perl regular expressions quick start + perlretut Perl regular expressions tutorial + + perlboot Perl OO tutorial for beginners + perltoot Perl OO tutorial, part 1 + perltooc Perl OO tutorial, part 2 + perlbot Perl OO tricks and examples + + perlstyle Perl style guide + + perlcheat Perl cheat sheet + perltrap Perl traps for the unwary + perldebtut Perl debugging tutorial + + perlfaq Perl frequently asked questions +2 perlfaq1 General Questions About Perl +2 perlfaq2 Obtaining and Learning about Perl +2 perlfaq3 Programming Tools +2 perlfaq4 Data Manipulation +2 perlfaq5 Files and Formats +2 perlfaq6 Regexes +2 perlfaq7 Perl Language Issues +2 perlfaq8 System Interaction +2 perlfaq9 Networking + +I Reference Manual + + perlsyn Perl syntax + perldata Perl data structures + perlop Perl operators and precedence + perlsub Perl subroutines + perlfunc Perl built-in functions +2 perlopentut Perl open() tutorial +2 perlpacktut Perl pack() and unpack() tutorial + perlpod Perl plain old documentation + perlpodspec Perl plain old documentation format specification + perlrun Perl execution and options + perldiag Perl diagnostic messages + perllexwarn Perl warnings and their control + perldebug Perl debugging + perlvar Perl predefined variables + perlre Perl regular expressions, the rest of the story + perlreref Perl regular expressions quick reference + perlref Perl references, the rest of the story + perlform Perl formats + perlobj Perl objects + perltie Perl objects hidden behind simple variables +2 perldbmfilter Perl DBM filters + + perlipc Perl interprocess communication + perlfork Perl fork() information + perlnumber Perl number semantics + + perlthrtut Perl threads tutorial +2 perlothrtut Old Perl threads tutorial + + perlport Perl portability guide + perllocale Perl locale support + perluniintro Perl Unicode introduction + perlunicode Perl Unicode support + perlebcdic Considerations for running Perl on EBCDIC platforms + + perlsec Perl security + + perlmod Perl modules: how they work + perlmodlib Perl modules: how to write and use + perlmodstyle Perl modules: how to write modules with style + perlmodinstall Perl modules: how to install from CPAN + perlnewmod Perl modules: preparing a new module for distribution + + perlutil utilities packaged with the Perl distribution + + perlcompile Perl compiler suite intro + + perlfilter Perl source filters + +I Internals and C Language Interface + + perlembed Perl ways to embed perl in your C or C++ application + perldebguts Perl debugging guts and tips + perlxstut Perl XS tutorial + perlxs Perl XS application programming interface + perlclib Internal replacements for standard C library functions + perlguts Perl internal functions for those doing extensions + perlcall Perl calling conventions from C + + perlapi Perl API listing (autogenerated) + perlintern Perl internal functions (autogenerated) + perliol C API for Perl's implementation of IO in Layers + perlapio Perl internal IO abstraction interface + + perlhack Perl hackers guide + +I Miscellaneous + + perlbook Perl book information + perltodo Perl things to do + + perldoc Look up Perl documentation in Pod format + + perlhist Perl history records + perldelta Perl changes since previous version + perl58delta Perl changes in version 5.8.0 + perl573delta Perl changes in version 5.7.3 + perl572delta Perl changes in version 5.7.2 + perl571delta Perl changes in version 5.7.1 + perl570delta Perl changes in version 5.7.0 + perl561delta Perl changes in version 5.6.1 + perl56delta Perl changes in version 5.6 + perl5005delta Perl changes in version 5.005 + perl5004delta Perl changes in version 5.004 + + perlartistic Perl Artistic License + perlgpl GNU General Public License + +O Language-Specific + +or perlcn Perl for Simplified Chinese (in EUC-CN) +or perljp Perl for Japanese (in EUC-JP) +or perlko Perl for Korean (in EUC-KR) +or perltw Perl for Traditional Chinese (in Big5) + +I Platform-Specific + +r perlaix Perl notes for AIX +r perlamiga Perl notes for AmigaOS +r perlapollo Perl notes for Apollo DomainOS +r perlbeos Perl notes for BeOS +r perlbs2000 Perl notes for POSIX-BC BS2000 +r perlce Perl notes for WinCE +r perlcygwin Perl notes for Cygwin +r perldgux Perl notes for DG/UX +r perldos Perl notes for DOS +r perlepoc Perl notes for EPOC +r perlfreebsd Perl notes for FreeBSD +r perlhpux Perl notes for HP-UX +r perlhurd Perl notes for Hurd +r perlirix Perl notes for Irix +r perlmachten Perl notes for Power MachTen +r perlmacos Perl notes for Mac OS (Classic) +r perlmacosx Perl notes for Mac OS X +r perlmint Perl notes for MiNT +r perlmpeix Perl notes for MPE/iX +r perlnetware Perl notes for NetWare +r perlos2 Perl notes for OS/2 +r perlos390 Perl notes for OS/390 +r perlos400 Perl notes for OS/400 +r perlplan9 Perl notes for Plan 9 +r perlqnx Perl notes for QNX +r perlsolaris Perl notes for Solaris +r perltru64 Perl notes for Tru64 +r perluts Perl notes for UTS +r perlvmesa Perl notes for VM/ESA +r perlvms Perl notes for VMS +r perlvos Perl notes for Stratus VOS +r perlwin32 Perl notes for Windows + +AO Auxiliary Documentation + +ao a2p +ao c2ph +ao dprofpp +ao h2ph +ao h2xs +ao perlbug +ao perldoc +ao pl2pm +ao pod2html +ao pod2man +ao s2p +ao splain +ao xsubpp diff --git a/pod/Makefile.SH b/pod/Makefile.SH index a481ca6de6..ababd51d26 100644 --- a/pod/Makefile.SH +++ b/pod/Makefile.SH @@ -73,9 +73,6 @@ converters: $(CONVERTERS) regen_pods: perlmodlib.pod toc -buildtoc: buildtoc.PL perl.pod ../MANIFEST - $(PERLILIB) buildtoc.PL - perltoc.pod: buildtoc man: pod2man $(MAN) diff --git a/pod/buildtoc b/pod/buildtoc new file mode 100644 index 0000000000..4b5fe1e6fe --- /dev/null +++ b/pod/buildtoc @@ -0,0 +1,661 @@ +#!/usr/bin/perl -w + +use strict; +use vars qw($masterpodfile %Build %Targets $Verbose $Up %Ignore + @Master %Readmes %Pods %Aux %Readmepods %Pragmata %Modules); +use File::Spec; +use File::Find; +use FindBin; +use Text::Tabs; +use Text::Wrap; +use Getopt::Long; + +no locale; + +$Up = File::Spec->updir; +$masterpodfile = File::Spec->catdir($Up, "pod.lst"); + +# Generate any/all of these files +# --verbose gives slightly more output +# --build-all tries to build everything +# --build-foo updates foo as follows +# --showfiles shows the files to be changed + +%Targets + = ( + toc => "perltoc.pod", + manifest => File::Spec->catdir($Up, "MANIFEST"), + perlpod => "perl.pod", + vms => File::Spec->catdir($Up, "vms", "descrip_mms.template"), + nmake => File::Spec->catdir($Up, "win32", "Makefile"), + dmake => File::Spec->catdir($Up, "win32", "makefile.mk"), + podmak => File::Spec->catdir($Up, "win32", "pod.mak"), + # plan9 => File::Spec->catdir($Up, "plan9", "mkfile"), + ); + +{ + my @files = keys %Targets; + my $filesopts = join(" | ", map { "--build-$_" } "all", sort @files); + my $showfiles; + die <<__USAGE__ +$0: Usage: $0 [--verbose] [--showfiles] $filesopts +__USAGE__ + unless @ARGV + && GetOptions (verbose => \$Verbose, + showfiles => \$showfiles, + map {+"build-$_", \$Build{$_}} @files, 'all'); + # Set them all to true + @Build{@files} = @files if ($Build{all}); + if ($showfiles) { + print + join(" ", + sort { lc $a cmp lc $b } + map { + my ($v, $d, $f) = File::Spec->splitpath($_); + my @d; + @d = defined $d ? File::Spec->splitdir($d) : (); + shift @d if @d; + File::Spec->catfile(@d ? + (@d == 1 && $d[0] eq '' ? () : @d) + : "pod", $f); + } @Targets{grep { $_ ne 'all' && $Build{$_} } keys %Build}), + "\n"; + exit(0); + } +} + +# Don't copy these top level READMEs +%Ignore + = ( + Y2K => 1, + micro => 1, +# vms => 1, + ); + +if ($Verbose) { + print "I'm building $_\n" foreach grep {$Build{$_}} keys %Build; +} + +chdir $FindBin::Bin or die "$0: Can't chdir $FindBin::Bin: $!"; + +open MASTER, $masterpodfile or die "$0: Can't open $masterpodfile: $!"; + +foreach (<MASTER>) { + next if /^\#/; + + # At least one upper case letter somewhere in the first group + if (/^(\S+)\s(.*)/ && $1 =~ tr/A-Z//) { + # it's a heading + my $flags = $1; + my %flags = (header => 1); + $flags{toc_omit} = 1 if $flags =~ tr/O//d; + $flags{include} = 1 if $flags =~ tr/I//d; + $flags{aux} = 1 if $flags =~ tr/A//d; + die "$0: Unknown flag found in heading line: $_" if length $flags; + push @Master, [\%flags, $2]; + + } elsif (/^(\S*)\s+(\S+)\s+(.*)/) { + # it's a section + my ($flags, $filename, $desc) = ($1, $2, $3); + + my %flags = (indent => 0); + $flags{indent} = $1 if $flags =~ s/(\d+)//; + $flags{toc_omit} = 1 if $flags =~ tr/o//d; + $flags{aux} = 1 if $flags =~ tr/a//d; + if ($flags =~ tr/r//d) { + my $readme = $filename; + $readme =~ s/^perl//; + $Readmepods{$filename} = $Readmes{$readme} = $desc; + $flags{readme} = 1; + } elsif ($flags{aux}) { + $Aux{$filename} = $desc; + } else { + $Pods{$filename} = $desc; + } + die "$0: Unknown flag found in section line: $_" if length $flags; + push @Master, [\%flags, $filename, $desc]; + } elsif (/^$/) { + push @Master, undef; + } else { + die "$0: Malformed line: $_" if $1 =~ tr/A-Z//; + } +} + +close MASTER; + +# Sanity cross check +{ + my (%disk_pods, @disk_pods); + my (@manipods, %manipods); + my (@manireadmes, %manireadmes); + my (@perlpods, %perlpods); + my (%our_pods); + + # Convert these to a list of filenames. + foreach (keys %Pods, keys %Readmepods) { + $our_pods{"$_.pod"}++; + } + + # None of these filenames will be boolean false + @disk_pods = glob("*.pod"); + @disk_pods{@disk_pods} = @disk_pods; + + open(MANI, "../MANIFEST") || die "$0: opening ../MANIFEST failed: $!"; + while (<MANI>) { + if (m!^pod/([^.]+\.pod)\s+!i) { + push @manipods, $1; + } elsif (m!^README\.(\S+)\s+!i) { + next if $Ignore{$1}; + push @manireadmes, "perl$1.pod"; + } + } + close(MANI); + @manipods{@manipods} = @manipods; + @manireadmes{@manireadmes} = @manireadmes; + + open(PERLPOD, "perl.pod") || die "$0: opening perl.pod failed: $!\n"; + while (<PERLPOD>) { + if (/^For ease of access, /../^\(If you're intending /) { + if (/^\s+(perl\S*)\s+\w/) { + push @perlpods, "$1.pod"; + } + } + } + close(PERLPOD); + die "$0: could not find the pod listing of perl.pod\n" + unless @perlpods; + @perlpods{@perlpods} = @perlpods; + + foreach my $i (sort keys %disk_pods) { + warn "$0: $i exists but is unknown by buildtoc\n" + unless $our_pods{$i}; + warn "$0: $i exists but is unknown by ../MANIFEST\n" + if !$manipods{$i} && !$manireadmes{$i}; + warn "$0: $i exists but is unknown by perl.pod\n" + unless $perlpods{$i}; + } + foreach my $i (sort keys %our_pods) { + warn "$0: $i is known by buildtoc but does not exist\n" + unless $disk_pods{$i}; + } + foreach my $i (sort keys %manipods) { + warn "$0: $i is known by ../MANIFEST but does not exist\n" + unless $disk_pods{$i}; + } + foreach my $i (sort keys %perlpods) { + warn "$0: $i is known by perl.pod but does not exist\n" + unless $disk_pods{$i}; + } +} + +# Find all the mdoules +{ + my @modpods; + find \&getpods => qw(../lib ../ext); + + sub getpods { + if (/\.p(od|m)$/) { + my $file = $File::Find::name; + return if $file eq '../lib/Pod/Functions.pm'; # Used only by pod itself + return if $file =~ m!(?:^|/)t/!; + return if $file =~ m!lib/Attribute/Handlers/demo/!; + return if $file =~ m!lib/Net/FTP/.+\.pm!; # Hi, Graham! :-) + return if $file =~ m!lib/Math/BigInt/t/!; + return if $file =~ m!/Devel/PPPort/[Hh]arness|lib/Devel/Harness!i; + return if $file =~ m!XS/(?:APItest|Typemap)!; + die "$0: tut $File::Find::name" if $file =~ /TUT/; + unless (open (F, "< $_\0")) { + warn "$0: bogus <$file>: $!"; + system "ls", "-l", $file; + } + else { + my $line; + while ($line = <F>) { + if ($line =~ /^=head1\s+NAME\b/) { + push @modpods, $file; + #warn "GOOD $file\n"; + return; + } + } + warn "$0: $file: cannot find =head1 NAME\n"; + } + } + } + + die "$0: no pods" unless @modpods; + + my %done; + for (@modpods) { + #($name) = /(\w+)\.p(m|od)$/; + my $name = path2modname($_); + if ($name =~ /^[a-z]/) { + $Pragmata{$name} = $_; + } else { + if ($done{$name}++) { + # warn "already did $_\n"; + next; + } + $Modules{$name} = $_; + } + } +} + +# OK. Now a lot of ancillay function definitions follow +# Main program returns at "Do stuff" + +sub path2modname { + local $_ = shift; + s/\.p(m|od)$//; + s-.*?/(lib|ext)/--; + s-/-::-g; + s/(\w+)::\1/$1/; + return $_; +} + +sub output ($); + +sub output_perltoc { + open(OUT, ">perltoc.pod") || die "$0: creating perltoc.pod failed: $!"; + + $/ = ''; + + ($_= <<"EOPOD2B") =~ s/^\t//gm && output($_); + + =head1 NAME + + perltoc - perl documentation table of contents + + =head1 DESCRIPTION + + This page provides a brief table of contents for the rest of the Perl + documentation set. It is meant to be scanned quickly or grepped + through to locate the proper section you're looking for. + + =head1 BASIC DOCUMENTATION + +EOPOD2B +#' make emacs happy + + # All the things in the master list that happen to be pod filenames + podset(map {"$_->[1].pod"} grep {defined $_ && @$_ == 3 && !$_->[0]{toc_omit}} @Master); + + + ($_= <<"EOPOD2B") =~ s/^\t//gm && output($_); + + + + =head1 PRAGMA DOCUMENTATION + +EOPOD2B + + podset(sort values %Pragmata); + + ($_= <<"EOPOD2B") =~ s/^\t//gm && output($_); + + + + =head1 MODULE DOCUMENTATION + +EOPOD2B + + podset( @Modules{ sort keys %Modules } ); + + $_= <<"EOPOD2B"; + + + =head1 AUXILIARY DOCUMENTATION + + Here should be listed all the extra programs' documentation, but they + don't all have manual pages yet: + + =over 4 + +EOPOD2B + + $_ .= join "\n", map {"\t=item $_\n"} sort keys %Aux; + $_ .= <<"EOPOD2B" ; + + =back + + =head1 AUTHOR + + Larry Wall <F<larry\@wall.org>>, with the help of oodles + of other folks. + + +EOPOD2B + + s/^\t//gm; + output $_; + output "\n"; # flush $LINE +} + +# Below are all the auxiliary routines for generating perltoc.pod + +my ($inhead1, $inhead2, $initem); + +sub podset { + local @ARGV = @_; + my $pod; + + while(<>) { + if (s/^=head1 (NAME)\s*/=head2 /) { + $pod = path2modname($ARGV); + unhead1(); + output "\n \n\n=head2 "; + $_ = <>; + if ( /^\s*$pod\b/ ) { + s/$pod\.pm/$pod/; # '.pm' in NAME !? + output $_; + } else { + s/^/$pod, /; + output $_; + } + next; + } + if (s/^=head1 (.*)/=item $1/) { + unhead2(); + output "=over 4\n\n" unless $inhead1; + $inhead1 = 1; + output $_; nl(); next; + } + if (s/^=head2 (.*)/=item $1/) { + unitem(); + output "=over 4\n\n" unless $inhead2; + $inhead2 = 1; + output $_; nl(); next; + } + if (s/^=item ([^=].*)/$1/) { + next if $pod eq 'perldiag'; + s/^\s*\*\s*$// && next; + s/^\s*\*\s*//; + s/\n/ /g; + s/\s+$//; + next if /^[\d.]+$/; + next if $pod eq 'perlmodlib' && /^ftp:/; + ##print "=over 4\n\n" unless $initem; + output ", " if $initem; + $initem = 1; + s/\.$//; + s/^-X\b/-I<X>/; + output $_; next; + } + if (s/^=cut\s*\n//) { + unhead1(); + next; + } + } +} + +sub unhead1 { + unhead2(); + if ($inhead1) { + output "\n\n=back\n\n"; + } + $inhead1 = 0; +} + +sub unhead2 { + unitem(); + if ($inhead2) { + output "\n\n=back\n\n"; + } + $inhead2 = 0; +} + +sub unitem { + if ($initem) { + output "\n\n"; + ##print "\n\n=back\n\n"; + } + $initem = 0; +} + +sub nl { + output "\n"; +} + +my $NEWLINE = 0; # how many newlines have we seen recently +my $LINE; # what remains to be printed + +sub output ($) { + for (split /(\n)/, shift) { + if ($_ eq "\n") { + if ($LINE) { + print OUT wrap('', '', $LINE); + $LINE = ''; + } + if (($NEWLINE) < 2) { + print OUT; + $NEWLINE++; + } + } + elsif (/\S/ && length) { + $LINE .= $_; + $NEWLINE = 0; + } + } +} + +# End of original buildtoc. From here on are routines to generate new sections +# for and inplace edit other files + +sub generate_perlpod { + my @output; + my $maxlength = 0; + foreach (@Master) { + my $flags = $_->[0]; + next if $flags->{aux}; + + if (@$_ == 2) { + # Heading + push @output, "=head2 $_->[1]\n"; + } elsif (@$_ == 3) { + # Section + my $start = " " x (4 + $flags->{indent}) . $_->[1]; + $maxlength = length $start if length ($start) > $maxlength; + push @output, [$start, $_->[2]]; + } elsif (@$_ == 0) { + # blank line + push @output, "\n"; + } else { + die "$0: Illegal length " . scalar @$_; + } + } + # want at least 2 spaces padding + $maxlength += 2; + $maxlength = ($maxlength + 3) & ~3; + # sprintf gives $1.....$2 where ... are spaces: + return unexpand (map {ref $_ ? sprintf "%-${maxlength}s%s\n", @$_ : $_} + @output); +} + + +sub generate_manifest { + # Annyoingly unexpand doesn't consider it good form to replace a single + # space before a tab with a tab + # Annoyingly (2) it returns read only values. + my @temp = unexpand (map {sprintf "%-32s%s\n", @$_} @_); + map {s/ \t/\t\t/g; $_} @temp; +} +sub generate_manifest_pod { + generate_manifest map {["pod/$_.pod", $Pods{$_}]} sort keys %Pods; +} +sub generate_manifest_readme { + generate_manifest map {["README.$_", $Readmes{$_}]} sort keys %Readmes; +} + +sub generate_roffitall { + (map ({"\t\$maindir/$_.1\t\\"}sort keys %Pods), + "\t\t\\", + map ({"\t\$maindir/$_.1\t\\"}sort keys %Aux), + "\t\t\\", + map ({"\t\$libdir/$_.3\t\\"}sort keys %Pragmata), + "\t\t\\", + map ({"\t\$libdir/$_.3\t\\"}sort keys %Modules), + ) +} + +sub generate_descrip_mms_1 { + local $Text::Wrap::columns = 150; + my $count = 0; + my @lines = map {"pod" . $count++ . " = $_"} + split /\n/, wrap('', '', join " ", map "[.lib.pod]$_.pod", + sort keys %Pods, keys %Readmepods); + @lines, "pod = " . join ' ', map {"\$(pod$_)"} 0 .. $count - 1; +} + +sub generate_descrip_mms_2 { + map {sprintf <<'SNIP', $_, $_} +[.lib.pod]%s.pod : [.pod]%s.pod + @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] + Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] +SNIP + sort keys %Pods, keys %Readmepods; +} + +sub generate_nmake_1 { + map {sprintf "\tcopy ..\\README.%-8s .\\perl$_.pod\n", $_} + sort keys %Readmes; +} + +# This doesn't have a trailing newline +sub generate_nmake_2 { + # Spot the special case + local $Text::Wrap::columns = 76; + my $line = wrap ("\t ", "\t ", + join " ", sort map {"perl$_.pod"} "vms", keys %Readmes); + $line =~ s/$/ \\/mg; + $line; +} + +sub generate_pod_mak { + my $variable = shift; + my @lines; + my $line = join "\\\n", "\U$variable = ", + map {"\t$_.$variable\t"} sort keys %Pods; + # Special case + $line =~ s/.*perltoc.html.*\n//m; + $line; +} + +sub do_manifest { + my $name = shift; + my @manifest = + grep {! m!^pod/[^.]+\.pod.*\n!} + grep {! m!^README\.(\S+)! || $Ignore{$1}} @_; + # Dictionary order - fold and handle non-word chars as nothing + map { $_->[0] } + sort { $a->[1] cmp $b->[1] || $a->[0] cmp $b->[0] } + map { [ $_, lc $_ ] } + @manifest, + &generate_manifest_pod(), + &generate_manifest_readme(); +} + +sub do_nmake { + my $name = shift; + my $makefile = join '', @_; + die "$0: $name contains NUL bytes" if $makefile =~ /\0/; + $makefile =~ s/^\tcopy \.\.\\README.*\n/\0/gm; + my $sections = () = $makefile =~ m/\0+/g; + die "$0: $name contains no README copies" if $sections < 1; + die "$0: $name contains discontiguous README copies" if $sections > 1; + $makefile =~ s/\0+/join "", &generate_nmake_1/se; + + $makefile =~ s{(cd \$\(PODDIR\) && del /f [^\n]+).*?(pod2html)} + {"$1\n" . &generate_nmake_2."\n\t $2"}se; + $makefile; +} + +# shut up used only once warning +*do_dmake = *do_dmake = \&do_nmake; + +sub do_perlpod { + my $name = shift; + my $pod = join '', @_; + + unless ($pod =~ s{(For\ ease\ of\ access,\ .*\n) + (?:\s+[a-z]{4,}.*\n # fooo + |=head.*\n # =head foo + |\s*\n # blank line + )+ + } + {$1 . join "", &generate_perlpod}mxe) { + die "$0: Failed to insert ammendments in do_perlpod"; + } + $pod; +} + +sub do_podmak { + my $name = shift; + my $body = join '', @_; + foreach my $variable qw(pod man html tex) { + die "$0: could not find $variable in $name" + unless $body =~ s{\n\U$variable\E = (?:[^\n]*\\\n)*[^\n]*} + {"\n" . generate_pod_mak ($variable)}se; + } + $body; +} + +sub do_vms { + my $name = shift; + my $makefile = join '', @_; + die "$0: $name contains NUL bytes" if $makefile =~ /\0/; + $makefile =~ s/\npod\d* =[^\n]*/\0/gs; + my $sections = () = $makefile =~ m/\0+/g; + die "$0: $name contains no pod assignments" if $sections < 1; + die "$0: $name contains $sections discontigous pod assignments" + if $sections > 1; + $makefile =~ s/\0+/join "\n", '', &generate_descrip_mms_1/se; + + die "$0: $name contains NUL bytes" if $makefile =~ /\0/; + +# Looking for rules like this +# [.lib.pod]perl.pod : [.pod]perl.pod +# @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] +# Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] + + $makefile =~ s/\n\Q[.lib.pod]\Eperl[^\n\.]*\.pod[^\n]+\n + [^\n]+\n # Another line + [^\n]+\Q[.lib.pod]\E\n # ends [.lib.pod] + /\0/gsx; + $sections = () = $makefile =~ m/\0+/g; + die "$0: $name contains no copy rules" if $sections < 1; + die "$0: $name contains $sections discontigous copy rules" + if $sections > 1; + $makefile =~ s/\0+/join "\n", '', &generate_descrip_mms_2/se; + $makefile; +} + +# Do stuff + +my $built; +while (my ($target, $name) = each %Targets) { + next unless $Build{$target}; + $built++; + if ($target eq "toc") { + &output_perltoc; + next; + } + print "Now processing $name\n" if $Verbose; + open THING, $name or die "Can't open $name: $!"; + my @orig = <THING>; + my $orig = join '', @orig; + close THING; + my @new = do { + no strict 'refs'; + &{"do_$target"}($target, @orig); + }; + my $new = join '', @new; + if ($new eq $orig) { + print "Was not modified\n" if $Verbose; + next; + } + rename $name, "$name.old" or die "$0: Can't rename $name to $name.old: $!"; + open THING, ">$name" or die "$0: Can't open $name for writing: $!"; + print THING $new or die "$0: print to $name failed: $!"; + close THING or die die "$0: close $name failed: $!"; +} + +warn "$0: was not instructed to build anything\n" unless $built; diff --git a/pod/buildtoc.PL b/pod/buildtoc.PL deleted file mode 100644 index 14a899a7e6..0000000000 --- a/pod/buildtoc.PL +++ /dev/null @@ -1,537 +0,0 @@ -#!/usr/local/bin/perl - -use Config; -use File::Basename qw(&basename &dirname); -use Cwd; - -# List explicitly here the variables you want Configure to -# generate. Metaconfig only looks for shell variables, so you -# have to mention them as if they were shell variables, not -# %Config entries. Thus you write -# $startperl -# to ensure Configure will look for $Config{startperl}. - -# This forces PL files to create target in same directory as PL file. -# This is so that make depend always knows where to find PL derivatives. -$origdir = cwd; -chdir(dirname($0)); -($file = basename($0)) =~ s/\.PL$//; -$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos'); # "case-forgiving" -$file =~ s/\.pl$/.com/ if ($^O eq 'VMS'); # "case-forgiving" - -open OUT,">$file" or die "Can't create $file: $!"; - -print "Extracting $file (with variable substitutions)\n"; - -# In this section, perl variables will be expanded during extraction. -# You can use $Config{...} to use Configure variables. - -print OUT <<"!GROK!THIS!"; -$Config{'startperl'} - eval 'exec perl -S \$0 "\$@"' - if 0; -!GROK!THIS! - -# In the following, perl variables are not expanded during extraction. - -print OUT <<'!NO!SUBS!'; - -# -# buildtoc -# -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is autogenerated by buildtoc.PL. -# Edit that file and run it to effect changes. -# -# Builds perltoc.pod and sanity checks the list of pods against all -# of the MANIFEST, perl.pod, and ourselves. -# - -use File::Find; -use Cwd; -use Text::Wrap; - -@PODS = glob("*.pod"); - -sub output ($); - -if (-d "pod") { - die "$0: failed to chdir('pod'): $!\n" unless chdir("pod"); -} - -@ARCHPODS = qw( - perlaix - perlapollo - perlamiga - perlbeos - perlbs2000 - perlce - perlcygwin - perldgux - perldos - perlepoc - perlfreebsd - perlhpux - perlhurd - perlirix - perlmachten - perlmacos - perlmacosx - perlmint - perlmpeix - perlnetware - perlos2 - perlos390 - perlos400 - perlqnx - perlplan9 - perlsolaris - perltru64 - perluts - perlvmesa - perlvms - perlvos - perlwin32 - ); - -@CJKPODS = qw( - perlcn - perljp - perlko - perltw - ); - -@pods = - ( - qw( - - perl - perlintro - perlfaq - perltoc - perlbook - - perlsyn - perldata - perlop - perlsub - perlfunc - perlreftut - perldsc - perlrequick - perlpod - perlpodspec - perlstyle - perltrap - perlcheat - - perlrun - perldiag - perllexwarn - perldebtut - perldebug - - perlvar - perllol - perlopentut - perlpacktut - perlretut - - perlre - perlreref - perlref - - perlform - - perlboot - perltoot - perltooc - perlobj - perlbot - perltie - - perlipc - perlfork - perlnumber - - perlthrtut - perlothrtut - - perlport - perllocale - perluniintro - perlunicode - perlebcdic - - perlsec - - perlmod - perlmodinstall - perlmodlib - perlmodstyle - perlnewmod - - perlfaq1 - perlfaq2 - perlfaq3 - perlfaq4 - perlfaq5 - perlfaq6 - perlfaq7 - perlfaq8 - perlfaq9 - - perlcompile - - perlembed - perldebguts - perlxstut - perlxs - perlclib - perlguts - perlcall - perlutil - perlfilter - perldbmfilter - perlapi - perlintern - perliol - perlapio - perltodo - perlhack - perldoc - - perlhist - perldelta - perl58delta - perl573delta - perl572delta - perl571delta - perl570delta - perl561delta - perl56delta - perl5005delta - perl5004delta - - perlartistic - perlgpl - - ), - - @ARCHPODS, - - ); - -for (@ARCHPODS) { s/$/.pod/ } -@ARCHPODS{@ARCHPODS} = (); - -for (@CJKPODS) { s/$/.pod/ } -@CJKPODS{@CJKPODS} = (); - -for (@pods) { s/$/.pod/ } -@pods{@pods} = (); -@PODS{@PODS} = (); - -open(MANI, "../MANIFEST") || die "$0: opening ../MANIFEST failed: $!"; -while (<MANI>) { - if (m!^pod/([^.]+\.pod)\s+!i) { - push @MANIPODS, $1; - } -} -close(MANI); -@MANIPODS{@MANIPODS} = (); - -open(PERLPOD, "perl.pod") || die "$0: opening perl.pod failed: $!\n"; -while (<PERLPOD>) { - if (/^For ease of access, /../^\(If you're intending /) { - if (/^\s+(perl\S*)\s+\w/) { - push @PERLPODS, "$1.pod"; - } - } -} -close(PERLPOD); -die "$0: could not find the pod listing of perl.pod\n" - unless @PERLPODS; -@PERLPODS{@PERLPODS} = (); - -# Delete the CJK because we cannot mix their encodings. -delete @PERLPODS{@CJKPODS}; -delete @PODS{@CJKPODS}; -delete @pods{@CJKPODS}; - -# Cross-check against ourselves -# Cross-check against the MANIFEST -# Cross-check against the perl.pod - -foreach my $i (sort keys %PODS) { - warn "$0: $i exists but is unknown by buildtoc\n" - unless exists $pods{$i}; - warn "$0: $i exists but is unknown by ../MANIFEST\n" - if !exists $MANIPODS{$i} && !exists $ARCHPODS{$i} && !exists $CJKPODS{$i}; - warn "$0: $i exists but is unknown by perl.pod\n" - unless exists $PERLPODS{$i}; -} -foreach my $i (sort keys %pods) { - warn "$0: $i is known by buildtoc but does not exist\n" - unless exists $PODS{$i}; -} -foreach my $i (sort keys %MANIPODS) { - warn "$0: $i is known by ../MANIFEST but does not exist\n" - unless exists $PODS{$i}; -} -foreach my $i (sort keys %PERLPODS) { - warn "$0: $i is known by perl.pod but does not exist\n" - unless exists $PODS{$i}; -} - -# We are ready to rock. -open(OUT, ">perltoc.pod") || die "$0: creating perltoc.pod failed: $!"; - -$/ = ''; -@ARGV = @pods; - -($_= <<EOPOD2B) =~ s/^\t//gm && output($_); - - =head1 NAME - - perltoc - perl documentation table of contents - - =head1 DESCRIPTION - - This page provides a brief table of contents for the rest of the Perl - documentation set. It is meant to be scanned quickly or grepped - through to locate the proper section you're looking for. - - =head1 BASIC DOCUMENTATION - -EOPOD2B -#' make emacs happy - -podset(@pods); - -find \&getpods => qw(../lib ../ext); - -sub getpods { - if (/\.p(od|m)$/) { - my $file = $File::Find::name; - return if $file eq '../lib/Pod/Functions.pm'; # Used only by pod itself - return if $file =~ m!(?:^|/)t/!; - return if $file =~ m!lib/Attribute/Handlers/demo/!; - return if $file =~ m!lib/Net/FTP/.+\.pm!; # Hi, Graham! :-) - return if $file =~ m!lib/Math/BigInt/t/!; - return if $file =~ m!/Devel/PPPort/[Hh]arness|lib/Devel/Harness!i; - return if $file =~ m!XS/(?:APItest|Typemap)!; - die "tut $name" if $file =~ /TUT/; - unless (open (F, "< $_\0")) { - warn "bogus <$file>: $!"; - system "ls", "-l", $file; - } - else { - my $line; - while ($line = <F>) { - if ($line =~ /^=head1\s+NAME\b/) { - push @modpods, $file; - #warn "GOOD $file\n"; - return; - } - } - warn "$0: $file: cannot find =head1 NAME\n"; - } - } -} - -die "no pods" unless @modpods; - -for (@modpods) { - #($name) = /(\w+)\.p(m|od)$/; - $name = path2modname($_); - if ($name =~ /^[a-z]/) { - push @pragmata, $_; - } else { - if ($done{$name}++) { - # warn "already did $_\n"; - next; - } - push @modules, $_; - push @modname, $name; - } -} - -($_= <<EOPOD2B) =~ s/^\t//gm && output($_); - - - - =head1 PRAGMA DOCUMENTATION - -EOPOD2B - -podset(sort @pragmata); - -($_= <<EOPOD2B) =~ s/^\t//gm && output($_); - - - - =head1 MODULE DOCUMENTATION - -EOPOD2B - -podset( @modules[ sort { $modname[$a] cmp $modname[$b] } 0 .. $#modules ] ); - -($_= <<EOPOD2B) =~ s/^\t//gm; - - - =head1 AUXILIARY DOCUMENTATION - - Here should be listed all the extra programs' documentation, but they - don't all have manual pages yet: - - =over 4 - - =item a2p - - =item s2p - - =item find2perl - - =item h2ph - - =item c2ph - - =item h2xs - - =item xsubpp - - =item pod2man - - =item wrapsuid - - =back - - =head1 AUTHOR - - Larry Wall <F<larry\@wall.org>>, with the help of oodles - of other folks. - - -EOPOD2B -output $_; -output "\n"; # flush $LINE -exit; - -sub podset { - local @ARGV = @_; - - while(<>) { - if (s/^=head1 (NAME)\s*/=head2 /) { - $pod = path2modname($ARGV); - unhead1(); - output "\n \n\n=head2 "; - $_ = <>; - if ( /^\s*$pod\b/ ) { - s/$pod\.pm/$pod/; # '.pm' in NAME !? - output $_; - } else { - s/^/$pod, /; - output $_; - } - next; - } - if (s/^=head1 (.*)/=item $1/) { - unhead2(); - output "=over 4\n\n" unless $inhead1; - $inhead1 = 1; - output $_; nl(); next; - } - if (s/^=head2 (.*)/=item $1/) { - unitem(); - output "=over 4\n\n" unless $inhead2; - $inhead2 = 1; - output $_; nl(); next; - } - if (s/^=item ([^=].*)/$1/) { - next if $pod eq 'perldiag'; - s/^\s*\*\s*$// && next; - s/^\s*\*\s*//; - s/\n/ /g; - s/\s+$//; - next if /^[\d.]+$/; - next if $pod eq 'perlmodlib' && /^ftp:/; - ##print "=over 4\n\n" unless $initem; - output ", " if $initem; - $initem = 1; - s/\.$//; - s/^-X\b/-I<X>/; - output $_; next; - } - if (s/^=cut\s*\n//) { - unhead1(); - next; - } - } -} - -sub path2modname { - local $_ = shift; - s/\.p(m|od)$//; - s-.*?/(lib|ext)/--; - s-/-::-g; - s/(\w+)::\1/$1/; - return $_; -} - -sub unhead1 { - unhead2(); - if ($inhead1) { - output "\n\n=back\n\n"; - } - $inhead1 = 0; -} - -sub unhead2 { - unitem(); - if ($inhead2) { - output "\n\n=back\n\n"; - } - $inhead2 = 0; -} - -sub unitem { - if ($initem) { - output "\n\n"; - ##print "\n\n=back\n\n"; - } - $initem = 0; -} - -sub nl { - output "\n"; -} - -my $NEWLINE; # how many newlines have we seen recently -my $LINE; # what remains to be printed - -sub output ($) { - for (split /(\n)/, shift) { - if ($_ eq "\n") { - if ($LINE) { - print OUT wrap('', '', $LINE); - $LINE = ''; - } - if ($NEWLINE < 2) { - print OUT; - $NEWLINE++; - } - } - elsif (/\S/ && length) { - $LINE .= $_; - $NEWLINE = 0; - } - } -} - -!NO!SUBS! - -close OUT or die "Can't close $file: $!"; -chmod 0755, $file or die "Can't reset permissions for $file: $!\n"; -exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':'; -chdir $origdir; diff --git a/pod/perl.pod b/pod/perl.pod index 73ab3d6c68..077b03ce54 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -30,7 +30,7 @@ For ease of access, the Perl manual has been split up into several sections. perldsc Perl data structures intro perllol Perl data structures: arrays of arrays - perlrequick Perl regular expressions quick start + perlrequick Perl regular expressions quick start perlretut Perl regular expressions tutorial perlboot Perl OO tutorial for beginners @@ -40,6 +40,7 @@ For ease of access, the Perl manual has been split up into several sections. perlstyle Perl style guide + perlcheat Perl cheat sheet perltrap Perl traps for the unwary perldebtut Perl debugging tutorial @@ -56,20 +57,18 @@ For ease of access, the Perl manual has been split up into several sections. =head2 Reference Manual - perlcheat Perl cheat sheet - perlsyn Perl syntax perldata Perl data structures perlop Perl operators and precedence perlsub Perl subroutines perlfunc Perl built-in functions perlopentut Perl open() tutorial - perlpacktut Perl pack() and unpack() tutorial + perlpacktut Perl pack() and unpack() tutorial perlpod Perl plain old documentation - perlpodspec Perl plain old documentation format specification + perlpodspec Perl plain old documentation format specification perlrun Perl execution and options perldiag Perl diagnostic messages - perllexwarn Perl warnings and their control + perllexwarn Perl warnings and their control perldebug Perl debugging perlvar Perl predefined variables perlre Perl regular expressions, the rest of the story @@ -85,12 +84,12 @@ For ease of access, the Perl manual has been split up into several sections. perlnumber Perl number semantics perlthrtut Perl threads tutorial - perlothrtut Old Perl threads tutorial + perlothrtut Old Perl threads tutorial perlport Perl portability guide perllocale Perl locale support perluniintro Perl Unicode introduction - perlunicode Perl Unicode support + perlunicode Perl Unicode support perlebcdic Considerations for running Perl on EBCDIC platforms perlsec Perl security @@ -103,14 +102,14 @@ For ease of access, the Perl manual has been split up into several sections. perlutil utilities packaged with the Perl distribution - perlcompile Perl compiler suite intro + perlcompile Perl compiler suite intro perlfilter Perl source filters =head2 Internals and C Language Interface perlembed Perl ways to embed perl in your C or C++ application - perldebguts Perl debugging guts and tips + perldebguts Perl debugging guts and tips perlxstut Perl XS tutorial perlxs Perl XS application programming interface perlclib Internal replacements for standard C library functions @@ -133,13 +132,13 @@ For ease of access, the Perl manual has been split up into several sections. perlhist Perl history records perldelta Perl changes since previous version - perl58delta Perl changes in version 5.8.0 + perl58delta Perl changes in version 5.8.0 perl573delta Perl changes in version 5.7.3 perl572delta Perl changes in version 5.7.2 perl571delta Perl changes in version 5.7.1 perl570delta Perl changes in version 5.7.0 perl561delta Perl changes in version 5.6.1 - perl56delta Perl changes in version 5.6 + perl56delta Perl changes in version 5.6 perl5005delta Perl changes in version 5.005 perl5004delta Perl changes in version 5.004 @@ -165,16 +164,16 @@ For ease of access, the Perl manual has been split up into several sections. perldgux Perl notes for DG/UX perldos Perl notes for DOS perlepoc Perl notes for EPOC - perlfreebsd Perl notes for FreeBSD + perlfreebsd Perl notes for FreeBSD perlhpux Perl notes for HP-UX perlhurd Perl notes for Hurd perlirix Perl notes for Irix - perlmachten Perl notes for Power MachTen + perlmachten Perl notes for Power MachTen perlmacos Perl notes for Mac OS (Classic) perlmacosx Perl notes for Mac OS X perlmint Perl notes for MiNT perlmpeix Perl notes for MPE/iX - perlnetware Perl notes for NetWare + perlnetware Perl notes for NetWare perlos2 Perl notes for OS/2 perlos390 Perl notes for OS/390 perlos400 Perl notes for OS/400 @@ -182,7 +181,7 @@ For ease of access, the Perl manual has been split up into several sections. perlqnx Perl notes for QNX perlsolaris Perl notes for Solaris perltru64 Perl notes for Tru64 - perluts Perl notes for UTS + perluts Perl notes for UTS perlvmesa Perl notes for VM/ESA perlvms Perl notes for VMS perlvos Perl notes for Stratus VOS diff --git a/pod/perltoc.pod b/pod/perltoc.pod index 984abdb16c..bd4d0b0a34 100644 --- a/pod/perltoc.pod +++ b/pod/perltoc.pod @@ -103,6 +103,664 @@ Parentheses for capturing, Other regexp features =back +=head2 perlreftut - Mark's very short tutorial about references + +=over 4 + +=item DESCRIPTION + +=item Who Needs Complicated Data Structures? + +=item The Solution + +=item Syntax + +=over 4 + +=item Making References + +=item Using References + +=item An Example + +=item Arrow Rule + +=back + +=item Solution + +=item The Rest + +=item Summary + +=item Credits + +=over 4 + +=item Distribution Conditions + +=back + +=back + +=head2 perldsc - Perl Data Structures Cookbook + +=over 4 + +=item DESCRIPTION + +arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, +more elaborate constructs + +=item REFERENCES + +=item COMMON MISTAKES + +=item CAVEAT ON PRECEDENCE + +=item WHY YOU SHOULD ALWAYS C<use strict> + +=item DEBUGGING + +=item CODE EXAMPLES + +=item ARRAYS OF ARRAYS + +=over 4 + +=item Declaration of an ARRAY OF ARRAYS + +=item Generation of an ARRAY OF ARRAYS + +=item Access and Printing of an ARRAY OF ARRAYS + +=back + +=item HASHES OF ARRAYS + +=over 4 + +=item Declaration of a HASH OF ARRAYS + +=item Generation of a HASH OF ARRAYS + +=item Access and Printing of a HASH OF ARRAYS + +=back + +=item ARRAYS OF HASHES + +=over 4 + +=item Declaration of an ARRAY OF HASHES + +=item Generation of an ARRAY OF HASHES + +=item Access and Printing of an ARRAY OF HASHES + +=back + +=item HASHES OF HASHES + +=over 4 + +=item Declaration of a HASH OF HASHES + +=item Generation of a HASH OF HASHES + +=item Access and Printing of a HASH OF HASHES + +=back + +=item MORE ELABORATE RECORDS + +=over 4 + +=item Declaration of MORE ELABORATE RECORDS + +=item Declaration of a HASH OF COMPLEX RECORDS + +=item Generation of a HASH OF COMPLEX RECORDS + +=back + +=item Database Ties + +=item SEE ALSO + +=item AUTHOR + +=back + +=head2 perllol - Manipulating Arrays of Arrays in Perl + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item Declaration and Access of Arrays of Arrays + +=item Growing Your Own + +=item Access and Printing + +=item Slices + +=back + +=item SEE ALSO + +=item AUTHOR + +=back + +=head2 perlrequick - Perl regular expressions quick start + +=over 4 + +=item DESCRIPTION + +=item The Guide + +=over 4 + +=item Simple word matching + +=item Using character classes + +=item Matching this or that + +=item Grouping things and hierarchical matching + +=item Extracting matches + +=item Matching repetitions + +=item More matching + +=item Search and replace + +=item The split operator + +=back + +=item BUGS + +=item SEE ALSO + +=item AUTHOR AND COPYRIGHT + +=over 4 + +=item Acknowledgments + +=back + +=back + +=head2 perlretut - Perl regular expressions tutorial + +=over 4 + +=item DESCRIPTION + +=item Part 1: The basics + +=over 4 + +=item Simple word matching + +=item Using character classes + +=item Matching this or that + +=item Grouping things and hierarchical matching + +=item Extracting matches + +=item Matching repetitions + +=item Building a regexp + +=item Using regular expressions in Perl + +=back + +=item Part 2: Power tools + +=over 4 + +=item More on characters, strings, and character classes + +=item Compiling and saving regular expressions + +=item Embedding comments and modifiers in a regular expression + +=item Non-capturing groupings + +=item Looking ahead and looking behind + +=item Using independent subexpressions to prevent backtracking + +=item Conditional expressions + +=item A bit of magic: executing Perl code in a regular expression + +=item Pragmas and debugging + +=back + +=item BUGS + +=item SEE ALSO + +=item AUTHOR AND COPYRIGHT + +=over 4 + +=item Acknowledgments + +=back + +=back + +=head2 perlboot - Beginner's Object-Oriented Tutorial + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item If we could talk to the animals... + +=item Introducing the method invocation arrow + +=item Invoking a barnyard + +=item The extra parameter of method invocation + +=item Calling a second method to simplify things + +=item Inheriting the windpipes + +=item A few notes about @ISA + +=item Overriding the methods + +=item Starting the search from a different place + +=item The SUPER way of doing things + +=item Where we're at so far... + +=item A horse is a horse, of course of course -- or is it? + +=item Invoking an instance method + +=item Accessing the instance data + +=item How to build a horse + +=item Inheriting the constructor + +=item Making a method work with either classes or instances + +=item Adding parameters to a method + +=item More interesting instances + +=item A horse of a different color + +=item Summary + +=back + +=item SEE ALSO + +=item COPYRIGHT + +=back + +=head2 perltoot - Tom's object-oriented tutorial for perl + +=over 4 + +=item DESCRIPTION + +=item Creating a Class + +=over 4 + +=item Object Representation + +=item Class Interface + +=item Constructors and Instance Methods + +=item Planning for the Future: Better Constructors + +=item Destructors + +=item Other Object Methods + +=back + +=item Class Data + +=over 4 + +=item Accessing Class Data + +=item Debugging Methods + +=item Class Destructors + +=item Documenting the Interface + +=back + +=item Aggregation + +=item Inheritance + +=over 4 + +=item Overridden Methods + +=item Multiple Inheritance + +=item UNIVERSAL: The Root of All Objects + +=back + +=item Alternate Object Representations + +=over 4 + +=item Arrays as Objects + +=item Closures as Objects + +=back + +=item AUTOLOAD: Proxy Methods + +=over 4 + +=item Autoloaded Data Methods + +=item Inherited Autoloaded Data Methods + +=back + +=item Metaclassical Tools + +=over 4 + +=item Class::Struct + +=item Data Members as Variables + +=back + +=item NOTES + +=over 4 + +=item Object Terminology + +=back + +=item SEE ALSO + +=item AUTHOR AND COPYRIGHT + +=item COPYRIGHT + +=over 4 + +=item Acknowledgments + +=back + +=back + +=head2 perltooc - Tom's OO Tutorial for Class Data in Perl + +=over 4 + +=item DESCRIPTION + +=item Class Data in a Can + +=item Class Data as Package Variables + +=over 4 + +=item Putting All Your Eggs in One Basket + +=item Inheritance Concerns + +=item The Eponymous Meta-Object + +=item Indirect References to Class Data + +=item Monadic Classes + +=item Translucent Attributes + +=back + +=item Class Data as Lexical Variables + +=over 4 + +=item Privacy and Responsibility + +=item File-Scoped Lexicals + +=item More Inheritance Concerns + +=item Locking the Door and Throwing Away the Key + +=item Translucency Revisited + +=back + +=item NOTES + +=item SEE ALSO + +=item AUTHOR AND COPYRIGHT + +=item ACKNOWLEDGEMENTS + +=item HISTORY + +=back + +=head2 perlbot - Bag'o Object Tricks (the BOT) + +=over 4 + +=item DESCRIPTION + +=item OO SCALING TIPS + +=item INSTANCE VARIABLES + +=item SCALAR INSTANCE VARIABLES + +=item INSTANCE VARIABLE INHERITANCE + +=item OBJECT RELATIONSHIPS + +=item OVERRIDING SUPERCLASS METHODS + +=item USING RELATIONSHIP WITH SDBM + +=item THINKING OF CODE REUSE + +=item CLASS CONTEXT AND THE OBJECT + +=item INHERITING A CONSTRUCTOR + +=item DELEGATION + +=item SEE ALSO + +=back + +=head2 perlstyle - Perl style guide + +=over 4 + +=item DESCRIPTION + +=back + +=head2 perlcheat - Perl 5 Cheat Sheet + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item The sheet + +=back + +=item ACKNOWLEDGEMENTS + +=item AUTHOR + +=item SEE ALSO + +=back + +=head2 perltrap - Perl traps for the unwary + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item Awk Traps + +=item C/C++ Traps + +=item Sed Traps + +=item Shell Traps + +=item Perl Traps + +=item Perl4 to Perl5 Traps + +Discontinuance, Deprecation, and BugFix traps, Parsing Traps, Numerical +Traps, General data type traps, Context Traps - scalar, list contexts, +Precedence Traps, General Regular Expression Traps using s///, etc, +Subroutine, Signal, Sorting Traps, OS Traps, DBM Traps, Unclassified Traps + +=item Discontinuance, Deprecation, and BugFix traps + +Discontinuance, Deprecation, BugFix, Discontinuance, Discontinuance, +Discontinuance, BugFix, Discontinuance, Discontinuance, BugFix, +Discontinuance, Deprecation, Discontinuance, Discontinuance + +=item Parsing Traps + +Parsing, Parsing, Parsing, Parsing, Parsing + +=item Numerical Traps + +Numerical, Numerical, Numerical, Bitwise string ops + +=item General data type traps + +(Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String), +(Constants), (Scalars), (Variable Suicide) + +=item Context Traps - scalar, list contexts + +(list context), (scalar context), (scalar context), (list, builtin) + +=item Precedence Traps + +Precedence, Precedence, Precedence, Precedence, Precedence, Precedence, +Precedence + +=item General Regular Expression Traps using s///, etc. + +Regular Expression, Regular Expression, Regular Expression, Regular +Expression, Regular Expression, Regular Expression, Regular Expression, +Regular Expression, Regular Expression + +=item Subroutine, Signal, Sorting Traps + +(Signals), (Sort Subroutine), warn() won't let you specify a filehandle + +=item OS Traps + +(SysV), (SysV) + +=item Interpolation Traps + +Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, +Interpolation, Interpolation, Interpolation, Interpolation + +=item DBM Traps + +DBM, DBM + +=item Unclassified Traps + +C<require>/C<do> trap using returned value, C<split> on empty string with +LIMIT specified + +=back + +=back + +=head2 perldebtut - Perl debugging tutorial + +=over 4 + +=item DESCRIPTION + +=item use strict + +=item Looking at data and -w and v + +=item help + +=item Stepping through code + +=item Placeholder for a, w, t, T + +=item REGULAR EXPRESSIONS + +=item OUTPUT TIPS + +=item CGI + +=item GUIs + +=item SUMMARY + +=item SEE ALSO + +=item AUTHOR + +=item CONTRIBUTORS + +=back + =head2 perlfaq - frequently asked questions about Perl ($Date: 2003/01/31 17:37:17 $) @@ -167,12 +825,854 @@ Interaction, perlfaq9 - Networking =back -=head2 perlbook - Perl book information +=head2 perlfaq1 - General Questions About Perl ($Revision: 1.12 $, $Date: +2003/07/09 15:47:28 $) + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item What is Perl? + +=item Who supports Perl? Who develops it? Why is it free? + +=item Which version of Perl should I use? + +=item What are perl4 and perl5? + +=item What is Ponie? + +=item What is perl6? + +=item How stable is Perl? + +=item Is Perl difficult to learn? + +=item How does Perl compare with other languages like Java, Python, REXX, +Scheme, or Tcl? + +=item Can I do [task] in Perl? + +=item When shouldn't I program in Perl? + +=item What's the difference between "perl" and "Perl"? + +=item Is it a Perl program or a Perl script? + +=item What is a JAPH? + +=item Where can I get a list of Larry Wall witticisms? + +=item How can I convince my sysadmin/supervisor/employees to use version +5/5.6.1/Perl instead of some other language? + +=back + +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.20 $, +$Date: 2003/01/26 17:50:56 $) + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item What machines support Perl? Where do I get it? + +=item How can I get a binary version of Perl? + +=item I don't have a C compiler on my system. How can I compile perl? + +=item I copied the Perl binary from one machine to another, but scripts +don't work. + +=item I grabbed the sources and tried to compile but gdbm/dynamic +loading/malloc/linking/... failed. How do I make it work? + +=item What modules and extensions are available for Perl? What is CPAN? +What does CPAN/src/... mean? + +=item Is there an ISO or ANSI certified version of Perl? + +=item Where can I get information on Perl? + +=item What are the Perl newsgroups on Usenet? Where do I post questions? + +=item Where should I post source code? + +=item Perl Books + +References, Tutorials, Task-Oriented, Special Topics + +=item Perl in Magazines + +=item Perl on the Net: FTP and WWW Access + +=item What mailing lists are there for Perl? + +=item Archives of comp.lang.perl.misc + +=item Where can I buy a commercial version of Perl? + +=item Where do I send bug reports? + +=item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? + +=back + +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq3 - Programming Tools ($Revision: 1.33 $, $Date: 2003/01/31 +17:34:56 $) + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item How do I do (anything)? + +=item How can I use Perl interactively? + +=item Is there a Perl shell? + +=item How do I find which modules are installed on my system? + +=item How do I debug my Perl programs? + +=item How do I profile my Perl programs? + +=item How do I cross-reference my Perl programs? + +=item Is there a pretty-printer (formatter) for Perl? + +=item Is there a ctags for Perl? + +=item Is there an IDE or Windows Perl Editor? + +Komodo, The Object System, Open Perl IDE, PerlBuilder, visiPerl+, OptiPerl, +GNU Emacs, MicroEMACS, XEmacs, Jed, Elvis, Vile, Vim, Codewright, +MultiEdit, SlickEdit, Bash, Ksh, Tcsh, Zsh, BBEdit and BBEdit Lite, Alpha + +=item Where can I get Perl macros for vi? + +=item Where can I get perl-mode for emacs? + +=item How can I use curses with Perl? + +=item How can I use X or Tk with Perl? + +=item How can I generate simple menus without using CGI or Tk? + +=item How can I make my Perl program run faster? + +=item How can I make my Perl program take less memory? + +Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and +stringification, Pass by reference, Tie large variables to disk + +=item Is it safe to return a reference to local or lexical data? + +=item How can I free an array or hash so my program shrinks? + +=item How can I make my CGI script more efficient? + +=item How can I hide the source for my Perl program? + +=item How can I compile my Perl program into byte code or C? + +=item How can I compile Perl into Java? + +=item How can I get C<#!perl> to work on [MS-DOS,NT,...]? + +=item Can I write useful Perl programs on the command line? + +=item Why don't Perl one-liners work on my DOS/Mac/VMS system? + +=item Where can I learn about CGI or Web programming in Perl? + +=item Where can I learn about object-oriented Perl programming? + +=item Where can I learn about linking C with Perl? [h2xs, xsubpp] + +=item I've read perlembed, perlguts, etc., but I can't embed perl in +my C program; what am I doing wrong? + +=item When I tried to run my script, I got this message. What does it mean? + +=item What's MakeMaker? + +=back + +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq4 - Data Manipulation ($Revision: 1.44 $, $Date: 2003/07/28 +17:35:21 $) + +=over 4 + +=item DESCRIPTION + +=item Data: Numbers + +=over 4 + +=item Why am I getting long decimals (eg, 19.9499999999999) instead of the +numbers I should be getting (eg, 19.95)? + +=item Why isn't my octal data interpreted correctly? + +=item Does Perl have a round() function? What about ceil() and floor()? +Trig functions? + +=item How do I convert between numeric representations? + +How do I convert hexadecimal into decimal, How do I convert from decimal to +hexadecimal, How do I convert from octal to decimal, How do I convert from +decimal to octal, How do I convert from binary to decimal, How do I convert +from decimal to binary + +=item Why doesn't & work the way I want it to? + +=item How do I multiply matrices? + +=item How do I perform an operation on a series of integers? + +=item How can I output Roman numerals? + +=item Why aren't my random numbers random? + +=item How do I get a random number between X and Y? + +=back + +=item Data: Dates + +=over 4 + +=item How do I find the day or week of the year? + +=item How can I compare two dates and find the difference? + +=item How can I take a string and turn it into epoch seconds? + +=item How can I find the Julian Day? + +=item How do I find yesterday's date? + +=item Does Perl have a Year 2000 problem? Is Perl Y2K compliant? + +=back + +=item Data: Strings + +=over 4 + +=item How do I validate input? + +=item How do I unescape a string? + +=item How do I remove consecutive pairs of characters? + +=item How do I expand function calls in a string? + +=item How do I find matching/nesting anything? + +=item How do I reverse a string? + +=item How do I expand tabs in a string? + +=item How do I reformat a paragraph? + +=item How can I access or change N characters of a string? + +=item How do I change the Nth occurrence of something? + +=item How can I count the number of occurrences of a substring within a +string? + +=item How do I capitalize all the words on one line? + +=item How can I split a [character] delimited string except when inside +[character]? + +=item How do I strip blank space from the beginning/end of a string? + +=item How do I pad a string with blanks or pad a number with zeroes? + +=item How do I extract selected columns from a string? + +=item How do I find the soundex value of a string? + +=item How can I expand variables in text strings? + +=item What's wrong with always quoting "$vars"? + +=item Why don't my E<lt>E<lt>HERE documents work? + +There must be no space after the E<lt>E<lt> part, There (probably) should +be a semicolon at the end, You can't (easily) have any space in front of +the tag + +=back + +=item Data: Arrays + +=over 4 + +=item What is the difference between a list and an array? + +=item What is the difference between $array[1] and @array[1]? + +=item How can I remove duplicate elements from a list or array? + +a), b), c), d), e) + +=item How can I tell whether a certain element is contained in a list or +array? + +=item How do I compute the difference of two arrays? How do I compute the +intersection of two arrays? + +=item How do I test whether two arrays or hashes are equal? + +=item How do I find the first array element for which a condition is true? + +=item How do I handle linked lists? + +=item How do I handle circular lists? + +=item How do I shuffle an array randomly? + +=item How do I process/modify each element of an array? + +=item How do I select a random element from an array? + +=item How do I permute N elements of a list? + +=item How do I sort an array by (anything)? + +=item How do I manipulate arrays of bits? + +=item Why does defined() return true on empty arrays and hashes? + +=back + +=item Data: Hashes (Associative Arrays) + +=over 4 + +=item How do I process an entire hash? + +=item What happens if I add or remove keys from a hash while iterating over +it? + +=item How do I look up a hash element by value? + +=item How can I know how many entries are in a hash? + +=item How do I sort a hash (optionally by value instead of key)? + +=item How can I always keep my hash sorted? + +=item What's the difference between "delete" and "undef" with hashes? + +=item Why don't my tied hashes make the defined/exists distinction? + +=item How do I reset an each() operation part-way through? + +=item How can I get the unique keys from two hashes? + +=item How can I store a multidimensional array in a DBM file? + +=item How can I make my hash remember the order I put elements into it? + +=item Why does passing a subroutine an undefined element in a hash create +it? + +=item How can I make the Perl equivalent of a C structure/C++ class/hash or +array of hashes or arrays? + +=item How can I use a reference as a hash key? + +=back + +=item Data: Misc + +=over 4 + +=item How do I handle binary data correctly? + +=item How do I determine whether a scalar is a number/whole/integer/float? + +=item How do I keep persistent data across program calls? + +=item How do I print out or copy a recursive data structure? + +=item How do I define methods for every class/object? + +=item How do I verify a credit card checksum? + +=item How do I pack arrays of doubles or floats for XS code? + +=back + +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq5 - Files and Formats ($Revision: 1.28 $, $Date: 2003/01/26 +17:45:46 $) + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item How do I flush/unbuffer an output filehandle? Why must I do this? + +=item How do I change one line in a file/delete a line in a file/insert a +line in the middle of a file/append to the beginning of a file? + +=item How do I count the number of lines in a file? + +=item How can I use Perl's C<-i> option from within a program? + +=item How do I make a temporary file name? + +=item How can I manipulate fixed-record-length files? + +=item How can I make a filehandle local to a subroutine? How do I pass +filehandles between subroutines? How do I make an array of filehandles? + +=item How can I use a filehandle indirectly? + +=item How can I set up a footer format to be used with write()? + +=item How can I write() into a string? + +=item How can I output my numbers with commas added? + +=item How can I translate tildes (~) in a filename? + +=item How come when I open a file read-write it wipes it out? + +=item Why do I sometimes get an "Argument list too long" when I use +E<lt>*E<gt>? + +=item Is there a leak/bug in glob()? + +=item How can I open a file with a leading ">" or trailing blanks? + +=item How can I reliably rename a file? + +=item How can I lock a file? + +=item Why can't I just open(FH, "E<gt>file.lock")? + +=item I still don't get locking. I just want to increment the number in +the file. How can I do this? + +=item All I want to do is append a small amount of text to the end of a +file. Do I still have to use locking? + +=item How do I randomly update a binary file? + +=item How do I get a file's timestamp in perl? + +=item How do I set a file's timestamp in perl? + +=item How do I print to more than one file at once? + +=item How can I read in an entire file all at once? + +=item How can I read in a file by paragraphs? + +=item How can I read a single character from a file? From the keyboard? + +=item How can I tell whether there's a character waiting on a filehandle? + +=item How do I do a C<tail -f> in perl? + +=item How do I dup() a filehandle in Perl? + +=item How do I close a file descriptor by number? + +=item Why can't I use "C:\temp\foo" in DOS paths? Why doesn't +`C:\temp\foo.exe` work? + +=item Why doesn't glob("*.*") get all the files? + +=item Why does Perl let me delete read-only files? Why does C<-i> clobber +protected files? Isn't this a bug in Perl? + +=item How do I select a random line from a file? + +=item Why do I get weird spaces when I print an array of lines? + +=back + +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq6 - Regular Expressions ($Revision: 1.20 $, $Date: 2003/01/03 +20:05:28 $) + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item How can I hope to use regular expressions without creating illegible +and unmaintainable code? + +Comments Outside the Regex, Comments Inside the Regex, Different Delimiters + +=item I'm having trouble matching over more than one line. What's wrong? + +=item How can I pull out lines between two patterns that are themselves on +different lines? + +=item I put a regular expression into $/ but it didn't work. What's wrong? + +=item How do I substitute case insensitively on the LHS while preserving +case on the RHS? + +=item How can I make C<\w> match national character sets? + +=item How can I match a locale-smart version of C</[a-zA-Z]/>? + +=item How can I quote a variable to use in a regex? + +=item What is C</o> really for? + +=item How do I use a regular expression to strip C style comments from a +file? + +=item Can I use Perl regular expressions to match balanced text? + +=item What does it mean that regexes are greedy? How can I get around it? + +=item How do I process each word on each line? + +=item How can I print out a word-frequency or line-frequency summary? + +=item How can I do approximate matching? + +=item How do I efficiently match many regular expressions at once? + +=item Why don't word-boundary searches with C<\b> work for me? + +=item Why does using $&, $`, or $' slow my program down? + +=item What good is C<\G> in a regular expression? + +=item Are Perl regexes DFAs or NFAs? Are they POSIX compliant? + +=item What's wrong with using grep or map in a void context? + +=item How can I match strings with multibyte characters? + +=item How do I match a pattern that is supplied by the user? + +=back + +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.15 $, $Date: +2003/07/24 02:17:21 $) + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item Can I get a BNF/yacc/RE for the Perl language? + +=item What are all these $@%&* punctuation signs, and how do I know when to +use them? + +=item Do I always/never have to quote my strings or use semicolons and +commas? + +=item How do I skip some return values? + +=item How do I temporarily block warnings? + +=item What's an extension? + +=item Why do Perl operators have different precedence than C operators? + +=item How do I declare/create a structure? + +=item How do I create a module? + +=item How do I create a class? + +=item How can I tell if a variable is tainted? + +=item What's a closure? + +=item What is variable suicide and how can I prevent it? + +=item How can I pass/return a {Function, FileHandle, Array, Hash, Method, +Regex}? + +Passing Variables and Functions, Passing Filehandles, Passing Regexes, +Passing Methods + +=item How do I create a static variable? + +=item What's the difference between dynamic and lexical (static) scoping? +Between local() and my()? + +=item How can I access a dynamic variable while a similarly named lexical +is in scope? + +=item What's the difference between deep and shallow binding? + +=item Why doesn't "my($foo) = E<lt>FILEE<gt>;" work right? + +=item How do I redefine a builtin function, operator, or method? + +=item What's the difference between calling a function as &foo and foo()? + +=item How do I create a switch or case statement? + +=item How can I catch accesses to undefined variables, functions, or +methods? + +=item Why can't a method included in this same file be found? + +=item How can I find out my current package? + +=item How can I comment out a large block of perl code? + +=item How do I clear a package? + +=item How can I use a variable as a variable name? + +=item What does "bad interpreter" mean? + +=back + +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq8 - System Interaction ($Revision: 1.17 $, $Date: 2003/01/26 +17:44:04 $) + +=over 4 + +=item DESCRIPTION + +=over 4 + +=item How do I find out which operating system I'm running under? + +=item How come exec() doesn't return? + +=item How do I do fancy stuff with the keyboard/screen/mouse? + +Keyboard, Screen, Mouse + +=item How do I print something out in color? + +=item How do I read just one key without waiting for a return key? + +=item How do I check whether input is ready on the keyboard? + +=item How do I clear the screen? + +=item How do I get the screen size? + +=item How do I ask the user for a password? + +=item How do I read and write the serial port? + +lockfiles, open mode, end of line, flushing output, non-blocking input + +=item How do I decode encrypted password files? + +=item How do I start a process in the background? + +STDIN, STDOUT, and STDERR are shared, Signals, Zombies + +=item How do I trap control characters/signals? + +=item How do I modify the shadow password file on a Unix system? + +=item How do I set the time and date? + +=item How can I sleep() or alarm() for under a second? + +=item How can I measure time under a second? + +=item How can I do an atexit() or setjmp()/longjmp()? (Exception handling) + +=item Why doesn't my sockets program work under System V (Solaris)? What +does the error message "Protocol not supported" mean? + +=item How can I call my system's unique C functions from Perl? + +=item Where do I get the include files to do ioctl() or syscall()? + +=item Why do setuid perl scripts complain about kernel problems? + +=item How can I open a pipe both to and from a command? + +=item Why can't I get the output of a command with system()? + +=item How can I capture STDERR from an external command? + +=item Why doesn't open() return an error when a pipe open fails? + +=item What's wrong with using backticks in a void context? + +=item How can I call backticks without shell processing? + +=item Why can't my script read from STDIN after I gave it EOF (^D on Unix, +^Z on MS-DOS)? + +=item How can I convert my shell script to perl? + +=item Can I use perl to run a telnet or ftp session? + +=item How can I write expect in Perl? + +=item Is there a way to hide perl's command line from programs such as +"ps"? + +=item I {changed directory, modified my environment} in a perl script. How +come the change disappeared when I exited the script? How do I get my +changes to be visible? + +Unix + +=item How do I close a process's filehandle without waiting for it to +complete? + +=item How do I fork a daemon process? + +=item How do I find out if I'm running interactively or not? + +=item How do I timeout a slow event? + +=item How do I set CPU limits? + +=item How do I avoid zombies on a Unix system? + +=item How do I use an SQL database? + +=item How do I make a system() exit on control-C? + +=item How do I open a file without blocking? + +=item How do I install a module from CPAN? + +=item What's the difference between require and use? + +=item How do I keep my own module/library directory? + +=item How do I add the directory my program lives in to the module/library +search path? + +=item How do I add a directory to my include path at runtime? + +=item What is socket.ph and where do I get it? + +=back + +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq9 - Networking ($Revision: 1.15 $, $Date: 2003/01/31 17:36:57 +$) =over 4 =item DESCRIPTION +=over 4 + +=item What is the correct form of response from a CGI script? + +=item My CGI script runs from the command line but not the browser. (500 +Server Error) + +=item How can I get better error messages from a CGI program? + +=item How do I remove HTML from a string? + +=item How do I extract URLs? + +=item How do I download a file from the user's machine? How do I open a +file on another machine? + +=item How do I make a pop-up menu in HTML? + +=item How do I fetch an HTML file? + +=item How do I automate an HTML form submission? + +=item How do I decode or create those %-encodings on the web? + +=item How do I redirect to another page? + +=item How do I put a password on my web pages? + +=item How do I edit my .htpasswd and .htgroup files with Perl? + +=item How do I make sure users can't enter values into a form that cause my +CGI script to do bad things? + +=item How do I parse a mail header? + +=item How do I decode a CGI form? + +=item How do I check a valid mail address? + +=item How do I decode a MIME/BASE64 string? + +=item How do I return the user's mail address? + +=item How do I send mail? + +=item How do I use MIME to make an attachment to a mail message? + +=item How do I read mail? + +=item How do I find out my hostname/domainname/IP address? + +=item How do I fetch a news article or the active newsgroups? + +=item How do I fetch/put an FTP file? + +=item How can I do RPC in Perl? + +=back + +=item AUTHOR AND COPYRIGHT + =back =head2 perlsyn - Perl syntax @@ -485,176 +1985,153 @@ PID,FLAGS, wantarray, warn LIST, write FILEHANDLE, write EXPR, write, y/// =back -=head2 perlreftut - Mark's very short tutorial about references +=head2 perlopentut - tutorial on opening things in Perl =over 4 =item DESCRIPTION -=item Who Needs Complicated Data Structures? - -=item The Solution - -=item Syntax +=item Open E<agrave> la shell =over 4 -=item Making References - -=item Using References +=item Simple Opens -=item An Example +=item Indirect Filehandles -=item Arrow Rule +=item Pipe Opens -=back +=item The Minus File -=item Solution +=item Mixing Reads and Writes -=item The Rest +=item Filters -=item Summary +=back -=item Credits +=item Open E<agrave> la C =over 4 -=item Distribution Conditions - -=back +=item Permissions E<agrave> la mode =back -=head2 perldsc - Perl Data Structures Cookbook +=item Obscure Open Tricks =over 4 -=item DESCRIPTION - -arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, -more elaborate constructs - -=item REFERENCES +=item Re-Opening Files (dups) -=item COMMON MISTAKES +=item Dispelling the Dweomer -=item CAVEAT ON PRECEDENCE +=item Paths as Opens -=item WHY YOU SHOULD ALWAYS C<use strict> +=item Single Argument Open -=item DEBUGGING +=item Playing with STDIN and STDOUT -=item CODE EXAMPLES +=back -=item ARRAYS OF ARRAYS +=item Other I/O Issues =over 4 -=item Declaration of an ARRAY OF ARRAYS +=item Opening Non-File Files -=item Generation of an ARRAY OF ARRAYS +=item Opening Named Pipes -=item Access and Printing of an ARRAY OF ARRAYS +=item Opening Sockets -=back +=item Binary Files -=item HASHES OF ARRAYS +=item File Locking -=over 4 +=item IO Layers -=item Declaration of a HASH OF ARRAYS +=back -=item Generation of a HASH OF ARRAYS +=item SEE ALSO -=item Access and Printing of a HASH OF ARRAYS +=item AUTHOR and COPYRIGHT + +=item HISTORY =back -=item ARRAYS OF HASHES +=head2 perlpacktut - tutorial on C<pack> and C<unpack> =over 4 -=item Declaration of an ARRAY OF HASHES - -=item Generation of an ARRAY OF HASHES +=item DESCRIPTION -=item Access and Printing of an ARRAY OF HASHES +=item The Basic Principle -=back +=item Packing Text -=item HASHES OF HASHES +=item Packing Numbers =over 4 -=item Declaration of a HASH OF HASHES +=item Integers -=item Generation of a HASH OF HASHES +=item Unpacking a Stack Frame -=item Access and Printing of a HASH OF HASHES +=item How to Eat an Egg on a Net + +=item Floating point Numbers =back -=item MORE ELABORATE RECORDS +=item Exotic Templates =over 4 -=item Declaration of MORE ELABORATE RECORDS - -=item Declaration of a HASH OF COMPLEX RECORDS - -=item Generation of a HASH OF COMPLEX RECORDS +=item Bit Strings -=back +=item Uuencoding -=item Database Ties +=item Doing Sums -=item SEE ALSO +=item Unicode -=item AUTHOR +=item Another Portable Binary Encoding =back -=head2 perlrequick - Perl regular expressions quick start - -=over 4 - -=item DESCRIPTION +=item Template Grouping -=item The Guide +=item Lengths and Widths =over 4 -=item Simple word matching - -=item Using character classes - -=item Matching this or that +=item String Lengths -=item Grouping things and hierarchical matching +=item Dynamic Templates -=item Extracting matches +=item Counting Repetitions -=item Matching repetitions +=back -=item More matching +=item Packing and Unpacking C Structures -=item Search and replace +=over 4 -=item The split operator +=item The Alignment Pit -=back +=item Alignment, Take 2 -=item BUGS +=item Alignment, Take 3 -=item SEE ALSO +=item Pointers for How to Use Them -=item AUTHOR AND COPYRIGHT +=back -=over 4 +=item Pack Recipes -=item Acknowledgments +=item Funnies Section -=back +=item Authors =back @@ -739,119 +2216,6 @@ First:, Second:, Third:, Fourth:, Fifth:, Sixth: =back -=head2 perlstyle - Perl style guide - -=over 4 - -=item DESCRIPTION - -=back - -=head2 perltrap - Perl traps for the unwary - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item Awk Traps - -=item C/C++ Traps - -=item Sed Traps - -=item Shell Traps - -=item Perl Traps - -=item Perl4 to Perl5 Traps - -Discontinuance, Deprecation, and BugFix traps, Parsing Traps, Numerical -Traps, General data type traps, Context Traps - scalar, list contexts, -Precedence Traps, General Regular Expression Traps using s///, etc, -Subroutine, Signal, Sorting Traps, OS Traps, DBM Traps, Unclassified Traps - -=item Discontinuance, Deprecation, and BugFix traps - -Discontinuance, Deprecation, BugFix, Discontinuance, Discontinuance, -Discontinuance, BugFix, Discontinuance, Discontinuance, BugFix, -Discontinuance, Deprecation, Discontinuance, Discontinuance - -=item Parsing Traps - -Parsing, Parsing, Parsing, Parsing, Parsing - -=item Numerical Traps - -Numerical, Numerical, Numerical, Bitwise string ops - -=item General data type traps - -(Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String), -(Constants), (Scalars), (Variable Suicide) - -=item Context Traps - scalar, list contexts - -(list context), (scalar context), (scalar context), (list, builtin) - -=item Precedence Traps - -Precedence, Precedence, Precedence, Precedence, Precedence, Precedence, -Precedence - -=item General Regular Expression Traps using s///, etc. - -Regular Expression, Regular Expression, Regular Expression, Regular -Expression, Regular Expression, Regular Expression, Regular Expression, -Regular Expression, Regular Expression - -=item Subroutine, Signal, Sorting Traps - -(Signals), (Sort Subroutine), warn() won't let you specify a filehandle - -=item OS Traps - -(SysV), (SysV) - -=item Interpolation Traps - -Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, -Interpolation, Interpolation, Interpolation, Interpolation - -=item DBM Traps - -DBM, DBM - -=item Unclassified Traps - -C<require>/C<do> trap using returned value, C<split> on empty string with -LIMIT specified - -=back - -=back - -=head2 perlcheat - Perl 5 Cheat Sheet - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item The sheet - -=back - -=item ACKNOWLEDGEMENTS - -=item AUTHOR - -=item SEE ALSO - -=back - =head2 perlrun - how to execute the Perl interpreter =over 4 @@ -934,40 +2298,6 @@ B<-w>, B<-W>, B<-X> =back -=head2 perldebtut - Perl debugging tutorial - -=over 4 - -=item DESCRIPTION - -=item use strict - -=item Looking at data and -w and v - -=item help - -=item Stepping through code - -=item Placeholder for a, w, t, T - -=item REGULAR EXPRESSIONS - -=item OUTPUT TIPS - -=item CGI - -=item GUIs - -=item SUMMARY - -=item SEE ALSO - -=item AUTHOR - -=item CONTRIBUTORS - -=back - =head2 perldebug - Perl debugging =over 4 @@ -1081,246 +2411,6 @@ $SIG{expr} =back -=head2 perllol - Manipulating Arrays of Arrays in Perl - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item Declaration and Access of Arrays of Arrays - -=item Growing Your Own - -=item Access and Printing - -=item Slices - -=back - -=item SEE ALSO - -=item AUTHOR - -=back - -=head2 perlopentut - tutorial on opening things in Perl - -=over 4 - -=item DESCRIPTION - -=item Open E<agrave> la shell - -=over 4 - -=item Simple Opens - -=item Indirect Filehandles - -=item Pipe Opens - -=item The Minus File - -=item Mixing Reads and Writes - -=item Filters - -=back - -=item Open E<agrave> la C - -=over 4 - -=item Permissions E<agrave> la mode - -=back - -=item Obscure Open Tricks - -=over 4 - -=item Re-Opening Files (dups) - -=item Dispelling the Dweomer - -=item Paths as Opens - -=item Single Argument Open - -=item Playing with STDIN and STDOUT - -=back - -=item Other I/O Issues - -=over 4 - -=item Opening Non-File Files - -=item Opening Named Pipes - -=item Opening Sockets - -=item Binary Files - -=item File Locking - -=item IO Layers - -=back - -=item SEE ALSO - -=item AUTHOR and COPYRIGHT - -=item HISTORY - -=back - -=head2 perlpacktut - tutorial on C<pack> and C<unpack> - -=over 4 - -=item DESCRIPTION - -=item The Basic Principle - -=item Packing Text - -=item Packing Numbers - -=over 4 - -=item Integers - -=item Unpacking a Stack Frame - -=item How to Eat an Egg on a Net - -=item Floating point Numbers - -=back - -=item Exotic Templates - -=over 4 - -=item Bit Strings - -=item Uuencoding - -=item Doing Sums - -=item Unicode - -=item Another Portable Binary Encoding - -=back - -=item Template Grouping - -=item Lengths and Widths - -=over 4 - -=item String Lengths - -=item Dynamic Templates - -=item Counting Repetitions - -=back - -=item Packing and Unpacking C Structures - -=over 4 - -=item The Alignment Pit - -=item Alignment, Take 2 - -=item Alignment, Take 3 - -=item Pointers for How to Use Them - -=back - -=item Pack Recipes - -=item Funnies Section - -=item Authors - -=back - -=head2 perlretut - Perl regular expressions tutorial - -=over 4 - -=item DESCRIPTION - -=item Part 1: The basics - -=over 4 - -=item Simple word matching - -=item Using character classes - -=item Matching this or that - -=item Grouping things and hierarchical matching - -=item Extracting matches - -=item Matching repetitions - -=item Building a regexp - -=item Using regular expressions in Perl - -=back - -=item Part 2: Power tools - -=over 4 - -=item More on characters, strings, and character classes - -=item Compiling and saving regular expressions - -=item Embedding comments and modifiers in a regular expression - -=item Non-capturing groupings - -=item Looking ahead and looking behind - -=item Using independent subexpressions to prevent backtracking - -=item Conditional expressions - -=item A bit of magic: executing Perl code in a regular expression - -=item Pragmas and debugging - -=back - -=item BUGS - -=item SEE ALSO - -=item AUTHOR AND COPYRIGHT - -=over 4 - -=item Acknowledgments - -=back - -=back - =head2 perlre - Perl regular expressions =over 4 @@ -1461,222 +2551,6 @@ C<(?(condition)yes-pattern|no-pattern)> =back -=head2 perlboot - Beginner's Object-Oriented Tutorial - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item If we could talk to the animals... - -=item Introducing the method invocation arrow - -=item Invoking a barnyard - -=item The extra parameter of method invocation - -=item Calling a second method to simplify things - -=item Inheriting the windpipes - -=item A few notes about @ISA - -=item Overriding the methods - -=item Starting the search from a different place - -=item The SUPER way of doing things - -=item Where we're at so far... - -=item A horse is a horse, of course of course -- or is it? - -=item Invoking an instance method - -=item Accessing the instance data - -=item How to build a horse - -=item Inheriting the constructor - -=item Making a method work with either classes or instances - -=item Adding parameters to a method - -=item More interesting instances - -=item A horse of a different color - -=item Summary - -=back - -=item SEE ALSO - -=item COPYRIGHT - -=back - -=head2 perltoot - Tom's object-oriented tutorial for perl - -=over 4 - -=item DESCRIPTION - -=item Creating a Class - -=over 4 - -=item Object Representation - -=item Class Interface - -=item Constructors and Instance Methods - -=item Planning for the Future: Better Constructors - -=item Destructors - -=item Other Object Methods - -=back - -=item Class Data - -=over 4 - -=item Accessing Class Data - -=item Debugging Methods - -=item Class Destructors - -=item Documenting the Interface - -=back - -=item Aggregation - -=item Inheritance - -=over 4 - -=item Overridden Methods - -=item Multiple Inheritance - -=item UNIVERSAL: The Root of All Objects - -=back - -=item Alternate Object Representations - -=over 4 - -=item Arrays as Objects - -=item Closures as Objects - -=back - -=item AUTOLOAD: Proxy Methods - -=over 4 - -=item Autoloaded Data Methods - -=item Inherited Autoloaded Data Methods - -=back - -=item Metaclassical Tools - -=over 4 - -=item Class::Struct - -=item Data Members as Variables - -=back - -=item NOTES - -=over 4 - -=item Object Terminology - -=back - -=item SEE ALSO - -=item AUTHOR AND COPYRIGHT - -=item COPYRIGHT - -=over 4 - -=item Acknowledgments - -=back - -=back - -=head2 perltooc - Tom's OO Tutorial for Class Data in Perl - -=over 4 - -=item DESCRIPTION - -=item Class Data in a Can - -=item Class Data as Package Variables - -=over 4 - -=item Putting All Your Eggs in One Basket - -=item Inheritance Concerns - -=item The Eponymous Meta-Object - -=item Indirect References to Class Data - -=item Monadic Classes - -=item Translucent Attributes - -=back - -=item Class Data as Lexical Variables - -=over 4 - -=item Privacy and Responsibility - -=item File-Scoped Lexicals - -=item More Inheritance Concerns - -=item Locking the Door and Throwing Away the Key - -=item Translucency Revisited - -=back - -=item NOTES - -=item SEE ALSO - -=item AUTHOR AND COPYRIGHT - -=item ACKNOWLEDGEMENTS - -=item HISTORY - -=back - =head2 perlobj - Perl objects =over 4 @@ -1711,38 +2585,6 @@ isa(CLASS), can(METHOD), VERSION( [NEED] ) =back -=head2 perlbot - Bag'o Object Tricks (the BOT) - -=over 4 - -=item DESCRIPTION - -=item OO SCALING TIPS - -=item INSTANCE VARIABLES - -=item SCALAR INSTANCE VARIABLES - -=item INSTANCE VARIABLE INHERITANCE - -=item OBJECT RELATIONSHIPS - -=item OVERRIDING SUPERCLASS METHODS - -=item USING RELATIONSHIP WITH SDBM - -=item THINKING OF CODE REUSE - -=item CLASS CONTEXT AND THE OBJECT - -=item INHERITING A CONSTRUCTOR - -=item DELEGATION - -=item SEE ALSO - -=back - =head2 perltie - how to hide an object class in a simple variable =over 4 @@ -1792,6 +2634,33 @@ DESTROY this =back +=head2 perldbmfilter - Perl DBM Filters + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +B<filter_store_key>, B<filter_store_value>, B<filter_fetch_key>, +B<filter_fetch_value> + +=over 4 + +=item The Filter + +=item An Example -- the NULL termination problem. + +=item Another Example -- Key is a C int. + +=back + +=item SEE ALSO + +=item AUTHOR + +=back + =head2 perlipc - Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores) @@ -2692,31 +3561,6 @@ chcp, dataset access, OS/390, z/OS iconv, locales =back -=head2 perlmodinstall - Installing CPAN Modules - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item PREAMBLE - -B<DECOMPRESS> the file, B<UNPACK> the file into a directory, B<BUILD> the -module (sometimes unnecessary), B<INSTALL> the module - -=back - -=item PORTABILITY - -=item HEY - -=item AUTHOR - -=item COPYRIGHT - -=back - =head2 perlmodlib - constructing new Perl modules and finding existing ones =over 4 @@ -2971,92 +3815,7 @@ engineering =back -=head2 perlnewmod - preparing a new module for distribution - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item Warning - -=item What should I make into a module? - -=item Step-by-step: Preparing the ground - -Look around, Check it's new, Discuss the need, Choose a name, Check again - -=item Step-by-step: Making the module - -Start with F<h2xs>, Use L<strict|strict> and L<warnings|warnings>, Use -L<Carp|Carp>, Use L<Exporter|Exporter> - wisely!, Use L<plain old -documentation|perlpod>, Write tests, Write the README - -=item Step-by-step: Distributing your module - -Get a CPAN user ID, C<perl Makefile.PL; make test; make dist>, Upload the -tarball, Announce to the modules list, Announce to clpa, Fix bugs! - -=back - -=item AUTHOR - -=item SEE ALSO - -=back - -=head2 perlfaq1 - General Questions About Perl ($Revision: 1.12 $, $Date: -2003/07/09 15:47:28 $) - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item What is Perl? - -=item Who supports Perl? Who develops it? Why is it free? - -=item Which version of Perl should I use? - -=item What are perl4 and perl5? - -=item What is Ponie? - -=item What is perl6? - -=item How stable is Perl? - -=item Is Perl difficult to learn? - -=item How does Perl compare with other languages like Java, Python, REXX, -Scheme, or Tcl? - -=item Can I do [task] in Perl? - -=item When shouldn't I program in Perl? - -=item What's the difference between "perl" and "Perl"? - -=item Is it a Perl program or a Perl script? - -=item What is a JAPH? - -=item Where can I get a list of Larry Wall witticisms? - -=item How can I convince my sysadmin/supervisor/employees to use version -5/5.6.1/Perl instead of some other language? - -=back - -=item AUTHOR AND COPYRIGHT - -=back - -=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.20 $, -$Date: 2003/01/26 17:50:56 $) +=head2 perlmodinstall - Installing CPAN Modules =over 4 @@ -3064,453 +3823,59 @@ $Date: 2003/01/26 17:50:56 $) =over 4 -=item What machines support Perl? Where do I get it? - -=item How can I get a binary version of Perl? - -=item I don't have a C compiler on my system. How can I compile perl? - -=item I copied the Perl binary from one machine to another, but scripts -don't work. - -=item I grabbed the sources and tried to compile but gdbm/dynamic -loading/malloc/linking/... failed. How do I make it work? - -=item What modules and extensions are available for Perl? What is CPAN? -What does CPAN/src/... mean? - -=item Is there an ISO or ANSI certified version of Perl? - -=item Where can I get information on Perl? - -=item What are the Perl newsgroups on Usenet? Where do I post questions? - -=item Where should I post source code? - -=item Perl Books - -References, Tutorials, Task-Oriented, Special Topics - -=item Perl in Magazines - -=item Perl on the Net: FTP and WWW Access - -=item What mailing lists are there for Perl? - -=item Archives of comp.lang.perl.misc - -=item Where can I buy a commercial version of Perl? - -=item Where do I send bug reports? - -=item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? - -=back +=item PREAMBLE -=item AUTHOR AND COPYRIGHT +B<DECOMPRESS> the file, B<UNPACK> the file into a directory, B<BUILD> the +module (sometimes unnecessary), B<INSTALL> the module =back -=head2 perlfaq3 - Programming Tools ($Revision: 1.33 $, $Date: 2003/01/31 -17:34:56 $) - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item How do I do (anything)? - -=item How can I use Perl interactively? - -=item Is there a Perl shell? - -=item How do I find which modules are installed on my system? - -=item How do I debug my Perl programs? - -=item How do I profile my Perl programs? - -=item How do I cross-reference my Perl programs? - -=item Is there a pretty-printer (formatter) for Perl? - -=item Is there a ctags for Perl? - -=item Is there an IDE or Windows Perl Editor? - -Komodo, The Object System, Open Perl IDE, PerlBuilder, visiPerl+, OptiPerl, -GNU Emacs, MicroEMACS, XEmacs, Jed, Elvis, Vile, Vim, Codewright, -MultiEdit, SlickEdit, Bash, Ksh, Tcsh, Zsh, BBEdit and BBEdit Lite, Alpha - -=item Where can I get Perl macros for vi? - -=item Where can I get perl-mode for emacs? - -=item How can I use curses with Perl? - -=item How can I use X or Tk with Perl? - -=item How can I generate simple menus without using CGI or Tk? - -=item How can I make my Perl program run faster? - -=item How can I make my Perl program take less memory? - -Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and -stringification, Pass by reference, Tie large variables to disk - -=item Is it safe to return a reference to local or lexical data? - -=item How can I free an array or hash so my program shrinks? - -=item How can I make my CGI script more efficient? - -=item How can I hide the source for my Perl program? - -=item How can I compile my Perl program into byte code or C? - -=item How can I compile Perl into Java? - -=item How can I get C<#!perl> to work on [MS-DOS,NT,...]? - -=item Can I write useful Perl programs on the command line? - -=item Why don't Perl one-liners work on my DOS/Mac/VMS system? - -=item Where can I learn about CGI or Web programming in Perl? - -=item Where can I learn about object-oriented Perl programming? - -=item Where can I learn about linking C with Perl? [h2xs, xsubpp] - -=item I've read perlembed, perlguts, etc., but I can't embed perl in -my C program; what am I doing wrong? - -=item When I tried to run my script, I got this message. What does it mean? +=item PORTABILITY -=item What's MakeMaker? +=item HEY -=back +=item AUTHOR -=item AUTHOR AND COPYRIGHT +=item COPYRIGHT =back -=head2 perlfaq4 - Data Manipulation ($Revision: 1.44 $, $Date: 2003/07/28 -17:35:21 $) +=head2 perlnewmod - preparing a new module for distribution =over 4 =item DESCRIPTION -=item Data: Numbers - -=over 4 - -=item Why am I getting long decimals (eg, 19.9499999999999) instead of the -numbers I should be getting (eg, 19.95)? - -=item Why isn't my octal data interpreted correctly? - -=item Does Perl have a round() function? What about ceil() and floor()? -Trig functions? - -=item How do I convert between numeric representations? - -How do I convert hexadecimal into decimal, How do I convert from decimal to -hexadecimal, How do I convert from octal to decimal, How do I convert from -decimal to octal, How do I convert from binary to decimal, How do I convert -from decimal to binary - -=item Why doesn't & work the way I want it to? - -=item How do I multiply matrices? - -=item How do I perform an operation on a series of integers? - -=item How can I output Roman numerals? - -=item Why aren't my random numbers random? - -=item How do I get a random number between X and Y? - -=back - -=item Data: Dates - -=over 4 - -=item How do I find the day or week of the year? - -=item How can I compare two dates and find the difference? - -=item How can I take a string and turn it into epoch seconds? - -=item How can I find the Julian Day? - -=item How do I find yesterday's date? - -=item Does Perl have a Year 2000 problem? Is Perl Y2K compliant? - -=back - -=item Data: Strings - =over 4 -=item How do I validate input? - -=item How do I unescape a string? - -=item How do I remove consecutive pairs of characters? - -=item How do I expand function calls in a string? - -=item How do I find matching/nesting anything? - -=item How do I reverse a string? - -=item How do I expand tabs in a string? - -=item How do I reformat a paragraph? - -=item How can I access or change N characters of a string? - -=item How do I change the Nth occurrence of something? - -=item How can I count the number of occurrences of a substring within a -string? - -=item How do I capitalize all the words on one line? - -=item How can I split a [character] delimited string except when inside -[character]? - -=item How do I strip blank space from the beginning/end of a string? - -=item How do I pad a string with blanks or pad a number with zeroes? - -=item How do I extract selected columns from a string? - -=item How do I find the soundex value of a string? - -=item How can I expand variables in text strings? - -=item What's wrong with always quoting "$vars"? - -=item Why don't my E<lt>E<lt>HERE documents work? - -There must be no space after the E<lt>E<lt> part, There (probably) should -be a semicolon at the end, You can't (easily) have any space in front of -the tag - -=back - -=item Data: Arrays - -=over 4 - -=item What is the difference between a list and an array? - -=item What is the difference between $array[1] and @array[1]? - -=item How can I remove duplicate elements from a list or array? - -a), b), c), d), e) - -=item How can I tell whether a certain element is contained in a list or -array? - -=item How do I compute the difference of two arrays? How do I compute the -intersection of two arrays? - -=item How do I test whether two arrays or hashes are equal? - -=item How do I find the first array element for which a condition is true? - -=item How do I handle linked lists? - -=item How do I handle circular lists? - -=item How do I shuffle an array randomly? - -=item How do I process/modify each element of an array? - -=item How do I select a random element from an array? - -=item How do I permute N elements of a list? - -=item How do I sort an array by (anything)? - -=item How do I manipulate arrays of bits? - -=item Why does defined() return true on empty arrays and hashes? - -=back - -=item Data: Hashes (Associative Arrays) - -=over 4 - -=item How do I process an entire hash? - -=item What happens if I add or remove keys from a hash while iterating over -it? - -=item How do I look up a hash element by value? - -=item How can I know how many entries are in a hash? - -=item How do I sort a hash (optionally by value instead of key)? - -=item How can I always keep my hash sorted? - -=item What's the difference between "delete" and "undef" with hashes? - -=item Why don't my tied hashes make the defined/exists distinction? - -=item How do I reset an each() operation part-way through? - -=item How can I get the unique keys from two hashes? - -=item How can I store a multidimensional array in a DBM file? - -=item How can I make my hash remember the order I put elements into it? - -=item Why does passing a subroutine an undefined element in a hash create -it? - -=item How can I make the Perl equivalent of a C structure/C++ class/hash or -array of hashes or arrays? - -=item How can I use a reference as a hash key? - -=back - -=item Data: Misc - -=over 4 - -=item How do I handle binary data correctly? - -=item How do I determine whether a scalar is a number/whole/integer/float? +=item Warning -=item How do I keep persistent data across program calls? +=item What should I make into a module? -=item How do I print out or copy a recursive data structure? +=item Step-by-step: Preparing the ground -=item How do I define methods for every class/object? +Look around, Check it's new, Discuss the need, Choose a name, Check again -=item How do I verify a credit card checksum? +=item Step-by-step: Making the module -=item How do I pack arrays of doubles or floats for XS code? +Start with F<h2xs>, Use L<strict|strict> and L<warnings|warnings>, Use +L<Carp|Carp>, Use L<Exporter|Exporter> - wisely!, Use L<plain old +documentation|perlpod>, Write tests, Write the README -=back +=item Step-by-step: Distributing your module -=item AUTHOR AND COPYRIGHT +Get a CPAN user ID, C<perl Makefile.PL; make test; make dist>, Upload the +tarball, Announce to the modules list, Announce to clpa, Fix bugs! =back -=head2 perlfaq5 - Files and Formats ($Revision: 1.28 $, $Date: 2003/01/26 -17:45:46 $) - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item How do I flush/unbuffer an output filehandle? Why must I do this? - -=item How do I change one line in a file/delete a line in a file/insert a -line in the middle of a file/append to the beginning of a file? - -=item How do I count the number of lines in a file? - -=item How can I use Perl's C<-i> option from within a program? - -=item How do I make a temporary file name? - -=item How can I manipulate fixed-record-length files? - -=item How can I make a filehandle local to a subroutine? How do I pass -filehandles between subroutines? How do I make an array of filehandles? - -=item How can I use a filehandle indirectly? - -=item How can I set up a footer format to be used with write()? - -=item How can I write() into a string? - -=item How can I output my numbers with commas added? - -=item How can I translate tildes (~) in a filename? - -=item How come when I open a file read-write it wipes it out? - -=item Why do I sometimes get an "Argument list too long" when I use -E<lt>*E<gt>? - -=item Is there a leak/bug in glob()? - -=item How can I open a file with a leading ">" or trailing blanks? - -=item How can I reliably rename a file? - -=item How can I lock a file? - -=item Why can't I just open(FH, "E<gt>file.lock")? - -=item I still don't get locking. I just want to increment the number in -the file. How can I do this? - -=item All I want to do is append a small amount of text to the end of a -file. Do I still have to use locking? - -=item How do I randomly update a binary file? - -=item How do I get a file's timestamp in perl? - -=item How do I set a file's timestamp in perl? - -=item How do I print to more than one file at once? - -=item How can I read in an entire file all at once? - -=item How can I read in a file by paragraphs? - -=item How can I read a single character from a file? From the keyboard? - -=item How can I tell whether there's a character waiting on a filehandle? - -=item How do I do a C<tail -f> in perl? - -=item How do I dup() a filehandle in Perl? - -=item How do I close a file descriptor by number? - -=item Why can't I use "C:\temp\foo" in DOS paths? Why doesn't -`C:\temp\foo.exe` work? - -=item Why doesn't glob("*.*") get all the files? - -=item Why does Perl let me delete read-only files? Why does C<-i> clobber -protected files? Isn't this a bug in Perl? - -=item How do I select a random line from a file? - -=item Why do I get weird spaces when I print an array of lines? - -=back +=item AUTHOR -=item AUTHOR AND COPYRIGHT +=item SEE ALSO =back -=head2 perlfaq6 - Regular Expressions ($Revision: 1.20 $, $Date: 2003/01/03 -20:05:28 $) +=head2 perlutil - utilities packaged with the Perl distribution =over 4 @@ -3518,66 +3883,33 @@ protected files? Isn't this a bug in Perl? =over 4 -=item How can I hope to use regular expressions without creating illegible -and unmaintainable code? - -Comments Outside the Regex, Comments Inside the Regex, Different Delimiters - -=item I'm having trouble matching over more than one line. What's wrong? - -=item How can I pull out lines between two patterns that are themselves on -different lines? - -=item I put a regular expression into $/ but it didn't work. What's wrong? - -=item How do I substitute case insensitively on the LHS while preserving -case on the RHS? - -=item How can I make C<\w> match national character sets? - -=item How can I match a locale-smart version of C</[a-zA-Z]/>? - -=item How can I quote a variable to use in a regex? - -=item What is C</o> really for? - -=item How do I use a regular expression to strip C style comments from a -file? - -=item Can I use Perl regular expressions to match balanced text? - -=item What does it mean that regexes are greedy? How can I get around it? - -=item How do I process each word on each line? - -=item How can I print out a word-frequency or line-frequency summary? - -=item How can I do approximate matching? +=item DOCUMENTATION -=item How do I efficiently match many regular expressions at once? +L<perldoc|perldoc>, L<pod2man|pod2man> and L<pod2text|pod2text>, +L<pod2html|pod2html> and L<pod2latex|pod2latex>, L<pod2usage|pod2usage>, +L<podselect|podselect>, L<podchecker|podchecker>, L<splain|splain>, +L<roffitall|roffitall> -=item Why don't word-boundary searches with C<\b> work for me? +=item CONVERTORS -=item Why does using $&, $`, or $' slow my program down? +L<a2p|a2p>, L<s2p|s2p>, L<find2perl|find2perl> -=item What good is C<\G> in a regular expression? +=item Administration -=item Are Perl regexes DFAs or NFAs? Are they POSIX compliant? +L<libnetcfg|libnetcfg> -=item What's wrong with using grep or map in a void context? +=item Development -=item How can I match strings with multibyte characters? +L<perlbug|perlbug>, L<h2ph|h2ph>, L<c2ph|c2ph> and L<pstruct|pstruct>, +L<h2xs|h2xs>, L<dprofpp|dprofpp>, L<perlcc|perlcc> -=item How do I match a pattern that is supplied by the user? +=item SEE ALSO =back -=item AUTHOR AND COPYRIGHT - =back -=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.15 $, $Date: -2003/07/24 02:17:21 $) +=head2 perlcompile - Introduction to the Perl Compiler-Translator =over 4 @@ -3585,321 +3917,78 @@ file? =over 4 -=item Can I get a BNF/yacc/RE for the Perl language? - -=item What are all these $@%&* punctuation signs, and how do I know when to -use them? - -=item Do I always/never have to quote my strings or use semicolons and -commas? - -=item How do I skip some return values? - -=item How do I temporarily block warnings? - -=item What's an extension? - -=item Why do Perl operators have different precedence than C operators? - -=item How do I declare/create a structure? - -=item How do I create a module? - -=item How do I create a class? - -=item How can I tell if a variable is tainted? - -=item What's a closure? - -=item What is variable suicide and how can I prevent it? - -=item How can I pass/return a {Function, FileHandle, Array, Hash, Method, -Regex}? - -Passing Variables and Functions, Passing Filehandles, Passing Regexes, -Passing Methods - -=item How do I create a static variable? - -=item What's the difference between dynamic and lexical (static) scoping? -Between local() and my()? - -=item How can I access a dynamic variable while a similarly named lexical -is in scope? - -=item What's the difference between deep and shallow binding? - -=item Why doesn't "my($foo) = E<lt>FILEE<gt>;" work right? - -=item How do I redefine a builtin function, operator, or method? - -=item What's the difference between calling a function as &foo and foo()? - -=item How do I create a switch or case statement? - -=item How can I catch accesses to undefined variables, functions, or -methods? - -=item Why can't a method included in this same file be found? - -=item How can I find out my current package? - -=item How can I comment out a large block of perl code? - -=item How do I clear a package? - -=item How can I use a variable as a variable name? - -=item What does "bad interpreter" mean? - -=back +=item Layout -=item AUTHOR AND COPYRIGHT +B::Bytecode, B::C, B::CC, B::Lint, B::Deparse, B::Xref =back -=head2 perlfaq8 - System Interaction ($Revision: 1.17 $, $Date: 2003/01/26 -17:44:04 $) - -=over 4 - -=item DESCRIPTION +=item Using The Back Ends =over 4 -=item How do I find out which operating system I'm running under? - -=item How come exec() doesn't return? - -=item How do I do fancy stuff with the keyboard/screen/mouse? - -Keyboard, Screen, Mouse - -=item How do I print something out in color? - -=item How do I read just one key without waiting for a return key? - -=item How do I check whether input is ready on the keyboard? - -=item How do I clear the screen? - -=item How do I get the screen size? - -=item How do I ask the user for a password? - -=item How do I read and write the serial port? - -lockfiles, open mode, end of line, flushing output, non-blocking input - -=item How do I decode encrypted password files? - -=item How do I start a process in the background? - -STDIN, STDOUT, and STDERR are shared, Signals, Zombies - -=item How do I trap control characters/signals? - -=item How do I modify the shadow password file on a Unix system? - -=item How do I set the time and date? - -=item How can I sleep() or alarm() for under a second? - -=item How can I measure time under a second? - -=item How can I do an atexit() or setjmp()/longjmp()? (Exception handling) - -=item Why doesn't my sockets program work under System V (Solaris)? What -does the error message "Protocol not supported" mean? - -=item How can I call my system's unique C functions from Perl? - -=item Where do I get the include files to do ioctl() or syscall()? - -=item Why do setuid perl scripts complain about kernel problems? - -=item How can I open a pipe both to and from a command? - -=item Why can't I get the output of a command with system()? - -=item How can I capture STDERR from an external command? - -=item Why doesn't open() return an error when a pipe open fails? - -=item What's wrong with using backticks in a void context? - -=item How can I call backticks without shell processing? - -=item Why can't my script read from STDIN after I gave it EOF (^D on Unix, -^Z on MS-DOS)? - -=item How can I convert my shell script to perl? - -=item Can I use perl to run a telnet or ftp session? - -=item How can I write expect in Perl? - -=item Is there a way to hide perl's command line from programs such as -"ps"? - -=item I {changed directory, modified my environment} in a perl script. How -come the change disappeared when I exited the script? How do I get my -changes to be visible? - -Unix - -=item How do I close a process's filehandle without waiting for it to -complete? - -=item How do I fork a daemon process? - -=item How do I find out if I'm running interactively or not? - -=item How do I timeout a slow event? - -=item How do I set CPU limits? - -=item How do I avoid zombies on a Unix system? - -=item How do I use an SQL database? - -=item How do I make a system() exit on control-C? - -=item How do I open a file without blocking? - -=item How do I install a module from CPAN? - -=item What's the difference between require and use? +=item The Cross Referencing Back End -=item How do I keep my own module/library directory? +i, &, s, r -=item How do I add the directory my program lives in to the module/library -search path? +=item The Decompiling Back End -=item How do I add a directory to my include path at runtime? +=item The Lint Back End -=item What is socket.ph and where do I get it? +=item The Simple C Back End -=back +=item The Bytecode Back End -=item AUTHOR AND COPYRIGHT +=item The Optimized C Back End =back -=head2 perlfaq9 - Networking ($Revision: 1.15 $, $Date: 2003/01/31 17:36:57 -$) - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item What is the correct form of response from a CGI script? - -=item My CGI script runs from the command line but not the browser. (500 -Server Error) - -=item How can I get better error messages from a CGI program? - -=item How do I remove HTML from a string? - -=item How do I extract URLs? - -=item How do I download a file from the user's machine? How do I open a -file on another machine? - -=item How do I make a pop-up menu in HTML? - -=item How do I fetch an HTML file? - -=item How do I automate an HTML form submission? - -=item How do I decode or create those %-encodings on the web? - -=item How do I redirect to another page? - -=item How do I put a password on my web pages? - -=item How do I edit my .htpasswd and .htgroup files with Perl? - -=item How do I make sure users can't enter values into a form that cause my -CGI script to do bad things? - -=item How do I parse a mail header? - -=item How do I decode a CGI form? - -=item How do I check a valid mail address? - -=item How do I decode a MIME/BASE64 string? - -=item How do I return the user's mail address? - -=item How do I send mail? - -=item How do I use MIME to make an attachment to a mail message? - -=item How do I read mail? - -=item How do I find out my hostname/domainname/IP address? - -=item How do I fetch a news article or the active newsgroups? - -=item How do I fetch/put an FTP file? +=item Module List for the Compiler Suite -=item How can I do RPC in Perl? +B, O, B::Asmdata, B::Assembler, B::Bblock, B::Bytecode, B::C, B::CC, +B::Concise, B::Debug, B::Deparse, B::Disassembler, B::Lint, B::Showlex, +B::Stackobj, B::Stash, B::Terse, B::Xref -=back +=item KNOWN PROBLEMS -=item AUTHOR AND COPYRIGHT +=item AUTHOR =back -=head2 perlcompile - Introduction to the Perl Compiler-Translator +=head2 perlfilter - Source Filters =over 4 =item DESCRIPTION -=over 4 - -=item Layout - -B::Bytecode, B::C, B::CC, B::Lint, B::Deparse, B::Xref - -=back - -=item Using The Back Ends - -=over 4 +=item CONCEPTS -=item The Cross Referencing Back End +=item USING FILTERS -i, &, s, r +=item WRITING A SOURCE FILTER -=item The Decompiling Back End +=item WRITING A SOURCE FILTER IN C -=item The Lint Back End +B<Decryption Filters> -=item The Simple C Back End +=item CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE -=item The Bytecode Back End +=item WRITING A SOURCE FILTER IN PERL -=item The Optimized C Back End +=item USING CONTEXT: THE DEBUG FILTER -=back +=item CONCLUSION -=item Module List for the Compiler Suite +=item THINGS TO LOOK OUT FOR -B, O, B::Asmdata, B::Assembler, B::Bblock, B::Bytecode, B::C, B::CC, -B::Concise, B::Debug, B::Deparse, B::Disassembler, B::Lint, B::Showlex, -B::Stackobj, B::Stash, B::Terse, B::Xref +Some Filters Clobber the C<DATA> Handle -=item KNOWN PROBLEMS +=item REQUIREMENTS =item AUTHOR +=item Copyrights + =back =head2 perlembed - how to embed perl in your C program @@ -4494,103 +4583,6 @@ callback =back -=head2 perlutil - utilities packaged with the Perl distribution - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item DOCUMENTATION - -L<perldoc|perldoc>, L<pod2man|pod2man> and L<pod2text|pod2text>, -L<pod2html|pod2html> and L<pod2latex|pod2latex>, L<pod2usage|pod2usage>, -L<podselect|podselect>, L<podchecker|podchecker>, L<splain|splain>, -L<roffitall|roffitall> - -=item CONVERTORS - -L<a2p|a2p>, L<s2p|s2p>, L<find2perl|find2perl> - -=item Administration - -L<libnetcfg|libnetcfg> - -=item Development - -L<perlbug|perlbug>, L<h2ph|h2ph>, L<c2ph|c2ph> and L<pstruct|pstruct>, -L<h2xs|h2xs>, L<dprofpp|dprofpp>, L<perlcc|perlcc> - -=item SEE ALSO - -=back - -=back - -=head2 perlfilter - Source Filters - -=over 4 - -=item DESCRIPTION - -=item CONCEPTS - -=item USING FILTERS - -=item WRITING A SOURCE FILTER - -=item WRITING A SOURCE FILTER IN C - -B<Decryption Filters> - -=item CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE - -=item WRITING A SOURCE FILTER IN PERL - -=item USING CONTEXT: THE DEBUG FILTER - -=item CONCLUSION - -=item THINGS TO LOOK OUT FOR - -Some Filters Clobber the C<DATA> Handle - -=item REQUIREMENTS - -=item AUTHOR - -=item Copyrights - -=back - -=head2 perldbmfilter - Perl DBM Filters - -=over 4 - -=item SYNOPSIS - -=item DESCRIPTION - -B<filter_store_key>, B<filter_store_value>, B<filter_fetch_key>, -B<filter_fetch_value> - -=over 4 - -=item The Filter - -=item An Example -- the NULL termination problem. - -=item Another Example -- Key is a C int. - -=back - -=item SEE ALSO - -=item AUTHOR - -=back - =head2 perlapi - autogenerated documentation for the perl public API =over 4 @@ -4911,6 +4903,152 @@ PerlIO_apply_layers(f,mode,layers), PerlIO_binmode(f,ptype,imode,layers), =back +=head2 perlhack - How to hack at the Perl internals + +=over 4 + +=item DESCRIPTION + +Does concept match the general goals of Perl?, Where is the +implementation?, Backwards compatibility, Could it be a module instead?, Is +the feature generic enough?, Does it potentially introduce new bugs?, Does +it preclude other desirable features?, Is the implementation robust?, Is +the implementation generic enough to be portable?, Is the implementation +tested?, Is there enough documentation?, Is there another way to do it?, +Does it create too much work?, Patches speak louder than words + +=over 4 + +=item Keeping in sync + +rsync'ing the source tree, Using rsync over the LAN, Using pushing over the +NFS, rsync'ing the patches + +=item Why rsync the source tree + +It's easier to rsync the source tree, It's more reliable + +=item Why rsync the patches + +It's easier to rsync the patches, It's a good reference, Finding a start +point, Finding how to fix a bug, Finding the source of misbehaviour + +=item Perlbug administration + +=item Submitting patches + +L<perlguts>, L<perlxstut> and L<perlxs>, L<perlapi>, +F<Porting/pumpkin.pod>, The perl5-porters FAQ + +=item Finding Your Way Around + +Core modules, Tests, Documentation, Configure, Interpreter + +=item Elements of the interpreter + +Startup, Parsing, Optimization, Running + +=item Internal Variable Types + +=item Op Trees + +=item Stacks + +Argument stack, Mark stack, Save stack + +=item Millions of Macros + +=item The .i Targets + +=item Poking at Perl + +=item Using a source-level debugger + +run [args], break function_name, break source.c:xxx, step, next, continue, +finish, 'enter', print + +=item gdb macro support + +=item Dumping Perl Data Structures + +=item Patching + +=item Patching a core module + +=item Adding a new function to the core + +=item Writing a test + +F<t/base/>, F<t/cmd/>, F<t/comp/>, F<t/io/>, F<t/lib/>, F<t/op/>, +F<t/pod/>, F<t/run/>, F<t/uni/>, F<t/win32/>, F<t/x2p>, t/base t/comp, +t/cmd t/run t/io t/op, t/lib ext lib + +=item Special Make Test Targets + +coretest, test.deparse, minitest, test.valgrind check.valgrind +utest.valgrind ucheck.valgrind, test.third check.third utest.third +ucheck.third, test.torture torturetest, utest ucheck test.utf8 check.utf8, +test_harness + +=item Running tests by hand + +PERL_CORE=1, PERL_DESTRUCT_LEVEL=2, PERL, PERL_SKIP_TTY_TEST + +=back + +=item EXTERNAL TOOLS FOR DEBUGGING PERL + +=over 4 + +=item Rational Software's Purify + +=item Purify on Unix + +-Accflags=-DPURIFY, -Doptimize='-g', -Uusemymalloc, -Dusemultiplicity + +=item Purify on NT + +DEFINES, USE_MULTI = define, #PERL_MALLOC = define, CFG = Debug + +=item valgrind + +=item Compaq's/Digital's/HP's Third Degree + +=item PERL_DESTRUCT_LEVEL + +=item Profiling + +=item Gprof Profiling + +-a, -b, -e routine, -f routine, -s, -z + +=item GCC gcov Profiling + +=item Pixie Profiling + +-h, -l, -p[rocedures], -h[eavy], -i[nvocations], -l[ines], -testcoverage, +-z[ero] + +=item Miscellaneous tricks + +=item CONCLUSION + +I<The Road goes ever on and on, down from the door where it began.> + +=back + +=item AUTHOR + +=back + +=head2 perlbook - Perl book information + +=over 4 + +=item DESCRIPTION + +=back + =head2 perltodo - Perl TO-DO List =over 4 @@ -5272,141 +5410,6 @@ goto(LABEL) and friends =back -=head2 perlhack - How to hack at the Perl internals - -=over 4 - -=item DESCRIPTION - -Does concept match the general goals of Perl?, Where is the -implementation?, Backwards compatibility, Could it be a module instead?, Is -the feature generic enough?, Does it potentially introduce new bugs?, Does -it preclude other desirable features?, Is the implementation robust?, Is -the implementation generic enough to be portable?, Is the implementation -tested?, Is there enough documentation?, Is there another way to do it?, -Does it create too much work?, Patches speak louder than words - -=over 4 - -=item Keeping in sync - -rsync'ing the source tree, Using rsync over the LAN, Using pushing over the -NFS, rsync'ing the patches - -=item Why rsync the source tree - -It's easier to rsync the source tree, It's more reliable - -=item Why rsync the patches - -It's easier to rsync the patches, It's a good reference, Finding a start -point, Finding how to fix a bug, Finding the source of misbehaviour - -=item Perlbug administration - -=item Submitting patches - -L<perlguts>, L<perlxstut> and L<perlxs>, L<perlapi>, -F<Porting/pumpkin.pod>, The perl5-porters FAQ - -=item Finding Your Way Around - -Core modules, Tests, Documentation, Configure, Interpreter - -=item Elements of the interpreter - -Startup, Parsing, Optimization, Running - -=item Internal Variable Types - -=item Op Trees - -=item Stacks - -Argument stack, Mark stack, Save stack - -=item Millions of Macros - -=item The .i Targets - -=item Poking at Perl - -=item Using a source-level debugger - -run [args], break function_name, break source.c:xxx, step, next, continue, -finish, 'enter', print - -=item gdb macro support - -=item Dumping Perl Data Structures - -=item Patching - -=item Patching a core module - -=item Adding a new function to the core - -=item Writing a test - -F<t/base/>, F<t/cmd/>, F<t/comp/>, F<t/io/>, F<t/lib/>, F<t/op/>, -F<t/pod/>, F<t/run/>, F<t/uni/>, F<t/win32/>, F<t/x2p>, t/base t/comp, -t/cmd t/run t/io t/op, t/lib ext lib - -=item Special Make Test Targets - -coretest, test.deparse, minitest, test.third check.third utest.third -ucheck.third, test.torture torturetest, utest ucheck test.utf8 check.utf8, -test_harness - -=item Running tests by hand - -PERL_CORE=1, PERL_DESTRUCT_LEVEL=2, PERL, PERL_SKIP_TTY_TEST - -=back - -=item EXTERNAL TOOLS FOR DEBUGGING PERL - -=over 4 - -=item Rational Software's Purify - -=item Purify on Unix - --Accflags=-DPURIFY, -Doptimize='-g', -Uusemymalloc, -Dusemultiplicity - -=item Purify on NT - -DEFINES, USE_MULTI = define, #PERL_MALLOC = define, CFG = Debug - -=item Compaq's/Digital's/HP's Third Degree - -=item PERL_DESTRUCT_LEVEL - -=item Profiling - -=item Gprof Profiling - --a, -b, -e routine, -f routine, -s, -z - -=item GCC gcov Profiling - -=item Pixie Profiling - --h, -l, -p[rocedures], -h[eavy], -i[nvocations], -l[ines], -testcoverage, --z[ero] - -=item Miscellaneous tricks - -=item CONCLUSION - -I<The Road goes ever on and on, down from the door where it began.> - -=back - -=item AUTHOR - -=back - =head2 perldoc - Look up Perl documentation in Pod format. =over 4 @@ -7257,7 +7260,7 @@ long, Process terminated by SIG%s =back -=head2 perlartistic -- the Perl Artistic License +=head2 perlartistic - the Perl Artistic License =over 4 @@ -7284,7 +7287,7 @@ a), b), c), d), a), b), c), d) =back -=head2 perlgpl -- the GNU Public General Public License, version 2 +=head2 perlgpl - the GNU General Public License, version 2 =over 4 @@ -7334,16 +7337,6 @@ a), b), c), d), a), b), c), d) =back -=head2 perlapollo, README.apollo - Perl version 5 on Apollo DomainOS - -=over 4 - -=item DESCRIPTION - -=item AUTHOR - -=back - =head2 perlamiga - Perl under Amiga OS =over 4 @@ -7410,6 +7403,16 @@ B<Unix emulation for AmigaOS: ixemul.library>, B<Version of Amiga OS> =back +=head2 perlapollo, README.apollo - Perl version 5 on Apollo DomainOS + +=over 4 + +=item DESCRIPTION + +=item AUTHOR + +=back + =head2 perlbeos, README.beos - Perl version 5 on BeOS =over 4 @@ -7549,7 +7552,7 @@ I<dlsym()>, Win9x and C<d_eofnblk>, Compiler/Preprocessor defines =over 4 -=item Warnings on Cygwin +=item Errors on Cygwin =item ld2 on Cygwin @@ -7866,17 +7869,23 @@ op/lexassign.t, pragma/warnings.t =item DESCRIPTION -=item INSTALLATION PREFIX +=over 4 + +=item Installation Prefix -=item LIBPERL AND PREBINDING +=item libperl and Prebinding -=item UPDATING PANTHER +=item Updating Panther -=item MACPERL +=item Known problems -=item CARBON +=item MacPerl -=item COCOA +=item Carbon + +=item Cocoa + +=back =item AUTHOR @@ -8306,7 +8315,7 @@ and z/OS =back -=head2 perlqnx, README.qnx - Perl version 5 on QNX +=head2 perlplan9 - Plan 9-specific documentation for Perl =over 4 @@ -8314,25 +8323,35 @@ and z/OS =over 4 -=item Required Software for Compiling Perl on QNX4 +=item Invoking Perl -/bin/sh, ar, nm, cpp, make +=item What's in Plan 9 Perl -=item Outstanding Issues with Perl on QNX4 +=item What's not in Plan 9 Perl -=item QNX auxiliary files +=item Perl5 Functions not currently supported in Plan 9 Perl -qnx/ar, qnx/cpp +=item Signals in Plan 9 Perl -=item Outstanding issues with perl under QNX6 +=back + +=item COMPILING AND INSTALLING PERL ON PLAN 9 + +=over 4 + +=item Installing Perl Documentation on Plan 9 =back +=item BUGS + +=item Revision date + =item AUTHOR =back -=head2 perlplan9 - Plan 9-specific documentation for Perl +=head2 perlqnx, README.qnx - Perl version 5 on QNX =over 4 @@ -8340,30 +8359,20 @@ qnx/ar, qnx/cpp =over 4 -=item Invoking Perl - -=item What's in Plan 9 Perl - -=item What's not in Plan 9 Perl - -=item Perl5 Functions not currently supported in Plan 9 Perl +=item Required Software for Compiling Perl on QNX4 -=item Signals in Plan 9 Perl +/bin/sh, ar, nm, cpp, make -=back +=item Outstanding Issues with Perl on QNX4 -=item COMPILING AND INSTALLING PERL ON PLAN 9 +=item QNX auxiliary files -=over 4 +qnx/ar, qnx/cpp -=item Installing Perl Documentation on Plan 9 +=item Outstanding issues with perl under QNX6 =back -=item BUGS - -=item Revision date - =item AUTHOR =back @@ -8845,18 +8854,6 @@ FETCH_I<type>_ATTRIBUTES, MODIFY_I<type>_ATTRIBUTES =back -=head2 attrs - set/get attributes of a subroutine (deprecated) - -=over 4 - -=item SYNOPSIS - -=item DESCRIPTION - -method, locked - -=back - =head2 autouse - postpone load of modules until a function is used =over 4 @@ -9412,16 +9409,6 @@ type, `%s' is not a code reference =back -=head2 re - Perl pragma to alter regular expression behaviour - -=over 4 - -=item SYNOPSIS - -=item DESCRIPTION - -=back - =head2 sigtrap - Perl pragma to enable simple signal handling =over 4 @@ -9488,36 +9475,6 @@ C<strict refs>, C<strict vars>, C<strict subs> =back -=head2 threads - Perl extension allowing use of interpreter based threads -from perl - -=over 4 - -=item SYNOPSIS - -=item DESCRIPTION - -$thread = threads->create(function, LIST), $thread->join, $thread->detach, -threads->self, $thread->tid, threads->object( tid ), threads->yield();, -threads->list();, async BLOCK; - -=item WARNINGS - -A thread exited while %d other threads were still running - -=item TODO - -=item BUGS - -Parent-Child threads, Returning objects, Creating threads inside BEGIN -blocks, PERL_OLD_SIGNALS are not threadsafe, will not be - -=item AUTHOR and COPYRIGHT - -=item SEE ALSO - -=back - =head2 threadshared, threads::shared - Perl extension for sharing data structures between threads @@ -9557,8 +9514,8 @@ code =item Utility functions -$num_octets = utf8::upgrade($string);, utf8::downgrade($string[, FAIL_OK]), -utf8::encode($string), $flag = utf8::decode($string), $flag = +$num_octets = utf8::upgrade($string), $success = utf8::downgrade($string[, +FAIL_OK]), utf8::encode($string), utf8::decode($string), $flag = utf8::is_utf8(STRING), $flag = utf8::valid(STRING) =back @@ -13655,8 +13612,6 @@ clean_subdirs_target realclean_subdirs_target -max_exec_len - os_flavor =over 4 @@ -13909,6 +13864,18 @@ B<PERL_MM_MANIFEST_DEBUG> =back +=head2 ExtUtils::Miniperl, writemain - write the C code for perlmain.c + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=item SEE ALSO + +=back + =head2 ExtUtils::Mkbootstrap - make a bootstrap file for use by DynaLoader =over 4 @@ -14463,6 +14430,18 @@ catpath =over 4 +=item OO INTERFACE + +B<new> + +=back + +B<filename> + +B<DESTROY> + +=over 4 + =item FUNCTIONS B<tempfile> @@ -14511,6 +14490,10 @@ B<unlink0> =back +B<cmpstat> + +B<unlink1> + =over 4 =item PACKAGE VARIABLES @@ -15111,7 +15094,7 @@ Sichuan Yi, {yi} : Yiddish, {yo} : Yoruba, [{ypk} : Yupik languages], {znd} =item DESCRIPTION new ( [ DIRNAME ] ), open ( DIRNAME ), read (), seek ( POS ), tell (), -rewind (), close (), tie %hash, IO::Dir, DIRNAME [, OPTIONS ] +rewind (), close (), tie %hash, 'IO::Dir', DIRNAME [, OPTIONS ] =item SEE ALSO @@ -15349,7 +15332,7 @@ handles =item DESCRIPTION new ( [ DIRNAME ] ), open ( DIRNAME ), read (), seek ( POS ), tell (), -rewind (), close (), tie %hash, IO::Dir, DIRNAME [, OPTIONS ] +rewind (), close (), tie %hash, 'IO::Dir', DIRNAME [, OPTIONS ] =item SEE ALSO @@ -16702,7 +16685,8 @@ C<O_RDONLY>, C<O_WRONLY>, C<O_RDWR> =back -=head2 NEXT - Provide a pseudo-class NEXT that allows method redispatch +=head2 NEXT - Provide a pseudo-class NEXT (et al) that allows method +redispatch =over 4 @@ -16716,6 +16700,10 @@ C<O_RDONLY>, C<O_WRONLY>, C<O_RDWR> =item Avoiding repetitions +=item Invoking all versions of a method with a single call + +=item Using C<EVERY> methods + =back =item AUTHOR @@ -17565,6 +17553,8 @@ $obj->CLEARERR($fh), $obj->ERROR($fh), $obj->EOF($fh) =item SEE ALSO +=item ACKNOWLEDGEMENTS + =item COPYRIGHT =back @@ -19588,59 +19578,115 @@ B<assert> =item DESCRIPTION -=over 4 - =item Construction -B<new> +=over 4 + +=item C<new> =back =back -B<_init> +=over 4 + +=item C<_init> + +=back =over 4 =item Analysis -B<analyze> +=over 4 + +=item C<analyze> =back -B<analyze_fh> +=back -B<analyze_file> +=over 4 -B<_switches> +=item C<analyze_fh> -B<_INC2PERL5LIB> +=back -B<_filtered_INC> +=over 4 -B<_restore_PERL5LIB> +=item C<analyze_file> + +=back + +=over 4 + +=item C<_switches> + +=back + +=over 4 + +=item C<_INC2PERL5LIB> + +=back + +=over 4 + +=item C<_filtered_INC> + +=back + +=over 4 + +=item C<_restore_PERL5LIB> + +=back =over 4 =item Parsing -B<_is_comment> +=over 4 + +=item C<_is_comment> =back -B<_is_header> +=back -B<_is_test> +=over 4 -B<_is_bail_out> +=item C<_is_header> -B<_reset_file_state> +=back + +=over 4 + +=item C<_is_test> + +=back + +=over 4 + +=item C<_is_bail_out> + +=back + +=over 4 + +=item C<_reset_file_state> + +=back =over 4 =item Results -B<_detailize> +=over 4 + +=item C<_detailize> + +=back =back @@ -20684,21 +20730,29 @@ don't all have manual pages yet: =item a2p -=item s2p +=item c2ph -=item find2perl +=item dprofpp =item h2ph -=item c2ph - =item h2xs -=item xsubpp +=item perlbug + +=item perldoc + +=item pl2pm + +=item pod2html =item pod2man -=item wrapsuid +=item s2p + +=item splain + +=item xsubpp =back diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 92f6a3d579..61d0e9705e 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -358,33 +358,29 @@ x2p : [.x2p]$(DBG)a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com extra.pods : miniperl @ @extra_pods.com -pod0 = [.lib.pod]perl.pod [.lib.pod]perl5004delta.pod [.lib.pod]perl5005delta.pod [.lib.pod]perl561delta.pod -pod1 = [.lib.pod]perl56delta.pod [.lib.pod]perl570delta.pod [.lib.pod]perl571delta.pod [.lib.pod]perl572delta.pod -pod2 = [.lib.pod]perl573delta.pod [.lib.pod]perl58delta.pod [.lib.pod]perlaix.pod [.lib.pod]perlamiga.pod [.lib.pod]perlapi.pod -pod3 = [.lib.pod]perlapio.pod [.lib.pod]perlapollo.pod [.lib.pod]perlartistic.pod [.lib.pod]perlbeos.pod [.lib.pod]perlbook.pod [.lib.pod]perlboot.pod -pod4 = [.lib.pod]perlbot.pod [.lib.pod]perlbs2000.pod [.lib.pod]perlcall.pod [.lib.pod]perlce.pod [.lib.pod]perlcheat.pod [.lib.pod]perlclib.pod -pod5 = [.lib.pod]perlcn.pod [.lib.pod]perlcompile.pod [.lib.pod]perlcygwin.pod [.lib.pod]perldata.pod -pod6 = [.lib.pod]perldbmfilter.pod [.lib.pod]perldebguts.pod [.lib.pod]perldebtut.pod [.lib.pod]perldebug.pod -pod7 = [.lib.pod]perldelta.pod [.lib.pod]perldgux.pod [.lib.pod]perldiag.pod [.lib.pod]perldoc.pod [.lib.pod]perldos.pod [.lib.pod]perldsc.pod -pod8 = [.lib.pod]perlebcdic.pod [.lib.pod]perlembed.pod [.lib.pod]perlepoc.pod [.lib.pod]perlfaq.pod [.lib.pod]perlfaq1.pod -pod9 = [.lib.pod]perlfaq2.pod [.lib.pod]perlfaq3.pod [.lib.pod]perlfaq4.pod [.lib.pod]perlfaq5.pod [.lib.pod]perlfaq6.pod -pod10 = [.lib.pod]perlfaq7.pod [.lib.pod]perlfaq8.pod [.lib.pod]perlfaq9.pod [.lib.pod]perlfilter.pod [.lib.pod]perlfork.pod -pod11 = [.lib.pod]perlform.pod [.lib.pod]perlfreebsd.pod [.lib.pod]perlfunc.pod [.lib.pod]perlguts.pod [.lib.pod]perlgpl.pod [.lib.pod]perlhack.pod -pod12 = [.lib.pod]perlhist.pod [.lib.pod]perlhpux.pod [.lib.pod]perlhurd.pod [.lib.pod]perlintern.pod [.lib.pod]perlintro.pod -pod13 = [.lib.pod]perliol.pod [.lib.pod]perlipc.pod [.lib.pod]perlirix.pod [.lib.pod]perljp.pod [.lib.pod]perlko.pod -pod14 = [.lib.pod]perllexwarn.pod [.lib.pod]perllocale.pod [.lib.pod]perllol.pod [.lib.pod]perlmachten.pod -pod15 = [.lib.pod]perlmacos.pod [.lib.pod]perlmacosx.pod [.lib.pod]perlmint.pod [.lib.pod]perlmod.pod [.lib.pod]perlmodinstall.pod -pod16 = [.lib.pod]perlmodlib.pod [.lib.pod]perlmodstyle.pod [.lib.pod]perlmpeix.pod [.lib.pod]perlnetware.pod -pod17 = [.lib.pod]perlnewmod.pod [.lib.pod]perlnumber.pod [.lib.pod]perlobj.pod [.lib.pod]perlop.pod [.lib.pod]perlopentut.pod -pod18 = [.lib.pod]perlos2.pod [.lib.pod]perlos390.pod [.lib.pod]perlos400.pod [.lib.pod]perlothrtut.pod [.lib.pod]perlpacktut.pod -pod19 = [.lib.pod]perlplan9.pod [.lib.pod]perlpod.pod [.lib.pod]perlpodspec.pod [.lib.pod]perlport.pod [.lib.pod]perlqnx.pod -pod20 = [.lib.pod]perlre.pod [.lib.pod]perlref.pod [.lib.pod]perlreftut.pod [.lib.pod]perlrequick.pod [.lib.pod]perlretut.pod [.lib.pod]perlreref.pod -pod21 = [.lib.pod]perlrun.pod [.lib.pod]perlsec.pod [.lib.pod]perlsolaris.pod [.lib.pod]perlstyle.pod [.lib.pod]perlsub.pod -pod22 = [.lib.pod]perlsyn.pod [.lib.pod]perlthrtut.pod [.lib.pod]perltie.pod [.lib.pod]perltoc.pod [.lib.pod]perltodo.pod -pod23 = [.lib.pod]perltooc.pod [.lib.pod]perltoot.pod [.lib.pod]perltrap.pod [.lib.pod]perltru64.pod [.lib.pod]perltw.pod -pod24 = [.lib.pod]perlunicode.pod [.lib.pod]perluniintro.pod [.lib.pod]perlutil.pod [.lib.pod]perluts.pod [.lib.pod]perlvar.pod -pod25 = [.lib.pod]perlvmesa.pod [.lib.pod]perlvms.pod [.lib.pod]perlvos.pod [.lib.pod]perlwin32.pod [.lib.pod]perlxs.pod [.lib.pod]perlxstut.pod -pod = $(pod0) $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) $(pod9) $(pod10) $(pod11) $(pod12) $(pod13) $(pod14) $(pod15) $(pod16) $(pod17) $(pod18) $(pod19) $(pod20) $(pod21) $(pod22) $(pod23) $(pod24) $(pod25) +pod0 = [.lib.pod]perl.pod [.lib.pod]perl5004delta.pod [.lib.pod]perl5005delta.pod [.lib.pod]perl561delta.pod [.lib.pod]perl56delta.pod +pod1 = [.lib.pod]perl570delta.pod [.lib.pod]perl571delta.pod [.lib.pod]perl572delta.pod [.lib.pod]perl573delta.pod [.lib.pod]perl58delta.pod +pod2 = [.lib.pod]perlaix.pod [.lib.pod]perlamiga.pod [.lib.pod]perlapi.pod [.lib.pod]perlapio.pod [.lib.pod]perlapollo.pod [.lib.pod]perlartistic.pod +pod3 = [.lib.pod]perlbeos.pod [.lib.pod]perlbook.pod [.lib.pod]perlboot.pod [.lib.pod]perlbot.pod [.lib.pod]perlbs2000.pod [.lib.pod]perlcall.pod +pod4 = [.lib.pod]perlce.pod [.lib.pod]perlcheat.pod [.lib.pod]perlclib.pod [.lib.pod]perlcn.pod [.lib.pod]perlcompile.pod [.lib.pod]perlcygwin.pod +pod5 = [.lib.pod]perldata.pod [.lib.pod]perldbmfilter.pod [.lib.pod]perldebguts.pod [.lib.pod]perldebtut.pod [.lib.pod]perldebug.pod [.lib.pod]perldelta.pod +pod6 = [.lib.pod]perldgux.pod [.lib.pod]perldiag.pod [.lib.pod]perldoc.pod [.lib.pod]perldos.pod [.lib.pod]perldsc.pod [.lib.pod]perlebcdic.pod +pod7 = [.lib.pod]perlembed.pod [.lib.pod]perlepoc.pod [.lib.pod]perlfaq.pod [.lib.pod]perlfaq1.pod [.lib.pod]perlfaq2.pod [.lib.pod]perlfaq3.pod +pod8 = [.lib.pod]perlfaq4.pod [.lib.pod]perlfaq5.pod [.lib.pod]perlfaq6.pod [.lib.pod]perlfaq7.pod [.lib.pod]perlfaq8.pod [.lib.pod]perlfaq9.pod +pod9 = [.lib.pod]perlfilter.pod [.lib.pod]perlfork.pod [.lib.pod]perlform.pod [.lib.pod]perlfreebsd.pod [.lib.pod]perlfunc.pod [.lib.pod]perlgpl.pod +pod10 = [.lib.pod]perlguts.pod [.lib.pod]perlhack.pod [.lib.pod]perlhist.pod [.lib.pod]perlhpux.pod [.lib.pod]perlhurd.pod [.lib.pod]perlintern.pod +pod11 = [.lib.pod]perlintro.pod [.lib.pod]perliol.pod [.lib.pod]perlipc.pod [.lib.pod]perlirix.pod [.lib.pod]perljp.pod [.lib.pod]perlko.pod +pod12 = [.lib.pod]perllexwarn.pod [.lib.pod]perllocale.pod [.lib.pod]perllol.pod [.lib.pod]perlmachten.pod [.lib.pod]perlmacos.pod [.lib.pod]perlmacosx.pod +pod13 = [.lib.pod]perlmint.pod [.lib.pod]perlmod.pod [.lib.pod]perlmodinstall.pod [.lib.pod]perlmodlib.pod [.lib.pod]perlmodstyle.pod [.lib.pod]perlmpeix.pod +pod14 = [.lib.pod]perlnetware.pod [.lib.pod]perlnewmod.pod [.lib.pod]perlnumber.pod [.lib.pod]perlobj.pod [.lib.pod]perlop.pod [.lib.pod]perlopentut.pod +pod15 = [.lib.pod]perlos2.pod [.lib.pod]perlos390.pod [.lib.pod]perlos400.pod [.lib.pod]perlothrtut.pod [.lib.pod]perlpacktut.pod [.lib.pod]perlplan9.pod +pod16 = [.lib.pod]perlpod.pod [.lib.pod]perlpodspec.pod [.lib.pod]perlport.pod [.lib.pod]perlqnx.pod [.lib.pod]perlre.pod [.lib.pod]perlref.pod +pod17 = [.lib.pod]perlreftut.pod [.lib.pod]perlrequick.pod [.lib.pod]perlreref.pod [.lib.pod]perlretut.pod [.lib.pod]perlrun.pod [.lib.pod]perlsec.pod +pod18 = [.lib.pod]perlsolaris.pod [.lib.pod]perlstyle.pod [.lib.pod]perlsub.pod [.lib.pod]perlsyn.pod [.lib.pod]perlthrtut.pod [.lib.pod]perltie.pod +pod19 = [.lib.pod]perltoc.pod [.lib.pod]perltodo.pod [.lib.pod]perltooc.pod [.lib.pod]perltoot.pod [.lib.pod]perltrap.pod [.lib.pod]perltru64.pod +pod20 = [.lib.pod]perltw.pod [.lib.pod]perlunicode.pod [.lib.pod]perluniintro.pod [.lib.pod]perlutil.pod [.lib.pod]perluts.pod [.lib.pod]perlvar.pod +pod21 = [.lib.pod]perlvmesa.pod [.lib.pod]perlvms.pod [.lib.pod]perlvos.pod [.lib.pod]perlwin32.pod [.lib.pod]perlxs.pod [.lib.pod]perlxstut.pod +pod = $(pod0) $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) $(pod9) $(pod10) $(pod11) $(pod12) $(pod13) $(pod14) $(pod15) $(pod16) $(pod17) $(pod18) $(pod19) $(pod20) $(pod21) perlpods : $(pod) @ $(NOOP) @@ -1042,13 +1038,13 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] -[.lib.pod]perlretut.pod : [.pod]perlretut.pod +[.lib.pod]perlreref.pod : [.pod]perlreref.pod @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] -[.lib.pod]perlreref.pod : [.pod]perlreref.pod - @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] - Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] +[.lib.pod]perlretut.pod : [.pod]perlretut.pod + @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] + Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] [.lib.pod]perlrun.pod : [.pod]perlrun.pod @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] @@ -1134,9 +1130,9 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] -[.lib.pod]perlvms.pod : [.vms]perlvms.pod - @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] - Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] +[.lib.pod]perlvms.pod : [.pod]perlvms.pod + @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] + Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod] [.lib.pod]perlvos.pod : [.pod]perlvos.pod @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] diff --git a/win32/pod.mak b/win32/pod.mak index f71542bc28..3a64cd370e 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -16,56 +16,36 @@ REALPERL = ..\perl.exe POD = \ perl.pod \ - perldelta.pod \ perl5004delta.pod \ perl5005delta.pod \ - perldata.pod \ - perlsyn.pod \ - perlop.pod \ - perlre.pod \ - perlreref.pod \ - perlretut.pod \ - perlrequick.pod \ - perlrun.pod \ - perlfunc.pod \ - perlopentut.pod \ - perlvar.pod \ - perlsub.pod \ - perlmod.pod \ - perlmodlib.pod \ - perlmodinstall.pod \ - perlform.pod \ - perllocale.pod \ - perlunicode.pod \ - perluniintro.pod \ - perlref.pod \ - perlreftut.pod \ - perldsc.pod \ - perllol.pod \ - perltoot.pod \ - perlobj.pod \ - perltie.pod \ + perl561delta.pod \ + perl56delta.pod \ + perl570delta.pod \ + perl571delta.pod \ + perl572delta.pod \ + perl573delta.pod \ + perl58delta.pod \ + perlapi.pod \ + perlapio.pod \ + perlartistic.pod \ + perlbook.pod \ + perlboot.pod \ perlbot.pod \ - perlipc.pod \ - perlthrtut.pod \ + perlcall.pod \ + perlcheat.pod \ + perlclib.pod \ + perlcompile.pod \ + perldata.pod \ + perldbmfilter.pod \ + perldebguts.pod \ + perldebtut.pod \ perldebug.pod \ + perldelta.pod \ perldiag.pod \ - perlsec.pod \ - perltrap.pod \ - perlcheat.pod \ - perlport.pod \ - perlstyle.pod \ - perlpod.pod \ - perlbook.pod \ + perldoc.pod \ + perldsc.pod \ + perlebcdic.pod \ perlembed.pod \ - perlapio.pod \ - perlwin32.pod \ - perlxs.pod \ - perlxstut.pod \ - perlguts.pod \ - perlcall.pod \ - perltodo.pod \ - perlhist.pod \ perlfaq.pod \ perlfaq1.pod \ perlfaq2.pod \ @@ -76,60 +56,92 @@ POD = \ perlfaq7.pod \ perlfaq8.pod \ perlfaq9.pod \ - perltoc.pod + perlfilter.pod \ + perlfork.pod \ + perlform.pod \ + perlfunc.pod \ + perlgpl.pod \ + perlguts.pod \ + perlhack.pod \ + perlhist.pod \ + perlintern.pod \ + perlintro.pod \ + perliol.pod \ + perlipc.pod \ + perllexwarn.pod \ + perllocale.pod \ + perllol.pod \ + perlmod.pod \ + perlmodinstall.pod \ + perlmodlib.pod \ + perlmodstyle.pod \ + perlnewmod.pod \ + perlnumber.pod \ + perlobj.pod \ + perlop.pod \ + perlopentut.pod \ + perlothrtut.pod \ + perlpacktut.pod \ + perlpod.pod \ + perlpodspec.pod \ + perlport.pod \ + perlre.pod \ + perlref.pod \ + perlreftut.pod \ + perlrequick.pod \ + perlreref.pod \ + perlretut.pod \ + perlrun.pod \ + perlsec.pod \ + perlstyle.pod \ + perlsub.pod \ + perlsyn.pod \ + perlthrtut.pod \ + perltie.pod \ + perltoc.pod \ + perltodo.pod \ + perltooc.pod \ + perltoot.pod \ + perltrap.pod \ + perlunicode.pod \ + perluniintro.pod \ + perlutil.pod \ + perlvar.pod \ + perlxs.pod \ + perlxstut.pod MAN = \ perl.man \ - perldelta.man \ perl5004delta.man \ perl5005delta.man \ - perldata.man \ - perlsyn.man \ - perlop.man \ - perlre.man \ - perlreref.man \ - perlretut.man \ - perlrequick.man \ - perlrun.man \ - perlfunc.man \ - perlopentut.man \ - perlvar.man \ - perlsub.man \ - perlmod.man \ - perlmodlib.man \ - perlmodinstall.man \ - perlform.man \ - perllocale.man \ - perlunicode.man \ - perluniintro.man \ - perlref.man \ - perlreftut.man \ - perldsc.man \ - perllol.man \ - perltoot.man \ - perlobj.man \ - perltie.man \ + perl561delta.man \ + perl56delta.man \ + perl570delta.man \ + perl571delta.man \ + perl572delta.man \ + perl573delta.man \ + perl58delta.man \ + perlapi.man \ + perlapio.man \ + perlartistic.man \ + perlbook.man \ + perlboot.man \ perlbot.man \ - perlipc.man \ - perlthrtut.man \ + perlcall.man \ + perlcheat.man \ + perlclib.man \ + perlcompile.man \ + perldata.man \ + perldbmfilter.man \ + perldebguts.man \ + perldebtut.man \ perldebug.man \ + perldelta.man \ perldiag.man \ - perlsec.man \ - perltrap.man \ - perlcheat.man \ - perlport.man \ - perlstyle.man \ - perlpod.man \ - perlbook.man \ + perldoc.man \ + perldsc.man \ + perlebcdic.man \ perlembed.man \ - perlapio.man \ - perlwin32.man \ - perlxs.man \ - perlxstut.man \ - perlguts.man \ - perlcall.man \ - perltodo.man \ - perlhist.man \ perlfaq.man \ perlfaq1.man \ perlfaq2.man \ @@ -140,60 +152,92 @@ MAN = \ perlfaq7.man \ perlfaq8.man \ perlfaq9.man \ - perltoc.man + perlfilter.man \ + perlfork.man \ + perlform.man \ + perlfunc.man \ + perlgpl.man \ + perlguts.man \ + perlhack.man \ + perlhist.man \ + perlintern.man \ + perlintro.man \ + perliol.man \ + perlipc.man \ + perllexwarn.man \ + perllocale.man \ + perllol.man \ + perlmod.man \ + perlmodinstall.man \ + perlmodlib.man \ + perlmodstyle.man \ + perlnewmod.man \ + perlnumber.man \ + perlobj.man \ + perlop.man \ + perlopentut.man \ + perlothrtut.man \ + perlpacktut.man \ + perlpod.man \ + perlpodspec.man \ + perlport.man \ + perlre.man \ + perlref.man \ + perlreftut.man \ + perlrequick.man \ + perlreref.man \ + perlretut.man \ + perlrun.man \ + perlsec.man \ + perlstyle.man \ + perlsub.man \ + perlsyn.man \ + perlthrtut.man \ + perltie.man \ + perltoc.man \ + perltodo.man \ + perltooc.man \ + perltoot.man \ + perltrap.man \ + perlunicode.man \ + perluniintro.man \ + perlutil.man \ + perlvar.man \ + perlxs.man \ + perlxstut.man HTML = \ perl.html \ - perldelta.html \ perl5004delta.html \ perl5005delta.html \ - perldata.html \ - perlsyn.html \ - perlop.html \ - perlre.html \ - perlreref.html \ - perlretut.html \ - perlrequick.html \ - perlrun.html \ - perlfunc.html \ - perlopentut.html \ - perlvar.html \ - perlsub.html \ - perlmod.html \ - perlmodlib.html \ - perlmodinstall.html \ - perlform.html \ - perllocale.html \ - perlunicode.html \ - perluniintro.html \ - perlref.html \ - perlreftut.html \ - perldsc.html \ - perllol.html \ - perltoot.html \ - perlobj.html \ - perltie.html \ + perl561delta.html \ + perl56delta.html \ + perl570delta.html \ + perl571delta.html \ + perl572delta.html \ + perl573delta.html \ + perl58delta.html \ + perlapi.html \ + perlapio.html \ + perlartistic.html \ + perlbook.html \ + perlboot.html \ perlbot.html \ - perlipc.html \ - perlthrtut.html \ + perlcall.html \ + perlcheat.html \ + perlclib.html \ + perlcompile.html \ + perldata.html \ + perldbmfilter.html \ + perldebguts.html \ + perldebtut.html \ perldebug.html \ + perldelta.html \ perldiag.html \ - perlsec.html \ - perltrap.html \ - perlcheat.html \ - perlport.html \ - perlstyle.html \ - perlpod.html \ - perlbook.html \ + perldoc.html \ + perldsc.html \ + perlebcdic.html \ perlembed.html \ - perlapio.html \ - perlwin32.html \ - perlxs.html \ - perlxstut.html \ - perlguts.html \ - perlcall.html \ - perltodo.html \ - perlhist.html \ perlfaq.html \ perlfaq1.html \ perlfaq2.html \ @@ -203,61 +247,93 @@ HTML = \ perlfaq6.html \ perlfaq7.html \ perlfaq8.html \ - perlfaq9.html + perlfaq9.html \ + perlfilter.html \ + perlfork.html \ + perlform.html \ + perlfunc.html \ + perlgpl.html \ + perlguts.html \ + perlhack.html \ + perlhist.html \ + perlintern.html \ + perlintro.html \ + perliol.html \ + perlipc.html \ + perllexwarn.html \ + perllocale.html \ + perllol.html \ + perlmod.html \ + perlmodinstall.html \ + perlmodlib.html \ + perlmodstyle.html \ + perlnewmod.html \ + perlnumber.html \ + perlobj.html \ + perlop.html \ + perlopentut.html \ + perlothrtut.html \ + perlpacktut.html \ + perlpod.html \ + perlpodspec.html \ + perlport.html \ + perlre.html \ + perlref.html \ + perlreftut.html \ + perlrequick.html \ + perlreref.html \ + perlretut.html \ + perlrun.html \ + perlsec.html \ + perlstyle.html \ + perlsub.html \ + perlsyn.html \ + perlthrtut.html \ + perltie.html \ + perltodo.html \ + perltooc.html \ + perltoot.html \ + perltrap.html \ + perlunicode.html \ + perluniintro.html \ + perlutil.html \ + perlvar.html \ + perlxs.html \ + perlxstut.html # not perltoc.html TEX = \ perl.tex \ - perldelta.tex \ perl5004delta.tex \ perl5005delta.tex \ - perldata.tex \ - perlsyn.tex \ - perlop.tex \ - perlre.tex \ - perlreref.tex \ - perlretut.tex \ - perlrequick.tex \ - perlrun.tex \ - perlfunc.tex \ - perlopentut.tex \ - perlvar.tex \ - perlsub.tex \ - perlmod.tex \ - perlmodlib.tex \ - perlmodinstall.tex \ - perlform.tex \ - perllocale.tex \ - perlunicode.tex \ - perluniintro.tex \ - perlref.tex \ - perlreftut.tex \ - perldsc.tex \ - perllol.tex \ - perltoot.tex \ - perlobj.tex \ - perltie.tex \ + perl561delta.tex \ + perl56delta.tex \ + perl570delta.tex \ + perl571delta.tex \ + perl572delta.tex \ + perl573delta.tex \ + perl58delta.tex \ + perlapi.tex \ + perlapio.tex \ + perlartistic.tex \ + perlbook.tex \ + perlboot.tex \ perlbot.tex \ - perlipc.tex \ - perlthrtut.tex \ + perlcall.tex \ + perlcheat.tex \ + perlclib.tex \ + perlcompile.tex \ + perldata.tex \ + perldbmfilter.tex \ + perldebguts.tex \ + perldebtut.tex \ perldebug.tex \ + perldelta.tex \ perldiag.tex \ - perlsec.tex \ - perltrap.tex \ - perlcheat.tex \ - perlport.tex \ - perlstyle.tex \ - perlpod.tex \ - perlbook.tex \ + perldoc.tex \ + perldsc.tex \ + perlebcdic.tex \ perlembed.tex \ - perlapio.tex \ - perlwin32.tex \ - perlxs.tex \ - perlxstut.tex \ - perlguts.tex \ - perlcall.tex \ - perltodo.tex \ - perlhist.tex \ perlfaq.tex \ perlfaq1.tex \ perlfaq2.tex \ @@ -268,7 +344,59 @@ TEX = \ perlfaq7.tex \ perlfaq8.tex \ perlfaq9.tex \ - perltoc.tex + perlfilter.tex \ + perlfork.tex \ + perlform.tex \ + perlfunc.tex \ + perlgpl.tex \ + perlguts.tex \ + perlhack.tex \ + perlhist.tex \ + perlintern.tex \ + perlintro.tex \ + perliol.tex \ + perlipc.tex \ + perllexwarn.tex \ + perllocale.tex \ + perllol.tex \ + perlmod.tex \ + perlmodinstall.tex \ + perlmodlib.tex \ + perlmodstyle.tex \ + perlnewmod.tex \ + perlnumber.tex \ + perlobj.tex \ + perlop.tex \ + perlopentut.tex \ + perlothrtut.tex \ + perlpacktut.tex \ + perlpod.tex \ + perlpodspec.tex \ + perlport.tex \ + perlre.tex \ + perlref.tex \ + perlreftut.tex \ + perlrequick.tex \ + perlreref.tex \ + perlretut.tex \ + perlrun.tex \ + perlsec.tex \ + perlstyle.tex \ + perlsub.tex \ + perlsyn.tex \ + perlthrtut.tex \ + perltie.tex \ + perltoc.tex \ + perltodo.tex \ + perltooc.tex \ + perltoot.tex \ + perltrap.tex \ + perlunicode.tex \ + perluniintro.tex \ + perlutil.tex \ + perlvar.tex \ + perlxs.tex \ + perlxstut.tex man: pod2man $(MAN) |