perl: distinct list of modules introduced in v5.8
authorMischa POSLAWSKY <perl@shiar.org>
Tue, 30 May 2023 14:30:19 +0000 (16:30 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 30 May 2023 17:47:59 +0000 (19:47 +0200)
perl.inc.pl
perl.plp

index faf530eb1bf213d013668e670badde7612e5f74c..49e8eef362af0ec7c697a4af4dfd75826391b916 100644 (file)
@@ -66,6 +66,16 @@ use utf8;
                        [q"<code>1_2_3 == 123</code>", 'underscores between digits allowed in numeric constants'],
 #                      [q"<code>use if</code>", 'conditional module inclusion'], # also installable in earlier versions
                ],
+               modules => [
+                       [Digest => 'calculate various message digests (data hashes)', '$hash = sha256_hex($data)'],
+                       [Encode => 'character set conversion', 'encode("utf8", decode("iso-8859-1", $octets))'],
+                       #[sort => 'control sort() behaviour'],
+                       ['List::Util' => 'general-utility list subroutines', '@cards = shuffle 0..51'],
+                       ['MIME::Base64' => 'base64 encoded strings as in email attachments'],
+                       [open => 'set default PerlIO layers'],
+                       ['Test::More' => 'modern framework for unit testing', 'is $got, $expected'],
+                       ['Time::HiRes' => 'high resolution timers', '$μs = [gettimeofday]; sleep .1; $elapsed = tv_interval $μs'],
+               ],
                release => '2002-07-18',
                distro => {
                        debian => '3.1', # sarge 2005-06 eol 2008-03, v5.8.8 in etch 2007-04 eol 2010-02
index 02d034869ae7f7ee89c0c9aa8cc3ae30f014df75..57a7dc84da6ef4cbabd0e5f619fc8e033d72d64b 100644 (file)
--- a/perl.plp
+++ b/perl.plp
@@ -113,6 +113,15 @@ for my $vernum (reverse sort keys %{$info}) {
                my $ref = defined $attr->{name} && sprintf ' id="%s"', $attr->{name};
                say sprintf '<dt%s>%s<dd>%s', $ref, $topic, $desc || '<br/>';
        }
+       if (my $mods = $verrow->{modules}) {
+               for (@{$mods}) {
+                       my ($name, $desc, $eg) = @{$_};
+                       my $ref = lc $name =~ s/::/_/gr;
+                       $desc .= sprintf ' <small>{<code>%s</code>}</small>', Entity($_) for $eg // ();
+                       printf '<dt id="%s"><code>use %s</code>', $ref, $name;
+                       say '<dd>', $desc;
+               }
+       }
        say sprintf '<dt>Unicode</dt><dd>v%s', $_ for $verrow->{unicode} || ();
        say '</dl>';
        say "</div>\n";