This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for File::Spec->tmpdir and changing env (#88940)
[perl5.git] / pod / perldelta.pod
index e25176c..d24b0b4 100644 (file)
@@ -137,9 +137,22 @@ XXX
 
 B::Deparse has been upgraded from version 1.20 to 1.21.
 
-C<foreach my $lexical> is now deparse correctly with the B<-p> option.
+C<foreach my $lexical> is now deparsed correctly with the B<-p> option.
 [RT #117081]
 
+The B<-l> option no longer puts form feeds in the middle of a line when
+outputting C<map> and C<grep> blocks. [RT #117311]
+
+Elements of C<%#>, such as C<$# {foo}> and C<${#}{foo}> are now deparsed
+correctly. [RT #117531]
+
+=item *
+
+File::Spec has been upgraded from version 3.40 to 3.41.
+
+C<tmpdir> now respects changes to environment variables from which the
+temporary directory is derived. [RT #88940]
+
 =item *
 
 Test::Harness has been upgraded from version 3.26 to 3.28
@@ -187,13 +200,13 @@ XXX Changes which significantly change existing files in F<pod/> go here.
 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
 section.
 
-=head3 L<XXX>
+=head3 L<perltrap>
 
 =over 4
 
 =item *
 
-XXX Description of the change here
+There is now a L<JavaScript|perltrap/JavaScript Traps> section.
 
 =back
 
@@ -526,6 +539,50 @@ Parameter prototypes attached to lexical subroutines are now respected when
 compiling sub calls without parentheses.  Previously, the prototypes were
 honoured only for calls I<with> parentheses. [RT #116735]
 
+=item *
+
+Syntax errors in lexical subroutines in combination with calls to the same
+subroutines no longer cause crashes at compile time.
+
+=item *
+
+The warning produced by C<-l $handle> now applies to IO refs and globs, not
+just to glob refs.  That warning is also now UTF8-clean. [RT #117595]
+
+=item *
+
+Various memory leaks involving the parsing of the C<(?[...])> regular
+expression construct have been fixed.
+
+=item *
+
+C<(?[...])> now allows interpolation of precompiled patterns consisting of
+(?[...])> with bracket character classes inside (C<$pat =
+S<qr/(?[ [a] ])/;> S</(?[ $pat ])/>>).  Formerly, the brackets would
+confuse the regular expression parser.
+
+=item *
+
+C<delete local $ENV{nonexistent_env_var}> no longer leaks memory.
+
+=item *
+
+C<sort> and C<require> followed by a keyword prefixed with C<CORE::> now
+treat it as a keyword, and not as a subroutine or module name. [RT #24482]
+
+=item *
+
+Through certain conundrums, it is possible to cause the current package to
+be freed.  Certain operators (C<bless>, C<reset>, C<open>, C<eval>) could
+not cope and would crash.  They have been made more resilient. [RT #117941]
+
+=item *
+
+Aliasing filehandles through glob-to-glob assignment would not update
+internal method caches properly if a package of the same name as the
+filehandle existed, resulting in filehandle method calls going to the
+package instead.  This has been fixed.
+
 =back
 
 =head1 Known Problems