From: Nicholas Clark Date: Tue, 21 Apr 2009 09:49:10 +0000 (+0100) Subject: Build perltoc.pod, rather than shipping it. This way it can't get out of date. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7eb47696deb9a7343fb4847f7342919a6df59e21;p=p5sagit%2Fp5-mst-13.2.git Build perltoc.pod, rather than shipping it. This way it can't get out of date. --- diff --git a/MANIFEST b/MANIFEST index a4427d8..69084ba 100644 --- a/MANIFEST +++ b/MANIFEST @@ -3617,7 +3617,6 @@ 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 diff --git a/Makefile.SH b/Makefile.SH index 7cb0004..f7ec252 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -454,7 +454,8 @@ mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) obj = $(ndt_obj) $(DTRACE_O) -generated_pods = extra.pods pod/perlapi.pod pod/perldelta.pod pod/perlintern.pod +perltoc_pod_prereqs = extra.pods pod/perlapi.pod pod/perldelta.pod pod/perlintern.pod +generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs) lintflags = \ -b \ @@ -971,6 +972,12 @@ uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables cd lib/unicore && $(LDLIBPTH) $(RUN) ../../miniperl$(EXE_EXT) -I../../lib mktables -w touch uni.data +# perl$(EXE_EXT) and ext because buildtoc uses Text::Wrap uses re +# But also this ensures that all extensions are built before we try to scan +# them, which picks up Devel::PPPort's documentation. +pod/perltoc.pod: $(perltoc_pod_prereqs) perl$(EXE_EXT) ext pod/buildtoc + $(RUN) ./perl$(EXE_EXT) -Ilib pod/buildtoc --build-toc -q + pod/perlapi.pod pod/perlintern.pod: miniperl$(EXE_EXT) autodoc.pl embed.fnc $(RUN) ./miniperl$(EXE_EXT) -Ilib autodoc.pl diff --git a/pod.lst b/pod.lst index 50e5c88..a0c5d90 100644 --- a/pod.lst +++ b/pod.lst @@ -11,7 +11,7 @@ h Overview perl Perl overview (this section) perlintro Perl introduction for beginners - perltoc Perl documentation table of contents +g perltoc Perl documentation table of contents h Tutorials diff --git a/pod/buildtoc b/pod/buildtoc index 50120ea..e80dae0 100644 --- a/pod/buildtoc +++ b/pod/buildtoc @@ -699,8 +699,10 @@ sub do_unix { my $makefile_SH = join '', @_; die "$0: $name contains NUL bytes" if $makefile_SH =~ /\0/; - $makefile_SH =~ s{^(generated_pods = extra.pods).*} - {join ' ', $1, map "pod/$_", sort keys %Generated, keys %Copies}mge; + $makefile_SH =~ s{^(perltoc_pod_prereqs = extra.pods).*} + {join ' ', $1, map "pod/$_", + sort keys %Copies, grep {!/perltoc/} keys %Generated + }mge; # pod/perldelta.pod: pod/perl511delta.pod # cd pod && $(LNS) perl511delta.pod perldelta.pod diff --git a/pod/perltoc.pod b/pod/perltoc.pod deleted file mode 100644 index 209e6f6..0000000 --- a/pod/perltoc.pod +++ /dev/null @@ -1,38414 +0,0 @@ - -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is autogenerated by buildtoc from all the other pods. -# Edit those files and run buildtoc --build-toc to effect changes. - -=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 - -=head2 perl - Practical Extraction and Report Language - -=over 4 - -=item SYNOPSIS - -=over 4 - -=item Overview - -=item Tutorials - -=item Reference Manual - -=item Internals and C Language Interface - -=item Miscellaneous - -=item Language-Specific - -=item Platform-Specific - -=back - -=item DESCRIPTION - -=item AVAILABILITY - -=item ENVIRONMENT - -=item AUTHOR - -=item FILES - -=item SEE ALSO - -=item DIAGNOSTICS - -=item BUGS - -=item NOTES - -=back - -=head2 perlintro -- a brief introduction and overview of Perl - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item What is Perl? - -=item Running Perl programs - -=item Safety net - -=item Basic syntax overview - -=item Perl variable types - -Scalars, Arrays, Hashes - -=item Variable scoping - -=item Conditional and looping constructs - -if, while, for, foreach - -=item Builtin operators and functions - -Arithmetic, Numeric comparison, String comparison, Boolean logic, -Miscellaneous - -=item Files and I/O - -=item Regular expressions - -Simple matching, Simple substitution, More complex regular expressions, -Parentheses for capturing, Other regexp features - -=item Writing subroutines - -=item OO Perl - -=item Using Perl modules - -=back - -=item AUTHOR - -=back - -=head2 perlreftut - Mark's very short tutorial about references - -=over 4 - -=item DESCRIPTION - -=item Who Needs Complicated Data Structures? - -=item The Solution - -=item Syntax - -=over 4 - -=item Making References - -=item Using References - -=item An Example - -=item Arrow Rule - -=back - -=item Solution - -=item The Rest - -=item Summary - -=item Credits - -=over 4 - -=item Distribution Conditions - -=back - -=back - -=head2 perldsc - Perl Data Structures Cookbook - -=over 4 - -=item DESCRIPTION - -arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, -more elaborate constructs - -=item REFERENCES -X X X X - -=item COMMON MISTAKES - -=item CAVEAT ON PRECEDENCE -X X - -=item WHY YOU SHOULD ALWAYS C - -=item DEBUGGING -X X -X X X X -X X -X X - -=item CODE EXAMPLES - -=item ARRAYS OF ARRAYS -X X - -=over 4 - -=item Declaration of an ARRAY OF ARRAYS - -=item Generation of an ARRAY OF ARRAYS - -=item Access and Printing of an ARRAY OF ARRAYS - -=back - -=item HASHES OF ARRAYS -X X - -=over 4 - -=item Declaration of a HASH OF ARRAYS - -=item Generation of a HASH OF ARRAYS - -=item Access and Printing of a HASH OF ARRAYS - -=back - -=item ARRAYS OF HASHES -X X - -=over 4 - -=item Declaration of an ARRAY OF HASHES - -=item Generation of an ARRAY OF HASHES - -=item Access and Printing of an ARRAY OF HASHES - -=back - -=item HASHES OF HASHES -X X - -=over 4 - -=item Declaration of a HASH OF HASHES - -=item Generation of a HASH OF HASHES - -=item Access and Printing of a HASH OF HASHES - -=back - -=item MORE ELABORATE RECORDS -X X X - -=over 4 - -=item Declaration of MORE ELABORATE RECORDS - -=item Declaration of a HASH OF COMPLEX RECORDS - -=item Generation of a HASH OF COMPLEX RECORDS - -=back - -=item Database Ties - -=item SEE ALSO - -=item AUTHOR - -=back - -=head2 perllol - Manipulating Arrays of Arrays in Perl - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item Declaration and Access of Arrays of Arrays - -=item Growing Your Own - -=item Access and Printing - -=item Slices - -=back - -=item SEE ALSO - -=item AUTHOR - -=back - -=head2 perlrequick - Perl regular expressions quick start - -=over 4 - -=item DESCRIPTION - -=item The Guide - -=over 4 - -=item Simple word matching - -=item Using character classes - -=item Matching this or that - -=item Grouping things and hierarchical matching - -=item Extracting matches - -=item Matching repetitions - -=item More matching - -=item Search and replace - -=item The split operator - -=back - -=item BUGS - -=item SEE ALSO - -=item AUTHOR AND COPYRIGHT - -=over 4 - -=item Acknowledgments - -=back - -=back - -=head2 perlretut - Perl regular expressions tutorial - -=over 4 - -=item DESCRIPTION - -=item Part 1: The basics - -=over 4 - -=item Simple word matching - -=item Using character classes - -=item Matching this or that - -=item Grouping things and hierarchical matching - -=item Extracting matches - -=item Backreferences - -=item Relative backreferences - -=item Named backreferences - -=item Alternative capture group numbering - -=item Position information - -=item Non-capturing groupings - -=item Matching repetitions - -=item Possessive quantifiers - -=item Building a regexp - -=item Using regular expressions in Perl - -=back - -=item Part 2: Power tools - -=over 4 - -=item More on characters, strings, and character classes - -=item Compiling and saving regular expressions - -=item Composing regular expressions at runtime - -=item Embedding comments and modifiers in a regular expression - -=item Looking ahead and looking behind - -=item Using independent subexpressions to prevent backtracking - -=item Conditional expressions - -=item Defining named patterns - -=item Recursive patterns - -=item A bit of magic: executing Perl code in a regular expression - -=item Backtracking control verbs - -=item Pragmas and debugging - -=back - -=item BUGS - -=item SEE ALSO - -=item AUTHOR AND COPYRIGHT - -=over 4 - -=item Acknowledgments - -=back - -=back - -=head2 perlboot - Beginner's Object-Oriented Tutorial - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item If we could talk to the animals... - -=item Introducing the method invocation arrow - -=item Invoking a barnyard - -=item The extra parameter of method invocation - -=item Calling a second method to simplify things - -=item Inheriting the windpipes - -=item A few notes about @ISA - -=item Overriding the methods - -=item Starting the search from a different place - -=item The SUPER way of doing things - -=item Let's review... - -=item A horse is a horse, of course of course -- or is it? - -=item Invoking an instance method - -=item Accessing the instance data - -=item How to build a horse - -=item Inheriting the constructor - -=item Making a method work with either classes or instances - -=item Adding parameters to a method - -=item More interesting instances - -=item A horse of a different color - -=item Summary - -=back - -=item SEE ALSO - -=item COPYRIGHT - -=back - -=head2 perltoot - Tom's object-oriented tutorial for perl - -=over 4 - -=item DESCRIPTION - -=item Creating a Class - -=over 4 - -=item Object Representation - -=item Class Interface - -=item Constructors and Instance Methods - -=item Planning for the Future: Better Constructors - -=item Destructors - -=item Other Object Methods - -=back - -=item Class Data - -=over 4 - -=item Accessing Class Data - -=item Debugging Methods - -=item Class Destructors - -=item Documenting the Interface - -=back - -=item Aggregation - -=item Inheritance - -=over 4 - -=item Overridden Methods - -=item Multiple Inheritance - -=item UNIVERSAL: The Root of All Objects - -=item Deeper UNIVERSAL details - -=back - -=item Alternate Object Representations - -=over 4 - -=item Arrays as Objects - -=item Closures as Objects - -=back - -=item AUTOLOAD: Proxy Methods - -=over 4 - -=item Autoloaded Data Methods - -=item Inherited Autoloaded Data Methods - -=back - -=item Metaclassical Tools - -=over 4 - -=item Class::Struct - -=item Data Members as Variables - -=back - -=item NOTES - -=over 4 - -=item Object Terminology - -=back - -=item SEE ALSO - -=item AUTHOR AND COPYRIGHT - -=item COPYRIGHT - -=over 4 - -=item Acknowledgments - -=back - -=back - -=head2 perltooc - Tom's OO Tutorial for Class Data in Perl - -=over 4 - -=item DESCRIPTION - -=item Class Data in a Can - -=item Class Data as Package Variables - -=over 4 - -=item Putting All Your Eggs in One Basket - -=item Inheritance Concerns - -=item The Eponymous Meta-Object - -=item Indirect References to Class Data - -=item Monadic Classes - -=item Translucent Attributes - -=back - -=item Class Data as Lexical Variables - -=over 4 - -=item Privacy and Responsibility - -=item File-Scoped Lexicals - -=item More Inheritance Concerns - -=item Locking the Door and Throwing Away the Key - -=item Translucency Revisited - -=back - -=item NOTES - -=item SEE ALSO - -=item AUTHOR AND COPYRIGHT - -=item ACKNOWLEDGEMENTS - -=item HISTORY - -=back - -=head2 perlbot - Bag'o Object Tricks (the BOT) - -=over 4 - -=item DESCRIPTION - -=item OO SCALING TIPS - -=item INSTANCE VARIABLES - -=item SCALAR INSTANCE VARIABLES - -=item INSTANCE VARIABLE INHERITANCE - -=item OBJECT RELATIONSHIPS - -=item OVERRIDING SUPERCLASS METHODS - -=item USING RELATIONSHIP WITH SDBM - -=item THINKING OF CODE REUSE - -=item CLASS CONTEXT AND THE OBJECT - -=item INHERITING A CONSTRUCTOR - -=item DELEGATION - -=item SEE ALSO - -=back - -=head2 perlperf - Perl Performance and Optimization Techniques - -=over 4 - -=item DESCRIPTION - -=item OVERVIEW - -=over 4 - -=item ONE STEP SIDEWAYS - -=item ONE STEP FORWARD - -=item ANOTHER STEP SIDEWAYS - -=back - -=item GENERAL GUIDELINES - -=item BENCHMARKS - -=over 4 - -=item Assigning and Dereferencing Variables. - -=item Search and replace or tr - -=back - -=item PROFILING TOOLS - -=over 4 - -=item Devel::DProf - -=item Devel::Profiler - -=item Devel::SmallProf - -=item Devel::FastProf - -=item Devel::NYTProf - -=back - -=item SORTING - -Elapsed Real Time, User CPU Time, System CPU Time - -=item LOGGING - -=over 4 - -=item Logging if DEBUG (constant) - -=back - -=item POSTSCRIPT - -=item SEE ALSO - -=over 4 - -=item PERLDOCS - -=item MAN PAGES - -=item MODULES - -=item URLS - -=back - -=item AUTHOR - -=back - -=head2 perlstyle - Perl style guide - -=over 4 - -=item DESCRIPTION - -=back - -=head2 perlcheat - Perl 5 Cheat Sheet - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item The sheet - -=back - -=item ACKNOWLEDGEMENTS - -=item AUTHOR - -=item SEE ALSO - -=back - -=head2 perltrap - Perl traps for the unwary - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item Awk Traps - -=item C/C++ Traps - -=item Sed Traps - -=item Shell Traps - -=item Perl Traps - -=item Perl4 to Perl5 Traps - -Discontinuance, Deprecation, and BugFix traps, Parsing Traps, Numerical -Traps, General data type traps, Context Traps - scalar, list contexts, -Precedence Traps, General Regular Expression Traps using s///, etc, -Subroutine, Signal, Sorting Traps, OS Traps, DBM Traps, Unclassified Traps - -=item Discontinuance, Deprecation, and BugFix traps - -Symbols starting with "_" no longer forced into main, Double-colon valid -package separator in variable name, 2nd and 3rd args to C are now -in scalar context, Can't do C into a block that is optimized away, -Can't use whitespace as variable name or quote delimiter, C gone, C<**> binds tighter than unary minus, C changed when -iterating over a list, C with no args behavior changed, B<-e> -behavior fixed, C returns number of elements in resulting list, Some -error messages differ, C honors subroutine args, Bugs removed - -=item Parsing Traps - -Space between . and = triggers syntax error, Better parsing in perl 5, -Function parsing, String interpolation of C<$#array> differs, Perl guesses -on C, C followed by C<{> if it starts BLOCK or hash ref - -=item Numerical Traps - -Formatted output and significant digits, Auto-increment operator over -signed int limit deleted, Assignment of return values from numeric equality -tests doesn't work, Bitwise string ops - -=item General data type traps - -Negative array subscripts now count from the end of array, Setting -C<$#array> lower now discards array elements, Hashes get defined before -use, Glob assignment from localized variable to variable, Assigning -C to glob, Changes in unary negation (of strings), Modifying of -constants prohibited, C behavior changed, Variable Suicide - -=item Context Traps - scalar, list contexts - -Elements of argument lists for formats evaluated in list context, -C returns false value in scalar context if no caller present, -Comma operator in scalar context gives scalar context to args, C -prototyped as C<($;@)> - -=item Precedence Traps - -LHS vs. RHS of any assignment operator, Semantic errors introduced due to -precedence, Precedence of assignment operators same as the precedence of -assignment, C requires parentheses around filehandle, C<$:> -precedence over C<$::> gone, Precedence of file test operators documented, -C, C, C are regular named unary operators - -=item General Regular Expression Traps using s///, etc. - -C interpolates on either side, C attaches its state to -the searched string, C used within an anonymous sub, C<$+> isn't set -to whole match, Substitution now returns null string if it fails, -C is now a normal substitution, Stricter parsing of variables -in regular expressions, C matches only once, Failed matches don't -reset the match variables - -=item Subroutine, Signal, Sorting Traps - -Barewords that used to look like strings look like subroutine calls, -Reverse is no longer allowed as the name of a sort subroutine, C -won't let you specify a filehandle - -=item OS Traps - -SysV resets signal handler correctly, SysV C appends correctly - -=item Interpolation Traps - -C<@> always interpolates an array in double-quotish strings, Double-quoted -strings may no longer end with an unescaped $, Arbitrary expressions are -evaluated inside braces within double quotes, C<$$x> now tries to -dereference $x, Creation of hashes on the fly with C requires -protection, Bugs in earlier perl versions, Array and hash brackets during -interpolation, Interpolation of C<\$$foo{bar}>, C string passed to -C will not find string terminator - -=item DBM Traps - -Perl5 must have been linked with same dbm/ndbm as the default for -C, DBM exceeding limit on the key/value size will cause perl5 to -exit immediately - -=item Unclassified Traps - -C/C trap using returned value, C on empty string with -LIMIT specified - -=back - -=back - -=head2 perldebtut - Perl debugging tutorial - -=over 4 - -=item DESCRIPTION - -=item use strict - -=item Looking at data and -w and v - -=item help - -=item Stepping through code - -=item Placeholder for a, w, t, T - -=item REGULAR EXPRESSIONS - -=item OUTPUT TIPS - -=item CGI - -=item GUIs - -=item SUMMARY - -=item SEE ALSO - -=item AUTHOR - -=item CONTRIBUTORS - -=back - -=head2 perlfaq - frequently asked questions about Perl - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item Where to get the perlfaq - -=item How to contribute to the perlfaq - -=item What will happen if you mail your Perl programming problems to the -authors? - -=back - -=item CREDITS - -=item AUTHOR AND COPYRIGHT - -=item Table of Contents - -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 The Questions - -=over 4 - -=item L: General Questions About Perl - -=item L: Obtaining and Learning about Perl - -=item L: Programming Tools - -=item L: Data Manipulation - -=item L: Files and Formats - -=item L: Regular Expressions - -=item L: General Perl Language Issues - -=item L: System Interaction - -=item L: Networking - -=back - -=back - -=head2 perlfaq1 - General Questions About Perl - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item What is Perl? - -=item Who supports Perl? Who develops it? Why is it free? - -=item Which version of Perl should I use? - -=item What are Perl 4, Perl 5, or Perl 6? - -=item What was Ponie? - -=item What is Perl 6? - -=item How stable is Perl? - -=item Is Perl difficult to learn? - -=item How does Perl compare with other languages like Java, Python, REXX, -Scheme, or Tcl? - -=item Can I do [task] in Perl? - -=item When shouldn't I program in Perl? - -=item What's the difference between "perl" and "Perl"? - -=item Is it a Perl program or a Perl script? - -=item What is a JAPH? - -=item Where can I get a list of Larry Wall witticisms? - -=item How can I convince others to use Perl? - -http://perltraining.com.au/whyperl.html, -http://www.perl.org/advocacy/whyperl.html - -=back - -=item REVISION - -=item AUTHOR AND COPYRIGHT - -=back - -=head2 perlfaq2 - Obtaining and Learning about 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. How can I build my own Perl interpreter? - -=item I copied the perl binary from one machine to another, but scripts -don't work. - -=item I grabbed the sources and tried to compile but gdbm/dynamic -loading/malloc/linking/... failed. How do I make it work? - -=item What modules and extensions are available for Perl? What is CPAN? -What does CPAN/src/... mean? - -=item Is there an ISO or ANSI certified version of Perl? - -=item Where can I get information on Perl? - -=item What are the Perl newsgroups on Usenet? Where do I post questions? - -=item Where should I post source code? - -=item Perl Books - -References, Tutorials, Task-Oriented, Special Topics - -=item Which magazines have Perl content? - -=item What mailing lists are there for Perl? - -=item Where are the archives for comp.lang.perl.misc? - -=item Where can I buy a commercial version of perl? - -=item Where do I send bug reports? - -=item What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? - -=back - -=item REVISION - -=item AUTHOR AND COPYRIGHT - -=back - -=head2 perlfaq3 - Programming Tools - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item How do I do (anything)? - -=item How can I use Perl interactively? - -=item Is there a Perl shell? - -=item How do I find which modules are installed on my system? - -=item How do I debug my Perl programs? - -=item How do I profile my Perl programs? - -=item How do I cross-reference my Perl programs? - -=item Is there a pretty-printer (formatter) for Perl? - -=item Is there a ctags for Perl? - -=item Is there an IDE or Windows Perl Editor? - -Eclipse, Enginsite, Komodo, Open Perl IDE, OptiPerl, PerlBuilder, -visiPerl+, Visual Perl, Zeus, GNU Emacs, MicroEMACS, XEmacs, Jed, Elvis, -Vile, Vim, Codewright, MultiEdit, SlickEdit, Bash, Ksh, Tcsh, Zsh, Affrus, -Alpha, BBEdit and BBEdit Lite - -=item Where can I get Perl macros for vi? - -=item Where can I get perl-mode for emacs? - -=item How can I use curses with Perl? - -=item How can I write a GUI (X, Tk, Gtk, etc.) in Perl? -X X X X X X X X - -Tk, Wx, Gtk and Gtk2, Win32::GUI, CamelBones, Qt, Athena - -=item How can I make my Perl program run faster? - -=item How can I make my Perl program take less memory? - -Don't slurp!, Use map and grep selectively, Avoid unnecessary quotes and -stringification, Pass by reference, Tie large variables to disk - -=item Is it safe to return a reference to local or lexical data? - -=item How can I free an array or hash so my program shrinks? - -=item How can I make my CGI script more efficient? - -=item How can I hide the source for my Perl program? - -=item How can I compile my Perl program into byte code or C? - -=item How can I get C<#!perl> to work on [MS-DOS,NT,...]? - -=item Can I write useful Perl programs on the command line? - -=item Why don't Perl one-liners work on my DOS/Mac/VMS system? - -=item Where can I learn about CGI or Web programming in Perl? - -=item Where can I learn about object-oriented Perl programming? - -=item Where can I learn about linking C with Perl? - -=item I've read perlembed, perlguts, etc., but I can't embed perl in my C -program; what am I doing wrong? - -=item When I tried to run my script, I got this message. What does it mean? - -=item What's MakeMaker? - -=back - -=item REVISION - -=item AUTHOR AND COPYRIGHT - -=back - -=head2 perlfaq4 - Data Manipulation - -=over 4 - -=item DESCRIPTION - -=item Data: Numbers - -=over 4 - -=item Why am I getting long decimals (eg, 19.9499999999999) instead of the -numbers I should be getting (eg, 19.95)? - -=item Why is int() broken? - -=item Why isn't my octal data interpreted correctly? - -=item Does Perl have a round() function? What about ceil() and floor()? -Trig functions? - -=item How do I convert between numeric representations/bases/radixes? - -How do I convert hexadecimal into decimal, How do I convert from decimal to -hexadecimal, How do I convert from octal to decimal, How do I convert from -decimal to octal, How do I convert from binary to decimal, How do I convert -from decimal to binary - -=item Why doesn't & work the way I want it to? - -=item How do I multiply matrices? - -=item How do I perform an operation on a series of integers? - -=item How can I output Roman numerals? - -=item Why aren't my random numbers random? - -=item How do I get a random number between X and Y? - -=back - -=item Data: Dates - -=over 4 - -=item How do I find the day or week of the year? - -=item How do I find the current century or millennium? - -=item How can I compare two dates and find the difference? - -=item How can I take a string and turn it into epoch seconds? - -=item How can I find the Julian Day? - -=item How do I find yesterday's date? - -=item Does Perl have a Year 2000 problem? Is Perl Y2K compliant? - -=item Does Perl have a Year 2038 problem? - -=back - -=item Data: Strings - -=over 4 - -=item How do I validate input? - -=item How do I unescape a string? - -=item How do I remove consecutive pairs of characters? - -=item How do I expand function calls in a string? - -=item How do I find matching/nesting anything? - -=item How do I reverse a string? - -=item How do I expand tabs in a string? - -=item How do I reformat a paragraph? - -=item How can I access or change N characters of a string? - -=item How do I change the Nth occurrence of something? - -=item How can I count the number of occurrences of a substring within a -string? - -=item How do I capitalize all the words on one line? - -=item How can I split a [character] delimited string except when inside -[character]? - -=item How do I strip blank space from the beginning/end of a string? - -=item How do I pad a string with blanks or pad a number with zeroes? - -=item How do I extract selected columns from a string? - -=item How do I find the soundex value of a string? - -=item How can I expand variables in text strings? - -=item What's wrong with always quoting "$vars"? - -=item Why don't my 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 Data: Arrays - -=over 4 - -=item What is the difference between a list and an array? - -=item What is the difference between $array[1] and @array[1]? - -=item How can I remove duplicate elements from a list or array? - -=item How can I tell whether a certain element is contained in a list or -array? - -=item How do I compute the difference of two arrays? How do I compute the -intersection of two arrays? - -=item How do I test whether two arrays or hashes are equal? - -=item How do I find the first array element for which a condition is true? - -=item How do I handle linked lists? - -=item How do I handle circular lists? - -=item How do I shuffle an array randomly? - -=item How do I process/modify each element of an array? - -=item How do I select a random element from an array? - -=item How do I permute N elements of a list? -X X X X -X X - -=item How do I sort an array by (anything)? - -=item How do I manipulate arrays of bits? - -=item Why does defined() return true on empty arrays and hashes? - -=back - -=item Data: Hashes (Associative Arrays) - -=over 4 - -=item How do I process an entire hash? - -=item What happens if I add or remove keys from a hash while iterating over -it? - -=item How do I look up a hash element by value? - -=item How can I know how many entries are in a hash? - -=item How do I sort a hash (optionally by value instead of key)? - -=item How can I always keep my hash sorted? -X - -=item What's the difference between "delete" and "undef" with hashes? - -=item Why don't my tied hashes make the defined/exists distinction? - -=item How do I reset an each() operation part-way through? - -=item How can I get the unique keys from two hashes? - -=item How can I store a multidimensional array in a DBM file? - -=item How can I make my hash remember the order I put elements into it? - -=item Why does passing a subroutine an undefined element in a hash create -it? - -=item How can I make the Perl equivalent of a C structure/C++ class/hash or -array of hashes or arrays? - -=item How can I use a reference as a hash key? - -=back - -=item Data: Misc - -=over 4 - -=item How do I handle binary data correctly? - -=item How do I determine whether a scalar is a number/whole/integer/float? - -=item How do I keep persistent data across program calls? - -=item How do I print out or copy a recursive data structure? - -=item How do I define methods for every class/object? - -=item How do I verify a credit card checksum? - -=item How do I pack arrays of doubles or floats for XS code? - -=back - -=item REVISION - -=item AUTHOR AND COPYRIGHT - -=back - -=head2 perlfaq5 - Files and Formats - -=over 4 - -=item DESCRIPTION - -=over 4 - -=item How do I flush/unbuffer an output filehandle? Why must I do this? -X X X X - -=item How do I change, delete, or insert a line in a file, or append to the -beginning of a file? -X - -=item How do I count the number of lines in a file? -X X X - -=item How can I use Perl's C<-i> option from within a program? -X<-i> X - -=item How can I copy a file? -X X - -=item How do I make a temporary file name? -X - -=item How can I manipulate fixed-record-length files? -X X - -=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? -X X X - -=item How can I use a filehandle indirectly? -X - -=item How can I set up a footer format to be used with write()? -X