X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/6f092b56729d2c0b85c300aa1c00d1762d628698..f99042c89715fdc05bfe40e3f190da7a47d83891:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 06dcd1d..e1e608c 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,3309 +2,535 @@ =head1 NAME -perldelta - what is new for perl v5.26.0 +[ this is a template for a new perldelta file. Any text flagged as XXX needs +to be processed before release. ] -=head1 DESCRIPTION - -This document describes the differences between the 5.24.0 release and the -5.26.0 release. - -=head1 Notice - -This release includes three updates with widespread effects: - -=over 4 - -=item * C<"."> no longer in C<@INC> +perldelta - what is new for perl v5.27.6 -For security reasons, the current directory (C<".">) is no longer included -by default at the end of the module search path (C<@INC>). This may have -widespread implications for the building, testing and installing of -modules, and for the execution of scripts. See the section -L<< Removal of the current directory (C<".">) from C<@INC> >> -for the full details. - -=item * C may now warn +=head1 DESCRIPTION -C now gives a deprecation warning when it fails to load a file which -it would have loaded had C<"."> been in C<@INC>. +This document describes differences between the 5.27.5 release and the 5.27.6 +release. -=item * In regular expression patterns, a literal left brace C<"{"> -should be escaped +If you are upgrading from an earlier release such as 5.27.4, first read +L, which describes differences between 5.27.4 and 5.27.5. -See L characters in regular expression patterns are no longer permissible>. +=head1 Notice -=back +XXX Any important notices here =head1 Core Enhancements -=head2 Lexical subroutines are no longer experimental - -Using the C feature introduced in v5.18 no longer emits a warning. Existing -code that disables the C warning category -that the feature previously used will continue to work. The -C feature has no effect; all Perl code can use lexical -subroutines, regardless of what feature declarations are in scope. - -=head2 Indented Here-documents - -This adds a new modifier C<"~"> to here-docs that tells the parser -that it should look for C as the closing delimiter. - -These syntaxes are all supported: - - <<~EOF; - <<~\EOF; - <<~'EOF'; - <<~"EOF"; - <<~`EOF`; - <<~ 'EOF'; - <<~ "EOF"; - <<~ `EOF`; - -The C<"~"> modifier will strip, from each line in the here-doc, the -same whitespace that appears before the delimiter. - -Newlines will be copied as-is, and lines that don't include the -proper beginning whitespace will cause perl to croak. - -For example: - - if (1) { - print <<~EOF; - Hello there - EOF - } - -prints "Hello there\n" with no leading whitespace. - -=head2 New regular expression modifier C - -Specifying two C<"x"> characters to modify a regular expression pattern -does everything that a single one does, but additionally TAB and SPACE -characters within a bracketed character class are generally ignored and -can be added to improve readability, like -S>. Details are at -Lx and Exx>. - -=head2 C<@{^CAPTURE}>, C<%{^CAPTURE}>, and C<%{^CAPTURE_ALL}> - -C<@{^CAPTURE}> exposes the capture buffers of the last match as an -array. So C<$1> is C<${^CAPTURE}[0]>. This is a more efficient equivalent -to code like C, and you don't -have to keep track of the C<$matched_string> either. This variable has no -single character equivalent. Note that, like the other regex magic variables, -the contents of this variable is dynamic; if you wish to store it beyond -the lifetime of the match you must copy it to another array. - -C<%{^CAPTURE}> is equivalent to C<%+> (I, named captures). Other than -being more self-documenting there is no difference between the two forms. - -C<%{^CAPTURE_ALL}> is equivalent to C<%-> (I, all named captures). -Other than being more self-documenting there is no difference between the -two forms. - -=head2 Declaring a reference to a variable - -As an experimental feature, Perl now allows the referencing operator to come -after L|perlfunc/my>, L|perlfunc/state>, -L|perlfunc/our>, or L|perlfunc/local>. This syntax must -be enabled with C. It is experimental, and will -warn by default unless C is in effect. -It is intended mainly for use in assignments to references. For example: +XXX New core language features go here. Summarize user-visible core language +enhancements. Particularly prominent performance optimisations could go +here, but most should go in the L section. - use experimental 'refaliasing', 'declared_refs'; - my \$a = \$b; +[ List each enhancement as a =head2 entry ] -See L for more details. +=head2 Initialisation of aggregate state variables -=head2 Unicode 9.0 is now supported - -A list of changes is at L. -Modules that are shipped with core Perl but not maintained by p5p do not -necessarily support Unicode 9.0. L does work on 9.0. - -=head2 Use of C<\p{I