Perl解释器默认使用什么版本?

Nov*_*ice 3 perl

我写了一个简单的脚本使用given/ when来试用这个功能,但我不断收到编译错误.最后,我use 5.010_001;在脚本的顶部包含了一些内容,认为我的Perl版本太旧了,无法使用given/ when.有效.

然后我打印了我的Perl版本$]并使用它:use 5.018_002;它也起作用了.为什么Perl默认不使用最新安装版本的功能?

Thi*_*Not 6

该声明

use VERSION;
Run Code Online (Sandbox Code Playgroud)

隐含的

no feature ':all';
use feature ':VERSION';
Run Code Online (Sandbox Code Playgroud)

所以:

为什么Perl不使用默认安装的最新版本的功能?

根据perldoc feature:

在不破坏某些现有程序的情况下,通常无法向Perl添加新语法.该pragma提供了一种最小化风险的方法.新的语法结构或旧结构的新语义含义可以通过use feature 'foo',并且仅在适当的特征编译指示在范围内时才会被解析.