X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/7d20f0f1160c15c1b52ba92dc86441766040c6ec..41df7258842a3bdfbf6ed51ba5ff4d077e7bad5f:/perl.plp
diff --git a/perl.plp b/perl.plp
index de4637d..1f5cfe7 100644
--- a/perl.plp
+++ b/perl.plp
@@ -91,9 +91,9 @@ for my $vernum (reverse sort keys %{$info}) {
}
if (my $mods = $verrow->{modules}) {
for (@{$mods}) {
- my ($name, $desc, $eg) = @{$_};
+ my ($name, $desc, $attr) = @{$_};
my $ref = lc $name =~ s/::/_/gr;
- $desc .= sprintf ' {%s
}', Entity($_) for $eg // ();
+ $desc .= featattrs($attr);
printf '
use %s
', $ref, $name;
say '', $desc;
}
@@ -104,13 +104,15 @@ for my $vernum (reverse sort keys %{$info}) {
}
sub featattrs ($attr) {
+ $attr or return '';
+ ref $attr or $attr = {eg => $attr};
my $title;
if (defined $attr->{experimental}) {
$title = 'experimental';
}
- if ($attr->{dropped}) {
+ if (defined $attr->{dropped}) {
next unless exists $get{v};
- $title = sprintf 'removed in %vd', $attr->{dropped};
+ $title = sprintf 'removed in %vd', $_ for $attr->{dropped} || ();
}
elsif ($attr->{stable}) {
$title .= sprintf ' until %vd', $attr->{stable};
@@ -126,6 +128,11 @@ sub featattrs ($attr) {
$title = join ', ', $prefix, $title // ();
$attr->{name} //= $attr->{feature};
}
- return sprintf ' (%s)', $title if $title;
- return '';
+ $title = $title ? sprintf ' (%s)', $title : '';
+
+ if (my $eg = $attr->{eg}) {
+ my $pre = sprintf ' {%s
}', Entity($eg);
+ $title = $pre . $title;
+ }
+ return $title;
}