perl: missing major v5.10 features
[sheet.git] / perl.inc.pl
index 3b3b1af7a49881b055ee9d6b9721f818bd60460b..09fff96479fffd094d29362fcc368fe38b35c784 100644 (file)
@@ -54,11 +54,15 @@ use utf8;
                new => [
                        ['<code>//</code>', 'defined-or operator'],
                        ['<code>~~</code>', 'smart-match operator to compare different data types <small>(updated in v5.10.1)</small>', 'experimental::smartmatch'],
+                       ['<code>say</code>', 'print with newline, equivalent to <code>print @_, "\n"</code>'],
                        ['<code>given</code>', 'switch statement to smart-match with <code>when</code>/<code>default</code>', 'experimental::smartmatch'],
                        ['<code>/(?&lt;name>)/</code>', 'named capture buffers into <code>%+</code>'],
+                       ['<code>/(?1)/</code>', 'recursive regular expression patterns'],
+                       ['<code>/.++/</code>', 'possessive quantifiers <code>?+</code>, <code>*+</code>, <code>++</code> to match greedily'],
                        ['<code>s/keep\K//</code>', 'floating positive lookbehind, efficient alternative for <code>s/(keep)/$1/</code>'],
                        ['<code>/\v/, /\h/</code>', 'vertical and horizontal whitespace escapes'],
                        ['<code>my $_</code>', 'lexically scoped version of the default variable', v0.5.23.4, 'experimental::lexical_topic'],
+                       ['<code>state</code>', 'persistent <code>my</code> variables'],
                ],
                release => '2007-12-18',
                distro => {
@@ -152,7 +156,7 @@ use utf8;
 
        v5.22 => {
                new => [
-                       ['<code>\$alias =</code>', 'aliasing via reference'],
+                       ['<code>\$alias =</code>', 'aliasing via reference (scoped as of v5.25.3)', 'experimental::refaliasing'],
                        ['<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)'],
@@ -176,4 +180,13 @@ use utf8;
                unicode => '8.0',
                release => '2016-05-09',
        },
+
+       v5.25.8 => {
+               new => [
+                       ['<code>&lt;&lt;~EOT</code>', 'indented here-docs, strips same whitespace before delimiter in each line'],
+                       ['<code>@{^CAPTURE}</code>', q"array of last match's captures, so <code>@{^CAPTURE}[0]</code> is <code>$1</code>"],
+               ],
+               unicode => '9.0', # also Script_Extensions/scx in "\p{script}"
+               release => '2016-12-20',
+       },
 }