X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/e90c9ada43f72f692aeb9c1ad512dbd5c3513a18..a668d95d135825e04289106c9a7b73096709eb2d:/perl.plp diff --git a/perl.plp b/perl.plp index 0d9a415..8a5e7bb 100644 --- a/perl.plp +++ b/perl.plp @@ -2,15 +2,16 @@ Html({ title => 'perl version cheat sheet', - version => '1.5', + version => '1.10', 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'; :>

Perl release summary

@@ -56,8 +57,9 @@ eval { $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; @@ -111,7 +113,8 @@ sub featattrs ($attr) { $title = 'experimental'; } if (defined $attr->{dropped}) { - return '' unless exists $get{v}; + no warnings 'exiting'; + next unless exists $get{v}; # skip containing feature $title = sprintf 'removed in %vd', $_ for $attr->{dropped} || (); } elsif ($attr->{stable}) { @@ -128,10 +131,26 @@ sub featattrs ($attr) { $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 ' (%s)', $title : ''; if (my $eg = $attr->{eg}) { - my $pre = sprintf ' {%s}', Entity($eg); + my $pre = Entity($eg); + $pre =~ s<\N{ZERO WIDTH SPACE}>{}g; + $pre = " {$pre}"; $title = $pre . $title; } return $title;