加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl:使用5.014启用哪些功能?

发布时间:2020-12-15 21:21:46 所属栏目:大数据 来源:网络整理
导读:“使用5.014”启用了什么? 请,有人在这里复制并粘贴,因为我无法在任何perldoc中找到它。 (也许我是盲人)。在“perldoc功能”中只有5.10的一些东西。或者指向一些URL。 thanx。 编辑: 请先检查一下,你有什么回复。例如:尝试这样: use 5.008;$s=1;say "
“使用5.014”启用了什么?

请,有人在这里复制并粘贴,因为我无法在任何perldoc中找到它。 (也许我是盲人)。在“perldoc功能”中只有5.10的一些东西。或者指向一些URL。

thanx。

编辑:

请先检查一下,你有什么回复。例如:尝试这样:

use 5.008;
$s=1;
say "hello";

你会收到关于“说”的错误消息,因为perl 5.8不知道“说”

之后,尝试这样:

use 5.014;
$s=1;
say "hello";

你会得到错误

Global symbol "$s" requires explicit package name

所以,“使用5.014”使能严格,并使用功能“说”; – 默认。

解决方法

除了 what raj correctly said以外,如果使用5.014和旧版本的Perl,您将收到错误消息,您可以找到启用阅读 source code of feature功能的列表。相关部分接近顶部:
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)],);

严格的位部分被掩埋在解释器本身的代码中。如果你看看pp_ctl.c for tag v5.11.0:

/* 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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读