首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl:“使用5.014”启用了哪些确切的特性?

Perl:“使用5.014”启用了哪些确切的特性?
EN

Stack Overflow用户
提问于 2011-06-20 11:32:38
回答 3查看 4.8K关注 0票数 22

“使用5.014”到底是什么功能?

拜托,有人在这里复制和粘贴,因为我在任何文件中都找不到它。(也许我是瞎子)。在“perldoc特性”中,只有5.10中的一些内容。或者给我指个网址。

谢谢。

编辑:

请先检查一下,您回答什么?例如:尝试如下:

代码语言:javascript
复制
use 5.008;
$s=1;
say "hello";

您将得到关于"say“的错误消息,因为Perl5.8不知道"say”

之后,试试这个:

代码语言:javascript
复制
use 5.014;
$s=1;
say "hello";

你会犯错误的

代码语言:javascript
复制
Global symbol "$s" requires explicit package name 

因此,"use 5.014“启用 use strictuse feature 'say';-(默认情况下为)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-20 12:05:43

除了拉杰正确地说了什么关于如果将use 5.014与旧版本的feature一起使用时会收到的错误消息,您可以找到一个已启用阅读feature的特性列表。相关部分接近顶部:

代码语言:javascript
复制
my %feature_bundle = (
    "5.10" => [qw(switch say state)],
    "5.11" => [qw(switch say state unicode_strings)],
    "5.12" => [qw(switch say state unicode_strings)],
    "5.13" => [qw(switch say state unicode_strings)],
    "5.14" => [qw(switch say state unicode_strings)],
);

严格的位部分在解释器本身的代码中隐藏得更深一些。如果你调查一下标记v5.11.0

代码语言:javascript
复制
/* If a version >= 5.11.0 is requested, strictures are on by default! */

if (PL_compcv && vcmp(sv, sv_2mortal(upg_version(newSVnv(5.011000), FALSE))) >= 0) {
    PL_hints |= (HINT_STRICT_REFS | HINT_STRICT_SUBS | HINT_STRICT_VARS);
}
票数 27
EN

Stack Overflow用户

发布于 2011-06-20 12:03:23

use x.x.x务实启用了一些特性,并且很容易测试这个特性:

代码语言:javascript
复制
#!/usr/bin/env perl
use warnings;
use 5.14.0;

say "hello world!"

运行良好;输出“你好世界!”。

代码语言:javascript
复制
#!/usr/bin/env perl
use warnings;
# use 5.14.0;

say "hello world!"

燃烧死亡;输出此错误消息:

代码语言:javascript
复制
Unquoted string "say" may clash with future reserved word at foo line 5.
String found where operator expected at foo line 5, near "say "hello world!""
    (Do you need to predeclare say?)
syntax error at foo line 5, near "say "hello world!""
Execution of foo aborted due to compilation errors.

但是,我不能100%确定在5.14.0时打开了哪些功能。我相信你得到了saystateswitchunicode_stringsstrict

票数 4
EN

Stack Overflow用户

发布于 2011-06-20 12:06:33

在较新的Perls (我认为从5.10开始)中,use 5.x通过5.12 & 5.14的perldeltas进行隐式use feature ':5.x'读取,我在5.12中看到了与unicode相关的特性,但在5.14中似乎没有添加任何新的内容。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6410492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档