perl: complete v5.6 features
[sheet.git] / perl.inc.pl
index 85ec1d823b0b7298f9b012ec0bdd203f054c432d..1ca3b4d0c5086c8d55b97b0dce59e1f11e964fd4 100644 (file)
@@ -3,13 +3,20 @@ use utf8;
 +{
        v5.6 => {
                new => [
-                       ['<code>use warnings</code>'],
-                       ['<code>use utf8</code>'],
-                       ['<code>\N{named character}</code>'],
-                       ['<code>our</code>'],
-                       ['<code>v1.2.3</code>'],
-                       ['<code>sub :locked :method</code>'],
-                       ['<code>open $fh, $mode, $expr</code>'],
+                       ['<code>use warnings</code>', 'pragma to enable warnings in lexical scope'],
+                       ['<code>use utf8</code>', 'experimental unicode semantics <small>(completed in v5.8)</small>'],
+                       ['<code>use charnames</code>', 'string escape <code>\N{}</code> to insert named character'],
+                       ['<code>our</code>', 'declare global variables'],
+                       ['<code>v1.2.3</code>', q`represent strings as vector of ordinals, useful in version numbers (<code>printf '%vd'</code> to display)`],
+                       ['<code>0b0</code>', q`binary numbers in literals, <code>printf '%b'</code>, and <code>oct</code>`],
+                       ['<code>sub :lvalue</code>', 'subroutine attribute to return a modifiable value'],
+#                      ['<code>sub :locked :method</code>', 'syntax to declare subroutine attributes'], # can be inferred from :lvalue support
+                       ['<code>open my $fh, $mode, $expr</code>', 'file handles in scoped scalars, third argument for unambiguous file name'],
+                       [q`<code>pack 'q'</code>`, '64-bit integer support (also large files &gt;2GiB)'],
+                       ['<code>sort $coderef ()</code>', 'comparison function can be a subroutine reference; prototype <code>($$)</code> to pass elements as normal <code>@_</code>'],
+                       ['<code>CHECK {}</code>', 'special block called at end of compilation'],
+                       ['<code>/[[:…:]]/</code>', 'POSIX character class syntax such as <code>[[:alpha:]]/</code>'],
+                       # quite a lot more, but leave it at this
                ],
                release => '2000-03-23',
                distro => {
@@ -22,7 +29,7 @@ use utf8;
 
        v5.8 => {
                new => [
-                       [q`<code>no utf8; $unicode</code>`, 'unicode overhaul: additional /\p{}/ properties'],
+                       [q`<code>no utf8</code>`, 'full unicode support, <code>utf8</code> pragma only for script encoding'],
                        [q`<code>binmode $fh, ':perlio'</code>`, 'file handle behaviour altered by PerlIO layers'],
                        [q`<code>open $fh, '-|', @cmd</code>`, 'open list to fork a command without spawning a shell'],
                        [q`<code>open $fh, '>', \$var</code>`, 'perl scalars as virtual files'],