微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

“使用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);
}

原文地址:https://www.jb51.cc/Perl/173198.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐