diff options
Diffstat (limited to 'pod')
-rw-r--r-- | pod/perldelta.pod | 81 | ||||
-rw-r--r-- | pod/perldiag.pod | 37 | ||||
-rw-r--r-- | pod/perltoc.pod | 42 |
3 files changed, 133 insertions, 27 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 0d3dd84ab0..1447fd4959 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -84,13 +84,30 @@ After this code executes in Perl 5.004, $a{b} exists but $a[2] does not. In Perl 5.002 and 5.003, both $a{b} and $a[2] would have existed (but $a[2]'s value would have been undefined). +=head2 C<$)> is writable + +The C<$)> special variable has always (well, in Perl 5, at least) +reflected not only the current effective group, but also the group +list as returned by the C<getgroups()> C function (if there is one). +However, due to an oversight, assigning to C<$)> has not called +C<setgroups()>, only C<setegid()>. + +In Perl 5.004, assigning to C<$)> is exactly symmetrical with +examining it: The first number in its string value is used as the +effective gid, and all the others are passed to the C<setgroups()> C +function (if there is one). + =head2 Fixed parsing of $$<digit>, &$<digit>, etc. -A bug in previous versions of Perl 5.0 prevented proper parsing of -numeric special variables as symbolic references. That bug has been -fixed. As a result, the string "$$0" is no longer equivalent to -C<$$."0">, but rather to C<${$0}>. To get the old behavior, change -"$$" followed by a digit to "${$}". +Perl versions before 5.004 misinterpreted any type marker followed by +"$" and a digit. For example, "$$0" was incorrectly taken to mean +"${$}0" instead of "${$0}". This bug is (mostly) fixed in Perl 5.004. + +However, the developers of Perl 5.004 could not fix this bug completely, +because at least two widely-used modules depend on the old meaning of +"$$0" in a string. So Perl 5.004 still interprets "$$<digit>" in the +old (broken) way inside strings; but it generates this message as a +warning. And in Perl 5.005, this special treatment will cease. =head2 No resetting of $. on implicit close @@ -600,6 +617,17 @@ relative to the local time zone, in the VMS tradition. =head1 Modules +=head2 Required Updates + +Though Perl 5.004 is compatible with almost all modules that work +with Perl 5.003, there are a few exceptions: + + Module Required Version for Perl 5.004 + ------ ------------------------------- + Filter 1.12 + LWP 5.08 + Tk Tk400.202 (-w makes noise) + =head2 Installation directories The I<installperl> script now places the Perl source files for @@ -698,14 +726,20 @@ more operations. These are overloaded: And these functions are now exported: pi i Re Im arg - log10 logn cbrt root - tan cotan asin acos atan acotan - sinh cosh tanh cotanh asinh acosh atanh acotanh + log10 logn ln cbrt root + tan + csc sec cot + asin acos atan + acsc asec acot + sinh cosh tanh + csch sech coth + asinh acosh atanh + acsch asech acoth cplx cplxe =head2 Math::Trig -This module provides a simpler interface to parts of Math::Complex for +This new module provides a simpler interface to parts of Math::Complex for those who need trigonometric functions only for real numbers. =head2 DB_File @@ -994,6 +1028,17 @@ architecture. On a 32-bit architecture the largest hex literal is architecture. On a 32-bit architecture the largest octal literal is 037777777777. +=item internal error: glob failed + +(P) Something went wrong with the external program(s) used for C<glob> +and C<E<lt>*.cE<gt>>. This may mean that your csh (C shell) is +broken. If so, you should change all of the csh-related variables in +config.sh: If you have tcsh, make the variables refer to it as if it +were csh (e.g. C<full_csh='/usr/bin/tcsh'>); otherwise, make them all +empty (except that C<d_csh> should be C<'undef'>) so that Perl will +think csh is missing. In either case, after editing config.sh, run +C<./Configure -S> and rebuild Perl. + =item Name "%s::%s" used only once: possible typo (W) Typographical errors often show up as unique variable names. @@ -1078,6 +1123,12 @@ commas if you don't want them to appear in your data: qw! a b c !; +=item Recursive substitution detected + +(F) The replacement string of a substitution caused the recursive +execution of that very same substituion. Perl cannot keep track of +special variables (C<$1>, etc.) under such circumstances. + =item Scalar value @%s{%s} better written as $%s{%s} (W) You've used a hash slice (indicated by @) to select a single element of @@ -1120,6 +1171,18 @@ Note that under some systems, like OS/2, there may be different flavors of Perl executables, some of which may support fork, some not. Try changing the name you call Perl by to C<perl_>, C<perl__>, and so on. +=item Use of "$$<digit>" to mean "${$}<digit>" is deprecated + +(D) Perl versions before 5.004 misinterpreted any type marker followed +by "$" and a digit. For example, "$$0" was incorrectly taken to mean +"${$}0" instead of "${$0}". This bug is (mostly) fixed in Perl 5.004. + +However, the developers of Perl 5.004 could not fix this bug completely, +because at least two widely-used modules depend on the old meaning of +"$$0" in a string. So Perl 5.004 still interprets "$$<digit>" in the +old (broken) way inside strings; but it generates this message as a +warning. And in Perl 5.005, this special treatment will cease. + =item Value of %s can be "0"; test with defined() (W) In a conditional expression, you used <HANDLE>, <*> (glob), C<each()>, diff --git a/pod/perldiag.pod b/pod/perldiag.pod index 89c8a2ac5c..0543595527 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -1203,6 +1203,17 @@ and execute the specified command. (P) Something went badly wrong in the regular expression parser. +=item internal error: glob failed + +(P) Something went wrong with the external program(s) used for C<glob> +and C<E<lt>*.cE<gt>>. This may mean that your csh (C shell) is +broken. If so, you should change all of the csh-related variables in +config.sh: If you have tcsh, make the variables refer to it as if it +were csh (e.g. C<full_csh='/usr/bin/tcsh'>); otherwise, make them all +empty (except that C<d_csh> should be C<'undef'>) so that Perl will +think csh is missing. In either case, after editing config.sh, run +C<./Configure -S> and rebuild Perl. + =item internal urp in regexp at /%s/ (P) Something went badly awry in the regular expression parser. @@ -1897,6 +1908,12 @@ which is why it's currently left out of your copy. (F) More than 100 levels of inheritance were used. Probably indicates an unintended loop in your inheritance hierarchy. +=item Recursive substitution detected + +(F) The replacement string of a substitution caused the recursive +execution of that very same substituion. Perl cannot keep track of +special variables (C<$1>, etc.) under such circumstances. + =item Reference miscount in sv_replace() (W) The internal sv_replace() function was handed a new SV with a @@ -2447,6 +2464,18 @@ a term, so it's looking for the corresponding right angle bracket, and not finding it. Chances are you left some needed parentheses out earlier in the line, and you really meant a "less than". +=item Use of "$$<digit>" to mean "${$}<digit>" is deprecated + +(D) Perl versions before 5.004 misinterpreted any type marker followed +by "$" and a digit. For example, "$$0" was incorrectly taken to mean +"${$}0" instead of "${$0}". This bug is (mostly) fixed in Perl 5.004. + +However, the developers of Perl 5.004 could not fix this bug completely, +because at least two widely-used modules depend on the old meaning of +"$$0" in a string. So Perl 5.004 still interprets "$$<digit>" in the +old (broken) way inside strings; but it generates this message as a +warning. And in Perl 5.005, this special treatment will cease. + =item Use of $# is deprecated (D) This was an ill-advised attempt to emulate a poorly defined B<awk> feature. @@ -2477,10 +2506,10 @@ a split() explicitly to an array (or list). =item Use of inherited AUTOLOAD for non-method %s() is deprecated -As an (ahem) accidental feature, C<AUTOLOAD> subroutines are looked up -as methods (using the C<@ISA> hierarchy) even when the subroutines to be -autoloaded were called as plain functions (e.g. C<Foo::bar()>), not as -methods (e.g. C<Foo->bar()> or C<$obj->bar()>). +(D) As an (ahem) accidental feature, C<AUTOLOAD> subroutines are looked +up as methods (using the C<@ISA> hierarchy) even when the subroutines to +be autoloaded were called as plain functions (e.g. C<Foo::bar()>), not +as methods (e.g. C<Foo->bar()> or C<$obj->bar()>). This bug will be rectified in Perl 5.005, which will use method lookup only for methods' C<AUTOLOAD>s. However, there is a significant base diff --git a/pod/perltoc.pod b/pod/perltoc.pod index 467f02c31d..ce590dcb8d 100644 --- a/pod/perltoc.pod +++ b/pod/perltoc.pod @@ -833,6 +833,8 @@ file on another machine? =item Subroutine arguments created only when they're modified +=item C<$)> is writable + =item Fixed parsing of $$<digit>, &$<digit>, etc. =item No resetting of $. on implicit close @@ -887,6 +889,8 @@ constant NAME => VALUE, use locale, use ops, use vmsish =over +=item Required Updates + =item Installation directories =item Module information summary @@ -937,18 +941,20 @@ resolve method `%s' overloading `%s' in package `%s', Constant subroutine %s redefined, Constant subroutine %s undefined, Copy method did not return a reference, Died, Exiting pseudo-block via %s, Illegal character %s (carriage return), Illegal switch in PERL5OPT: %s, Integer overflow in hex -number, Integer overflow in octal number, Name "%s::%s" used only once: -possible typo, Null picture in formline, Offset outside string, Out of -memory!, Out of memory during request for %s, Possible attempt to put -comments in qw() list, Possible attempt to separate words with commas, -Scalar value @%s{%s} better written as $%s{%s}, Stub found while resolving -method `%s' overloading `%s' in package `%s', Too late for "B<-T>" option, -untie attempted while %d inner references still exist, Unrecognized -character %s, Unsupported function fork, Value of %s can be "0"; test with -defined(), Variable "%s" may be unavailable, Variable "%s" will not stay -shared, Warning: something's wrong, Ill-formed logical name |%s| in -prime_env_iter, Got an error from DosAllocMem, Malformed PERLLIB_PREFIX, -PERL_SH_DIR too long, Process terminated by SIG%s +number, Integer overflow in octal number, internal error: glob failed, Name +"%s::%s" used only once: possible typo, Null picture in formline, Offset +outside string, Out of memory!, Out of memory during request for %s, +Possible attempt to put comments in qw() list, Possible attempt to separate +words with commas, Recursive substitution detected, Scalar value @%s{%s} +better written as $%s{%s}, Stub found while resolving method `%s' +overloading `%s' in package `%s', Too late for "B<-T>" option, untie +attempted while %d inner references still exist, Unrecognized character %s, +Unsupported function fork, Use of "$$<digit>" to mean "${$}<digit>" is +deprecated, Value of %s can be "0"; test with defined(), Variable "%s" may +be unavailable, Variable "%s" will not stay shared, Warning: something's +wrong, Ill-formed logical name |%s| in prime_env_iter, Got an error from +DosAllocMem, Malformed PERLLIB_PREFIX, PERL_SH_DIR too long, Process +terminated by SIG%s =item BUGS @@ -2429,6 +2435,8 @@ callback =item Alternate Stack Manipulation +=item Creating and calling an anonymous subroutine in C + =back =item SEE ALSO @@ -4093,7 +4101,7 @@ functions =item USAGE -=item CAVEATS +=item ERRORS DUE TO DIVISION BY ZERO =item BUGS @@ -4109,12 +4117,18 @@ functions =over -=item SIMPLE ARGUMENTS, COMPLEX RESULTS +=item ERRORS DUE TO DIVISION BY ZERO + +=item SIMPLE (REAL) ARGUMENTS, COMPLEX RESULTS =back =item ANGLE CONVERSIONS +=item BUGS + +=item AUTHORS + =head2 NDBM_File - Tied access to ndbm files =item SYNOPSIS |