Path to this page:
Subject: CVS commit: pkgsrc/lang/perl5
From: Thomas Klausner
Date: 2021-05-24 19:46:25
Message id: 20210524174625.64B3FFA95@cvs.NetBSD.org
Log Message:
perl: update to 5.34.0.
= Core Enhancements
= Experimental Try/Catch Syntax
An initial experimental attempt at providing C<try>/C<catch> notation has
been added.
use feature 'try';
try {
a_function();
}
catch ($e) {
warn "An error occurred: $e";
}
For more information, see L<perlsyn/"Try Catch Exception Handling">.
= C<qr/{,n}/> is now accepted
An empty lower bound is now accepted for regular expression quantifiers,
like C<{,3}>.
= Blanks freely allowed within but adjacent to curly braces
(in double-quotish contexts and regular expression patterns)
This means you can write things like S<C<\x{ FFFC }>> if you like. This
applies to all such constructs, namely C<\b{}>, C<\g{}>, C<\k{}>,
C<\N{}>, C<\o{}>, and C<\x{}>; as well as the regular expression
quantifier C<{I<m>,I<n>}>. C<\p{}> and C<\P{}> \
retain their
already-existing, even looser, rules mandated by the Unicode standard
(see L<perluniprops/Properties accessible through \p{} and \P{}>).
This ability is in effect regardless of the presence of the C</x>
regular expression pattern modifier.
Additionally, the comma in a regular expression braced quantifier may
have blanks (tabs or spaces) before and/or after the comma, like
S<C<qr/a{ 5, 7 }/>>.
= New octal syntax C<0oI<ddddd>>
It is now possible to specify octal literals with C<0o> prefixes,
as in C<0o123_456>, parallel to the existing construct to specify
hexadecimal literal C<0xI<ddddd>> and binary literal \
C<0bI<ddddd>>.
Also, the builtin C<oct()> function now accepts this new syntax.
See L<perldata/Scalar value constructors> and L<perlfunc/oct EXPR>.
= Performance Enhancements
=item *
Fix a memory leak in RegEx
[L<GH #18604|https://github.com/Perl/perl5/issues/18604>]
= Modules and Pragmata
= New Modules and Pragmata
=item *
L<ExtUtils::PL2Bat> 0.004 has been added to the Perl core.
This module is a generalization of the C<pl2bat> script. It being a script has
led to at least two forks of this code; this module will unify them under one
implementation with tests.
(and lots more changes)
Files: