summaryrefslogtreecommitdiff
path: root/pod
diff options
context:
space:
mode:
Diffstat (limited to 'pod')
-rw-r--r--pod/perldata.pod27
-rw-r--r--pod/perldelta.pod64
-rw-r--r--pod/perldiag.pod34
-rw-r--r--pod/perlfunc.pod7
-rw-r--r--pod/perlguts.pod12
-rw-r--r--pod/perlhist.pod22
-rw-r--r--pod/perllexwarn.pod4
-rw-r--r--pod/perlsyn.pod2
8 files changed, 129 insertions, 43 deletions
diff --git a/pod/perldata.pod b/pod/perldata.pod
index f4c660d622..067c6d9bd5 100644
--- a/pod/perldata.pod
+++ b/pod/perldata.pod
@@ -327,15 +327,24 @@ The special literals __FILE__, __LINE__, and __PACKAGE__
represent the current filename, line number, and package name at that
point in your program. They may be used only as separate tokens; they
will not be interpolated into strings. If there is no current package
-(due to an empty C<package;> directive), __PACKAGE__ is the undefined value.
-
-The tokens __END__ and __DATA__ may be used to indicate the logical
-end of the script before the actual end of file. Any following
-text is ignored, but may be read via a DATA filehandle: main::DATA
-for __END__, or PACKNAME::DATA (where PACKNAME is the current
-package) for __DATA__. The two control characters ^D and ^Z are
-synonyms for __END__ in the main program, __DATA__ in a separate
-module. See L<SelfLoader> for more description of __DATA__, and
+(due to an empty C<package;> directive), __PACKAGE__ is the undefined
+value.
+
+The two control characters ^D and ^Z, and the tokens __END__ and __DATA__
+may be used to indicate the logical end of the script before the actual
+end of file. Any following text is ignored.
+
+Text after __DATA__ but may be read via the filehandle C<PACKNAME::DATA>,
+where C<PACKNAME> is the package that was current when the __DATA__
+token was encountered. The filehandle is left open pointing to the
+contents after __DATA__. It is the program's responsibility to
+C<close DATA> when it is done reading from it. For compatibility with
+older scripts written before __DATA__ was introduced, __END__ behaves
+like __DATA__ in the toplevel script (but not in files loaded with
+C<require> or C<do>) and leaves the remaining contents of the
+file accessible via C<main::DATA>.
+
+See L<SelfLoader> for more description of __DATA__, and
an example of its use. Note that you cannot read from the DATA
filehandle in a BEGIN block: the BEGIN block is executed as soon
as it is seen (during compilation), at which point the corresponding
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 94b4635e7b..772a464293 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -150,15 +150,17 @@ use "quads" (64-integers) as follows:
=over 4
-=item constants in the code
+=item constants (decimal, hexadecimal, octal, binary) in the code
=item arguments to oct() and hex()
-=item arguments to print(), printf() and sprintf()
+=item arguments to print(), printf() and sprintf() (flag prefixes ll, L, q)
-=item pack() and unpack() "q" format
+=item printed as such
-=item in basic arithmetics
+=item pack() and unpack() "q" and "Q" formats
+
+=item in basic arithmetics: + - * / %
=item vec() (but see the below note about bit arithmetics)
@@ -167,7 +169,9 @@ use "quads" (64-integers) as follows:
Note that unless you have the case (a) you will have to configure
and compile Perl using the -Duse64bits Configure flag.
-Unfortunately bit arithmetics (&, |, ^, ~, <<, >>) are not 64-bit clean.
+Unfortunately bit arithmetics (&, |, ^, ~, <<, >>) for numbers are not
+64-bit clean, they are explictly forced to be 32-bit. Bit arithmetics
+for bit vectors (created by vec()) are not limited in their width.
Last but not least: note that due to Perl's habit of always using
floating point numbers the quads are still not true integers.
@@ -181,18 +185,25 @@ start losing precision (their lower digits).
If you have filesystems that support "large files" (files larger than
2 gigabytes), you may now also be able to create and access them from Perl.
-Note that in addition to requiring a proper file system to do this you
-may also need to adjust your per-process (or even your per-system)
-maximum filesize limits before running Perl scripts that try to handle
-large files, especially if you intend to write such files.
-
-Adjusting your file system/system limits is outside the scope of Perl.
-For process limits, you may try to increase the limits using your
-shell's limit/ulimit command before running Perl. The BSD::Resource
-extension (not included with the standard Perl distribution) may also
-be of use.
+Note that in addition to requiring a proper file system to do large
+files you may also need to adjust your per-process (or your
+per-system, or per-process-group, or per-user-group) maximum filesize
+limits before running Perl scripts that try to handle large files,
+especially if you intend to write such files.
+
+Finally, in addition to your process/process group maximum filesize
+limits, you may have quota limits on your filesystems that stop you
+(your user id or your user group id) from using large files.
+
+Adjusting your process/user/group/file system/operating system limits
+is outside the scope of Perl core language. For process limits, you
+may try increasing the limits using your shell's limits/limit/ulimit
+command before running Perl. The BSD::Resource extension (not
+included with the standard Perl distribution) may also be of use, it
+offers the getrlimit/setrlimit interface that can be used to adjust
+process resource usage limits, including the maximum filesize limit.
-(Large file support is also related to 64-bit support, for obvious reasons)
+(Large file support is related to 64-bit support, for obvious reasons.)
=head2 Better syntax checks on parenthesized unary operators
@@ -527,7 +538,9 @@ runtime error.
The timelocal() and timegm() functions used to silently return bogus
results when the date exceeded the machine's integer range. They
-now consistently croak() if the date falls in an unsupported range.
+now consistently croak() if the date falls in an unsupported range--
+but on the other hand they now accept "out-of-limits" day-of-month
+to make "Julian date" conversions easier.
=item Win32
@@ -704,6 +717,16 @@ elements of a subroutine attribute list. If the previous attribute
had a parenthesised parameter list, perhaps that list was terminated
too soon.
+=item Possible Y2K bug: %s
+
+(W) You are concatenating the number 19 with another number, which
+could be a potential Year 2000 problem.
+
+=item Possible Y2K bug: %s
+
+(W) You are concatenating the number 19 with another number, which
+could be a potential Year 2000 problem.
+
=item Unterminated attribute parameter in subroutine attribute list
(F) The lexer saw an opening (left) parenthesis character while parsing a
@@ -750,6 +773,13 @@ because many scripts assume to find Perl in /usr/bin/perl.
You can use "Configure -Dusesocks" which causes Perl to probe
for the SOCKS proxy protocol library, http://www.socks.nec.com/
+=head2 -A flag
+
+You can "post-edit" the Configure variables using the Configure -A
+flag. The editing happens immediately after the platform specific
+hints files have been processed but before the actual configuration
+process starts. Run Configure -h to find out the full -A syntax.
+
=head1 BUGS
If you find what you think is a bug, you might check the headers of
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 1c07a31fa6..607a410e38 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -1240,6 +1240,10 @@ just use C<if (%hash) { # not empty }> for example.
C<FOO> is too long for Perl to handle. You have to be seriously
twisted to write code that triggers this error.
+=item Did not produce a valid header
+
+See Server error.
+
=item Did you mean &%s instead?
(W) You probably referred to an imported subroutine &FOO as $FOO or some such.
@@ -1266,6 +1270,10 @@ to define the subroutine or package before the current location. You
can use an empty "sub foo;" or "package FOO;" to enter a "forward"
declaration.
+=item Document contains no data
+
+See Server error.
+
=item Don't know how to handle magic of type '%s'
(P) The internal handling of magical variables has been cursed.
@@ -1742,6 +1750,10 @@ See L<perlsub/"Lvalue subroutines">.
(F) An attempt was made to specify an entry in an overloading table that
doesn't resolve to a valid subroutine. See L<overload>.
+=item Method %s not permitted
+
+See Server error.
+
=item Might be a runaway multi-line %s string starting on line %d
(S) An advisory indicating that the previous error may have been caused
@@ -2348,6 +2360,11 @@ perspective, it's probably not what you intended.
(F) Your C compiler uses POSIX getpgrp(), which takes no argument, unlike
the BSD version, which takes a pid.
+=item Possible Y2K bug: %s
+
+(W) You are concatenating the number 19 with another number, which
+could be a potential Year 2000 problem.
+
=item Possible attempt to put comments in qw() list
(W) qw() lists contain items separated by whitespace; as with literal
@@ -2415,6 +2432,10 @@ and list operators. (The old open was a little of both.) You must
put parentheses around the filehandle, or use the new "or" operator
instead of "||".
+=item Premature end of script headers
+
+See Server error.
+
=item print on closed filehandle %s
(W) The filehandle you're printing on got itself closed sometime before now.
@@ -2608,7 +2629,12 @@ See L<perlre>.
=item Server error
-Also known as "500 Server error".
+This is the error message generally seen in a browser window when trying
+to run a CGI program (including SSI) over the web. The actual error
+text varies widely from server to server. The most frequently-seen
+variants are "500 Server error", "Method (something) not permitted",
+"Document contains no data", "Premature end of script headers", and
+"Did not produce a valid header".
B<This is a CGI error, not a Perl error>.
@@ -3310,6 +3336,12 @@ variables.
of Perl. Check the #! line, or manually feed your script into
Perl yourself.
+=item Version number must be a constant number
+
+(P) The attempt to translate a C<use Module n.n LIST> statement into
+its equivalent C<BEGIN> block found an internal inconsistency with
+the version number.
+
=item perl: warning: Setting locale failed.
(S) The whole warning message will look something like:
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 0d47260e10..995a671110 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -4120,6 +4120,13 @@ If C<use locale> is in effect, the character used for the decimal
point in formatted real numbers is affected by the LC_NUMERIC locale.
See L<perllocale>.
+To cope with broken systems that allow the standard locales to be
+overridden by malicious users, the return value may be tainted
+if any of the floating point formats are used and the conversion
+yields something that doesn't look like a normal C-locale floating
+point number. This happens regardless of whether C<use locale> is
+in effect or not.
+
If Perl understands "quads" (64-bit integers) (this requires
either that the platform natively supports quads or that Perl
has been specifically compiled to support quads), the characters
diff --git a/pod/perlguts.pod b/pod/perlguts.pod
index 93d4bd70c4..af12297ec3 100644
--- a/pod/perlguts.pod
+++ b/pod/perlguts.pod
@@ -3649,24 +3649,26 @@ Like C<sv_usepvn>, but also handles 'set' magic.
void sv_usepvn_mg (SV* sv, char* ptr, STRLEN len)
-=item sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, used_locale)
+=item sv_vcatpvfn
Processes its arguments like C<vsprintf> and appends the formatted output
to an SV. Uses an array of SVs if the C style variable argument list is
-missing (NULL). Indicates if locale information has been used for formatting.
+missing (NULL). When running with taint checks enabled, indicates via
+C<maybe_tainted> if results are untrustworthy (often due to the use of
+locales).
void sv_catpvfn (SV* sv, const char* pat, STRLEN patlen,
va_list *args, SV **svargs, I32 svmax,
- bool *used_locale);
+ bool *maybe_tainted);
-=item sv_vsetpvfn(sv, pat, patlen, args, svargs, svmax, used_locale)
+=item sv_vsetpvfn
Works like C<vcatpvfn> but copies the text into the SV instead of
appending it.
void sv_setpvfn (SV* sv, const char* pat, STRLEN patlen,
va_list *args, SV **svargs, I32 svmax,
- bool *used_locale);
+ bool *maybe_tainted);
=item SvUV
diff --git a/pod/perlhist.pod b/pod/perlhist.pod
index 6a171d36f4..f39117e7e4 100644
--- a/pod/perlhist.pod
+++ b/pod/perlhist.pod
@@ -119,16 +119,16 @@ the strings?).
5.000alpha4 1993-???-??
5.000alpha5 1993-???-??
5.000alpha6 1994-Mar-18
- 5.003alpha7 1994-Mar-25
+ 5.000alpha7 1994-Mar-25
Andy 5.000alpha8 1994-Apr-04
Larry 5.000alpha9 1994-May-05 ext appears.
- 5.000alpha10 1994-???-??
- 5.000alpha11 1994-???-??
+ 5.000alpha10 1994-Jun-11
+ 5.000alpha11 1994-Jul-01
Andy 5.000a11a 1994-Jul-07 To fit 14.
5.000a11b 1994-Jul-14
5.000a11c 1994-Jul-19
5.000a11d 1994-Jul-22
- Larry 5.000alpha12 1994-???-??
+ Larry 5.000alpha12 1994-Aug-04
Andy 5.000a12a 1994-Aug-08
5.000a12b 1994-Aug-15
5.000a12c 1994-Aug-22
@@ -137,8 +137,8 @@ the strings?).
5.000a12f 1994-Aug-24
5.000a12g 1994-Aug-24
5.000a12h 1994-Aug-24
- Larry 5.000beta1 1994-???-??
- Andy 5.000b1a 1994-???-??
+ Larry 5.000beta1 1994-Aug-30
+ Andy 5.000b1a 1994-Sep-06
Larry 5.000beta2 1994-Sep-14 Core slushified.
Andy 5.000b2a 1994-Sep-14
5.000b2b 1994-Sep-17
@@ -152,6 +152,7 @@ the strings?).
5.000b3f 1994-Sep-30
5.000b3g 1994-Oct-04
Andy 5.000b3h 1994-Oct-07
+ Larry? 5.000gamma 1994-Oct-13?
Larry 5.000 1994-Oct-17
@@ -167,8 +168,9 @@ the strings?).
5.000j 1995-Feb-07
5.000k 1995-Feb-11
5.000l 1995-Feb-21
- 5.000m 1995-???-??
+ 5.000m 1995-Feb-28
5.000n 1995-Mar-07
+ 5.000o 1995-Mar-13?
Larry 5.001 1995-Mar-13
@@ -187,7 +189,7 @@ the strings?).
5.001m 1995-Jul-02 Very stable.
5.001n 1995-Oct-31 Very unstable.
5.002beta1 1995-Nov-21
- 5.002b1a 1995-Nov-??
+ 5.002b1a 1995-Dec-04
5.002b1b 1995-Dec-04
5.002b1c 1995-Dec-04
5.002b1d 1995-Dec-04
@@ -549,7 +551,7 @@ Jarkko Hietaniemi <F<jhi@iki.fi>>.
Thanks to the collective memory of the Perlfolk. In addition to the
Keepers of the Pumpkin also Alan Champion, Andreas König, John
-Macdonald, Matthias Neeracher, Michael Peppler, Randal Schwartz, and
-Paul D. Smith sent corrections and additions.
+Macdonald, Matthias Neeracher, Jeff Okamoto, Michael Peppler,
+Randal Schwartz, and Paul D. Smith sent corrections and additions.
=cut
diff --git a/pod/perllexwarn.pod b/pod/perllexwarn.pod
index 8dbae0ddbc..32fc21084e 100644
--- a/pod/perllexwarn.pod
+++ b/pod/perllexwarn.pod
@@ -313,6 +313,10 @@ produce a fatal error.
The experimental features need bottomed out.
+ perldiag.pod
+ Need to add warning class information and notes on
+ how to use the class info with the warnings pragma.
+
perl5db.pl
The debugger saves and restores C<$^W> at runtime. I haven't checked
whether the debugger will still work with the lexical warnings
diff --git a/pod/perlsyn.pod b/pod/perlsyn.pod
index 680ecb9ad9..0dd842d2a2 100644
--- a/pod/perlsyn.pod
+++ b/pod/perlsyn.pod
@@ -155,7 +155,7 @@ C<if> an C<else> goes with. If you use C<unless> in place of C<if>,
the sense of the test is reversed.
The C<while> statement executes the block as long as the expression is
-true (does not evaluate to the null string (C<""> or C<0> or C<"0">).
+true (does not evaluate to the null string C<""> or C<0> or C<"0">).
The LABEL is optional, and if present, consists of an identifier followed
by a colon. The LABEL identifies the loop for the loop control
statements C<next>, C<last>, and C<redo>.