perl: distinct list of modules introduced in v5.8
[sheet.git] / perl.plp
index c36f5e8cf75c0ba9eda2112ed5d121797270fb85..57a7dc84da6ef4cbabd0e5f619fc8e033d72d64b 100644 (file)
--- a/perl.plp
+++ b/perl.plp
@@ -100,15 +100,27 @@ for my $vernum (reverse sort keys %{$info}) {
                        if ($attr->{experimental}) {
                                $title = sprintf '<span title="experimental::%s">%s</span>',
                                        $attr->{experimental}, $title;
+                               $attr->{name} //= $attr->{experimental};
                        }
                        if ($attr->{feature}) {
                                my $prefix = sprintf '<span title="%s">feature</span>',
                                        $attr->{feature};
                                $title = join ', ', $prefix, $title // ();
+                               $attr->{name} //= $attr->{feature};
                        }
-                       $desc .= sprintf ' <em class="ex">(%s)</em>', $title;
+                       $desc .= sprintf ' <em class="ex">(%s)</em>', $title if $title;
+               }
+               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>%s<dd>%s', $topic, $desc || '<br/>';
        }
        say sprintf '<dt>Unicode</dt><dd>v%s', $_ for $verrow->{unicode} || ();
        say '</dl>';