昨晚在云中的 Perl 和 Raku 会议上, Sawyer X 宣布 将 Perl 的主版本从 5 更改为 7。工作已经在进行中,新版本将在一年内发布。简而言之,您不应该期望有很多变化:Perl 7 仍然是具有现代默认设置的 Perl 5.32。您不再需要显式启用您已经使用的功能,它们将为您启用!
会包括什么?
目前还没有完整的清单,但肯定是严格和警告的!在第 7 版中,签名很可能仍处于实验阶段;utf8 也没有时间包含在内。
什么会被禁用?
- 间接方法调用:
{;
包 Foo;子新{祝福{}}
sub bar { print "Hello from bar()!n" x pop }
}# 正常调用
我的 $foo = Foo->new();
# 间接调用
酒吧 $foo 42; - 空字(裸字)作为描述符标识符(标准标识符(STDIN、STDOUT、STDERR)除外)
- Perl 4 风格的伪多维哈希。
# 示例取自 perldoc perlvar
$foo{$x,$y,$z}
# 实际上意味着 $foo{join($;, $x, $y, $z)} - Perl 4 风格的旧原型现在只需要这样写:
子 foo :prototype($$) ($left, $right) {
返回 $left + $right;
}首先是影响调用编译的原型,然后是在运行时将参数放置在适当变量中的签名。
但是,仍然有机会批量退回所有物品:
使用兼容::perl5;
或者一次一个。
Perl 5.32 进入为期 5 年的长期支持。
Brian D Foy 的扩展公告: https://www.perl.com/article/announcing-perl-7/
他的 TL;DR 版本: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
来源: linux.org.ru
