X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/084e72d390de05bfa7f16b54b97f339d491bfff2..77eb26995a1185e50b2b275f058264857bed9cc7:/perl.inc.pl diff --git a/perl.inc.pl b/perl.inc.pl index ae02b3a..63e3e7b 100644 --- a/perl.inc.pl +++ b/perl.inc.pl @@ -192,7 +192,7 @@ use utf8; ['<<>>', 'safe readline ignoring open flags in arguments'], ['/()/n', 'flag to disable numbered capturing, turning () into (?:)'], ['/\b{}/', 'boundary types: gcb (grapheme cluster), sb (sentence), wb (word)'], - ['&.', '& | ^ ~ consistently numeric, dotted operators for strings', {experimental => 'bitwise'}], + ['&.', '& | ^ ~ consistently numeric, dotted operators for strings', {feature => 'bitwise', experimental => 'bitwise', stable => v5.28}], [q"use re 'strict'", 'apply stricter syntax rules to regular expression patterns', {experimental => 're_strict'}], ['0x.beep+0', q"hexadecimal floating point notation with binary power; printf '%a' to display"], ], @@ -230,4 +230,40 @@ use utf8; ubuntu => '17.10', # artful }, }, + + v5.28 => { + new => [ + ['delete %hash{…}', 'hash slices can be deleted with key+value pairs'], + ['/(*…)/', 'alphabetic synonyms for assertions, e.g. (*atomic:…) for (?>…) and (*nlb:…) for (?<!…)', {experimental => 'alpha_assertions', stable => v5.31.6}], + ['/(*script_run:)/', 'enforces all characters to be from the same script', {experimental => 'script_run', stable => v5.31.6}], + ['state @a', 'persistent lexical array or hash variables'], + ['perl -i -pe die', 'safe in-place editing: files are replaced only after successful completion'], + ['${^SAFE_LOCALES}', 'locales are thread-safe on supported systems, indicated by this variable'], + ], + unicode => '10.0', + release => '2018-06-22', + distro => { + }, + }, + + v5.30 => { + new => [ + ['/(?<=var+)', 'variable length lookbehind assertions', {experimental => 'vlb'}], + ['m(\p{nv=/.*/})', 'match unicode properties by regular expressions', {experimental => 'uniprop_wildcards'}], + ['my $state if 0', 'workaround for state (deprecated since v5.10!) is now prohibited'], + [q"qr'\N'", 'Delimiters must be graphemes; unescaped { illegal; \N in single quotes'], + ], + unicode => '12.1', + release => '2019-05-22', + }, + + v5.32 => { + new => [ + ['isa', 'infix operator to check class instance'], + [q"open F, '+>>', undef", 'respect append mode on temporary files with mixed access'], + ['streamzip', 'program distributed with core IO::Compress::Base'], + ], + # https://www.effectiveperlprogramming.com/2020/01/perl-v5-32-new-features/ + unicode => '13.0', + }, }