[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
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";