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