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