X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/5d0bed0b1a591ba0f12526961a5d857d36df0267..HEAD:/perl.inc.pl diff --git a/perl.inc.pl b/perl.inc.pl index e1ed0e6..e26cbcd 100644 --- a/perl.inc.pl +++ b/perl.inc.pl @@ -1,6 +1,7 @@ use utf8; use strict; +my $wbr = "\N{ZERO WIDTH SPACE}"; +{ v5.004 => { release => '1997-05-15', @@ -85,7 +86,7 @@ use strict; ['Memoize' => 'remember function results, trading space for time', 'memoize "stat"'], ['MIME::Base64' => 'base64 encoded strings as in email attachments'], ['Test::More' => 'modern framework for unit testing', 'is $got, $expected'], - ['Time::HiRes' => 'high resolution timers', '$μs = [gettimeofday]; sleep .1; $elapsed = tv_interval $μs'], + ['Time::HiRes' => 'high resolution timers', '$μs = [gettimeofday]; sleep .1;'.$wbr.' $elapsed = tv_interval $μs'], ], release => '2002-07-18', distro => { @@ -123,9 +124,9 @@ use strict; modules => [ [autodie => 'replace builtin functions to throw exceptions instead of returning failure', 'eval {open ...} or $@->matches("open") || die'], # overloading - ['IO::Compress::Zip' => 'various file compression standards', 'zip IO::Uncompress::Gunzip->new("test.gz") => "recompressed.zip"'], + ['IO::Compress::Zip' => 'various file compression standards', 'zip IO::Uncompress::Gunzip->new("test.gz")'.$wbr.' => "recompressed.zip"'], ['Time::Piece' => 'timestamps as objects', 'localtime->year > 1900'], - ['File::Fetch' => 'generic data retrieval/download', 'File::Fetch->new(uri => "http://localhost/")->fetch(to => \$slurp)'], + ['File::Fetch' => 'generic data retrieval/download', 'File::Fetch->new(uri => "http://localhost/")'.$wbr.'->fetch(to => \$slurp)'], ], release => '2007-12-18', distro => { @@ -217,6 +218,7 @@ use strict; distro => { ubuntu => '14.04 LTS', # trusty opensuse => '13.1', # 2013-11 eol 2016-01 + macos => '10.15', # pre-installed catalina 2019-10 }, unicode => '6.2', }, @@ -309,6 +311,7 @@ use strict; debian => '10', # buster 2019-07 ubuntu => '19.04', # disco 2019-04 eol 2020-01 freebsd => '11', # eol 2021-09 + macos => '11', # big sur 2020-11 }, distrosum => "stable systems such as Debian 10, Ubuntu 19.04, FreeBSD 11", }, @@ -324,6 +327,7 @@ use strict; release => '2019-05-22', distro => { ubuntu => '20.04', # focal LTS 2020-04 eol 2025-04 + macos => '11.3', # big sur 2021-04 and monterrey 2021-10, alongside compatibility v5.18 }, }, @@ -381,8 +385,24 @@ use strict; unicode => '14.0', release => '2022-05-28', distro => { - debian => '12', # bookworm 2023 upcoming + debian => '12', # bookworm 2023-06 ubuntu => '23.04', # lunar upcoming }, }, + + v5.38 => { + new => [ + ['use feature "module_true"', 'default in use 5.37 and up, also no feature "bareword_filehandles"'], + ['sub ($var ||= default)', 'assign values when false (or undefined on //=) instead of omitted'], + ['/(*{ … })/', 'optimistic eval: (?{ … }) with regex optimisations enabled'], + ['class', "define object classes: packages with field variables and method subroutines", {feature => 'class', experimental => 'class'}], + ['${^LAST_SUCCESSFUL_PATTERN}', 'explicit variable to access the previous match as in s//…/'], + ['%{^HOOK}', "perform tasks require__before and require__after when calling require"], # also @INC hook enhancements + ['PERL_RAND_SEED', 'environment variable to set srand random number seed', {dropped => 0}], + ['is_tainted', 'builtin function to check variable tainting like Scalar::Util::tainted', {dropped => 0, experimental => 'builtin', eg => 'builtin::is_tainted($ENV{PWD}) and say "running perl -T"'}], + ['export_lexically', 'builtin function to export named functions into the calling scope', {dropped => 0, experimental => 'builtin', eg => 'method import {builtin::export_lexically {map {$_ => $self->can($_)} @_}}'}], + ], + unicode => '15.0', + release => '2023-07-02', + }, }