<(common.inc.plp)><:
use 5.010;
use utf8;
-use List::Util qw(sum max);
+use List::Util qw(sum max first);
Html({
title => 'browser compatibility cheat sheet',
$ref .= " $_" for $canihas->{-date} || ();
print "\nwith $ref browser usage statistics";
}
+if ($usage) {
+ # first() does not work inside given >:(
+ while (my ($browser, $row) = each %$canihas) {
+ my $verlist = $versions{$browser} or next;
+ my %supported = map { $_ => 1 } @$verlist;
+ $row->{$_} //= undef for @$verlist; # ensure stable keys during iteration
+ while (my ($version, $usage) = each %$row) {
+ next if defined $supported{$version};
+ $_ = paddedver($_) for $version;
+ my $next = first { paddedver($_) ge $version } @$verlist; # or next
+ $row->{$next} += $usage;
+ }
+ }
+}
:>.
</p>
($_) = $1 =~ m{^/(\d+)};
continue;
}
- s/\d\d\.\d\K.*// or do {
- # major part only, except for ≥v9.6
- $_ ge '9.6' ? ($_ = '9.6') : (s/\..*//);
- };
+ s/^\d*\.\d\K.*//; # one significant digit
}
continue;
}
[ '525' => '2' ],
[ '528' => '3' ],
[ '531' => '3.2' ],
- [ '531.022' => '4.1' ],
+ [ '531.022' => '4' ],
[ '533' => '4.2' ],
[ '534' => '4x' ],
) : (