From: Jarkko Hietaniemi Date: Tue, 19 Aug 2003 12:04:22 +0000 (+0000) Subject: Nicholas Clark's podulator. The win32 makefile X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=416302502f485afad83d2cbfb0bf4c336eb95ad7;p=p5sagit%2Fp5-mst-13.2.git Nicholas Clark's podulator. The win32 makefile generation doesn't seem to be working yet. p4raw-id: //depot/perl@20766 --- diff --git a/MANIFEST b/MANIFEST index 69399a0..6262105 100644 --- a/MANIFEST +++ b/MANIFEST @@ -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 2aa52e1..6a30929 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 0000000..29342fb --- /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 a481ca6..ababd51 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 0000000..4b5fe1e --- /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 () { + 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 () { + 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 () { + 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 = ) { + 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 >, 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/; + 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 = ; + 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 14a899a..0000000 --- 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 () { - 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 () { - 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; - -($_= < 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 = ) { - 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; - } -} - -($_= <>, 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/; - 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 73ab3d6..077b03c 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 984abdb..bd4d0b0 100644 --- a/pod/perltoc.pod +++ b/pod/perltoc.pod @@ -103,113 +103,136 @@ Parentheses for capturing, Other regexp features =back -=head2 perlfaq - frequently asked questions about Perl ($Date: 2003/01/31 -17:37:17 $) +=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 Where to get the perlfaq +=item Making References -=item How to contribute to the perlfaq +=item Using References -=item What will happen if you mail your Perl programming problems to the -authors +=item An Example + +=item Arrow Rule =back -=item Credits +=item Solution -=item Author and Copyright Information +=item The Rest + +=item Summary + +=item Credits =over 4 -=item Bundled Distributions +=item Distribution Conditions -=item Disclaimer +=back =back -=item Table of Contents +=head2 perldsc - Perl Data Structures Cookbook -perlfaq - this document, perlfaq1 - General Questions About Perl, perlfaq2 -- Obtaining and Learning about Perl, perlfaq3 - Programming Tools, perlfaq4 -- Data Manipulation, perlfaq5 - Files and Formats, perlfaq6 - Regular -Expressions, perlfaq7 - General Perl Language Issues, perlfaq8 - System -Interaction, perlfaq9 - Networking +=over 4 -=item The Questions +=item DESCRIPTION -=over 4 +arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, +more elaborate constructs -=item L: General Questions About Perl +=item REFERENCES -=item L: Obtaining and Learning about Perl +=item COMMON MISTAKES -=item L: Programming Tools +=item CAVEAT ON PRECEDENCE -=item L: Data Manipulation +=item WHY YOU SHOULD ALWAYS C -=item L: Files and Formats +=item DEBUGGING -=item L: Regular Expressions +=item CODE EXAMPLES -=item L: General Perl Language Issues +=item ARRAYS OF ARRAYS -=item L: System Interaction +=over 4 -=item L: Networking +=item Declaration of an ARRAY OF ARRAYS -=back +=item Generation of an ARRAY OF ARRAYS + +=item Access and Printing of an ARRAY OF ARRAYS =back -=head2 perlbook - Perl book information +=item HASHES OF ARRAYS =over 4 -=item DESCRIPTION +=item Declaration of a HASH OF ARRAYS + +=item Generation of a HASH OF ARRAYS + +=item Access and Printing of a HASH OF ARRAYS =back -=head2 perlsyn - Perl syntax +=item ARRAYS OF HASHES =over 4 -=item DESCRIPTION +=item Declaration of an ARRAY OF HASHES -=over 4 +=item Generation of an ARRAY OF HASHES -=item Declarations +=item Access and Printing of an ARRAY OF HASHES -=item Comments +=back -=item Simple Statements +=item HASHES OF HASHES -=item Compound Statements +=over 4 -=item Loop Control +=item Declaration of a HASH OF HASHES -=item For Loops +=item Generation of a HASH OF HASHES -=item Foreach Loops +=item Access and Printing of a HASH OF HASHES -=item Basic BLOCKs and Switch Statements +=back -=item Goto +=item MORE ELABORATE RECORDS -=item PODs: Embedded Documentation +=over 4 -=item Plain Old Comments (Not!) +=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 perldata - Perl data types +=head2 perllol - Manipulating Arrays of Arrays in Perl =over 4 @@ -217,533 +240,405 @@ Interaction, perlfaq9 - Networking =over 4 -=item Variable names - -=item Context - -=item Scalar values - -=item Scalar value constructors +=item Declaration and Access of Arrays of Arrays -=item List value constructors +=item Growing Your Own -=item Subscripts +=item Access and Printing =item Slices -=item Typeglobs and Filehandles - =back =item SEE ALSO +=item AUTHOR + =back -=head2 perlop - Perl operators and precedence +=head2 perlrequick - Perl regular expressions quick start =over 4 -=item SYNOPSIS - =item DESCRIPTION +=item The Guide + =over 4 -=item Terms and List Operators (Leftward) +=item Simple word matching -=item The Arrow Operator +=item Using character classes -=item Auto-increment and Auto-decrement +=item Matching this or that -=item Exponentiation +=item Grouping things and hierarchical matching -=item Symbolic Unary Operators +=item Extracting matches -=item Binding Operators +=item Matching repetitions -=item Multiplicative Operators +=item More matching -=item Additive Operators +=item Search and replace -=item Shift Operators +=item The split operator -=item Named Unary Operators +=back -=item Relational Operators +=item BUGS -=item Equality Operators +=item SEE ALSO -=item Bitwise And +=item AUTHOR AND COPYRIGHT -=item Bitwise Or and Exclusive Or +=over 4 -=item C-style Logical And +=item Acknowledgments -=item C-style Logical Or +=back -=item C-style Logical Defined-Or +=back -=item Range Operators +=head2 perlretut - Perl regular expressions tutorial -=item Conditional Operator +=over 4 -=item Assignment Operators +=item DESCRIPTION -=item Comma Operator +=item Part 1: The basics -=item List Operators (Rightward) +=over 4 -=item Logical Not +=item Simple word matching -=item Logical And +=item Using character classes -=item Logical or, Defined or, and Exclusive Or +=item Matching this or that -=item C Operators Missing From Perl +=item Grouping things and hierarchical matching -unary &, unary *, (TYPE) +=item Extracting matches -=item Quote and Quote-like Operators +=item Matching repetitions -=item Regexp Quote-Like Operators +=item Building a regexp -?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, C<'STRING'>, -qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/, `STRING`, qw/STRING/, -s/PATTERN/REPLACEMENT/egimosx, tr/SEARCHLIST/REPLACEMENTLIST/cds, -y/SEARCHLIST/REPLACEMENTLIST/cds, <, C, C, C, C, C<''>, C, C<"">, -C<``>, C, C, C<< >>, C, C, C, -C,, Interpolation of regular expressions, Optimization of -regular expressions +=item Part 2: Power tools -=item I/O Operators +=over 4 -=item Constant Folding +=item More on characters, strings, and character classes -=item Bitwise String Operators +=item Compiling and saving regular expressions -=item Integer Arithmetic +=item Embedding comments and modifiers in a regular expression -=item Floating-point Arithmetic +=item Non-capturing groupings -=item Bigger Numbers +=item Looking ahead and looking behind -=back +=item Using independent subexpressions to prevent backtracking -=back +=item Conditional expressions -=head2 perlsub - Perl subroutines +=item A bit of magic: executing Perl code in a regular expression -=over 4 +=item Pragmas and debugging -=item SYNOPSIS +=back -=item DESCRIPTION +=item BUGS -=over 4 +=item SEE ALSO -=item Private Variables via my() +=item AUTHOR AND COPYRIGHT -=item Persistent Private Variables +=over 4 -=item Temporary Values via local() +=item Acknowledgments -=item Lvalue subroutines +=back -Lvalue subroutines are EXPERIMENTAL +=back -=item Passing Symbol Table Entries (typeglobs) +=head2 perlboot - Beginner's Object-Oriented Tutorial -=item When to Still Use local() +=over 4 -=item Pass by Reference +=item DESCRIPTION -=item Prototypes +=over 4 -=item Constant Functions +=item If we could talk to the animals... -=item Overriding Built-in Functions +=item Introducing the method invocation arrow -=item Autoloading +=item Invoking a barnyard -=item Subroutine Attributes - -=back +=item The extra parameter of method invocation -=item SEE ALSO +=item Calling a second method to simplify things -=back +=item Inheriting the windpipes -=head2 perlfunc - Perl builtin functions +=item A few notes about @ISA -=over 4 +=item Overriding the methods -=item DESCRIPTION +=item Starting the search from a different place -=over 4 +=item The SUPER way of doing things -=item Perl Functions by Category +=item Where we're at so far... -Functions for SCALARs or strings, Regular expressions and pattern matching, -Numeric functions, Functions for real @ARRAYs, Functions for list data, -Functions for real %HASHes, Input and output functions, Functions for fixed -length data or records, Functions for filehandles, files, or directories, -Keywords related to the control flow of your perl program, Keywords related -to scoping, Miscellaneous functions, Functions for processes and process -groups, Keywords related to perl modules, Keywords related to classes and -object-orientedness, Low-level socket functions, System V interprocess -communication functions, Fetching user and group info, Fetching network -info, Time-related functions, Functions new in perl5, Functions obsoleted -in perl5 +=item A horse is a horse, of course of course -- or is it? -=item Portability +=item Invoking an instance method -=item Alphabetical Listing of Perl Functions +=item Accessing the instance data --I FILEHANDLE, -I EXPR, -I, abs VALUE, abs, accept -NEWSOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bind SOCKET,NAME, -binmode FILEHANDLE, LAYER, binmode FILEHANDLE, bless REF,CLASSNAME, bless -REF, caller EXPR, caller, chdir EXPR, chmod LIST, chomp VARIABLE, chomp( -LIST ), chomp, chop VARIABLE, chop( LIST ), chop, chown LIST, chr NUMBER, -chr, chroot FILENAME, chroot, close FILEHANDLE, close, closedir DIRHANDLE, -connect SOCKET,NAME, continue BLOCK, cos EXPR, cos, crypt PLAINTEXT,SALT, -dbmclose HASH, dbmopen HASH,DBNAME,MASK, defined EXPR, defined, delete -EXPR, die LIST, do BLOCK, do SUBROUTINE(LIST), do EXPR, dump LABEL, dump, -each HASH, eof FILEHANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST, -exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntl -FILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHANDLE,OPERATION, -fork, format, formline PICTURE,LIST, getc FILEHANDLE, getc, getlogin, -getpeername SOCKET, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam -NAME, getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname -NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr -ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, -getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent, -getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent -STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, -endhostent, endnetent, endprotoent, endservent, getsockname SOCKET, -getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, goto LABEL, -goto EXPR, goto &NAME, grep BLOCK LIST, grep EXPR,LIST, hex EXPR, hex, -import, index STR,SUBSTR,POSITION, index STR,SUBSTR, int EXPR, int, ioctl -FILEHANDLE,FUNCTION,SCALAR, join EXPR,LIST, keys HASH, kill SIGNAL, LIST, -last LABEL, last, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length, -link OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR, -lock THING, log EXPR, log, lstat EXPR, lstat, m//, map BLOCK LIST, map -EXPR,LIST, mkdir FILENAME,MASK, mkdir FILENAME, msgctl ID,CMD,ARG, msgget -KEY,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, msgsnd ID,MSG,FLAGS, my EXPR, my -TYPE EXPR, my EXPR : ATTRS, my TYPE EXPR : ATTRS, next LABEL, next, no -Module VERSION LIST, no Module VERSION, no Module LIST, no Module, oct -EXPR, oct, open FILEHANDLE,EXPR, open FILEHANDLE,MODE,EXPR, open -FILEHANDLE,MODE,EXPR,LIST, open FILEHANDLE,MODE,REFERENCE, open FILEHANDLE, -opendir DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, our EXPR TYPE, our EXPR : -ATTRS, our TYPE EXPR : ATTRS, pack TEMPLATE,LIST, package NAMESPACE, -package, pipe READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR, pos, -print FILEHANDLE LIST, print LIST, print, printf FILEHANDLE FORMAT, LIST, -printf FORMAT, LIST, prototype FUNCTION, push ARRAY,LIST, q/STRING/, -qq/STRING/, qr/STRING/, qx/STRING/, qw/STRING/, quotemeta EXPR, quotemeta, -rand EXPR, rand, read FILEHANDLE,SCALAR,LENGTH,OFFSET, read -FILEHANDLE,SCALAR,LENGTH, readdir DIRHANDLE, readline EXPR, readlink EXPR, -readlink, readpipe EXPR, recv SOCKET,SCALAR,LENGTH,FLAGS, redo LABEL, redo, -ref EXPR, ref, rename OLDNAME,NEWNAME, require VERSION, require EXPR, -require, reset EXPR, reset, return EXPR, return, reverse LIST, rewinddir -DIRHANDLE, rindex STR,SUBSTR,POSITION, rindex STR,SUBSTR, rmdir FILENAME, -rmdir, s///, scalar EXPR, seek FILEHANDLE,POSITION,WHENCE, seekdir -DIRHANDLE,POS, select FILEHANDLE, select, select RBITS,WBITS,EBITS,TIMEOUT, -semctl ID,SEMNUM,CMD,ARG, semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, send -SOCKET,MSG,FLAGS,TO, send SOCKET,MSG,FLAGS, setpgrp PID,PGRP, setpriority -WHICH,WHO,PRIORITY, setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL, shift ARRAY, -shift, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread ID,VAR,POS,SIZE, -shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW, sin EXPR, sin, sleep -EXPR, sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL, socketpair -SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, sort SUBNAME LIST, sort BLOCK LIST, -sort LIST, splice ARRAY,OFFSET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH, -splice ARRAY,OFFSET, splice ARRAY, split /PATTERN/,EXPR,LIMIT, split -/PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST, format -parameter index, flags, vector flag, (minimum) width, precision, or maximum -width, size, order of arguments, sqrt EXPR, sqrt, srand EXPR, srand, stat -FILEHANDLE, stat EXPR, stat, study SCALAR, study, sub NAME BLOCK, sub NAME -(PROTO) BLOCK, sub NAME : ATTRS BLOCK, sub NAME (PROTO) : ATTRS BLOCK, -substr EXPR,OFFSET,LENGTH,REPLACEMENT, substr EXPR,OFFSET,LENGTH, substr -EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall LIST, sysopen -FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread -FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH, sysseek -FILEHANDLE,POSITION,WHENCE, system LIST, system PROGRAM LIST, syswrite -FILEHANDLE,SCALAR,LENGTH,OFFSET, syswrite FILEHANDLE,SCALAR,LENGTH, -syswrite FILEHANDLE,SCALAR, tell FILEHANDLE, tell, telldir DIRHANDLE, tie -VARIABLE,CLASSNAME,LIST, tied VARIABLE, time, times, tr///, truncate -FILEHANDLE,LENGTH, truncate EXPR,LENGTH, uc EXPR, uc, ucfirst EXPR, -ucfirst, umask EXPR, umask, undef EXPR, undef, unlink LIST, unlink, unpack -TEMPLATE,EXPR, unpack TEMPLATE, untie VARIABLE, unshift ARRAY,LIST, use -Module VERSION LIST, use Module VERSION, use Module LIST, use Module, use -VERSION, utime LIST, values HASH, vec EXPR,OFFSET,BITS, wait, waitpid -PID,FLAGS, wantarray, warn LIST, write FILEHANDLE, write EXPR, write, y/// +=item How to build a horse -=back +=item Inheriting the constructor -=back +=item Making a method work with either classes or instances -=head2 perlreftut - Mark's very short tutorial about references +=item Adding parameters to a method -=over 4 +=item More interesting instances -=item DESCRIPTION +=item A horse of a different color -=item Who Needs Complicated Data Structures? +=item Summary -=item The Solution +=back -=item Syntax +=item SEE ALSO -=over 4 +=item COPYRIGHT -=item Making References +=back -=item Using References +=head2 perltoot - Tom's object-oriented tutorial for perl -=item An Example +=over 4 -=item Arrow Rule +=item DESCRIPTION -=back +=item Creating a Class -=item Solution +=over 4 -=item The Rest +=item Object Representation -=item Summary +=item Class Interface -=item Credits +=item Constructors and Instance Methods -=over 4 +=item Planning for the Future: Better Constructors -=item Distribution Conditions +=item Destructors -=back +=item Other Object Methods =back -=head2 perldsc - Perl Data Structures Cookbook +=item Class Data =over 4 -=item DESCRIPTION - -arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, -more elaborate constructs - -=item REFERENCES +=item Accessing Class Data -=item COMMON MISTAKES +=item Debugging Methods -=item CAVEAT ON PRECEDENCE +=item Class Destructors -=item WHY YOU SHOULD ALWAYS C +=item Documenting the Interface -=item DEBUGGING +=back -=item CODE EXAMPLES +=item Aggregation -=item ARRAYS OF ARRAYS +=item Inheritance =over 4 -=item Declaration of an ARRAY OF ARRAYS +=item Overridden Methods -=item Generation of an ARRAY OF ARRAYS +=item Multiple Inheritance -=item Access and Printing of an ARRAY OF ARRAYS +=item UNIVERSAL: The Root of All Objects =back -=item HASHES OF ARRAYS +=item Alternate Object Representations =over 4 -=item Declaration of a HASH OF ARRAYS - -=item Generation of a HASH OF ARRAYS +=item Arrays as Objects -=item Access and Printing of a HASH OF ARRAYS +=item Closures as Objects =back -=item ARRAYS OF HASHES +=item AUTOLOAD: Proxy Methods =over 4 -=item Declaration of an ARRAY OF HASHES - -=item Generation of an ARRAY OF HASHES +=item Autoloaded Data Methods -=item Access and Printing of an ARRAY OF HASHES +=item Inherited Autoloaded Data Methods =back -=item HASHES OF HASHES +=item Metaclassical Tools =over 4 -=item Declaration of a HASH OF HASHES - -=item Generation of a HASH OF HASHES +=item Class::Struct -=item Access and Printing of a HASH OF HASHES +=item Data Members as Variables =back -=item MORE ELABORATE RECORDS +=item NOTES =over 4 -=item Declaration of MORE ELABORATE RECORDS +=item Object Terminology -=item Declaration of a HASH OF COMPLEX RECORDS +=back -=item Generation of a HASH OF COMPLEX RECORDS +=item SEE ALSO -=back +=item AUTHOR AND COPYRIGHT -=item Database Ties +=item COPYRIGHT -=item SEE ALSO +=over 4 -=item AUTHOR +=item Acknowledgments =back -=head2 perlrequick - Perl regular expressions quick start +=back + +=head2 perltooc - Tom's OO Tutorial for Class Data in Perl =over 4 =item DESCRIPTION -=item The Guide +=item Class Data in a Can + +=item Class Data as Package Variables =over 4 -=item Simple word matching +=item Putting All Your Eggs in One Basket -=item Using character classes +=item Inheritance Concerns -=item Matching this or that +=item The Eponymous Meta-Object -=item Grouping things and hierarchical matching +=item Indirect References to Class Data -=item Extracting matches +=item Monadic Classes -=item Matching repetitions +=item Translucent Attributes -=item More matching +=back -=item Search and replace +=item Class Data as Lexical Variables -=item The split operator +=over 4 -=back +=item Privacy and Responsibility -=item BUGS +=item File-Scoped Lexicals -=item SEE ALSO +=item More Inheritance Concerns -=item AUTHOR AND COPYRIGHT +=item Locking the Door and Throwing Away the Key -=over 4 - -=item Acknowledgments +=item Translucency Revisited =back +=item NOTES + +=item SEE ALSO + +=item AUTHOR AND COPYRIGHT + +=item ACKNOWLEDGEMENTS + +=item HISTORY + =back -=head2 perlpod - the Plain Old Documentation format +=head2 perlbot - Bag'o Object Tricks (the BOT) =over 4 =item DESCRIPTION -=over 4 +=item OO SCALING TIPS -=item Ordinary Paragraph +=item INSTANCE VARIABLES -=item Verbatim Paragraph +=item SCALAR INSTANCE VARIABLES -=item Command Paragraph +=item INSTANCE VARIABLE INHERITANCE -C<=head1 I>, C<=head2 I>, C<=head3 I>, C<=head4 I>, C<=over I>, C<=item -I>, C<=back>, C<=cut>, C<=pod>, C<=begin I>, C<=end -I>, C<=for I I> +=item OBJECT RELATIONSHIPS -=item Formatting Codes +=item OVERRIDING SUPERCLASS METHODS -CtextE> -- italic text, CtextE> -- bold text, -CcodeE> -- code text, CnameE> -- a hyperlink, -CescapeE> -- a character escape, CfilenameE> -- used -for filenames, CtextE> -- text contains non-breaking spaces, -Ctopic nameE> -- an index entry, CE> -- a null -(zero-effect) formatting code +=item USING RELATIONSHIP WITH SDBM -=item The Intent +=item THINKING OF CODE REUSE -=item Embedding Pods in Perl Modules +=item CLASS CONTEXT AND THE OBJECT -=item Hints for Writing Pod +=item INHERITING A CONSTRUCTOR -=back +=item DELEGATION =item SEE ALSO -=item AUTHOR - =back -=head2 perlpodspec - Plain Old Documentation: format specification and -notes +=head2 perlstyle - Perl style guide =over 4 =item DESCRIPTION -=item Pod Definitions - -=item Pod Commands - -"=head1", "=head2", "=head3", "=head4", "=pod", "=cut", "=over", "=item", -"=back", "=begin formatname", "=end formatname", "=for formatname text..." - -=item Pod Formatting Codes - -CtextE> -- italic text, CtextE> -- bold text, -CcodeE> -- code text, CfilenameE> -- style for -filenames, Ctopic nameE> -- an index entry, CE> -- a -null (zero-effect) formatting code, CnameE> -- a hyperlink, -CescapeE> -- a character escape, CtextE> -- text -contains non-breaking spaces - -=item Notes on Implementing Pod Processors - -=item About LE...E Codes +=back -First:, Second:, Third:, Fourth:, Fifth:, Sixth: +=head2 perlcheat - Perl 5 Cheat Sheet -=item About =over...=back Regions +=over 4 -=item About Data Paragraphs and "=begin/=end" Regions +=item DESCRIPTION -=item SEE ALSO +=over 4 -=item AUTHOR +=item The sheet =back -=head2 perlstyle - Perl style guide +=item ACKNOWLEDGEMENTS -=over 4 +=item AUTHOR -=item DESCRIPTION +=item SEE ALSO =back @@ -832,204 +727,211 @@ LIMIT specified =back -=head2 perlcheat - Perl 5 Cheat Sheet +=head2 perldebtut - Perl debugging tutorial =over 4 =item DESCRIPTION -=over 4 +=item use strict -=item The sheet +=item Looking at data and -w and v -=back +=item help -=item ACKNOWLEDGEMENTS +=item Stepping through code -=item AUTHOR +=item Placeholder for a, w, t, T -=item SEE ALSO +=item REGULAR EXPRESSIONS -=back +=item OUTPUT TIPS -=head2 perlrun - how to execute the Perl interpreter +=item CGI -=over 4 +=item GUIs -=item SYNOPSIS +=item SUMMARY -=item DESCRIPTION +=item SEE ALSO -=over 4 +=item AUTHOR -=item #! and quoting on non-Unix systems +=item CONTRIBUTORS -OS/2, MS-DOS, Win95/NT, Macintosh, VMS +=back -=item Location of Perl +=head2 perlfaq - frequently asked questions about Perl ($Date: 2003/01/31 +17:37:17 $) -=item Command Switches +=over 4 -B<-0>[I], B<-A [I]>, B<-a>, B<-C -[I]>, B<-c>, B<-d>, B<-d:>I, B<-D>I, -B<-D>I, B<-e> I, B<-F>I, B<-h>, -B<-i>[I], B<-I>I, B<-l>[I], -B<-m>[B<->]I, B<-M>[B<->]I, B<-M>[B<->]I<'module ...'>, -B<-[mM]>[B<->]I, B<-n>, B<-p>, B<-P>, B<-s>, B<-S>, -B<-t>, B<-T>, B<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I, B<-w>, B<-W>, -B<-X>, B<-x> I +=item DESCRIPTION -=back +=over 4 -=item ENVIRONMENT +=item Where to get the perlfaq -HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLIO, :bytes, :crlf, :mmap, -:perlio, :pop, :raw, :stdio, :unix, :utf8, :win32, PERLIO_DEBUG, PERLLIB, -PERL5DB, PERL5SHELL (specific to the Win32 port), PERL_DEBUG_MSTATS, -PERL_DESTRUCT_LEVEL, PERL_ENCODING, PERL_HASH_SEED, PERL_HASH_SEED_DEBUG, -PERL_ROOT (specific to the VMS port), PERL_SIGNALS, PERL_UNICODE, SYS$LOGIN -(specific to the VMS port) +=item How to contribute to the perlfaq + +=item What will happen if you mail your Perl programming problems to the +authors =back -=head2 perldiag - various Perl diagnostics +=item Credits + +=item Author and Copyright Information =over 4 -=item DESCRIPTION +=item Bundled Distributions + +=item Disclaimer =back -=head2 perllexwarn - Perl Lexical Warnings +=item Table of Contents -=over 4 +perlfaq - this document, perlfaq1 - General Questions About Perl, perlfaq2 +- Obtaining and Learning about Perl, perlfaq3 - Programming Tools, perlfaq4 +- Data Manipulation, perlfaq5 - Files and Formats, perlfaq6 - Regular +Expressions, perlfaq7 - General Perl Language Issues, perlfaq8 - System +Interaction, perlfaq9 - Networking -=item DESCRIPTION +=item The Questions =over 4 -=item Default Warnings and Optional Warnings - -=item What's wrong with B<-w> and C<$^W> - -=item Controlling Warnings from the Command Line +=item L: General Questions About Perl -B<-w>, B<-W>, B<-X> +=item L: Obtaining and Learning about Perl -=item Backward Compatibility +=item L: Programming Tools -=item Category Hierarchy +=item L: Data Manipulation -=item Fatal Warnings +=item L: Files and Formats -=item Reporting Warnings from a Module +=item L: Regular Expressions -=back +=item L: General Perl Language Issues -=item TODO +=item L: System Interaction -=item SEE ALSO +=item L: Networking -=item AUTHOR +=back =back -=head2 perldebtut - Perl debugging tutorial +=head2 perlfaq1 - General Questions About Perl ($Revision: 1.12 $, $Date: +2003/07/09 15:47:28 $) =over 4 =item DESCRIPTION -=item use strict +=over 4 -=item Looking at data and -w and v +=item What is Perl? -=item help +=item Who supports Perl? Who develops it? Why is it free? -=item Stepping through code +=item Which version of Perl should I use? -=item Placeholder for a, w, t, T +=item What are perl4 and perl5? -=item REGULAR EXPRESSIONS +=item What is Ponie? -=item OUTPUT TIPS +=item What is perl6? -=item CGI +=item How stable is Perl? -=item GUIs +=item Is Perl difficult to learn? -=item SUMMARY +=item How does Perl compare with other languages like Java, Python, REXX, +Scheme, or Tcl? -=item SEE ALSO +=item Can I do [task] in Perl? -=item AUTHOR +=item When shouldn't I program in Perl? -=item CONTRIBUTORS +=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 -=head2 perldebug - Perl debugging +=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 -=item The Perl Debugger - =over 4 -=item Debugger Commands +=item What machines support Perl? Where do I get it? -h, h [command], h h, p expr, x [maxdepth] expr, V [pkg [vars]], X [vars], y -[level [vars]], T, s [expr], n [expr], r, , c [line|sub], l, l -min+incr, l min-max, l line, l subname, -, v [line], f filename, /pattern/, -?pattern?, L [abw], S [[!]regex], t, t expr, b, b [line] [condition], b -subname [condition], b postpone subname [condition], b load filename, b -compile subname, B line, B *, a [line] command, A line, A *, w expr, W -expr, W *, o, o booloption .., o anyoption? .., o option=value .., < ?, < [ -command ], < *, << command, > ?, > command, > *, >> command, { ?, { [ -command ], { *, {{ command, ! number, ! -number, ! pattern, !! cmd, source -file, H -number, q or ^D, R, |dbcmd, ||dbcmd, command, m expr, M, man -[manpage] +=item How can I get a binary version of Perl? -=item Configurable Options +=item I don't have a C compiler on my system. How can I compile perl? -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, C, -C +=item I copied the Perl binary from one machine to another, but scripts +don't work. -=item Debugger input/output +=item I grabbed the sources and tried to compile but gdbm/dynamic +loading/malloc/linking/... failed. How do I make it work? -Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame -listing +=item What modules and extensions are available for Perl? What is CPAN? +What does CPAN/src/... mean? -=item Debugging compile-time statements +=item Is there an ISO or ANSI certified version of Perl? -=item Debugger Customization +=item Where can I get information on Perl? -=item Readline Support +=item What are the Perl newsgroups on Usenet? Where do I post questions? -=item Editor Support for Debugging +=item Where should I post source code? -=item The Perl Profiler +=item Perl Books -=back +References, Tutorials, Task-Oriented, Special Topics -=item Debugging regular expressions +=item Perl in Magazines -=item Debugging memory usage +=item Perl on the Net: FTP and WWW Access -=item SEE ALSO +=item What mailing lists are there for Perl? -=item BUGS +=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 -=head2 perlvar - Perl predefined variables +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq3 - Programming Tools ($Revision: 1.33 $, $Date: 2003/01/31 +17:34:56 $) =over 4 @@ -1037,337 +939,301 @@ listing =over 4 -=item Predefined Names +=item How do I do (anything)? -$ARG, $_, $a, $b, $>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $', -$LAST_PAREN_MATCH, $+, $^N, @LAST_MATCH_END, @+, -HANDLE->input_line_number(EXPR), $INPUT_LINE_NUMBER, $NR, $, -IO::Handle->input_record_separator(EXPR), $INPUT_RECORD_SEPARATOR, $RS, $/, -HANDLE->autoflush(EXPR), $OUTPUT_AUTOFLUSH, $|, -IO::Handle->output_field_separator EXPR, $OUTPUT_FIELD_SEPARATOR, $OFS, $,, -IO::Handle->output_record_separator EXPR, $OUTPUT_RECORD_SEPARATOR, $ORS, -$\, $LIST_SEPARATOR, $", $SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $OFMT, $#, -HANDLE->format_page_number(EXPR), $FORMAT_PAGE_NUMBER, $%, -HANDLE->format_lines_per_page(EXPR), $FORMAT_LINES_PER_PAGE, $=, -HANDLE->format_lines_left(EXPR), $FORMAT_LINES_LEFT, $-, @LAST_MATCH_START, -@-, C<$`> is the same as C, C<$&> is the same as -C, C<$'> is the same as C, C<$1> is the same as C, C<$2> -is the same as C, C<$3> is the same as -C, HANDLE->format_name(EXPR), -$FORMAT_NAME, $~, HANDLE->format_top_name(EXPR), $FORMAT_TOP_NAME, $^, -IO::Handle->format_line_break_characters EXPR, -$FORMAT_LINE_BREAK_CHARACTERS, $:, IO::Handle->format_formfeed EXPR, -$FORMAT_FORMFEED, $^L, $ACCUMULATOR, $^A, $CHILD_ERROR, $?, ${^ENCODING}, -$OS_ERROR, $ERRNO, $!, %!, $EXTENDED_OS_ERROR, $^E, $EVAL_ERROR, $@, -$PROCESS_ID, $PID, $$, $REAL_USER_ID, $UID, $<, $EFFECTIVE_USER_ID, $EUID, -$>, $REAL_GROUP_ID, $GID, $(, $EFFECTIVE_GROUP_ID, $EGID, $), -$PROGRAM_NAME, $0, $[, $], $COMPILING, $^C, $DEBUGGING, $^D, -$SYSTEM_FD_MAX, $^F, $^H, %^H, $INPLACE_EDIT, $^I, $^M, $OSNAME, $^O, -${^OPEN}, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, -0x100, 0x200, 0x400, $LAST_REGEXP_CODE_RESULT, $^R, -$EXCEPTIONS_BEING_CAUGHT, $^S, $BASETIME, $^T, ${^TAINT}, ${^UNICODE}, -$PERL_VERSION, $^V, $WARNING, $^W, ${^WARNING_BITS}, $EXECUTABLE_NAME, $^X, -ARGV, $ARGV, @ARGV, ARGVOUT, @F, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG, -$SIG{expr} +=item How can I use Perl interactively? -=item Error Indicators +=item Is there a Perl shell? -=item Technical Note on the Syntax of Variable Names +=item How do I find which modules are installed on my system? -=back +=item How do I debug my Perl programs? -=item BUGS +=item How do I profile my Perl programs? -=back +=item How do I cross-reference my Perl programs? -=head2 perllol - Manipulating Arrays of Arrays in Perl +=item Is there a pretty-printer (formatter) for Perl? -=over 4 +=item Is there a ctags for Perl? -=item DESCRIPTION +=item Is there an IDE or Windows Perl Editor? -=over 4 +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 Declaration and Access of Arrays of Arrays +=item Where can I get Perl macros for vi? -=item Growing Your Own +=item Where can I get perl-mode for emacs? -=item Access and Printing +=item How can I use curses with Perl? -=item Slices +=item How can I use X or Tk with Perl? -=back +=item How can I generate simple menus without using CGI or Tk? -=item SEE ALSO +=item How can I make my Perl program run faster? -=item AUTHOR +=item How can I make my Perl program take less memory? -=back +Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and +stringification, Pass by reference, Tie large variables to disk -=head2 perlopentut - tutorial on opening things in Perl +=item Is it safe to return a reference to local or lexical data? -=over 4 +=item How can I free an array or hash so my program shrinks? -=item DESCRIPTION +=item How can I make my CGI script more efficient? -=item Open E la shell +=item How can I hide the source for my Perl program? -=over 4 +=item How can I compile my Perl program into byte code or C? -=item Simple Opens +=item How can I compile Perl into Java? -=item Indirect Filehandles +=item How can I get C<#!perl> to work on [MS-DOS,NT,...]? -=item Pipe Opens +=item Can I write useful Perl programs on the command line? -=item The Minus File +=item Why don't Perl one-liners work on my DOS/Mac/VMS system? -=item Mixing Reads and Writes +=item Where can I learn about CGI or Web programming in Perl? -=item Filters +=item Where can I learn about object-oriented Perl programming? -=back +=item Where can I learn about linking C with Perl? [h2xs, xsubpp] -=item Open E la C +=item I've read perlembed, perlguts, etc., but I can't embed perl in +my C program; what am I doing wrong? -=over 4 +=item When I tried to run my script, I got this message. What does it mean? -=item Permissions E la mode +=item What's MakeMaker? =back -=item Obscure Open Tricks +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq4 - Data Manipulation ($Revision: 1.44 $, $Date: 2003/07/28 +17:35:21 $) =over 4 -=item Re-Opening Files (dups) +=item DESCRIPTION -=item Dispelling the Dweomer +=item Data: Numbers -=item Paths as Opens +=over 4 -=item Single Argument Open +=item Why am I getting long decimals (eg, 19.9499999999999) instead of the +numbers I should be getting (eg, 19.95)? -=item Playing with STDIN and STDOUT +=item Why isn't my octal data interpreted correctly? -=back +=item Does Perl have a round() function? What about ceil() and floor()? +Trig functions? -=item Other I/O Issues +=item How do I convert between numeric representations? -=over 4 +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 Opening Non-File Files +=item Why doesn't & work the way I want it to? -=item Opening Named Pipes +=item How do I multiply matrices? -=item Opening Sockets +=item How do I perform an operation on a series of integers? -=item Binary Files +=item How can I output Roman numerals? -=item File Locking +=item Why aren't my random numbers random? -=item IO Layers +=item How do I get a random number between X and Y? =back -=item SEE ALSO +=item Data: Dates -=item AUTHOR and COPYRIGHT +=over 4 -=item HISTORY +=item How do I find the day or week of the year? -=back +=item How can I compare two dates and find the difference? -=head2 perlpacktut - tutorial on C and C +=item How can I take a string and turn it into epoch seconds? -=over 4 +=item How can I find the Julian Day? -=item DESCRIPTION +=item How do I find yesterday's date? -=item The Basic Principle +=item Does Perl have a Year 2000 problem? Is Perl Y2K compliant? -=item Packing Text +=back -=item Packing Numbers +=item Data: Strings =over 4 -=item Integers +=item How do I validate input? -=item Unpacking a Stack Frame +=item How do I unescape a string? -=item How to Eat an Egg on a Net +=item How do I remove consecutive pairs of characters? -=item Floating point Numbers +=item How do I expand function calls in a string? -=back +=item How do I find matching/nesting anything? -=item Exotic Templates +=item How do I reverse a string? -=over 4 +=item How do I expand tabs in a string? -=item Bit Strings +=item How do I reformat a paragraph? -=item Uuencoding +=item How can I access or change N characters of a string? -=item Doing Sums +=item How do I change the Nth occurrence of something? -=item Unicode +=item How can I count the number of occurrences of a substring within a +string? -=item Another Portable Binary Encoding +=item How do I capitalize all the words on one line? -=back +=item How can I split a [character] delimited string except when inside +[character]? -=item Template Grouping +=item How do I strip blank space from the beginning/end of a string? -=item Lengths and Widths +=item How do I pad a string with blanks or pad a number with zeroes? -=over 4 +=item How do I extract selected columns from a string? -=item String Lengths +=item How do I find the soundex value of a string? -=item Dynamic Templates +=item How can I expand variables in text strings? -=item Counting Repetitions +=item What's wrong with always quoting "$vars"? + +=item Why don't my EEHERE documents work? + +There must be no space after the EE part, There (probably) should +be a semicolon at the end, You can't (easily) have any space in front of +the tag =back -=item Packing and Unpacking C Structures +=item Data: Arrays =over 4 -=item The Alignment Pit +=item What is the difference between a list and an array? -=item Alignment, Take 2 +=item What is the difference between $array[1] and @array[1]? -=item Alignment, Take 3 - -=item Pointers for How to Use Them - -=back - -=item Pack Recipes - -=item Funnies Section - -=item Authors +=item How can I remove duplicate elements from a list or array? -=back +a), b), c), d), e) -=head2 perlretut - Perl regular expressions tutorial +=item How can I tell whether a certain element is contained in a list or +array? -=over 4 +=item How do I compute the difference of two arrays? How do I compute the +intersection of two arrays? -=item DESCRIPTION +=item How do I test whether two arrays or hashes are equal? -=item Part 1: The basics +=item How do I find the first array element for which a condition is true? -=over 4 +=item How do I handle linked lists? -=item Simple word matching +=item How do I handle circular lists? -=item Using character classes +=item How do I shuffle an array randomly? -=item Matching this or that +=item How do I process/modify each element of an array? -=item Grouping things and hierarchical matching +=item How do I select a random element from an array? -=item Extracting matches +=item How do I permute N elements of a list? -=item Matching repetitions +=item How do I sort an array by (anything)? -=item Building a regexp +=item How do I manipulate arrays of bits? -=item Using regular expressions in Perl +=item Why does defined() return true on empty arrays and hashes? =back -=item Part 2: Power tools +=item Data: Hashes (Associative Arrays) =over 4 -=item More on characters, strings, and character classes - -=item Compiling and saving regular expressions +=item How do I process an entire hash? -=item Embedding comments and modifiers in a regular expression +=item What happens if I add or remove keys from a hash while iterating over +it? -=item Non-capturing groupings +=item How do I look up a hash element by value? -=item Looking ahead and looking behind +=item How can I know how many entries are in a hash? -=item Using independent subexpressions to prevent backtracking +=item How do I sort a hash (optionally by value instead of key)? -=item Conditional expressions +=item How can I always keep my hash sorted? -=item A bit of magic: executing Perl code in a regular expression +=item What's the difference between "delete" and "undef" with hashes? -=item Pragmas and debugging +=item Why don't my tied hashes make the defined/exists distinction? -=back +=item How do I reset an each() operation part-way through? -=item BUGS +=item How can I get the unique keys from two hashes? -=item SEE ALSO +=item How can I store a multidimensional array in a DBM file? -=item AUTHOR AND COPYRIGHT +=item How can I make my hash remember the order I put elements into it? -=over 4 +=item Why does passing a subroutine an undefined element in a hash create +it? -=item Acknowledgments +=item How can I make the Perl equivalent of a C structure/C++ class/hash or +array of hashes or arrays? -=back +=item How can I use a reference as a hash key? =back -=head2 perlre - Perl regular expressions - -=over 4 - -=item DESCRIPTION - -i, m, s, x +=item Data: Misc =over 4 -=item Regular Expressions - -[1], [2], [3], cntrl, graph, print, punct, xdigit - -=item Extended Patterns - -C<(?#text)>, C<(?imsx-imsx)>, C<(?:pattern)>, C<(?imsx-imsx:pattern)>, -C<(?=pattern)>, C<(?!pattern)>, C<(?<=pattern)>, C<(?, C<(?{ -code })>, C<(??{ code })>, C<< (?>pattern) >>, -C<(?(condition)yes-pattern|no-pattern)>, C<(?(condition)yes-pattern)> - -=item Backtracking +=item How do I handle binary data correctly? -=item Version 8 Regular Expressions +=item How do I determine whether a scalar is a number/whole/integer/float? -=item Warning on \1 vs $1 +=item How do I keep persistent data across program calls? -=item Repeated patterns matching zero-length substring +=item How do I print out or copy a recursive data structure? -=item Combining pieces together +=item How do I define methods for every class/object? -C, C, C, C, C, C, -C, C, C, C, C, C<< (?>S) >>, C<(?=S)>, C<(?<=S)>, -C<(?!S)>, C<(?, C<(??{ EXPR })>, -C<(?(condition)yes-pattern|no-pattern)> +=item How do I verify a credit card checksum? -=item Creating custom RE engines +=item How do I pack arrays of doubles or floats for XS code? =back -=item BUGS - -=item SEE ALSO +=item AUTHOR AND COPYRIGHT =back -=head2 perlreref - Perl Regular Expressions Reference +=head2 perlfaq5 - Files and Formats ($Revision: 1.28 $, $Date: 2003/01/26 +17:45:46 $) =over 4 @@ -1375,93 +1241,95 @@ C<(?(condition)yes-pattern|no-pattern)> =over 4 -=item OPERATORS - -=item SYNTAX - -=item ESCAPE SEQUENCES - -=item CHARACTER CLASSES +=item How do I flush/unbuffer an output filehandle? Why must I do this? -=item ANCHORS +=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 QUANTIFIERS +=item How do I count the number of lines in a file? -=item EXTENDED CONSTRUCTS +=item How can I use Perl's C<-i> option from within a program? -=item VARIABLES +=item How do I make a temporary file name? -=item FUNCTIONS +=item How can I manipulate fixed-record-length files? -=item TERMINOLOGY +=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? -=back +=item How can I use a filehandle indirectly? -=item AUTHOR +=item How can I set up a footer format to be used with write()? -=item SEE ALSO +=item How can I write() into a string? -=item THANKS +=item How can I output my numbers with commas added? -=back +=item How can I translate tildes (~) in a filename? -=head2 perlref - Perl references and nested data structures +=item How come when I open a file read-write it wipes it out? -=over 4 +=item Why do I sometimes get an "Argument list too long" when I use +E*E? -=item NOTE +=item Is there a leak/bug in glob()? -=item DESCRIPTION +=item How can I open a file with a leading ">" or trailing blanks? -=over 4 +=item How can I reliably rename a file? -=item Making References +=item How can I lock a file? -=item Using References +=item Why can't I just open(FH, "Efile.lock")? -=item Symbolic references +=item I still don't get locking. I just want to increment the number in +the file. How can I do this? -=item Not-so-symbolic references +=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 Pseudo-hashes: Using an array as a hash +=item How do I randomly update a binary file? -=item Function Templates +=item How do I get a file's timestamp in perl? -=back +=item How do I set a file's timestamp in perl? -=item WARNING +=item How do I print to more than one file at once? -=item SEE ALSO +=item How can I read in an entire file all at once? -=back +=item How can I read in a file by paragraphs? -=head2 perlform - Perl formats +=item How can I read a single character from a file? From the keyboard? -=over 4 +=item How can I tell whether there's a character waiting on a filehandle? -=item DESCRIPTION +=item How do I do a C in perl? -=over 4 +=item How do I dup() a filehandle in Perl? -=item Format Variables +=item How do I close a file descriptor by number? -=back +=item Why can't I use "C:\temp\foo" in DOS paths? Why doesn't +`C:\temp\foo.exe` work? -=item NOTES +=item Why doesn't glob("*.*") get all the files? -=over 4 +=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 Footers +=item How do I select a random line from a file? -=item Accessing Formatting Internals +=item Why do I get weird spaces when I print an array of lines? =back -=item WARNINGS +=item AUTHOR AND COPYRIGHT =back -=head2 perlboot - Beginner's Object-Oriented Tutorial +=head2 perlfaq6 - Regular Expressions ($Revision: 1.20 $, $Date: 2003/01/03 +20:05:28 $) =over 4 @@ -1469,418 +1337,409 @@ C<(?(condition)yes-pattern|no-pattern)> =over 4 -=item If we could talk to the animals... +=item How can I hope to use regular expressions without creating illegible +and unmaintainable code? -=item Introducing the method invocation arrow +Comments Outside the Regex, Comments Inside the Regex, Different Delimiters -=item Invoking a barnyard +=item I'm having trouble matching over more than one line. What's wrong? -=item The extra parameter of method invocation +=item How can I pull out lines between two patterns that are themselves on +different lines? -=item Calling a second method to simplify things +=item I put a regular expression into $/ but it didn't work. What's wrong? -=item Inheriting the windpipes +=item How do I substitute case insensitively on the LHS while preserving +case on the RHS? -=item A few notes about @ISA +=item How can I make C<\w> match national character sets? -=item Overriding the methods +=item How can I match a locale-smart version of C? -=item Starting the search from a different place +=item How can I quote a variable to use in a regex? -=item The SUPER way of doing things +=item What is C really for? -=item Where we're at so far... +=item How do I use a regular expression to strip C style comments from a +file? -=item A horse is a horse, of course of course -- or is it? +=item Can I use Perl regular expressions to match balanced text? -=item Invoking an instance method +=item What does it mean that regexes are greedy? How can I get around it? -=item Accessing the instance data +=item How do I process each word on each line? -=item How to build a horse +=item How can I print out a word-frequency or line-frequency summary? -=item Inheriting the constructor +=item How can I do approximate matching? -=item Making a method work with either classes or instances +=item How do I efficiently match many regular expressions at once? -=item Adding parameters to a method +=item Why don't word-boundary searches with C<\b> work for me? -=item More interesting instances +=item Why does using $&, $`, or $' slow my program down? -=item A horse of a different color +=item What good is C<\G> in a regular expression? -=item Summary +=item Are Perl regexes DFAs or NFAs? Are they POSIX compliant? -=back +=item What's wrong with using grep or map in a void context? -=item SEE ALSO +=item How can I match strings with multibyte characters? -=item COPYRIGHT +=item How do I match a pattern that is supplied by the user? =back -=head2 perltoot - Tom's object-oriented tutorial for perl +=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 -=item Creating a Class - =over 4 -=item Object Representation +=item Can I get a BNF/yacc/RE for the Perl language? -=item Class Interface +=item What are all these $@%&* punctuation signs, and how do I know when to +use them? -=item Constructors and Instance Methods +=item Do I always/never have to quote my strings or use semicolons and +commas? -=item Planning for the Future: Better Constructors +=item How do I skip some return values? -=item Destructors +=item How do I temporarily block warnings? -=item Other Object Methods +=item What's an extension? -=back +=item Why do Perl operators have different precedence than C operators? -=item Class Data +=item How do I declare/create a structure? -=over 4 +=item How do I create a module? -=item Accessing Class Data +=item How do I create a class? -=item Debugging Methods +=item How can I tell if a variable is tainted? -=item Class Destructors +=item What's a closure? -=item Documenting the Interface +=item What is variable suicide and how can I prevent it? -=back +=item How can I pass/return a {Function, FileHandle, Array, Hash, Method, +Regex}? -=item Aggregation +Passing Variables and Functions, Passing Filehandles, Passing Regexes, +Passing Methods -=item Inheritance +=item How do I create a static variable? -=over 4 +=item What's the difference between dynamic and lexical (static) scoping? +Between local() and my()? -=item Overridden Methods +=item How can I access a dynamic variable while a similarly named lexical +is in scope? -=item Multiple Inheritance +=item What's the difference between deep and shallow binding? -=item UNIVERSAL: The Root of All Objects +=item Why doesn't "my($foo) = EFILEE;" work right? -=back +=item How do I redefine a builtin function, operator, or method? -=item Alternate Object Representations +=item What's the difference between calling a function as &foo and foo()? -=over 4 +=item How do I create a switch or case statement? -=item Arrays as Objects +=item How can I catch accesses to undefined variables, functions, or +methods? -=item Closures as Objects +=item Why can't a method included in this same file be found? -=back +=item How can I find out my current package? -=item AUTOLOAD: Proxy Methods +=item How can I comment out a large block of perl code? -=over 4 +=item How do I clear a package? -=item Autoloaded Data Methods +=item How can I use a variable as a variable name? -=item Inherited Autoloaded Data Methods +=item What does "bad interpreter" mean? =back -=item Metaclassical Tools +=item AUTHOR AND COPYRIGHT + +=back + +=head2 perlfaq8 - System Interaction ($Revision: 1.17 $, $Date: 2003/01/26 +17:44:04 $) =over 4 -=item Class::Struct +=item DESCRIPTION -=item Data Members as Variables +=over 4 -=back +=item How do I find out which operating system I'm running under? -=item NOTES +=item How come exec() doesn't return? -=over 4 +=item How do I do fancy stuff with the keyboard/screen/mouse? -=item Object Terminology +Keyboard, Screen, Mouse -=back +=item How do I print something out in color? -=item SEE ALSO +=item How do I read just one key without waiting for a return key? -=item AUTHOR AND COPYRIGHT +=item How do I check whether input is ready on the keyboard? -=item COPYRIGHT +=item How do I clear the screen? -=over 4 +=item How do I get the screen size? -=item Acknowledgments +=item How do I ask the user for a password? -=back +=item How do I read and write the serial port? -=back +lockfiles, open mode, end of line, flushing output, non-blocking input -=head2 perltooc - Tom's OO Tutorial for Class Data in Perl +=item How do I decode encrypted password files? -=over 4 +=item How do I start a process in the background? -=item DESCRIPTION +STDIN, STDOUT, and STDERR are shared, Signals, Zombies -=item Class Data in a Can +=item How do I trap control characters/signals? -=item Class Data as Package Variables +=item How do I modify the shadow password file on a Unix system? -=over 4 +=item How do I set the time and date? -=item Putting All Your Eggs in One Basket +=item How can I sleep() or alarm() for under a second? -=item Inheritance Concerns +=item How can I measure time under a second? -=item The Eponymous Meta-Object +=item How can I do an atexit() or setjmp()/longjmp()? (Exception handling) -=item Indirect References to Class Data +=item Why doesn't my sockets program work under System V (Solaris)? What +does the error message "Protocol not supported" mean? -=item Monadic Classes +=item How can I call my system's unique C functions from Perl? -=item Translucent Attributes +=item Where do I get the include files to do ioctl() or syscall()? -=back +=item Why do setuid perl scripts complain about kernel problems? -=item Class Data as Lexical Variables +=item How can I open a pipe both to and from a command? -=over 4 +=item Why can't I get the output of a command with system()? -=item Privacy and Responsibility +=item How can I capture STDERR from an external command? -=item File-Scoped Lexicals +=item Why doesn't open() return an error when a pipe open fails? -=item More Inheritance Concerns +=item What's wrong with using backticks in a void context? -=item Locking the Door and Throwing Away the Key +=item How can I call backticks without shell processing? -=item Translucency Revisited +=item Why can't my script read from STDIN after I gave it EOF (^D on Unix, +^Z on MS-DOS)? -=back +=item How can I convert my shell script to perl? -=item NOTES +=item Can I use perl to run a telnet or ftp session? -=item SEE ALSO +=item How can I write expect in Perl? -=item AUTHOR AND COPYRIGHT +=item Is there a way to hide perl's command line from programs such as +"ps"? -=item ACKNOWLEDGEMENTS +=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? -=item HISTORY +Unix -=back +=item How do I close a process's filehandle without waiting for it to +complete? -=head2 perlobj - Perl objects +=item How do I fork a daemon process? -=over 4 +=item How do I find out if I'm running interactively or not? -=item DESCRIPTION +=item How do I timeout a slow event? -=over 4 +=item How do I set CPU limits? -=item An Object is Simply a Reference +=item How do I avoid zombies on a Unix system? -=item A Class is Simply a Package +=item How do I use an SQL database? -=item A Method is Simply a Subroutine +=item How do I make a system() exit on control-C? -=item Method Invocation +=item How do I open a file without blocking? -=item Indirect Object Syntax +=item How do I install a module from CPAN? -=item Default UNIVERSAL methods +=item What's the difference between require and use? -isa(CLASS), can(METHOD), VERSION( [NEED] ) +=item How do I keep my own module/library directory? -=item Destructors +=item How do I add the directory my program lives in to the module/library +search path? -=item Summary +=item How do I add a directory to my include path at runtime? -=item Two-Phased Garbage Collection +=item What is socket.ph and where do I get it? =back -=item SEE ALSO +=item AUTHOR AND COPYRIGHT =back -=head2 perlbot - Bag'o Object Tricks (the BOT) +=head2 perlfaq9 - Networking ($Revision: 1.15 $, $Date: 2003/01/31 17:36:57 +$) =over 4 =item DESCRIPTION -=item OO SCALING TIPS +=over 4 -=item INSTANCE VARIABLES +=item What is the correct form of response from a CGI script? -=item SCALAR INSTANCE VARIABLES +=item My CGI script runs from the command line but not the browser. (500 +Server Error) -=item INSTANCE VARIABLE INHERITANCE +=item How can I get better error messages from a CGI program? -=item OBJECT RELATIONSHIPS +=item How do I remove HTML from a string? -=item OVERRIDING SUPERCLASS METHODS +=item How do I extract URLs? -=item USING RELATIONSHIP WITH SDBM +=item How do I download a file from the user's machine? How do I open a +file on another machine? -=item THINKING OF CODE REUSE +=item How do I make a pop-up menu in HTML? -=item CLASS CONTEXT AND THE OBJECT +=item How do I fetch an HTML file? -=item INHERITING A CONSTRUCTOR +=item How do I automate an HTML form submission? -=item DELEGATION +=item How do I decode or create those %-encodings on the web? -=item SEE ALSO +=item How do I redirect to another page? -=back +=item How do I put a password on my web pages? -=head2 perltie - how to hide an object class in a simple variable +=item How do I edit my .htpasswd and .htgroup files with Perl? -=over 4 +=item How do I make sure users can't enter values into a form that cause my +CGI script to do bad things? -=item SYNOPSIS +=item How do I parse a mail header? -=item DESCRIPTION +=item How do I decode a CGI form? -=over 4 +=item How do I check a valid mail address? -=item Tying Scalars +=item How do I decode a MIME/BASE64 string? -TIESCALAR classname, LIST, FETCH this, STORE this, value, UNTIE this, -DESTROY this - -=item Tying Arrays +=item How do I return the user's mail address? -TIEARRAY classname, LIST, FETCH this, index, STORE this, index, value, -FETCHSIZE this, STORESIZE this, count, EXTEND this, count, EXISTS this, -key, DELETE this, key, CLEAR this, PUSH this, LIST, POP this, SHIFT this, -UNSHIFT this, LIST, SPLICE this, offset, length, LIST, UNTIE this, DESTROY -this +=item How do I send mail? -=item Tying Hashes +=item How do I use MIME to make an attachment to a mail message? -USER, HOME, CLOBBER, LIST, TIEHASH classname, LIST, FETCH this, key, STORE -this, key, value, DELETE this, key, CLEAR this, EXISTS this, key, FIRSTKEY -this, NEXTKEY this, lastkey, UNTIE this, DESTROY this +=item How do I read mail? -=item Tying FileHandles +=item How do I find out my hostname/domainname/IP address? -TIEHANDLE classname, LIST, WRITE this, LIST, PRINT this, LIST, PRINTF this, -LIST, READ this, LIST, READLINE this, GETC this, CLOSE this, UNTIE this, -DESTROY this +=item How do I fetch a news article or the active newsgroups? -=item UNTIE this +=item How do I fetch/put an FTP file? -=item The C Gotcha +=item How can I do RPC in Perl? =back -=item SEE ALSO - -=item BUGS - -=item AUTHOR +=item AUTHOR AND COPYRIGHT =back -=head2 perlipc - Perl interprocess communication (signals, fifos, pipes, -safe subprocesses, sockets, and semaphores) +=head2 perlsyn - Perl syntax =over 4 =item DESCRIPTION -=item Signals - -=over 4 - -=item Handling the SIGHUP Signal in Daemons - -=back - -=item Named Pipes - =over 4 -=item Deferred Signals (Safe signals) +=item Declarations -Long running opcodes, Interrupting IO, Restartable system calls, Signals as -"faults", Signals triggered by operating system state +=item Comments -=back +=item Simple Statements -=item Using open() for IPC +=item Compound Statements -=over 4 +=item Loop Control -=item Filehandles +=item For Loops -=item Background Processes +=item Foreach Loops -=item Complete Dissociation of Child from Parent +=item Basic BLOCKs and Switch Statements -=item Safe Pipe Opens +=item Goto -=item Bidirectional Communication with Another Process +=item PODs: Embedded Documentation -=item Bidirectional Communication with Yourself +=item Plain Old Comments (Not!) =back -=item Sockets: Client/Server Communication - -=over 4 - -=item Internet Line Terminators - -=item Internet TCP Clients and Servers - -=item Unix-Domain TCP Clients and Servers - =back -=item TCP Clients with IO::Socket +=head2 perldata - Perl data types =over 4 -=item A Simple Client - -C, C, C +=item DESCRIPTION -=item A Webget Client +=over 4 -=item Interactive Client with IO::Socket +=item Variable names -=back +=item Context -=item TCP Servers with IO::Socket +=item Scalar values -Proto, LocalPort, Listen, Reuse +=item Scalar value constructors -=item UDP: Message Passing +=item List value constructors -=item SysV IPC +=item Subscripts -=item NOTES +=item Slices -=item BUGS +=item Typeglobs and Filehandles -=item AUTHOR +=back =item SEE ALSO =back -=head2 perlfork - Perl's fork() emulation +=head2 perlop - Perl operators and precedence =over 4 @@ -1890,566 +1749,617 @@ Proto, LocalPort, Listen, Reuse =over 4 -=item Behavior of other Perl features in forked pseudo-processes - -$$ or $PROCESS_ID, %ENV, chdir() and all other builtins that accept -filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to -files, directories and network sockets - -=item Resource limits - -=item Killing the parent process - -=item Lifetime of the parent process and pseudo-processes +=item Terms and List Operators (Leftward) -=item CAVEATS AND LIMITATIONS +=item The Arrow Operator -BEGIN blocks, Open filehandles, Forking pipe open() not yet implemented, -Global state maintained by XSUBs, Interpreter embedded in larger -application, Thread-safety of extensions +=item Auto-increment and Auto-decrement -=back +=item Exponentiation -=item BUGS +=item Symbolic Unary Operators -=item AUTHOR +=item Binding Operators -=item SEE ALSO +=item Multiplicative Operators -=back +=item Additive Operators -=head2 perlnumber - semantics of numbers and numeric operations in Perl +=item Shift Operators -=over 4 +=item Named Unary Operators -=item SYNOPSIS +=item Relational Operators -=item DESCRIPTION +=item Equality Operators -=item Storing numbers +=item Bitwise And -=item Numeric operators and numeric conversions +=item Bitwise Or and Exclusive Or -=item Flavors of Perl numeric operations +=item C-style Logical And -Arithmetic operators, ++, Arithmetic operators during C, Other -mathematical operators, Bitwise operators, Bitwise operators during C, Operators which expect an integer, Operators which expect a -string +=item C-style Logical Or -=item AUTHOR +=item C-style Logical Defined-Or -=item SEE ALSO +=item Range Operators -=back +=item Conditional Operator -=head2 perlthrtut - tutorial on threads in Perl +=item Assignment Operators -=over 4 +=item Comma Operator -=item DESCRIPTION +=item List Operators (Rightward) -=item Status +=item Logical Not -=item What Is A Thread Anyway? +=item Logical And -=item Threaded Program Models +=item Logical or, Defined or, and Exclusive Or -=over 4 +=item C Operators Missing From Perl -=item Boss/Worker +unary &, unary *, (TYPE) -=item Work Crew +=item Quote and Quote-like Operators -=item Pipeline +=item Regexp Quote-Like Operators -=back +?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, C<'STRING'>, +qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/, `STRING`, qw/STRING/, +s/PATTERN/REPLACEMENT/egimosx, tr/SEARCHLIST/REPLACEMENTLIST/cds, +y/SEARCHLIST/REPLACEMENTLIST/cds, <, C, C, C, C, C<''>, C, C<"">, +C<``>, C, C, C<< >>, C, C, C, +C,, Interpolation of regular expressions, Optimization of +regular expressions -=item Thread Basics +=item I/O Operators -=over 4 +=item Constant Folding -=item Basic Thread Support +=item Bitwise String Operators -=item A Note about the Examples +=item Integer Arithmetic -=item Creating Threads +=item Floating-point Arithmetic -=item Waiting For A Thread To Exit +=item Bigger Numbers -=item Ignoring A Thread +=back =back -=item Threads And Data +=head2 perlsub - Perl subroutines =over 4 -=item Shared And Unshared Data - -=item Thread Pitfalls: Races - -=back +=item SYNOPSIS -=item Synchronization and control +=item DESCRIPTION =over 4 -=item Controlling access: lock() +=item Private Variables via my() -=item A Thread Pitfall: Deadlocks +=item Persistent Private Variables -=item Queues: Passing Data Around +=item Temporary Values via local() -=item Semaphores: Synchronizing Data Access +=item Lvalue subroutines -=item Basic semaphores +Lvalue subroutines are EXPERIMENTAL -=item Advanced Semaphores +=item Passing Symbol Table Entries (typeglobs) -=item cond_wait() and cond_signal() +=item When to Still Use local() -=item Giving up control +=item Pass by Reference -=back +=item Prototypes -=item General Thread Utility Routines +=item Constant Functions -=over 4 +=item Overriding Built-in Functions -=item What Thread Am I In? +=item Autoloading -=item Thread IDs +=item Subroutine Attributes -=item Are These Threads The Same? +=back -=item What Threads Are Running? +=item SEE ALSO =back -=item A Complete Example +=head2 perlfunc - Perl builtin functions -=item Different implementations of threads +=over 4 -=item Performance considerations +=item DESCRIPTION -=item Process-scope Changes +=over 4 -=item Thread-Safety of System Libraries - -=item Conclusion - -=item Bibliography +=item Perl Functions by Category -=over 4 +Functions for SCALARs or strings, Regular expressions and pattern matching, +Numeric functions, Functions for real @ARRAYs, Functions for list data, +Functions for real %HASHes, Input and output functions, Functions for fixed +length data or records, Functions for filehandles, files, or directories, +Keywords related to the control flow of your perl program, Keywords related +to scoping, Miscellaneous functions, Functions for processes and process +groups, Keywords related to perl modules, Keywords related to classes and +object-orientedness, Low-level socket functions, System V interprocess +communication functions, Fetching user and group info, Fetching network +info, Time-related functions, Functions new in perl5, Functions obsoleted +in perl5 -=item Introductory Texts +=item Portability -=item OS-Related References +=item Alphabetical Listing of Perl Functions -=item Other References +-I FILEHANDLE, -I EXPR, -I, abs VALUE, abs, accept +NEWSOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bind SOCKET,NAME, +binmode FILEHANDLE, LAYER, binmode FILEHANDLE, bless REF,CLASSNAME, bless +REF, caller EXPR, caller, chdir EXPR, chmod LIST, chomp VARIABLE, chomp( +LIST ), chomp, chop VARIABLE, chop( LIST ), chop, chown LIST, chr NUMBER, +chr, chroot FILENAME, chroot, close FILEHANDLE, close, closedir DIRHANDLE, +connect SOCKET,NAME, continue BLOCK, cos EXPR, cos, crypt PLAINTEXT,SALT, +dbmclose HASH, dbmopen HASH,DBNAME,MASK, defined EXPR, defined, delete +EXPR, die LIST, do BLOCK, do SUBROUTINE(LIST), do EXPR, dump LABEL, dump, +each HASH, eof FILEHANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST, +exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntl +FILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHANDLE,OPERATION, +fork, format, formline PICTURE,LIST, getc FILEHANDLE, getc, getlogin, +getpeername SOCKET, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam +NAME, getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname +NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr +ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, +getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent, +getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent +STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, +endhostent, endnetent, endprotoent, endservent, getsockname SOCKET, +getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, goto LABEL, +goto EXPR, goto &NAME, grep BLOCK LIST, grep EXPR,LIST, hex EXPR, hex, +import, index STR,SUBSTR,POSITION, index STR,SUBSTR, int EXPR, int, ioctl +FILEHANDLE,FUNCTION,SCALAR, join EXPR,LIST, keys HASH, kill SIGNAL, LIST, +last LABEL, last, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length, +link OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR, +lock THING, log EXPR, log, lstat EXPR, lstat, m//, map BLOCK LIST, map +EXPR,LIST, mkdir FILENAME,MASK, mkdir FILENAME, msgctl ID,CMD,ARG, msgget +KEY,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, msgsnd ID,MSG,FLAGS, my EXPR, my +TYPE EXPR, my EXPR : ATTRS, my TYPE EXPR : ATTRS, next LABEL, next, no +Module VERSION LIST, no Module VERSION, no Module LIST, no Module, oct +EXPR, oct, open FILEHANDLE,EXPR, open FILEHANDLE,MODE,EXPR, open +FILEHANDLE,MODE,EXPR,LIST, open FILEHANDLE,MODE,REFERENCE, open FILEHANDLE, +opendir DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, our EXPR TYPE, our EXPR : +ATTRS, our TYPE EXPR : ATTRS, pack TEMPLATE,LIST, package NAMESPACE, +package, pipe READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR, pos, +print FILEHANDLE LIST, print LIST, print, printf FILEHANDLE FORMAT, LIST, +printf FORMAT, LIST, prototype FUNCTION, push ARRAY,LIST, q/STRING/, +qq/STRING/, qr/STRING/, qx/STRING/, qw/STRING/, quotemeta EXPR, quotemeta, +rand EXPR, rand, read FILEHANDLE,SCALAR,LENGTH,OFFSET, read +FILEHANDLE,SCALAR,LENGTH, readdir DIRHANDLE, readline EXPR, readlink EXPR, +readlink, readpipe EXPR, recv SOCKET,SCALAR,LENGTH,FLAGS, redo LABEL, redo, +ref EXPR, ref, rename OLDNAME,NEWNAME, require VERSION, require EXPR, +require, reset EXPR, reset, return EXPR, return, reverse LIST, rewinddir +DIRHANDLE, rindex STR,SUBSTR,POSITION, rindex STR,SUBSTR, rmdir FILENAME, +rmdir, s///, scalar EXPR, seek FILEHANDLE,POSITION,WHENCE, seekdir +DIRHANDLE,POS, select FILEHANDLE, select, select RBITS,WBITS,EBITS,TIMEOUT, +semctl ID,SEMNUM,CMD,ARG, semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, send +SOCKET,MSG,FLAGS,TO, send SOCKET,MSG,FLAGS, setpgrp PID,PGRP, setpriority +WHICH,WHO,PRIORITY, setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL, shift ARRAY, +shift, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread ID,VAR,POS,SIZE, +shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW, sin EXPR, sin, sleep +EXPR, sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL, socketpair +SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, sort SUBNAME LIST, sort BLOCK LIST, +sort LIST, splice ARRAY,OFFSET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH, +splice ARRAY,OFFSET, splice ARRAY, split /PATTERN/,EXPR,LIMIT, split +/PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST, format +parameter index, flags, vector flag, (minimum) width, precision, or maximum +width, size, order of arguments, sqrt EXPR, sqrt, srand EXPR, srand, stat +FILEHANDLE, stat EXPR, stat, study SCALAR, study, sub NAME BLOCK, sub NAME +(PROTO) BLOCK, sub NAME : ATTRS BLOCK, sub NAME (PROTO) : ATTRS BLOCK, +substr EXPR,OFFSET,LENGTH,REPLACEMENT, substr EXPR,OFFSET,LENGTH, substr +EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall LIST, sysopen +FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread +FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH, sysseek +FILEHANDLE,POSITION,WHENCE, system LIST, system PROGRAM LIST, syswrite +FILEHANDLE,SCALAR,LENGTH,OFFSET, syswrite FILEHANDLE,SCALAR,LENGTH, +syswrite FILEHANDLE,SCALAR, tell FILEHANDLE, tell, telldir DIRHANDLE, tie +VARIABLE,CLASSNAME,LIST, tied VARIABLE, time, times, tr///, truncate +FILEHANDLE,LENGTH, truncate EXPR,LENGTH, uc EXPR, uc, ucfirst EXPR, +ucfirst, umask EXPR, umask, undef EXPR, undef, unlink LIST, unlink, unpack +TEMPLATE,EXPR, unpack TEMPLATE, untie VARIABLE, unshift ARRAY,LIST, use +Module VERSION LIST, use Module VERSION, use Module LIST, use Module, use +VERSION, utime LIST, values HASH, vec EXPR,OFFSET,BITS, wait, waitpid +PID,FLAGS, wantarray, warn LIST, write FILEHANDLE, write EXPR, write, y/// =back -=item Acknowledgements - -=item AUTHOR - -=item Copyrights - =back -=head2 perlothrtut - old tutorial on threads in Perl +=head2 perlopentut - tutorial on opening things in Perl =over 4 =item DESCRIPTION -=item What Is A Thread Anyway? - -=item Threaded Program Models +=item Open E la shell =over 4 -=item Boss/Worker +=item Simple Opens -=item Work Crew +=item Indirect Filehandles -=item Pipeline +=item Pipe Opens -=back +=item The Minus File -=item Native threads +=item Mixing Reads and Writes -=item What kind of threads are perl threads? +=item Filters -=item Threadsafe Modules +=back -=item Thread Basics +=item Open E la C =over 4 -=item Basic Thread Support - -=item Creating Threads - -=item Giving up control - -=item Waiting For A Thread To Exit - -=item Errors In Threads - -=item Ignoring A Thread +=item Permissions E la mode =back -=item Threads And Data +=item Obscure Open Tricks =over 4 -=item Shared And Unshared Data +=item Re-Opening Files (dups) -=item Thread Pitfall: Races +=item Dispelling the Dweomer -=item Controlling access: lock() +=item Paths as Opens -=item Thread Pitfall: Deadlocks +=item Single Argument Open -=item Queues: Passing Data Around +=item Playing with STDIN and STDOUT =back -=item Threads And Code +=item Other I/O Issues =over 4 -=item Semaphores: Synchronizing Data Access +=item Opening Non-File Files -Basic semaphores, Advanced Semaphores +=item Opening Named Pipes -=item Attributes: Restricting Access To Subroutines +=item Opening Sockets -=item Subroutine Locks +=item Binary Files -=item Methods +=item File Locking -=item Locking A Subroutine +=item IO Layers =back -=item General Thread Utility Routines +=item SEE ALSO -=over 4 +=item AUTHOR and COPYRIGHT -=item What Thread Am I In? +=item HISTORY -=item Thread IDs +=back -=item Are These Threads The Same? +=head2 perlpacktut - tutorial on C and C -=item What Threads Are Running? +=over 4 -=back +=item DESCRIPTION -=item A Complete Example +=item The Basic Principle -=item Conclusion +=item Packing Text -=item Bibliography +=item Packing Numbers =over 4 -=item Introductory Texts +=item Integers -=item OS-Related References +=item Unpacking a Stack Frame -=item Other References +=item How to Eat an Egg on a Net + +=item Floating point Numbers =back -=item Acknowledgements +=item Exotic Templates -=item AUTHOR +=over 4 -=item Copyrights +=item Bit Strings -=back +=item Uuencoding -=head2 perlport - Writing portable Perl +=item Doing Sums -=over 4 +=item Unicode -=item DESCRIPTION +=item Another Portable Binary Encoding -Not all Perl programs have to be portable, Nearly all of Perl already I -portable +=back -=item ISSUES +=item Template Grouping -=over 4 +=item Lengths and Widths -=item Newlines +=over 4 -=item Numbers endianness and Width +=item String Lengths -=item Files and Filesystems +=item Dynamic Templates -=item System Interaction +=item Counting Repetitions -=item Command names versus file pathnames +=back -=item Networking +=item Packing and Unpacking C Structures -=item Interprocess Communication (IPC) +=over 4 -=item External Subroutines (XS) +=item The Alignment Pit -=item Standard Modules +=item Alignment, Take 2 -=item Time and Date +=item Alignment, Take 3 -=item Character sets and character encoding +=item Pointers for How to Use Them -=item Internationalisation +=back -=item System Resources +=item Pack Recipes -=item Security +=item Funnies Section -=item Style +=item Authors =back -=item CPAN Testers +=head2 perlpod - the Plain Old Documentation format -Mailing list: cpan-testers@perl.org, Testing results: -http://testers.cpan.org/ +=over 4 -=item PLATFORMS +=item DESCRIPTION =over 4 -=item Unix +=item Ordinary Paragraph -=item DOS and Derivatives +=item Verbatim Paragraph -=item S +=item Command Paragraph -=item VMS - -=item VOS - -=item EBCDIC Platforms - -=item Acorn RISC OS - -=item Other perls +C<=head1 I>, C<=head2 I>, C<=head3 I>, C<=head4 I>, C<=over I>, C<=item +I>, C<=back>, C<=cut>, C<=pod>, C<=begin I>, C<=end +I>, C<=for I I> -=back +=item Formatting Codes -=item FUNCTION IMPLEMENTATIONS +CtextE> -- italic text, CtextE> -- bold text, +CcodeE> -- code text, CnameE> -- a hyperlink, +CescapeE> -- a character escape, CfilenameE> -- used +for filenames, CtextE> -- text contains non-breaking spaces, +Ctopic nameE> -- an index entry, CE> -- a null +(zero-effect) formatting code -=over 4 +=item The Intent -=item Alphabetical Listing of Perl Functions +=item Embedding Pods in Perl Modules --I FILEHANDLE, -I EXPR, -I, alarm SECONDS, alarm, binmode -FILEHANDLE, chmod LIST, chown LIST, chroot FILENAME, chroot, crypt -PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MODE, dump LABEL, exec -LIST, exit EXPR, exit, fcntl FILEHANDLE,FUNCTION,SCALAR, flock -FILEHANDLE,OPERATION, fork, getlogin, getpgrp PID, getppid, getpriority -WHICH,WHO, getpwnam NAME, getgrnam NAME, getnetbyname NAME, getpwuid UID, -getgrgid GID, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, -getservbyport PORT,PROTO, getpwent, getgrent, gethostbyname, gethostent, -getnetent, getprotoent, getservent, sethostent STAYOPEN, setnetent -STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, -endhostent, endnetent, endprotoent, endservent, getsockopt -SOCKET,LEVEL,OPTNAME, glob EXPR, glob, ioctl FILEHANDLE,FUNCTION,SCALAR, -kill SIGNAL, LIST, link OLDFILE,NEWFILE, lstat FILEHANDLE, lstat EXPR, -lstat, msgctl ID,CMD,ARG, msgget KEY,FLAGS, msgsnd ID,MSG,FLAGS, msgrcv -ID,VAR,SIZE,TYPE,FLAGS, open FILEHANDLE,EXPR, open FILEHANDLE, pipe -READHANDLE,WRITEHANDLE, readlink EXPR, readlink, select -RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget -KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP, -setpriority WHICH,WHO,PRIORITY, setpwent, setsockopt -SOCKET,LEVEL,OPTNAME,OPTVAL, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, -shmread ID,VAR,POS,SIZE, shmwrite ID,STRING,POS,SIZE, sockatmark SOCKET, -socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, stat FILEHANDLE, stat -EXPR, stat, symlink OLDFILE,NEWFILE, syscall LIST, sysopen -FILEHANDLE,FILENAME,MODE,PERMS, system LIST, times, truncate -FILEHANDLE,LENGTH, truncate EXPR,LENGTH, umask EXPR, umask, utime LIST, -wait, waitpid PID,FLAGS +=item Hints for Writing Pod =back -=item CHANGES - -v1.49, 12 August 2002, v1.48, 02 February 2001, v1.47, 22 March 2000, -v1.46, 12 February 2000, v1.45, 20 December 1999, v1.44, 19 July 1999, -v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May 1999, v1.40, 11 April -1999, v1.39, 11 February 1999, v1.38, 31 December 1998, v1.37, 19 December -1998, v1.36, 9 September 1998, v1.35, 13 August 1998, v1.33, 06 August -1998, v1.32, 05 August 1998, v1.30, 03 August 1998, v1.23, 10 July 1998 - -=item Supported Platforms - =item SEE ALSO -=item AUTHORS / CONTRIBUTORS +=item AUTHOR =back -=head2 perllocale - Perl locale handling (internationalization and -localization) +=head2 perlpodspec - Plain Old Documentation: format specification and +notes =over 4 =item DESCRIPTION -=item PREPARING TO USE LOCALES - -=item USING LOCALES +=item Pod Definitions -=over 4 +=item Pod Commands -=item The use locale pragma +"=head1", "=head2", "=head3", "=head4", "=pod", "=cut", "=over", "=item", +"=back", "=begin formatname", "=end formatname", "=for formatname text..." -=item The setlocale function +=item Pod Formatting Codes -=item Finding locales +CtextE> -- italic text, CtextE> -- bold text, +CcodeE> -- code text, CfilenameE> -- style for +filenames, Ctopic nameE> -- an index entry, CE> -- a +null (zero-effect) formatting code, CnameE> -- a hyperlink, +CescapeE> -- a character escape, CtextE> -- text +contains non-breaking spaces -=item LOCALE PROBLEMS +=item Notes on Implementing Pod Processors -=item Temporarily fixing locale problems +=item About LE...E Codes -=item Permanently fixing locale problems +First:, Second:, Third:, Fourth:, Fifth:, Sixth: -=item Permanently fixing your system's locale configuration +=item About =over...=back Regions -=item Fixing system locale configuration +=item About Data Paragraphs and "=begin/=end" Regions -=item The localeconv function +=item SEE ALSO -=item I18N::Langinfo +=item AUTHOR =back -=item LOCALE CATEGORIES +=head2 perlrun - how to execute the Perl interpreter =over 4 -=item Category LC_COLLATE: Collation +=item SYNOPSIS -=item Category LC_CTYPE: Character Types +=item DESCRIPTION -=item Category LC_NUMERIC: Numeric Formatting +=over 4 -=item Category LC_MONETARY: Formatting of monetary amounts +=item #! and quoting on non-Unix systems -=item LC_TIME +OS/2, MS-DOS, Win95/NT, Macintosh, VMS -=item Other categories +=item Location of Perl -=back +=item Command Switches -=item SECURITY +B<-0>[I], B<-A [I]>, B<-a>, B<-C +[I]>, B<-c>, B<-d>, B<-d:>I, B<-D>I, +B<-D>I, B<-e> I, B<-F>I, B<-h>, +B<-i>[I], B<-I>I, B<-l>[I], +B<-m>[B<->]I, B<-M>[B<->]I, B<-M>[B<->]I<'module ...'>, +B<-[mM]>[B<->]I, B<-n>, B<-p>, B<-P>, B<-s>, B<-S>, +B<-t>, B<-T>, B<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I, B<-w>, B<-W>, +B<-X>, B<-x> I + +=back =item ENVIRONMENT -PERL_BADLANG, LC_ALL, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY, -LC_NUMERIC, LC_TIME, LANG +HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLIO, :bytes, :crlf, :mmap, +:perlio, :pop, :raw, :stdio, :unix, :utf8, :win32, PERLIO_DEBUG, PERLLIB, +PERL5DB, PERL5SHELL (specific to the Win32 port), PERL_DEBUG_MSTATS, +PERL_DESTRUCT_LEVEL, PERL_ENCODING, PERL_HASH_SEED, PERL_HASH_SEED_DEBUG, +PERL_ROOT (specific to the VMS port), PERL_SIGNALS, PERL_UNICODE, SYS$LOGIN +(specific to the VMS port) -=item NOTES +=back + +=head2 perldiag - various Perl diagnostics =over 4 -=item Backward compatibility +=item DESCRIPTION -=item I18N:Collate obsolete +=back -=item Sort speed and memory use impacts +=head2 perllexwarn - Perl Lexical Warnings -=item write() and LC_NUMERIC +=over 4 -=item Freely available locale definitions +=item DESCRIPTION -=item I18n and l10n +=over 4 -=item An imperfect standard +=item Default Warnings and Optional Warnings -=back +=item What's wrong with B<-w> and C<$^W> -=item Unicode and UTF-8 +=item Controlling Warnings from the Command Line -=item BUGS +B<-w>, B<-W>, B<-X> -=over 4 +=item Backward Compatibility -=item Broken systems +=item Category Hierarchy + +=item Fatal Warnings + +=item Reporting Warnings from a Module =back +=item TODO + =item SEE ALSO -=item HISTORY +=item AUTHOR =back -=head2 perluniintro - Perl Unicode introduction +=head2 perldebug - Perl debugging =over 4 =item DESCRIPTION -=over 4 - -=item Unicode - -=item Perl's Unicode Support - -=item Perl's Unicode Model +=item The Perl Debugger -=item Unicode and EBCDIC +=over 4 -=item Creating Unicode +=item Debugger Commands -=item Handling Unicode +h, h [command], h h, p expr, x [maxdepth] expr, V [pkg [vars]], X [vars], y +[level [vars]], T, s [expr], n [expr], r, , c [line|sub], l, l +min+incr, l min-max, l line, l subname, -, v [line], f filename, /pattern/, +?pattern?, L [abw], S [[!]regex], t, t expr, b, b [line] [condition], b +subname [condition], b postpone subname [condition], b load filename, b +compile subname, B line, B *, a [line] command, A line, A *, w expr, W +expr, W *, o, o booloption .., o anyoption? .., o option=value .., < ?, < [ +command ], < *, << command, > ?, > command, > *, >> command, { ?, { [ +command ], { *, {{ command, ! number, ! -number, ! pattern, !! cmd, source +file, H -number, q or ^D, R, |dbcmd, ||dbcmd, command, m expr, M, man +[manpage] -=item Legacy Encodings +=item Configurable Options -=item Unicode I/O +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, C, +C -=item Displaying Unicode As Text +=item Debugger input/output -=item Special Cases +Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame +listing -=item Advanced Topics +=item Debugging compile-time statements -=item Miscellaneous +=item Debugger Customization -=item Questions With Answers +=item Readline Support -=item Hexadecimal Notation +=item Editor Support for Debugging -=item Further Resources +=item The Perl Profiler =back -=item UNICODE IN OLDER PERLS +=item Debugging regular expressions -=item SEE ALSO +=item Debugging memory usage -=item ACKNOWLEDGMENTS +=item SEE ALSO -=item AUTHOR, COPYRIGHT, AND LICENSE +=item BUGS =back -=head2 perlunicode - Unicode support in Perl +=head2 perlvar - Perl predefined variables =over 4 @@ -2457,964 +2367,908 @@ LC_NUMERIC, LC_TIME, LANG =over 4 -=item Important Caveats - -Input and Output Layers, Regular Expressions, C still needed to -enable UTF-8/UTF-EBCDIC in scripts - -=item Byte and Character Semantics - -=item Effects of Character Semantics - -=item Scripts - -=item Blocks - -=item User-Defined Character Properties - -=item Character Encodings for Input and Output - -=item Unicode Regular Expression Support Level - -=item Unicode Encodings +=item Predefined Names -=item Security Implications of Unicode - -=item Unicode in Perl on EBCDIC +$ARG, $_, $a, $b, $>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $', +$LAST_PAREN_MATCH, $+, $^N, @LAST_MATCH_END, @+, +HANDLE->input_line_number(EXPR), $INPUT_LINE_NUMBER, $NR, $, +IO::Handle->input_record_separator(EXPR), $INPUT_RECORD_SEPARATOR, $RS, $/, +HANDLE->autoflush(EXPR), $OUTPUT_AUTOFLUSH, $|, +IO::Handle->output_field_separator EXPR, $OUTPUT_FIELD_SEPARATOR, $OFS, $,, +IO::Handle->output_record_separator EXPR, $OUTPUT_RECORD_SEPARATOR, $ORS, +$\, $LIST_SEPARATOR, $", $SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $OFMT, $#, +HANDLE->format_page_number(EXPR), $FORMAT_PAGE_NUMBER, $%, +HANDLE->format_lines_per_page(EXPR), $FORMAT_LINES_PER_PAGE, $=, +HANDLE->format_lines_left(EXPR), $FORMAT_LINES_LEFT, $-, @LAST_MATCH_START, +@-, C<$`> is the same as C, C<$&> is the same as +C, C<$'> is the same as C, C<$1> is the same as C, C<$2> +is the same as C, C<$3> is the same as +C, HANDLE->format_name(EXPR), +$FORMAT_NAME, $~, HANDLE->format_top_name(EXPR), $FORMAT_TOP_NAME, $^, +IO::Handle->format_line_break_characters EXPR, +$FORMAT_LINE_BREAK_CHARACTERS, $:, IO::Handle->format_formfeed EXPR, +$FORMAT_FORMFEED, $^L, $ACCUMULATOR, $^A, $CHILD_ERROR, $?, ${^ENCODING}, +$OS_ERROR, $ERRNO, $!, %!, $EXTENDED_OS_ERROR, $^E, $EVAL_ERROR, $@, +$PROCESS_ID, $PID, $$, $REAL_USER_ID, $UID, $<, $EFFECTIVE_USER_ID, $EUID, +$>, $REAL_GROUP_ID, $GID, $(, $EFFECTIVE_GROUP_ID, $EGID, $), +$PROGRAM_NAME, $0, $[, $], $COMPILING, $^C, $DEBUGGING, $^D, +$SYSTEM_FD_MAX, $^F, $^H, %^H, $INPLACE_EDIT, $^I, $^M, $OSNAME, $^O, +${^OPEN}, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, +0x100, 0x200, 0x400, $LAST_REGEXP_CODE_RESULT, $^R, +$EXCEPTIONS_BEING_CAUGHT, $^S, $BASETIME, $^T, ${^TAINT}, ${^UNICODE}, +$PERL_VERSION, $^V, $WARNING, $^W, ${^WARNING_BITS}, $EXECUTABLE_NAME, $^X, +ARGV, $ARGV, @ARGV, ARGVOUT, @F, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG, +$SIG{expr} -=item Locales +=item Error Indicators -=item When Unicode Does Not Happen +=item Technical Note on the Syntax of Variable Names -=item Forcing Unicode in Perl (Or Unforcing Unicode in Perl) +=back -=item Using Unicode in XS +=item BUGS =back -=item BUGS +=head2 perlre - Perl regular expressions =over 4 -=item Interaction with Locales +=item DESCRIPTION -=item Interaction with Extensions +i, m, s, x -=item Speed +=over 4 -=item Porting code from perl-5.6.X +=item Regular Expressions + +[1], [2], [3], cntrl, graph, print, punct, xdigit + +=item Extended Patterns + +C<(?#text)>, C<(?imsx-imsx)>, C<(?:pattern)>, C<(?imsx-imsx:pattern)>, +C<(?=pattern)>, C<(?!pattern)>, C<(?<=pattern)>, C<(?, C<(?{ +code })>, C<(??{ code })>, C<< (?>pattern) >>, +C<(?(condition)yes-pattern|no-pattern)>, C<(?(condition)yes-pattern)> + +=item Backtracking + +=item Version 8 Regular Expressions + +=item Warning on \1 vs $1 + +=item Repeated patterns matching zero-length substring + +=item Combining pieces together + +C, C, C, C, C, C, +C, C, C, C, C, C<< (?>S) >>, C<(?=S)>, C<(?<=S)>, +C<(?!S)>, C<(?, C<(??{ EXPR })>, +C<(?(condition)yes-pattern|no-pattern)> + +=item Creating custom RE engines =back +=item BUGS + =item SEE ALSO =back -=head2 perlebcdic - Considerations for running Perl on EBCDIC platforms +=head2 perlreref - Perl Regular Expressions Reference =over 4 =item DESCRIPTION -=item COMMON CHARACTER CODE SETS - =over 4 -=item ASCII +=item OPERATORS -=item ISO 8859 +=item SYNTAX -=item Latin 1 (ISO 8859-1) +=item ESCAPE SEQUENCES -=item EBCDIC +=item CHARACTER CLASSES -=item 13 variant characters +=item ANCHORS -=item 0037 +=item QUANTIFIERS -=item 1047 +=item EXTENDED CONSTRUCTS -=item POSIX-BC +=item VARIABLES -=item Unicode code points versus EBCDIC code points +=item FUNCTIONS -=item Remaining Perl Unicode problems in EBCDIC +=item TERMINOLOGY -=item Unicode and UTF +=back -=item Using Encode +=item AUTHOR + +=item SEE ALSO + +=item THANKS =back -=item SINGLE OCTET TABLES +=head2 perlref - Perl references and nested data structures -recipe 0, recipe 1, recipe 2, recipe 3, recipe 4, recipe 5, recipe 6 +=over 4 -=item IDENTIFYING CHARACTER CODE SETS +=item NOTE -=item CONVERSIONS +=item DESCRIPTION =over 4 -=item tr/// +=item Making References -=item iconv +=item Using References -=item C RTL +=item Symbolic references -=back +=item Not-so-symbolic references -=item OPERATOR DIFFERENCES +=item Pseudo-hashes: Using an array as a hash -=item FUNCTION DIFFERENCES +=item Function Templates -chr(), ord(), pack(), print(), printf(), sort(), sprintf(), unpack() +=back -=item REGULAR EXPRESSION DIFFERENCES +=item WARNING -=item SOCKETS +=item SEE ALSO -=item SORTING +=back -=over 4 +=head2 perlform - Perl formats -=item Ignore ASCII vs. EBCDIC sort differences. +=over 4 -=item MONO CASE then sort data. +=item DESCRIPTION -=item Convert, sort data, then re convert. +=over 4 -=item Perform sorting on one type of machine only. +=item Format Variables =back -=item TRANSFORMATION FORMATS +=item NOTES =over 4 -=item URL decoding and encoding +=item Footers -=item uu encoding and decoding +=item Accessing Formatting Internals -=item Quoted-Printable encoding and decoding +=back -=item Caesarian ciphers +=item WARNINGS =back -=item Hashing order and checksums - -=item I18N AND L10N +=head2 perlobj - Perl objects -=item MULTI OCTET CHARACTER SETS +=over 4 -=item OS ISSUES +=item DESCRIPTION =over 4 -=item OS/400 +=item An Object is Simply a Reference -PASE, IFS access +=item A Class is Simply a Package -=item OS/390, z/OS +=item A Method is Simply a Subroutine -chcp, dataset access, OS/390, z/OS iconv, locales +=item Method Invocation -=item VM/ESA? +=item Indirect Object Syntax -=item POSIX-BC? +=item Default UNIVERSAL methods -=back +isa(CLASS), can(METHOD), VERSION( [NEED] ) -=item BUGS +=item Destructors -=item SEE ALSO +=item Summary -=item REFERENCES +=item Two-Phased Garbage Collection -=item HISTORY +=back -=item AUTHOR +=item SEE ALSO =back -=head2 perlsec - Perl security +=head2 perltie - how to hide an object class in a simple variable =over 4 +=item SYNOPSIS + =item DESCRIPTION =over 4 -=item Laundering and Detecting Tainted Data +=item Tying Scalars -=item Switches On the "#!" Line +TIESCALAR classname, LIST, FETCH this, STORE this, value, UNTIE this, +DESTROY this -=item Cleaning Up Your Path +=item Tying Arrays -=item Security Bugs +TIEARRAY classname, LIST, FETCH this, index, STORE this, index, value, +FETCHSIZE this, STORESIZE this, count, EXTEND this, count, EXISTS this, +key, DELETE this, key, CLEAR this, PUSH this, LIST, POP this, SHIFT this, +UNSHIFT this, LIST, SPLICE this, offset, length, LIST, UNTIE this, DESTROY +this -=item Protecting Your Programs +=item Tying Hashes -=item Unicode +USER, HOME, CLOBBER, LIST, TIEHASH classname, LIST, FETCH this, key, STORE +this, key, value, DELETE this, key, CLEAR this, EXISTS this, key, FIRSTKEY +this, NEXTKEY this, lastkey, UNTIE this, DESTROY this -=item Algorithmic Complexity Attacks +=item Tying FileHandles + +TIEHANDLE classname, LIST, WRITE this, LIST, PRINT this, LIST, PRINTF this, +LIST, READ this, LIST, READLINE this, GETC this, CLOSE this, UNTIE this, +DESTROY this + +=item UNTIE this + +=item The C Gotcha =back =item SEE ALSO -=back +=item BUGS -=head2 perlmod - Perl modules (packages and symbol tables) +=item AUTHOR -=over 4 +=back -=item DESCRIPTION +=head2 perldbmfilter - Perl DBM Filters =over 4 -=item Packages +=item SYNOPSIS -=item Symbol Tables +=item DESCRIPTION -=item Package Constructors and Destructors +B, B, B, +B -=item Perl Classes +=over 4 -=item Perl Modules +=item The Filter -=item Making your module threadsafe +=item An Example -- the NULL termination problem. + +=item Another Example -- Key is a C int. =back =item SEE ALSO +=item AUTHOR + =back -=head2 perlmodinstall - Installing CPAN Modules +=head2 perlipc - Perl interprocess communication (signals, fifos, pipes, +safe subprocesses, sockets, and semaphores) =over 4 =item DESCRIPTION +=item Signals + =over 4 -=item PREAMBLE - -B the file, B the file into a directory, B the -module (sometimes unnecessary), B the module +=item Handling the SIGHUP Signal in Daemons =back -=item PORTABILITY +=item Named Pipes -=item HEY +=over 4 -=item AUTHOR +=item Deferred Signals (Safe signals) -=item COPYRIGHT +Long running opcodes, Interrupting IO, Restartable system calls, Signals as +"faults", Signals triggered by operating system state =back -=head2 perlmodlib - constructing new Perl modules and finding existing ones +=item Using open() for IPC =over 4 -=item THE PERL MODULE LIBRARY - -=over 4 +=item Filehandles -=item Pragmatic Modules +=item Background Processes -assertions, assertions::activate, attributes, attrs, autouse, base, bigint, -bignum, bigrat, blib, bytes, charnames, constant, diagnostics, encoding, -fields, filetest, if, integer, less, lib, locale, open, ops, overload, re, -sigtrap, sort, strict, subs, threads, threads::shared, utf8, vars, version, -vmsish, warnings, warnings::register +=item Complete Dissociation of Child from Parent -=item Standard Modules +=item Safe Pipe Opens -AnyDBM_File, Attribute::Handlers, AutoLoader, AutoSplit, B, 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, Benchmark, ByteLoader, CGI, CGI::Apache, CGI::Carp, -CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push, CGI::Switch, CGI::Util, -CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Carp::Heavy, Class::ISA, -Class::Struct, Config, Cwd, DB, DB_File, Data::Dumper, Devel::DProf, -Devel::PPPort, Devel::Peek, Devel::SelfStubber, Digest, Digest::MD5, -DirHandle, Dumpvalue, DynaLoader, Encode, Encode::Alias, Encode::Byte, -Encode::CJKConstants, Encode::CN, Encode::CN::HZ, Encode::Config, -Encode::EBCDIC, Encode::Encoder, Encode::Encoding, Encode::Guess, -Encode::JP, Encode::JP::H2Z, Encode::JP::JIS7, Encode::KR, -Encode::KR::2022_KR, Encode::MIME::Header, Encode::PerlIO, -Encode::Supported, Encode::Symbol, Encode::TW, Encode::Unicode, -Encode::Unicode::UTF7, English, Env, Errno, Exporter, Exporter::Heavy, -ExtUtils::Command, ExtUtils::Command::MM, ExtUtils::Constant, -ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist, -ExtUtils::MM, ExtUtils::MM_Any, ExtUtils::MM_BeOS, ExtUtils::MM_Cygwin, -ExtUtils::MM_DOS, ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2, -ExtUtils::MM_UWIN, ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_Win32, -ExtUtils::MM_Win95, ExtUtils::MY, ExtUtils::MakeMaker, -ExtUtils::MakeMaker::FAQ, ExtUtils::MakeMaker::Tutorial, -ExtUtils::MakeMaker::bytes, ExtUtils::MakeMaker::vmsish, -ExtUtils::Manifest, ExtUtils::Mkbootstrap, ExtUtils::Mksymlists, -ExtUtils::Packlist, ExtUtils::testlib, Fatal, Fcntl, File::Basename, -File::CheckTree, File::Compare, File::Copy, File::DosGlob, File::Find, -File::Glob, File::Path, File::Spec, File::Spec::Cygwin, File::Spec::Epoc, -File::Spec::Functions, File::Spec::Mac, File::Spec::OS2, File::Spec::Unix, -File::Spec::VMS, File::Spec::Win32, File::Temp, File::stat, FileCache, -FileHandle, Filter::Simple, Filter::Util::Call, FindBin, GDBM_File, -Getopt::Long, Getopt::Std, Hash::Util, I18N::Collate, I18N::LangTags, -I18N::LangTags::List, I18N::Langinfo, IO, IO::Dir, IO::File, IO::Handle, -IO::Pipe, IO::Poll, IO::Seekable, IO::Select, IO::Socket, IO::Socket::INET, -IO::Socket::UNIX, IPC::Open2, IPC::Open3, IPC::SysV, IPC::SysV::Msg, -IPC::SysV::Semaphore, List::Util, Locale::Constants, Locale::Country, -Locale::Currency, Locale::Language, Locale::Maketext, -Locale::Maketext::TPJ13, Locale::Script, MIME::Base64, -MIME::Base64::QuotedPrint, Math::BigFloat, Math::BigInt, -Math::BigInt::Calc, Math::BigInt::Scalar, Math::BigRat, Math::Complex, -Math::Trig, Memoize, Memoize::AnyDBM_File, Memoize::Expire, -Memoize::ExpireFile, Memoize::ExpireTest, Memoize::NDBM_File, -Memoize::SDBM_File, Memoize::Storable, NDBM_File, NEXT, Net::Cmd, -Net::Config, Net::Domain, Net::FTP, Net::NNTP, Net::Netrc, Net::POP3, -Net::Ping, Net::SMTP, Net::Time, Net::hostent, Net::libnetFAQ, Net::netent, -Net::protoent, Net::servent, O, ODBM_File, Opcode, POSIX, PerlIO, -PerlIO::encoding, PerlIO::scalar, PerlIO::via, PerlIO::via::QuotedPrint, -Pod::Checker, Pod::Find, Pod::Functions, Pod::Html, Pod::InputObjects, -Pod::LaTeX, Pod::Man, Pod::ParseLink, Pod::ParseUtils, Pod::Parser, -Pod::Perldoc::ToChecker, Pod::Perldoc::ToMan, Pod::Perldoc::ToNroff, -Pod::Perldoc::ToPod, Pod::Perldoc::ToRtf, Pod::Perldoc::ToText, -Pod::Perldoc::ToTk, Pod::Perldoc::ToXml, Pod::PlainText, Pod::Plainer, -Pod::Select, Pod::Text, Pod::Text::Color, Pod::Text::Overstrike, -Pod::Text::Termcap, Pod::Usage, SDBM_File, Safe, Scalar::Util, -Search::Dict, SelectSaver, SelfLoader, Shell, Socket, Storable, Switch, -Symbol, Sys::Hostname, Sys::Syslog, Term::ANSIColor, Term::Cap, -Term::Complete, Term::ReadLine, Test, Test::Builder, Test::Harness, -Test::Harness::Assert, Test::Harness::Iterator, Test::Harness::Straps, -Test::More, Test::Simple, Test::Tutorial, Text::Abbrev, Text::Balanced, -Text::ParseWords, Text::Soundex, Text::Tabs, Text::Wrap, Thread, -Thread::Queue, Thread::Semaphore, Thread::Signal, Thread::Specific, -Tie::Array, Tie::File, Tie::Handle, Tie::Hash, Tie::Memoize, Tie::RefHash, -Tie::Scalar, Tie::SubstrHash, Time::HiRes, Time::Local, Time::gmtime, -Time::localtime, Time::tm, UNIVERSAL, Unicode::Collate, Unicode::Normalize, -Unicode::UCD, User::grent, User::pwent, Win32, XS::APItest, XS::Typemap, -XSLoader +=item Bidirectional Communication with Another Process -=item Extension Modules +=item Bidirectional Communication with Yourself =back -=item CPAN +=item Sockets: Client/Server Communication =over 4 -=item Africa - -South Africa - -=item Asia - -China, Indonesia, Israel, Japan, Malaysia, Russian Federation, Saudi -Arabia, Singapore, South Korea, Taiwan - -=item Central America - -Costa Rica +=item Internet Line Terminators -=item Europe +=item Internet TCP Clients and Servers -Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Estonia, -Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, -Lithuania, Netherlands, Norway, Poland, Portugal, Romania, Russia, -Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey, Ukraine, United -Kingdom +=item Unix-Domain TCP Clients and Servers -=item North America +=back -Canada, Alberta, Manitoba, Nova Scotia, Ontario, Mexico, United States, -Alabama, California, Colorado, Delaware, District of Columbia, Florida, -Illinois, Indiana, Kentucky, Massachusetts, Michigan, Nevada, New Jersey, -New York, North Carolina, Oklahoma, Oregon, Pennsylvania, Tennessee, Texas, -Utah, Virginia, Washington, Wisconsin +=item TCP Clients with IO::Socket -=item Oceania +=over 4 -Australia, New Zealand, United States +=item A Simple Client -=item South America +C, C, C -Argentina, Brazil, Chile +=item A Webget Client -=item RSYNC Mirrors +=item Interactive Client with IO::Socket =back -=item Modules: Creation, Use, and Abuse +=item TCP Servers with IO::Socket -=over 4 +Proto, LocalPort, Listen, Reuse -=item Guidelines for Module Creation +=item UDP: Message Passing -=item Guidelines for Converting Perl 4 Library Scripts into Modules +=item SysV IPC -=item Guidelines for Reusing Application Code +=item NOTES -=back +=item BUGS -=item NOTE +=item AUTHOR + +=item SEE ALSO =back -=head2 perlmodstyle - Perl module style guide +=head2 perlfork - Perl's fork() emulation =over 4 -=item INTRODUCTION +=item SYNOPSIS -=item QUICK CHECKLIST +=item DESCRIPTION =over 4 -=item Before you start +=item Behavior of other Perl features in forked pseudo-processes -=item The API +$$ or $PROCESS_ID, %ENV, chdir() and all other builtins that accept +filenames, wait() and waitpid(), kill(), exec(), exit(), Open handles to +files, directories and network sockets -=item Stability +=item Resource limits -=item Documentation +=item Killing the parent process -=item Release considerations +=item Lifetime of the parent process and pseudo-processes -=back +=item CAVEATS AND LIMITATIONS -=item BEFORE YOU START WRITING A MODULE +BEGIN blocks, Open filehandles, Forking pipe open() not yet implemented, +Global state maintained by XSUBs, Interpreter embedded in larger +application, Thread-safety of extensions -=over 4 +=back -=item Has it been done before? +=item BUGS -=item Do one thing and do it well +=item AUTHOR -=item What's in a name? +=item SEE ALSO =back -=item DESIGNING AND WRITING YOUR MODULE +=head2 perlnumber - semantics of numbers and numeric operations in Perl =over 4 -=item To OO or not to OO? +=item SYNOPSIS -=item Designing your API +=item DESCRIPTION -Write simple routines to do simple things, Separate functionality from -output, Provide sensible shortcuts and defaults, Naming conventions, -Parameter passing +=item Storing numbers -=item Strictness and warnings +=item Numeric operators and numeric conversions -=item Backwards compatibility +=item Flavors of Perl numeric operations -=item Error handling and messages +Arithmetic operators, ++, Arithmetic operators during C, Other +mathematical operators, Bitwise operators, Bitwise operators during C, Operators which expect an integer, Operators which expect a +string + +=item AUTHOR + +=item SEE ALSO =back -=item DOCUMENTING YOUR MODULE +=head2 perlthrtut - tutorial on threads in Perl =over 4 -=item POD - -=item README, INSTALL, release notes, changelogs +=item DESCRIPTION -perl Makefile.PL, make, make test, make install, perl Build.PL, perl Build, -perl Build test, perl Build install +=item Status -=back +=item What Is A Thread Anyway? -=item RELEASE CONSIDERATIONS +=item Threaded Program Models =over 4 -=item Version numbering - -=item Pre-requisites - -=item Testing +=item Boss/Worker -=item Packaging +=item Work Crew -=item Licensing +=item Pipeline =back -=item COMMON PITFALLS +=item What kind of threads are Perl threads? -=over 4 +=item Thread-Safe Modules -=item Reinventing the wheel +=item Thread Basics -=item Trying to do too much +=over 4 -=item Inappropriate documentation +=item Basic Thread Support -=back +=item A Note about the Examples -=item SEE ALSO +=item Creating Threads -L, L, L, L, Packaging Tools, -Testing tools, http://pause.perl.org/, Any good book on software -engineering +=item Waiting For A Thread To Exit -=item AUTHOR +=item Ignoring A Thread =back -=head2 perlnewmod - preparing a new module for distribution +=item Threads And Data =over 4 -=item DESCRIPTION +=item Shared And Unshared Data -=over 4 +=item Thread Pitfalls: Races -=item Warning +=back -=item What should I make into a module? +=item Synchronization and control -=item Step-by-step: Preparing the ground +=over 4 -Look around, Check it's new, Discuss the need, Choose a name, Check again +=item Controlling access: lock() -=item Step-by-step: Making the module +=item A Thread Pitfall: Deadlocks -Start with F, Use L and L, Use -L, Use L - wisely!, Use L, Write tests, Write the README +=item Queues: Passing Data Around -=item Step-by-step: Distributing your module +=item Semaphores: Synchronizing Data Access -Get a CPAN user ID, C, Upload the -tarball, Announce to the modules list, Announce to clpa, Fix bugs! +=item Basic semaphores -=back +=item Advanced Semaphores -=item AUTHOR +=item cond_wait() and cond_signal() -=item SEE ALSO +=item Giving up control =back -=head2 perlfaq1 - General Questions About Perl ($Revision: 1.12 $, $Date: -2003/07/09 15:47:28 $) +=item General Thread Utility Routines =over 4 -=item DESCRIPTION +=item What Thread Am I In? -=over 4 +=item Thread IDs -=item What is Perl? +=item Are These Threads The Same? -=item Who supports Perl? Who develops it? Why is it free? +=item What Threads Are Running? -=item Which version of Perl should I use? +=back -=item What are perl4 and perl5? +=item A Complete Example -=item What is Ponie? +=item Different implementations of threads -=item What is perl6? +=item Performance considerations -=item How stable is Perl? +=item Process-scope Changes -=item Is Perl difficult to learn? +=item Thread-Safety of System Libraries -=item How does Perl compare with other languages like Java, Python, REXX, -Scheme, or Tcl? +=item Conclusion -=item Can I do [task] in Perl? +=item Bibliography -=item When shouldn't I program in Perl? +=over 4 -=item What's the difference between "perl" and "Perl"? +=item Introductory Texts -=item Is it a Perl program or a Perl script? +=item OS-Related References -=item What is a JAPH? +=item Other References -=item Where can I get a list of Larry Wall witticisms? +=back -=item How can I convince my sysadmin/supervisor/employees to use version -5/5.6.1/Perl instead of some other language? +=item Acknowledgements -=back +=item AUTHOR -=item AUTHOR AND COPYRIGHT +=item Copyrights =back -=head2 perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.20 $, -$Date: 2003/01/26 17:50:56 $) +=head2 perlothrtut - old tutorial on threads in Perl =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 What Is A Thread Anyway? -=item I grabbed the sources and tried to compile but gdbm/dynamic -loading/malloc/linking/... failed. How do I make it work? +=item Threaded Program Models -=item What modules and extensions are available for Perl? What is CPAN? -What does CPAN/src/... mean? +=over 4 -=item Is there an ISO or ANSI certified version of Perl? +=item Boss/Worker -=item Where can I get information on Perl? +=item Work Crew -=item What are the Perl newsgroups on Usenet? Where do I post questions? +=item Pipeline -=item Where should I post source code? +=back -=item Perl Books +=item Native threads -References, Tutorials, Task-Oriented, Special Topics +=item What kind of threads are perl threads? -=item Perl in Magazines +=item Threadsafe Modules -=item Perl on the Net: FTP and WWW Access +=item Thread Basics -=item What mailing lists are there for Perl? +=over 4 -=item Archives of comp.lang.perl.misc +=item Basic Thread Support -=item Where can I buy a commercial version of Perl? +=item Creating Threads -=item Where do I send bug reports? +=item Giving up control -=item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? +=item Waiting For A Thread To Exit -=back +=item Errors In Threads -=item AUTHOR AND COPYRIGHT +=item Ignoring A Thread =back -=head2 perlfaq3 - Programming Tools ($Revision: 1.33 $, $Date: 2003/01/31 -17:34:56 $) - -=over 4 - -=item DESCRIPTION +=item Threads And Data =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 Shared And Unshared Data -=item How do I debug my Perl programs? +=item Thread Pitfall: Races -=item How do I profile my Perl programs? +=item Controlling access: lock() -=item How do I cross-reference my Perl programs? +=item Thread Pitfall: Deadlocks -=item Is there a pretty-printer (formatter) for Perl? +=item Queues: Passing Data Around -=item Is there a ctags for Perl? +=back -=item Is there an IDE or Windows Perl Editor? +=item Threads And Code -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 +=over 4 -=item Where can I get Perl macros for vi? +=item Semaphores: Synchronizing Data Access -=item Where can I get perl-mode for emacs? +Basic semaphores, Advanced Semaphores -=item How can I use curses with Perl? +=item Attributes: Restricting Access To Subroutines -=item How can I use X or Tk with Perl? +=item Subroutine Locks -=item How can I generate simple menus without using CGI or Tk? +=item Methods -=item How can I make my Perl program run faster? +=item Locking A Subroutine -=item How can I make my Perl program take less memory? +=back -Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and -stringification, Pass by reference, Tie large variables to disk +=item General Thread Utility Routines -=item Is it safe to return a reference to local or lexical data? +=over 4 -=item How can I free an array or hash so my program shrinks? +=item What Thread Am I In? -=item How can I make my CGI script more efficient? +=item Thread IDs -=item How can I hide the source for my Perl program? +=item Are These Threads The Same? -=item How can I compile my Perl program into byte code or C? +=item What Threads Are Running? -=item How can I compile Perl into Java? +=back -=item How can I get C<#!perl> to work on [MS-DOS,NT,...]? +=item A Complete Example -=item Can I write useful Perl programs on the command line? +=item Conclusion -=item Why don't Perl one-liners work on my DOS/Mac/VMS system? +=item Bibliography -=item Where can I learn about CGI or Web programming in Perl? +=over 4 -=item Where can I learn about object-oriented Perl programming? +=item Introductory Texts -=item Where can I learn about linking C with Perl? [h2xs, xsubpp] +=item OS-Related References -=item I've read perlembed, perlguts, etc., but I can't embed perl in -my C program; what am I doing wrong? +=item Other References -=item When I tried to run my script, I got this message. What does it mean? +=back -=item What's MakeMaker? +=item Acknowledgements -=back +=item AUTHOR -=item AUTHOR AND COPYRIGHT +=item Copyrights =back -=head2 perlfaq4 - Data Manipulation ($Revision: 1.44 $, $Date: 2003/07/28 -17:35:21 $) +=head2 perlport - Writing portable Perl =over 4 =item DESCRIPTION -=item Data: Numbers +Not all Perl programs have to be portable, Nearly all of Perl already I +portable + +=item ISSUES =over 4 -=item Why am I getting long decimals (eg, 19.9499999999999) instead of the -numbers I should be getting (eg, 19.95)? +=item Newlines -=item Why isn't my octal data interpreted correctly? +=item Numbers endianness and Width -=item Does Perl have a round() function? What about ceil() and floor()? -Trig functions? +=item Files and Filesystems -=item How do I convert between numeric representations? +=item System Interaction -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 Command names versus file pathnames -=item Why doesn't & work the way I want it to? +=item Networking -=item How do I multiply matrices? +=item Interprocess Communication (IPC) -=item How do I perform an operation on a series of integers? +=item External Subroutines (XS) -=item How can I output Roman numerals? +=item Standard Modules -=item Why aren't my random numbers random? +=item Time and Date -=item How do I get a random number between X and Y? +=item Character sets and character encoding -=back +=item Internationalisation -=item Data: Dates +=item System Resources -=over 4 +=item Security -=item How do I find the day or week of the year? +=item Style -=item How can I compare two dates and find the difference? +=back -=item How can I take a string and turn it into epoch seconds? +=item CPAN Testers -=item How can I find the Julian Day? +Mailing list: cpan-testers@perl.org, Testing results: +http://testers.cpan.org/ -=item How do I find yesterday's date? - -=item Does Perl have a Year 2000 problem? Is Perl Y2K compliant? - -=back - -=item Data: Strings +=item PLATFORMS =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 Unix -=item How do I expand function calls in a string? +=item DOS and Derivatives -=item How do I find matching/nesting anything? +=item S -=item How do I reverse a string? +=item VMS -=item How do I expand tabs in a string? +=item VOS -=item How do I reformat a paragraph? +=item EBCDIC Platforms -=item How can I access or change N characters of a string? +=item Acorn RISC OS -=item How do I change the Nth occurrence of something? +=item Other perls -=item How can I count the number of occurrences of a substring within a -string? +=back -=item How do I capitalize all the words on one line? +=item FUNCTION IMPLEMENTATIONS -=item How can I split a [character] delimited string except when inside -[character]? +=over 4 -=item How do I strip blank space from the beginning/end of a string? +=item Alphabetical Listing of Perl Functions -=item How do I pad a string with blanks or pad a number with zeroes? +-I FILEHANDLE, -I EXPR, -I, alarm SECONDS, alarm, binmode +FILEHANDLE, chmod LIST, chown LIST, chroot FILENAME, chroot, crypt +PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MODE, dump LABEL, exec +LIST, exit EXPR, exit, fcntl FILEHANDLE,FUNCTION,SCALAR, flock +FILEHANDLE,OPERATION, fork, getlogin, getpgrp PID, getppid, getpriority +WHICH,WHO, getpwnam NAME, getgrnam NAME, getnetbyname NAME, getpwuid UID, +getgrgid GID, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, +getservbyport PORT,PROTO, getpwent, getgrent, gethostbyname, gethostent, +getnetent, getprotoent, getservent, sethostent STAYOPEN, setnetent +STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, +endhostent, endnetent, endprotoent, endservent, getsockopt +SOCKET,LEVEL,OPTNAME, glob EXPR, glob, ioctl FILEHANDLE,FUNCTION,SCALAR, +kill SIGNAL, LIST, link OLDFILE,NEWFILE, lstat FILEHANDLE, lstat EXPR, +lstat, msgctl ID,CMD,ARG, msgget KEY,FLAGS, msgsnd ID,MSG,FLAGS, msgrcv +ID,VAR,SIZE,TYPE,FLAGS, open FILEHANDLE,EXPR, open FILEHANDLE, pipe +READHANDLE,WRITEHANDLE, readlink EXPR, readlink, select +RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget +KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP, +setpriority WHICH,WHO,PRIORITY, setpwent, setsockopt +SOCKET,LEVEL,OPTNAME,OPTVAL, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, +shmread ID,VAR,POS,SIZE, shmwrite ID,STRING,POS,SIZE, sockatmark SOCKET, +socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, stat FILEHANDLE, stat +EXPR, stat, symlink OLDFILE,NEWFILE, syscall LIST, sysopen +FILEHANDLE,FILENAME,MODE,PERMS, system LIST, times, truncate +FILEHANDLE,LENGTH, truncate EXPR,LENGTH, umask EXPR, umask, utime LIST, +wait, waitpid PID,FLAGS -=item How do I extract selected columns from a string? +=back -=item How do I find the soundex value of a string? +=item CHANGES -=item How can I expand variables in text strings? +v1.49, 12 August 2002, v1.48, 02 February 2001, v1.47, 22 March 2000, +v1.46, 12 February 2000, v1.45, 20 December 1999, v1.44, 19 July 1999, +v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May 1999, v1.40, 11 April +1999, v1.39, 11 February 1999, v1.38, 31 December 1998, v1.37, 19 December +1998, v1.36, 9 September 1998, v1.35, 13 August 1998, v1.33, 06 August +1998, v1.32, 05 August 1998, v1.30, 03 August 1998, v1.23, 10 July 1998 -=item What's wrong with always quoting "$vars"? +=item Supported Platforms -=item Why don't my EEHERE documents work? +=item SEE ALSO -There must be no space after the EE part, There (probably) should -be a semicolon at the end, You can't (easily) have any space in front of -the tag +=item AUTHORS / CONTRIBUTORS =back -=item Data: Arrays +=head2 perllocale - Perl locale handling (internationalization and +localization) =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 DESCRIPTION -=item How can I tell whether a certain element is contained in a list or -array? +=item PREPARING TO USE LOCALES -=item How do I compute the difference of two arrays? How do I compute the -intersection of two arrays? +=item USING LOCALES -=item How do I test whether two arrays or hashes are equal? +=over 4 -=item How do I find the first array element for which a condition is true? +=item The use locale pragma -=item How do I handle linked lists? +=item The setlocale function -=item How do I handle circular lists? +=item Finding locales -=item How do I shuffle an array randomly? +=item LOCALE PROBLEMS -=item How do I process/modify each element of an array? +=item Temporarily fixing locale problems -=item How do I select a random element from an array? +=item Permanently fixing locale problems -=item How do I permute N elements of a list? +=item Permanently fixing your system's locale configuration -=item How do I sort an array by (anything)? +=item Fixing system locale configuration -=item How do I manipulate arrays of bits? +=item The localeconv function -=item Why does defined() return true on empty arrays and hashes? +=item I18N::Langinfo =back -=item Data: Hashes (Associative Arrays) +=item LOCALE CATEGORIES =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 Category LC_COLLATE: Collation -=item How do I look up a hash element by value? +=item Category LC_CTYPE: Character Types -=item How can I know how many entries are in a hash? +=item Category LC_NUMERIC: Numeric Formatting -=item How do I sort a hash (optionally by value instead of key)? +=item Category LC_MONETARY: Formatting of monetary amounts -=item How can I always keep my hash sorted? +=item LC_TIME -=item What's the difference between "delete" and "undef" with hashes? +=item Other categories -=item Why don't my tied hashes make the defined/exists distinction? +=back -=item How do I reset an each() operation part-way through? +=item SECURITY -=item How can I get the unique keys from two hashes? +=item ENVIRONMENT -=item How can I store a multidimensional array in a DBM file? +PERL_BADLANG, LC_ALL, LANGUAGE, LC_CTYPE, LC_COLLATE, LC_MONETARY, +LC_NUMERIC, LC_TIME, LANG -=item How can I make my hash remember the order I put elements into it? +=item NOTES -=item Why does passing a subroutine an undefined element in a hash create -it? +=over 4 -=item How can I make the Perl equivalent of a C structure/C++ class/hash or -array of hashes or arrays? +=item Backward compatibility -=item How can I use a reference as a hash key? +=item I18N:Collate obsolete -=back +=item Sort speed and memory use impacts -=item Data: Misc +=item write() and LC_NUMERIC -=over 4 +=item Freely available locale definitions -=item How do I handle binary data correctly? +=item I18n and l10n -=item How do I determine whether a scalar is a number/whole/integer/float? +=item An imperfect standard -=item How do I keep persistent data across program calls? +=back -=item How do I print out or copy a recursive data structure? +=item Unicode and UTF-8 -=item How do I define methods for every class/object? +=item BUGS -=item How do I verify a credit card checksum? +=over 4 -=item How do I pack arrays of doubles or floats for XS code? +=item Broken systems =back -=item AUTHOR AND COPYRIGHT +=item SEE ALSO + +=item HISTORY =back -=head2 perlfaq5 - Files and Formats ($Revision: 1.28 $, $Date: 2003/01/26 -17:45:46 $) +=head2 perluniintro - Perl Unicode introduction =over 4 @@ -3422,162 +3276,238 @@ array of hashes or arrays? =over 4 -=item How do I flush/unbuffer an output filehandle? Why must I do this? +=item Unicode -=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 Perl's Unicode Support -=item How do I count the number of lines in a file? +=item Perl's Unicode Model -=item How can I use Perl's C<-i> option from within a program? +=item Unicode and EBCDIC -=item How do I make a temporary file name? +=item Creating Unicode -=item How can I manipulate fixed-record-length files? +=item Handling Unicode -=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 Legacy Encodings -=item How can I use a filehandle indirectly? +=item Unicode I/O -=item How can I set up a footer format to be used with write()? +=item Displaying Unicode As Text -=item How can I write() into a string? +=item Special Cases -=item How can I output my numbers with commas added? +=item Advanced Topics -=item How can I translate tildes (~) in a filename? +=item Miscellaneous -=item How come when I open a file read-write it wipes it out? +=item Questions With Answers -=item Why do I sometimes get an "Argument list too long" when I use -E*E? +=item Hexadecimal Notation -=item Is there a leak/bug in glob()? +=item Further Resources -=item How can I open a file with a leading ">" or trailing blanks? +=back -=item How can I reliably rename a file? +=item UNICODE IN OLDER PERLS -=item How can I lock a file? +=item SEE ALSO -=item Why can't I just open(FH, "Efile.lock")? +=item ACKNOWLEDGMENTS -=item I still don't get locking. I just want to increment the number in -the file. How can I do this? +=item AUTHOR, COPYRIGHT, AND LICENSE -=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? +=back -=item How do I randomly update a binary file? +=head2 perlunicode - Unicode support in Perl -=item How do I get a file's timestamp in perl? +=over 4 -=item How do I set a file's timestamp in perl? +=item DESCRIPTION -=item How do I print to more than one file at once? +=over 4 -=item How can I read in an entire file all at once? +=item Important Caveats -=item How can I read in a file by paragraphs? +Input and Output Layers, Regular Expressions, C still needed to +enable UTF-8/UTF-EBCDIC in scripts -=item How can I read a single character from a file? From the keyboard? +=item Byte and Character Semantics -=item How can I tell whether there's a character waiting on a filehandle? +=item Effects of Character Semantics -=item How do I do a C in perl? +=item Scripts -=item How do I dup() a filehandle in Perl? +=item Blocks -=item How do I close a file descriptor by number? +=item User-Defined Character Properties -=item Why can't I use "C:\temp\foo" in DOS paths? Why doesn't -`C:\temp\foo.exe` work? +=item Character Encodings for Input and Output -=item Why doesn't glob("*.*") get all the files? +=item Unicode Regular Expression Support Level -=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 Unicode Encodings -=item How do I select a random line from a file? +=item Security Implications of Unicode -=item Why do I get weird spaces when I print an array of lines? +=item Unicode in Perl on EBCDIC + +=item Locales + +=item When Unicode Does Not Happen + +=item Forcing Unicode in Perl (Or Unforcing Unicode in Perl) + +=item Using Unicode in XS =back -=item AUTHOR AND COPYRIGHT +=item BUGS + +=over 4 + +=item Interaction with Locales + +=item Interaction with Extensions + +=item Speed + +=item Porting code from perl-5.6.X =back -=head2 perlfaq6 - Regular Expressions ($Revision: 1.20 $, $Date: 2003/01/03 -20:05:28 $) +=item SEE ALSO + +=back + +=head2 perlebcdic - Considerations for running Perl on EBCDIC platforms =over 4 =item DESCRIPTION +=item COMMON CHARACTER CODE SETS + =over 4 -=item How can I hope to use regular expressions without creating illegible -and unmaintainable code? +=item ASCII -Comments Outside the Regex, Comments Inside the Regex, Different Delimiters +=item ISO 8859 -=item I'm having trouble matching over more than one line. What's wrong? +=item Latin 1 (ISO 8859-1) -=item How can I pull out lines between two patterns that are themselves on -different lines? +=item EBCDIC -=item I put a regular expression into $/ but it didn't work. What's wrong? +=item 13 variant characters -=item How do I substitute case insensitively on the LHS while preserving -case on the RHS? +=item 0037 -=item How can I make C<\w> match national character sets? +=item 1047 -=item How can I match a locale-smart version of C? +=item POSIX-BC -=item How can I quote a variable to use in a regex? +=item Unicode code points versus EBCDIC code points -=item What is C really for? +=item Remaining Perl Unicode problems in EBCDIC -=item How do I use a regular expression to strip C style comments from a -file? +=item Unicode and UTF -=item Can I use Perl regular expressions to match balanced text? +=item Using Encode -=item What does it mean that regexes are greedy? How can I get around it? +=back -=item How do I process each word on each line? +=item SINGLE OCTET TABLES -=item How can I print out a word-frequency or line-frequency summary? +recipe 0, recipe 1, recipe 2, recipe 3, recipe 4, recipe 5, recipe 6 -=item How can I do approximate matching? +=item IDENTIFYING CHARACTER CODE SETS -=item How do I efficiently match many regular expressions at once? +=item CONVERSIONS -=item Why don't word-boundary searches with C<\b> work for me? +=over 4 -=item Why does using $&, $`, or $' slow my program down? +=item tr/// -=item What good is C<\G> in a regular expression? +=item iconv -=item Are Perl regexes DFAs or NFAs? Are they POSIX compliant? +=item C RTL -=item What's wrong with using grep or map in a void context? +=back -=item How can I match strings with multibyte characters? +=item OPERATOR DIFFERENCES -=item How do I match a pattern that is supplied by the user? +=item FUNCTION DIFFERENCES + +chr(), ord(), pack(), print(), printf(), sort(), sprintf(), unpack() + +=item REGULAR EXPRESSION DIFFERENCES + +=item SOCKETS + +=item SORTING + +=over 4 + +=item Ignore ASCII vs. EBCDIC sort differences. + +=item MONO CASE then sort data. + +=item Convert, sort data, then re convert. + +=item Perform sorting on one type of machine only. =back -=item AUTHOR AND COPYRIGHT +=item TRANSFORMATION FORMATS + +=over 4 + +=item URL decoding and encoding + +=item uu encoding and decoding + +=item Quoted-Printable encoding and decoding + +=item Caesarian ciphers =back -=head2 perlfaq7 - General Perl Language Issues ($Revision: 1.15 $, $Date: -2003/07/24 02:17:21 $) +=item Hashing order and checksums + +=item I18N AND L10N + +=item MULTI OCTET CHARACTER SETS + +=item OS ISSUES + +=over 4 + +=item OS/400 + +PASE, IFS access + +=item OS/390, z/OS + +chcp, dataset access, OS/390, z/OS iconv, locales + +=item VM/ESA? + +=item POSIX-BC? + +=back + +=item BUGS + +=item SEE ALSO + +=item REFERENCES + +=item HISTORY + +=item AUTHOR + +=back + +=head2 perlsec - Perl security =over 4 @@ -3585,209 +3515,332 @@ file? =over 4 -=item Can I get a BNF/yacc/RE for the Perl language? +=item Laundering and Detecting Tainted Data -=item What are all these $@%&* punctuation signs, and how do I know when to -use them? +=item Switches On the "#!" Line -=item Do I always/never have to quote my strings or use semicolons and -commas? +=item Cleaning Up Your Path -=item How do I skip some return values? +=item Security Bugs -=item How do I temporarily block warnings? +=item Protecting Your Programs -=item What's an extension? +=item Unicode -=item Why do Perl operators have different precedence than C operators? +=item Algorithmic Complexity Attacks -=item How do I declare/create a structure? +=back -=item How do I create a module? +=item SEE ALSO -=item How do I create a class? +=back -=item How can I tell if a variable is tainted? +=head2 perlmod - Perl modules (packages and symbol tables) -=item What's a closure? +=over 4 -=item What is variable suicide and how can I prevent it? +=item DESCRIPTION -=item How can I pass/return a {Function, FileHandle, Array, Hash, Method, -Regex}? +=over 4 -Passing Variables and Functions, Passing Filehandles, Passing Regexes, -Passing Methods +=item Packages -=item How do I create a static variable? +=item Symbol Tables -=item What's the difference between dynamic and lexical (static) scoping? -Between local() and my()? +=item Package Constructors and Destructors -=item How can I access a dynamic variable while a similarly named lexical -is in scope? +=item Perl Classes -=item What's the difference between deep and shallow binding? +=item Perl Modules -=item Why doesn't "my($foo) = EFILEE;" work right? +=item Making your module threadsafe -=item How do I redefine a builtin function, operator, or method? +=back -=item What's the difference between calling a function as &foo and foo()? +=item SEE ALSO -=item How do I create a switch or case statement? +=back -=item How can I catch accesses to undefined variables, functions, or -methods? +=head2 perlmodlib - constructing new Perl modules and finding existing ones -=item Why can't a method included in this same file be found? +=over 4 -=item How can I find out my current package? +=item THE PERL MODULE LIBRARY -=item How can I comment out a large block of perl code? +=over 4 -=item How do I clear a package? +=item Pragmatic Modules -=item How can I use a variable as a variable name? +assertions, assertions::activate, attributes, attrs, autouse, base, bigint, +bignum, bigrat, blib, bytes, charnames, constant, diagnostics, encoding, +fields, filetest, if, integer, less, lib, locale, open, ops, overload, re, +sigtrap, sort, strict, subs, threads, threads::shared, utf8, vars, version, +vmsish, warnings, warnings::register -=item What does "bad interpreter" mean? +=item Standard Modules + +AnyDBM_File, Attribute::Handlers, AutoLoader, AutoSplit, B, 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, Benchmark, ByteLoader, CGI, CGI::Apache, CGI::Carp, +CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push, CGI::Switch, CGI::Util, +CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Carp::Heavy, Class::ISA, +Class::Struct, Config, Cwd, DB, DB_File, Data::Dumper, Devel::DProf, +Devel::PPPort, Devel::Peek, Devel::SelfStubber, Digest, Digest::MD5, +DirHandle, Dumpvalue, DynaLoader, Encode, Encode::Alias, Encode::Byte, +Encode::CJKConstants, Encode::CN, Encode::CN::HZ, Encode::Config, +Encode::EBCDIC, Encode::Encoder, Encode::Encoding, Encode::Guess, +Encode::JP, Encode::JP::H2Z, Encode::JP::JIS7, Encode::KR, +Encode::KR::2022_KR, Encode::MIME::Header, Encode::PerlIO, +Encode::Supported, Encode::Symbol, Encode::TW, Encode::Unicode, +Encode::Unicode::UTF7, English, Env, Errno, Exporter, Exporter::Heavy, +ExtUtils::Command, ExtUtils::Command::MM, ExtUtils::Constant, +ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist, +ExtUtils::MM, ExtUtils::MM_Any, ExtUtils::MM_BeOS, ExtUtils::MM_Cygwin, +ExtUtils::MM_DOS, ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2, +ExtUtils::MM_UWIN, ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_Win32, +ExtUtils::MM_Win95, ExtUtils::MY, ExtUtils::MakeMaker, +ExtUtils::MakeMaker::FAQ, ExtUtils::MakeMaker::Tutorial, +ExtUtils::MakeMaker::bytes, ExtUtils::MakeMaker::vmsish, +ExtUtils::Manifest, ExtUtils::Mkbootstrap, ExtUtils::Mksymlists, +ExtUtils::Packlist, ExtUtils::testlib, Fatal, Fcntl, File::Basename, +File::CheckTree, File::Compare, File::Copy, File::DosGlob, File::Find, +File::Glob, File::Path, File::Spec, File::Spec::Cygwin, File::Spec::Epoc, +File::Spec::Functions, File::Spec::Mac, File::Spec::OS2, File::Spec::Unix, +File::Spec::VMS, File::Spec::Win32, File::Temp, File::stat, FileCache, +FileHandle, Filter::Simple, Filter::Util::Call, FindBin, GDBM_File, +Getopt::Long, Getopt::Std, Hash::Util, I18N::Collate, I18N::LangTags, +I18N::LangTags::List, I18N::Langinfo, IO, IO::Dir, IO::File, IO::Handle, +IO::Pipe, IO::Poll, IO::Seekable, IO::Select, IO::Socket, IO::Socket::INET, +IO::Socket::UNIX, IPC::Open2, IPC::Open3, IPC::SysV, IPC::SysV::Msg, +IPC::SysV::Semaphore, List::Util, Locale::Constants, Locale::Country, +Locale::Currency, Locale::Language, Locale::Maketext, +Locale::Maketext::TPJ13, Locale::Script, MIME::Base64, +MIME::Base64::QuotedPrint, Math::BigFloat, Math::BigInt, +Math::BigInt::Calc, Math::BigInt::Scalar, Math::BigRat, Math::Complex, +Math::Trig, Memoize, Memoize::AnyDBM_File, Memoize::Expire, +Memoize::ExpireFile, Memoize::ExpireTest, Memoize::NDBM_File, +Memoize::SDBM_File, Memoize::Storable, NDBM_File, NEXT, Net::Cmd, +Net::Config, Net::Domain, Net::FTP, Net::NNTP, Net::Netrc, Net::POP3, +Net::Ping, Net::SMTP, Net::Time, Net::hostent, Net::libnetFAQ, Net::netent, +Net::protoent, Net::servent, O, ODBM_File, Opcode, POSIX, PerlIO, +PerlIO::encoding, PerlIO::scalar, PerlIO::via, PerlIO::via::QuotedPrint, +Pod::Checker, Pod::Find, Pod::Functions, Pod::Html, Pod::InputObjects, +Pod::LaTeX, Pod::Man, Pod::ParseLink, Pod::ParseUtils, Pod::Parser, +Pod::Perldoc::ToChecker, Pod::Perldoc::ToMan, Pod::Perldoc::ToNroff, +Pod::Perldoc::ToPod, Pod::Perldoc::ToRtf, Pod::Perldoc::ToText, +Pod::Perldoc::ToTk, Pod::Perldoc::ToXml, Pod::PlainText, Pod::Plainer, +Pod::Select, Pod::Text, Pod::Text::Color, Pod::Text::Overstrike, +Pod::Text::Termcap, Pod::Usage, SDBM_File, Safe, Scalar::Util, +Search::Dict, SelectSaver, SelfLoader, Shell, Socket, Storable, Switch, +Symbol, Sys::Hostname, Sys::Syslog, Term::ANSIColor, Term::Cap, +Term::Complete, Term::ReadLine, Test, Test::Builder, Test::Harness, +Test::Harness::Assert, Test::Harness::Iterator, Test::Harness::Straps, +Test::More, Test::Simple, Test::Tutorial, Text::Abbrev, Text::Balanced, +Text::ParseWords, Text::Soundex, Text::Tabs, Text::Wrap, Thread, +Thread::Queue, Thread::Semaphore, Thread::Signal, Thread::Specific, +Tie::Array, Tie::File, Tie::Handle, Tie::Hash, Tie::Memoize, Tie::RefHash, +Tie::Scalar, Tie::SubstrHash, Time::HiRes, Time::Local, Time::gmtime, +Time::localtime, Time::tm, UNIVERSAL, Unicode::Collate, Unicode::Normalize, +Unicode::UCD, User::grent, User::pwent, Win32, XS::APItest, XS::Typemap, +XSLoader + +=item Extension Modules =back -=item AUTHOR AND COPYRIGHT +=item CPAN + +=over 4 + +=item Africa + +South Africa + +=item Asia + +China, Indonesia, Israel, Japan, Malaysia, Russian Federation, Saudi +Arabia, Singapore, South Korea, Taiwan + +=item Central America + +Costa Rica + +=item Europe + +Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Estonia, +Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, +Lithuania, Netherlands, Norway, Poland, Portugal, Romania, Russia, +Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey, Ukraine, United +Kingdom + +=item North America + +Canada, Alberta, Manitoba, Nova Scotia, Ontario, Mexico, United States, +Alabama, California, Colorado, Delaware, District of Columbia, Florida, +Illinois, Indiana, Kentucky, Massachusetts, Michigan, Nevada, New Jersey, +New York, North Carolina, Oklahoma, Oregon, Pennsylvania, Tennessee, Texas, +Utah, Virginia, Washington, Wisconsin + +=item Oceania + +Australia, New Zealand, United States + +=item South America + +Argentina, Brazil, Chile + +=item RSYNC Mirrors =back -=head2 perlfaq8 - System Interaction ($Revision: 1.17 $, $Date: 2003/01/26 -17:44:04 $) +=item Modules: Creation, Use, and Abuse =over 4 -=item DESCRIPTION +=item Guidelines for Module Creation + +=item Guidelines for Converting Perl 4 Library Scripts into Modules + +=item Guidelines for Reusing Application Code + +=back + +=item NOTE + +=back + +=head2 perlmodstyle - Perl module style guide =over 4 -=item How do I find out which operating system I'm running under? +=item INTRODUCTION -=item How come exec() doesn't return? +=item QUICK CHECKLIST -=item How do I do fancy stuff with the keyboard/screen/mouse? +=over 4 -Keyboard, Screen, Mouse +=item Before you start -=item How do I print something out in color? +=item The API -=item How do I read just one key without waiting for a return key? +=item Stability -=item How do I check whether input is ready on the keyboard? +=item Documentation -=item How do I clear the screen? +=item Release considerations -=item How do I get the screen size? +=back -=item How do I ask the user for a password? +=item BEFORE YOU START WRITING A MODULE -=item How do I read and write the serial port? +=over 4 -lockfiles, open mode, end of line, flushing output, non-blocking input +=item Has it been done before? -=item How do I decode encrypted password files? +=item Do one thing and do it well -=item How do I start a process in the background? +=item What's in a name? -STDIN, STDOUT, and STDERR are shared, Signals, Zombies +=back -=item How do I trap control characters/signals? +=item DESIGNING AND WRITING YOUR MODULE -=item How do I modify the shadow password file on a Unix system? +=over 4 -=item How do I set the time and date? +=item To OO or not to OO? -=item How can I sleep() or alarm() for under a second? +=item Designing your API -=item How can I measure time under a second? +Write simple routines to do simple things, Separate functionality from +output, Provide sensible shortcuts and defaults, Naming conventions, +Parameter passing -=item How can I do an atexit() or setjmp()/longjmp()? (Exception handling) +=item Strictness and warnings -=item Why doesn't my sockets program work under System V (Solaris)? What -does the error message "Protocol not supported" mean? +=item Backwards compatibility -=item How can I call my system's unique C functions from Perl? +=item Error handling and messages -=item Where do I get the include files to do ioctl() or syscall()? +=back -=item Why do setuid perl scripts complain about kernel problems? +=item DOCUMENTING YOUR MODULE -=item How can I open a pipe both to and from a command? +=over 4 -=item Why can't I get the output of a command with system()? +=item POD + +=item README, INSTALL, release notes, changelogs + +perl Makefile.PL, make, make test, make install, perl Build.PL, perl Build, +perl Build test, perl Build install + +=back + +=item RELEASE CONSIDERATIONS -=item How can I capture STDERR from an external command? +=over 4 -=item Why doesn't open() return an error when a pipe open fails? +=item Version numbering -=item What's wrong with using backticks in a void context? +=item Pre-requisites -=item How can I call backticks without shell processing? +=item Testing -=item Why can't my script read from STDIN after I gave it EOF (^D on Unix, -^Z on MS-DOS)? +=item Packaging -=item How can I convert my shell script to perl? +=item Licensing -=item Can I use perl to run a telnet or ftp session? +=back -=item How can I write expect in Perl? +=item COMMON PITFALLS -=item Is there a way to hide perl's command line from programs such as -"ps"? +=over 4 -=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? +=item Reinventing the wheel -Unix +=item Trying to do too much -=item How do I close a process's filehandle without waiting for it to -complete? +=item Inappropriate documentation -=item How do I fork a daemon process? +=back -=item How do I find out if I'm running interactively or not? +=item SEE ALSO -=item How do I timeout a slow event? +L, L, L, L, Packaging Tools, +Testing tools, http://pause.perl.org/, Any good book on software +engineering -=item How do I set CPU limits? +=item AUTHOR -=item How do I avoid zombies on a Unix system? +=back -=item How do I use an SQL database? +=head2 perlmodinstall - Installing CPAN Modules -=item How do I make a system() exit on control-C? +=over 4 -=item How do I open a file without blocking? +=item DESCRIPTION -=item How do I install a module from CPAN? +=over 4 -=item What's the difference between require and use? +=item PREAMBLE -=item How do I keep my own module/library directory? +B the file, B the file into a directory, B the +module (sometimes unnecessary), B the module -=item How do I add the directory my program lives in to the module/library -search path? +=back -=item How do I add a directory to my include path at runtime? +=item PORTABILITY -=item What is socket.ph and where do I get it? +=item HEY -=back +=item AUTHOR -=item AUTHOR AND COPYRIGHT +=item COPYRIGHT =back -=head2 perlfaq9 - Networking ($Revision: 1.15 $, $Date: 2003/01/31 17:36:57 -$) +=head2 perlnewmod - preparing a new module for distribution =over 4 @@ -3795,65 +3848,65 @@ $) =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 Warning -=item How can I get better error messages from a CGI program? +=item What should I make into a module? -=item How do I remove HTML from a string? +=item Step-by-step: Preparing the ground -=item How do I extract URLs? +Look around, Check it's new, Discuss the need, Choose a name, Check again -=item How do I download a file from the user's machine? How do I open a -file on another machine? +=item Step-by-step: Making the module -=item How do I make a pop-up menu in HTML? +Start with F, Use L and L, Use +L, Use L - wisely!, Use L, Write tests, Write the README -=item How do I fetch an HTML file? +=item Step-by-step: Distributing your module -=item How do I automate an HTML form submission? +Get a CPAN user ID, C, Upload the +tarball, Announce to the modules list, Announce to clpa, Fix bugs! -=item How do I decode or create those %-encodings on the web? +=back -=item How do I redirect to another page? +=item AUTHOR -=item How do I put a password on my web pages? +=item SEE ALSO -=item How do I edit my .htpasswd and .htgroup files with Perl? +=back -=item How do I make sure users can't enter values into a form that cause my -CGI script to do bad things? +=head2 perlutil - utilities packaged with the Perl distribution -=item How do I parse a mail header? +=over 4 -=item How do I decode a CGI form? +=item DESCRIPTION -=item How do I check a valid mail address? +=over 4 -=item How do I decode a MIME/BASE64 string? +=item DOCUMENTATION -=item How do I return the user's mail address? +L, L and L, +L and L, L, +L, L, L, +L -=item How do I send mail? +=item CONVERTORS -=item How do I use MIME to make an attachment to a mail message? +L, L, L -=item How do I read mail? +=item Administration -=item How do I find out my hostname/domainname/IP address? +L -=item How do I fetch a news article or the active newsgroups? +=item Development -=item How do I fetch/put an FTP file? +L, L, L and L, +L, L, L -=item How can I do RPC in Perl? +=item SEE ALSO =back -=item AUTHOR AND COPYRIGHT - =back =head2 perlcompile - Introduction to the Perl Compiler-Translator @@ -3902,6 +3955,42 @@ B::Stackobj, B::Stash, B::Terse, B::Xref =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 + +=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 Handle + +=item REQUIREMENTS + +=item AUTHOR + +=item Copyrights + +=back + =head2 perlembed - how to embed perl in your C program =over 4 @@ -4402,186 +4491,87 @@ A, p, d, s, n, r, f, M, o, j, x =item Custom Operators -=item AUTHORS - -=item SEE ALSO - -=back - -=head2 perlcall - Perl calling conventions from C - -=over 4 - -=item DESCRIPTION - -An Error Handler, An Event Driven Program - -=item THE CALL_ FUNCTIONS - -call_sv, call_pv, call_method, call_argv - -=item FLAG VALUES - -=over 4 - -=item G_VOID - -=item G_SCALAR - -=item G_ARRAY - -=item G_DISCARD - -=item G_NOARGS - -=item G_EVAL - -=item G_KEEPERR - -=item Determining the Context - -=back - -=item KNOWN PROBLEMS - -=item EXAMPLES - -=over 4 - -=item No Parameters, Nothing returned - -=item Passing Parameters - -=item Returning a Scalar - -=item Returning a list of values - -=item Returning a list in a scalar context - -=item Returning Data from Perl via the parameter list - -=item Using G_EVAL - -=item Using G_KEEPERR - -=item Using call_sv - -=item Using call_argv - -=item Using call_method - -=item Using GIMME_V - -=item Using Perl to dispose of temporaries - -=item Strategies for storing Callback Context Information - -1. Ignore the problem - Allow only 1 callback, 2. Create a sequence of -callbacks - hard wired limit, 3. Use a parameter to map to the Perl -callback - -=item Alternate Stack Manipulation - -=item Creating and calling an anonymous subroutine in C - -=back - -=item SEE ALSO - -=item AUTHOR +=item AUTHORS -=item DATE +=item SEE ALSO =back -=head2 perlutil - utilities packaged with the Perl distribution +=head2 perlcall - Perl calling conventions from C =over 4 =item DESCRIPTION -=over 4 - -=item DOCUMENTATION - -L, L and L, -L and L, L, -L, L, L, -L - -=item CONVERTORS - -L, L, L - -=item Administration +An Error Handler, An Event Driven Program -L +=item THE CALL_ FUNCTIONS -=item Development +call_sv, call_pv, call_method, call_argv -L, L, L and L, -L, L, L +=item FLAG VALUES -=item SEE ALSO +=over 4 -=back +=item G_VOID -=back +=item G_SCALAR -=head2 perlfilter - Source Filters +=item G_ARRAY -=over 4 +=item G_DISCARD -=item DESCRIPTION +=item G_NOARGS -=item CONCEPTS +=item G_EVAL -=item USING FILTERS +=item G_KEEPERR -=item WRITING A SOURCE FILTER +=item Determining the Context -=item WRITING A SOURCE FILTER IN C +=back -B +=item KNOWN PROBLEMS -=item CREATING A SOURCE FILTER AS A SEPARATE EXECUTABLE +=item EXAMPLES -=item WRITING A SOURCE FILTER IN PERL +=over 4 -=item USING CONTEXT: THE DEBUG FILTER +=item No Parameters, Nothing returned -=item CONCLUSION +=item Passing Parameters -=item THINGS TO LOOK OUT FOR +=item Returning a Scalar -Some Filters Clobber the C Handle +=item Returning a list of values -=item REQUIREMENTS +=item Returning a list in a scalar context -=item AUTHOR +=item Returning Data from Perl via the parameter list -=item Copyrights +=item Using G_EVAL -=back +=item Using G_KEEPERR -=head2 perldbmfilter - Perl DBM Filters +=item Using call_sv -=over 4 +=item Using call_argv -=item SYNOPSIS +=item Using call_method -=item DESCRIPTION +=item Using GIMME_V -B, B, B, -B +=item Using Perl to dispose of temporaries -=over 4 +=item Strategies for storing Callback Context Information -=item The Filter +1. Ignore the problem - Allow only 1 callback, 2. Create a sequence of +callbacks - hard wired limit, 3. Use a parameter to map to the Perl +callback -=item An Example -- the NULL termination problem. +=item Alternate Stack Manipulation -=item Another Example -- Key is a C int. +=item Creating and calling an anonymous subroutine in C =back @@ -4589,6 +4579,8 @@ B =item AUTHOR +=item DATE + =back =head2 perlapi - autogenerated documentation for the perl public API @@ -4788,126 +4780,272 @@ PL_rs is_gv_magical -=item IO Functions +=item IO Functions + +start_glob + +=item Pad Data Structures + +CvPADLIST, cv_clone, cv_dump, do_dump_pad, intro_my, pad_add_anon, +pad_add_name, pad_alloc, pad_block_start, pad_check_dup, pad_findlex, +pad_findmy, pad_fixup_inner_anons, pad_free, pad_leavemy, pad_new, +pad_push, pad_reset, pad_setsv, pad_swipe, pad_tidy, pad_undef + +=item Stack Manipulation Macros + +djSP, LVRET + +=item SV Manipulation Functions + +report_uninit, sv_add_arena, sv_clean_all, sv_clean_objs, sv_free_arenas + +=item AUTHORS + +=item SEE ALSO + +=back + +=head2 perliol - C API for Perl's implementation of IO in Layers. + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +=over 4 + +=item History and Background + +=item Layers vs Disciplines + +=item Data Structures + +=item Functions and Attributes + +=item Per-instance Data + +=item Layers in action. + +=item Per-instance flag bits + +PERLIO_F_EOF, PERLIO_F_CANWRITE, PERLIO_F_CANREAD, PERLIO_F_ERROR, +PERLIO_F_TRUNCATE, PERLIO_F_APPEND, PERLIO_F_CRLF, PERLIO_F_UTF8, +PERLIO_F_UNBUF, PERLIO_F_WRBUF, PERLIO_F_RDBUF, PERLIO_F_LINEBUF, +PERLIO_F_TEMP, PERLIO_F_OPEN, PERLIO_F_FASTGETS + +=item Methods in Detail + +fsize, name, size, kind, PERLIO_K_BUFFERED, PERLIO_K_RAW, PERLIO_K_CANCRLF, +PERLIO_K_FASTGETS, PERLIO_K_MULTIARG, Pushed, Popped, Open, Binmode, +Getarg, Fileno, Dup, Read, Write, Seek, Tell, Close, Flush, Fill, Eof, +Error, Clearerr, Setlinebuf, Get_base, Get_bufsiz, Get_ptr, Get_cnt, +Set_ptrcnt + +=item Implementing PerlIO Layers + +C implementations, Perl implementations + +=item Core Layers + +"unix", "perlio", "stdio", "crlf", "mmap", "pending", "raw", "utf8" + +=item Extension Layers + +":encoding", ":scalar", ":via" + +=back + +=item TODO + +=back + +=head2 perlapio - perl's IO abstraction interface. + +=over 4 + +=item SYNOPSIS + +=item DESCRIPTION + +1. USE_STDIO, 2. USE_SFIO, 3. USE_PERLIO, B, +B, B, B, +B, B, +B, B, +B, B, +B, B, B, +B, B, B, +B, B, B, +B, B, B, +B, B, B, +B, B, B + +=over 4 + +=item Co-existence with stdio + +B, B, +B, B + +=item "Fast gets" Functions + +B, B, B, +B, B, B, +B, B, B, +B + +=item Other Functions + +PerlIO_apply_layers(f,mode,layers), PerlIO_binmode(f,ptype,imode,layers), +'E' read, 'E' write, '+' read/write, PerlIO_debug(fmt,...) + +=back + +=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, L and L, L, +F, The perl5-porters FAQ + +=item Finding Your Way Around + +Core modules, Tests, Documentation, Configure, Interpreter + +=item Elements of the interpreter -start_glob +Startup, Parsing, Optimization, Running -=item Pad Data Structures +=item Internal Variable Types -CvPADLIST, cv_clone, cv_dump, do_dump_pad, intro_my, pad_add_anon, -pad_add_name, pad_alloc, pad_block_start, pad_check_dup, pad_findlex, -pad_findmy, pad_fixup_inner_anons, pad_free, pad_leavemy, pad_new, -pad_push, pad_reset, pad_setsv, pad_swipe, pad_tidy, pad_undef +=item Op Trees -=item Stack Manipulation Macros +=item Stacks -djSP, LVRET +Argument stack, Mark stack, Save stack -=item SV Manipulation Functions +=item Millions of Macros -report_uninit, sv_add_arena, sv_clean_all, sv_clean_objs, sv_free_arenas +=item The .i Targets -=item AUTHORS +=item Poking at Perl -=item SEE ALSO +=item Using a source-level debugger -=back +run [args], break function_name, break source.c:xxx, step, next, continue, +finish, 'enter', print -=head2 perliol - C API for Perl's implementation of IO in Layers. +=item gdb macro support -=over 4 +=item Dumping Perl Data Structures -=item SYNOPSIS +=item Patching -=item DESCRIPTION +=item Patching a core module -=over 4 +=item Adding a new function to the core -=item History and Background +=item Writing a test -=item Layers vs Disciplines +F, F, F, F, F, F, +F, F, F, F, F, t/base t/comp, +t/cmd t/run t/io t/op, t/lib ext lib -=item Data Structures +=item Special Make Test Targets -=item Functions and Attributes +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 Per-instance Data +=item Running tests by hand -=item Layers in action. +PERL_CORE=1, PERL_DESTRUCT_LEVEL=2, PERL, PERL_SKIP_TTY_TEST -=item Per-instance flag bits +=back -PERLIO_F_EOF, PERLIO_F_CANWRITE, PERLIO_F_CANREAD, PERLIO_F_ERROR, -PERLIO_F_TRUNCATE, PERLIO_F_APPEND, PERLIO_F_CRLF, PERLIO_F_UTF8, -PERLIO_F_UNBUF, PERLIO_F_WRBUF, PERLIO_F_RDBUF, PERLIO_F_LINEBUF, -PERLIO_F_TEMP, PERLIO_F_OPEN, PERLIO_F_FASTGETS +=item EXTERNAL TOOLS FOR DEBUGGING PERL -=item Methods in Detail +=over 4 -fsize, name, size, kind, PERLIO_K_BUFFERED, PERLIO_K_RAW, PERLIO_K_CANCRLF, -PERLIO_K_FASTGETS, PERLIO_K_MULTIARG, Pushed, Popped, Open, Binmode, -Getarg, Fileno, Dup, Read, Write, Seek, Tell, Close, Flush, Fill, Eof, -Error, Clearerr, Setlinebuf, Get_base, Get_bufsiz, Get_ptr, Get_cnt, -Set_ptrcnt +=item Rational Software's Purify -=item Implementing PerlIO Layers +=item Purify on Unix -C implementations, Perl implementations +-Accflags=-DPURIFY, -Doptimize='-g', -Uusemymalloc, -Dusemultiplicity -=item Core Layers +=item Purify on NT -"unix", "perlio", "stdio", "crlf", "mmap", "pending", "raw", "utf8" +DEFINES, USE_MULTI = define, #PERL_MALLOC = define, CFG = Debug -=item Extension Layers +=item valgrind -":encoding", ":scalar", ":via" +=item Compaq's/Digital's/HP's Third Degree -=back +=item PERL_DESTRUCT_LEVEL -=item TODO +=item Profiling -=back +=item Gprof Profiling -=head2 perlapio - perl's IO abstraction interface. +-a, -b, -e routine, -f routine, -s, -z -=over 4 +=item GCC gcov Profiling -=item SYNOPSIS +=item Pixie Profiling -=item DESCRIPTION +-h, -l, -p[rocedures], -h[eavy], -i[nvocations], -l[ines], -testcoverage, +-z[ero] -1. USE_STDIO, 2. USE_SFIO, 3. USE_PERLIO, B, -B, B, B, -B, B, -B, B, -B, B, -B, B, B, -B, B, B, -B, B, B, -B, B, B, -B, B, B, -B, B, B +=item Miscellaneous tricks -=over 4 +=item CONCLUSION -=item Co-existence with stdio +I -B, B, -B, B +=back -=item "Fast gets" Functions +=item AUTHOR -B, B, B, -B, B, B, -B, B, B, -B +=back -=item Other Functions +=head2 perlbook - Perl book information -PerlIO_apply_layers(f,mode,layers), PerlIO_binmode(f,ptype,imode,layers), -'E' read, 'E' write, '+' read/write, PerlIO_debug(fmt,...) +=over 4 -=back +=item DESCRIPTION =back @@ -5246,165 +5384,30 @@ goto(LABEL) and friends =item Remove distinction between functions and operators -=item Make XS easier to use - -=item Make embedding easier to use - -=item man for perl - -=item my $Package::variable - -=item "or" tests defined, not truth - -=item "class"-based lexicals - -=item byteperl - -=item Lazy evaluation / tail recursion removal - -=item Make "use utf8" the default - -=item Unicode collation and normalization - -=item pack/unpack tutorial - -=back - -=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, L and L, L, -F, 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, F, F, F, F, F, -F, F, F, F, F, 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 Make XS easier to use -=item PERL_DESTRUCT_LEVEL +=item Make embedding easier to use -=item Profiling +=item man for perl -=item Gprof Profiling +=item my $Package::variable --a, -b, -e routine, -f routine, -s, -z +=item "or" tests defined, not truth -=item GCC gcov Profiling +=item "class"-based lexicals -=item Pixie Profiling +=item byteperl --h, -l, -p[rocedures], -h[eavy], -i[nvocations], -l[ines], -testcoverage, --z[ero] +=item Lazy evaluation / tail recursion removal -=item Miscellaneous tricks +=item Make "use utf8" the default -=item CONCLUSION +=item Unicode collation and normalization -I +=item pack/unpack tutorial =back -=item AUTHOR - =back =head2 perldoc - Look up Perl documentation in Pod format. @@ -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, B =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, Win9x and C, 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 Known problems -=item MACPERL +=item MacPerl -=item CARBON +=item Carbon -=item COCOA +=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_ATTRIBUTES, MODIFY_I_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, C, C =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 =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 + +=back + +B + +B + +=over 4 + =item FUNCTIONS B @@ -14511,6 +14490,10 @@ B =back +B + +B + =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, C, C =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, C, C =item Avoiding repetitions +=item Invoking all versions of a method with a single call + +=item Using C 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 =item DESCRIPTION -=over 4 - =item Construction -B +=over 4 + +=item C =back =back -B<_init> +=over 4 + +=item C<_init> + +=back =over 4 =item Analysis -B +=over 4 + +=item C + +=back + +=back + +=over 4 + +=item C + +=back + +=over 4 + +=item C + +=back + +=over 4 + +=item C<_switches> + +=back + +=over 4 + +=item C<_INC2PERL5LIB> =back -B +=over 4 -B +=item C<_filtered_INC> -B<_switches> +=back -B<_INC2PERL5LIB> +=over 4 -B<_filtered_INC> +=item C<_restore_PERL5LIB> -B<_restore_PERL5LIB> +=back =over 4 =item Parsing -B<_is_comment> +=over 4 + +=item C<_is_comment> + +=back + +=back + +=over 4 + +=item C<_is_header> + +=back + +=over 4 + +=item C<_is_test> =back -B<_is_header> +=over 4 + +=item C<_is_bail_out> -B<_is_test> +=back + +=over 4 -B<_is_bail_out> +=item C<_reset_file_state> -B<_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 92f6a3d..61d0e97 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 f71542b..3a64cd3 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)