内容

名称

perlexperiment - Perl 实验特性列表

描述

本文档列出了 Perl 核心中的当前和过去的实验特性。虽然所有这些特性都在其相应的主题中进行了记录,但这个简短的列表可以让你对它们的现状有一个概览和基本信息。

到目前为止,我们只是试图找到并列出实验特性,并推断出它们的起源、版本等。这里有很多推测。

当前实验

智能匹配 (~~)

在 Perl 5.10.0 中引入

在 Perl 5.10.1、5.12.0 中修改

在 5.38.0 中弃用

将在 5.42.0 中移除

使用此特性会在 deprecated 类别中触发警告。

此实验的工单是 [perl #13173].

可插拔关键字

在 Perl 5.11.2 中引入

有关机制,请参阅 "perlapi 中的 PL_keyword_plugin"

此实验的工单为 [perl #13199]

通过引用别名

在 Perl 5.22.0 中引入

使用此功能将在 experimental::refaliasing 类别中触发警告。

此实验的工单为 [perl #14150]

另请参阅:"perlref 中的“分配给引用”"

"const" 属性

在 Perl 5.22.0 中引入

使用此功能将在 experimental::const_attr 类别中触发警告。

此实验的工单为 [perl #14428]

另请参阅:"perlsub 中的“常量函数”"

use re 'strict';

在 Perl 5.22.0 中引入

使用此功能将在 experimental::re_strict 类别中触发警告。

此实验的工单为 [perl #18755]

请参阅 "re 中的“'strict' 模式”"

声明对变量的引用

在 Perl 5.26.0 中引入

使用此功能将在 experimental::declared_refs 类别中触发警告。

此实验的工单为 [perl #15458]

另请参阅:"perlref 中的“声明对变量的引用”"

Makefile 中有一个 installhtml 目标。

此实验的工单为 [perl #12726]

(有限的) 可变长度后顾

在 Perl 5.30.0 中引入。

最多处理 255 个字符的可变性。

使用此功能将在 experimental::vlb 类别中触发警告。

此实验的工单为 [perl #18756]

另请参阅:"perlre 中的“(*positive_lookbehind:pattern)”""perlre 中的“(*negative_lookbehind:pattern)”"

Unicode 私用字符钩子

在 Perl 5.30.0 中引入。

此功能是 perl5 开发人员用于内部和实验用途的接口的一部分。您不太可能在野外遇到它。

使用此功能将在 experimental::private_use 类别中触发警告。

此实验的工单为 [perl #18758]

Unicode 属性通配符

在 Perl 5.30.0 中引入。

此功能允许更简洁地表达针对 Unicode 字符属性的正则表达式匹配。

使用此功能将在 experimental::uniprop_wildcards 类别中触发警告。

此实验的工单为 [perl #18759]

try/catch 控制结构

在 Perl 5.34.0 中引入。

使用此功能会在类别 experimental::try 中触发警告。

此实验的工单是 [perl #18760]

在子程序签名中使用 @_

在 Perl 5.36.0 中引入,作为减少实验性子程序签名范围的一部分。

在使用签名的子程序中使用默认参数数组 (@_) 会在类别 experimental::args_array_with_signatures 中发出警告。这包括直接使用 @_、其元素(如 $_[$index])或隐式访问默认参数数组的情况,例如在没有参数的情况下使用 shiftpop

具有多个迭代变量的 for 循环

在 Perl 5.36.0 中引入。

使用此功能会在类别 experimental::for_list 中触发警告。

此功能允许 for 使用带括号的迭代变量列表,而不是单个变量。

此实验的工单是 [perl #18744].

内置命名空间

在 Perl 5.36.0 中引入。

使用此功能会在类别 experimental::builtin 中触发警告。

在 Perl 5.36.0 中,为新的核心函数创建了一个新的命名空间 builtin,这些函数不会出现在每个命名空间中,但可以导入。该命名空间本身被认为是一个实验。其中的特定函数也可能是实验性的。

此实验的工单是 [perl #19764].

defer 块修饰符

在 Perl 5.36.0 中引入

使用此功能会在类别 experimental::defer 中触发警告。

此功能添加了一种新的块类型,即 defer 块,它将在包含块退出时才执行。

此实验的工单是 [perl #17949].

用于类似引号运算符的额外配对分隔符

在 Perl 5.36.0 中引入

使用此功能会在类别 experimental::extra_paired_delimiters 中触发警告。

此功能允许使用许多非 ASCII 配对镜像分隔符,例如

my @array = qw« tinker tailer soldier spy »;

此实验的工单是 [perl #19765].

已接受的功能

这些特性非常成功,并且与其他特性配合得很好,因此我们决定取消其实验状态,并将它们作为 Perl 世界中的完整稳定特性,赋予其所有好处和奢华。它们还获得了 +5 稳定性和 +3 魅力。

64 位支持

在 Perl 5.005 中引入

die 接受引用

在 Perl 5.005 中引入

DB 模块

在 Perl 5.6.0 中引入

另请参阅 perldebugperldebtut

弱引用

在 Perl 5.6.0 中引入

内部文件 glob

在 Perl 5.6.0 中引入

fork() 模拟

在 Perl 5.6.1 中引入

另请参阅 perlfork

-Dusemultiplicity -Duseithreads

在 Perl 5.6.0 中引入

在 Perl 5.8.0 中接受

支持长双精度

在 Perl 5.6.0 中引入

在 Perl 5.8.1 中接受

\N 正则表达式字符类

\N 字符类,不要与命名字符序列 \N{NAME} 混淆,它表示正则表达式中的任何非换行符。

在 Perl 5.12 中引入

接受的具体版本尚不清楚,但不会晚于 Perl 5.18。

(?{code})(??{ code })

在 Perl 5.6.0 中引入

在 Perl 5.20.0 中接受

另请参阅 perlre

Linux 抽象 Unix 域套接字

在 Perl 5.9.2 中引入

在 Perl 5.20.0 之前接受。Socket 库现在主要在 CPAN 上维护,而不是在 perl 核心上。

另请参阅 Socket

左值子例程

在 Perl 5.6.0 中引入

在 Perl 5.20.0 中接受

另请参阅 perlsub

回溯控制动词

(*ACCEPT)

在 Perl 5.10 中引入

在 Perl 5.20.0 中接受

:pop IO 伪层

另请参见 "PERLIO" 在 perlrun 中

在 Perl 5.20.0 中接受

正则表达式中的 \s 匹配垂直制表符

在 Perl 5.22.0 中接受

后缀解引用语法

在 Perl 5.20.0 中引入

在 Perl 5.24.0 中接受

词法子程序

在 Perl 5.18.0 中引入

在 Perl 5.26.0 中接受

字符串和数字特定的按位运算符

在 Perl 5.22.0 中引入

在 Perl 5.28.0 中接受

字母断言

在 Perl 5.28.0 中引入

在 Perl 5.32.0 中接受

脚本运行

在 Perl 5.28.0 中引入

在 Perl 5.32.0 中接受

中缀 isa 运算符

在 Perl 5.32.0 中引入

在 Perl 5.36.0 中接受

子程序签名

在 Perl 5.20.0 中引入

在 Perl 5.36.0 中接受

正则表达式集合运算

在 Perl 5.18 中引入

在 Perl 5.36 中接受

参见:"扩展括号字符类" 在 perlrecharclass 中

已删除的功能

这些功能不再被认为是实验性的,它们的功能已经消失。如果你在明确告知你不要使用这些功能后(参见 perlpolicy)编写了生产程序,那就是你自己的问题。

5.005 风格的线程

在 Perl 5.005 中引入

在 Perl 5.10 中删除

perlcc

在 Perl 5.005 中引入

从 Perl 5.9.0 移动到 CPAN

伪哈希数据类型

在 Perl 5.6.0 中引入

在 Perl 5.9.0 中删除

GetOpt::Long 选项现在可以一次接受多个值(实验性)

Getopt::Long 升级到版本 2.35

在 Perl 5.8.8 中删除

断言

-A 命令行开关

在 Perl 5.9.0 中引入

在 Perl 5.9.5 中移除

Test::Harness::Straps

从 Perl 5.10.1 移动到 CPAN

legacy

实验性的 legacy 标识符被 feature 标识符吞并。

在 Perl 5.11.2 中引入

在 Perl 5.11.3 中移除

词法 $_

使用此功能会在 experimental::lexical_topic 类别中触发警告。

在 Perl 5.10.0 中引入

在 Perl 5.24.0 中移除

数组和哈希容器函数接受引用

使用此功能会在 experimental::autoderef 类别中触发警告。

"后缀解引用语法" 取代。

在 Perl 5.14.0 中引入

在 Perl 5.24.0 中移除

our 可以有一个实验性的可选属性 unique

在 Perl 5.8.0 中引入

在 Perl 5.10.0 中弃用

在 Perl 5.28.0 中移除

:win32 IO 伪层

在 Perl 5.8.0(或之前)中引入

在 Perl 5.36.0 中移除

另请参阅

有关功能的完整列表,请查看 feature

作者

brian d foy <[email protected]>

Sébastien Aperghis-Tramoni <[email protected]>

版权

版权所有 2010,brian d foy <[email protected]>

许可证

您可以使用和重新分发此文档,其条款与 Perl 本身相同。