Perl v5.20.0 新特性与改进
1. 核心增强
- 实验性子程序签名 :引入了声明性语法,用于将参数列表展开为词法变量。例如
sub foo ($a,$b) {...}会检查参数数量,并将参数放入词法变量中。与现有的sub foo { my($a,$b) = @_; ... }用法不同,签名仅在启用非默认特性时可用,并且使用时会产生实验性警告。启用签名时,短原型语法将被禁用,以避免与原型的语法冲突。详细信息可查看perlsub中的 “Signatures” 部分。 - 子例程现在支持原型属性 :在声明或定义子例程时,现在可以在原型属性中指定原型,而不是在名称后面的括号中。例如,
sub foo($$){}可以重写为sub foo : prototype($$){}。 - 更一致的原型解析 :
- 子程序原型中的多个分号长期以来一直被容忍并视为单个分号,但有一种情况除外。现在,以 “ ” 或 “; ” 开头的子程序原型,包括 “;;;*”,都会影响裸词被视为方法名还是子例程调用。
- 子程序原型内部长期以来允许使用空格,例如
sub( $ $ )等同于sub($$)。但之前在解析子程序时会去除空格,因此Scalar::Util::set
超级会员免费看
订阅专栏 解锁全文
1073

被折叠的 条评论
为什么被折叠?



