summaryrefslogtreecommitdiff
path: root/pod/perldelta.pod
diff options
context:
space:
mode:
authorPerl 5 Porters <perl5-porters@africa.nicoh.com>1997-04-01 12:01:35 +1200
committerChip Salzenberg <chip@atlantic.net>1997-04-01 12:01:35 +1200
commitdc848c6f6758d4d951bb5c7a9f432e6390e094df (patch)
treeb1ff54c203609fbf9148e072f34e0109600bb3a4 /pod/perldelta.pod
parent212ac238b7c76fe74b999bd66633ce1bda0b362f (diff)
downloadperl-dc848c6f6758d4d951bb5c7a9f432e6390e094df.tar.gz
[inseparable changes from match from perl-5.003_96 to perl-5.003_97]
CORE LANGUAGE CHANGES Subject: Reenable but deprecate inherited AUTOLOAD for plain funcs From: Chip Salzenberg <chip@perl.com> Files: ext/DynaLoader/DynaLoader.pm gv.c lib/Text/ParseWords.pm pod/perldelta.pod pod/perldiag.pod t/op/method.t CORE PORTABILITY Subject: Win32 update Date: Wed, 02 Apr 1997 01:08:09 -0500 From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: win32/VC-2.0/modules.mak win32/VC-2.0/perl.mak win32/VC- 2.0/perldll.mak win32/perl.mak Msg-ID: 199704020608.BAA29538@aatma.engin.umich.edu (applied based on p5p patch as commit 8d0ff1118aaee510902477e928a660803304346c) DOCUMENTATION Subject: Clean up some poddities, and make C<make html> work again From: Chip Salzenberg <chip@perl.com> Files: pod/Makefile pod/perldelta.pod pod/perldiag.pod pod/perlfaq8.pod pod/perlfunc.pod pod/perlop.pod pod/perltrap.pod Subject: Eliminate pod warnings in libs From: Chip Salzenberg <chip@perl.com> Files: lib/CGI.pm lib/ExtUtils/Command.pm LIBRARY AND EXTENSIONS Subject: Eliminate warning in CGI.pm From: Chip Salzenberg <chip@perl.com> Files: lib/CGI.pm OTHER CORE CHANGES Subject: Introduce and use gv_fetchmethod_autoload() From: Chip Salzenberg <chip@perl.com> Files: global.sym gv.c pod/perlguts.pod proto.h universal.c
Diffstat (limited to 'pod/perldelta.pod')
-rw-r--r--pod/perldelta.pod54
1 files changed, 30 insertions, 24 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index ddd29c46d6..2e293419d0 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -37,12 +37,29 @@ may only be used to set the following switches: B<-[DIMUdmw]>.
=head2 More precise warnings
-If you removed the -w option from your Perl 5.003 scripts because it
+If you removed the B<-w> option from your Perl 5.003 scripts because it
made Perl too verbose, we recommend that you try putting it back when
you upgrade to Perl 5.004. Each new perl version tends to remove some
undesirable warnings, while adding new warnings that may catch bugs in
your scripts.
+=head2 Deprecated: Inherited C<AUTOLOAD> for non-methods
+
+Before Perl 5.004, C<AUTOLOAD> functions were looked up as methods
+(using the C<@ISA> hierarchy), even when the function to be autoloaded
+was called as a plain function (e.g. C<Foo::bar()>), not a method
+(e.g. C<Foo->bar()> or C<$obj->bar()>).
+
+Perl 5.005 will use method lookup only for methods' C<AUTOLOAD>s.
+However, there is a significant base of existing code that may be using
+the old behavior. So, as an interim step, Perl 5.004 issues an optional
+warning when a non-method uses an inherited C<AUTOLOAD>.
+
+The simple rule is: Inheritance will not work when autoloading
+non-methods. The simple fix for old code is: In any module that used to
+depend on inheriting C<AUTOLOAD> for non-methods from a base class named
+C<BaseClass>, execute C<*AUTOLOAD = \&BaseClass::AUTOLOAD> during startup.
+
=head2 Subroutine arguments created only when they're modified
In Perl 5.004, nonexistent array and hash elements used as subroutine
@@ -67,19 +84,6 @@ 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 Simple functions' C<AUTOLOAD> not looked up as method
-
-Before Perl 5.004, C<AUTOLOAD> functions were looked up as methods
-(using the C<@ISA> hierarchy), even when the function to be autoloaded
-was called as a plain function (e.g. C<Foo::bar()>), not a method.
-Perl 5.004 no longer uses method lookup for C<AUTOLOAD>s of plain
-functions.
-
-The simple rule is: Inheritance does not work when autoloading plain
-functions. The simple fix for old code is: In any module that used to
-depend on inheriting C<AUTOLOAD> from a base class named C<BaseClass>,
-execute C<*AUTOLOAD = *BaseClass::AUTOLOAD>.
-
=head2 Fixed parsing of $$<digit>, &$<digit>, etc.
A bug in previous versions of Perl 5.0 prevented proper parsing of
@@ -272,7 +276,7 @@ which have changed in incompatible ways from older versions of Perl.
If the VERSION argument is present between Module and LIST, then the
C<use> will call the VERSION method in class Module with the given
version as an argument. The default VERSION method, inherited from
-the Universal class, croaks if the given version is larger than the
+the UNIVERSAL class, croaks if the given version is larger than the
value of the variable $Module::VERSION. (Note that there is not a
comma after VERSION!)
@@ -938,7 +942,7 @@ name (as opposed to a subroutine reference).
=item Constant subroutine %s redefined
(S) You redefined a subroutine which had previously been eligible for
-inlining. See L<perlsub/"Constant Functions"for commentary and
+inlining. See L<perlsub/"Constant Functions"> for commentary and
workarounds.
=item Constant subroutine %s undefined
@@ -1184,7 +1188,7 @@ version of Perl, and this should not happen anyway.
=item Malformed PERLLIB_PREFIX
-(F) An error peculiar to OS/2. PERLLIB_PREFIX should be of the form
+(F) An error peculiar to OS/2. PERLLIB_PREFIX should be of the form
prefix1;prefix2
@@ -1192,21 +1196,23 @@ or
prefix1 prefix2
-with nonempty prefix1 and prefix2. If C<prefix1> is indeed a prefix of
-a builtin library search path, prefix2 is substituted. The error may appear
-if components are not found, or are too long. See L<perlos2/"PERLLIB_PREFIX">.
+with nonempty prefix1 and prefix2. If C<prefix1> is indeed a prefix
+of a builtin library search path, prefix2 is substituted. The error
+may appear if components are not found, or are too long. See
+"PERLLIB_PREFIX" in F<README.os2>.
=item PERL_SH_DIR too long
(F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the
-C<sh>-shell in. See L<perlos2/"PERL_SH_DIR">.
+C<sh>-shell in. See "PERL_SH_DIR" in F<README.os2>.
=item Process terminated by SIG%s
(W) This is a standard message issued by OS/2 applications, while *nix
-applications die in silence. It is considered a feature of the OS/2
-port. One can easily disable this by appropriate sighandlers, see
-L<perlipc/"Signals">. See L<perlos2/"Process terminated by SIGTERM/SIGINT">.
+applications die in silence. It is considered a feature of the OS/2
+port. One can easily disable this by appropriate sighandlers, see
+L<perlipc/"Signals">. See also "Process terminated by SIGTERM/SIGINT"
+in F<README.os2>.
=back