summaryrefslogtreecommitdiff
path: root/pod/perldelta.pod
diff options
context:
space:
mode:
authorPerl 5 Porters <perl5-porters@africa.nicoh.com>1997-03-22 15:34:25 +1200
committerChip Salzenberg <chip@atlantic.net>1997-03-22 15:34:25 +1200
commit3fe9a6f19eb206c685bd7389e54e2838fdfd04b7 (patch)
tree94845bcda5f58956e6c9ccef24340d1b5c93d182 /pod/perldelta.pod
parent9a2c4ce3a0904191a580ec822adeb696331d31ce (diff)
downloadperl-3fe9a6f19eb206c685bd7389e54e2838fdfd04b7.tar.gz
[inseparable changes from match from perl-5.003_94 to perl-5.003_95]
CORE LANGUAGE CHANGES Subject: Don't compile scalar mods of aggregates, like C<@a =~ s/a/b/> From: Chip Salzenberg <chip@perl.com> Files: op.c t/op/misc.t Subject: Warn about undef magic values just like non-magic From: Chip Salzenberg <chip@perl.com> Files: ext/Opcode/Safe.pm sv.c t/lib/db-btree.t t/lib/db-hash.t t/lib/db-recno.t t/pragma/locale.t CORE PORTABILITY Subject: Win32 update (five patches) From: Gurusamy Sarathy <gsar@engin.umich.edu> Files: MANIFEST README.win32 doio.c dosish.h pp_sys.c lib/ExtUtils/Command.pm t/comp/multiline.t t/op/magic.t t/op/mkdir.t t/op/runlevel.t t/op/stat.t t/op/write.t win32/Makefile win32/config.H win32/config.w32 win32/win32.c win32/win32.h win32/win32aux.c win32/*.mak win32/VC-2.0/*.mak DOCUMENTATION Subject: INSTALL-1.8 to INSTALL-1.9 updates Date: Tue, 25 Mar 1997 13:52:53 -0500 (EST) From: Andy Dougherty <doughera@fractal.phys.lafayette.edu> Files: INSTALL Msg-ID: Pine.SOL.3.95q.970325135138.3374A-100000@fractal.lafayette.e (applied based on p5p patch as commit 9b1ae96a0b4301a9588f62b3175bc0312302f4b9) Subject: Document possible problems with -Mdiagnostics after upgrade From: Chip Salzenberg <chip@perl.com> Files: INSTALL Subject: Mention perldelta in INSTALL From: Chip Salzenberg <chip@perl.com> Files: INSTALL Subject: Describe pod format at top of INSTALL From: Chip Salzenberg <chip@perl.com> Files: INSTALL Subject: Document C</a *b/x> fix From: Chip Salzenberg <chip@perl.com> Files: pod/perldelta.pod Subject: pods for subroutine argument autovivication Date: Mon, 24 Mar 1997 07:25:21 +0000 From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk> Files: pod/perldelta.pod pod/perlsub.pod Msg-ID: E0w9489-0005YT-00@ursa.cus.cam.ac.uk (applied based on p5p patch as commit db8878faa51a8a1541a40745a8613adb5db155e4) Subject: Missing item in perldiag Date: Sun, 23 Mar 1997 09:24:09 +0000 From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk> Files: pod/perldiag.pod Msg-ID: E0w8jVZ-0005va-00@ursa.cus.cam.ac.uk (applied based on p5p patch as commit c00a529017138505fcbe538b74c7884abe1d18e1) Subject: Pod problems & fixes Date: Mon, 24 Mar 1997 21:31:51 +0100 (MET) From: Hallvard B Furuseth <h.b.furuseth@usit.uio.no> Files: INSTALL lib/Term/Complete.pm lib/subs.pm pod/perlcall.pod pod/perldata.pod pod/perldiag.pod pod/perlembed.pod pod/perlguts.pod pod/perlmod.pod pod/perlop.pod pod/perlpod.pod pod/pod2html.PL Msg-ID: 199703242031.VAA14997@bombur2.uio.no (applied based on p5p patch as commit 55a864fe4cea1a0586891b83d359ba71e0972da5) Subject: FAQ update From: Nathan Torkington <gnat@prometheus.frii.com> Files: pod/perlfaq*.pod OTHER CORE CHANGES Subject: Improve 'prototype mismatch' warning From: Chip Salzenberg <chip@perl.com> Files: global.sym op.c pod/perldiag.pod proto.h sv.c t/comp/redef.t
Diffstat (limited to 'pod/perldelta.pod')
-rw-r--r--pod/perldelta.pod37
1 files changed, 28 insertions, 9 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 958bee38ed..46bd59b04f 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -27,17 +27,29 @@ might have symbol conflicts if you embed Perl in another application,
just as in the 5.003 release. By default, binary compatibility
is preserved at the expense of symbol table pollution.
-=head2 No Autovivification of Subroutine Parameters
+=head2 Subroutine arguments created only when they're modified
-In Perl versions 5.002 and 5.003, array and hash elements used as
-subroutine parameters were "autovivified"; that is, they were brought
-into existence if they did not already exist. For example, calling
-C<func($h{foo})> would create C<$h{foo}> if it did not already exist,
-causing C<exists $h{foo}> to become true and C<keys %h> to return
-C<('foo')>.
+In Perl 5.004, nonexistent array and hash elements used as subroutine
+parameters are brought into existence only if they are actually
+assigned to (via C<@_>).
-Perl 5.004 returns to the pre-5.002 behavior of I<not> autovivifying
-array and hash elements used as subroutine parameters.
+Earlier versions of Perl vary in their handling of such arguments.
+Perl versions 5.002 and 5.003 always brought them into existence.
+Perl versions 5.000, 5.001, and 5.002 brought them into existence only
+if they were not the first argument (which was almost certainly a
+bug). Earlier versions of Perl never brought them into existence.
+
+For example, given this code:
+
+ undef @a; undef %a;
+ sub show { print $_[0] };
+ sub change { $_[0]++ };
+ show($a[2]);
+ change($a{b});
+
+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 Fixed Parsing of $$<digit>, &$<digit>, etc.
@@ -267,6 +279,13 @@ string in some way. This change makes it practical to chain C<m//g>
matches together in conjunction with ordinary matches using the C<\G>
zero-width assertion. See L<perlop> and L<perlre>.
+=item C<m//x> ignores whitespace before ?*+{}
+
+The C<m//x> construct has always been intended to ignore all unescaped
+whitespace. However, before Perl 5.004, whitespace had the effect of
+esacping repeat modifier like "*" or "?". For example, C</a *b/x> was
+(mis)interpreted as C</a\*b/x>. This bug has been fixed in 5.004.
+
=item nested C<sub{}> closures work now
Prior to the 5.004 release, nested anonymous functions didn't work