当我尝试使用新的 perl 特性(例如用“say”代替“print”)时,代码会失败,直到我输入“use 5.014;”这一行,然后一切才能运行。
我安装的 perl 版本是 5.14.2,它看起来是我安装的唯一的二进制文件,为什么默认情况下没有使用新功能?
谢谢!
答案1
出于向后兼容的原因,默认情况下不启用 Perl 中的新功能。
如果您需要在使用无法与旧版本的 Perl 配合使用的库模块之前检查当前的 Perl 版本,这通常很有用。(我们尽量不这样做。)
此外,如果指定的 Perl 版本大于或等于 5.9.5,使用 VERSION 还将加载功能指令并启用请求版本中可用的所有功能。请参阅特征。
类似地,如果指定的 Perl 版本大于或等于 5.11.0,则与 use strict 一样在词汇上启用 strictures(除了 strict.pm 文件实际上并未加载)。
12.04、12.10 甚至 13.10 的 Perl 新版本尚未获得批准/提交。请参阅 Ubuntu 的 Perl 主页这里。不过,看起来确实有一些活动随着 Perl 5.17 工作的推进。
你可以从源代码安装,但我不建议覆盖系统 Perl 安装。相反,我建议使用以下方法安装沙盒版本:PerlBrew。