Html({
title => 'perl version cheat sheet',
- version => '1.4',
+ version => '1.11',
keywords => [qw'
perl version feature features comparison
sheet cheat overview summary
'],
- stylesheet => [qw'light dark red'],
+ image => 'data/camels.jpg',
data => ['perl.inc.pl'],
});
+use experimental 'signatures';
:>
<h1>Perl release summary</h1>
$info->{$vcore}{versum} //= "official security patches";
# «We encourage vendors to ship the most recent supported release of Perl
- # at the time of their code freeze» with debian&ubuntu having 5 years LTS
- my $vendoreol = ($now - ONE_YEAR * 5)->strftime('%F');
+ # at the time of their code freeze»
+ # assume debian ships after 1 year, and expires after 5 years LTS
+ my $vendoreol = ($now - ONE_YEAR * 6)->strftime('%F');
my $vdebian = first {
$info->{$_}{release} ge $vendoreol && $info->{$_}{distro}{debian}
} @versions;
if (defined $attr->{experimental}) {
$title = 'experimental';
}
- if ($attr->{dropped}) {
- next unless exists $get{v};
- $title = sprintf 'removed in %vd', $attr->{dropped};
+ if (defined $attr->{dropped}) {
+ no warnings 'exiting';
+ next unless exists $get{v}; # skip containing feature
+ $title = sprintf 'removed in %vd', $_ for $attr->{dropped} || ();
}
elsif ($attr->{stable}) {
$title .= sprintf ' until %vd', $attr->{stable};
$title = join ', ', $prefix, $title // ();
$attr->{name} //= $attr->{feature};
}
+ if (defined $attr->{bundle}) {
+ if ($attr->{stable} and !$attr->{bundle}) {
+ $title .= ' then bundled';
+ }
+ else {
+ my $v = 'bundled';
+ $v .= ' in ' . join(' and ',
+ # specific version(s) distinct from stable or current
+ map { sprintf '%vd', $_ }
+ map { ref eq 'ARRAY' ? @{$_} : $_ } $_
+ ) for $attr->{bundle} || ();
+ $title = join ', ', $title // (), $v;
+ }
+ }
$title = $title ? sprintf ' <em class="ex">(%s)</em>', $title : '';
if (my $eg = $attr->{eg}) {
- my $pre = sprintf ' <small>{<code>%s</code>}</small>', Entity($eg);
+ my $pre = Entity($eg);
+ $pre =~ s<\N{ZERO WIDTH SPACE}>{</code><wbr/><code>}g;
+ $pre = " <small>{<code>$pre</code>}</small>";
$title = $pre . $title;
}
return $title;